PREME/G/MU813041
09077698106006621156298026861267489126684053862932651338305296958290031544127994859929261902579200681002276414356928416782187883283339848805029745357188893822580460645709656881598130894290131904316436097365872765900924758335416185927486810262136356741816853467788661645202813140917409210902338562132555380873802594312920034724339062347254295640402470610375788249265253393343880107692806025711398431500744584683850635824484411194781525406186709694134706100893966277570345963107441788745233387355917491623656820530326758539258832238114514716725191497242661154602159258568192076117521031135063185305419363760392938697313005652583822513507261345222879714169263614975308877691725903551980289857988041177991417325284019225682683262228938185505018536586154252488990927591029828717786801337419268498025907893426135966318648991743564189411168148971901819299813068363027396199524361269258586388373212523026892150797195809790179304404019871120470578107386143501104534410424280919376561534981698123871644525052017255894620991574788111748797963797363905946594677363455818288609409393622736022013522295264485516159824890278919026389779025901195055474644253719123852557301767219187350932309382561048721168571279254501422193281639930933139084850772575044816411549297679602277973378762318780947441655938915040662231500171077554771926392968225395725792266556106297575340301323020211410515916533421193379940214167882471595001503202138660072587331465883238281216143013501035920043178839560868310910730897971548383916471463384752215580035578899354187262764871936322273868190551469829067211990864498149107331006995837449094723566507779538246560801884701102438132120048131590755029583691297643753331215930218606790450156134645708164186192027888274216495785962960883022785459179879082498851243221563723845689660192440346310401573574971038373653866675913557334579373189205677182418606494253189952469230399633788157580561652207360198683949394413413408627429001331652483875992048120071767117667918542292268854819342717281326239188123412181847325618841767052451057466381441361772137355410787420180895091202247548654794266065106647131363441563715057364277917596977589016344988945268114293556360765646735498173262127413884803512340247057985545341409632245848111662860903533493481491976122841546310784519243005793694989393901133502999495108759309698101901485780716712625460066837246895931997267468687024995743064774037799966013832759959074313583140347143575560516384870110509585050048128186900300700832749875222579361306146350618879059327081363814479896641413626988409830255511535594162056973808409016699562307364638559379646798136669779956591364351230182774910662610074987181034928310963437656275835455557458065465874202990419188203661688509042396211316729588247990144994283991395276338323801568163792608246432941408770040665716905417391744121866042346698997404843224484925851368053676904840727928480106782975222497113417335737400283840394042870174065644124312615594804022675389445466253203585726029316001548433551965696601508581425403883737855663006858383843483086532560467575204111892848289877821749053675478782040460712590399164966316579229133725102375906267012628436624813453983281321050057880618368335148076462179303792717865673877771374880311929475336855609287362603477238134092406612801443961504377704847544734926868291425369991933306599339643753532195242892214452848590042735322635322476790279443781173008279782682468004535789342924539735749218990187841476392332876164580579516841017611756469772127363247909790464500733520733886154726004371686965994104173287947238694566741563314171828785517088157085994722637881554271069045292616312577889590306689532724591137775252227445925929584974590360371439911311074377688652160447303543686459105554719358720149131569487822968167172901369675586394746975664513766905355699842052069437633366856106852053844287397001838376072198378970590706127802920015835909529826977175692658888004001163089973135666691588296232627349534838747466539128309287785278344282992146850290915818098851104359697065517924776652559123257990314816259184047281574861090032214788360466158421477326340018100192786298219925643434821880097742630584255401064372112454574498409626061432416365873083383186816078734980413859791035105032087488005210904575873949248502139321223897405398863259995923283709653750867219697743918090080736682609173790774060879271898991343916245221041848894634457870530085794527982360862682751212880595221613046964663541624013097191960388465852951620987597121893767215581237882396031334079985551200476489036863477614567315835965496997174729428743216901608097393184990607665980337212171776701079261127783987611762107355763198573409862392183363158641483571337889008447378608604000764644804294179770516390554683727862679936864580428407880021682684101645816963415815969750143180338478280612208118928613400273554803342329681524819545207082158046256307715293457012958010860933206668956563619172262173625336679710968002209090137282420987523325858886950096162409202894490876919673558942035307412225890305864837355351257469999118496150969720396595258692994557800729197871933990547005732332113842074519026946934164168534811878251979594901257815708023045102978123670730371672849883519340770945382733164890395908292941275586323959839103100204489188693098386424335389765234212961625137943853192736199785994859696098649864719940187246744147893527283828628925313671427747051115472106350174650599582660051231530676892210894236900279499149509670898097648572474265324048651453074402823513319116454464577161946801705242600218586189320191390356586499293500238180781475944371877561291650545940268735404678437374505282545971410004339373632886539156763546818211412742584663354336064375250233931408980951693350386480272931347528332202570959749978356265074540278500834269686467943987708382293408060364988223759894818991163155672575119490313336273514222817560771484502085941522639362242552649161606802609595629369094355347091484609801948381177433690854029635702701845808821180210661706286100739599423352210020802586804559985055911926837489926587527774698041278694036738821424763568277598832223202083845673855441826520764167905562922578159860398159766808735664516537702653776370033036230154509838154273864231194421804936629766634682325437829383015348506859297229469366606487981088499400091656846515265762574357729574114143025162553999678684547271066516100075973070851920214846138663871631502611025881860047754164809076270588329543894186310762005654603507893914355338306429552610415917393540595329132072997966484503233710571913153299536806775623316965539663265364895302168264217719591598338352399443868900471972867905525378064999786363817803717586367426313671031845460938697895610178921170825586441201803535975905509643828359703424746539128594754194465146333940962035399519314371505925946776725253194162655557247310169300587529186578608256971910732645319911106273214606507688325466989809525467271030856716537523861299006045733562289853021235494069325951303377738208173169256389644354280193222549375209328666575634866787491403357755653100324217746538787637380221278196659820289240397075072265637475128778879816187850395006190204954126155715707399369728606851600984622873787385953247585029857305020562236733487330400069337920320439061811488995568681484914734778142275350794007021070614796724899737855299013799163312512381205205360642990548530074911562930878504483701514680002057659659317210128746309994328437091921027725627679602385172700247657608932894473306702727154381372530967649496632029234144300124841252902195100057610385066761633008011798354418210773595293620094610900042514329089356663577503267934280559095921344640494512591808080710211398868726039924807481364029878207610415230276748396897887907099259332057219521034110707786256428179280657084940623671836134476917145540262104817362137046004268547266901963637487333924887226769951532594366724178575013195576595116956868641035838244164094776638370292633184705703819179525270024149570743377815531647068076111992645468644437218690730174959506054013657342501103082301587783155202448673408880377100463254873569072969406028509222020751125538154456042040751905736941080345378765604999875861544307967910161765201384100699785229825742330003712397365494426446209210343576140955447413938906685172751933051829076543520363219247508695951639265774876776764810202027217973931418926811997427765432244396851258707347569330034043635942664453712908514529443890921593509418613329596863367994412992901899959505580471754774653986269950199443848191923984673638395181960972925019370993778857760770928615762803771826048605886045443506817004898273298502947308255925153733650798519665068104391311199389601345267092355459643763468302634137837579178346353974783115671719421834185881898838044891037589172680461575262045549466641401628522700547796161436182011884438259396426722547129987653454147481985063847086476142022120440550164329310080238203717274949290041632919353314422123527758919651807479410678056428731691948493965317052517280795979217072694566254991992234581428219689749111509177605993551749436050015443831827235210247039091985671881397478806100312197765133849551078397955925063253353308415398840448580768505013930341920570710568988425414822605091509407840434223647597346390515212051981571504119234167963194240180663376440829828839369436920415770024064472018557556572189611376217120359523365958781098485498508000943450326207319079727149867085284895841115637160196308708107697490365902262657575594431482422343493571142890228173516036911047212981437092097334381847372302583241581917302389572487174573891480332724817641062975172716693016164715062159525211207019770512532632199053525465187445641896468377726068679695434354771024071153801527701200147937664380154822525893721593902038257438698388628393014928156932448427838614954242782371715063503547991230785510062182291057251943518385428868131352871222616984418427698013906402679840448067339384421524245102384838798115209716219016199852546934140699678850463863696856292403144937972326836905485881667234804117344250903464263257758454668891579939333605267154244511082958700812940771188940303416029178648027952975831903807870047564863163617063540455352264734718115250084587857426745254321768939614806652844287998895080270973250915524264980637074516913847288397725317369940877713063841900451318964016117325689751227121469297152310486467801436542683387328159459658631710026457258176195625277369945703038436354429843645091874710067454434979895324037935645223541842649943985239148736809111256303703361521765410054717331647306190451490302468547881598353831214815762108720562387677706313478888246580056034771515802808144878709658569901133896527831112268581469460754545743906374984479327095347740227040059092188157833234835306844255053765395796849295049672043443818218277638398673357034919102030551661071302213550062326776760220345465128452569161460174856863279930577571921633122492904153257947009570480515037470129117145952845131040844242790522806255918104105416790328554588022931106743433186812544117001138667318725870484248530399276125096916398125124373697217199776448043004067490542102864791903998347834060892174211956500763678320053132417174646334060126232179885987030726410214215378336273090406549727548141661704252678432706452557288543700959751239953379395798638833290346424221939172964852369786652146291717612810145126584728185456410766555055622727655664638753106750816338396542683502571442365221489694438707867155959881971945179211316760797433572933161145340568799037149104893567653373825276631245205940763474572583774920131358336357524848571120881106489731174555670165705394013507219502359932784013779801648071104447826280431629451140500922036628299176134371141021905772052820692782653143389278883352819523968737020437919762652622423763318116819500320411060647302429896457422846813115986226154977299330514781133728422799301040693605090643661958628852332295582539757432996152422923863873455458183257868340502085634675866860406546688465502238811201835503991468613357951317227381294622647247827181802653788452379755889612800843287037528936078778171881016414415989644255365247202094103369619644218522475079256896481769105824685304555014637008737316466585778548995981452225482620494439653465220998408781131863268062627228558268463825153877953784762464167825864258831990130244289718096336670833774734321902356694689836227018843994089342776228798471356537349508914872323725821006822025832990739581679169993356021043000455769416043786379469977770520244381428450706688143141707519079529370989105173252449996483094597675374622521601400361963586049519570338366819491416632194920204607990216463643903580928169294309305414970477121508300063449584554333406714670234110468935070290622285587483682005274223939854873626654485594357159674147908510481272475753794620474379119923186639647416788820482901489020293814016382681389508816190022850629977340531980489109405588335946779593582824645992037790601384624031672328524546810704195583131745812524956257433806823244164137873084070799237862867264217962994357684456121462462822268596544535219994721171509151222419819868506635773589013515470811474395453038977492231886577310530281781309732781991824503644604398087917602019522278202804190239134468595652522629697016066177956858615682195426241190659208407533731130698347957490196340899855101232228097236972753747239584336228450689033532233896069751433962949417390124891765745003510645584287458010701803843822184834037749203847411294701968730467290901479826479292405286619095914226586987213960953822439322099469740676017478972491141466697347480901474206313126029338556474839446708194861381605740966579961814229260234860032682326621336779818240785430430201851067418945553648806250781840801707833881898949286297160773783628757677847940943138579878706405771261781364184054222471550452737735078839542666589090185036008010400503808872055046941978157634285260797462716872694928493131102108324136746379150920832698349751459137987502783343194685949927502307978354525638678463270438209784648707688453144177436382738211218679850326429045622425903108260253453400823390918105834821887602060208898480162387008589735379616834276400129539920722073337142872664894872559775601931135641954013236238371614344574302128469028197114594212178560202099423298104214980735600199785431210724590755121405358836546740023085285669552919223357349668951914881403833646558886354682729340951048551707515824912792757497748581204565163051390130977445767700115452693343322638419900321493858186043173731951831226083720709406094146993500473714379032324380966483194076676670964954106435620553261628859379873158018509922908471158135239723300771548203801108781562393012278139313177590566207140257819289937517177971050104915063255763471278643352345448304124571871150340609778802241552985029505924610872234869216210283966097711123067305319136978582015761471061521516624705967606779950889238001578332928179471610711212718131039300745976174088565511447600084688792756344666148937642397254467359345815426402462843602697579269387521063034696876198127408761754485236203613912847218549194316186313529906488884175541048774046251196065222455930064496239892517124412808343188921791211384460455287760532433541544167634168166633272197633348554401341717179219831764409754354081412681723753247527677928119387137138422414425245291567643962396735947004882308598900072948942011244313452740333107776295940072178916449288739622458575005013878602491029336191426718446225247127085977229362955101202255367087151868128678427181177698934870789295205791890087263778628863974726899326702473019598941169358035904535005240979253007997648276211459446864364373096577750875349635326402453317539087200288442223978858109661393526147700626285398477075535511390268057022454324783998601980836606154350985424147520854258153332096721217603662854984770385191364789626005667344262064960795686448782729148212802145367674893381127533668075713820642947170765722359140615444416225441168498422032353098902763948113767377976267750020537638448813894560471237925760184727700595731339609840741555942182430743767546140954440022815044059141847689002789833095165316318262641878086873502688633730753306852605341103732572658500393527540154700403739179794405415396634866862577627301562776408570586771597877138226594669697510970696561574732510337065225427115932234414353610785788618102772556782517902931996183810791653196726089863816583552977917472831499133748117622430345610809931024522087385678801708374490208989744598600940424449719757989348884752478114694755656337927943191690939704911994265400532186659489265017105020719116402700624301682947411655815589174767658244380503054455697004569471666923309313025569660004169558779116211465403907881893979194011777539299128493176212938352773095311909812462909526425841419681212528804391552920096315682859615482375673450476430172758986560185968914006847050170969444470959722102578143450128102257896615848708372318317624822021477850023370611578512817695625718180543687057814053077232272098986993482545456171535850021501743337465167682581530909813734261924817038937716782640109534182201175350568629642345017903027441048242719233555200434649771713814356440588734366168288198531056933284929456850497373552260519314003754364064698127698442011216567579061902602489383189672214207522075834126375999525842772400660419832871223269537810950854822497495078630821939831978353529146730106771158224151993971223034808311079736503341166578065048077835874227121656241136292717614033212315442140822996875401558219967282699850715007487745347185278614329937573225091308750065092909308543442076000025130679999522504668572516454900054939189973073770369430253368773559366757950653543346728119598571987993085737568690576973209464908080807291944988027854083854856317891622515873138072077613316350176144931628860712701751373964643735489550123788123233983762681914085260302424104860815166923550747613658261752764015191813740607501772528356461466671857661551229010778785817409375432945692097608247913967115906040778386155186056218411710957554552868265800573499117902033692734574094672735869046144728330594363185187228007630432645930557710482001178696438522768705743665530698271810655220198786030862645086925960363951976660590903082759562042911333358257040796523455589748042663469585801766409929176241571152546862303477695755310856047779019722685984767701616867814726618469185359841338286280126344804931144350245963426842889836740218055835194276959521966080715171167238280902809100451776208460676863323476630930792382763576272742945405325956343747146037304400710596726053880584265603831332942435943861028874746888378826969782900372803410394761166341971881327007353351375299207743837695664099277546392826545331582282531152512405623211932173599776005272984178647730487729934278645140855289563067234193317966473033313641340350740571564252934279733721883087771969333963603666333495082135811726732847572807331868958700411899503775234440476147212707362625833956684593478820201986873548530190066237486645821343549824565652656544042909680005360775770905676078976090200263948329389457484905930375494175495976674394097935763219559117503770087790885789907450070234122981017393855531986128726973952017542691274344160086102447288775735858265459746494877348863161139752665649339063659531961906720266693211568053532139496580497043317321860603429942438084518542942913060532643493020518394023280131139179116447949060218539684579669513367417603903660292559348378826288831908679356437370805010942794718988052472726856920016084400696748966987474535328357939033353194773586253973519165996952646792649069635914074863826042873903446510196413086414446139874478188885159184308414154163181180916091079304440041322575950944023288917902899417683037657035407225738796562254739013389792452859477499741717636346396708410358795561131374648289355695782273966754155705519094185968976909942586181925245856971336014485045298978381069871016643248175051818283072510501288161999056989510470884618402837082807952213963157760609662663383640704003417825984830960988001106262012519672016618606099752380371922112657075763789507579430253826504422745339232831903143935377646507729145112180467768004643492700864155141940993403684168476586630919687374904831405253022386194291685280209777990988441379876972885221349852852389307701267755097678556155176838140748355724537561531144553743258327195628314798484333495910268553972727101602040431867883845956799124092663675951251421508831943161179771795761830140271083444017155664013948627512463649858805880542233719990516181764762239744796430788470618819989420783124621581441354692841440841684593276997362896226986931598412629308624839017833507454046584901561343202009288430987673591529901703735847794935005072912884282872291732201434266691007684775160181740063710317522428202094008161092434639643418153702095321737915665364406341884777506634094327913684226483966906910285073435649307475233885807076815479811430740637876497150413987770469079151658760135741779749664930782208130107690978681502085797574417639454250199231733350866625697567350848239860486728228764488044481119533795710265814289695292433862305058992793257439409785852631082961248820708277224815052099987130892487201098512658613747611703744074928641765315544970729802986090325924790702423341966343267925566529597646143551577289609520637750435769203144872001728413741686297626223185993070957928798608620724424774090618453744111060674203674249583277016720626748755427064487438099471071457268625568624162157298735380463958370976125951127960451333150185037608636344216328139013360524801890928113835128742082234940877125144172341785200349363495522150124839447069049487386928239565367454607693705993048150419642930732341472383064022227703307628118081786704178787060877368290755782587582919364357116227315562745238395131707501927263464309585552012401098704346880516080433121533726515319782072117131736408056976407756001180551871478936246738652320308517391448322388455764664640404438128703096827132361036317714012241918721630849177209768366227277023632196397215362194092924702085557792286919282242208128743553038436375281418889461971218834042212753485924047726384856899506354777615645143293618500887027547243541935319430658079936112619587983155591764272415815554214098946925311679548277939725281611707686675219238927397789998999257602794604545808154772448809728910259488131300075126905314017014304635132426526197252974857807377104273695109906486004558271200071211684481079256574701786437426594365269252105093007580564183494744888067042937728894883737813531277522293580367473186945561676524288155678692102834662196281401824008081807047848553716288342470235237480550774145113885821478819305843540154252817533389395272845279645965699406050386466303901411635551788369244743702101238865561654048724868803910912544838663361124616584563275360999156874536850396893126634503793512912674953813475153405957176988794494213900516322794557680886633850780947628702060229837567076634168960862581265042176891463018182445496373862655027820972894483346917229227381757238577915140912075068265524062408331112063780370908402179094140376411850526317461381642744425981299344753734856642215675669872560159418743426970552935999030419622594485270368987972653188107844789832713626954887579135265420569866703781898604215735598287739476144757730955094519204828628701839141645555313820097528161885141506330534286232853348157909147895680098052938346227344102838585894537861180589301501643309375870133410901127311411733701797530886725152097633346542127922255867092888986474129698703331367505965968630971255363907682485799625903037322293515569337772287105908314226339726704765316868998438811316951241142461017767014633141177255652323447160498945495153172585163015374973801716801430430357600190030454206746388795941900533478840939204915988061541738697439432697685947937727358935724049215492253430003242849390843774218582147897040813846930359420619717780605222736528617177435931390520773202864044020225297776407953630404644899517345009712664322153231212768943281026953655503220528646434754413412664226397432796549045075381970099446133894946437692677791340078711165631337320234708343891875591142804567695646598283929728229400258362551139090390809524296240290100245347066055543147608249788175914198146803099272290891626650595752596978556711749125857188878868472147405606338644193134287100001457338948110266553269410055212633419767404754507567491236786999010884908538393233611421784006605097992650196756636923594420127755336745036810814468608642101797970664355025128048462597784734555530522496404608928258577772672273360342771848484933271252394564138185101759464993746421183793715454678834231872399661176191731714804590507532524270217258768728363878487379154632859953551364459418472451169556476134426549851307221099070018570514439288378470186350248228908847020027496114745156173548508565796860976308433591451593274068905554341683324123963728590956321883499492449986474864204852695618756642765856063495385415039088130240306469013608365379010699531104389395035812655719594476388701534454548801114555758479371632093831796817336098091779573653480457765739986295384495910996788345101541851599329464641123835867540846305092571858181731684646298883058382890815152785278469403491994906093547443621298727706407052536115300754499320111198970663914917019699490016492814220625267365390516769013387685971010118333756178732967559120071639800358323337906769237605230119188812046670781961510444425229095913141776772207643283162363900294565232854364709553415945862788864319511228476153618155768330707237625684848021060596537327019167183060146836284022342532529437239294497612410124940234838422237556878945441691657599214137134180055846830447046377073984442475397086498182774064804149694814975471612323364146886066374907734312401539894711648612387248447658370162782781414411449103552623421238472018475446281470197111522401652439237547354779985751144398975443426601373466522192759829794220708570840394805664337131693421468376982865335406374448978504106607755928177560770869800027233662230121041796806572783883084356342151486332634856552935203164478848387207539841656389492033624192658180113298329787760310897802938786176950124620373627160625120933718192325446860481682143614984205102731021157429832972635114704492011225247260868525083010516851642798240410207982541847790076591386416806417278433448451839051324224072647895995423744769466646533775576746914148388953762346946095389652884012652496594597339058059974332809781623632925472962411943492687471893448704473857480145931001561445278125919740287136918517513314242651324199406499198444472571118949082063521033381665042645065436893306764827212925629986176498293638581077652726131446534298050173477010271464781127356526150509700247362196536423024869930956583532101167178484481938087109285027109321898977990146422829053976807333667142672299872546032128226625589480615063553139057084234153885789943969124295996560859373984285832720930928276426141968736986779223818098419073942865390373278285401742318259540940337943044640024519596851720470784057053175019611071684194370720886729062429466913330116903081326830720565682080259225034904754259134951490583491514519595089927495709074824570988577518616954591608029035079058012460410864725075529539164272648195613949272188818778808221706766415457653631827460684249123719922300373668254009890299449787716469632029517457013175716683536860230927138299871118194699951035911662034294738455240499083246072195575494955591745670796432789519819702922478818328253837318753379135246034094370284543308189269832545424347599323450827282299356050411975370319382013600172878454578840617604598044616966626269387848374714143355663034093494785761894428472522720402558192595408873633360154370504444631944029610627474334100654618370389658107550196133860338196885490853653652362969233760460794075329437508104631145139674159314160384438733963714899687897743079748419765705286053318586801418898619290315044580075187084310726221659108853082693155866746763274053811548689898403216693238005823652525747902906673220084842814128653841450879231883899787299931099586286082358707586069214810943150894355677902465702122453847812709712678645347316431331691934718222528015517458506438050348518950825524344728202833996861897317465333014134543006189340234493287091408032467316351535180722755819140449450902164192066930782449472132259800197641072114599176786862953076646806269973727190322939288557093425288967341001123486666227545709956522173822572772265899845057273841714158010690619387789628270761330530752203759391532643927588584713932471164981363519745862036875638745943026480769485326679390305075646217591004450723424267182580401754010798732731252229093660750098981643044920921134622735821438189344944606549415245212864407714021575704915408809028030126821797056374663415037424652306588839559241505771495185524124612318143206940258877547000857756741810518264886029949347026350949130496534861602941247869099574436261033824436149111375639663986940306382016665129950170815336005398689610492139362564870463119946288608402116158931199282754055435666735275033298103627763987318014408119362297920916506709870639130469494440121646088290614601783179201306188252544407784752752157556206987967544719040902294238046845446740761429024968188618790334514625594703622734155907640077994692212710801215531573228970486630650159710310554968803201986679687285658221908945039548350850427619294865619946349330687439458117955027142773569486200439176129773110951190922395889177193912997187898357221934655061919624980322057782836549141701691678457352798457971988146147284206249568731758042393562781060163977057369169780467762771587955712179744482086494087344890867585660888063148115984345922164867738262194061166304092005525385065933811356604341219018974524552270528775560866837710442297833956721982569159213152914403670081007489723708534603897933898559537947844662805130325918918167201383055485754250401410651274805577410551744455220783396382439085120283894734795032500470953034895578081666330420040026836353503172583902132922265608933215311396581784864015941111998126013837931520870773660394114006020301738835067097722571817199923673765153569630899067641724769009396679309554165354386247042196992910271867430426537132103704412509336672907168887485719199419704481871017392062118219215230826744080823087441871540183308316528315577333274931259903668848563166822319110020205333429431652545696062743777801655491650763380183763305454987503897342978326093791348211046262748727314435698844184632866449323339082035073056940057883871476609366262370144870700942713612006471368772697537069519639222945217985490706615621289404828666058271676357691442801266112338158380575120902821338500552525545952395617061953303329412138918611330638285530391066799586060560948306124329021534344857793511202948088324758613699020279245850353802807180880219287987597187817946614344534237975047571200954714243825112127038275609687930552022480476872603143112331450381268675386475613688382211355365976874015815877238034105944491681722650571581608080546494504025676223271533877634058963667020675977774192460638164194964217543482510646229140941972347831820462088983598807696603126918235185723281943522731028954440087989856285189053747394415952414820309019305704019482898030066707442897004142164604543460364239557022668329054208487159907718898082716533321761209346468548419911527448459154909156706452794500607031189269282078652751276204542559158794139891877332841192829593851341487900654795706474879163183926225537787705951962533832644812000066641696403398728242806423640545203125571800138600294007376486107154720809388950492382040883237430371800642132578464155966900067798412777102733471607924668721552448298265792058368891538904642221896545053639162096575594191480706665634368226098286989658410047260407822202783078034087788484605340545176489920033518846977587137174510870425542723007952703499178016002517691972646521290332375484397295865568684586815346219484079123012825052458715531252387208875983387013724475833063828693219368865673374535512629513368002216565145044844339311002466389338594074968775679340663234224201662104948092084260518069426545413926206274773060568894669620042521675736192971078154685977194936176927365096590558053607577258266321851956093168524026655177060697352614421335532954493837904836756727716663030814873132985352385770464143682311461351130454910442487981113595072542218721881321491196729112021010581953862010065204316834835385463341408592579702057099861883275097913029586229383823649368233341240878532665358756484901845677104529041522299483134917437849031749906622846222160712844350193932412720567726094303006968056836158565447245514920335089681610946738119937280876051062459363795187252223415549205322038233405745607104243817430147830477488068752792634970843745800892827898644776498199882151642105293025942892306011824466223001571021384481803559817422275551953167765741016193298158882520823873049679066849659246524465682943184350183045876387267304155604263373805057669431164381607895063361558178253273734874095402355614100592700904863722241033921896864324135610397030524589123041772066692964707070560828339243644788700961930543401220559763991777924724580429297454271829009495317749939810747366956525976046585436447464462846688520966549298321088258033114931411543891658799684261580951528787168489244167902634232539914320535921906757971415894732335288786679065104403140501836414909270893146494981265981441293992043494096479788293809497062729642495584940315365830584360053115357010159175958756836439520064859443675916273965745521040532530696998166246163755999420435118385929660038906856895485988937697565920057249796877411935241528010114196616342409953501159322936801712644362406646557979289917292381244855051292909875141174835847533849981970821098391905590944051050467556765878372590665742331591418918679358987764849363964369487203693770969002411720854260865009923477986447947396420916693248418742952809824536822740652000710904345944360777294692108396297493239782171552232977414114714423019471035775162931138283306855515229345858640357269803979847258084334985211561950139777345352249804533907185078322507255776813460824336858506379665841163968197603100820985348511417218227489341819726284098984755238357014525281900807710833036735482993867699317720070716484121146395296651093727609392813387240763057740064008099734353927464412823263327057002602853366800246009241354222887419101954496196727411992883940374768568354176514821603239778348004440932638870966388617145195074446032335833430786761239087180850103493232849207557705074205479791518033591891325454404537919813257374057298368842328914308931603288342071100015239226632552297003513547305172695166855832210256822684573740807697631625477933206425791472055956616282600627561122972385091050055505174342503155486599684615898035135510935227938904483980498628580635309825590205731269454797809787835347491676037279543227354402527601165252626994729387576344406546532698107820432860166619901629244879866543661817697475513524266869175363892855092454250466685684297512447238019155024868328216729085580276826555513972073457070772454620270375817244845318976205550746966632576779300742598461886829631315543896408702547693615284052696477277298418082386466578959980020698243800191480383490699933403449252251987303100364998718958163359866487080234359653841895183101739134599189663143455023280053480407116946708315119541211119224318098382921576578466856164903893287874315330771926596638989353324118943806911737543493224675856260904216325851938965352226060785887695651320018569386631811437623333233879456498445499697730452969686502695577971922719446768898390801901646902000257770267327849401628522058023591829643577743423493236644946547711147958985310113632239813456056733984870044852272457593980955152053183061091857404464040771050689269525182456200127725436678952095657787310207471339418500436786985057983987937299548243166545530346427904322852653693194252433314603570583009677584905399640682869661766852130641773205149711007429782388202370122975391606735014544357114707202676711854613805196104654444076125896358235395774469995377166354892153664100625124103109968448349691567147774302499163387076742064406032255979978870206839718640870476166797556029666528587046576285520128052636262439771446049902557384847316977368121072373661848911379752573253966559624661560023761452635593239057161940143736616323795859972315162673281951346170716785479701139961217761954053065464414249159401597938325327057301972041660638946670219248672468739942138471617211114475909557428059763653141751250778469910621077358357695746873160058477342832392128142817273043333215256572484158601540623955512662291495283644829920803870382250192530089320520170421701950766733978884946370534685144262879186040438330025844663945221685659934932408476527535162604407831662939680345751679165527863668252626195961867093517442741917259661455931611658901277854246563132978673955405908531209599962047982865189151383785559078796708797553663834496127177932023766285605214825797034326209073554725950783146866459499032072115443615431944560127966657598828755119877873017504468913563349764598273731548835414011943014616935713175480282083713696883316835662149799735520783383845202641350841354846226504120846894994174954328676576873050829942016926336098235306247860610786085154206470926226561663259605937226147027124601064612768157535154597778652421855362944391501636533732349497379036205714379867722718640636622099154103484679514959424918517505680362017380190264098875427517363933072100965683648909052391906102222005229795072866178778493632511095026201752038453521050618636948620017178257097141525401009984184943236858771863602612523987234849164321328222124129331850374467404690220799663056959612493966380530660316351836445379186805733665651163718026768053219027066681581496176835950635749236969222816861312773134986685510321086274034171644118254740709655192138327985548249571740579244861602612390472358720800078612431087790680207670626537671706493183479508213592571869064564703653270259664802042646570230105049236312248115290296031912381227269276992872478072363570543187692212639527932790245681929946219571244403989423291831487444535345703198640547843367531129977397103302794092825677457892691368896348109619852471937618347521814058413139891408450175205855474435359984488136252770221909430187351415075329578681377835905726174980266139897330572967537660707196641742770485512979658292363856503040561771300888935369339971043314594715009717532612527088977234131052146059998529042270041275774623529428680576637011513745450816908120434240970653247254704883172327757154938757415994568963642409517672791032070310686179706254036850414715852460790654849616866600069455967541608191291458984318369675870891480518809397874864311339034972024187802202912677139579846569636641470002015756114786375250772872914366051562519009477882968829203642398714834822405183208629351447317838375700709407411708816671805715635913259142702976706232995349644526100700222449734741973982684509115271477014353962735259245150282031212420234930622044737650327331670494229202459221580458747734464175056500577182552260779777452458166372618589612466072851971743181139183816165119625158346979900102351508969264554016157049554883215128153804142288780170988610915606490266127559409299330446873566663055111434412484225662961923312088439567084389721817086321946306733543197935935696898384372415709352746457546896713276541121623573089521003009360097062018506843241621425363889424556923006673765597015365787543030415780170554182852140178562665287949299539717993304245515437121684237822418385234216299196993050589224784308647526284210393946953057046175496299804388576989316193667890712073363909267714579614247838493522325655750349885621591829094187383466414524819523806328304230203374913657845013944986187505360145970412703199319810070469550605748292426264633716474743856203926327659605413040454772278464796827410624868416929792492235576659725474016022147278533452223316197920464030369888673289167373348099509422711100374941314640039923901263745331346799785806940506946844587391308438590481408466372033430381515417986126045151968148606653973291085755284401635253613930193591482986820877900779481027918162763919180245512171540907817375537235886864590535066728468610584721112354102315766052098992321468119777311426031320307009792679965587347314604074457979911877572719422287482479805556579304584944156411720634087556550158775261864726432457844843273088693672238965914935137096243086053384521119153088694923811759283616435068351210638092507022348702398978186411223645649610929737460149970741104465720832994569997257251200517638034440878630503509821247586584761104649144542462988662027589346628417640752373752233303860656217424775644978866949477915156409496084376361367542464323766372284241786506737219399826447409274503868063699297208554877419351662302592899340445741844160692610185951155173465429706426644770463475143054613364116095681884978625534462321592057231254309140980887951634453262824059080401883222194188323697525710343627465246116074460464950103486757509122992211992575008999792632432647152682491119639874358760861856426356060163510920430476497815092552756532816383560027617032681137062859818129981296198401849375569786831037635361081232409952671495213023297248625890400471038202915094810497702249923829933053574712900275987848718058249196552846593774789736958704729817476329446523056461566430768814955745489727098505527490607787311043320213506913451111363677273977452061581796582808760748890098440511010906747110455206294480033928418094664983802055750844590039555983853484425691170827223867175902113757053853197206117752840435475724891829880020106272937618259060792462617867489843706323280115647918697256123476359544555109636519401795492476473288214592081283482821388990467080648324341735719258580580213442177787107782091284763185182228042816990487807110276477123748308494090114915528770086588053642063869195512599972390534161019399036635192295206149097858530604406255599991718505768234861269650838298225333889739858205039987786270407543791817527111659001832470216825071605738779221066699252360098109447911904533626419898131742190195359010764170500345038530110336648910606172304122477492427006861330001945105071259748194778791657453400721545485477542600088632431898123595803807890449851807267668525369489068570070758975520332449004013202528145467918286482870260536684137197670626778583706187787375273467539609624743261345833668759838513469938150153742791998446772710392019362062545734490991471836491507869906167059046365165413894524121947313866331596580192660697815590701325286886108944871384010315665996469599940430479810401954131410046627812590911240582157253321521518913237542837263073303713916708925349959156924492378192906026884222915542489261235227291189192303173647297516598267413654316250212867470913486602093194954736181136305927212933539934606405172598617190101860751266747612448936092029740586341024158086265553169492465405285235911207961314463711442490666334766557351692572007908548134426267121428570344474994726927301874389291799743887326377495120134297685340974169856628724893622949176949292957099104017551691575533303732313086922444390910483874867546760437431470350903892713973684117103980397103400345710851961105414055348905737153109922486523976964313470911048532047625783706861163793604602619166802168473341172048300965658396082009058181137836571833592710818007951682618137414409595585354741076155666313328047331879710559764422527139091557082197299724379607159784714530520490396562449574571201164912776030622273531395993919558429313688530664511374938197928282636756491804734181006229511937381308140461657890592940560206296516688424577612385207599845115036654436555509707713117993159714542832920381949591754861836769401850326979318268399942780120746878558281981150112988605774141514673697984954502794479961950260480205938140018418889903109926206432958369870289999398166850523236791733476848988338201541745354439806528073535414233458158646452808804274484417207281138366720644758329797620758674385250079725876755473893493049714632058099049866442627558455655786379592092777869430553138353328144675646385679014190054298325531241569172243921958905761990444686256685527319976733660880791385949367525707886169264068353997821355663361365305920434063480650774544172026158939898051061863868236571672257838687378314058200014908025637569816286724329564565903603916799961804803234086318794190956475574766030576263280676563349346873619992207954284497679716483890489317688406038802352333016386889836392325153176579526591831728858032373416393991942760826297403567603603915885655887430904595226703604624412291343977612065225111978501215419338294922246091049683155657163591887949622075236367615369722006177318666947914370343656166569646087270006229048965671130205474475218689378165795692884630163659581683704018006506070153285276237305989117520434570681247760942476571519125939205404512018949154269838804241301918853152733910442645848267129691217198914508672757300294717985874677501714607348396320113439243779262244477980377184047158853852745890031432529343802290005408531234510002905885444384622068291335134128401720664234811446600148951182244367907485753456845399961470058323282516230156944863222075943892225706372338322670412044783611725997213125285401805907907864999799677777568691156149741017481448145411932602586266704551848822206682034139122662778689468206878975931346785100517364469509784433204120162565549077030344541595255414346646075356960612531758167659304471054724279757744357615118058300083086721002461628751717542927647668097108721723756934835200091085427041229791892475527236248574826195371773709453183391670345807377433039479757181712468021028442485329362609244306321478709177028787253537830352546851487481218084042460582268593034015786129300313685101587722056260934262846771069427659479488897968700958850251392746865150499796892734396543546423506272687237017075131546604610912179031588089649178027435891009830421685320225297942157966820158478058532748209336311798618657577940140356014163386252829158821839127231348337846238550104037654708364082978654846540689979348590850007721856502598582626111666340299864896067383982948259276673599580951446841940858694616805246192551004212024787588946058220149512214542784601875282831774174894040409300553929435298297981279578393351129210472994616635416486524503744511468795681323986578740068629688044436620611258752856251334292180758641146378114943062870928454712229516048461943635070932561788361741048321191117458094101199138714731158764545574872094571112904836273614592582145586962085387372280019947816334723297296932249471716571401494088043319258598660477555226881306908735343483011183624914376762372565177841021852549534064951285772952509635427776905931815496730992136487164311415294420976685561600914390261849739346866171843860101111528151920247390058698092911361636622950282877657031783415445323933214720387647832996411199407378354371578234417144168697580938955538189367965427063372922479992739774285840897187557061772635892409077868441353497165696118179658317925478996219420620418022225081452439047734826006411922622510118137408279122939129085774281563571875812577275254862516113932373515543918875485783076931352835407248724429015025046990412439817898508598057926804445013597284324625277533966114646793770863081996549068309458255981736387388637799669761736154037753731084378882994067952394444537377909618913496715933709520437782694730033623417410901680894502730944276752947996053529464513370244300231238193733142543666355210179324581138117059539693812821218291170624965802702989091716308643498859331303273413281308356847144036237509261883196904979641280385994958709270158887441120321875798280221826500971982137115405260838065584738064091862273399600493118215772924254567098365221013853764002962293761377520445539924228505173067361507963339536981304596709532002890111727379087205563470639011481931453624748790422320681915754096133452933974422960861784612438190510327563105094651350120075833523331431139342825423078537150683765973334071259702102669714596114979102627248111234109734890160834468986660280035048372513659538138541308250408709991359754335585949310097002762493554553003256274270725115753725485316492883442393347908011452136156959470033301557129544903222176861825965005119045503077995647390312068504153035865641104051195262335800818050244601959280904257850710046597694476777557774577905324111683580831781228088881201063758761294998964514098944071568569107477614891452600344259577533949819355543036194666163818503518036425367920219303723948834269542253607607940989113582650931910786882903814638042749503156136836670664166810043578876477112945427604570443461586679050744212207514677256435702735500805952210343176010672106644078895760226095071941096957131653563596203780927379261851741826428340427432540691895051163490164517336425279953575081848491166251011967264837081264982631698999216752635306580413346273059429512838402038307940352264091492957978957863053895468012148890457976985235749647817881304102390399733801028024182259877465486602741739902680566829090069594851230468350433811800211560278645116929868194766260285157770025811859151588262668195614766738239965885699477342089320330422118852627298706916913255018008632197759969915134923715405544175582161259120911535642118912188828682645625147743151001155650655168789735498618112881202850335411253658405100273365236122422927400603356794730990321095513876124512616024326745019679961945890997278800443788159317433937208975891198740424250042749735265313504971271059257881740017164798479260440200172196246572532284068949383098087318454468712796904260519718703496255718376974733919635826582552406497877652231813460152060274354985725558381760752864417548344579498012120990852245176551439000838331116404622863782292196817211125724995674335769236564452756035644565006781543427332255616328586744739694610915849166869733527278587785021563867522349837871093774029028475099378762483012120211689858667472984808440180384090069658369184471159267593621017763070469719581313915697150179335603084623561155544541349519519697636085029895975659755525425616008666644752142844784786020550215549199790033727693428213362294301827338429840182172857488551829920903257420788194426432519884678097055867243588738902406977099618599520297379271395334586594528186222727906121393521325943988810955367854155791440614693220791037912254827449738907045582959565773529916773229069015911000477938500311805396394855540369667621110466080235051756229227022224961450482274523035410183984099900602424123335755924112683292260891672865848087857278687451146659586948983515018202196029978251155984528839880259071390293216432169700612293525808720696185184405171278220148061485575377042217785428520701893251910532260310938327828939388773302831815384051147397079756039596526708423236158630044829265787231367894976467662699539395124546330024808262671393143930729786785625676933280313176925791720616361748639946077326790379750501949321748316282260704488189722176225360517461342181405341168453589084519317986281372840994986086501475807968265142768414659929138610951652757485671338571187915277896597085628854329296117956065101093654827770994103723636581202315060961903362180738065843965136122648837794529815864375875921018139175317698540158622154631447337236294707050604699502762419678505724615479440361637670608497234462754496278175660856458895836421800916187052705539172326023271152545747810314347240287537635570236108046521866341058345958734788522894710286241774832165276125555559095967545322932548853243638230491876651895705077896119603934499660442636105465435406702960920704935252358487814944850143982941377873027633937934799635241677189872381558347645440396758681166523038031147914973139896487729396715381786622367547837940197974376853626743652631049930980738361141955153177881758233855882518632865520948146348047690711452682788069273618181312341617147732235704596353405458743246430096397141483673200157843989506977974695773256933091110647689908557222246166660946660947899153595227366158415778366449143174965939610900005559875840568325443234416102820844431588806731434629674695957624835007830303319998152912681518319365073000090959458378875866550430009507223450038516968308312620345887372135143613039756866906590981432132591825652812116771794378865944969926032439144731388970685006551537444534794512468983272207790345354221641372240022142648869895668267829310893029220666917046888397451173853033768483868673651234843595016570502089734053583917560645584597082411900728697385236690394319409511142695510981413606820204474927521719866307919667717306234471470930985234574035372503390219164453508097900107973192810498064653430633774782307364314553152159145006790369414688416888337908678214386719005800619902908057552419095091713086979366089868999684725357845096584717324704229174489899502298409601859529834611124240194390763004668547443474028608701290376938277338144202523368600266472933180643660547027953868679926117879700711025973249493968472160250324660477566236323233140656930385848249540258846520073494417091623346513164595249240966485395098060331532113985043841789746545102370557356339073666434497166344809073381175520967955526497356919697882314626203600918230076481154819712039014262080754315255895587566449441879916276884894738570822798597944335407933776872723246185473249743622778679123579980592055367524395055529549939041845478631916919391673646832114998308226181009780510803987664063864035118495805274965894211566254457329177968046547771170878834227096511829946661505911518521054569148530431612372558630684105728593791919466093314504435207760871015359441700339756223276756678854109605078407942217745224805511355803256969255008150382753307106698689295346817273694183337736614173436461055068363879810017229330817895999543886424186028703639252028769934906822295031644091282530603194448707065169259942392350660538202811993940728179534705653552997958258882556288056355523593588725863545159802771435340133356710898358931566964157211055610946546917026664977585012299764846103333704787169597444658525124357086473283042117643886598549450979622576391033772934816887215132139607092986107504189877635381273557810041708260743418509517121965369327489913209836147855466635280128045431575431425187646279419814936472310771009874977802085097391195390569544118063034609114432252026571378092820798794072006105171373604157978635054108199936224375579817563617759175644686082665111455511803884137866360920237829021323030544309385372593252134765383777345244831177520683135572145465858069242952066344146765342698632556624187393903875794373538058501040697037723941143419950611698323868864604771210998196237033587311109178606384892706142145282778159127355464153383829780515090431737083297779463748839855903608892909973643951048242537025776320789585244029246057790790364328976986556420836260441955410780938407416321296666031641512634754616197579007961779210834436722825994001396634650864780705670963005366364513221496177535670974736384298767796326797224853757780129092918156851349012848743527199920122856391479052436286258938021125364870193589177637959258058813595756476876018487502521542575935779398954412205913348648937387726235271470365538411819772024947799313855454239541599552248809451214797303988167062090220751770951442416874254208507126055769310204356253731907913982919306802816600069935053094913213369038668657602927428105315573419453755963326852960506266991537910648880138594438358635912806070457165643280194415164852023082626748521145087140350662952637537947599330961989857727788654625198694197686084774963028963274826193986625717376210283005942241940527983682257969035635257974714558024409230568617878630627128872146948856303182879621934872112333798662307609663281003198409727292810234908156344437471598164983165075872935974568450133778457765681464670167466905903318591588109581596733680914257572541201648917415453726542046936667559468699672540928133235464748365861589918724714164225114356690773617159412145774916993910655880401369984065215759201755491623934918442678877996567885650697160901810580470608234577044214177004611234205158178578649099917023213666864692439582275982134529002048019275770554105655669093336071504389832106043186258979553012113108887740638938803067968603983081940069813038695938101026940763297535027198049438157344544650783611001341952457765766324565148627543257946463489215406491956918797755879316701861834439667013018779803447380339248374193391500400204165536758982153702295283134130084166305855030881300759404508213997151184817174368951263895929809374193386551349807641418767813422259537187073499233806864621921600158661602242420344172439034080112795986308442619977370998993760590175039298763196257940648579996370157336508286330971110594872380146967209348162312801796362447419804472070574913544717685585717627948594202337525555374261798614091911914969417121847463978063805522202121157499535982346609435802261889377528110994103032215777765997017376051072824591964028747507828651560917004715526143371467280333980680789560176058056020689332681890112989810857363787809026864755250686903509848215453163463829638377520449336323443362332064511605959512368130191559840863666360610995177715801996940756973581585558341685736976019635581151952036813084977776876090765349507380186742993477190525844663280790255154604803797643417610185997243228362413975322204419048684016357796859370364189130763512039356642272986790849822239294854234202587247279512745820265753753655361280919529019054893839201538774066586159981964156596891313880752937129335339991596945982394089871190302304302040538937335564027404580211206123496735059071282904064870744234861511296527022686750449974925501535004606713994355703933237588878715998312491717968567247734816387420204847336574639038767768054364932041237238688578024196995456375939561930501578141095694183462828712685355381240061295715430998162537704467659803763729193612102800339222870006711867531401506839269974252891238301552316114245339572662189337341315231499420063598142535247178268003871829725616455498217790498321869607991684477571955426179434289610562631932700827097585597611672704111290357256125646088838015024921453374680939118213368057756252111473044765677578755633056758493669769441561372501927805651820419423583506831144376435031250411576510627489069958912676995034037409704515677386616135804046023253718627989313232670609800015017248439756856775214003358391753617830660927862821204594149802274521217939197395002415199558056221252076619160078654073670416073087856905242995508094278540560587134757539323036231570838513124245196669778627771271443947472946283789098645676846589613001952857425871599368980626571404072027261590496590966476071892061957318031518744475609345457091418985852817421216666425690478283380974765291414735643185318515154274593742263669168237695214447720026861556395899440523283899622906057070041133473943846498036011715143852719255317954159923895888730522613381890336157422112688160058199761051222441278586600378812753489976489009209010056289544749614880937758033480077067503089016004218092624168045423191020576732424691319926112853661504782273776848745492204256655559932807362646652738731635074578305804295653026814338289356220008390656339343042111056058107879481142778761449552090411568951391676269169112870727132726062959411288031096398712376498982009010133874111611536245628686477869983056494467284221371179337543685111542374386429498963485394615851376308147527974967241560704080846272571349103019234587991202592489181989678559755447932699872942964357965547157103880252145561812920622840267392907625794236162682685578473022779916755922343379286421578093363710264081737534281905780865982610056500542461544810881460788126692054648153654370694879402770767496540880236428919455938786331759728181186007541095670555713547910052402040329014654593331464649173829833611692056681171106889692507299859862456167339455335922420538698626434409197826429114016400164693479585711983506524375984580371294504236376539243130968728557887777079875116596212795431814710337151742815718125709651356866996372301657805162498767109025934839466645746668716635403725421953426232316804260502796526911038295020011210079743629771508593103706559230662684676779741576545552444717046774023362163358597506955497666193699493945122598751412350221340732247948921138860386926538708224697250868238413377699345654513605341079730076803682940794135840777081226582773675887242503694213209205313511045599618706098787548937365232755042664763010777248295880446496641855521876639871502098306586139830381021555238228381299872904641427611933241309659756575779905687680202993382530044282000945368926226201825487917382280386664450526678728591154252533843963996941868666387281561322046395324987670717132493925788821022691939788044616911937135896494124350959242560367349927186782984408940793837585539698535494841218583352852862662305776749833725805621383642183249628279550124535902518516564385986878252829720224249199033303290882820228635974919573376824108214228731658375542513870999233724959751783229640040515405554266440115899590133218652498456429656073953646942550764067151182925674129250962546947061147430984372737455122587358874575635635992160151927384791789346056409142155162792273283891809433077879336153343055290541540631655388412113788169408907915784314075482165389049554869671700222385094751672004563789428894081980682052993068723276923170203668760710480462723816474782407014874397091103967435114506046978011386688985339476299490144744805798498920175386495151221053385970191895375366184397125064243078436136359732281032223414806611063114595734771052188923333827751073627087246518032310421875566557818011913226984899310847282028232118066828349682325273924834859847515070398693836914103230644281570604331836048864904633208053716464315722900831924299414592264205582058645124160484553535142200417444826529180865671918755940531059042460758976043906978737410888126597691159144144221210728725246429422486347625729680921981171683358470523970948933382080524310551484187105821779392434922543725038488199565080575114323279961008535049510219433034035788503882118723674158432738269110569694933587016925740752402695290343343047063800631218520502302545892916992062217146627831719551162480142110192616357064177542788688420164030349444952996152120111440362193999223228237324064357582396196182908367886292317171291349149790045938636080530297116986756609405813380563622346505162075393008607177997760580503854645626366201287464301414844918962094491871584526814509486622280688986474883140527965568446148085772384096393197747672735877553521901431937881994254227431605261878831144587588042113887677092001907284528610864011953481075895056006344965936094269885005309787139679990263112037391966263563246122302197793368505423088572639598928112009709172708584870336619197257835603387309866503798806113583718164804512966220168731199076645051138939427747374692728052386200612124766297997019382718819054108314600286499488145138002488490337940370441769666781511129361245006961419187973929709898382243042288821630418919549933003040140049971401932800466743192947615781951795899446973206217007330078008061514010923253045347912066618000955037145686223457520243258746202605562092590878204024828430405358034422419294075176226014298065128628440342750740862424517569585919082520594258797990056240974451067250885375998544734034720272922258800053975259937152457611317513745503825894753133582821178768036586339364572043651085528865255939732323970320214564121212421932795591707682493736241901489780274138131734894578053537722407605993268951668198663123815616714786796891861735539696716089647885680215855627615750568253402014260491841427140087712179522438246393447709837876203024207956293016016127219734249911350643325933372571547393111110211245626876672542283658065077006203283010539473188458113439172226183862844868983290731950349672968976892943289821581200631434754918043066135668320323471849321729997004306009805029706616003140054085597422656517684664289765786700869483752396247823997124873651291281668253334239071871691285255068052777441299072824341187236172014245150688015663869111906388793581704267005200832893894480536249415544323425873775850376266093168209712474266675065615347223760049070691555900834630516179327141454831560241180884864069345823847926000843400419236366074675706967725994386741314770591631872618471037062607851005271953028337977902580378531127745964616875130840714867390875190848751432268607354542033593548701063825156992719608039690319487037258810390580076443742819462450674143708091780499947416200696094646781857842482598462663984188482154626420123288007866788235256750989691024843090914135221671067774942483841924498776949768355825047150184869402252291081656702135438127181454400910412359595625078682807553618429568209496909168268156946811362158868056071166574931558724043319609362179418037490243433413894426913736887396607116968798927448110450489708778985922848778177262162187897099399417950643333482045489141838981229605035816622066781771974737360208891266074272515101166787391113620506754498207773114917288725011998005378272039174004186500583771012013255977570855806822345048608461261788345479927518106114863007232286560591906926906335703246871165466491108810437488212944412224683087448357684763086629825912352289534489025865922182745131750102807271337586622586352617926287400564056649104706840881571912838188545209905718251316081233660658084366371529820630515157558439865193872393810429543619925585472247113942484050275431390461642913823764227124152862468094752125812982228968729272421398458697755137922158752029116121662468581733922981760859613748879760798627215456733692877842414131861824788967312770869535008013193251608316050286265636697210091016816928117601478423231242250151177863877484594092511442735766758347318685707031670665546879682999696208181852092787344719270609764470232763635735495218676375718904126761638422937783660970719624934544008309646617705373669069673091240415656483546749402155569708529557503938588854179867237825071510774161742735819999919615326769434288647596749512677488413956404185150278924759362235620419740368319022586560972099767912140836206590234750233287623071226934528826060496074908512304793828486666966649876451253141931867699730627004173093341113668792447401356354919197374718355962088587177078041945089187882196429631908535798630378310692461006088811608145110245255419632036596702315787972800807620849184241472542872884194672344211173312174625333533807669180211053663952306390140852364344103080958777875112587498636771537502359639588900648977733994744146284210227870199197119609730847153500250952912982229763391717893095419279605213391774178963188603825124456270772020834645174723164356959389494023111851751231042755301406224219532494213874318444128504236063981872255357838463046802020178744552320560966130559857968331395716680236524997271371030709553236533951186515251965783927649895936711504892111985268438475587526445052457590229770978814399257619786177109696948362369444465032491026953229247288094005088704513351733053434908668549237200800900647222854678035142331402170740738591080964027602495619960793250320202440933204937237831292428894352006406706122160360218273811246511475138827490549157327918948131824225555800131441361227476079295260739810548234814174982715719950158855910482158929695881501100648269336192452935172723879148786578810295685532660680175973332889655580469091991618828647181563867682233398063212340250908042497642562914086664106831856399310998119681676781439521308609979302293448305890987030609047225255366662028044551974935000404759594200044938433896738433565405082740801068031972704240672699019070724583542300665047670531958678119925274774710769318772836547734759209613057991684432455031177289717281352167211559951037981640533937244695521122693054395123590281190361303491311974564975692270877192837705989809752305948378938209282902402435784081648138118532198232149347755951736491756057431660229176221361354764813915515709736520736642373993951872421860708639157743055630712798102797651117234380832776463459410870996099080137195606466906567590213133706922380073986087446223680247189311729616453942506827828766448835582397733810087968377689933593127307675514182133855569330668529961105003904708016461210240856384169626377692351268879313693800286219522592007804226977777404845921781770822870209176814190189745968153868658057944760139456453614028322758172665081551128998748526217790611157436169336187492760657761506053830298773326712083620174077847354506403007145349805684653836330027005472170994117053489064291184736006337060210927567361513338302569433293161039068971257938114769686151270358823787207148148649317806945268758279628616685315951257986456289743171518209455440322927900747719893782087303200286733073247339586374116565148337607148287955977091837095087007122782965740377451177152141307305257978126582751307929621992832103703594173403891131514990897290896800952663366598185865010302035534788054204691481517421715404125481051541689703479200667713947473486607655741569213397427452231963284069119439623772868076151470563900538031983499820496456821963274805898897212763106494581179940902294379737894200104436510997628031533907947654566970886939482482040929738449770349901693026017681182925191936229996935915261830793296078492679905725143105271876589057430431751111529310496378117871985645502059334752060178163379727860846911525162217860867687084708602630271453828351088953955132751131594948638007136961066706357102710041712186923376600999581735158657046284072363313969713463921974015582120057692507136677283257533648147360250698637587932359167994268128702112023379652255084948136890858508287848494435004268844631883765519597845115740006484845282580230212591513915784372664057329655936256438784918928366662214931605352723554597733427023565099861320697436508232726312874076527488459580525340755477386452237312950314933776508189901959942692278349826350317921340517726620751505612030947924188009215138060860789999023088643621690344642961750618816872153079850470099507242796844449533631983981760128561909191736583166764842080751886569387540072200934113685485817026873213788005646238859058882100531455848506409188868292278408527661861575683778663633509898339448556957871980040660976261494747280517701114122668572850548576409477988850555337090268400071744124744330991062472525851304828177296806890072781264377489253668468706864785729062990122710175114154607625446455154851447892051578373503023058794856866418759514706277984704381571979804941962422920115631749630556221445836450885558709668583721241914302544376582123268307802099337894309087282594153270973634268051470669101808775662180032007205283690182886190104121962948645510780862529045929362380601598797016398616460892555734533149616107939546208635475404640771269644563098986109284096319994795735466024322120213247871301149407605358507806016665810895163413479546734871277646331002069221521632130456596849801378554831123754066516096027942521914470696909999422221711076920968137696802844900163276729972891263379168229874006698473274224063736429251046630543284683487968289513982705498621135402745821712916016551383442281454320227520394202257639245540022591306897930895010660094861344959443127309984382532360574600312235423349809761645473985171407503978223695739408309227151198870232261683993757655899914618309307396814085747347569271558876444335431396149220883794843475905887861571053478057498439284331679484200333346348125778086423739269405017534695244294863455569530550599090750117404451940672423922808203301103667683170681310968135158543740638027074978758310282857656330873945332676833123944433447005715796086925302411189775158692124625421628680481209140717980773329689911276226985047394447112600151223799759295012705454718542798842801098734734566704595048026198375395786870827773448298327521669232383443517711449051738088984960501629214127075718491105055332181449445445624975438325463660007920322165202039344413905614862247524724695512225221518269676209485465669397184149999175791435994787288241175435540162086507277003371373547574686076038020665882517875920113063806643201075210294493650050041155024263984961794260998484159379298261158643148877715939855949032809053080280172968663990161480795427224166972163878244810314381593335335266584017584577723894771717006467286648306242834400597586527810898095183680331809341609012843704236826682328883645503010510353158641004336191827303063464204141229958237392093489035084287100182288417267618042946477722454992021969384910700300018365041396811601011247341868797700079201490318864393652303140515032371646076167524006426124614447476009971507114915731344680750065300569571682592932013915970042697395484010481106907155253449384489526498187035516177254838087692583242290765319920095122878895134874006477185194580490282233821855956185633017650564496146813562199764052735942202241763688115524297275775906844246720419323081172553652334784386938144017628118754708515056663887451286606502353906222036624231342958205063561292501347592989189389830114663134634194924469497957864111069481392662539696703865666925667586202668447892860126912587048264256741146074203177873782695072136260711183913512444357892701327920191517801477632208861208998459070726987119948346992031061945291603697087446239716117208573457506582623421113502789097833233255888523773434739754971584848332783589725264477825387426051041914859942465645532494288483014963380968523345405722866306770686604793695398596443148207743319174463167133745862238500791850359872447436985328124617306128688797209987126335634915330931904842067098629469221452415058118118721254329202482342393310382440838657560588857199852265860836467924233266892872104305547125048826843211650461561353419881144907208487196215371474574575078816377370112881799436883025407320128144519719602737886267422764313682582636872413844066240586086125128297002505105245492540492242964122812276598180213527226478935874122687119359934254654565622056416478955989937336423960488582075114173745097020068815607979506501117801239701004627213170824478825436268004569962773002730743632103642895979115310216545925256627063744780452009930689005010504990492489551485132084631835184329650919971502099652756771018790959533266125423606620458409916077135486455514056738203770049694178016537050321833463340579799538773108499979743738101388015445120818624247166378892758122436047522878396366655209318327509790353904043560908192561959143702770391529249720820868605129490861207856510457345379103736616600291503439283409165919660885842890727421278848042181283789656393744433406167320996274056193614243678799886311926102045454516306302966955064932050296923730425263428847525446743587854603093407410477441227361621581259465456336531060402206291258656962980252222567851696292519219951127432953403385106543301754100596030040963515440718818667461265793863500498736052276700970388697131012923587341083137440471861486473857647128328777627484320134415660562598164681643597348823119439994320967536197605147920307932088830847073756866112106476689813592000552564621926427132621841777919286983540629265640977445961002103047746018635549167626023578682003239349417072194030589066077994217398903734712230867098906022521163134503016716399178962762924527955705137937503118182687193682760446416571491481373433682295972886748779298314907596164221783085137450314176566602553607575602787455812276087555121639753855094200561888787184146652271596829656177502526282128941628505976317616757225886056229697828640772733941914844458037766958876189312761883979753776250412089960615425750944036467331661527623512949461812094694343677572178979890784384651976465955849508515192194439106453895041758271917738368070023469890269656546747345073583751963980060759882259801538952880430368117512361792840889588664026143762487054980422946576427217920425086127807353763620906666436841716090419103027240177861190210249322260054358435767920187520408716953873064278242889717602327542939296564207238892498652979026516126205198064693872520731696742913471099096092067100171401777598928349358860135150985294902656841854892969033607532173050333566867423449738466157758522220570788059272058808205027079920900495526434874101627548392299032269737174756124165299919275055835404100643701228886356440484209564894637950223104071886512645174526006864196234033958219683774244320040197271015619502228808853210155918041075103900932417340915792813209866246421805023298341296841646808329380205659398885316143667379855213502240612435786981484198088573811846444178193301737338546354646290572171597576340499897023301446571633321782498150268509085500799657925470517757357232260060975405693878109064483429589134006469391182446202995182182612653320748284177312631992533694751101690141034806777695436671314657838013592328033550598365182127767183439296035616576288943798852782770775425638684047277096213592948603404750157989554914549352341850330908753358498562512150369266228901274525587737015826123951185249677034685838566661750303330334790946879453579794755987088621633829882328133594172662782273341714512589579172663787777465520065470426258994851113426310923512497994762629586449926987195767685332006945602941474725233808282195985938747372332598073133399887480770925643538042541547384489305073588736025211967949131453058279206449795002590888675256618671305895165426413659731145761949026971921220687780780190102578641057334089335216726532859964153026717741371882609360659014877399587672407549721896412792614369949640076816816630345981153428336268576565277350529382848548631733956106223021742666887489943321183739550489892617597701246803639110710071736385809949744079308317629087795311021737379400449909739576608080560652575138823733302421120617603456379287272623053594033038990589122565936591246432064676171830717342237046908183173468632363813823446710001664426908190121221155613932953366757387034589227454020117773639748827050909386593861681645426971775176050946183096564154886991769527514268609000013327695995386900383543944708346510052671724789023896583673848604949684074176202246944723257879246079003437412577974697716763441883253060320382294007310439799520835750514134336716272327173096119576333953673408887394370015272059083933416329892091851353979625003007809604789336052785522809424034020348595821339920532225010039504798734536137442559935948204710263787808673310730890610689776778604438921760586601411606623901929151975787367110496503638141396186629160871485769524858095803088185357186722077587189860799181564858060753324466440932389989765631427589819627939331587918790009537054467782296617306756860121489395699172531684080931324708706811639111922898921836478011748878575185512371020937710894442391158404565955873507232017784769966891018599830804218001684593266512305111999386455574617855956067146654897362075400244578793422027397839190717650056306244061542355573490952557185579962926573071818537345006895922976293043613750781457164109879351267411966970427011501440998447160909750995862460123414153046040826228888431726297698884499765741819026107951449196275344940154309758612088429165296943933270590637101763941235307611247789114354406510806773390225636080351676639135019560480919494957070889265444519540688702137749856508392089281052669872572222388325825323936896235958125885927630535474926989931659945409012071722470574353917423425906331329296669292165040432586034901556245308651799749240103835273650116544118211508561607069839721288218087707002140172173859522414749373472539806403036949009473491751140745185770890932327039411767761886567770543710223653365219052650670941177260614675904780659285108153125577233606129244339461760695777469796132902958793006095786964003388220653219989967956229908538371367282422837677043510827476020385747828833226315155947845091370187890883965665165379159234836404728013116931052365302185868859076955219180367876965462507735971323535616687784888477798978722114729494278388561831508632369204054458189477033644549363225491337937622605125293546227854115258899850769708697846971026528930492834440029159192086011551470044057133519659400667097481334484578807932864982882664564221763034692250131288877275422646456102768048318518754132375467980015968456476862339267946132119678778366097627430650203292885713203827652085029153908749233236218067398846239631456756228421454267645364467100047589760768118762829722053914196474773982159649105934773084612619244361545828996341740812084573842783106468646970150884025802008437928561645855743906276093625597729354640794930925785246943839768505067444660360310847019615976258446627916465939938901782375698413427448557836984342431643849725792274643140809219242366746182404221709434623493680439086125876112289672188442083458996499181236448579825382826751818721217331153868605410489594685027593345434215337086394947917467125706052672404680634698737725285321762557605178420467861871897954934357419382168259362153847702857874561650199522310625476580516148458127133763888597548077912323845875775289060503284134847216446381516671362991477792839028561535810152577358024874971292949444836361125970654111323314589137413613218070829912919580668170780630001440990659539420019792567493511623923423159435647338694662949413735710090013353344336317951659775524509296223559513211862446804764801651126736344020642247331667020004832563312451233253832096292949215042267174807788813670691869801882736888232296488373889613978012401667858295110728727804800563333064290942996540763421401230512521286353976599558792247496725413910522723212820328279461566207964072948837487162229621714217139142182798806186422792519184227688953037392699435548308104902791669271607656899619249740030882361296491163478970634825267642229676427829726490118481192547329183110765153355750434479555635464285645700238646741340712454552387212963475102597060117411991630831094173179444951083354647779343414599850029137103203876469544153127993207037869677527810653770681724999150391188749010367392048356354124692712866111932325107489516062261425311517057961384553937206325918375246403687540800093609812193996355001516009599538489275391971999733716604579398686469590455153089857657084663804745754519799787353124746208128961445299215092684936454602944070002173494008845255375806850043085054995087917936001535454410382167246395060603535087570696207255456354273669622586708959612106993936293983340191750472779040502052571880041279274246702359432792959534765397114710587003021302065261504791087194118241000170289324132228927793499851934511948760150904491103763401466509504178650402760978507746229731726273470234176579890063475697456759471636801613749593817982456750028437391766596958602045954341367783462916492968556649268916447329385983351612479608910944438745345428801344719067006585560671381406715865148002842983967222960614140660936119437692174688209418375969130224380741836216386638539892200237890533815237634162596877859311895118781872369653836445116604167392237876713918357241981041469242833296916862143923954561215463701902231114666935680539173301568131241512329705596079245378327702083655863377636409909001040701079876154856621904219583767654993173764532432664178984533281659557369481251174327423394625176009255424370844993135195090599575915782388583771836981414116648262183834219412716695797113027951696194083578181655530999656815224995133416363823096412458061341750557781171898217741347334084439608523918981987078764046833330315704091378986588243516223097766101766037575823615099097828122135482819291451601663282003175246109031975200581175103362525400071942961060242110126551416761807298277605948816785990850606029869481935029896184402897046649390595354470330081614593733432832807068811798670344198440352866097320737652204167433049559595152364109800625482316098485386486512334202956015900584201270596425990838100377620573572081558316831583835461313036100350350431045921686703547568767700297292555305760667756004519353090082318491573243493740147640611343357573727292926734544170743730590354882349326545377812372837577763765245593471552522978437068583066037964059891620189967501083746933587414463865106069251371439407931918491363863325012454907092149245331515400386057311720783530838091890044761719592623574727829150629998491772991030650541588830493712285865533200632117217060072107911324865275010075025592513679508580741247922059504608159104911075742436742899579160102272435871679099117801535843851708281412250104302468910243782971099091588273542381949747023599593304400964197894741619616657851025678284949628968527994558404954245177336618680232797971105404142877495639288009809674209931091638906493213160395242771824681457829339054398567307392383102232683257891100622221010233325559889512751783717019102988018734224708150448146924503359248590718804275363914053265306970606361799543714162293582259450422856487017144643160745460980702105180964401728339915241308761423841242520452539792784627517958510910827247548446040493563113728224365476156704580019942849612654303300853854358157432668014560177471411820289659399325266040360720305456854827845736246645811789278209264476628247726343466953874398011457622921238330356659484093356393196130303107369027640915766846431477024757322038241381380476245211353274644151866606770193543426883135817972675110541126706070321695575790451206546123728637416097020396974522267993772924095686680460765273644226890752889998009995239392998692939850944777566352381655351207006449521739196563772171653517029899188473328513854330948034208242828401949876345134396809985525116597542879968548231964078414026185470661428824399232058227172781223318277931941515463782293202714905596843083759888800126257795211866911377654829404635675907458873956780216356934599240668860039239571324864509778793406584588626134272715310688969828874916745126967050679004638019383151962733103238420115284023387545609019047354754822691296326145908877604276968545530374204043514974152921555661027061948344490706467933641054610001468392611027769905084963926522091871329308611040374808164703018079250764385694964809824939647517385702906157560285849745786356930707757006196510872399356330117747172986882348191981039126723482116370949967619932638061485358980266468405184756024219847667540116109235682187014387097992673936817508456215489553681087324722600176576671775916329432209320537378036601965731588758701709495073840946791063427831213246511951166651288174693427758129953329931289759814550535355726881952251045805408455378453114111142861957866199520994728783216418741410996786542823985275057441470932783803381568107240499376962298433292925003169680876329711125008963609683199150253799971656910696848682278849248382034067890319403821491804831063959593751483743780567930370022458817894013168930854440905264745366495734072489103025231050151114723363437177261814281398917743093087842567299778999869303306835078887633840182703734410937105141728158799319628497817375894216324492467448904910218617109595216812007496988701370914482659349639599472185411374552402736989359459345081880351883755924309741784214651019742105724575700407450338582675431698041364410178062802137386305102014511503656954094564474083051149705669911549224894710828316317214064621234178241529837335900621174119857197346035678831083167906242969492154223205199211522020861041681683368905461521104170729810017704189523068530320088028105209947566269750769815948063899818577142003498821564921849602550080480551241293758242966285815182853306472172118708841409620336574972106652148544925732461994186064535414018618559377239409257214853462878452724248457241596168877390663887441811700533164461078602165670926583341319444202882677406669901690902889176102456913413136196601036375245975855545431749840614601259315045888570206273063134507485101637437938983803095855090502201577388257583687129301684359418304991183308791463132732331950299567492919160624352134070204267493242399043723377044499468035298575128945907737747449248909844316439041225448393481632143720464208999540125316837066502240561591058735281501977914243302992383576276129273164135531643800439156039386995234408478114716607783255633774835801063306982695637081357333421964606027471993397175276141829827271245980340293211503408460697952937031791709211590458105477935734321219625326210174622473835746730661796698916061399106186382491472110823516761820459383965984214367574882210154632864808820356395696352170653755683106790615825873346297576051208445306137840110610837580911714492932099146284800449718960236707085249222318079250766783575855152053340048558499976874124617427555002598290116952684136616576619420531775094472016113560147573424728503842111458828638131915843122953767816161587046172394486028524734536902993443150254712153062447766250400087141000061020037165732247171060380422434366601841238364197937846800059600997149281442784396354641778851607947670077467061229877138470633804425580730741567829397591192510314753715287766931993641495003117060645758835194872442923755219240436621658760297319646868345283153881092413328317674290211277896467709316957129388293421910518100924817100265254528376916793679037046955777745901026652960791967602394434713284440969871495085903529894263414036127036457034790287840326959062877959389890233156602327292240438657468724287482867955668387246102806609108092847901188223232049336454103150800748732343241416588914591677929461758581401541859645553238815173972137239870716524172269521630805538846483331332242303851779525225039110547307798584301715345676429493873710531296692161248595376034904846103203603391320182647729897955638846308539436040563885922325416380572927052080384409435926766284781506472848535093691470543691342339821032401688156363924577576106000864227840544199468127878235395801330296474923143851703489913654917720914297775049687600075562789309891201818735136818648905310223460741339466655493236588950194818927605933284475159031904947440981551862407585562563844356363409815788089627918037103960211434426304178279718119786848100015641885094789992993701174684614914764426550859877312122618762368860551681566378042143628259270407143561068121862376946555198412401459856223813906778988714600988490202726648024229059331843611923613854324280112234741918698739014923552361578004530301497438243798807300215593002216732144099745923672743003470844367845927934043733777689753194560881458749537182740960047261032406502816186031065426999593630701628234100740598205225768542485968266491411275815871710582912772453357337663414803151898569651855090297799409238289835645388878750563337068751585945465512478279204344294849569349451948069239317959812405705417884328685236279318800303861314635020188521663818454913454830960709244528151112950593375531377104440323938315102509529618790654265811210874244526727129543231149013830922101718341879475164824422047873359420517164376463600813991232943079431252755343975289892738741519633565350390302812036501667054437664533945924592377688942357127328315152992731413325901845607473765708869660010314423859611816234576881060901968189712083131743094655009403748816794366019834986241953106792149724696969117673839516252845351535050974947019543788037755055413627073003456087207429500586477655485025225243452341218745393844017117501851332103970265744285322857331136824781011007685438155876288319350528858299714569838737405754243289619936998465315149192687879198316318563692179709286531054017346858085253172936837375175866311610398370478964107958206875892014070056971313765477829263908707835573028645439285357688695107254842169980792789242340631775085125568440167303484259929899998329152440963512101459292059341819955314396483186638791742417991469662195066676072669220049357345235916098669534894187546878098469711209157658561372403515968580109077964299823186523056255256945957047296014418974006376880446349198582901670503148571691992992368538897030734690635322418138575103567922296680558037982254015277354494759776553712180242136849047588502872951704076263295093898074458908118440259030135831974262852273932793479320884539039703718220382987219198717098888770557104488316622760750679726084075912015338615152234912008861850383801256452517256535322987009382031961556128286067862321869142782217945832238389835908163268508508286265938837137935679435558059367760269056181465491648704126881798862880685004636212993425765735941083785349748807884645459001766214025904430400746806749528032424280902148338956248817599128624168897477918237586800494214707601265216280063101130659243061389578600545593617612407837939256963180582427997497739208715475083771714491984254243697649934993006339337700671417989887230189328531042300285700719715752242071550849648538333019463330271029649192568653006522519819074307162039800838459946135378546090996174269151287741587392100245593231803357395491023532210431495213538322188435660211010039314598536705887694762653469817583947453648290567357816809352526889834349448572744302667667479008444732129707196269827221922207289846669125709704837472802185415171726767562553268048163665713850516850504084317171598197584939084281603775365718722604721586287835232641378659041704396491875752090758293389096514582080140986310824609395859447600247328396725455116246866757218168154979459064994530341058937217594085386352916592340005240661096958360134059646629445563856224533214696730586292581508065863935418630505382106383943992925709960826955392604937285694063120307136429011073293126241473571979008306456583637899086248857569277109104451993097129326115768403457450653898683893327185041220472439674977929442594806609117102009999092313643174140424457750565006513648937246330236654699706920954500014953671000850408742093003990554340353493814008242296983753952163364195618241594581278783967712275718566076977949618740359925665461831837402685778283398137002809968728389647888456317163328286536594656517721762427469328606112056769986788929263851070796106892804882206464164647157695258828347188909820326840585983058203388757409976580702083685686927385151226211012043225047149409870966073511105753269840299409590747027872578467379215869319129179520470088088754781919341661379733633779058917995442001381326596252247525519645412845121131160928143820643689913873759816319951672875523329337611267494496937197119867220974552313325485133792663909007129305790391724076050542874870116011233623241749372514942909418167344740760850407232202370125591001403675186856130709361736791180500791867453661211256197876204874370929063678715330546636775450505797287358697108218553339421733078501208646479391310171884513402599400052863787390253589438652702804680245384931261078420819198422865158111307977089933222914775080408069975215176797526811261272766019515847841210016686897228676590743172619047373595618534794983619280330418783499456912101921235920114182197262642533712163649852317378113194702494476859915834921778479273570866472571838730081683162345336892837841060499464928643435876770534414416808347184583466554121938590288754428367344531469656691300601238625520823021103018711281751830460367401607061680191746446305592232265296118725502361230410515179467860850062717493466507118667311557699924359314261438378438179131170118808039209250525634681567767520021146998380536305500811608336194240412133303484524964276189007288628399788843728698248305246191658695067161044100058074738219611974146229877867543162086941871060923156526760851913216662722516402369009903915736402518819488790420407144345277449338375649399809259630799669467668483994131135065729209428164210733230294542090647484492641405158411925484013466657646725266713654716242275474553303003055265698411822009740554679770901407060555305736208596347831065671837576468317052048733559283462152106982029265007989071112942727684387740067426162872247050217567490808774190199969605809154874382496564691828626637404094196673318856545126942498913334712317257558634998880260616768057655421846669329543235042214204276381005462912051181864270817411277737059430418761165176810719513325574906779544590923584798902385424419708625232702241145177035866878516565216498321502822071705259083917827660611174904434262915906125596944791397085770289487546050081577619638993979828611743537281036762127098561829681344137782851380468242416656034967243798124400091215786953857135617753299850715107986533368326455519219008074716615051476308574632135127220753535474829500220570024432107592469065540469717110309223055887109941878716898910255303282441475669385966679074901729294868945854349334828032540475573708047456110439306342924554173515030165469177384593056810797914502108496743989273764429163182199858582537498741766918126252040215231401426459328076886721172068296802739783907888910322942917697381322607211672626569873953217290689594507840858877857997812316886357370035453407967538167637552696445856140966180825025257960931177098030509341475081242156633283238335821476651681146490233923916644078163747404618051211793497991744740107341971620195562530315554608838772072134495761040396531718305440050294311272805898839779243561649834649724057443809336151293697730170298294233006380727609270448450705004801521462091181011453804863560831608335587617143992953256351601783340779964602583780166836296095104559039474463156501111857708293553027351301421721878323006200358572106282461657986186056362783024748718465069627772762780071193185792800698756902526953473170990584532839633414172291530458489012146010752431585726818393111778655798342619354502699878711312241051466790077771792392093099158970991265291127018438080062970234943264162249154089057063312053653782506788785261612105785521371818720955792651931244759548488709250049315622371748688258040894533846259097648314230715163547513927253294035633067018468556425714688486831470778915335050353196276204616468812930316650993864365095552710979712359537084067469078429159085819941492372310550455776524753083656424066330364150158880260600983607703025418054165212441393254121197967375114308046487726991193985666613533847935639937601019551170428805879250647047260483934876528937982652438525319702455828213073789149858410390662359843193364638392190122779506337481085275255580754272875300087928981100454890358299391660214587479353269341334598797234113178703798491539160633534705813610529493875647668062970015428349819474680668603511844779689142895811647991022479737010405618801139400738539219394527740100444607449061029421060482637917000078162861282465882914650595054175852868009083382681492917054139837957427592199838418891305625699866882022105987373771208731525067211362380400223445060965873254362051327397287791737573007651169154015010273207354333607006243141447666958487161796753961347192987231472350031855990173840860466147428298203840501139713328848237434856324731559255147186190896851269823041559090464395054723491088226277271816613394919859830608507090492194521628664982424848057555888575054327261376297918179661796815555020858485020687832914354083492080090514507663334653733801171732454996964014646626510256140499050985089253648749217049230181152475845069800895926678712754922183639512701934446235738546377466145681069665343084064299872067515281158945767997509507008714400229628788247639352145778193351325184484221944102758360625947997945153033599467707038045766131117861946221591034899720463834048012595258522477827599764561127673128512135952399632554417784811782768074566058470490949856672343477037821165544009385782830732063144112570860732965733346767873214823391729214471783634440472357650084708951109893294997232544511891554490917480436360816030068947949656648250310777562196681415589674924327762047485042663054564708546627130365288557036879087467819400273337302900279434806842100790099007901675698142054233249743701360378993792102394678612081074781634136042781221242442197308207245279127760498949709285593946876209299007910487232186034233472818533792252167043047721926722235330922683368655141778061617995519007529816450348428219160402912132386893359837033345712182821779206387576229996673302553900943721665872305142160248121612426105699323435207015310427075037052951052848816961276066594729667242505929048668596591033754597709335972039730747703977762817571392729937990190276241697411029295843874463061980051839793970025298710781641749240598496176040688446363798298730648185886299488519484924531457421168561657009697465621570768688614613133923095152293406067565471940138166594767240566618780814663032148290773242650524589182535366445603887984595168479464915969164065289304657116428066116465070292189196451161638747779712238735510400044478006469066255154111866856703688354166971266373385492487753625966177768390098783701038319071227560723909220799200337294850186934475171380113949957293216981053305899534124219116454445372127731920002191587682636581363786309557565233714888729812688365451887442355446511486916367759502515133247324203564387956998387196405478586568442137319674297557132358473019914518617061284157825467416665913955748742077845140281791034567023308406897772044911026089026449593142008863875467634688869768154669096658486955876924175153614552455294138532562958327511845198196629466067648404909200766270087361389461429590777592756208326011033910758051784143447137321730285074016340615463206306846769131774155277566392023381557933572674352815786918283650047824595171333214973328303754777991008071782429444982683630040207136317674692987990024188164640896796203932420557236004844024574589246000965067784474789247737412478850843264091450858218555094213399638816008177637545909105186328159930741854106028063516185878901868467379351723225848225050280741278987629891403748776531924048568408825348362681910877217099777463862273836620764633711260555383577800609424075638632833956660653188357907242098106973987172732272890577999076051080863166423059168954910366409792676805852215299387123530647425324919093278370581910924265858935695367727111749691726100411686579729803266081917152829268167974872274771827568678096892191580186124316951864261445842284267660102405908924802832473423223561168009269398479068175978412573044226347469596151095249317567564213372629220403813074809479488664325037450617362398026960196906282354669016023796277530989455625985115993510259456363260561465458738623414381835785777020667599705909577387918355608519640681177671821454372769518740057299006825370315016169438405705475755354157501418598289980961781359154399347707393117778742286952471435585607880334099185308559149739861442576544521862515406984293741008962607807761051318902878249193792513996448970905588661673267126867617063007430270238774603490271328971260033784313789524679858295807405551980740391235651169008953828933194706855212032365572617748698884774126165964118937816075006155668297373255211521366197180686479083279608103724695239043580454823504984865531409365713838415430918883127618189836399380653459115515587053893879379897960361428430897984458102536113986924504434349892104258242759126815500329662132743664094199967832786369737129363873914445960835098740673291242306654869951237089375587015530481877406726872140907274151380609134120226071875532252194571605344061422331454559552684417502748482189059183299886857422735008462379355928257246823668116215551974592255295821047592069552061601483540614168138812582275877301332689068952749269988779524539181589447642794127628457178380727737623179610800915881274635276955149154070179861906973049059549658324435763102135847315004228066887671204459185738820753022559211051758099636648230863868958224622042221584450913731645449047335924836787508392032076426962525829131302737876494898736521212107458240304319107017775305224953855876049813415938873497913365491692493706049561545207848244421069031509597381526953841791795795393391699871364839361980089131194475905867719926953282759336938846309436532272184244882714044850114904410226978497037968260270670423221116372771380558010244624486906353092956292005159606633552123944993606691509298523396239023528306593844270865933052770303513016431214312891605052530619436322118486918126482204164258914144713871108619736539044463156033288223135959302783955176358240122585232744140425329955899730014820273500208106406924913491420118203797392516809908708363038742971856535403880212677325749826482792310212629466615996513678131339291663507634484682029597218863717091869203626819348431252523067902852798123682993504517901262127111304882487949514338797506892265299038566149778139174974976170279943617014172247250367214197861661031847834228815502128592945734149581623189584295053336668206809723774818919204585075398556332635537411542219808626094857672039964845721503655153040054512363830696146231618059971934047334333311079617667561115145981325227496931836307286037337139212434452491474291670044743006556690762779434733636714156064595109778562046403982557785833681270175839946250189454546627533785758289535404216480109418928657905687015188314151301042825352108043481349487163159865302671431047561251766578950501141017471092519283173170072614959194761339684449601013339945523947581905707672536444929575727573992630990805574499889168833802240815583625357264278950641006531032453494221215845754758849742824418151726831019788711500572246616667475323832719889175680508845382666955780807239383686400987614045094764471497457794633107549209040938258362164620664778719159404225193901093216238584360804267658220915230102764030572035521764229068573647721109692033789208749604367683785771993879709083467070388696285467022467466013996851847472159847887797486077653702575930869076409497067616058209281795383476917771398166010521770184464332103641529116307869520333829390621930367168622840937700275171358185107347199573675559812688519054107325517285149107785330552553236740854969078371109312770030286950527425684545938414152207194222840880825177165215539075960216304792660602250751464274997161794283711828781119848329766374955812971865088044885843369269930077281444368591114812521230740699525045485895293033681700737395879132899737650982568434881660072089970071434452843466357924135850956369509319259013552557556336399861579365292013912482123578336191064529509158552627722063340158040375950780449750594556093558020963247718856084391752515039445156943056359912135330959110900259715142547508615456734215706875427799571408969663810150924516885110427545988311226117866076621526607051211894956915038516126993183652832175940709760273266906213201091186905643776946881396589397984400859520572232777999109262213331557239546095946902931687938077493047246426624626254916746388863967688895931561276456487458400435820572783216538512221523829605139381546346792858674234088392264997768290474647716473403962290589839343611046600622500584754909426186478690204649918451592577588242155919344470482756567235430511758346125111455146757344613705255907674430874887235618256339615930604378712969613084697526706496754867893278083995906891137420374726929708174934963377098104072355726992947741146200861794930205861005699473376344196567643562017473438021238822653668343186203876364006871388804783280222206361432921977146373013765469694761543390018942973441275091264446533871589987452232296957306113751217709693084603884515170311399459529130153317489580749319071679712226140109125811681052794480307522614094841414064032398752063890916765840198260221288528889119130159176044598394364209708571092269289104468880289807296341624045862977661972506259103638156680798264105325059746661672843315962343799752419743990459968339184929854095458815576921542632431250820190132521649956666058738013320811389266605183773063460082469818561760698348993117009735483153957714700584481571254225718322059942594188604938197556360645499943718340148586963592863018914772040088112093712325259225228494987259355397638115651358929092663579131509451867082860018915995422408426553361803569223292866837589939776768685983335273067187520317966500608421496004514015365316807469593742125272491359887004849510416749597676930005108225606073645162296725055031065245038064430156373026328900166098584455647055674223858904135399470104815756054904325098793679472923260809071963216988167907344681708477954161167179682662889861866834377568125038625783649776867139026544870095151582332190570339474769977319390288417047832846710516693844048003761751279312887648619750326220031820093375220760822404293039233772895533708682386513224761999508141758019084093965425836883460367433552904720296051972828802062496324214754228905513286027798596356651407808044531494936135344760976473615446932237109897533307391727655712213029092176766996414684753971299339862700010674714522999972284128977945913166125521624681150339745106508407294266943712691128696806056910313054518833733716311362077157767572726195192078365581952886744133374417245781425953299881460276050879886778734521377458152235216349665126972709349176390718194263232059811824227899055694498633138595442214221432745885941656994000723113462339459290770047494606098077853830866606102663110144549183663479125156900096254711580875616149424761338026878106631195048541873540883879673971204607719050145199171173099847342556980745395711925597026605938771812715496974350883555552142517181739087706346744854295278224177988034607452025339198449040534963931134218011900225567065699131566812926993672962808882365141794761305088364170692216763578605038143217599283593198940825765865945908293358190801181005766384085605519114597768163508776296727755434862429274281110474265962948040802658228269154208177516151651365486236182249236701809223424091396597606542103857858128108100785107897081347874033776547044531113595156403972348372510702503759756479797553832865313944629841248303815476705988114505928329896705546125423573703526274349071806416227471043251559596546277457664946236394430596951662055448074514353805213591942722434001183453460192300282453172917650895970874310244507105950698211054073489825545687018322090059687970952508790934740482204121621338904344397629010630054100628970699282636549321592107420706383968813455482681639191219366125406199749473178518207276186161054232110766849848616681020723601421137869432507521295070389278575259185147192417095454546272299620278178626674292776795041197960621787816655962012223496232711191276940065176587568652814644347976511589787762261034221281470222456569547217638039323377562735706205806090431540301886744181034820592576473377731963194833603136156972959409845833804044310461716283820548622207841881858639368840055175586146202299199973989500938913496791785176042683673865214122577332086868139897068861852503535337020347296795984352138380192687965900036847182433132955395120659741330171210921610030872099148645228605344370411666696200976573496571679276559079891327041962502545529457856835552606360593077001228535179565945038148898600280641162451647209793218852157843444429121997918961172376575626923390968643454354749813917247819958829080155061631177271138107561588176432094112791497444314837908257356848026501433843688483379235527120276020786686661718017098124901083922681571778299500933482529384634495022952624828584995500616613237849730112970578667016737528043780769250454180733585250967214668876454948734106161594789130773665270943444982112783412160647708508613258730575748656850418778130778213577842092460982038831800805409875246400093444097770083424285559680139989278876212326111856295542674454785444616709644242709954712999696976927212547416832499721821062811005609968126045047080889274691428234303895994661058409723707186685964664856785306162356862134268657759019235527121949116860162782394284530011771918945297446887864647475767004214191873949582813766683238829199251760164815785368750169269841516861900669158002522531230866752185761602367068301952518415378784675865670534470076971539239284003451504704621718325439480715794806371513383783087391338795753311244359270133089520426575580301275271228499808721506191508234568873132135809177682826591533417597259398897742670540174356194644822719963710246741873942982754475505760032882090706808113080615642063033451023099602830722533650914497370222040958918177803833565634842550503920182739148654664899218521668415803408123123690599980647225909111281612994947045291605604716585526167571181302247281705835291215400552268359420733881213754693692147555678639374773263591351160034350542723465088680568272610569417178620793343666619072616915713170629467425411937017208617197194681444451272614016156642686689561641266106459339896305554089144142459110027133879177679984722538626028398866152095760923230767054990786146259888935209327124027996291093450616760717461404016700160034816391639873456043141305411166274780408552722365883460734337346532982505773839334411179955518050667076840783685450467472686241555673429386609151036740650717297737888923754900570973152823547553812020784833416179366403201988173057037027441921206058483325589903617464845797275151101733601406228350377411324001840188511311805087556881606746168667825883967230704673704536259663174870627082333812371343233943003121583833270117334247975717041734806844913852885215919110773832348978631275664444271354538361416949360810819734446995302827265754011815143550905587342370029183474512206979195526584398924250556091558526857108890885069285142778970644301914430110484614538688476553938011115015433779445291374645803144762720341051118957641191300711819821170395209973025085249752416441525230160744900214842550301955941507527456874280039455888985713118046149003832276596778873070411452398742856626213023196186292629126384671974578566742804632956978328479666509842854716231772357562236283203006568578601606583149433520630373729737505330156448048316145006214009728503231691721649334418792592784117278702254301802978043427358668219392168945687256010015952251940162477671750970903885937284894786348843087359149683371403586865380977140811632825813598267084006010434621348682538078311145244283693430728388154968433801135492060746309915224174430693796853794813884898241277071027690901757672360879036247556492234056460158964329948649680959561366545336563115771561735112353429503663176270189874575408058254547992358089254298758354237791577757314095333285892990405817979545595082702292960915017076165378707671618266794306925390887705831824503291198200380186437955119861510375395983803163865554776720668997686047270194639519929015060899242086118688772223216729516818290146110935959077071284561041678267300770458094696233318809431550447967754015028100880794651868047936092001003680488852191034914195185152628801199978725032969016113139293074267588972612780017892439006969043993321797619217002981894493245192136317729983886481351215285519923802354737975539736957464192010608195262019289163029428825067714676638622411825397243359263385495407884314912215856661949713878721797350137591385547149727835092279689686334633661140902059279640725274967247002966928541644694088723222030110804258762589004548173931578694111514529211064317142090674794371478371136044121561924761683788377872298965738850790222182619076691604612428160354490603417096760962719119167206237003991280274034367682625894761577959741603450339614266904446365317849665474372062750923252235285623001903768747271453901043467940830229606822780596565457561448815838604772117567155059179655799520881343522814573993062563324736664628752779033440327729456016747475313476535693458178079029559167226317896201487638836243786680861893326808105070373653368007976557934723449466069637370485835282435879263534130396618054768844946743330776778963165873305131059521194829535248712335823779251814768093393978940872176558439736939414041405529544544633342076593085335217248351233677704823547215151346677107399637766780169731112125504983383948358890124199664194563594835627539849981297025778389593401157097805943904772328337290056088143181844271947698826393874365690226423883178230697638634535477934561395904181861699782534315985616283954936802077486884083908999670894714408117601703263165821384221512378595461318128396603904848669655019047005121788643741732520567366288372051000475297227277833713279109474030328936178846022247645407264449621107425666884894182395631069175095781745248999305996906462573836384307058487760391674778164312702261629716384912406961782640368569558027531616095115995127394522038029520981788593109854759618923625924114080607920215394739179015441918842768870348870841044658765448086213229158927187714202574770700910659818449033322114550007254842612194108582613159598934250533191459581606190431511757502868350376926010766880747796640993352742380359422726369070125659256734812069212877893607104625236565662098969648870907617757405640475478043018140181043025342240156682926082716298893033100713458472039835561520260855260346184408406002399416389049264533349394525533002073477669269147918205112709867623868453807194380016629430103869686625342280889729350041123447378583386002419820974180682686673522572022941281946079829959315799957981284597066813362501645605821330352809308708454892279747460774160648491075952988901045634225264770411146091089772478679852267270577826900302003979650707512529924612234393724039138927322075084328372509794488305181007338592224808894542922654312045198934503376729892284461646992722438397268833594581601281235044951627620383667598511617730052621358257494784799154089987785401566709982969433193571825847456089581237785745741204597652531659175706135005482842560633886352923498017068586471875976672322871346122055200221563430706869539060200947604123908602707239709560792701404664023378427262899862793627183911180278623068530461419826023943233261077094654780055989823225969700588107171007095251458568202205154086858241645896482720740015013009011624143526766098597497837328218644148314641416742437275967578055797121436201371119051545258865300516990605102147292104097702184495971067282471053417352022659534881342652334301341585893043386547468520948620767399366733968928808192205650983701870738341468352945262721504852262051599929549543171971204640251805240184328576686686896842044707846106692900332660728172401298328648788964937325873632857346733406669328073817747563743529533344061252909234622175644451322763995993458569567902223478239074010879676145833178565283989626009670762265403681271568231901837316203975742649092292636144418783863118088958486030989328415758422697358848597773965134444405428018715231221010061378073590724605964071665367850457098818629958384488073461196636315510751866704160149105656817360296745463525070527313256602286715517274077681151327412785512837143996432127659441561573964422897147571986585111637003700073662402698758287572847707706295175401871596295465685803324725769379776123281580088705272732227023641202418116023204139237619670665651286633679407028832621570472375729746493526299677255071284317636318703657972235888456289761652536228853031066517892132924594756305403159864834001585148114214137623526694181342600099657486029415507776127624120709162687543429765017257777573870885924894552693483669718497575198215980651959209773110143421029597040101530764578900202846939479893026653229352406639163020209437178120305007826164105085158523691915048031365850976207317374781429363880327860696173736426165717335338024080561329359346265636095862527806238495024148941125887642382565266741726120617709886671792649762741182728348087184323256316347701269005894333080807285166186037737073267708390338518831003710251457973268144392764174074654910646692630282419794200020422604759020997668792903950373014737039131541645190473577239422613278523977899237485712059231068948138880101384577696246898156978558602877550534613145590569028898567914775985206683985880839674988406978305409257474294033433318441705676871122452839997541565439549753515523538881158438557366877104746101201453596736496512168702582709534516005907629086020163886019304823704033828048260793914113163105025270511397204288711065470213394681175059507164474010929570349250177495108207254485601594041697753318718101143354865837867917629758711672633948289305148166638317532159632711486864566830125649209988231165600814158015924999930198900667328793708389960481162850448329815821970315397540966270320986992290132643674942900243154697719309860741780731145987912211429390566973509790213016706532459319145229527249754114586408912272533532415370145441819428204175720606323935227249569576540270047334864754147759375124021633328370351799464873876119501445982610727689860712360723394339861721512447371630839348296003606707406148759984812927855924136091141927975619891252086954623284701936395679715631624776520722812444211215103201399242720677544176593708206834634376011151128797440250483172645653891938246854835311427350464066340636452741851796599781300784427218005991780672260424866494233419348070523904222080746003117239462368195219040660203512789903377945721195348367715221125503612765443568074622567682046186737473422569456754900191452421996576020589717807975966831261545336709074608246845113587463185602953799799382432733441778849127574646189206430148357279111219909662957051603541577178242134934881123777143792216943971902301206486424857470693616738755742335959436873917967684705524414426992333597872804035527559389815702130186286878442254081365673907913663449554458135932032960223982253556473074568921021247410256101015422006023879281721110159610404083065658456338535572118051640676239949364771729491004945699403959105645379124648538384078986193135287420932618617226316273954159501555959790780722254629437048800426213856732999254291537778658578511452070457238237968418538566866140355143977750793829994802964611763750466176673806690935310933746232579286883553638782283525993393009768205160007068447554878680565194373311634281081737648674209470027349824922885185490785786038585760901707922489717108331113056183494449266733122122179643393064333425070940235752235881187070251223198619187095657285049690353298248160274984871816337558436585291583811135251819415903761668175361976808293381611806278032684302200235511084495560426196162659917507496291459984773167510099167171027976203521650153067952568692328270568577805742379934103175547576196886413828660744379134906243990114088079537458972200902012425615478563684676212035882503661271443086542432022306864661330594436466047826291564058082451886909518636959768200375828679487027458599732396724551325774996698008176941297526243435812473892909251222107154564043268710169639743396669473248315023248786762808630899278129580120841701935679701226377239380306916705426733529094073520709564470237200136822762014196713569649814614118898390799682430900683716010222452891019086184262072470475513843885768758706551796075061443468813400734623082745152082868384098357547302958796633737485374001419356236225532499394565351220264351988764236102584239940407660276833036939158290172733196760846584302260042017822177630144289814268688979303612641828855874845996424960153141529303220808133830639550261957749883166501683158048621181719560775725328153478085130562495230866808209829395497936431433513540447180537736638468676821606073895455043087265454815640261168582332463902252543851164153988830829882764188270766103027240885292328986229470289220367556376219983447684049485122185821628492904185607251901198705301193714569745937165805701738373303140603961719900835873742534226012012851525979269242298366863680059123309085950407979780497186533379707526212717014917263915423664980815561312495715614697523814170055498817415985686950617536344316890552756736839802750529298742742464489386267748791587668986203209033883432059201501748905464310710812570631161025625496057118278067133542149064568890693984684936300665109158059014997064000310616626020998962449286591448930884003793809157047756873945310459903472215440580008042279167368256409059212852333711970110660709155494053281574499155815984820935085271425898175569666451036107079974364536733140923323066101118786307783177750410629599586130963121597267729520259640238354175200964855146071093119737166128576599375972262031939090553794728939671366643017446444053985754750102072066898833857989583495409040243627185079320769040824161663474666638053239586992557907602973116974049580246826029802988725427645955428126006856183853313277450420689806580978708653559039084456460074101033375421532004702071330779192094757083061358155886144402369657424340746738428980506663062218704704669530484529855681542824055962734922868272307350288912894260244353998234434726108221417377326805750870119927007120749757386333193488473665619457926397901726345641691187785611865333914455845528632865896670701264863227436660042446165600911145174829294378794721149136375820166198947203468742731876900648615920282091493495239165527051255517389340395529515968772895475896326636476223091260321672959283113333481629552872595564058630311491345612288054421970362897891468649096865550954178180398807163975774826308272877209345008572630087517152436853887535560923821082687044685426590186381696945788176939429046854253410916298104852033690998522833423277887835810307155841697187276716177428090772310394070313468195566663929061082548912590014395745154489170327481447788150621264183835428394406597886371623585498463108856879138264555077809045655564878092104942882213138702787341580390189697706898149211424488170638181635709382571429435286069521178026345369030138322804756258046889494750901888120665353388886406326450422115945621886808800873010555474051487592579267017550450802796947180220896525038410246252656381167159951555126305366085930226912137478866920508814574635300317724851659717992904703938410578402590814436040568969695454825741406001139455601450418932421545123692389566236155899347592857628485998638826620604545510190579262506896763774072936601701939770298281829219820165903017148072145996422681891599288643045824410490467404194320972143290212955918445891109610136327080773850874889049939330851866298381545171905493434362073591041351488997501207030044152887532020274146765708170648090435664019598796289655503553963593127051887671119244500685378855904910128710991856706115346165771579278108293959213548660823316133092159027894547334683530425138873265569445275882558675891695704763442069712988136972707507269245991522937416393884285257934296742859963959461199301995842837647821221983423405999215707198044602791625445840059034867872396898057576065050245213013141986069460560569905808845943721598618680205471717911446714587196437176885747897253293561590730267058807334886742685351924336308872785948725514467651678467073614580399763309502620768133759006030470100274059915802901601080487866840478027365828233190204668341189034274580773187492123301514890291786927190169036347080528700142923773030688523715116552673935810203207028494108091220570359675317154770202344039893806948529053245725756586346942416497807313773261948975581959165339250523505338894084396734696608844207489936766815966766415418645609131081427467713111738910015989226090749445366116845451587692414466803677160154114473131484875723359881815057284078931087832977963537333278527737952025551550739424143971427476393388346191689859183922774137745101593276293636736076292286734066693580800074744916195031865319866408785848300665069769364638601113705297042821462504150292803627111619740122830739003572903772615771685734596444017054113346221534729668317062975940081241238153396578872307478186982140366736867554998792959234014319644033376297781607702401602052496043157768608813580851396083211550960851275168627953633473441565433266976289193470061583020405465702766745190318253181182837400775096195304293949624803391658698191658440663567347988072900057439849351570330944818924487178556860860553207685738291786517710762477020701545417408841860418707070749149446317443157460624326634768249241724233004600406619117958702551552779258913605454089844857998089656327630879410845022103941941243702396061847101392755688988630778573393715742650622587228144741114928189482542279690492358020267613951948663638914664839390462786238879292391913323554603860512459865511937683960044247771987918413757616381549344794565027708240305198573472686219134766278542753483233766392106267835787817877770321523603332990348294462822834596757332134231829599626707995811984720695882216619446037218310144199651717320158999683980373299858812894468972400171643911753996209343203114844088115390953046599227871247277297610627873873968971496050244338801146640012117230057235891446792794698969959405089662730819192156711062780985360619008247695480610934128916297057468717160544226322868848290426223906744014655878711956293064149934566816020759593210661047138967197716850916700536153364095882621416962764436565857445171111665827062110255161612268762585614555037086576117756838147337562934522566368416770920031885200256893786119985692691284250828733697744530477879550811174633207269348571104429877243080952924928835416828075543334156647011820495345370080476041710435349364820364201914999846739728451632037418898933639504352892381790672517402750651756957958210780631239400910503831899711696680972929886654080832403501593160307777412231763147936113888512160235428388042616003036561015946169454345692088075720471087924612069830139587592749301693097777082054429665592722838716259113998797841803397469591937806527418740851470098801993698490701496791583511240313923653808177968376958621343446753192674211163998365657639614422035622628356023411959269739016632364498805606804095514753968853974062365291957862962185062045592454921364652223611182027477610330026264611268841843301243552422800761636822873232695231428884336632397791302591171310646078802916694611078928685590147586676293594812829134370128409363343775209243753684549658916019916434803686161724734205416582493596468895095264910207785195611584379892980097995922314154207243399855570038458499833597504274461916389122505238415934412500885209118430952912953469885948511453591014927455553677933756698237343587168398539865774449169206659140810337604326922163760507041396880272653760833873635696874072453649627709075307814860048499301690256189930120112994733513674763662047435210766027193708887569928803855114176270693007354560933368378248468960877705272011341961015266535449625961247757875636231400956033561779853139142353899969341700752330224899618154297057052738908232467999780914440937667397824365056100514260378880854976213735668489172848395861120552696637266395003668701701277832867479094973927956984180883409328273578253240773307881727000277700045528212180499304106867006302007657765137356632973440339751798664351895617800872266440985048650501348605750949359014955008424156055315668981781792903555819734940066942360663082490230970838965184600158708032227321173168557316885503836112589900998005814185517858244562914527922652027510039149962689368156954888539872853552105150718126126775445510978725653623449962646367263366881154296428609872408247212677588595677241759994229105905716172179742715376061940318639809653235484143288410032485220167638532891328507693114230774804553697054006275656981558505794853726933183169143986851394346632257620137667932098533298078168631354584584789699517424683477552019482155459237743336000241416933204808004543333645223010719834122693596056420430140733280869671180192732716916285706020121684535277002802776207256067581569035751397915426076057771663924715609184180901141202751047268538848865802205461701064166768398557681284798324107494678975830094589647622329615149319821157664700005395199871916806545610234672796017786840776781121759984249741633074784231895864576790069580814162980627396576604260306634654319570600347099380244608218308268405625160919492309137303276315536762512847767422662839868405899592931889308850797655818497122982133335984565268298804926938778301919865961799879044352756393751927462219898544142293507802803253042445361297233421652469006891470771441537838647624031807719357760426748265058532913455792889570402477792383639488805835334440006836069003336093071570416041526041606159176542516441689396472305291876108721143101928777570210393198558502857688674693670417078735898902331820284703830054308738481472102412411836611138462456622233539868764713071360198576964032648274171965655345835544108088574974022189147567904936496247684833046181440460338998730250522298706702828223175945115300585275363808644641650359519684793924171868797357248648381927634665936577211755660044161419097953416186843695497888826816970147002104141568333896260222006388755691419353921824274639716656085625394315185296403335425622887725915223472028097348145493474432061009589790900475247352372060226625697546200915788109550744216971653560927423565162658616486976719657773252172623950421547026954922090325087098314231938752201744719422259308132829616193378275570535985794705494896700430008052798426472497300403502986458656470942311928010954840925444610372158663341753066623120193324049013717711049721556089918282073639940179314339375639622863888576694627915966973555398277346570463170477201309709071553180854999375663015436033202861391116478779351588674136386110807901257068906145520537185916054428690122957165414366568429363821642064085973133946718377517356316080701607419060773747437171205274755368932240229698399313783041352869423823088556558786427298629563404090839683582038109610948984291566305023608216441382187819811887939742216548280083686762782486995204104811469453997677985358052826197266704216430480330695495885496113778027975415864377766309736046980878486982198064947027632750052287579504698686814297433972260230441534364424522270998343807596862805356070059301410690952163390531456852895890857257447230183245604706601900336676694641121536436317095078829442577748178193152970421060277282314757264179753334951697535529602207454335757755026996781281646730758743110060812330647768953027060845357580806764136826639181778997395441144467616424949854790387088425779976282316831411438849418449145008686193520936828015712600244966653122829313093160062713203355487489971884777058986865114387302070600027093048065038888508586444915942348193357492035066521616135541544515698326824028572243292216168539933676636634867326039808509476853276726557201117508171762191318033127593238328679006310478949138962570214007057307272151176792973210256371716392324053350036018891170415028058635580742353300311452631958643172087527848374861458878022943915121902222471341740700399080585287289722158972171837589339801219693457557155093528487538956896733282306811955142116501364284214600151012595636302484274581241969906892858676720177762186582648252526372880866659253973716063679705440363991799133156313602295236645288572625093119857845917244076691412685809418568322687347364107199546936494306109255551145942063907180439452956066304062301351671008821680925808149128348081410739018074411974950669401012277608575800767318498839331439262374853054810862779531102101600341977309599916047372473005550252875088488025673569828670586957293668138851419729955713346052172886900915628688371575258755541159590216337463598430044602515823510902680528626154208013221432967053721025155226808930530918922651506066905525019790633743715357120129445926375649785141189055219569476425051603062936227819708165011916727763286817892138146392822136842987367934004859383572759612756906278162716577405062067431868780592346189026946154776278439026703616341817473126819132581572357333014796424407102481589501397985316244181260881126921230747759671148847224058415050704949802020557032039032545454338469418766671765570458242777770752333996974901243562416850155146390197059219211071447219964292248740118147227531590862103695824440530286748090357804558297063391353452404197081685759132800657249274345282311096141689558099233132082272747778826256796757246221360614235346176200312577287375267974457348822074950610777810586892937725734660943098714290592397208857101125191396286823363289812451740973784645168175894740829927712565157843270313666279248747780929391758942959565550317163045502640648104014512323907805792375212948384437948076615290718658313074898041486951749036238850369598071097189212378371172173845165908072341778129459467906294724252958465492390173304471195067987750446499514125759955956881169980780747694523470937129382265907514153176786231447899538719559331491124359414105194378677768873182055790794446715698001364207975520093324744033398560518341955921505845055440779048511816800843437110502744631586072279121636067659026759774784755249058318332126880446849929996732904222419822521723026697773450925608520059967688081492052612543275291429468935945622599313155051378231876649205831420377474349105525132724029654663844546737545573490711438442497462290187017580043639954118735106524497373482920459603093827525041950849950227675661707955600985190166726029121665934426376282531087285691705281422529140256201832748838707602826668912198245749286655687017154149986556738999469807966357887678265866885802568478635380198762535318112503068693866499199012282341507766901588682124933666668537026410233122144392653342848865765180871064831733088888875538417331722079664300749221459170587041276010094932737251822573079849435213959076240278850850714798285534189499720508228104491437426461190233564216403312406087406656045059454466885398644228006207325903191159998753697276483522474271578231539673426502482205483147979996351309667891226509938182394643898536232129971000920905479054911674574399439286552719926347835960075362404647220733757074246143849529459265456994282432623155602310690304355190762020334992770176381713847040471606027033098640284856435085429717145521016153127681061949327209278782364064641625562885349776761190447813233714316455181955822553149095146835908476350023157494688751320676899708978691219820037507876315321390060448078754416439523720358808284146217537790564634776910696715704921825491060902949027309970414925507748311588948702056991936974468539098043966616174067809341389283707521168840989832891683682932253920303104754286342542112043682206878713855576509096066635872795100281960913389720651848349327453468790543892158231933731309590277598023075200164860004627229264830253393285330714960635756268296039331131419054078657783765057017295515299785240823178038117558722675418576062030163046473170812970393640019043334821171760026803381777696838284907124105655223146635369017178613097200666338404675519299180387415226251034061766666759384479270318408358678179059915143102321447118579919975578451743808703489556589986464124290608090880458271611283377069457040669254997034935717102372138731586260266581990377627029600605599321740441174454562651083407930687276756879375409160210015325067691213843252255056713168063361280842928293481052014328197623881310014135405345720690388563876433037778069450639511731038299146064842379484943823230024903412386217619056105833864668601424070438920312157640199690318410741152182599125065164537055454406606592648564896873743371289801792168770172124927738777859429806006100866316849247771054779534812338976513108304022815772825889590657331889607369578609730434353422699833782783541629652723963336404632156014980293673865377301043577669775838340598621939765897797212525163565371471705828753377150746279302315926415825102643784435573578827455117269107813607176307026824926023833183422194612018319083303111145512983260306580191956920286354964774083160673141288051085998564911212026709579923868073847677261195376964376353754024234200804359947096056149760044865198037092218231573031149623409091546948777845181151412965373347118619439193035660121455235750928401247284304744441825400476697016553148380731187851222950078086679453054011966643770949358495932911360540327561672454222143646277268409858829978626335052151430249347471679725206051846643144189282956856155044130630291315214967359745898952427835476776733350392751196429191273692740360768697780574845139174852251847343593771444189757796283526130380391340349395469278884961442238412902591621634594780004575179769561366589411776314446339556774471491712326203682512008598926363562398057590203633483679304774349269720432371811030399349602990042853426131436956735663025835201497437882781498646716171070942031668341741796178133562114338973379861565430317880771274232248579395934277116018906409570029486096988366056129062240583536308318618613944825459016266188341591839070218278253824436697527727520716854740839547281549914156163679629936461486044654779358473311067439998699209781380572951414797131922528277628337056058030681428207481703942613648267505878295564323771628098645531032866829167404939743984887428157644369872403768046316442644093913699089944201891397871371420353417402193818018512119395191649208644829388303891853060795329424614476299002986206422514570630107673119190138397243583512387702805901698476739466914779850433553992407749056582014083838545256233421198038667046625327825711322255972068880170100074859593288157721914155278627649870202795050602400424594649333020687018063043797935875118694741429002695914711268809479161383987485313273598163211132701156855846441278831728553571933261037533687732375775245040602311537896980833225944814085389380626273402898825883509844163751678923332687958162823165740002190325557872781812408175417740618867204523883775600676603715476343303046779687579812109037119069187641674915534687131126580727588415019738738308538229655989447382951500865521905028804430561354754298684611571904744586551673169465776327112403650549976258036927846268921927225261573196640814680079073645824555022330882054952681644088850909022531188960537177680275789658110479331829327227666789780078036376416529233091049503640721924836480154019229025144888659206090038985223412714206983553900426499482447551063816023256413526832532534646127629121930548975468298976425010703920636603714196050333442051972354028777081218570916615300586122253675989352417426052516502015024952094503331532886524766632018575927840703490163411801870420641057483577002542410570613956161798384116149650720274947638596540300286757671733710044725727308737459367822298261392393203630485378033861592578167056070528576888619395908396572796046092292494045953946305641990824024939512478056039040494375488642726382689326548712841964346305096291964854110280027574627788144010275040058336079934121551201318712536230149597505393472960289861149268475726041415277610022249344350541450597369609758232090361474530512804437488926791186790251227982148388042345210948521630808421682553086691323858353789853907444146270217296928441769925925808730395727708239782954095927191173486568289341881717178114279777414426372437358529379164593344594836700157596143185780421687953751335643877749572579768893570031370512884847352164917950899073523518419065065448428187256546868200872460114050563587402281063697669145465481630819578756381280248740673130796582978710086203620301336472199148300517542075971434164694279590667964477927712996100407441995833941262639148698646743990643339959460916819201149863808361761833536779671121111481229443191533311580370561566012229042478313076535921933729827248386764885727570508397908291314649616515691306085864190828946583716755802800637550251774397981966801877395476555442904464953252940215242130232251954978877863088386610957557097097029837877712320472648240164022409952957114447404702142800693906824746815746340919860556963507674019468624059592566198478770139214585263244108301750387210915987857397577316733699919164920812169336446265925566220723553200687215131235095091253066462781737770029886605750096417155410562793011531194968662489330263433025020460090788590136449375615394337587485408202935162992499648580264997408546988565615796969927000060859305485884951944329294172796141101515782251473692989142911885575936122095465643292291898966726421354479784067549044329778217516939336119165890681245593655660084342391224415296999819735643385092601781827310564759330711917435856127501135819795015437402956533432328427069507392770527434202175301467090643102840424050994323033325486860608574599193033608538535415248740767673913626738048529368998194384702967716456619854213384988869985487313179195896222218311163538936590590033144899218598134548478576660047490723085483333816568454260579518506189255148852310337956402476300203935161372286538319557300023021839315362624584349766779890781551046731378560689149258847756386048516671983942508666396233119105511228233210921783616291866715658824723979088748362366792932123053352315510906267368460847494952653906693419569902571750333671793203901579574330512229834599257634402829539926194709559008113012499521566345169717179270910336713218958962345645540809417816887871240664814591727811404321570390159556696290081265325919470310586384563735557494018750262997524430565606728557681576856033925410049451883213830476210121644515585923203028453236260079194754177851093987742746368355089710378182781542983539737271407360628263329344565770995130740192703423360370911120264640607510324302886367715819523500275942628456169100795966184520531180078015886358107212759628771389562507987913245238876329167552360795144186070738288212614350663614901577037621029422987512984708527274694199711475833296463443510858934796427623857367403518510616023571363451496493811169889100036526156374806918981949631142623545380387134634809828136326601114850653911716008306182301463511596678485140585518773319967502373898385465671400735077533133778973291323720664418972695539793440673321994833122562878492360571158001993211648304193234024776285758720431667887280996089513093978022641223316921316047143773432455004342624096537459367694838687479247283765567871796398103810090972812106746742246915253623829429609198537059456607266252663144447490811148555208042709093105857684337192796118020876217947679123749313857792250949207916407853885208163726760282145915115217934428936387649254622738363801982200332747600153407719598140561377350306446535954956408572685321501005867613484361666460825188421527392090327804406728450327674852392368505609448118653573802119732946878301036570069975174274626799217277135342857138016771902471757032744012378206714647632232225545351001156050414092034063934340348815549269816810594951200576998325218913308654098119638352773419888828997123625221437722671343186140601303445861240732255598565072644002310950208618095242455080538574462980112602747351690402461381664514219657186619600252582061086697835496592368897809874853184996481876411912622102128705241729468452309415624856644488658771417727022376768907995695235751508074223771711675082712985815179275863878106049632389080266165739268816359020144200717075882367614667398316199689940542990806999009608172754016327796955991965153428072587730508041514058621733285159395199515551334593012080768739353821942585906990031317940266608105405032700093747153594355509852188119861190429796735992703964712814340459100440210197715395105607493094468393223886300064444953697759960909793152004583565407109120809257225533730245556325873957112858570411780196908675293333733351545896991261849206379845197366253582557521177339562623733101171367201859961152579733459374008232964760271952049411597596200639967348075375513448869137261257200256764877619764662536073189375164164828389847343777353287707278817558179846457752865601535003311467128535309960681695749965961651929296061900706397882935252965221690371927627301733730323624570592868708986972808372171542871389727551646581114856230750892431017915353369689102357521113106692313384077258646291641028879670172595083883173829506787092847316348004635282697481947336284494656319033151323116130534716419785276032901758628586298870928921229762693404222109092718260939467372636437165454762164117794790619406798459895449902915423805867858213534809817269147725966453845078365744303910119058276236737664514932470165087703904642921633382940833674304381465173141010467710981622706211945145422372269489781826217921256658517236498003670082161545597846507333045054410965849060237104073304118086245375837271697111502506781354669347630285614390818152486188465561400251702886086979587453015361991633158622314925244023564479362769191022811677454364715839553728338617008587305374355267542644220399369308361207334522946543640291198662218385468942890266639333870575802197352672362916820673319574420997691965942730605584733737786162298118030955747162403816568399339062007482122790850942489386682326767782174917821023217963835613308138924698951977700010438837367044894216716502459695291214624670863126654705801960274202338215273439480090749332145284649729790715162629745119357631638443395855253243507811929770031837584132538492655543465120476352819155834858671396721826905715958929710562874443381291476865052913841020183592531911026263647228525821420694262589566327398691968539354986585141527189321246554177809011549310027804118642777894936890831328280767439965985814430474409448637695029225377223685756283637898508366549798594996946564112054794452208309035512771538969836400462204821757752521011735724967901951485536591699582831976339778180999828350790799842320181334153499296743544976316088887771053120437881785037622325666791501290241104608618959135327155518168812856902612988933432680314863175802063368907190312825938050160807872696491550299351987424368441725653161596054147921064365100150163510132566101556708312039435806703843291320008682768274388956349948924249034227286525456990709774982502438739655787155925531540226173122777619563882403099518237053283927355447063598066292791620678873297888644567043052995974682500941470777016641157346099457515839697141720975124869148711949945594848477011878265904937787321436267456483869744651019539702922571188258710513786593833906600692368739982436189217586145484249192534764183635039685735183199992578920638155973930059965136172128770173859882383561215972830766239011629511281876851081995322052614323377709077585183001283698689898441972637601444724119462359966376665793230242728808735807985074682630514585655572621393469302571438596560206171467671502586891068077903042863903851810865783142885229828389083566998793970091780781451968349275428626080513791414241143423118497543250997976181621783273390561700952032151693894671946101061149253840283611292144671721866412371829202598765467945219351275026458097585782455991566956414964525435524603787590674706214875458753453782448092140743960941045714044941341278901002177741630644155966898694809397047850650671940220665969985303570157786337759838833194238844472399467134501468656706703254762468213336361321477385427461100814157112449674109495487437404401153154811041070756881858953403601741873985686857025487926406378539453995176749651681879476539435150952383045132924705283953454814021091076509166912924897907719605110856016481010395227608320753153739409683926382737884032744327721430459110686917816932430333508385953873175630648993674281002325827733746918632899413008350704146717010794237813656061644527092409496426768191372598876043631677220810091731641535357542756023412265678289256782912868675521084211196167012070802035722043081610451811376101837281353959251828033536923590399739352319858723076109640532970240025806026372246403043466752151651417302728417928725762399983419756447305665098564880164723548479805983506088225444629271574454620326805804462020248103937249610708463075013183523323795390104167080279437238251609529369318493151718548162703002276222355016136110013845320515184303828531489546260977524504592179582297213488613409707846857846385371574292698483807421167383678572449172202206299064719301621791958470025623063571396853720864166785963189494734545786842316853052237400534855265209066851834821255984026451488941122728985719103870461582576282534906817585317218779076352019875622782492290031579779291748192739689291028021174893071948867904555869699710048943089340054724402365403223326461185055277582438346536553519899974703019573651169178645451248085498303642855367394728524001050786083936336327983773399348857572278996554222844857343978276492392760149673110060539841226331324308484305489207752520213004245120505379869832995154443290726166035335254142298663691471710439904372138305048643691548515573391278831447425026285690834090784239679200263878875905673120043927409347109047716175564936918110245711948232065638965383229732892897997933273244205773766684784688840004582677922421066176436003663699393542922007826762864204382164820355906273421769766650435715655242300183530656867237777314138165255540148544504868733112810734680709654575543234607286453354913720308473860889322074918779886399261962817251267683494871710188998830954343023528186337769330704747544849641805615897367501354326029856484331599463596098762544245138984433157929710913543839179077678665266920153598578467737363053647029519817058954687845225711768687382656000003483174688784416460007293746727946193645257088078343087954472685239035948598847116724754140764873590088988806659409066456489797794448616138666610208559004231945544195277436560298787606844141843686538336885975430444116438359894638287993431307084221365210448654669226601565749601365330493459754946430343396902806986795402867571002220552432351383861893813325453097054245494907821263116666565184402861440833536156975133164569260651043369101669586010203535098968408985809623924821054184766507457546492446359018374944512572233318019505552670780397397472457623801420109701987926367906358739648215012712053906191817743335184794335586177264929131895213518732689585341518445783784645005767960918106312680644062792595076678885577492095304334523997958500612423421705883112993131628641682065853933914989991797314392005682215699829652291603015292202317169960786026242578899075527989129780982936823925275984596389511935485294717197823313610067529039520749267702491166345393102949331278521793742944860734324389107597732355121664913306620870593996548126839271697501817132401279191036503681511954758394846012445908639008988640662752492766289389097247138450542828632942286592895914265856491631600119248857706565621191789046393557104781666290510873691325510671590552040385298633830817986499967902354881211932340066880453262532074274514331897465516422420688353397262900557882281586428603944713966121783117494770174736371958954929693801535096493765044735079453960622552872062705806767642422219747880082533951601772043448356809937169558953677487549632402748172836383915357528020900344701141755465843738077836248403463174859225733924584856797601741534915206666262556328992957488288448585259321402383794191301338884567948248736207138561081696888155353117606577198014751234790224190423432997936077917867396300676914041208949938230009603856286697140901802693963776887047996624082461732965629273919643110843458941632316648116796484094320616865927758045558971308078607647148389392244478175490375131906482131189009683649143791999252821629232414288987350031458449566594104391600267380805650783682529397581890334743990756989311873123792798120734369569808970287831284071631207392150234079402602497130722016902377634282173877317679783028451193033559677624844936118361192289776500655039060856146800489874219213262886085133267866877559747808902111958831874625853982121990343489664872325660674899721357865083154274787784484131031638687102297306639369988455667176238335328887834163412946617193858541853054718918735261809085443310074152294000736461875135440361759933102996556074942471951730772942335971059365318703113697929702052493667233873617123933501280918619810763115808867785738955038571692800079227734526063957501078148951400125328343875007897294069180212512426426643966948356219040841035707188545720005597217568140629124611675594985749759934769121691927055401477831492351947783685751618864808738611889557620818368110512380443048882128029521575396049961910217714792814893601989133961442275935025491204697853314978021352763280183339221562785226144440521208197437453660039399668664556226163597694117151175190666620156813495222912050954638457091697022297078187708993516274961628657505856526597859478999469468044585611877870265042221618151085103594531368024820649123117027682626728499725066578635370846314846233497361981546951772818448744741880316510321991685970450344749666893384879246338630360392066348611197435233339758334255501559813021338551933009307707689420164248012668468479061521795576641116235065064128713942342409246118923890379885141600306734709425749820504335903318400222814210848757907548937346680893412182481598495060767442738485260032507588218433934097730383591812432654681880110577439299858823408243958598278551384891979110237496919573032290947347976330699226956692128321933882160488630111446070904604957421503548327030388243360601332247291983818782998249127648093375450488148308761044700869466456506914008415473263601185044171332538080587257905480278985454563748939566951136328523046536936271585881979943140066473462296981213563580343981132793707707157761252252174086310363112592725546495795223068420691328609840303966115063110955397563550357162213648175462557854523375029678223413191493975963227187506561406796025827639138325854948974810380240660296287030671351301890444161273835023941951036244143236611786516829718589142136913810714636590708027468113262087309197107426046016920342935691426019664094508477467367479127606143924835636414210875868473805724362826763270733294920383412712008928624148679898828372527342732989659596833133267022472697149562701643486519474761427406020849321794114347153288479952400826098545088148047337740499080469151126758740770675571464374810143545487914132576460782831638873270039658434624955960638248682405683248166261172873999968843141077100609570646738113548807486676593763509445658118156703378826604401770102394558944632310768353109850178481763670845648646833753999996263975816456369734770640501693143302453149232043195141456296465704462891208729134276974087875147174373762049638102844672877854189007944063867528948319294083127502485742053699609771298753424833051329517867027313182185179690882546595182271517110280261691780324833801865943132321363303198805110038105596502822574388366027528353530049012842107461512024951036420361423672908534446932201477556215155906023849469365232427346576084556304059419931136332581074694221163812907398615231431544161512818787923756022865480360054245604161886368376327275335193632691658811099581880651639477541622828337375991286729573761495132565329333248925829352420350797843562760934872695602485734277369196438627181879681339679350699785429632256080678397896003023527035749955783228708981616331081154915798599164700438064020752442324866474878283947118583907571823739498281191364005578130746922983246077565836520673953697918760159360934609304485215180996912379226212832462867595659309405204811081628173873460821027747943414754965296725875411261946452493946628683250878370602145767690087121705249307825925242976254106344505070125091312055188769325301752568623540026853553289411660513236742816680853107367455186328563605196510716569019356492595635810264535998503006329554024634941614801544595112540437225897796682428612373828698859011094480002884887098294045890831141756395011457292304661503403122494783737132272655476874687228743055249896932797974660372360119420554063842378162621043098266000618031083600540958035807771478110930916936647597033309603174144851283750365137841718352917428073572759983871934053659254706026959313230797236723926218538940619142887660417456130312358105089640818293382412570166874257827395502993753718894483459273912497186210679453674647693020837152978000656502213252393435560752648955980203594271273473748086256777094387311186704037411755462892118636764134712488621213630962839452831493910191957753775643748614815812040701699220159540564126969584122662400244038257022708215895727489770049244149148648889332398293003405665401538308436382792865222529151239431429434814725237748827631778497272296086879537391153783711194949583267801319048182878176337075320673280810561163320722337712314386768276955209560773497017999964555761891063964388503442818687877232783607366925959729021848375373666062829866596568204391400291657123558134598871750003057224479725552416036612022488517808432252270987350491320187627035433197799261403896886025128795449166204733520148505385595113613501588281954427864406961447625360792767310629586354021361448416196475181256238697646766455886930632241507813189145573621286396926241729427241171335439538699900891070010374652822131525724302864235343629383676289470606531149034685466751466355488576508740877446562986859842948048396132614599067686654058403353272081187015483485522587995335767749279112897313774574400423883732305598255614148588459533008711816751434950870080271719723718133418535871814746786588006397636785003277926300096735809682879695602996694362683826239003845588346596427175751609026093737963021624959025717164032534526140676371765865656344147810525134438687911312278745162884948907229812447300018756821151260702315839905240862500240691897712488071028211099176516141846824857133530901909408819843607782710718110452418085340444390036771846314436334991701415573699980669149935006145315108521957294144924544995835124324042513296694156246789985123110679266639001447112188800529152515586687978702344067575986083970608892645731851049169945623236502252824851855258433963542097343312702936323837585977098786204349003473529870377184327895714836942953219474876245477415293569263960237171141218054288380493351213337799839495537174133358227122878119235936635485643546103163248677257521352768418320899141943091285184957375038735662966945607887663393269137336268930809410720520047760304951920917252316713360275991470724288171352557201136274217386363466301771206494569724574334439583327245969196852861947521558538093668854394843011570031400245997830985251548743259879079751087752012878371150303458993648000546306027669925779605500972003545458858037375766815719063148162233670644326742253493766274459163191367363858323711088090704333785018296168096396062369791209154763014119973646914239088166284923714560982667550797169971186170603582396160472626972309613273523161198318666971922141425723149009892289354228742140978639398860174370744788025127929714523211969985651380521644867312045042388667052576514382005870797157666195748912278063577181406273981622669064489441144243184259760228691773869248017253819749414664631219020171980907355227851549640476316849820185890216244254082989991847404980520723957525643349867889506938107947187528266274908604416582489566247183882072265804210410289762470706608337454231662103634636023743145101172570109426580552933758710067045324360589188299701992270789631322833679230839095744576826576345745681173388861908500572566511700290869638230654070282220331770078213310269155962847789756063971546005535316627178794808697818874774468034804617127904380965676348638564801020460615019796530794703750101312527708700211292277018511904235887153313129439666429354217539694934786409405378820037197053858282677602655991257891100631161874777662210649312195601650180785348654960316292117075193960541106063051442553349744987950843338465067163780988663470112786910603708000715608985993078148084625057804239086369789384626806620930735879751154633436109177421091631431246458995499407048068054226971288738653625659383840268004117251559165993545566817680236067775642298058183742861348839266168100036820609579520859346248066412856296162634090977230382623908835229511231209797908368234597255987758200274596386191276201930408352761945988388993859585376714388685742027326360875665683217521944789008279983484026705111867155765488855901816093469428592310211183944983760661601648770376599882125409169008525286828092671143095976377948541175585267062658809588154060318769094119873856589442956189389893659536437589061122408536119249224767995351738123147125115361607557191043635859342124516014787050092836057560307744203390384570330007235930686353092020939002750081875340013282148526759956436891672511168109954380870429103372949713022015518571044557661584911760498571911856880518121189857896237118008739575173475704426307266209898756880703244925508323866040481376911631690090948548520545764661115411564648638193326300196080102851687131721284996132556626392311992985475121501746972414999760577222703688750055354992079733586571637765274369383149510890271314137783672630862134628863104804170935179776671577478381594602251670564502419190728834166020045860990720025854035453928251781437668128959987846996183503500545085310654924643809300630260559785612021264966544712197668152956306681540758825566098504688950109852552944437985701283469821001393965390068285829813576478314363173193278663105530286065188068027802820754366093666007899755336211280219580717630424554438167464415317538070125249487185439330440755030180432313888516996449629388812331582521552693265479197217447085360481106699626449538807107471487918235561709715598024949622277322776777679146369441353385623218828999014963208622400409407130751975777368325390555586654846488156211902620251102595012958790719326328907356194296287746683779675847304058440135985358746831720274462223385523585660665901174962186671042772937963380230590167815465501758947069076144128474370035495062275526775497423338642647769705783310586690676333501000703406526596892118633158383224530012555451261309157831184108516672428654357456832243072818554000930294645270100635783001732027688938642485695785292939203478020058822954525089929181396268682922305102565051730555699457362057544634204166680770441051119479091155765252347438975680255662047960534303435600048170630922906608292799272338130924933546522628642487517477076496634456701450132513684442067812386080536873413134351868691341579527570103993558935543614208230822793050125836496148349432333726489165494511874416126170027015561693686049239003939776485848780046218831191510798521147958876289606844514496347057999275512951980770742714141399642459028267627612435411463272579755452551724672191157288590918949429259861197160233619477579854193580603506785285640842205422578490998551509216692911694985362417281795406815586240268577534400623045258024130493270920663955635924788057840221489652290161858928499056300782308465327878978118176468583358129031542758597052102907478990826140346208592787106017713821143665564376120079748752692424254284055747505873570699088640071961897469972279152324651418459348772913117055806801255832776431215120700651193501253506923728093080711285942238720441975052745230300934454640632505901156011605146715524110922342273524006789653545681883674716667043974484207448588018851654767834407607087789604232592743961059100658332972397739602188449763884864238338349409022378835491508630461828643887452843843162120059864240336845103651869687317430560324302713189676259963462106444489442650137760171342976745753341059892313238417514230562047851428675111078503202838394012694472184730196980354736914141148254054745981409072084138388598304446841822716636931215399337167428938618816017046446273869699698987504169655693160662111799353968700081265294812991450764954270799262029217891949830634568029529390746620196112032176151527183546135032378402261258524203980539997519028437405456051552292488321658789535442296541515399716367615407058326168499475533733033571414412571768897066509756820715645261685980261445214397852606563340533035116239221324614106483584771668845604542056189546859539350988890538464551348517166968259100512127166142421777268349158599107602282964421708537041574231448050607895586874144575981444552489104728202062224077727430885269064485955960120811726599475740809018506232802909567910821680155841101412700290127329996684049990737376736057203835931723152668493543020993314784299732357931929683626057663321143360590394997458022848270445396413389766414621891321617089251125313563307975733028482463497034958635992259872297471863067227033376970552465096013791153761579292061291708735688397541934266661453713979091381768260929589942689714429071713454316607504668584711761314850199346267230893522211890694355352341439967982986007568069111001776684115803106594104352861960643050200658133293285609825388233894134340405160152522018670457042538127038393960365843510030815413073100858230131025164216500737223221209096354869252202537891868253023185302801530316055258928540300392623073856581502372759929870450478480683481069058904465542416173747936747779918716161274319783369302001568032294076588002397618189588328352669851083243495081323142465724110142786850866997311621954701553523063123660643978310819666230743885874975159654339731582558889957776299699775345162164814851735030853422967595508425607639799260779469590586437066537736680905512450642834477082863040452420345141407753676135648654172952653485831507027422774728197450103683493817560710985123763081551114540003380133762905000013918718769150196665506868247974828768691396087275836784046443258829949193539533849486455798707675621268786527591689803640525727234021929202542815969877135646013600671885171855937196367487994515831495705691093635046178126592120160616055698785289333997698669753739410371944834939599973807643743732409934799284070822144116813230228161000502372985910747074855482852027980360498731176048263985919179336969380423512743234977480536762781200849812815147685244235969565912176668330094116814794072145651924759339914395501703133274710642566261337638228734343749512683407696343234270973155895925898707765307199100453404388669303534821045765931365048067856308265787519854128171637890376702245367082818055999211045555113737350314717900110886706856377260876758735113105266230454447079863691395061422586209204836992998103189495242415781893353873232199715235148990044652525397688467367734205067803489164697630444191824774179165476506996312768927983356671446301093358161263942856796528323508906356448523853609705659407219657162342743011909521616172975989561986635848304597285904960900468311178565155980488470456501350047893304116915902497865569729166358092671700498042048446162841808162697760581264147512854470743465913368892846696216952826692566621062345970077958704374778146167547318450032212457004621821492380204223358494640814184778000582752809888656199653905033916415526562617164476708613568041715714386983511848256157655077606378844987599471947419476777985219727594676455469745390156043547508947986813352409015259030466657623321199155017499322549829049669921967156502111400533598931529565207424280818700701368435421488919035554593208483879821036954426828312474778131217910498176102872773814368851046940286803700536170132407831082919275449904989881981144721345140304672068150161994407693567458621806438986312105417702552107963467814388314573077357167937199953883819001345371999783934017172173779415504725196502700427048969238830310864968605503733947119459095504744170446433962554865428547926271349231079337151244271539108206082089294389352808369631880914158666416675464450874680134445743220548690769380852575365135459978583727304653964157736943587074900019855959729404462037266821173469641814767469062876226285874047042372244955945819451591595709453974247546920912389079920082225823430448276064606621442744369838371510950055692614384818176597013285725936383994948081762964134904174586565757030849271254725654734059056496286915244768771173150789569647654750491307524220687804943759210127597720671020293900075399341083408009678886146695028458740745274469525140563147916304749011711748842183597991122643610115825609265638423134265826198261533851678969475726701477640981741857373296585581788503991967985335314384834496060439431516592417154579703623344606483598198812669299652282782501297411135992273952326782262468156527117772991102189246793985946295762520115456512197090425843701671150326950613041487825132181832324443206710419814232413399923315588385690021975136018457579117316349877862347008216652297397920673432990552384382397378232797867527576569671927021132820221263996603584361008833903808313601610500784775599086032353407607383869795631617440215982858718074630397493428887981223243769777998948203009321978057072076092079584855882324316975428525025011250498368646032142354398030044967775377619627079696081715350364306166807251915277593151928001772029158541830334290240680759098109139552565216142798704350386304148441684046394202040131876911150635652298385786927431150130039143455253880936294855799545050404082752433854610272901825484551631174089189932078260684735700762376032574770852185794960053443164300043616987287863069790826140936821880123857964737299152670394935373825772306089979528225109925975543786547406596909804317062565284640836427690202925489719633740922285402945835534036729704479657102886582112494778896829721980469952335791369060627472512905039674211044683561537346203104577907826128868116390028174385486892387059848143191944877411709030012621776840720745878294414361061773397382014479811172670999457077943489404247983011665312078667878815997303948320033857908061772550064145606589961405626049675926209065352794372832974993918615432787176050465880633732495206357573762247604102076722735152098891462468407023565805698934411728225130103952461332299400572662409511861544189992339447175534147254416976052268255116577879256163808008779497694502577853904647891574338658369848558839566103435227473595737499699188740753961578110570535954204381552887615249321410432311485344780173967630564871242126980421652033869854723086225026658138950144313843695471914243625056524938698353712917288908031461786101912830501689971730957677103551060666401923846102091399387997321354890676885454619665679238922723209374495371550288123488412241822100483144101386331606626687161382102708015519732988526163535541842965149341637277109633979726981478478228693501057159983349387704879075120471993098584399716760322257039373765636243670201506565660385309489038602863363429522047178615183005478644387824561053539007720080516827540380950069008658837821768695181544579073324933221741180675203056095980217479210856561864965001318040392669667802498895392575017148410479680652822340203120645506301318630319901390902902464065850859960676972956850595773047564369020102686143597689493966338395345176673335578849031892366820997243022383814365293367476963073136396790948026993290129019380731444277137852637556377126467609276322849122370853107281176200776679825056310720050911283690560503063457342329261089726816657097526240276875218565422234961135399389701474843949177853382716861304779141671677936026604359252452415780407392876866901885547837023100481879730496379384080747362573015553944193810154227557152418039258450404192221315181624897550375265672883664495972060729515146908363967048084641247755007518512351708581842451487885024432492619059787738683418880989333582145829921675514922401302145883997147264716832052776657067859511601500718624046212865586545880931371298491338286067876889929813742832520869714075800556425796339495444035257520359396070408923638409233610420202994311740968814810091905425172380648776786132732913880144973450614857311314755862996291605586817472866939513943840864898669361542982339511094480912895299502216216496820318342321650977755591563913689054498094186965282530162264905808706944074283751145518688625695671008484552467777981194997838806035316307374324683124583756797109647221764230142724253375330082694062341913377620780090126416335173408211773473074881079641177998518162718369150576641570757380344325458552483945163450192762974307893666317874330457844455877846371302689494869003394754079067484587313962701549830080549623673190093247383662125925806979260128350468805637557421453702374134759754328161330316517789571128231273263256628109539462371872280317484918959104202382530081376963294813564944576820826171689432214984412952312845612392727983572263876224431830543843586457792387053529657807560088178065968726673867121631945325534678966330667551888326840042342285811076656514706044199047137512897484583386043742114148500377690638607449100581659384509546265483246110681032034009319152824851362330288124911755146179055645054042952937190243347144536521816105428474141311259149030410826138968595709027816537693210088729572345198801716177728929580102758827603742209440741171353926133009437478756829238671662662999589620728442083775169510608749293529036332056799615135989349460821067381822231225438095841520419052445147391462073659687327922845048505152790507992409428238741187424878285938167524886997990518055265694371692820139751611494453370505751211751402770017620584814615030602267850539473618749906526449365901356468952626040792398007017615624257645645394284225876768940403707737740095885739930039960607874811301647572393039909659350106156207662238492430011011866515590112554613431145565350724129431752689016734457258850225245201822613328874290369394889191740772708123697928596709999598817379946735573380773675839675772752497100584618619511885839952246520126526956699131935504632391862511533822003090250994687841282370825082828681442440901777721487158904079404209116909303792051721370275183916220444544272851387305527771332382986333812519131274253030361725684996184704185196732830901928199272315983415186139791262822439601796153431327925941020858842117220631128520668451539549254055825227236923291577609095947753283958641110801748758100778836054620938661307962863643047745845388298583213109029693188954500386517821686843608946023116564811793815641028502121730769546761031306197242092631514143546056115164475013336805351748264838791997568578830609226413386399025320872818076787823329427757436069506112576312221823236832954339490252785099571704060044420834539653481693584656219172438232101190760005790829888874416489154200731267134044230444610598916706074300625850824737126147113730989033479163889637926064700687452187982966360873701955155116930016369515693760541285272317599155685366555722411266502612612873694539398418951246706964851290237869958636082938813690473142630212984364490477099246593327202673639741324331723814305121125194333136062496340924617322625527775615558106819378433771727180813932316429705047623636280334909053920168878930187541785267978049440357930400317530524534494238982500946056393262699601222182689589635011709452056024812568109772946784235535575156250759788099415017533471848622224094633195690208545930540144570879662003521744855446047264381167896820768188420630052089703570663382581940011716541416038665150409272047303557843428245750966073565543087293370547959472070040424374348386211984458446102451249953269182215153507435708135757028492829739948671512125229049379276373915936917151882895061194802045544036224923712975019816758608207982786028284106707848022219005440662429350961907454368283763173456817409118320981557301685798895669611448829306001471842218315408962972018109860500454073274489582884329107066203662202580470280963865559326460673053274730375553560853239439426975695613114155797696753279312684794890093915586999760484592642758671028737208108759353783720804179786728012076426605256701740955525447171283422139627829826917695928129225433417071662138768566878290653377945962288811227051027389572678143254310363308733298403024570232718875335899342488078574556148922858233839953028852798322449716831202199059141032120838474508075976431903731940894551904009319141515314654876113759751559847075409751442942734764683622035460084693649464363973966119383450266637339159359076692862486724971270284561128364000028006366587762799977473357956629486475655141299956140157759668244473058541028600631344670634404290926119043166094041435046429152525327335362471535594145826299590254219569664292986312236498638714681929043841217102492998389925265729988744495820824688464453685281348760367091376314295291252786697509763063680008173099778123716638230803716633064921644857331521977243878349465246325628005007986423551969898745931249719334027579490075222537493663862003311013949984298545671572239849259749896850938407299060458658514983542979424898720204446142828002841432438582820955618137411666296333486988193968556354429135638301256598033322937485625110083110219292964623837299913718200627850174100322139997953774439631726032223103167090549220862103388415143364856188232811047359223792454243279307542282823055084076647633073473099687722064383418277850259536131580584233127904164308221708581481911053154466779846712799269555132244064931670645180813327487029355973927513287424889545262392314969531571770394317166691806147017660745546893865146249278201579245510857607611677873334212148558112680404264599141911369119575557996078668977366894683980926841794422069851645047356304135030216859553966523610652383248582000737738788926668970584632563067728556277283855006789633332004178366723709687558015131260234549643327798565003871367815380016460110554009877850431702421402011714322247517408562152015707574146716914385459448479294527492035425198941046738799760366610752270737822717853247369784956982644686479706218639959217108956979110421955745866044544304661509522202937081057759936047312550501650823289036423914791720312449363412471420703738437096362101463175265933709457502922129014162713592764064286041800800658386632858867006909050429130209850909228891993586527576833408812297149245276178405095753803866749813730668479715538807234076451219876855892538020139583329835416926326941373074636086227546870105022798298784351772579718793643653802352521705660612101181723551787254554457099084874075996107880217383775861172630739098574797113941930705760271172495550021743134360742653637327743449830581284745325971688215289033316445523565301728583988637462492070142043141284484809717470307128206054095984227324533849901559021047320835894116408809964207114894166138109551838011539752058472616434223423664673723937843237834015708987040329123450724574391377930393286465772837599005383062154083508717842676077328351165820522444197520546789134232322176683857433771698791564484317393090313745237336028126782344153076728766104900117758799682557383627365848608565240822616849629935079260370801335034748874374927809464196277741366660759907884965549706230593759428059247556205911778654973370608415099080400923466519205023099322793651103004529726321334774262714413589128905747320641741881647080120265684537923292971978426421866162586941213473753482408179336554922430101011990265909781288756192037200149525063284639582266697161947375569002850491593393054612405354704290746237480355356751524164561570047183266276017219631125075618402932378121506241986001331579230512932402417961549904940433677637287930926720945823538352838510229033945848229756758592066648626796062930150671767736852899131761818762578876217126148151315878350465160325584032820741945487011460995264548795067279920517122831312750346689513472246928414943920922520992090673115370410014337582151674980155534602355383340174982961349503428295488931197116135511753301110017746451079723600762773677533386996420627949545853996682443952635610273443161436132978725734181022962736236934134989766694151210196366443814805792508999940641707530962737619412838278065598371274972332164156189830905906557347483244913821405705093346805729569464590648234382901330731402892794108611818601760030786943902099403480209693682445702489014030997023030949181101160195276760048752293970351462353194454569416428975919294360851121472029450973836089384153392354100869317203052063251294990820904136758671140167580274093050001211960079662301352087386291792065937120663660061311434683217928787831914743647610389201034082980771668117601461255429961119359456443172688369041651569007591661002189826031302913104217594576629548702379609844617782713573546220381709750605068015383482687241692749671816715705615128513302438841904892489037181374023111088645526923840739015354766948255675663635971589845100781470234672737130220160459889669392543078026060398623205989641541993880050506054722269171823116663258372920432034940594770919248465141233367880579842880616299761464049721307857772236291924514939603231287322665489526220946819687047018436098255127891181314798286881967843150492564934810138458986160182358967745199441392587007481820942275094598957055420900082511857886151979684628685679442914867235639979877437969376601522044807874127503204679558758885799242741558427680194637150693131933683812577136244437396392879427621699510363030539333104205239050888724125966902531247910032087931143642862759240462383548791257087237041863477609027759726466031174416659655480244219626813920766009976440005735398510906014623525402547778496879990903149790946940884795236604272774909118694546503229567570021941678591344443312056410092934848882598127318038960622327759794976273693344546938729449250252859320953514916994625038619530598721749150686168772868913534457873593405855589827220983254932627045940581872676292512329903381544882889258224427094535816457534553289659190840975533541229326381404267285383684513714385649222381189115911328146331852852242314881530702587874097412562033010684735195395352233245530103854789803367719601834714153286732795133760305587809153937172272625100000350781198463765687344704257899120343131986388258286458975316816983254945702405414876176669823863157282694932790620334999539507643389426450648880036094827223298012862995917729576986089755994481210048152017681500499507305979249730226362700970813406790922568783640430168205922772292078052667820905083224635335273011073208364561170381794462061122492411928851487079376177712489302751447944373277236672891103406439964868393255127629701665046572455804598541733130088714842106654909484285446089470501766114947031489929094987699317984496949532752212589640170941114755377451259598653191617701823239911530876644548672995061810185739695396288990781216175410067665457945004824682320284573917167602665351946319552792875783422368246695370476571889361918524678377647898622391959121748361180280625740434131296625923185515789514249484848434585697190552914144346419975591162936371885324044912857836649678894372393498271017503702922016172313589221153317003844103402963560766364593572583120648932911029265839270886280156432296717993041194718268771459478574376948226040929278094660901232671902306836348087774883133475485678461352648464293975308913079105309448966450784427045725540810665027009117320492803129310271171605872480208874271314075557201962217436906651375433016137249688843894500255927315077425812036860187629740562473942738639008159199859454636099489785643272266143393187645420694501835534911952332677404757800746544403596971817433399065750020475865883471633910442223850068749857378289929584898075199573334392929399880907703483805922482572738782690508506064653782273133006298334538334835941254554199213208462297615650540872279740363575597855114959241341969396156521572132532457895556954786619364232665178928243791842980252192033962961823639334559045873831102634773375679345639631590854325100879774950178722812806552353757536811880806454680695218874063824835618649172611399519961365108533855268077583014473821297961968775441276590917919609387611928324000443300277165858138994334053545696034704496215355904183318918986281364883737777158805090220639824487686517849723490930657340456979544301240688973673909696231125208451231467639390224825839345045836077749933429881537900535916766041106122957805685298661766084428289286747711339341142801804577365874391019668088063732723496692269823157461056380158570759700347582211191522826329354985076140715394306164532597531467917040929910146925552604243095172105371490135006704564639366243839673782014325588378554038253626819616835300532983072081867645023270060696688062307068292867458354586345305942841118485289549080332269931364225446521415690870773191904817815634609947171319013687241030101392396137537441579291068452211904460543790104967732972197962274805526635391944159246749029116509106138649646004438815800802849301542937979425173065804592692734194189889083339998442728848377427065263819430985929070731438752391443451895458301776603910427702442378482835530995829021170597993919120860686080478467669214047728156201828655282540750942932328523393260140286009574942898044530806314721534021775276568734216803628873065357725727909851563072178861872788758171108237551658489917042556149999459598363070787667639300378471682824825137300045028555343947231693592618943792073820627120605633926656119114221872083837487120130497076783649845138626401339036078802334681488012953379743239130844821881363201982581617951298222719312713739056127409628872914133519839023781935471015124336476633587509944126277291549442650846006321790297499586793312583235378818960702994897166337983274083509213019432335264641090119882364720144695224007834897186150459556038282351065152251606326658797646769925343892454888162785584945859500500806050040714755653114305170456749606813202065855344688858855899648253043313636320553740159110024918725852737495639375753644367965941029294007096033272755861002923957392850125910747593684906434560152712347715154259583761780779588578555214255763965504760828249843744340148775791001351275597769624484484880049176072351724255561518765917231867831814099347286602726297507385920521616106997463302460141773640080211950603846287034052362722908191272372138632982733309379117270530596265372785849093325499189872207710075013976635274042786998145199644928287037192696938873660831578483070132093873701843312854323871101366260171711791371905299268156980202462453537586910239075544357119523079319731831309219365802883416549187580671236988180619586110557561214248717329900257491805133992682398677564628512140032578245954009368764161087365081222328177076396427020532890565833355940942330517106665512946631177027146366207073422826498206558243633008598513295897119342205247967088275448576484823439440036682971952781063043726871415747190890598543514841813720569556026986049364438047887735303289378001616550356836266688137082738761751357714871439289046388888829047318899255521671148641553718729447449122434085788383262433205915033891463588561507222166391067072394880343334574778036600304645648404886832460610028208025246699379346239164433097606265519822707795691958557683745614773772412238126546316904229962425203103719287679380635279754859067440047423347588042379894407273819672441606459242561282805558063139713883825780697639980479408099298803251324488817582288336601875585325351889881767207833160488555168750028704368093295980845077568005263057393642656658358088815948425741216759015312395090094696784615003004366269690707446706255391282056480825798232256105119215055161971707553631682497241894141157820833382858129971871991997882715617602745401682340571952300543563606161122502122892377764723473859948821652836663011772479390590709865270819310657927459836940916686881204779080141603391776875925057219920412092324474478311584250693185446499661092860020345323927825442077510923563488355333331348589174664243956174990967894982870699998428843315109074554298810537463259481980508261283981171416235474460798937767584537147566583872717180544206481379475545680029965318442668613148810174608820779315268528620338148713063353520968313080320598083652533640968096649834520070976434400853426568450336111082504089607808382588048540756824342434819143464377131876332917919662738713419000271716025206221536398514737488562645328391691951230652037134595549139456893851073110515965225116480652766412470684986008227801638632136714511451332244255551487203573428011465349086369736162897031310166483942793636401093680358589098000927323040582332560166366845128917641471882318613489330046836713575705634498539361004373491302930714490038459211921203703322348157878525421538688959602757768125523959817810506014682305821663894933850614942891827364311506761974056505510783398563464499649497975771763762459147903214742040678953828914814653962530305909132903124407824094126610262020146282264982819011340130828094925773790772663593092304628013496257936176235563206207641348349426527394127543495712130087394220171316746915158217317210163043188502626024917042921341202142252756678835670241585641441065172471051530687681097986538575226466119549274292492629719830873283715727622177805063256585972910233143213083734832423260018484502046831366260003921214642032749864010056272344081858074129749122204337019286509233149987885527096217046887175157950676903869917466586280709779492887916265614227738074193413064730994037144400691710584169986986254707619246129310735217909054019134945181753190249532018491412888231167104726049576165390290432940401974508810925490485917729723033179582379715869720777313079834170741134485233730520451679345600472428943524126337465974834949973220869930564144026941424500681217171159046676575969232625518928964851605284525724314519706155605786269274949103859740612977526782900827884567602401242820806239462828473592891723682900133301948056141164457290866469215062680875566379678559053769470717157314896398049735103129689167855155748451948018674435426528030960968115755875245075760824008019198636959341235302249879330038441263697236581729740138555460025164176996178363101848443830589616430759878391082418255547452191086180739509114102080981581626633387702259625816174107218437487108240007608833155541526166745239780355046320025582170643703943316172362671148906904493771876258671947535664125146738320162952621362357930030595068089731971412229668291516398266122992857404619317617171180833433663470017417757955142578645998709763914881651889700596989411850381413766035872707354870169575626358509317588855215301722624412218752892049466847779747951952445857232210428584453741524106541933174224443386615976376057286132840357454660521937823593788112925751395246242837754971438737700873702776956485908930394139362959586591347083564762315233817100110141776054533972297516796283221011134393624820525451330251830894290868600602667201002025780614331606179107421809734906958853932688281184686746502066229177902603871597346075632353558779523372408972164310949315959278646079724748443231264033125123229005650022240590051867150602361842240724301444067620079372415263118013464545745219006955038263577921406964464183223452563235513392160481964830000731916293378736983707136409937631239157267094959456681228897538801835205039927765057912133738837358546199672399558878420392545604316452436843474977078441993969962350603457151854520961768886804085313792594023808861622216083767473356116792389236702978640702908817509352767693977678156907195972410270030246477824263630506765421653912085732584111086796986468450088113079494283709098413220553619321580182898081527643042553161315776108309076576568725657860949233175185920662294939029403917754720564998991963021694118436034758626795811035995405466392780137937681386600626470942964701255807363137655988656614905390880732833608696216865873298610613379106469063352370088048095626965439204604236464543164499522981779210853028120457680371551562144336576190289884945340457197660751892621132635322707419925982582855652644053893239478721196968343020968297925092443727816486698736341826199387921077141584535826768534434611866562956409790501357354462665215646551897896490788072245597841354923711010553025097729775574950141883492684294348242864367531425777388061389434146206291131173592208870423821848011558244373858092489775727537592475798073126878326463715637904467812350495001097355497222349404967227711321778205655739133279905623726688600982392262584257654933739791064908072207877142186315122777358700122310009119825640808303464978628488087275404218586518009711811707557679628466006463847405964224897960162417827183714903550122208634376344420561601964131537962751227590837838732037725887286791923948300066052300215483580201051129898591763910617093744787903360638635676887161844228412236641672105802858085773246161718625280297905542995208918739841622586892939200384836513316606307522650494084026472435902593479558632987530377609120277530518243888058199058270350125184770339829172963549184503541469802579408859395963485335732195480610992527812519584777040740380667794867260076802300013826927495277296963679243249014921869242604196021275755539405187566566048830687644803560667886400238546101547787616397108879598672217485007667044305381822669431126812594406359409617500695105146184738500292097039035131659883682199165079658180395613030572456749756768258028714188792955578375543254815894628071016183221427029168777910047234163669980213278770677534109949635066970873130811139669121038183990272887135945467931110767605755235233956835319466259232262203235434030190756561517641437063340057916669153256397802687412997360598991615455219798525901964044903598914993818514246962196014270441742675623784515737001528230224861902656926721725075083885712585336765193728703977978020874817739699707179805802113284330222050859002267182800713775452152506475510248267880406186126541602241239133725925776528859534829682400224874083112521490548711685883586113687274423226878901642220983746157343654866776797860804083795687007489483253276911305486009911543347320068350765752695780696056660306401466315464138977565233760610253421572311491542169152085249940231832216219469742666074958231142538486647167372367123753990314535836099131567997015082199154990030985657131031849329659286572623024785054138438241795542077627667567696714296466351143640846985613807486279237085629679696225161254683702823812133701128270335513919410414623753577162510171853968370974093520917120282548709758898089708825650644086224388074338652104273681378533622273615770461205288240232243630439188118242192314917592089863586736877738001636457626055244607441497245706744231002974690906350221119580514894202210764233444316194224482795000970840755652676346070381816748400590465160304484523399150541395195439001762434778716616562112909013712988445596496468218289449685070684195227040324754225774838712571212969428151392735972522484910832804562161080203089401060630404382944371274901366453945588869964524291604426213599947053009148177221254471511913220360729264681173207691656713041214729212827642475079735512036686668679671491378307700808095485166372546595672712780988563076066211275355777518430476508624194385564933123568168161842152498077967158482890128646398200653922610298371653826959546184074652630204016366165229267643741211206289808436467324648131570772386821557572435353425513207073001175636488848658460452538453728806768454372901149165046336351301899456433523700331396170754913637918652875987855932783384081417064658781624790387719256176308397160920494463360442958313963185725504712311264209791954773548584979390576472876283302988988363777540191438297182200595502186448420124783828874679271834306060633131357990087047415237550234962720473852862574138489199914921053725115037089592089370396516313790288976268798943721493446445275980236529296078980600542147521329636972747191424599888558126277593900350750623245731380916907973325548005122538889917220539778713840308928197257006972827357528210031649437911022977568062740610874879268070346056186372013311223611248512891256278941967302792693274776781441044078596206153339100973002807645783481039958994057716944683349507647991665451605646299963350328274427031336420000122491173807792139252310605569248638178563127398757872169085034027150753424540030665745950636542846745567073684473616484560504331046918097240707253282971096574892602047539107463684167493534909594007570905055968754192449877987513606275270207509117503605628685311986110098995335161042832877449705564751369173690064991666716668789247981477821736952719912958817703857048959712090956685763226587240794390858071204207504037991793448128909269437978763629869381028971894610657572357118481934338218347112494636199266612433934114042968882044122444026732980346963598653659107957356311950545712298334910345338071498533896036006795791244305434536955228826585707490181437316381479890462835456718111014606816276178473331434961569127057331560406726413344979445950202698091308629476660569892218994320719609275360428202317137781733787174011031711002056122207677041252509841261576836234746104225730130857119460697332720934305427103546836614895021548622927674113886599297323090333294557020902621328459036697212179975420032770483559369692309987460666499875450883923512606021305485467800424585196325547624843399437394453547706710561293771737443729470183288419244393775332391599705275735331119473085499222702168781503703289875675460310073605545292749936331547718907652268540505924636946718211938402300055177599606825687671810083375457105691979151176215130069269462186129167171415274413294407873559098439385653776020295562798285240357560647573930379224322163052487332238541682843614454485760924534889061365388065069520403523144363014223417470409708694538296024529227364943634531775050818161333280244595686779031289566827741468140281853051985535373216829490079578638822471744989899495592014308397307108032924113814555860963620384733999935383031660518464642759507637601393103402416956046739405538834234869689116829845934012641177642305793160432197842523105318695712058866561061353499534123157135330791317557150646816603650109092237480846673474744609228827657924795698447055510567668174920574903976318819594854094317704504180170804890136635260809894848070659773358915520298390840658386444792412389167863091469562814973536404036519038669696667125078544187832499101707799548323246416457109411797272859775520405785264071231150617499184108648625597859480830342198143854556012203259793266300639721714941579777140028708806154114159247002727311467193981298716499529912955584783016276826463069367127194507436758811485496206376508263895664698899923828986928681018681911262285434927275527674287838340407852378652960838075165120364292914901469115149859670832555501378432100335691447279853270206481315142325769585916032039899511597094287587988599105016587511318136898971371879159990782094870276047431240236562745551074027330192547094892147402086446702036114366722989256685148553153782252799408209531566535881341757613343910196667945182688306102424331448578644632176025945038636843096580408222185572261786215286957936168046483910265125612532586908866169651034037688139341899951310017983771203618520953609419589188438531724685959964516815323961685049804616691384749600666472857833617217764037738186614737125217397023277707667040900201138138878858567492005206449061472356866474117913168777226517512033256145132076667272860232715438925464122391385566398940220824590964353470579400138898229622082389840871901663708359080385504668303722274347225007306109730453454114298860945512082358258052157705880311592238212912646832712176272640383892805038465640675102231492474803587812745224721437718698824600757540134195912012144634337595620358197035336052812736539115760544490727558697846609658870667330115510495497502933541245859869119645703661204087527420410037442356937531495788425823497691923331678101318317318627682186285849511815329454698622154508381578291758936064472906863846082584465731217657944179062237695871807373818506170718661023930097471723896890919328386747852523806216579344357661695301444590739735164580354442750124080296367930783514980704237892537570860778755734154116122210446703151751158853503253605669381175070531792194855159348732417607909008746661546980633120196621092108135866084941249668420469664847052391983001823554178323762689365064061241647491670079308259973374455380567267270443116592890298300543535188066129998793320307042891606322777405639860925345013214998498328636796296472358189659448730687696478242480737069988752647416858046857363986069923115816228793514169926332443542327659375808894048595121283983134738063168950130958798625616789626629010971336128192644784045452912259620263895420661927559168824475500362778298115172079273964256531888028134478568818467976304664108130226706561354306588830261532395795249646593166920305991265797144176032697018626190418827163894152573468900573689690863692597333337796491102657504398377090601780021610639596228224537649672464520521074505859460290179723530248521048759553714214002063522726472190956030165429271171502165891430834888876108083907016794382062889944130088427092037973672801277848470829354436749241645587651934949264819201878542780864847104867744018870977666953709191276313479058997919277668672890433342763393623444639695315055614117838922187953423236134451612466256947065474779900519367271857977505747342048500884802446667743963766787790955842075515436378578835926652747223392143833441368746743133935496000785218961609408721283494663573633398131433654686005218571870975139057904619094401492757935081557798699510884226749613049534497030986145370102958662127527088376581905053914719314974967229486497298500538394810882925612331783653401917583337701008524358427668220759690431665021190835350892131685594889433857524195188404385215351702526814510415345547012504270325287689841990833341239126493588146701914927157933144839357375062347892383076290276857232469611495302651649063741889048719072150340172838905244975283303882212663904306316434985213564715348116279427338866852986404300853201184819400398658119222779399086468181098052453559301601199328941884622875506580683983301034092148095736285626439726022229368743944879226643479207607357264371446962271554354737238146128776971701477954667767539033419586271803096630226416005576956916407937001464813872067168446508413877829637390595016950629830317515986444373211265204851381151669965528393159904974273416419079937745070756093472956619295889012582222218829882744723100337469387506138089515950160423833878986051113546661919391859279544093770261555701495849442230489531155726827046278345951280230361631189993759886849030755013019693084462879759644011870226788242822237244963380220397257296852759342769335971051885471455377281721736952551142218987494973923616793587371677903224781402949126776623576794449510272420069030702650919531685451200209457533275208062124939500784206110773694128480383358836593634341468561689379264397535924927708851963511640343888868313930413362352806775356861986017257350797219489061859830863841966664901223431228643005851272582461962929172691843957701582383196440292302561239491944319364069017758356549764570596618982028664143702595737100885573320334717937674696756089071239767915641324487094778365176830522731645476669535693771307803521000764464272892517965653532756123718892763216721997656284071095673978926479135364151762301125849932533207056484108250882542029488397986049663048273989023449920000696946195963994109897071488573016426734561373189791303549157366855160740642414760236192884337416868076734848211730175765740503834912716239916271862517495457127121192590013892572801729813588421132372180395050758666561367178458991083212623269179557563766387134385668323787522408314426336597405631548960068967352414699847978878837713761546284920774962741648945127098609641658321261067740079872490603866686339379906115280778001857560037178111126448114332358919399336851236421497821896924530808707785509796972451745515597839060530033585106561068549047818591268665707255007834206029992436578930644523969667228903253768116740559828415010404566022848962495133366284546786270915533485704852266226387307676209716230138690583706670235753712191175371369676640172394586598145337120512022384708256808412726291798221732873380230642142909972790394697517757340455300465688235432358503761283342052178184491406229522932454883547763438564647566203458231977232533792070125576141167566768858791903700363808043446425165995598577742137059281045353185579664435782791642711324974314575752869560066521323380684522261552263968098254031622169193803486091820179624858752018485615740712051327140138902251394745493538259249266627021044600484841491179769291591127132774756304592600349592715660407315332781584167616288635093931214809125988013189983258879526835820533365431371898137591859988245858038054786402805389285261703012546601330671125428019957023432318293096926097800718268592223368673059467076232621412359878565703482716836980293132391920681924263213646432596786308279518014491478461496309268944569409470782155357094134868555148915548141639674485775240563243820336100638465195342581398799023034495929333245012354741561922130324882827955354564383185675362820726807945394270051439802436137343765786623153764186567639439029747167596883113277730427146572032206492917148781387004419198174441612782425556293710702094428158596840396484543656097757089472701437295186074532372605109944811666410720156857246907753392508610175645592744424513222673868996629087647441433650112385807767756091378886784794909290417556051591398523571366120055924250574903663830647543810334675631513667974165179834839918761294870761231102528185307933707790757870079451994686789559020015129194326015232149999488725244661416216224436755319979571854589662073685827634756865408377702938910965766666417262904723934203374045481410375088302998266650798314076247806018352946023680089392869388376747664757404091839566261745268072515657916628187100885627403519565660959805332503868491797315538293510268384181676389531510540992593278204416723127049519145522613903623613181980144419294059922768836765530548575268876519726624756250453088931122974756373803515401840130845479774753729433041194904253638206285476046572916453026586895363547890642998124967376802719100793938197205187119389843822851907898898991409815694964782967539759489456175823943168957723649412093516227094808768472551640207865256449370164540173542724993688718788939825555340268211246156643073970932687943104514628085351644714430362622612423187881712683208724984300605379311204226658049650859016894802390319139240297086869426934024945711314437478477881505644233824336114524940306384601859479789592867054593654879955724907006547119489220300181897050253305637734530958335172104711253244130567729600979080347428267558848185323269546962686605057156478759805986509946923666875226373716826222984979355135518997856834881181158037390917272930033819761349253437272936549967046787710428852369201284868900367864049427373009730223138748196682834746674419648517233315954824111515449874174942230406018912021637801878774930879359230265407080954078674478758782403108736200436803724575467042793392413411162065077067915409495143403917887213452823363272023448909808788212380156728416797595177756109287485902690217571881970487202918402209144622306780336043827071251649857505663008977516818624428237170809193279424822938709952743730903462596646304629570127710281312363439124563607784648632237297034138140164324533042053966362781176308115579035883093801662795617492776153564541872469736412805423798517778624210220082178602563654764396681142281449412614162752250975556288608343351880197719934897485557554012164724603404429371888106353073285134439540235784451286981425147111366822103791083236385508885225225976780447831657433216837191807790515930592281935633042770332091947020823925201763689053482293478093788312176465372604355273951860608856387544280360970922889664687121538129369597205412725840869729585746809543803698147871850250288381242611664936430683107486024443237225794934854329460560192112763483725587029074873588861998974255985289673053444817349261183127840668597022331033507700883212474696409267333130777842698105485312497472742015334382244068500769295018536233731903424944789552044745981757722132340680572348498582212319345143710682007511847476243143781276107988482961200108754146197368176210358213952512843861535707076676092309794560781156775679216677074441644354197817763369191458389162599098041808782010575495503902889928327283445984175736467184517157963893909621231450570648051901174011740839158458242609328464475646026854201417392812612610260136302890655572361331183306949157995876555198884149339295924019729785567205033756134598079732693334545622806069148318357179701666584899084636556642385573169491949644496309070742906091414166049720793366626154602984252836213971117127127742544353777277982474861917055434779904902213928294953470118877383856794420902210321682681515923191966238826769209212770184749928499955809803769480761793723409239528937653500756406554080199900262890811850316255796365041718210621779399372617016612382037274414760310000942848759648720773261867842553255427060778462113255118389566250161893556407744906721851423428455280469683473031751708250821647455714692350589741346050314499587223469170840686269118440822492608486258500590194018130432840980340473966355756739059574944555489010757818201324062033012537618419921519789479783980501274056452115571812036186786828405509373954722696203206272479077698520104317179730396963245063643296037875590963397881098269024367543471530618081592951672412523234125454552050028853019601916847227023893942650227505082353610702087746821117288026077130954454697046468248617397149793959963487754003178013579423622772173538619466567240791328254925950457799782383768271772743567460079615107951790707814695832242339765694032685601793949613546005515264482689953778507582643314533983596505386264874875576859319036304889945913349085144117114120757217690050229083045899336027661798263687734315581121091003058394527600820146086467016339557529154471628232453661711130547842449575111754685260334461381885579938064672715457349791056819876612793926861863740890998408228645731210135070929670834201193983211129087148246485605569027409684065367533477245176839112175284838072350323819187404814047977706827373700972927385934606892884265028358394067593776305556462979592396408246728737369169495753059839986128840988238469370662111694028344722788957197315884535321789485778645107125242191747496758853907991180734535618934036257768626284921183792950648457589680796135138222072688181395371557629753758474534242143043401790051193187400541828861893248512654504999861764161459886510263086229150785571876585289144899498075688303583917020614768870424035659523686388510063661625347474650305086556636305857673098179352559617612723194134264410301819266463382511845258690040750526676583459017396520387495961848995447936562953790059560019521859324186510347803603597814158980919265268428806536889007424003216189089907977434221436240969037065831844263877007685576935963371120858827103370299385253106648945078415586565684865998303058447278044351785600756435177066678411418953850564904196947039446685615032716719859242011653292546540562032580854265207698288294963859754409473789049797840557793028625669524130436808314645982880353101127512018425420680141914728232121067084154507148928627048834320661774597023692080714412608232940099793061737654782890861041197024056393153972893518592099498760193497228764157919463102557054530912461558796406701792254908824437614024769899309917108578449544931187775574331261222451499332461402368801800060362399613553857323324126392363553847992638594334547449108742301390552154342685313918753496165421626916297247297670055504184370696452380320470441598423025456570447645135928322914987986098584699487983462496379775985259340790738273630721700256523243175290045749876802384063370931498230716620477450914471535939013518854123916301319195258375628886137914022615622578742882587083958245450474996036998972942111027232312285409285977682954687448305677150577806126277907829916833722374721092034293540526857716393810725794720868143824053410785777405809957182420008642107574939277265273480298467148323000655285853207333168942709768591376740446775940518698684059490204275018986082574898465153012873115674583790565752786631594422865441103428404030378146369774395738805711067903209100887089091627737411145924854260134287250735309950212699217215932706205444144650033175929795821962102740402996471721478655129251078365062241045246055045919416814136234505617647444427798097458971632896555934874804415880822310556970431990175074884906511431002789616670506786913677846600031460897644183693751029198028460852114156341977003605764623950805700277096908749222121593903754165756421409800460369350919649272060351186205308244729728279078534399316871564759391298022247609287084901461107247116921923676211542576948952431934961494255807837727529264333075912958829845858635656699363275468394805526952395747564393480610694782830943620288680471530327179727371591257491770371910645147437715157104922505209881717222459576770360836729887641637591392130968515860256798441144154077335603689588034562287747457177303376697484164339529588018926509070508967946508763646755211765673644840287960856581775681034659186301941997244156196373190671534860996558003028290675244636404170706230605234454043037885058948563383599683015535953798109187168740745054319673370185118626760343562257958017328867900834615991490231511644717771858161197312986562492533943812434684929869409702893103960157643505757642664975112830335419332801032981750823701759192870011812564846623101730897645792836228032085832428244504173212035256105713110843245687826386507196107408053064927685321432936156641748173211022382500021835573600187322833303368026894082896663636165868188973363868218376896503918612271571079703671214718520203687353876018432539187713892835727803494312316033397754316223296962602258259496845189805451957689160039313773393823458905629542217380591468342105001668706082712257765173166694665466700188996716241440316712787391480867504805479519313127852253959341878235230135557532594768439467515058534261245749422604436806397407860340666043976621129079032409970554274805744848123529653593658378839821018425131194982644154516641687511684305025029143806468123402701490161140380045786562603124081610603736244562666716395245020953294022881466998898552484412504462863449363336417669547633634344332128640315136844588200055642979426196803459165118972135385907625544312492997517381012262459177065289384875008707855789111668653879915663105461474829923924325018347149017929254067543291599622835643319306109914744823547782448143333288354220997296063887037098300831184756732684555349329647341159790728755805934737707942003472787336119378288663875228323127270393860764710819363260007492037460698413414693633791213114610229223215255934434376674822784409851504360817591182510748969107157117804540716601601634479850588367137262049930825014634529070002687167296216118689811950012055095427566475525940613286043753417366056829863608900757154187808328151352380060964587137642049844931913111986321773737588493944228166035914616093087199815998365668839746326109333816358979162855898775323288274981006460728248561354050288737145849542268350720951790921243485442301631443116543643362205411887176652133500299755364612487397070056870255333750987274128156285666406322988164931458963624208676761439799334249686123533095400638576867164268057872583743514709059672443114019760649976320340108686166584955066842167708831773482579370299840001722274696503745964426960748363406232719873207226599264777355049726336618801564449232306277477526547922201886829583550266872002940393080861308373894103280368888671896685785608842078255147599232191820083609281338408523601625321258013093368146168044195988202088796239698213440819487541250757959167588822905668382255498790973143404874853393258391234971705114717450398098909821693179873468953907567794419835191600184784606429429737272121091457654785196192968601696178096655981905187397452418166484687177112906375994892158572051375725459873920251604628335231409652842266790941365540901330366795802190571220059788320951942075574251477120675949648696109374943491074998933632492743628614017662820622752568438828164577643053855593808084195611676605703808276253390704294122995341298848348231587148605954637284131716823962771142109370211452954566929057524486165149385819596018639320828956855933975180070483083660217935289614448017431680096313213662940751122809864473721309083077362117854840131899242936781364882892271486330184043606403612355935193738292233248817713421832684622793029106483627258522019822744107400029449817471460655519518518481161529257499314751231397509635705215232505542222930335237872758777555570344928298645733740972810192809641732205385653940723789869726005876809288744451069013023480268331695496545783182826061720363891174666252408255471140455447926572770662063031739275524565714535713860569516983112265417793149209706110857723685281602147843909693173700361388933022922500246377692020973087802004458538956342978728815822104157424583101338477589404167756705199750730407353551837632376045579709695406231372866024204479326509780614955385322301576058447215123982476570285078314504734686241663695772022484182976721707061238065125946369630691054290912482052960496310475642429526719929623585839497912112352181640358375483789074994534504292510091719922593158642962836699130341344960362563923524236504087081107569617287003913851347668636928522226561970064080640441350929282422155550156613605952207665331059773513245736766694609699259269348964875168573439562903566722937042462356099187638349287250098600029994715698754739061276771065986060131596637988326909026641882902863866194288156914564419137154527949542028176990355312524199164846741911118349692856559846399029249643793355764833066671876091746061163252268183452360511062041813855971121161210260553323688757205089475697316393088959323577269163252307163021700403292327447768026120183338128040419793917558192918073585247744486115296134832313872339845338335388414129534481077286376570419886019473427666189668192759796313159037864361434030866474122982558028004538671570633552025874816200534003584598436785092709968722961378381681128382278000523577456572265435049862767950492228405904907695202669013165384336239776234394244177720406323779571014552769716334941253535807877844010051059466740956248881328305351422506655571485219519280954560224917651654837907110998905484134810047113068799204803435932748371864075689005592908675878321691817876441435614229130682114953026649615812040969121881898750411864698313380855985433325612946327941429468178023277321615699207874979225467809010016967801411162397084511761460330993427252791693082726492436092211712608786380628745822129541617190661426775240127951437138034658862190899805511624022212447876238819360820937727522854534905536331810583826388003643749639690917712742073545603447639053619855154879111526424567476518631466772530987532657866443240127977359027245872519398919666576045367272602235861583217788317047739168206745667643761154468282211794258486855929312159361330737756256538313241838850594654855031245199682955457648869394523450637491610063121979964159036649390003031653886554033879445775425562569916110872768311689799453477967874935678391503959908116797768427072657064097437372773347376018454366889666964138812642383762907410722618114931550289659911850992949765480375617259783046673538132053125135469271204093197241652689913330379895548984272201571745556518384988772111813740696025723004181409633337128657120279252530791082614390122728650410245927183970398417793889631055339659224598384855931140566329737181084537549332005479336626846588212710856826781084212022188627328822315951097461909636849425802431027292162174445676720280321103974610341856355198541886883901966167506901954327981546214287877962721070225914968605874938653034131297826743753104779076163363701098648883010571647772174569785397661553873437999797174404682561462837210455267488064344194798745115522724721518162280044082812654175491161227802844375969269742481798820618645455903193518433079344352777706600695337115149497836557465744520589423035899131858635807103409861077382945551280233297620416157688569419503951127881743374060602904793064540359333216764182715199182154326800081558227929778944979041903312182337361731509386715073173472501428923957478125056263078658045861775734458006281144854012439469053206644871458481194281115943966128090281414018399746131831335125746976952376100679478256861114603337096492320694454351593151769547610273846055956144860467748248448991296629865167527075846081359064460536946421065779054597872568576535631527524157032882992180185678079419317348920514880993517222217799986285336820777508763868243062284081098202966822542558434029519611270823110265843743305521484279717317285428969034546406234552803590357860991694518931181278324992325010112293529806683164357325971827402407724894503143689111799545203908693852565885131630380740493852618147649303585036361966005568805642072408582772813137702394556485311890654229772787283316013271979308633959641890379001688210724728403425115834942833373045359559068433089100259698056064639120550035399894417849599673201098679473179830997335778165364486690517829866150964175345090269382470721942714641228601274676450533308678019757298334630771262818634905797746755818475582467751157816041494424265266765212268667813665167446222423228509907584751888311344867590114333056974977483063027517978894994555337827594192816230651380665864527096453234469394694388260985247874462850981152184990584626854935651207471119448389552150049851915861808603289108318248177846039636889191425601512252270156010839257784129067646196407568450731489537977783488326032374467201129649784011154289326699965053293489751344353091755453722394092782655604983701179288356630525040450541425937867383003532425877290053388757270333780363527815082463199004489294205757724390620681869943394250271928571580441427304827953010069937367252565459369969132655790960156999768982360705556591680081283834332751038800501836126256317001240778919710919475011067032704479556522515059201741915851846348724105904424201031616902257842433552753907649424514904292023435563589561791757344177043976122758685716243304710371174860160881344441224190670656053872167621741141873683391901064875492248817902550600358946845958854457423651632871984464512113378606156376935895462194960932767532316801998127350751654783361848647872245325823801760465089783417261684128180027155543308565250854764678081859858419391726883395513259446565336692605280479719828188031706608986667542781229855383876558362444858526164448890326402670057841768300183736288407279416265117220137726497288254546864100025075982583637713321386232385720862422030040091193642110189678130163868568305459963282682153246549382170412593763096797126068760992072647291281327172074791491734389233559764016015039137161698590024436443575501478465241130878279508170248690429187142778748212961659236830827527849826774921024816803361866789955596922615611497833692575231349706036889501032693408304167486027842233939229971309705985025143602437381664112913988932095148412987579404519985726021808534205752091150847255131142361921918737280504815336654487361078324568312750825110491726062270466155328039943196444990491039489360729468991982204833750421668402028807454249227746381518269641981138471984965263800206267346300022049709025412420677438390743506329657993023649620969724533484659394698408130997729926997780446537899399647901084798765642676136831956981899707385188731269376343673184909530795066350469197475286647497384876106209094577216013211717367982700100391633264968325025909651020117983811565606797004274328763355270324504636182638732734635015360193545509525568100575454155343189508290844446364551939749298378765946765773620231062481708794788359569940161727234351663584626874205429856919235642798752101527716744817684962118037004879228800868957439207461929052651747713233136382977431515522294602054323453236073883241885387020262486971816597322422412981613052675144932433100638012055173696662646148273150136491415706606275336217812045490392872480105848731620677579141901733576818898125943544860774501986908673861922209410487047691240940797785450669474049991378387218129447476056523638824585419755961505763478079088691497288008518139051488672040664995641147530214614485094720470489343070566444364004167447413534810809011452562677902004663125196555197797523042910534452162531805449136258024037760257109327448104383037017690201552300610325437608610892927022613333433837774627974072827205205963448862513370560009773119956462032390306255449016343802707048888164939399537437900509286311914871036320156527761418841216831585563425267322228970591164489042621855919645077623124885009644296005850970174552831373841276717320010788720613710503662486675552206410031811542827431334221363797503750133344119034295957512124043454661316693290588649444599665483705854347937607653770535371215926272320564587203013171397997604266443647598351400199792187855722016194166295779110985174456918704996345237677245797704624369751443921336663965040506769131989062358069716289670867558281688095155976059855410466669785464801374932831780679929295458507505937584122165101397222938506372710252579488803153783679845593821591192303885490735316468629853989308346060733475129679906810432010652888054781221915997459525360206294814612308102864205913314805333655040072958808986238403167997323199429786039562961370646179513329679149881087981350624043192386205013700879122658921204373849986232129930557679246410898304016418939970502740707961715387500966188624237499812869873169889466665477319209225382368972502554119040647723033014320547007824821918463404615211310224387884897382750544307543380292004002315411244067988235080038566171549176017891431194471612086680373247305577080328472157362200015305885524232878078483875722051223252295868122540068426381814785083037625515641213159450262081129541157152078058844028992335239245898195798243195954005495182416380640116230736978009737532537234833449190253273398827495699737824507927656378920871987965117280930292353999017275168461250686908774384904014508977969176365650014454311393342362282362720125582593488485185017391557149990000941158875952638512177674532729644654791689353158332668687203387141077678429240673731218696184340417883604263493245176037592298705287879077482601032840280560129033896969385594925123356000609051950332008384165587580137620694829431122587895168527203096177595510492077436587568952464715202124904168336883890705878576228196578191146358641685713724497833694644733195055921337601785998557614446030845438342587388859604023959699570271809902618070690823842572207676858985090949951474029350152351252773658411135441281284785612247767047313276123931740601877883892451031624140704339901061975016511239315515500410970953106334479126497538770704757256559459451964355618359209762987487879037861787226822993229455650319239583265677339944428673276140258661829931540724548985669321699421918737237585242577285348625692577380848055217241572595293224132534406572294665883639193518362313561321549649797376086183588601579665153621654847801684770952327046778678346482350882153043727298225229082723739471672590832099674608164791066074738483919524773946674207872772246796439076989058905131108884402900123849033790102328118503430898832839324205467858280249067489311672425901032456384142701735537665977209811466014212293421641276167182756525782417456774273702274203390021895318530985744712122242308475161370741158841184525009681777027043157147923338314036194671250785148700706368471542219722027042065264290408811402702562053572527500520738337976226483175936741171646968117646141759216115697836982274019759643821799143185244882903057238909077912114184091683642232515559086953039116986471539003854327179418578499848726443512018157529363950338302085023248364829686155382037007240230323273968163356795504097037318206782591992502334352920068543109405107062796223844690821557738604885114559739470153097842753228299146253096975445921320832157782786917124615375424020777806256998790034286900447409156702607217283636299239774440874365236007433982388329967137923889648848699267521113050062122433011490393998255881921970384206999156678428986050898550195255207966884381668371553193349727517579364323666591910398565564292179414564888431477537687058005473442569665741137475928014015979481284156103393621830763222549273875040616556175433200854571739383920460015315908357740291341288847688060694190731820540896610570904538619904189662942300006466769274600953241250592017023039420663463738861461397752738997971292750556571062638695814531210770189743934589237596840490478177129026272913841622735726422504778275717118305672875895047555201254290045022934418564997210390255685159864610496071804551753051330463565369828099550737760108770983551011887507319901112049543459834482362283352195803397578078187726138809886101821793660952553381982892397760252552372147928706321963909416949111812761896104260137471184747671901122397264453783848552934667853745289887002489142951130854815870403821765250151094354334723819980098035989866633933162083947734610189740768161217098618380386694187676054811255890467484244602150675864830018223535681349192682860534243417401758390259255163214780790011405725250032816496414670679147187838575976348386347460159391898004286476312780742296904289482160378549600548070074374327076891926823591848006809580981620471304235719550073140121463129258652352683917716621580604779693212933353978962191975801007111137453041525138616860445554207606108282871035141567807628085257862194161973306274527417687879173977076799697647831919021979077729414595786398607952791603269713276208866844630865569774237582481287929413331295003042103163894740809179904557752653976815913397566602972682688617653972779929910891954457365604766941431186122534823106022387473237912327966181809530646392778435619590294407160667697830334266045872878600161984924357378191554459473901999481329905797431843842111943938717881024661154463586615245966480227024883082659291021881768475306956345797570863712494357125025505470585991249609439486599487964800144997405245358263642533314007229698817806990717858586116934283805866376603110412351979765179573695986017637406619303311901201066985445024831522816425589752510314303117412053297792826578735065010058309971806433434999072266557024679806852897972395414999992332913699435932906160844710829410966803013397563337830189231952618205723974209593335529550570087273542135838405823945013173276377715420841726318020720894703017353751114830743831215467402273401246749244741629559836056631910286400805909978358002298417392911772085494636904502736286505976756991078407821140511703055650393419656642340509682328462450180998655928572534725977106198515371955111204892628362551033116952014462969531753879658546397512369568069871291415872783176707560991907334537439438710975296776236026030694319526248151148513050650730722065785238367374491741904292241795800698801160802441822992833015060284244950719034323726470285447403530660205702107826945760952087260811563398532113614015311154456366295662577933984277374342957129339528340982899907190170440745324994293313927831145856013658522990645551881758276385436673982555668205899474002076950056823710408952263506178881041154946907001932040705436412222557015828948624600111179085044028988643836279747030469630793422465909006685948757230122778810715139878817996205625194852787569555604204064666675984181528173917887941066998098115750552275222903135659079153199238106081307943546177124715477418609061004754775705317398920020928414761842771613750990315928226510798446157837204291357176338407336169624129758642396105874944978251014146038259956870359219131051687993338265236155398424871709678014108020388567529322219530621993156394101314417365768560469160358024538865733126855795359510552375311813766600173672408687938441072425564410976562451164971790318780622662813198527930625907064430664340473612295183732278152488920719012611477247375736614206375621353042553671186119685508920773303065030549485670147464749224375112344808270429679543793897535611004653555962783736722883255263476261682246108022418079909199173771147688753845453103624938600665570471583625832339276779596577614050385693372882555281442180292869009468566993536173920908296478514365049543253968214094078739260998227104580080596724250549337423772987976855726611671735807852036917111844852547527317266243527997971209467626668164030545376043467482812564162634701761626433956288013322198529937290695013399438885154072619997704804682730204901109717221294801024535999043420233844236783392090906593320580880848763442468292979102666081558454452228191596730651816875949560570410985421924785425329408877676632027597237081035324172687961055245242312516691336794723696444777255947262810355106095256060265197533497751708914130468037795499703512290206270962108778251903672956799751497889843084359741260585466359333698245329226479197030506036495645926821440534907829310762131114148544326579223081095493283361022255397500370786673919422808434940461648474736772332040278073974577418617047572860748358047469721023970102093284836249464891748201303957980196318942290467372633356760060576183423688585791543598853106086746636513440900931305702413703074944085824930087365776669686778658545113879246870419593626448441042792488162497182004281061141015180915984814926341185079763323881596144354442055685778603904565876484713217217147719863360083293863188007274152291017508663133299941716629004827108429881273054368284536612111570892277670741749410513438459973696946671652399072326009817935034702498328916937345581749546575396690508887233340189339473860367158126002441425138111697874398018584153696993475792657981374057210465250117136334838835104984633577287245902601989544802775029682570937345682755953876316900874029864980248548742766865101515280460961545798617194949259243291085695381864547879485604616034210286156592762665668317871905899239481035139139439554435227917663617169012356429582396618705985276656419815277379167148733934508297722147918291935150083350720889467473108512145445566417341657345746416664032772919994092442113343136527028504984981034196671472090930782795832623314650099284198348458237785828180003736382018904371133455866629302216843835547779596532690399744825302119071454938314742825825313760001474331993064756190527791312810784831938308435111841504891898636156006491424304459484881956984593318936885821454856437891912057571636725161306384144910704593142084180366894264726030038548698409524148353121801345304142440845806278036931779705622541633516144202824919135034932728401052699566776577042718001382187683273273002687271131669813361164836861657587295046758961314536557687871984900704396300929450208162971424893684362706030076892842700281638689211593730970433757562945861098206618107764054487832468040417967626691901571381129232833617014367164507539058540572858299825850962842625336857349595332973775290195892716521009301587553260906486998736075441283227815336656402739456413638198972093085708864998173947964017580281678521621939309724424627045624864819593039733307908291162294247930728916240828705333226603264585107251133995606939726033520259469075530950826029580216943945448197583512050403451210421967855522995513887450985966035626594039581652632253390817475312411635250646001125065086852474469350037484497793626421743299071293759595596787031989496604279844380772517192339048704106531243235733403284532731050564146134417813112756900677906447205342455211735120808699916380809721768576336072551469152599707745028764447583610138020578041030363352794378953022561387079038468870898698378821324303718120998821612022954554595666573907485403618580023924994262809631796433370927913848859777382753177951371751800287127139880670965578452179579292702807719665765781188442899039521000045204186113221074466322103517493631131705182742234421714603584996425216376481353271064065574399592532225128092527904173040559335555530128751820963600139273391438459718349704142810151807971638690385696898408409812979414041965458991344952008765667853819326462935516798828187368256269616646857433886503769708930862068533439247534795906593296569189349184886289918063641537593396952553105434671932506141123774055700364189672436983450755626224998415223168067485147389910663031299641095599169830788596584268299924646047189566209536232753570208279582497599201331016134537155105423134279997233869862012754310085841310156126829932027066016795542448178183872806690452148729770560240286134853248230884326621891788170106850384726661018566364175589079467857087610509492270240125161647492558763283313700482647578362222970576201997102537301701137289221740762857419614823242012355942940180553660203719342819004091872611821202008414268775239493474827140940342396969906140943390357241909629253461384394510047245485962963638072766110578642782658297338261558617068459451871528681697264342599613674791396697126620486330232642551818367002651714977301239544296910287625880394791924861158094108748630007052433136313379570623880077387151949895727635261302677202499871828790799215925756935093335287988042881665583873892955323704985278511353886540404363890768737455278604215672821108675705373099619838425670589769857867379697711059324591026603531858477026712535088998621715254232207060313044547116201594721220261798347449197324419075426759535348690396722904929805883855604491202830048382181225993296772737362180852488166838675608569425969392929906136887182886281114331869902297583578267016267371091689776502807247217142111723250033192294587362854393737816128877834185754782528849906671119160176072296867732137835924038156794814012153141830393727231042919889388880855393415664754552881759073013850863135050017013349948075229992356888739300300546615300248303062145396665705374395662112357200463108022142889100783238674725180118673792687760120360233786520547631762557098693733945243137173008375821772520293942892006153264234311829049947215549703809304374198096370427649544159384581642598169822360051304724534400812515181641706200793803380221101619009337599893950579282030338086060228977963236837706404225201785041290223385223255282254816501295714757191999569715756331977392651468008499327553902401836068696612676065345779521731060602350967127047825924846745038154849127823451813424109520929894853462247521662247035474403258785736114536521894414511180196222161175223751739028072965067363490913144202826915597275710981597369008947092948332300542424058278612831355081736470226504953739846097751561811375899456638455147698377225727141360110355363806965826064983975183218929873894595040938202671652713145093976115027813789328512760032963723929716212001167633589027078689306002795852837997604995387904022189392388572615777060975966099927874162381508917715716229884150573232456742845702501890668902494483567325183992109799688663154028304731955287696165989342614490345902932486210557185597887326248149636348043778516204686120255626029360881532544721507613461891476919433616850395888237957990800599039509489542909172978366721983488098170875446322731183384016666983424210696493209611589774774379797140497758388863092308299760965824058565729838382951932179778876468868722015431679590917646099293130563654720898320576510414865153250571330716907738800397515609847307055865231819896118091221469698754170600386621590834590772695595072507878832674745219569893965396677627938762482864353364475832302104555826468167018478113439272512254749605852641407294262339448982992638531134992159959531459584013106659481073574006298562284117244622845749880329134776737951738864490203272590321988101503221647288049159441883168760038767989729593571738887452634040848156749995252999877635238724854854687192279696472195015461288368762989538005528068090879053851092353880326737552448645225203749636557927500636109772676412655097225803779949651607896125104432151832340458558468850898355940267045039139650965829354030856696262502783178079631609220383315847213286112659674563703678749508001980554709251056882436304407402477183701427005634173872209710244740009440609983103538165078913085646834424873242219048663895266810271363335604795417422959061885582630990267412629751843889533278251793891794567600109849931902444192644758141618278918606081718152292706888013913520271067935974980148260856351639869906667062733345575286862461052551320219722431840111453689309234101658809781662400420211070742125359272023772016986732382156089069049455999373664388142927554906673817046393298969826409824314592299107328123931208113421363155991395756553759038554142159476049649389898526303937436798312280665061190019376264193577902441727712448650627466085142548978733640602240697400494425752797883698954935853176150381379937995637593492417960528657915781326349733666646595273278611442048055831173225931751777866308637655679903144021018307344606905010219057200008654416227272963781886705739167468638347623239406907941606320421590353177495019420223706936836381969281810351573903762950650103733901854518853121922209802879723287919115708529828722220659670764254906053255634846881294602144089636734378016919225905596854215183154407835753406412191869763570000861895580824615032616049355939852507417232794832078200328021121773940966271201823160931553274889347879545934128156094978293124917856266486224732235411090141150060424256556086332716486631538624780262834934520748798864973932328543112069629293693340666518947245913401632501344448736890745532219827445384129086725453757993131047445793370519246601787686920282161230777986634994962240324890156021236365700718154891137710267226800813157109182042179451393358798105925001506259151747224243993592269896479098491519232887403642898297301315493276878825897140126993591009397041841294595145361290589091051945176596200763592095498183262948367130543590315588962801123740154651148332080875265049797924167699435387053952174811238135820663441928781460350871155923925688339986218233671241010807672125953310616461063876860098025886798674398788510786405481344334505696884836556105377140190153550921470988414962068981660575806163036649125029214376089811319878886693252357447543872597697370423629802470273517200609052032696713003194209436725113772473084272810544173778416355052072138046593237059699685917078118964930437796407696275978995220484768833766187039786245616814418377644363407302912214131418647558898703142014254265090635570525725806959311680386374396916578333765189352289407108435386130813979582199131471252296869069309243307697196503463417352598995357629606971143098488518237100646667764569744624871516542025134315570194296972548516844154637516056722973803087293049275056084782538158048286056219730218073762590945656180246512004340429725838912902989183151500690897092736181476952054523733719514774607491720442083135393232662712715793399865536145521989209655508740280187372457197839451356013705076779968046501777024281087740218539728614220564482713593328341927114828739795634425704612217879861818641530568879781313249723088280536325972431340489439743243834798107353545703149341294267451195690855966597391116336432660933548246594706939063303566605863968707561226608775200674464151870725437754501293911291737545061529729691062170101645913408953101986495851029474095978754446680371143252072277938013566106573203671461918121919367524772306662479264550171602861986002684860716605365828697501643309491635609696559556401890101277492288219772691010447437966615333906248159307531931815010119317438812717470434456987132589647367645382857131397428915630920524720358266210538943747537188691036441691187045053289274816848724144357291787572992624945438738732678220871467646984011827051139066584753369437060829435056207284245002336009538582785559927070769981928668582281579642151910336452531514588849069496551988833310037336168484576586352409106081989795647662812992375419829462437246501865561527083860206609275247295710828871293426013097907613826081043612680408137573220290003835069683149867727838181476043467917526503179883659417624292132988693350447028453410550118149616766347257011710581802402574808278048141334027853785492211787512985421942159960451313793634535293785751136896057694229780727881325137543460355215609901378732783680113871827803814502336263074579691468954370586190619564934728979713471297329222797233408664951324340598359116686699908299288388874648974349313136077696427572375291060135751482215444119981188773051387920479470989792251828043075032482168587335335846155195496521783788600128188159044282523765537954347519858911971804454987201782370176976606247688834435128895110832198029483609520360117325343363505019479063024161995195832549482385609058936341959107196100180752590550888337244657793909523432795022197564885344154110902411960218954149283319899160430505597142125739871929620252033980131280343242979511054051540520300368711259295970978456766176410589948241699099859037409444483649228805684973796871496498978483237058743689380041495749993139732902923610136404693389064443201857459024434812873011106027930672191014962545443595025981567136505046018370526226562616430422054362585932348742876775371820639218172049513726599044700831379617816290733506951876451913368083215014153517668801041214468794888158126457873513773651083568206556793245159297307158991368615797002434948403147146539546417490567880925027133135985476895008313451924066479426721241581082771745086909725938486081744462899715022132570409145623106788181275148915092930076153800470097532490278478249398120297944982509723283254603177042115961928633367843837986506448817687699151666610667979502341762681492999320905300964151151394372501486851346822702451285844504321727507942672333792478792967183407271204276225327462584447821701481515660779763876814983338198501381756231149213074923270211688781292202992773874541630041026229006935601202263437843411695330355733333391364999036337090985919110586864087446853261302211069836959648021448102195564312930997716193082421648986976766961816108221041965644962216492339523347835441478355197903372631563451167499208999316762905797699185289723326086410414288839471076908036476916807148506786224145942835009166376413194175164997350549185582912875314991269901796136134049108220329411527385597055751665550880414736858775221710497276411460903257664536734719007060429019053747591002123651909509489708878073314050746221764934947205388354107038751242983538733041010460183999395789860409259419309013601702939640257775403334567030362825725982067388042059826573338254071086043507675851206406142092136364534214860304472286286075164266365341037760678231173522577070285814468885268213830376465379628090597939569529200534178859558560743637411123975446040806454552520773250791384369494550023459690501921068272543455932255296293493721951180311683617722256474063250263184436279317763397221899599496795263024610539857081918886612929525467620388078598847970390956434302298961541296205716118412558415374872907155556370419653867810519163628354400411459639947499824717530949904939952553443770771701879790973428950289644525811381857804848022067264233230796707307963830492315058397716526434299146043711515412534455809427360076318008400389707511470156754750409647486220064359136479904908481281893550481451431144637755018833130539475293981452058847182141734589770791530022427461666083568651669733073486127785997367193231887237106485419836706998760883957650417267655894091023845067500577408250498694298451844794462643660433577316472405427881087355310768519898727418973059691839960456037759255290365460097160958318373566270244984452961380197908025469483886093159706552890635901918989282946715970008776568534294088397657170777690318797328200665376009328292650709688786754929695347382696653399834968428780708709410398430656433977474055582550539314211142023474210994703418402250268296096366594157342001868048738166045208340540195786193524632105551308644293352360452198287577126550360273344660867186207171980217897491220795549762946782075378543833250656849837146828686309488636225860285686615402339046364574532939209719079045291300182327982109844162231524885981769537559494120421024486842610134332413092079257451574810540878904946489995249906950395213655130136434931173870608742472883455106886549632478308213131051595229329148782000122466322451942735257570240909104255263196820483354427039622609870232508177560911213274675667802976173806226207860509986910138084252646838222463742784135423947897621572134431951109675028243812313773391929313286336384632791614766134144383869462123655527476973075567080030429774118108220929296073334438219401397884917291225056959440705819244829440203716871531107862737469672157423874381211149755367538584891153364083916483909936702645061867628735343181897635806700877059182733252185738550716962276172670148257798064003929640198686585980018067426009002120047229828039423598726140090472206540595135799914846963877769946939208192756582783620290591003546915662244521021560912237964690291022642663830910676508010290979868817219186359907903682136886988914877894887652431299731711782343485126593127393835693937339840053316662962742110217321128497962551345950195741020046465054886765447825191394702573522415641034129706481418453024299845211213918221944099766174566061339529458780670412291734487859722512506715775845956946594176555970460363517877484707942489223591381205514263154153695690388424161834338596032385692672375430850249918976165212679989087251635766654758419482614423709039008458372088976340529439693701334316757970273478373680543515179925492704569296126345888773658098992484787540441442450471118019674229941261963480146056094446213743505229536662755358813871136771145709856459516842406531215497411428289952799619852437856045303664168631108925871250538195488356764576952936038620162604004037753699802379078975117056147942879947257762287312492609122256233259026037195480906525046821017625406669504330911208793174388620564336340916382488300743930892973733805445182240152386892309421147670443468675784453365545796599666907689414473470219034607852556510669245704441028275818680641932342538075631719543559797417509355558321478536135744346761302682295597140345221341782410276166937492739045479219242228514438556704849937185266486706179380448392005819914444959260872062022152429179534037513307958386796970372922477596996393759298275561009283768034011048100306251528158196062050338340543911851159428223447512300754016379176433933081450192906302402678847935108076775609690725683079901223328905492634877650266007692115833703569699092596400031260314222467815326138552274711115747593533471804776835787864661293527864826079641851049278390540326194806826540882221096878572641086497193240656187852138949232255654310398382021026789616055697572798824182626727949389831327810991852778329941450800005249980463028511608935862637709096830261951884737279098592157682786512607274657632287912910288570312947327470555421091521537705580275335972564361924274975645569174180448309951165233862676899363121421615106906953976911038789233862976112985018142438053369735979153493496113743047931767906211501510387002325203359688528765396419575128169011775032892301736428209332685685083061724326457599994754228396005090590223381196576450368681898487769747848417531634862450619366631341870415855463422198815525832628646028042182678840077468633281253367126287372867881896740494026180667535945522438480561496226882574839447323709661192356359895835908986038115798552071128405633688031778621083081791514646546457464444253935482606730986157143368990703703340327446537365421812662255370502814862384320359392226956021916749664464203779988329929335516891222352096055004418667670542014415758670022001313159409930805612019125246240585324870490525341079730279300107760476799306868157177812422255254191569953917775375233843861193683232882737884195895606737790349179189181825161163235861692217787185411261640030004877793954564242284864585468170510137239336761002212216795320673285353429996920783244737193081042678872419452094028367717345048292467528779460043510090969824813767733762973789813597447786360174127673908695693209771787730069661760722927580059222931496144432637897622855009237889896127540929687805296510267047430788020740849569682300521898429302232491158912260394738915488058981863748526012743347757804950739561843178634628146428962863118508531412451819018362888191403042413455836945209813692460210791708312706461083184685598232252763918588945812067652850520234823757656334471206074894710652270239497993147948348254381121562388842681170135181599810443377254436695115499991001648901689518492821867219155329711114891898269357239905618875538250926292466817310765662828906914386178313382173983975324836579579381229783924350984582860908452010773178105411894436960003604020709072306732219317023628328066001037429385402142400964362317667188663522709867378597324971232667771537212383636494416522577050633948439698986846272802722021870510668327480936944710490712035559358322862056332100168697144529412313374273846289653592724072516686345618533149933355152109134614348687312320271326950544873534547624753753562237189400738154195735255893438468978138331197823531515519551152509506728899609589897186416504557309664945429658465237282236862353169091683369901425182596627602051171894298311487123430593041421627325976165889699754177782509402824887128851918424978001887479067248385856430862671971517616754641934099887760517376969768432632640884199500647957145407763104212687576092377048302243459158845264090831983868220666705261465911324530314322363549782849079399796241555558799894834989039820298144379065546825325550814531009219098261964837494727152085257313476666522032405246008507517581012659544224243489920539527644093108512808036421892841887264873986913383493161780431364082499474320630185160199040006691096321551865596588599463761479866621747111286579899824199203561921117539643402538918741741007122972035918619509252904093984789814330026958881600536546131091480488451454272559901932783587911625069941441426202914361326523932902699825252320287808499226741439378057910872327255586285696166019357946998734300069546380720852732550705311869351259820421914116692518852955048607024161374613988681447188771563964230986886162042104251943813069249348027414328689485163219402288956395207399791068416882937765805930364603511001320034437830283846601319721329225068910995201640206047955760253596246479532821209914896631567078009380901189630055347105468619798629149295029796631752763934980353228921226239520110785822029245034672070331737376381930842965400674274218918516674079598979331228575471520387080872332953826685531084509490788495793665378511039798075048168811928282989428003874054716418963362922632063653876451808733124166577549186962058380473009537104740320850696738556134708041190866685886027250965223646526733059166489854179358978326427279911818678672002440999710281734418668082210604409953138404968365424661063896495969409320365844411751204725443468264302537072240826072213408274203892770340326289397266928712532355623535092234277006729692911353318600255185675490052677926314713463452441533176170676680862313122177455544318723939589648741166063241152392924852522759745602266121221782721471037049872387897479375373538090272316712506248227068958564852570967170596731372016847675341580921123235769767421933841826405397948074601484275413403018973103697018626443562673637038508594356471291258340869566438752949253717167034780132780791315281460781037987590322494555115382327537711703946557648167942106553939735023169253808898430126438788852999874965025176715244574855430149277526394926078432413343682309254590660773294411596841413471434844743150123749312339329211230625509882649739884106845681881722723800199905582341711223602148969694345788451667304720570407342469391733301898492876346579080898182661641434152656954738411622681075122474512322050657536627306050815518318064153290824690467898600040354005122967731714229139361568956357000591199151685293869077914631114044690586268178895756257938554451016665753455755968570855287051753876185838515191795662496342287766897806884074764130221033463367780681601018736542292197520236183498644140102782221720954660663406752604524627711902730174829013312985816723860525567499398354049797141859859539197856596169230340449647312618597622354904688235379925791199099716021003164632378110675420590982050011221313236368133131033950810972002451504841641017205364789370974632260889024355123071464778398205332302209452033333786713967431928478981531285347866286630600299266991044134330353686972568781142550586514028186679436419868233744103936531739694412219080376746864343678747044540560608945030315365264588402876620476390456376746582279892189802209380047540892343493766417853704717168874535729506753588698540567426888400617278000510556317845420068712882886174775416810170759819006556145725895540474582702150252315180503590726395878871501888432128006935359872328552531595252361495291390628918630486562586908662288097359403217714148291661330951721495133311822509947080111241360543682776065881517919339482654553949586491256161157014196655532277302967538841340575684488637538578315012504272347887090685257921019773112424511410628434932356900552690589952266708122255049285423295350365673441753045755158051097415602492384337299870559510579257449183722239811167688323805271897728828271977678008774888569369482100336125566034064279901452025003419222893586691257870550390082145633507010401281817386343880055808117189324096755661871063974774512817335990850223829604953416748286913556991706624465759440622149593209819897963957847848289207489940970663369704055286046827752729706544447928185951310222432001226110447551802041827222780513707391101603082483200597594339319810076189640793770942211458001932611815258353092845453700453898887713027346793116606164493407344609000072527167919521845659918603139722658764443873154645535787856138762262228010214853621465536879354628325946888733193915208096097561580352222855938161040025586822604588150954184659821414397606296764470680346120814474327544480099959627560192515713271966928081736865449143669369747316281515684582549052642339025395962990272084033965052468009866896918943931621843030970443379561618411100129502609448546833962391820700211073631980752772923688270325110121156526240165798315253110760532516073416975649906098587562567172454409129552678300168759653215068472564519730605314540981072017418496111674795549534085941890742491313523264630754605054470190596686402058336512430513990580922783836754983098147034707657656082022514495062976799531329422211556551259572471933897497422743933952523538425636723785100478391755550216596685681505004277540621325977405222623839871047478833261891710971849179262680693211964126240162802209216249372066330879584720030281899472143351959746479793902903361320531980784649884636501197623526525338685709392376081942860902777892485691571564971955421223563545648504137586364813647753155374251340340250694118395782915771284977507642300405642463055275230824788873470295621283869297129424004594044486406238188932776402719136400340322511973540382478479872946229829872864247000969653489799237361639279155586010860152179422927762447601241513282848669773696112544378517828199487491171865374421085638991812864776378540664813584562712184128289780733031087577952242723059667903395273292091723648001151342402142245076766819367900021766587600303936106678148689910998006072238478863449307734216508136523494139206749942728747344772869850426530535797170911506907387138875388026148341835050982224530619397376392926291822874239293470596865228698460465698507422955938281639429839536331538276408768833770899201138094378777558716302852509446099196898568450242677357659859693669988244625167714175905694204796659710546922608129786396382110968528589834814443932582948550999061895719623992676192310698962149007593064609230494356363864340248687608650106456592712611814050410865984652871659995741330947990330376276106726617940329100847214894437720099034293738437800719863298420789079942438768114035337260738193902502972358810102906063472949118554264430957199209548412543694811503503176000034157770086646540981635802221576689649972518692808722848439940947986382580978196155612797676546309162215409614850546351472034141133971393574031260820698760703591019167379007993452820230645409032901482112220504126968023034433643105506968771922948094636301534588003690255326603903175990591444856088992958407997947565997298343706608756653629204399131662687857460839840231580645285598845326048305918508606157281114988275733491873355666733872783527209029407677979116164641704841556992461619020157159126531829759666091784612331218371537883660223062262653585552452058654206413344023660060982526672752359387354950377190567200130432876302697883793023817716139160416037540431945689071374044746511861707519410662170063691499563266629304049090158023697650437754635699854863705237077365997910663551429950026741629621630777304995329489014614199774170300612597233622028347684946391022172551415069444970098924751169764835970775951531161739988113104243096077861479315234081628222472660419761346066423516663552321123211050457419195037559065994983893528364817075735568208709577872237378700465421299192163835815523667394324992154042439217114135738038987043860642752019244890953746410791539435156983669827368260808085772473515722367189556625025815619909516793590598669671794569185029735079099038498204133165346955207935106727712302705495388492967660431676848350480890753695649507424227228940941702036873227469238290614663594531193354853770268766085829862008916667940682940866324730196610051691288592847586510671132423644356184517906211666374506056902065270604396337953974563122991847144094177078629954821157130029698605425878795087249213467145989437270832763251620422899370968794189924714233319393431559615293180581955518628536441852849369551457202042227272788411179629398910007580513880905212614618138239625359260825233848151505250476991962090510133459020007268385163795262007011626206897782632232730033043964727623610477390140288994971040290942915991712817699572307197152972174900884767875678522142525578183860304145232015596011999505429501459050197126445576436127923361175440106735397369903628165186793096936630388982048715708131650995435181349578608706140153556154011431393494970214923173328613852453585456260188552789388104121978583067827885811640977164062175382654054727814695880147968519860611159273664866848459395681181622065983507013538290862293808763980201806636874248380208469183120541300731861689340539110009922614754952223535501153553347770120104053291082741314915666565728796331727671833997784375009110169391363597047844253166439645391734700425080659917302058221557892988209124653518378990285852253263663268120159379557573294255041666642453242093949447921723373324529679962208686384959707656728533720521176592708915573038253110147593380400676753938986303629125785359247876198038935850609163279466205789602425965662129459259311576118388893434274978232115970896396810647902741514016797048145573877464669332772914373282714525747971034342038366848942206606827623981311516754794572724799607607644141141059008204006331855945356545879543146758302701716115651367385748788628824416471530630579227514550109579431701936985526105957789768778725246892812135169269190222653669292815926287251052192430024024795209972633166917643851622387503945060915470721828592192594179059222806930266713263601624879308103007499438575675600164332998046520339574105529238254372550519498934752051686280361277071953382150555696356341005264959486831590599132502211129185687750760554388556831885897235273639287127197180925810443823716657367714410690664530456857074098529035584240654887849926619518718810824621581445443641297991373150608967872163752882203850138635201980227680939655407603522780912264142576573969383514079180546659776406683034910090787924255025151484625487490457340306251759224745191472350734822630671318684879470836287756027808402538829321471549964191070670835990425401059637486405767978501036071451290865329135554096268074057689903700497936881555327080234047364059340803512234163806930718987246085468769358861498240344940423802687689641811365186747352152578452246765931645512922014134458087174832308884223633966268389433451846425547061432364736894649402081795500916909742622462606742210170992877495573500344072674853446229734460217056251588372429225358567798010717733123913835990473931912592614204030032263490550043698539522380448471869946414540879351941575115476541722124608651372083819946912572013598319590650879169920893748427243910440064796469511955814277222259067141986546809309834958958165988251115319809039989405603882755052545469217309391513410225433358889759349843622009475656117129524266918161397558828349397684212933091528669805158020685616002647230457603912582444903984744942940206091564581863147592044267992188832059759179358735482395706852952493638294231461440523797038522206661764428721177630692626650037546212447755352862059427959691928117891143721588341808005631100227784449091339983604696770690987473726918422931058595761385229128839097027540663758989134515246500863298753748722472370819570820056854852423245143000894657499474995552003782721046245806620060940691409670948581439564613853687498942179930382624131824217698076774095204202868553072454080490944836150566211541592097616304202114238753782190102800906114145323152402661322557382713051534531978435368368753615933125102434076366258853387959915368586172531547600946685759616577725040360851816782018619047108382518108973539781077930615353462377593249483413954414514469342087536227479180447199989337622208833476993578541806273589742126625236727801670092350186220122590769850325186882376692143937754581187695189382915071031087562682293763580973958733443270717282896666541895832003215055743678266155439458835604288600453623515593424447289114860116764064652271129703827186109366436745243781824713441095124176157645520760429564390783330468165637727105200632710444891673219856124881378915670561883916999438443238815590436762987905560788560523885419196674295447946088622231172369457183124703698985433804107648135411582409467848744267795740819081144442050706708148329707651663305471856404196805032802439882326105878534186203058108765798810256779786415071766570562605874535984512550783767046056956570233099721538003095289264180393243941180651796407571344059284702375171648843387594627824095847759329617371700785360244043830381285601595550860636395149254816958648350809957072647125447438520062118112808334321009568597815452695993594287709180715128818146996891457069325618112714079526665827473159935848302245033571254339084675269580469723082236034269450967330160873575933730045025032745041394803469288526549521495274458966109766570640266974649451992448548855729698381492912071721436417620970088352527058678802838801445857238702112107064178295376322392927963243651854907118478821117080697329496140918320934303674616473856623199266503341080965526665875784474715185406739213089521727229808677139620166610367717564279655584679623692719553053226612942682364992054521138635061979361673305191323621483986743243984003766547464288118917760104122373695655698714121802582922937274053747529399841813231436531827379746904753005628163079611730349588077109230416462168957837660539029023099802341816420921115683422892060081051253655442277484422391574052607937108393070621309505574338747072586837441616956658331622797615503234011317423014281139847869938973522659587444164029934380582904858946053638981781811448421291678927250150414497639487739898307541690861728175683610671699581556296402485333691282011973602925113615751311920177184369170126978453683702360937202419045324835965111408516036265062461728224586669830834715707911270966013545119804103432457484660589801896276205073815298407769953327221343979134327306566156438189580098113555733414412835930926415220507348809741171455270658232349069397927673093595409435604437599776078950416199309381925737780157738102254024057923746913401601243773191196997842849240426682871957618817295921686305981112980834138655496541236827961380872861597862180132168494413997569442572695809297891289424508987007168838661869374566973098809663597853846464278803671778184628491395989730816798773935761149281602090600120764215394927843333143857941731057747795235708314257284648486156228114063460116143169768703530206521815200303702867977444978182427428119104695153626266779841102920010622107410112989069158995007947136435151261422735890189787791382422509423103484845796353297436887410296070069297202825482229081726963082529682331720931140414436899626210078745535562763219570205773885701893451662387121219284917471894766861737414349141242559210768134633100667937949889081470920355999514115016595738956712445352423409401947316962706105789160585482014742854687553094385612917508389826675085122547106873894798355927533073621312457391262596250347663992596282038392422034447289907552424073929064499166417915571747341636165947671376116378019118919208471883887699116628607971008765995084222558921975531393745327266432001698412058423596890328375731995718961479003361074275430087294385253521851197138779121082459577714399339153127453922727701885096420053429621754515595612678727214124279924794949798917532527724931559015111185882918313435306940595594121086421698149631199507016358915386893143550384897177403662985029951013312854173087508309316910113086308734672628134786281415107643181776871629206194480407373551514672833091170505349758767884025157766653304662250146710075107072879003109470020209238638622676824748833685916076609528382068200500796198392603338103260912928581027532101129964647507459656090555323581627229419949712474758551857941451659274892045493970542032663639354455060152930833219930048536505862547325561939789920697513536191876332685835581146068822104966719236682552529587697570451643089503411862113476869750149918106030095358435707399661867431427274110727751103030871128887231854896738089771865388371873280197438736023668679914718092794965229325966688932059730359605630782257277867957880027307825890218964612355988888270763319151319184706157962589737102094894232570453453670914303151171240969869142154987499936945161564407444902965510069161416242276855343544552464583218461075053061438672167525084752982131694600642542217840935117768804492042781708536586264938958012515427938134705477512783073820470952004989426719754536820509568313772331658078173010699571210905031203927139734635443211567558230923436785124595417765296001306130183920815885701114675345182148118986530438756823117850768862568021624175986756555426312526903780355629230352148891549732028549849949369104374678171850682125731599101039298228270983476671047037570884454974588525275537748564407197340005020366192979830444138955006305075369359363402600468912774660821787824395694866927203217178500724719559531439110349748215096305125355580111168964033227491639115100005695504450972724531475034174030148154424401509298219294918046700051347966553324267720244896170832433888157743258911430794674716813550594618882918822856825778187192826660878934801013344333176069670932862870372813340986023254804028240879087900107548290436126639628689227666337748470036396983365223470269680744898735126076233479717465257924203144774692263409092024745389766319628609286941649275859634159032752507337915279493967460477302995088506257586131593105732813089358791645354317819533470250095491876773959589659697731872510607050752182591467752194020050683874084417352466031739966716517749043695340734916364909981648712630641586629399941666624017479278357917733550888810215584142024627132006376969528601020695223614871183424682616678382725596194007123859660709232779199231842511045816012430342586287803100751957013656164129794747105226433938842011632609394443492303406174380888037063763309467918812426334221123503754602320077742698405841558789882605666506243194316392205041346572040262167397255820970428444447090070972583464721771190698759941585072287105828113701423023742179229016824014765940511854848556906049147000728436351529040778453286676918281516095780802626136808044630952832576728170905651453910533215220962302834798484694545343011915066739494421236778652091112982441784435538118542267090346490067359234118326700034735122772064726170542626860522831200629406036489851749211568519935123293274111877565301988842566240727449982360931695684821050714692908643498029397106424521322001528635067130916455173624565815363522912738735654704349236597158130890374232153596897503309440014067709286117655723745089999712841630834582326065196853324728929370308953937281012793398709023917575943830011816529759247758280000898277949211881907140094013231286241073219966692003719913895456024554463655753781019616801344183639065171202998257274371105445686381121012184043315218372347899143581996818114555507549066136871005422336191929834107975370589295450286469482353651248139643968762167707281508511198589504640356815653333996709478641554574118423222281183408859940327742042370055497231133374833757057046376404830298258130842638862041516385441416516557845434444095002094599448094012285889591344318096227405187372448577891134365270686892771893094749235610993151119302961203472316735854364895137012997236320799941824471979097943760085651531522651800400292677053210120705253704112830374755138302342579997752630916960583395107672975796633241485353086949397563314683156198203174798234477875161756280029460743193883190540541763266250239746580452771875041653656992216409438585596851328117409825428446618440895856319276268978373807226351983120192292588686518382378748362768548665649022053098576080837716891562457833173493508082397133451440540641603497332729727808816511083257593267885621861379324523680648685164657232753946484349784088807139961758185537644617681201733295451319435893428729338313156167201241281447668536468695978729565925358720244370689059564235215557381755767064408148594459092683688517525438345169960708277460539946789619328295898706273046575192396558945118663516433182523046792869037041821667643181742840932721172158236737082538614494556276993326124899651713597462431200916792459063282111907108311123899531375459997842654760241345659169129247562630704464249818715916549167178099674444465591094206875688599783438496746622215848950697723515777434607657226746327879429359753385494702427408298561476271137971990873091423547392112533321410149517168325584451897188338833746592581582191412610770092586790826724757357134630489275207022165301986107131896345849077739288143503978789276701155022201496595438818375503740232975443637831062991255493802071496071537199145450367629219487839345813892562052862559136682509333063258333171025324838601966313034732151639849767390852589944912797966479586232107783870297087939767947136194687956881874402609621278555752127726889710736222240676457105078819515319423147456072588109424998690191385679996239212524281125646727560002873185730332462256932967361325849868449145730718167775004616068362468573194423797458150027323458838853021780039756214476696418614690236451236535877832833376536996323253984709971950212577942503204723973165164337171569291917376344852922303310044233416766849833146161891855441489626351093568668027411937519577245806321420785643771005230097407679247681470903065517181488602393927351939782362547045592400273556509418897902172051298346852379020734378045079129679932972792269623836398298350288813420257537388692673569753872680881235286137340076770969557723829087000925887134418313382980568908827681305676004054239820424951040941149372698615882497022886983372271884811390090456452732799566222971864956685375855318833755988751919975374268071595110013031742827809940949209571721697450143650266288573405839308891440569675219369354784744125314574560580091795643585958631346081253927608254802189831414544264119616852613304802069736884901225956743938132100436499638292481907220118741124718086052835216187090606281974615269680620860667272837285742722984913735442866557555002232974087156117078480019399724192638929827735232136339833959444587774432089507815457849817400816486665001996980196241795614093210271335445574863444785508667001051403528925113653202709207304596512297040848985451615624192423844884442531842277344487017772195951058377336151811025051447828599459481894388011576854517712386663841316870592230547722207298649097574655519398083813500107889519094235967381090824783018617341368491358500258106614195241304506151431165124315047386369426319688229747418253587608333459369567259496186823429544516287521436358843209540873375295004727909744180536635642853089313325519256842027607962869495536702151586328475727345549301931141209002649833533486822929223553955249923841227393741433297519418053861715160327048140103773047238481634014817225142265645547199543121019791903070984711597068842355688802382201680789731309952705166250522962318305008867928951922664444105032685932896274681247856019685618362314374360318581315337770983232058228673373762544887342292021781458192593341747189526276622207230171405733407232528332480068918960508491069493156550899094190317672608267921272274183100931505728215667732937511371616651303315095827848829222968628696385599121834234909088087263861447553738254409789957569364099263152748594620251551411711219859675119573562275470683290413110425491764715003105671011608500104687558318925260072618544781431148201267656872640278685388390000571731304025158555438982954065650770069814682130800759249154777906900099890930871766948656211333828337781107070054059639089032584199866426575267095739686477611554838228601480027559015683054226297927574008837520653776675470642851165642441583141604836779035285065963969950413258188684307660197757296116461905554088524477352145365339787482692120851904083736208494997574692512554466256657004892319025104650798545584996712237593518742094090976738484980213924208905323184406465282733469788124685803772125007817278880313787102556762763066547985869499196693024974826594988157776885099497250862365577763248620297584633685820351581702500781222645314778939990548822466790005790696488676992432081661666781760439258446327729109837822845359374725269211344617394751545698739918115097725143958788106908989489778422876749232537890589689643664499649535244439882897004436060215724802520214348986115607843397574411801453446232743790887340122304912124006124587198743503232400547135936461499005195262724183245010117078278689727174082345312151744246259637342881378785075120993395161419931324245676470214350629451898870745398474641466241400157009148289942828559998282570877132173154911172962721839396405095493653337365818254177660821237942569833132369836239089992940599525235221203361962246622539524787797386491627197983243986718750797753557516316224982464501088583215556133904375988082260762141035813309162776210272730590830441059540418623976787181138268599971103868061128982546527508079189484163928315832346564347845527596250825546282069709919184118933384398940409350852603535153910002603891899738131791108952332005470475210133150026275698785760897528102849787656851265040150755659118804605183782547982442937561977008130418440536978111834982184811278278316908649963778386464826535002551393097558231156774383724989132786704357296462881148802642574486933272067227276520132380743899486243433421696806717378612144565876607883917764925917732341297373098898436980844888784725302253230803877129555111933168284011589947773937796521583634824404008265713044109970562842846957994003845601593855565366101897254164101695100627918580888141666142892944151083488880765228783053841809082547984133778324850039316956858838187003787355189577560001930420349705093882751719341227086778100661240225187354176740025216318484735606516012121109661149130527543417367470565036221813625393163253962397478634222803952448872073804034473531949635761771597879805091674770034574619659115667486116646752858585549007198453337059128345475634288782109613083508761400653178605621165873234374541733949899784588968826521608912667060756152292614697884401653794844673630390785233151833476621971891760342923366592787429046105308383641247116219907179162568520804960663956658553263183504730372510241712219551737385309793843100590763168211117866391274145245030238576331592462460538948772270267106260100438634524675061961054947911426517128251528130190420274099348876983171938008424435295442857415079086612822363084867341441106534096254158078584043132843727188297765959150655193972779428042706263930265173390489950692323345584612200904753411523676645253617010304019683526549433820533578912419042339453827412853653940372630714267408760249961402914558421268331587872264151683911602384114684035721459862963117918278606630233889902347776783051244700940342545313410499955998689992172147964498317922361606979054978317181228030671195451900334917534317776221961369200189353525289612521054624469005742320552135504736531729547641329926019431683285218986388266265609957750951979458367132933643725981704752101022973836640638445473089782605582300529571903390129065867026177209626155093224236924747268377365202171277587778671501444569961027652441205324394634277556062952055842820950562275945511171566193076361748034142430084374722368077037340178638406014898330601375802292285282951484670688923751609714130780111717497581920659508404921991236455550595038393073238843489254340432377348516392660094539843376497696324837262034703807682560619915657234160633482507090046883370201044393514078420161656895089525938335783784628680981958368682072866444167586755301558503263703346795366559982574567046642757835879112665022686058576833864402088907207325094070113470108646485052650739122220854508031459136398196704242891723636674212930090218927770895458595808792239426891555139123328388861798277162993027100446499232027267642404215757744858758612157431434024661141411992891163225624431982156401437921294506334337725337198053758243077488885723335158400204339458883142090710885454183243081650021110675088991423153992606114812288635543390610057233344289927955167095714065717912207260889709469153560007602219660388440381777981816215839179489629911023928193486926860493165102496891318002856923108325169831969434994495880072550810884743080563043453158666930600749060301073112361820706095530876119856677318463561180800656653744302841447818012110635106536165155884293292871147427086528481766605445727223655216802133963667329729372142412707741211675971563546042975540645176620056096582511764809804105848913512937233173380893358522424359132697846644935686363175133763390192418534492309917743196019528693764921406198638275835097132631688072435886308368994962673017753100756647763462667081319215277210170777444878689343602493747345792282720635603179532857883967736521432141014608518717569997015510619110567348871413246455253294045790270853250328956624360584531411800352238931181313245608175343694910428830082092549951278673955168287330831146645991714918638699721365093687956135267068709058851962951045551675348317580014731904388618248480733761373394773284497417959594323256100396387528981225240344070700484281459426814678738920333067372406954588716424308094990482297801089376276684500829327195556415520948642691061542422029116775537401448866131546335796396874710043515845447176890326172131282120015220183524957100391473668928731360875673442710296940368794383899237715687490050216670765807674726644779834028748666758460513501838420477453570835106925200299951192574131108320806300046649447267194548480841155835441488140083000461019841669199275845934470897025686605549773485865344416850088773933660026771170971870180464104198390800968832530575559844334127090654501150671167861645561854103792468830051695331540851376421287161810206300226238444540460312446276707414591925658707582166967649246895892319953960956260690063902952737763417301185780190748336051793557798475325472645270680899390843688792259948767580983168993984522382541563321581672620769077500611750035931499907567105523562200026692910318964911175909552995205545452272195589263322840436811599414249758704527784368540430647157727788507414196137009418480361202404515665493100147416427084025351579567608132323557286532528732051349592169528669138196927661741241898091061768082014050626677420555297989307315820054728958663605497604584238394874378899902372590411293939394415978542156579548296578693283952960217185859781895833084024717522678001007291713649931873013856872014418085292446238799912600494921172627290296632913290545410271755121819856550881555556896271317118412261638337210641629649812683237148327881778349751687146413126011595802902094624056867302951017722203609754260826831575662786113463694009525214418110025183034509718738723637718593127214789895140760629665224631877650347777431470341377897995450236123120183794192405612851176574724432145620296790567324568056877466577752570014878852152254146582001723090396264295979577885182060870548625488334599637695300241359952575825024311384524254737593955404256636141754863608087665357450204912004455208543119953121017401770527701928775016132617681966445348059367156013712906904328558778141006801396402000222576838449373012079254043439673494992246080930825263851782138771624364652129482537938712577297065554938244303321920609439598104144236447843861880290282288464446179735593618780471002786124016604572492725160639869069041556773358286215973495314301366293351221746496772090621949148289462792648241601042840831663487488882189932081085612023174560224054079358155920197244480839674117325102640075436533302798752490995007367202013450134839371371944924464369234619804548212651904069133778127921444532734603136099099912896324840977090956483207591968225257567282771628094153542596196551988076041798223724368836096837616843311899999109158664461421480636052637163309463817564555306530666511790055081646678740557651746430583038816163995216654616147510243006620590008117779959930811167356893049278298340158355902108924213913618732107878289922934945808225033559149089502773538390160553412507282356662718925355051801167198063355173477527156800933091534163903923539839315193435459635182340289548190346726387951397677778872650231635643365992246194904315036238080850581935149622664739617485282545415615811195356591951230579655301359306784918374838253131715663106046601149784608468774271416050965749852261704806593457611783196946508166098128031733394111900636277910031405896465415093078932917902303748803944774337145099921558082759482923324962543575711565673671273603502794455471001207418727127477194327584170317764241129651350261415232532782329536872113636330037457942332154206330742653199760919692484978037619839689292829292631288050972214375691358964571057400553477330231784490326814601202191941827110361049237423485696138159718217244765934866534379315451636431664783422982634385467824279605434186469925903403818818435485927264063545871867462353764517034585989935895802394476062793680302811466219300562911203794285249214833820517521850354294203945464382867239817506777593579664108062538125133196371274256970095656730211948068263590799178460325678333304293278716196320623845039267421607064666697820748056937809137895118718220783749792324293573612865373566089817657900026608875516531021596083679564203702713476793515257370381318595707597286289629512934183003732974920044896075567522240296134088858001742632202269330452054482564491055112171028793175506334336640844253149401439955713132427472714045638653419448684213902397488571825591856152954881905370049868039552174377423294390638563256743218435443865162180556878558045716113046135333837475257748917270439542899402062893533550216657122144719131309720663590104779633364106871147470124085487147387883207632385115425505157480391021674911587445282158667148656864800061046976713426691975036843651302448641382507574978011150506220853095810689509947603520186650504380085161268325872260963511135045397210048877425578107946949956890124702985500373910097520574143327131920301547732411905411492551172337104497274112657666718879844337079572199704785361682755174360210967515274404107842854042651486000038728222158616780807067130358053325523429945983934486192768666104597127990340442562658975082986651797322286608124896634509569976522412517663560878704455287664563625862010487977370922603718832811108873913135790180709683549684737536681006706721097901541135403917228840617506256683736335599303028610255544116330308460851666923284411328364190693121158359213947829954572588106062927823844768259347729556049155912140322295980470138166078755718391069380869317766853044719768199190541653647324781559544816599583079046821582166923851881123138147299790588543149213317586546402692345646167069531799082240028159446396712047796585321978609101909595362084155748606683764748480911124806977009112190938600355205204434584275378214126939648125578826863378790695424970839040652252913168664356848929740301751580043687138003201151267582034303063597809666338020925717242074241266807674343194078800395465940390597929451306899567103697281872034994416374102490090519217766666879506400176038327897323937727593570193710073114109181854727979076969969756098581499473070411923407504136284223047817190546518734818315951800583164954316943702954070324396385258228529297210903266111338438077745799095090039276550091666894531340626115986294340925677863700168865057923903095074440706203948351938059514200081501616951538450683538970484810095126256334045482369673896920628107650036045478198798584681669022529744548758206182936497789845936548265171922815746063916595146885944642439338753837564587233028650133912489036633963066488696427058260479871529690162539128933763467358052427307862783685687269430742671160862430121831097422055605776395555803212138009051701367792614974312207276472932569180203141185192630737281774084213816288255547232787038823471254850649348201301753908010945406119364360483894258649490496387320547730088706930926163037995302012513786666379298023429017005257358641982183428156170184840837838490402992327665603043758386479007539640856790358469721055076051964281528600784767882294282297813798790970097619497251825380276147613081038231439609674542880499151126964915357503702178016341989332937371828208380847448721715579467469832585671614979408475811055210548211589169142740642853018858026109099119103450585274335236987227175175252760975751350739492609836071789709895517491482215159248710399687922260493753612573955984152749991613338722368481387402064979053340163528944651011365856723150004754363437433692018226623192477735458204403602644938521672607765413987526434964644522736562147748093632244476916091662470182227011608442385417704046014719223846170381531058694832601924177249483449625430975990921033273134514563898135973722727342704614850176334495257390122817216638158981024530009135789458547857219231299668993133700509381734092694006289483970904342555652181541436777575078813093398320668280911241979124869696132295454009701157675591322021297188723780880009129796586373225807309849934909185601789662651610882575622229382144319598177990243607690537003376580954314347643957987356161859098391230630049123532500017103372469631331358568360853184781549757259132003534508624680507397794349316815385388214912764019160374619565683477746238439534548658124039223003519842486980203543299736572419354803902546886311305882517965497470798815558412904626458516951026546517608826246113331708308249281599074880479897646023075148307779115466354145069249341528479852843712137635229620832232357510674912882069345422448241508213271578621009889376630672654574467028141706392388138718368061710975145608767481350282667867427624960437376380284633913865336219391929055632768630623730439395153223760398588976556799045441222561761816689961410366728093496404462511760656549605699433179505510003005806481963642779795011860237683625385523791676146944901560268571413255124751809547804476376409857856799002540412479797838097751608807410856161823402491025047214645471480112870374284194087581050886582449079823893193482962967297613385811978239158331947500907976965182337421784150075345418986832636666213340952314072383696079838895213557424822861238845191913034973650132715079955661437029242725388016774625892476076458830333903679692931399395325929991909205328810346562451646053887248265851499777210486366174584837656782860968587030598363286305789412598362811556701038290004662780230695726348236664429455570942789439562955455447315293974254141517073330827124089057223568660582475497749755859566569622409227185285727716994926763665902361790360497853030583243144174565399858381751036213405187036493533379884288558882170317612254166960447470915076496067448573582311782122758928502112385984371505737177186460805252081461310693230389392935743367019721209454404558066584676418983790655657656447835623728994862555380226512366023562918186225385726502662672852147744930637373662622733241366149160054052686048290197978704136791370944274421405399018287195542000517585823378436418526520989227928948730252735221550902070314141059786499553712532468678841875904678927278735140769887344661586466958161694293474631553067625393924863326411312130876683088392627314672203521072085609504135784206780828550312081755742710907513843460330181276329672489327587484026237501768739946336344006072980398548492058589874869575544866943872366623945631157580132794801801896762914112068568892852696346469118597545130915481073999974063349833368247801965007742333203685979515113381359670770286416910005775155855002218916959444139604700598412741100483860422979492851745137106370872913377220196630681654567230849919766254534255295244700911987576048088302648428443556395305761161071248458819522916372757449905422758168741351454578735306717333126001913577034876635838183611492611388843231019324051572146548513651846743102675672436397623370872688017219745641091289851293602291215152994296062061834784314994845755862572437427569287088592982268093051286865253366022496936291260230348091420475556725931383908800405495495142438247809359850633234212245239748650272105744785611401242497593874237263348130961978061628395763072672101708146208571657940763583026595944293500116127557634237241621823675375549000564935152791305704780477601804674769447783313998150792303099592504071444311098948413818584675998721362316394914390805771981446040725644126918610266422955593278082916771182459181092516600205958834433389515405269916867019270714522758408625514458820664616509232288368292029144243370362149406139262911826557215316478450578777468760080529667625664605493142822824634069716838853182408612786083336635992011468656976559869148222573087789004906880236853978735426485027667755943705138754484746031651828940536641026073210304168412846133325424423950818543572416622662398297677856757493609006804712051934305742576013076296751831270644844339261525459533437582105101100555343122435023768358768113799735893994774811594004512672902008555506910030362673557722039391848903577845331686836566559980005939145669831075981731814540296555846612545929087135083497605275722907965476699768679397994822416908252343639625102876412231281377495753721369271408136717932018613706694335397352901497630317357556896689240758575274779254853492581307978921129295183990573907944212451626171279682389671178168450793105699692010287049398004751405462798860513387934613293302364713257321452113406169318585156146851791772299229136280917315282120358893036194613452586366593290665890081278791493716744503957777839641438302105468659961649665867214056218560564602843162090967283947954059670485275095466973276234303505512890998873230140535447753183951506054668176808798568746476794368141759055333151989592715591771738077735242517659888220373100779138185005281356159444090600014669934614125382349636756538979158821285268413885248070079337075768170396634964178354825112089599220832926755619123510860950790421584714959823366067587038128486289047453663134530922160675033948205803732527182045582700204922042769499456975613251091382958677198628585469624867039903699083694825455448680812214575318337901341801867378760883626526348838260628047942872988318206779032886451433267656608549828587328306410944688110711908098426641224774250960604083053162098323766125476313868600804216843941468096353467595832391367787428374256207002633197388701924712431886053645801044462243694296752150413373998149150650204106828976728384935232909801249550403485533469136753133029831134797470264048676780815791327468515746730629067999583403003966972242685733013028845079154545989586085738121219569882453969428900240029871181966112455090707493803623219612845147067826888997540848385224644236401219461595217739006384784594583340971212291408263851922405317452841403669694002769033363071601438138555789419142717986386573957630647841202713812447936123224576461134789979951901309155429860866995479323557005586823445806793977462063723756307923119624825926407115675311638684621836560452219090580237501292496288097258347309570726040122917599103543952496434971474714862770215392068415489524755915648340541368484346252020182617324581642617573669665281211938299695520114019921353194336746645756052277779296073137968919862117245757609440653446457899436032282458297239898958424395604821269884531219655046700785199731331715973601925790772966117536445009154258565856973691691678565522895389260739377929728178327262072976994370935934633952005359284344198705443189322158877177234081610487965765016192889859170388857007630578975881994906299855927949559609456525274603485828091549592689696839571382102040952610305569743029031804942239375050926313928807176564736058954363734442068206051717069726259849637835010081426507259973976742692832194403374868371764951473761760545108982128034521289895775177758435227164643374313260037471999932097575065380975230874717619974874764692544579636109320413725833612469002409543732197829267394795009490234813560647419873628156504619234551971652240854501788862314845492778597339499071852946546698156720199187385410645231879503896865511569541896594092163878058996786401737542899373226397871741290075783150119571485509109660340929308804133078371284110681356316196049940065375019792937941121400413215345012560237925964105798508885911108391027355221023021227144744358988611401408758781243608898292495898406168698265624206505608367179426821916990659056965110272504840523301151548659066604043884111491183024588868150108240161350472657228570027190604034872305136356183444738948423339485860356469320860708470747967300876751250227715808649682960199923458310322433061927219007292720581865920684688715287869925459430029052227743568398239640945445153291585470751252820666344003657655082055579305524189639631500784236084841480896264665435461738680287683132033282456089949201324778762320704046729841694372367109485439768855788964780188816159836404999356504315215710859617502729884562985918344434434131438127820708165315751575403236451853603184658369268569706070379133459044952150231482378363962884785666914675926473769539700946459937551322812414662406641997812862711499808015097324692325331323739313122934070906251687964346478520356196413732000503251502074351442995654101201716434809225219692482583170708608650419839707976634115273449602628502234123031888496104343402014042987146156605173062235925516518822500293471013074945915815421493328739143902543710910866486530300756281256324081643555141560721206701894457285792653523181654656158142181287921764855475222872373549566051264662195835397504156358241593665773331562466644424900407648788249739587097109257979231479839328929443873854444270470485568950100345315191765216803859517522479288673973381838277041190382452835257772993640391063268075108454949805118125539534020301945898133735386009748687637478399599813177844224288819903382227532989936521333173592919389161738046032927343603741170469667741977283104844444358671237964306759279492030209855438375959759426220658940110522940305810399828589767258044102263881625991934983898578134633247097175380189018014112080240201342622907331171894580462516914571788818960671477618428616684188003176069666399213587526627204675963854922022347398709477249566664894037410593413812813867760050342248574186645537501077317810716280587578541320568541025602229562764138654682474133911587009247437533392156922800661194089612045508967972512008797069407238709261782613884551282339634960548758986240139698443274325566458962261077465906459627033554855876601734251999386898580816013069242118131899827575564393092575718511029944259185092219079544990603077644582123032272554685929571031926785654188083724117507579519478540476465494077121748627314313389890349088140564538265363637928223589879809227673036937515318988707881499944126338757132525064488323341040939287155396314461010071453424296368646168537445851859225058924044000666966522691801701454455051470809995176142760526069519176446945656309478376368092324127294802763075581720867167074990203678596815515540438201757170945425688714677717610560340981054516259619362463107717484135329639662852830641714119238756380523464413830005690147687831381726754595652275323594328081968418006241607688004971470379124400251031784669282628828864280025878238604705826859404836199147836127329981285834183222514516550074696761751159599327592219518071836886802073055911274969311454611551950424930673869608121660944658989813473779576048688930397076672363413090571574128978966714913747763058056257090332865276083611519677350141188952588110060495680223405622609835762581264458434832234619602917214762427884703842919999017739215990670054529648348210799957236053395124663078417836358476927108360208294584102502187396776039011927421454451826479227945414218524024973415628734649581380323786074835855593719293963460940313468768758442358898022176184984234447273035260128106209840247750480223700373858545276086119964475392981598895553073601363112138783295735514245326930431379569739426933559772447071190828100935892983565330528260089527129367769717505599647968200225922146227182494090846200696910298095800717786931183654142537734918388232403716667363140062640741160433775455446365641187884715858366838074623193385987021748318609138218682174061964678896833327903249247622904684180748683005035689459191645901544821823045455029999983845836353852804553101273821691466832258794245063902576123351493797737374271135313914540342590424865808867274577005996594965235371729498203349520798346394895234624079769586988447469813034287286219618319931429542703084353538585723862145059105290693701907971690435701945759019044280674189137674134638529375613517030173402677648544115773448439573999520507598971302296937316804553431064546102736374950096453808049748176882172617576167234282492402921885803237057478272034207841128218359845490907722455777848202757496585227392788661674652727963386564679931177107045608235013397388588721159305836846597050201957610011463063892589461322134256268854702571394922690621901299775640925426321986109959289257325071228632118135344859656442772069428811567115470716438949716697061773136815626315206294592848204467489876127578596010707903895919096910345557318305571659906750632800991908708551210889864876304738973026133976330831634864489987195455005638408796621440326671333463523252766670644350847908139547240839251941138255209843860685113140595765341178177664101368522929879345509042481531800878130723076312761971334192982267669085203265919138645690037055247323738569314728356640496821770832400126520082556837350834843283115887256077651565366157117666540925311593017701031979877925474933655699256862723315412371443839660242628292340542604380776001534845289259966226873835318189947294063044315790563190095232340662992774453445838862288969514714534939340594596808897167596826946482590629591822304547177669414041227683278804824367109859693163473922233630989841856271029505853768803901432059389100325299073345326304141142741261152068516886788206596706114697352135361573116280536704608512529052485067904718127617659179651462423526695120837518880485597670317329731460382609142435557972833241865753871256787380724106678680475265222201491989272364833607808469074223292336898782447505837867714322859344242082112670450496661816533930956982091611604750770414361581087881055006192226604595388071257432734759755290212662081026557554694592311228585160347043362272694726949156854598071258801968191610284020050564651233533539142237690341268589486752409819524369569967068825333690495602705925036178412502476725003804499920665695743753051555703382681325625726014527607239253977664608201499241951509270854426517823610566260796706501782805437258888165848167714165769465152197561151152038936447740211500417132559030021357927345082384367162625619237748133569239495453420338613357171690143203261261327044491299661882597751421316054970832429543463934520301153414876861984547652004674435150758513160742421173917747662951034712073045321059674584599933397784910739926219039979804684565984473579959066145353401485719463618647646804778084795226494586160520800207985020605304223930025781378234494576760522479408122232012371835267482682515539860621726649654665198190025811945506076488998963570499546451260840694495565897230555175155165947813722419720292630607907793285177617128698044892869493380340921048897976013721025591669625050298258999867474505698277034560371062239608443132630987484924324160962219922243781760170682649421803499063628014700994200917033297504841452722253138962996425647417688966241534757293973297718899565875960071041593048769754326185826328272567070111116830886265594916442163423498459686403297590927859238990689504495575759718122613086609744318405648411748688147859858805905127384941119612866107622758424486368057445066395590071136223972427363227827959686151660571473046707323712493705010068420802272616222380164988925037314214465636158395433808901058642661772164553129018348463848187093366434590957662306574174878238850346867674368689712403958973058890482935672412588619925125178091627342622042958273330036062646454838994820367147169689078947919503501969831804758330748726549671621566377776299154742881189758067000093263876203100002665960882653247456570286207985589365826724847662954140825999029067338719130519459914221148770359762835107365131336716621258741842480653049494050970369659031368908370217069229667070744642930907997854413959784269224711695409406338967692202384120161206682664961895059524769104086509188224789530825150210318518371055018849137494981439120448934760447521987843226297942472027385075911699986858764376216439549987282020832550716610259855927775303049403716978379427183308415813471268306727922245162142094089950350052032652590309243143966298900134934894061413568378564603113249999899210461560059767672281531167620699185128387548807201100369887737381688209648347414195017170690762286062562131875984375818532271030782318139689917885295077457299431754116490162243163717964213036269891579590569846343378252370116603171166707122537394377103830891040041993586643057984555755609781202580571035944339895724037495520998035746622351741018748189492962803530529961244280578438570306168527036511180420498796360407347390517495176924942004476459556488227265261664950401135663212975073873067292226633214407082039300205098555844517212602709803484441771027048372062046363623847606753286525206917744008008624438777235734480038004855166464463155023180861263738350414495603535068061381057088236840200309791641042628667209003392622083723185188791259234863528066483003726718108909693173592130873048576471455684551479042513365833407983975807306551669452634751724142430605808229851422773124456011335528240942124099744818679117233202260679435065131745182493548245286854904774516125908280476531512757200371450783262016447613794799878181180627261548655543475792315346139410169690100175128204247803146370170817736650128940339586786592169643447188510647135874849944858329105494848889880546013779774393358547306330886169622109778990167906232162390355979729739723832522001609795768413577888507116622055534466201212130021498590593333245544582604078403520829999230162515648508690018692135944549471607778227230104243048697357963707896199664688943208350848603260257310771145882022193669581298735255502980139263936108651581988096017328554710167168953291844396252705148665117004181960386759621085853986308031337368751867292145025579955837224981784819136579722495253585352784237090440121412208882190490648365926340524784481397934892377364295414069180065141431745772893677123736501321525588089688974283393181674061763896443256029782277135374825009852157168806164134552922157673708673149691689656176926750292879055106255402150783911952838042916657079196171536347050290690781374889879043796655750270344474352808661003242864954437312293072543358282714410334372413781012471050291356656417119905842353668349799663604347767308966672802176526042260101365912909158120457369643340345792838245570600057964444899296809247191137697310376244890196925573513377290228803740309022586421005131281331852769503647709281040050147579432255715907699937144924562171721976932303940774860560744466892278821333662870761125578108714054304876891374240081522467354205413468766760825214852310228231645538819442252637374462888678987713462275628433373174533592853767955142858933237371615289547164955035604797826545942628071890861567101722007487795713742475771284290186316304065057990493366485905853679781562711003863005537245260600885554436842364281513524803113023073514259625381018291342124991002104826073238703405724471703845246459812345958114262818668174756723503112064087468762065442511431263671337691136951512762191422039715936159284623683894499823966661742237511998332931116384511631095992732560176334078826186702609429324858688073301720631119588839661199237652849249676142979116304612049285363088821149509615834292010097817100218769567912100586032986192580953341941839610897382641235309340499085415824688502431616004170605139784457210343206429150901275896878519824056368322210175635680906909978535774944863115810485332690727215750580271378737339094125988625447630275679893890863830092097517669771749920215831535426842162770314395511455021638630960456155260511794722153474610827094611359795084586105276429995146672828923780713921574912453757958577045098290552507052119049451471508984050330661721150475308221349666120786708015632536689522125513905537189849979085713360374129844195291419847820260249747925034364236984764021933108882344232596106745570819660397577178008323046471353105857257527454929963148279325769681542300012506052565971601132422020182684258246367638193012825056724436782142838135926615680355844306578457675110755044167517996702235915414997743614791596994531147002490281922308565749008776086954604049828464215871317831377101589580815655258720132068459351926617462337222526079828169001615278123656403602103246247456971574589062552207501088864080657166780021202123418514659897315134003328870552540277084004527261278958375080115365216597135152489173553746657585843547699716143130817486294134448935790704959643234118233352908588299735220230030973612394319684095992229049582354762504086770084112382538158778015066623537328189115262308694407252378354884276003534287885677962155101754439043024486177727528691463128226122074225020090110762136265851393161057975194305613646399772598510439958208322408830795489625845825431854101880861986131259039784807314861715811175108388397901391968848383239923844059416526061302283725518642084936603369379456096950103537586688618509856567351747840017638043597917079347713205314579125598423799024016803665191725077684185972134398938055683979589399907588227012173379246855819616561694167189769428945075529709612983191277698590337093450753912084319008732147180256147636911934578098008719880893213037483272137155062052563950648288118673362771823584167880133185014818157194556166447580792596311730582536235254550797691096807269213687924964201832698443775813718888889940218747933812480519840645739495250258261424832654839830917459575300150048736497772691664306586261941098539749990608525926963277166337986509462925156966984737139367857421958067400964664606873668666523956981383311755368205327585115082435420535091652842916798675487079699874019382663340755837159632030895056863143857311652294332956979819541063620869900474002779080898060466763317234098194704944875288426323621310568700945689732666917784317496919772798610189606309217027405723968306724871612226574499314493923358581902672526213827900781422730470933937438804147087533169077064144214995528447448141105207525218490285906221181157643641159747148091974215995789512513104529482800654961983004384733303493317735121380654746971931852939121438923159066278108019662020338804126380709193195679228701330422783376745148802754030406490911902711684830291087452754175457981581919629677010411931055178425508961972661688835220716160573525726633448950580860253657120392385159064639302343631323009441309925222029296691920325396052900630867960074633419088032490668496132947362617741188207601011012559955765001121148327992037402643903243958754017384992774095188771415835962491041836249312976005174439949700291508536988106645861089078572364163380387268712467650419093115202055168929810890262022848317597219139143265786508867256386190125214221150165402774629039328122959265770542216569580076118914091501325302685847374629478409730922912862682549715753240053057171667721080568245846706358463427374322465797199014020800637286914112311361149414951190376365074646040257495408301107510152112005017034733188331015329279661075822871325796641774437309223749085843065715535441118044603851327819639695694314759323327116157491670492963192570555048431142619127116867112671106951026930240526089453449970625239075589551913413900582268672313806033727103444951932578684176871543752981800891460241099469536203047929433762816426761938882502767198010691864679972984992047396822503721324150924028411140166502770205089212609693836118324824722065920331129115573534097908631467326044450495527842000945306412469409173349984857242547758079170032186489822286051020110293231815369132140932879327635588892869895347497777222063483433439686015899681227435841390774342703790185860607565513713254012301650247241815145326829655011421875215305819887860445781500448904342327396287717423753236632203373900563586553192339405605549876988330169393259119889764372997636107517172666257776436065421229871214476155657340655511304767332242600550600417542457759660784761233895545104085970370742217472077546505461994904232451961560014398668350811852157975174041381299818243010320025205431821000612786061584633448171379739159673123214616503537007404835671222036189705649755770867247052210111245301711918941512787361551064344346354385787784844121369222447316249421952760368960436362494154862457635428010508721569171978789062681601390891929800998590572512929874543083877937075750279293690575843702704096388895757152560932829871626040481642206137625921349535442157798236412813991435555221343014255149199379228773707907634102409706312894186400122623674242537310070843980082059579766032721308899783522509263679243420341323404208038031160385290579518724575141044186822106170628940045106655630117606087094846951955469031266939339842020340079534399159685374332469566428088577426437110813109355298564509431428270692133094263774090914975352014314305428222921147304989904883391990851853371725849426081917997704059130988456636342060767465783095766403311354342281403472509572057663582181533374165125781878690152394437817178307211497431370313260561099894725843280154062475304409158193259269436968964442251288631749119258091241612308845828190483222394943714650635638475487160121518186112327985793218000766178512479143866157946710622571869346231435820263118068973183468287502083480123309539324026426506457815674921966698735604885898761316081760485195509006532737062128642631574183349275925865026176524459548436736530339406187500663397258436435616937260986037348695330260027684360206682541101355114613358614112490162908871479618387791248226967277545020081126173553909180629229506103296257055270578656668906430737530583092039053886867915562013374177041938301151845463685213238976746911373222570626637407293505803752080859472906549560040460155931725662605470771641685486564415023411747823992319696032333727028670761801257457062016614649036697996233501166472255151115210033168030761020115008035466777449472329758193085358417910102967862910528286836253820465067924781748568945520911483286072759898646090821139516611617356120636970836798072081962934139287245767817567965487956990816306326786997098123185776693431978049142317777860815520175329547505800921906899499482126526268432673174931082118072788310006387431579682337103215224746374189231405038137556062683266317313919944228650860497690703678211135968112177842037275765532007343916775368944407657834684682490516747933007872853050155146037790232862646352379468591194772148553794320441963260781721244631984682091719383553412361128312566479633325163898031970061680346977829039034052047660193488050396827527432984554883869250437689187739204721179296491425443181225148254491277547590788480745037787634068475352009000774632634327171354340426250065525166301317152841641674763267851117235660020983517852305504241402121965453192689753811027563199225877760340844306769165552861846627354315319824013020880629247026157944731176148092181808484432675745377324238241229762092297693787721675334437595611662661324735811370964771711690637038820822488534008516213503686531313903593832935346491985346652036018440128686715841528992260003748263383259800621157036765317975861564246521107575554848871374459636896046671227121000429866853003487330150772129965279376929198357952093181166163319116008827090180533183795490128603962629476002663014497000541450018296455794772693381261776160170651171681676396753248692579875136178689635628840740125776503806676223982575427883918589267525681926890126541299775938924620988979621898542640296354138350819035590434288554574519131802518782778117939385726303284288253004899116357573665735756351333104033108077487045477114843021888092635961605799042375708992865938604076768762773073250761346572527125379331612181247101720160310693838792390312426713546992692902367020236107368218244095529312447166738856643639777946864799161973770119796170338886219746264408020244547259782345633912168047834479808394006351608145157541941624018178515283769079582712028850930076396030689016583449495875848277132265566483866876196348503814715734432514410001932300995709109254114111656411685775820138140451031480314728115496742968359056155433773331666541034109781205156333156504623157810251405057032189926067769241026045438350610725281288174494980785229359218671597240640310157107652747892684326180963681967653932017640337605357248476467737740157021491095607291694354517472509822233154576279619204667332378772188045290230664069420721596451508099510834696948724082289573437011369623984846737441086474981949788984653198640684949834981938577448169688299572889474270817895442299649166369794111502555638060333071332862640998878051646452739323655409102484241295153544030276809926295825438193130567661812727748002076938505828344513389626117218577351140212327083174081610591786679797800079563314575460207815010742331272157865653529911810344672229382346381780494062251508497716472469116895724676496727327381684153589586175102586665893400125491894455246094394354588864934588706925237359609775837540810113312082027392868259667492815842074575488485007076722816057061662178017469403922123988947534980728987112293267828699872146578461473872166927318628328007252439581446674320002095295486151298999641323850654923118757814348104197238046739270103572194578736962597103009522788610779563938280619400576914417670303974343337200505886095128405804681078016168778180792772035467600506277858730110821622896981432240594313284890958108572376415109199293906948225473643751856673566099004391541796323346076933282092331187900007181836569494685368665824286431498231620184684530717132739994393582167465390017896351257767264531132119683402620660620992063220900099877169474040567678085700709267117533293551066843944209876308310953650253060081051271826570541270531418278008672462690277512958314935681552285036434599462141618788060035286065971644857529937242022800293719936267976812975699264659180294585509934653344949816944026098126646475350614986494869544957121752647076178540829282640033761600269892922775015818756469999946726091877723448208962115207359395487683328316867057267725027859303091544283897968397013685265191505934910486896268566412734883045744495418849079354436508644623171911599185398499690699636249695783154052962539514675207817320172831327678914237715343854654510947023949034020476893492190551035158269634677848589889086756351464761258573450212721566870875320955634622802556708736162663989297828640935237293083105654915824297361028262045796918440221818360301103099451231662042014798418458156613534212879116403363988340286977344057788232632120591170136642469936730172662411258711338643685410223365564458899473236288580130219581664065512674246742258106226175593478709684411171801354385610024758798918830187603084926513462602887961537547213095494548228545543708065404544746891700803943714989791654681251642192728458481456512475032670928277005412772906599173696236416761542332508883618680816801576854196077025599440285258330835289806171732445533683877498111312279967323096499848599193108337496090451578013403780738538528146116564628181782627450571013290375746417073768548668519693836353742313175599296668826763000984003452096670411572469325068179953173398491946436540629024464577681314384665988438991603761206025994005280433566607938160539208372181336699011528374721245966289521038800405280751324340183733853553688027453296334125778942842476399922654770052201461533975483025641325383496975568844000383241840589077482352326961204991051819004694502965963310137897809600170126561762224619148723714856312815683730594030147170754347913978247244716298594041089738376824320160387431336746111632753192291879978023895940525936526408840896863581348117963392408298909202728105460517568755113378938431930943654558170800293057989538096950583436976351372850336048649878896820191601596975771111884417645013136795962279471405488209568739835955819807641010793252327378645200491078485047816928118658835838682185692793613477354103654199977433597815039922395521260831367440727678908215579283546690637076560393054960975660554007142629843463734473841419463888028896013007810299616183261658279784372922627102751462592021832565073265166537624053834721891117126167945204979500200166091762093132723081090863267574926482793925088254517352479791998392673968459059313455374998083425734087683311065456629245699802048261006318109540721644687013631817869402684460078446442626909405793124590903388672649190985537623847742052050118709568660892652184043444849510850145803089366652834176298183134345358834573271840835174735384430581942646906459187628293550830071899520138961821258057114837142864018878482603169041794787564978297294267139761880271170549220803440444939692926045185301521268248116731408054920480736835972560376158767307852922098624304887274244976895233595236714791558515073104020488603308883126698326136262412706650776935470844810974548400088506135720593422858647461502046745345877271809194245159355580930298064175861216314095889798322548436637694287581107527493744816494279697104712363894595666265351598765320514405338389744390136159239599639212571408682829226390065541752198330069416687837057184173040148650803731996155374909976787565430189665774630577860087346408679340893642229681481901472354713964751932187312237115695429069855382964998841091136416016320970136562720494680197271505588868458608317777499552693573677834963901646118228846302198784480975363654381641148994550189153261418751030807642149040622488274868593790784044714631497836031047951175717919651603409686719229320609595373736342095345014359027761061401433034130852128929282401219910086571473567262731747360905966050073205949896759980894052295516960217375591834771720934216481967743005032737076547978454933405118341598353493894758107421740708537035849991587301832598055820324583921886163488779923781189150887540009562003943305215786047514707889981454518043330460729935598472939529748265591834600847094522867499595292893050382992457273677999467270565058542462213854081728494522823558723824664226947288336784658008905847384200781559611299004508457606637580483633432796350974502045592336086312458139026296380324035924596122083096914979253579754115017507305296634479732133411190063237915087572619793729798636773959313251266660905412490176175500283971621898617941783421521457306596422629907867987255565226913610449839718479070101069134237100736630920558913207028587693389939925070362413029704811443013117612541485292285519827083621300664821372205118104073041019674146614349923199782261167929603048334967763977014489200294521416500305614449711233982115952682297496006057502837607567873773977117099756403616859138933868558857493163910295290744612139125579792500166227369427825923216782438023272548589376569416350023244429682796707348622864557831973579237376398861633035445090984067374208767166651158717751319937865228315696144442415418304624303327454431571527908813433345538594389239895595754889152029678347950576781493159902405307132072883318502032888141273924425410804684652080216106088410914449842317946803187517717150595586543353490681408254283238797470956162986107812947207706920917424819565722916198760783930692262419831023561376925849829556840868967059412290201760784061549987936301186541841954500470659115379929920353955108449481966412540228523164750500039685883470689843633206495497007738431056744905724630236852962656627401925193258201645520051292361203746260256932788993107116349668426323182031977195658129306175447147582400162541550651922206856746270200642776324154692220988183883702182626735459103935803031979226357936365060319923628221575067053361038413451056332008885623568035134702626588983894218370732640251642635591357131409120119983319817705957520321808015967373057694332001978718469238807599437726417610711593467665293318320229824011304000191801861147527650332808448766351854435216491516518934889454082073521195322005555341720538320759097767260611413139024489703620416839178733213616860098766473559625237867164923558909914373996980077188986339543492598891245051478818584566202064271895483888648951971871977009567687528371807065309767922698363266147229547839183573375430746420850550695081155797619903126491575738333514466617280017872721066021787637068200920879397718388040969994349424454268803154022184011900601023094472670111821136640861347208330907283971539150845130367554245335000190479134148977316370186987160543767494007997269819324892710654753294058466018018810683821697082570864220964256883096044765120301090888553485674280855231481859523848902256904395683689904885637458936808012998232114175501967788996146309327246520610213150645945678633403808417877178487839094582153630796461677060029047480301982664652078619796187967692528251877285714102376267933393360246796001330104120445180305363520604616413711228923756076388515293428428697262858776992761995688232517426388235604817435644593219515106904666713941702298126253236318259194005003561897765940443115299280041252444070763966526757663114455798644955044666900367404990255457449359914619416621560510603694510479183278060088726838346961678176556286329934435435385004988561879371941669707277214521570261060165698484907937962481446081899041360614576235102767143152319727542095830853686393924821601354654889814309174956824641556753892964128028996454827303707272803907717257646930165971704599496680966761076010536899018524032546613358050925544427949178481656352794092274060393708622456713109191864759999678655750666788694808650434641780672534285804043127129552499201369187747730710458454478914700428073352414256097178989301312593178304993591592093636457484088332268112518808240834227788000931533909870100132855575199190573526415510452327880532645554302435906973282574287905597603037625123888861952214311453176382269836195845968627212954639891183462913448870870853582576573407394439522453547725070197501167182983804103895649171221563990648260225347996136209096639356488440134937490930885031444485009604471643874545282866936492147709932401805644908706479250348493730394646814402085247364789981364741167413306176369727056911737487957461218399507638832574532654063433332618395834864027296983514513305365738016465319277557120413698735058955435205574711484424269999992975530195123105134476208066979986969580472411635283401137626993278127948597613668292192436359692861528754488870040797910027513345544976825159918387479341661588361879779770876503215101138849452199540761896085640263372788734238410219167212044116717835997194412778201313483533366812365182567368041303939602864187955883793401990164436766101833932454199343588204781858399361624493498611652146210149604719114374152441045057042338625902405177703069106975680428474040683521795462647609866732985923019511640047237452358326049681070774758450776154418410920614486123262162889863996306487751063550249362404236015232846610254778339408942320427754223984627643810264672574479302698493295942077828970698073480621543125943683744296318197384539770671273744110259391362207841736083587535579665079681733418410776632832543510217909759333196631608578160543995076034318973307622119566865597195679808133559937076012741447081621036009172862891739314739002289153483501511340184752002866565883577385500859553221514668010684178797941420261327435343569932488941420883923049733134386261694137821848011446980203526575829350714750215406339333480062744187516439968716608813931827777281531239981937429787655805832735597716214066728526194442358036892512364087592874174648273958866059847872885270836858942471038035499204754507836572178999858284308008955532382883681586053959895141343765812058071772205296459396195212019242078184635288877562179675703936204232275319044748955259747491147028187724635199712672878749590412688683751270122014896787440501804347737099183285952781398015625854006519040358833829827978026071897586795934467452915072084609510795986732351811802419364046456595675811936495745009878353303051456891954514459525538957948469000183099702084932449381126976589173195646040142578644099149420901299031009365023895988441890163698819037314527621471318376105923665163728098034737558166832798564956672596257590052604550259383451756311817273729996066003144936128755910293694544394152032127187904449161448855053994009860699292519018511003979628522915232685850634766241749383627662754520858840232869387707606120308709452709215466123332724029767340504686740304625929044839786776088745757673223944996635158382918142733621676219042204320700591600496592118599253120884735830554776684956616373571320953927997547187049161356102250874544837650655909373668470081891317069109335685735849135417743255709289385513247160605210404743300212410829042657806905363594327754845700390058952402406286853740735602627393473489891303728260091950814084244565842748968560739884381560215968711472211529114896514496348654246669435141902928635024659885587818019815972730607290712745996580283844367652397849921519354346398045607099612406032846692125055495009539642007847719358519222201851519251132287842691548333358772003865775183003963550834699419755083825980706925686252558106717069844768424868773693161567792182568473012894796960521570672196987431362868447589730324351776161627739088066038701796517567967837804633376720311750647681165443210257427597746660617925060280914646928669013256587862074556118173554485267616222603911558663423242110543301298424934794634420446336157528981686958107938107296279853844506530878670555644508462459673312642310337725458559733811191540909150054926894057729204407939045620701011261360149683112598126319797599661690470894810709163438040584740401304274924112102805071986362127762752759049396688322676100740600502757197027341347644108590253896929925449703854880013264598897806407471168462369333100881742328648554581502433409616315551465603818839928315814925459574305611562429944832323389146976657806824263895836424538591733600381300515555448576119164272722860962461064387268537272170038642991839423361496399762043948974879919774928056390434851966901835363375704481753037723601066561591880202044745715964343383051573018948988470310503823474589844282389303608675850652548830381271821450231097806586467759390130980088329515907792048327269952030065450526784270982247013174609686050821827414321383976571546397995739722052254283894684289653797630492572917543013132490086014087564098628384218053587206048571886408664282710103766043567538582685330314642537656425349774220872874880670297552937883453241638467512497140870080990608665695985710711731095582529986061861566906215035905784618601101865204657538704590692584945932283032446914382238705507614166689312133870323142369731723231614585797823364095770312029941596658357609458873763033782297677933681737076029278068780119114938220711703031526357725149499032487137334906263638621287003176668621015574706065663614523484579581953583519289799356909064027874362777190813278689785205985785986325104685514150493929607779000214699239875967971802830757407435119251677323639401583898142061791609439102518029370903848426623675909060038759041374458481933378235164370676598164707921388573609037140984476303492890809659229119137712322438916986042498424573222518167490539463677406806068896938674003441518802956939482692954328047602177686182799102075646677855801977093918802910105410750611634331119064415797118078078523812703183726849885397295036549297898924190734854666326486861564722384187728348856435027968186810200338586006808797167402668053530265489743923676145438907634817658232615314313325095932504415229436856799177703219659994054406220378934167132485682572666641724425637453636937988922936110160645462902391431829680018740382191341788960421027920653043771942969727261023026146916630732599631111015606330170396089395965027248265259900471242601474303779667640118801674121101089737063246550629598247838134165638293016114751881387371854488392160185764898974786386239604386112898718962734867921439071479127442366555552260808214291821006751293879476360676540759324723135683438242159001595822503364498964988801024862662377373312445932776364186074492884845611408178945867681098215208956767607260848470943584769216886162980304566151343260664490590016327481540021339695537441189480026225371877438620275427836875821175832516956296162063030249498215294737706385278537172088804831959187835772393452017905478358905283903246262260594121899742884410213015828762230763479111020342661876891337304023126090046222173035329840534410897747800591597272337368663745444163636938822742687332156907209190349539691233286450154677177463907607787404952563458055451894371916758772005638351033514437762368266710638628850667507856287335373538591962351420052509807221826388086725323412318097870901565693826925241479691997570463250767887032456020481675156647456068514035036150774827575376022291609820832929198641823247584393210198254844314992264960229907300241326583434468179046421699723913240449567845157883620593293649591962235221158639858668378657447167513847895791288318253859774563178566459971954641781294039646155103429747309511314175751038964617592115833789104586584102636125078925163332998063716926470141538741229201372405001674823177150256597106308942369143945990844035254032103784394460886137743906343655163708253440151436469304887253450110155856457402917454388338573783836589877109015873430826749353006062516378782778915778277477998486534755521767637311015679585150184572050664644229592557189979260840937070225207258316678414252608166955254762320074119119764206708494790754203021882126158787614263150156607878779688953784806775484020252703275373312148187442618754469570057607508057403963523467551468344657187057272997358682572177928840800934227253595695183305981671323729114851088237738567629834363812167360711301823825996684147130505512368672262768440541433572545321017002287683611920727259761591233737221240395587683034600169968255898827888029603341581697005702722891293491079134187053669750114736085642696155042254821177721097525126300311252206714278823007263551455157722591869661387363597456746011629506133986539823902686726959235030798667379636263550572645524531550997940401815293791472488172253339040665700137757467138526367230006950252174631275175301011944483284524598433896381028720948837379002526675126966239321877150874711805618672508252229223548847054058319602178005954657653215696313643597399692484117764808553535772019054964965896652196631034037035139073685191106421393089087651109937840340426808504692606242661656761132167323100433146039735989164265762395899526469450210952944457362797780902798564150066586334168510605869503905539183597792464534615809166645114156945160609274842012771759006318695022112056389543531257087813131415640285444740545653053108795396724170465532980989789820608870911518416505743575170537067295457537335710486536727458989829370491145483678106093475999654853441752683445053814019458362898190103547115534306067825720764884622777961288835976030449396477829270240749306405306424839996703612464265046962567033864434386848315918257858847189046265543346057145725141419035205935114778121835612090005794232275416590562883836420550057236918609448860314623744778753475022512376655105754102931261495503700316513529571389982626201579911917852586332398456563753022493947089186847702607100151288918755641639236630571878178141206340050198387898248054821578897380543385223297618484453605240497237426779891292367473356334893584194392971740030878032872355754581945186674060797473742494266671892263880481430125736909619639721900221617273532016007046055479155361216231886477964231123711035980506586629191623186797554693507193580323652269034677717655308621449948081058926213642285262436882192683500005227414153898371367252839392960255226362867027162615086641344623096514483529917788321186836347446782946134985689433650574132192550658039451353874260079575883101695868387556745148959546309785109233426153812017018433351939752907113955638678327444244123292727115037302741328472844580071952850625411345022896797770403645785866922919021842068608065495956120066789459790803589924677992246373614343791594339003052943210267408896098336206573367269778386038902848206249872755865968427302006788974067944773656998669258102655868817767737947852754508037379902293390036863324647981279730238376530950427985280754262808854508790031294829115424082488934505277044824126970317362850867842650051643262129689111337952601572349577931363872559799100444637232367815441121738065661971677555329751325618438113475188858222518543454657508974718437527333068067107050906224173166877834430574688008519395296993381782314542031330993780963595347039716930243892512741773811431847846434347461615739021449385404704973484417838302076267109327073274512195580146393516191135558263007620750832929030495333166973661265495222388573735137671060442352103316792141472211971632229052911814647295750827367236448437116193064728493735764637893344954114851767467758371951231799518386161934757289115554743095929932077011369565849143046056983979464461308057586781736423306734557220659851786253371412229526776741382634457217883850549273166282421974038250821521649612512642111754039767113168497231830293355368802702779698467584806303612893984444952547557973296447180122526376081059343153179648486602877268588592307380971615771009212768633692371806149769215948944688918547011100944751264356159960206834028235117710113265517562385922712122566638965548807293809118749625580818042490943811464785564487766799384129778385275880106949977026370247993505137391179415256001241118527191560861285666739849250433871009373078506468736824719250869154205849721550475197980870203915240520535031670693893126238482504250432272286978089645183184711654589775730313916512449332026847546535980223139674441751109182199230681701716057389610350149601199367116167392715613785843532748248097837497862597683742762240720943899127103944364314137159543154009475515223895403184983651777013536450547070654172056838721380785785196567165590312146443476491271041686087097956798076914289220810325380869276342406707226448639366813340500140320397657332094347615314236782808807667638196669089930357532568554793509532802007010935225225785776892794570548062729445246585845345568236888118138749291046967619226040467521245931237808311479748763012703601128968049722807654027726211079726778834995377659563907154393691668110330631284539614048118677296728385916512848351171144654208693855231841225352456790346130131261230237245955083047047470123656826980239427877563548129781092483415562173040576371626892997825849824760644845308535325153896696336604046623576052362680512196588462136407808817021982734891065830245759660431156474024406598713932452462797775041854191764399027460916578386439294309288212066658552545159786557429108343010890513000088861228615221183119951351453085186886344548680718869856509724281186338967401535989405601215164148002616027182354893440862638814437336020974628720588627247317667284343370343790437951412613497254178402684374521921908116913061589023882024926755479028625672670571897875098193632352204467955952484083307099323626052913634873032765713782375131136036017897342423367710059709642629522239198188315630381096589648230376329445308038872227540436193163095588885719150225922299247814890356869806023544670207017943288450526463688920442500341730196044560642683655985575217612476250163126961859497871755451514171431613263718532826666990706229181678638195313243589063220385378099643640125984122341334632895155229231101879932904224891508367342669295199998691532794375977018537993124458024719680037474403264032492782559362082777286127132213391989536578574985498990270878810050553533517411713759823450513748950152392627001893656899782920262826713177272811084209946037961427123421721792333486388104884719889067893392657665964405872040518598423366337086848604034978219483219067127432710200646835817631220791799873795992199586406989049550116250653684392539369225802773448615313941899902692994117271315498209445677632485389485955273425638583378156820086014210070869772389846441574461044681433408011683778503366517371978646396130045139107217330003401056396142597458581063792869888588081368605231069706412405187076261621254202950334514930195637965997433807501780598362716705482084044251943111201398685622197984696092638290776021645969271171787011252760692101035294783799526154707777868846229777870313051039255760969774858924611802395529272304655647154586054545040707320313998601568754868299703539821932764522654100083287658179492434581721087909008483266216556598766609107030039261785847316084189295226435985703060695844083046502181922714455337200926251476334983490623559836321488004831057056177023285471425032155071886781845011832089011643907564085927902238089874144798910619979378151416452347658224376016728355002533581455071905181474141503622773046946002363692133712529124559371126923907563680771183094316700493948398907556398607068497187036961240453908716603477876720408826145856486614485710945324231444216552973398562992748994129275340799939047769045378818462017027627739096539120904938198921325937269343917946543205373912731381915131806245362918811583431967883914500661190426056486495278779902535001673739364880125187630436590564658603608471775595522426835608483696875461832356774631690252111927532795145366701751425309622110837914102675478250492397029505033728258442900440407764498832392057603261198694906939699440492850225091122811794559238147007391423239171748288083547287116009785831442490499717380571956633351639459596937211625450562892887584441771743911821951257884300443348634576223106112728110549462958092083268824880150552579812058105302399657813242033773298556160858177184252557113041313583338070243717726418598554278471278611167480704910695915921492687769884377915966644309093536563912373343396436245649269909443941848019043457050778145307789810177299394869065811013354269673910516152124717965341357438083708621919662058174518726457067655831260235000666824148658405599027773839506935613196667698365406293011383998354782468777135371421495796228410694013118763984629418207277521132468209919580223852779242066302449517473422030093198730323845268683241905013704412630222375902279915081341739069490150305436244676842422082939665723844910180534536949572130594855147879104194247884364462143072652348837439799093498932054955366738565142388065028648133430025333046580953612392001573199051869893600572447272946398072059288671409578310793654927800102481734295288042540993956128320004118575309231317750295042099597065192788271861912732167784893985682381962166662019475104868522242612128861453284827243368241980580121835067186584361267605846964779388176599806584421854361200125031776419507365801141428925079223610857890503062604413126804981058453652037854893384423901376897363135138821027464750896458656403407947250974330536164361687766478954610742362181868683256739509470621791886190041455419016438468642485661724504731631721735644143324985970792075337311334475872451095344778272320871497645677875983012483533903731466725827417853786972271327935354365505040420253523584522783146029789465974841924658063149828296966683514938457358754556228998442363924142707821273390618331603796673587665132474407219644855583509616400943268917665923563684316056383553869820726603459771795935563254325409446489575492020355370831675923473099071575918641750760170598692991799874920025076136381041582658462252617562501950120223955235073513753840082782437167779633200558475795938136420549021253650540819371284130194451722371757703265929891063559736086396963409549163086166584253673693260437267169598527734886045695806270401769465942104514557821301247572206091134950794864041623681765918360914789905126958976974406083742606038792215984257835671982914114562879831321163679014034108436155857763218595742966878867862344642389846079751227049972958611480358112397615722187296820954183142850091028262895212651626540895631589837177484745961826328234798409011594059016961009949740821418327556466906659061394404413329512856194114293062140131722009170042371185789540937988972300523714622838124464069094365129811790992402980045362464289058441977361170936079142591262686098901684540228596438690865568489734183240546364261934332789851006346471220343994080547721048023090085774708292396248803987042996507416588466696638428329848583803876948204377475990616349342019088253781561168140412441220615060763070144037681131179600532000562436563877238809010500938930285760728343453374238799875467177880010548705494041447688900683908621858577826677533279135709320562234561625314279087420349630893485359684846355101064824620779042050495996473481143980912364488176915269894630548147540600949100824868685651905566805366207420933962252354040810323499567990451534307250517995886609960380742450938896450781462719903022909771797497325027062649425537259288008802300760451457229619208123762323844540578908479142566486124551803961003164450004485668423478859682069422777439209601598641401397105430336730723825379801047968488486269046020684126317098112795934064361872159325843913029023831276984416261916200825844466066079825586964769664850332428174437442906767695307461188738146724653632886128025604806850940905341062486251487218180880365761787242295604480804369526138720884487253679039557146412565198154299372936492775009866977333047873133226185792969561518897018556562648574070825748672673933328872871338374961001240535416587373192717901120504188719170946182609514339665199097582816180990314447896624999184517418763475089743122003179875467287491520254928263560658832736892257765329509551745538563353408957235319818986305646098235956547163785508164162415050391967620672783822220457118393058886189941932603995688092125925121972551257642026573613379662288580724400818400521033405005919769920593009399957558400625375746439145791425192771314664737558763975355208782364964121322489922265869965263475636225284565086290291178573228938001277949390139627149928915581145922861944665177564635076046185949025117408325485257084066681459112819719850189664115426776542445119045202341013716195645552059000264566689320333752681477468735527501408844257629881765326770799985418543522092382936141918974967451167639978005705194385105489427920675418684081473530879344109567859403019177483927785216558756792823084899668512329233731400848417515155020300233299865260638371315305326165996695465275219565765662159920950820386767666846877123998869423981689954484126879014382187682797479526752801606664750944078800066158154396649201310415541653797987509504035402901635160372064035265997058205776342252311348741020751268769881862413214785086075309834781471278208631451753323291352488424933300568294037690657043237215560508441786385122339448815085468158133482647797633462789996438804140019377177226733574136206092526502956040081114459257767212299584024956341557452455912509089731103481159398068521705727618068580202439062945016517182232344633836317753138598940102212649754031315258635842973550676838621074075874803186609829723616276144478856655230017326543986443662986862571636747807115805356844583688984782309811407756763305190193164761429751616534925423713100942423308821650777493463323312891230887473898283335790230340531073037827782505474074246945732207103502507565106832057734033056535266040840094752333445428454261761896067252005535816991678837417882509054652654335982958981993956088887065143035822868009368485076952018697520000497164440077161615585420894411618944865219781864679181784285197779492036885787961180639559243380254069637999339887117104019212862354540615072981605458463106683011251162052798418323224538932611036163304966548497302939416471048077657242170401044732680221366751738993312680861049473777925680646643571033971591897561396244017472829305242282406748882618539668699578270542138788743452874354598759871883549041221498618291704714366819322319521843291617307684067280437055403096131100257517513918139550214841478019359700880945136073689369694080461821902737458169324575752498293217303915509005267354093743079781131384669195462871641676514266291249711273239509152654923488237267229452143675559489053984237694247291407943978185420116773991886492332898325999478461552985518751266770474054767445826869147057031243694116132877725686948237201624795424236255142621667320913475649273456546953734050909973152354538675446598790921867572080108238139162155919975046629750518862875566539654626464109177277886031534608322956572487144702377223527440734641869398639574238270145110277241592092011654591246762345868282168343139792815502464803160503947110511957707440711565247517578804708091344392742800039122517850677479073993857002327981491906531125367953833128009655548470718320114095341390620108503235220736424996636187056129175918084152395856616105457750653709343883061883747957623618099932922888296460947147280546135380851634610339996257044836567158292605766880128152162195868510256394653871413648669823380737196246603509118714862997243138579346847464988348459156510746316984468060862246847103525912906534134551222693059821345524821774576353461262677962324757559770274060863583567467482547130105493446782351349294711394803676039017433642489011471084595953858774864995454060664816006029418896792263651128273307638990998445352217939569303149698210532801174374173787285653485952836987108034641962556077857402558687658741450782411476424108375434772037738472817920646322454102074583209830460179582653088050358962408760273403999007871275269792721420935468567623622056229103208059900751045769476786636255339607007228129872798246713690085451671248041455898041901788146278287488688496310556534338732018700655715099656833597567049753312122939159124755984099112028650353497424499820899297276093996028608434091665514788125243229854353461014799317351221325184750899420779536329491602470822308917443621081105040508199700814699450269009677511748088692101817885194148671980376514284158912113182137788392454308710554825022127422470549262787255738500419462115525218420115560916307268359340843685022398440001451992846876748040371330257515426782155780731747274673667130043545209214142252237403115186825059253453620014696004583675848260686467964568441595150540142891603254591684984677427304665242465886903032703818008751126859472524340074221851788349143765026383865848892497570705830241766925342857725768965624961496109110645365641289466376573896103898710624076029180726289489319392438123930551883180410694413027737061632874267774917192434836114515376828533676432144688592984363578893103984018473027394333781412729508977915558933189546944496000542711438244950578330517282896327090205370381987561376515228162646176544948154917892605612992888157488788931485875666214718034660093990820616397241004090838658809282486296971266739257417465447573379658424520524409519854140741580353264195141925181404826702443862762610880682377754493005361610638426117892971981294575205740766780683106365904631564327128188112313337196427403665532582720041004806499023073643080783071983106690428874471700041044000984624657035150253848132578131983082387210421407030422742092993632301446841745918124335913693098102652971596681385159317452721556708454432515562437173512065500258853321273965019023711136360095039810206285541471909062432692994816025150362061355710965955136305167464080245838358463690361880685234070478863352505038528274801130783842456914063167242375642749302445997100015397064724673608369134223997922315892090230528427138702811355726870138380928284620420894759711129565105930633486615455716635207611247852728425506784907060956045547433291189479977395361013260193746598693499254887149073283521317766207799956222564642317228307569445492134603334071085454567580930970733251391854815983445017107466897504771977841723869297505316018231902524267231482031705282786468167710659744888506484374684087358719539610326636241173677491190943604555462569300140317962584479261437510527646694376936057546611692705368906232694820551983082119658359255608019852574109997675137664165364142409700338932193720603444390293468431862360548297488922860944288145798601106922970835994950959915349247724593067804515045397259243866290338134289783850402390335536462323336587747247192580285125364675966497485099425341141809521544159596831543315751872708691886155485395832101194882642118034728778684107386303300986677787071336982540145341765326283602792763067669537800362081199232361189295022260168204657394847635876638879355093616718398756901247190439518846326481312334779639426308219692056160476770879358118050182100231595801926966171279569319816330779717260934526598347458194152870192026387452827973372434357156267125706293881399934985186692176018962421633893271992002934953493745458083979428281179653887290886851642217541844220237450815981051910005962818568973304451354782307696991479658628968151376399972070192672490684419343240200167877711816711163817444645426981939440184654215620595127397045887726696228556340113594866897775728237323518928748544761141588925253226738441147292981190750018910687992634720992960557151901511109579581985031329771333493899003431665215439606141616767152571474804732922863220701792769171780910297174065363172806134574089855863109764227691181368236635931871706622627686618908255487861493979518731804891342126916764929653750163299186379537681651335250137568914243877060403520149908082652496039705511662389606283307616716783789011624458281772426312909174380834556396821153499820962598022775817824440462141922322018086018917354816196863880568637025611818740845437874712472584906415110748984922575247924173251346436713401892495937205723221582278139530332972956117877460648714042724853936429291345726878328756803103636809379477644089386773874383818796837854860542768583019117314814290500595080124982614871490944001432393775347509774838025940226314062267269432631093015842970165253628039168996283930936755777333026842985989899485396960946671687030395095866660827587812244977570349463736285555460881755156939986175196703684412352035468109370544363917519547865386773981593515135739506427770510843242061622042941611848345789952542990260545222162395631430511098695345614201345936717803716120256285815061506699112752072232559992276483162501131237221463368756161955260917191335480261292777769644319698997303152902536778903402521650656669716936049833188290370071758697650932459029606091301848531355715481125650623215436630679597137465929782102955539013041858537434529832938668780883197985257741652052298122398946676290438133781233098110980671507354651032573211764319900256969514638347068930500324119781270704946413487269716455487114075410267807118395729621664509932361978607632324226032387362365316109740336027330138839122932569165911568822727640767861965501204843493834740009737150041497076181308802146939592325214225125160393781946376283334538543467788832131862921698834667298878024321757931588997486126883356258240383403951080285827337377988686113146730548662347490123825741340399174841548911170764388092147782282069476143086188880784320704328365336428598843098707150944029062108786607318646960164034841109732474630599684681123762888417362665303588012529404564917278295288208759015611357799567642389243602784373660909319496788826533390515032607830046720509060111522143240000282876039593651576194033958548786204994857650891835424226328367157748777005061918421073749194809544410526500361864589149977507935470913249658329874425189626775949071945270349539866956092220785120669501558752554429538859844020581890501506888907636604188482740781333776216294905344718239317320841391617650838271325305679348630446740869154165354251277461384598780580007269034323985866578542071972197263136625904047495138949084844019400273774976816277389539244258501429143674640392974919225738049118127381977604875640896106224803698971082428478410416464127792420538928233780863601467410002259848112135253016923083618906274942585284599884054159463461440721325509614760372088563948754364837467376619778301207515936056052208709214220424349548636799921704924901960708545775789013002117793597902762236413171040678146758306328672379705608099168799768452199931124234552178867042380607447258755469972668361282274457505576723242932118669153771118559729415074871995322592269515251994695938737543252250627350572452864606552489222054877140465939706099968217552765520026671163630904497660444415408599740031869551037390928887905162071776074863417009042195343709201350162785591015643504558597224472457985716942890059341613305196303685699611411445750319755691703101669053819121011403005474750354860985248549135660035737231051746620239592117422170902928159432290465214451005612487397339902174496160714226281692684638530754899266569895480377401487965831368495088214064999655800129884063521071902946957313517309225328054592725470539438890106839191029891191673429169865983015664478360236827314492126935198426203465170941678271384590334314837924141391257957897828083299515990427174990991368918373866864500094006087732575017702494027375741716571415895216237005219665441767246529670822444919630954247029401688734357136675667473920518548173013917277050000722279667615344862778083580536314940990014419116539026295190021977886500655572525172236530031006750941678725201495583940573988660076836753112591340124997686051875825118142893529332301881958986684563949014742996260724446220665236877868263448959228840982939610308160077983408942608212936792228552288645125110585338517712526592955795684423448478699193558072968860929722316733226579021920309669857646976073840800180598485710132384620626272935947119108878429730319139173848612910469053294325544543362503886170792869337820407687936009050066904998425244764053419945848992441673095963696087092104576883073050438268664728341866809821734278927685371006471557445660809204198321764412957866298893064667826126307030125683582475547380219961053613690901692082889754396304396311567238463409152841693760124106234893788118776314733779325160874504309631218823116186212036690228336977502363026727868059484656790846206434178503501944633911072137516326376256525446771819798440794622723390414780215867555235817668484930317431197373870181267534576935844643134479045949576863135841032664984704119378553258514564224821286806730934365933974262318376085823627985780807098412252123978851322104403017117947889856481489609312108037799879253155245530615444258307850317711978127180488644147484432564365221394923215959949098459378211222132859244615635654932958684943703005926830154352062537728067841618210305644303272077727979543075581710547383109958082185446586709123949486946812364407778842921336012340128329222537345592542658931203442606743760530183552171881287469919325678430207728765362635518055968383743736861257097511232562275778387416817888723918091606805004968858473328948729857422438205541013612493197295041839356467409810066365922554050456619221214583836627137917020288447202193657127987299727840594004527070819798266313569063188896749627888605030777345016980295488080178934280731245380593288782644677441585750443512621068558608503238553730451310016950421572100192660955634120858194329176714664029644564834143612743360397824211442410515566142712641342312770609408287160376892888331262225626488824128706512323632109503249829046942682425542656484331293891903952934149998970852918965180719833115931265669405194305519477993110560669782164460429692085116016757591907732699464204648637789850899962631007427180597628963199686859344129289109696163966859942307049723224126128910687650966406920721805340086173236527243707651961439152093604409380002802767995435133847198358203687712955230986471091816378828618013725602981352457638352897638867997880806216295740271722216869366135938885986720332332678795422904478507282765986412323355711269610114727203148774856184082398898222312873685149509185496896137828700737099426347633211143000400803256654796500452609583847850182672630767856254328052219375477616082660594479790035703813116864815279128543455851926545130511558953303567078608797232312307370589719156521595550096736764912051130903598396508992533304538974720035077800259644713120827849042266957594573815306140937138786764098483634106181762923806523542396802059075277052341435419341976620549580485195798230448792851169403608890830499367788686608075722108845927899760712884267178114447067542183373625895851772594095792364828738585888207114947805182552000883301297918664185802479880057213556241088175471398964082094472983024481325457870107861700897487167258406090801965262302937140632291672767636095191323739577309173638031571121433124916885175235335057094618390871757815172980999915170413283486388020453922699942090426216373713974127742005486063816633847921808261973016265140822527009366587820203925816993752039284825487776540330792448558955005849234417095049419708839863688346712160233739532498313587398117318094142236884642106656981121538365805545688403579189296070879835961157165886564886574831739084884292748238462844498953841464992051306428738588489030449998362879319486886807142343432280206619251217147216904462985886441477377461874808489263039848580362827534118890131600330172956679997534810355900135318957390455373266828112803175834269637939375361574915155255780519504972293396927948929068092470159968974659048976924050030633979523899868273786183561967117403460274553113850609481954987852953749253804019061893783278718050581284171845962435135706542664288897094267533459401622166771914308614688525272839644684553321633856087858280191970523566633939292149595574145438131550834596874652023088820748821579139346366644741629757723956973230616416045106164073982989417505633658845612682052479484910117653317004143880392197226468404012718472065982357525283103825004601176170591238975670103164223631447656659653086716561381419537912246101577510214584009599979951653793623013485148313068511906074153258611843218385047602138254541167262840794159860302921080949796176675632009063457748239014795810815683772836145681327700437939029402269914291034946258601973245290206007050235154449313293785550527559874588502810257843983837787386534276213448509419510202667318054426759120251310863731685406839924897113744500342777937336628689947259810474889612248786112492947599557813469020032776910300789689781278518214738666494223845598972460742711526916957503065596601734670132640297646673496284625674423508360998475757234590298258882762894708959661541672225746456208493029801490308365791685344903896713263693603678540345670422371577061325256971182778701016341401617524065831550118094329035938416189414808898040033832417582163141838681005395744101843798801674682032661817305282348221332137021888113159359490938476809565465477943560038846865701514288825523599446809785400674256404613819625364445823015442247976872330127258282017616085798451817466755764765146910943395136911429514855965653685276881650017700102511543195563950232280026003262243251713169364214982410686095346967847363039735169122498463157316121003621523526095839958417876892554015013895918946019968561706763175441363400838919415477753669823640679323146679373357411190773454619252215021681885404807747945546904885987850147335487903205495740995363969398882368431223741821505935149649580098531689494307331374851231633314441311311197688756852187268088189554035709881296703028974499754988205554408179585605592689877081360728841712934809128768493006107553370472420633877514100264349979480728873845619452115836037313149951671926706296053079246470385715473496554858357818100494964658925829632611564655538157179445321928553228086345709491183524125005168723014073351811651330915787053542309821295622469964434378346695998516397179441867698737703683321384555013857722350436130779678054230462757639968915622941513387806871912581594889105497958700471953111489848567453219119877648384506948666909430695207013435162008922910957336283017980111864600253423439207350069625942738578906615521782655553703752090630984185878297730339677424072975522828474356426127684155068866361996698261995766305229477201410190646609445373348124775850665710668378078392669753563153818541606775985791588116097270488067507585450359866252939883283189007590043550313108886158691095624676753089497715808833975322748771605166776787511871321932682091319072071259090937836103726861033428699309532930414646528638339507063164003695642908410768027021822896408437138801011953654050905777724774878048629759038044707331715822314485380163737662032457501690502630819576838213114490337044951355956015561509839929475552357643902724334552490294691083000140804007612874034323616109791712450738067424309712292759635453472529002074564185420378725537503053386387723357739940805496409369973989668044448311376925110842162602734037573560327158373662086270171620842098366491393745429847332216113433088977838531868975384581323730542962699050191189873814193205309751596321684230905566922724185077012856045658061996724515477451001972347507731727443019145587986029431921820449496099239635020094074703227333523717390936715340251597189819524512012170327307233775887040055971543142442866093638754097510046177226968300602936087717420984524733724295254041765776224358701287588366722213031200352542483409670022768831587622832269396466865487869967574046034300052527970991673879927354168324622857106298753143940217172421386443671860155732253008479476627447443657279817545295729028298522969141200612874279515978615500799037108307232705627892742921989802645880684501545664267695024014299311275725320263984334447068538949129287838829806848383945183823226213825528580130922844943877454863935456774964514544827103041411083208137070134173344649457296272987401333555218255972723517298295919108496038843741116502317343541950751554793136200478056955234699352906556632544818647997433078534473785103464571105450824545834135600241622061805954956368558704611780847541303093615899185896100370874016981390263016983451404228150345712565092088588995488469437704793666128460402899835588764459635136952522878012327310705022474505109320433294064922270416698704876546835614835274833205798589785359459628033691480186134269953351786311809379934033878836493290030297386898879285062551472697073818470438956234806232326302175049301445873943542763386978085677639481856326130675670501930526646456644979321934768349752501185632380877403151588232861600529592449059247311192748622887693670672772310665197246578325194627524425899388064881252289679907526233195195307828891732605958798978549131098040470009250471897818536445736637140235398792699641609456673278573273593125620555044119762068355444433164265784315779724375091296656614906160069378555450205356034334639596398138449981194968503088545005784802893840190000635677867813763070531357641468950132609947793400106732875790746725794163350507406978284878702644198424069850137555291714048762758355910242298471454429902442879554155153212567556114944189131430545659734098816314546124138106505679562586700601760109641504876893882749220399008814453187613369233185617628425542693485879899878008669181907793775572215860292954186035786233430528309857295286189515905165876999103744821508376211200890670457778052671552947534964119597746425527888244422917120591343472044480454407764085014406141490985865530746664923497136613804237755442758074076730035844454680407568076957963549189889759970918065622622995072462142381770478968486107908867743719547861953404167677718772859468525894810297269221268992846935226268613246076342004365048227951130176099226238679845084269126125272246923595223023068785255655817697894372545367411672490199630317465198454243824527488173659476041950171765775008136591882967105426924407829849694350624933078894261711102789312830731429970492178947720697262439964519550560744450546818346518328852456992474111790238429851990593688709623967028761105561676441421840186250168215971877685937845296958895860232632507417230091899680957337988622833207023667745141711191225227798795172110403545496418710033058276702474769380510394688476847990592054352594416544889472100028753366236436564048388846407843245605276945676770225513447672940837540713397118553546417729127172547033283451277400081293293564819960746579738805352032241732150604533137691766379966577972378365946761975163047925868606491944453331483212023947939641598341043698216663989344246805088048380589330271495187422043441352941962868391132744180947293354866003014604053856780414105358372279361894841423316527816719011079194426478811031398365042842512355682087872689910926046808823160318490679754857380597704743571654766518036614095249272493270763182594425626691678377174824775096912698477108952027025953791887915097822594587259749606192483244867791632501878237085500372269299361395455896941433773787811146924510331813343066194590199859599949872292298805940482524294352607967279793113356305915349115033313368404491983547534209676330764696630421741652024553625245339919995089358973597257646983794525153591166544094117485729256315112084922976166876861520323433784277283119689358261493547323697141893843781978094526505657360980032503785870567092117450316537464987469388893669575922226612668585475623956610661684303213663514274645684614444455168216260461251259003936379575175396242441940389289883728392812349670249800458134221753322639866387622471705391431762386952990108040979991800373744004828654834111281882772954383942727701839912575308318649395371991310242851501424474850446752247729743165529876201000263007323153418945302153313026675858315797714751406759548984422101202972912101479551232505602937349858654018451869304896430904098796719042780721347116978903688436517023280235939990438987229406166982964317530714940496899101432543273648556440021615187748543766667816473062245000047550593264247224631215429175191195115123726122262372672662675336107398991769609122031773824471809806664673370057507647518701060187874574508252313891167813767270719081755064787442085766059678244741343601112226413352660159161147193047537302203193569834147805242428868877877931536167644647136392429904436032896705335123859107436970569792483087741012976181299979803080092432978147355409549279717138790097503719462070883114893224814611915595820219953852357904494333261162851840598973080515278947346684790890735476214797561982161124764859603073177115348953577459889617460270155418096838899101460475015679241032149232002722084746596798265922548321022585288948097056636391313649423970590060462279817133980851913999448859240362199745604900220810970890330181370531383903337125984220432361324752550511479595410633729224003310509667587170169907151503715214204129792963001918483370035253395409772775998535994675394671685320162390744818879665002386525886259088381723438903188604247025241555308550162683473060165085235335034878111441341624116682091055112460194691412908717021163692418915872590871078469157845374998814016914404051124931079928558486184271136275454303592377323980554143386167672376065457194391453795033843203276369397056500080624334926829155252638339400100093948801154641112074199847182972829317464782216564580743202676372019799432435033388815335352261627759264259713428525946355936253513876142356505984217027010920139125992680380836604505253174298508484893745655738777836874170567839680642901832570982781811320315330260157300704158744578359258622784313477852314260626997103094203289305017214344388192884782798212833435272546275810715123381104165381720767924403903551680661736396203169392282185562633874069609712386596713949111123235673002685391344902601202602795892637685818291254311438689153032887797092122955386952930876512181745684011520351563713613394488046591659692148512324097534125062500448381204892228313146893010158915414853820160751564691410401361737368709677257505467053110233158827934779958933237813029065393616058277420091509126590934083232344735902440244322020166554014689308353774530710462484183370887816448175859382263258917720578392678735509818660183667346697310732724486775094342069290343226864873153212058985830900271341029997004812654893081952516350229669894396209597530155943801482984016135668093701080569765244370227155377465360352416816196018626800889008359412218873125668096731060095847312559630369735003545871112413892303833670728457577243464534907049146205636647413051388688765707360278072431877152973989326632909696902297880066623882042277307062265393036534849732314854539003043583929288852263371219694292787032082633422152683699920221829971465633098493076226569623154419498301285720236066135399681030962413033952927620824850030800972784250885109213294047015864408684404332418671170301287058803803097124469082122124595723842441999783553123732493805939879552770789613361216264425784486636260974051825514947748435547898411595323000656785147610171667458747766844452048678630527017127152458364071793824986049432597047839919359608311043146641795333568197820008959140718944455396427449725538251562965643195984769261646024351687060300926359403086977561508268625430959945749393148129205172207508490020295554890783814093769324066228058030125595236122581750486678776270882927601659901971605301559222025185059919637371653864925796669018909320163087270401464965208356515202241150274426381554187394032674920374374703124102176478827201656599538433148005558438741110172086457339575381363379299866239550952105621327948167974361632157493051481853999846748422849030497728389444085813586666884005155398351201996802222537037716388586117982570157957882516256011992569876672844200104910222048506269177397992530108088113567892970001429934476129023924314849060431345657779814741650270625872248978490745298451861743832734526039506083946230114369073927094443860396597842725951077942748295804457340305519353804796014033623824191574776380842323101440382291315555011731220409378600108550379424667204854079289212847253729967112010966720584190100017827342012620542028160684084833456191695394217420182060732349114261905262926791913082336801442126951993112702155714635663178846266050096759547196355789925082423002508019320527947202308211377872439400021992681650259260787299880799333341622816169785297493216917845163744658049760115624808823635531789286824271760178529175627351774819193651856145913485562396392301854713423879363019122424529260750450920827145234139791599330393775077157709967996887735782544766920321888278964564928445282574290452799072389829372495905879018037921158177011057758125454268423144569703019722188886002097883830769689058318766992667461316124066905942394364539101181257767397761930802623984636088449444004350912912938081697338460351414762408654246497596845795072763806565556099462538225770185225966601426051622184884993106432538061699310517911730934363973406563703258257162567172215413543284961118719612126108039665392498290491147102143468873841626569118722152482380089081116952491547637851048788330193039458189570091451832010481491235240624922434964093974872543516306309330653904163765201461144985428653683685392119853601956229056243347113870688023767987879273918006163490191568032539289284505480948281053620880622932685514636799031593901637049643878264767359956791482225584296945775742917462114460574002357694683088154393543468384658808734944841756887506275868066664340656396210795160212370936212379406176924288209359825202755808779667586774102005791330826941073322146754709593610208101283272617448037559617427134436101627110708406408009558744061084189071491774133175463053053775707831556923021437765815340814811850023032183810472887379016553868486345688619603146018996150832879995128552924318863377804208370686279360560501426728258390318941943134900510191490544440914710948449959876131954043489434929228859228171702892740489217164900452733580334099988680510214255506876689943803392686945107463987465797124968882159751449447690997488946346605372531414889124680504482530103784148671166424372181448235391480928057261623721231215798353586942329789120729541693083414054607461310750544748173386957601408625919641157918691985458519575442239961001848558473966158659283099138423572338305892770113912946785088188860383852997296699348265729269556369500249723095763121632412828143055094979037703449142440317168504779306094289434062656051750804265606213978043015314860437245903112971704089284232709381382827701691599329861439459472929553713542718778816786626596289498673396244898505415454295944557531243712654447676605371702587799825860665457821488051162929839278410454153308956493278432792596640356380376659076139590766334080422143406125316309839811783028994029362226960442058871533890514511997610150497224669589889170725910791007650048727263903348577972000611903355414392264385547670585480798026871329112485689004111269268240242971095181251807912635333933073144372441364838285267019761699099885904397352703618459955953250845646699607188469959690548791448625145782555051858323367421240906367041204910210838790699440549871627852906164123648933074140328158313091806069343981259209873020225683053952231032449167141695690673579125955707218508852068951803088787405196740486153608205338435919154487874503915615001700481892639375722901130316024027020834601609078114934552989032878332097995886132104889172880052221375683593848248745134842670096605117459854316699256158696917359403567406029472998172650810791306501916549749693926302948339563305715044295524074379583613222580480064138960576113019739528595536309710860432182401579793522434461564608732309202326102678538441640359463327904099551607738882076753892581899189347809184657872372698153768841305430841303961893753547956557889232262336868590371358726804179995414953001973896517664230793737331959089150405513704963383935061923970650411992278348869964660266263702028683105866540235437016692042754275396487506540512389081683360448728996514654419725400901365251903380928245246687637735989112401046856275843368878286112289407170388430358189085200177458649583849410965472729580220091116878964075017570841808439874115514649527064369303877035510660122616270452187284972458140180012098416554153275608341065596600352678956652746426071318648231152387295908968945737895693130384995661795883046119608896949237778672547866740859502307070630811852921735750506505687691156665946325859089157193728969636506606925554564152841148650112162516409786216588488301234562859277124371809891865308928917259690249607950098418724938815878904628905826556289027672353187911934441597897769819477980509715235883507958850056795104922178447562450003842264749214416882628234830864510704439691771503008714731815774664451429764293751272117123888713195690426247154453579073800600916169307160499840074784698290639119818716012338827069928588496551939234574342530097372333445249752308040973080499688787066092640906736349243032133429057793107810677409961904289417270255421457859806889051816730364899429088674730810223679251221064745199763058249961076539607573340847441293325164397984866437954719104638285434898582471582569181451667973490209283711669918688681063732384562841562608752456359405412799430161502410588380457085394752544883915426667298854759163468887487776910636383927533579448825505523126604615868387316344120698734954126061707394549215137045505818880017752953694875959377892592005156284349501076067850741092857600235023794274075917151838386205829477780855526726856716864610703640928504632631627474957332932595829550423861982197987538245332732921775631452659462795588777718749121648721829553448629176356958221692456889504990739660776126326634056454079783843175722129055448228253417688437603913813647853903912204874613905823537953216454074089513830603132393628285016092274511860833500892531100279405187198266647563117923955655142935506240190674886150187116256831316861384129816459137678670761471402483084253964117403473223739321164277400465268010484329616354802686056926053324994632399957868987952241057077614614408204035473804267801562631429532266932950819454126483223991817928999907201220410911972766720910207574937612400899084197422627427287080490282227280211255011509730625915367478984079947617448002273552549611044441930044811770215272881201702164970513242307361295820670199171404861964990100485503383590224059597682968250047157402243599460188655700666590696530978098138223107847895532545323076375098801322623695960532293500523147677118920412081112535866403198972585495919513949138299238236117207499465139168814114848571232848794537639841785079152145590476500734910856022197054683694306927809453975824315079492024737292675460457447864915351869461920406689894237218344001922108672935100795812218495686821562885856617435220476438750628006296905507413504587446160489719927123274124191652107163163835772600312053409899654681412886085741433963597574192128707112816714600771268082042952312747621298500045178220978761408237293594874918750679295388686106664351380530975562511470065683355260864283226657022847842145226583202005816746594431113686870147743630964781602165494310762050642336071917669519593355856907582993158305233121473612569898030491743979180300403066495357887498249241274327841468645957891917096245618591778102241578379041879128406691379892980370521085530900140396329643170239432244256220912041472989988330991016626129687065307591106705921474516457579174497726514750123424364825981845243700804201790798095224446436526889873797477718729155888594935180410835956818304462830041458692059342049018976972257203007654128331352958827559604105211823626102290101856222183931267690560916758223483216952243891485192234629744026403515441606981708347390822969966327888783582805593743977361706828752745081186162857482032258295225821624955046605859474176684428655032999349250303669452855289634256142763066626408456134327977268050954242524907075616547351003200498177878854527847031500713535703136240988004482438537018835625436159726522328310515241877881101212870657020562313135561364999008755793147756101865066366136964117133326403465931275001288480989034306752857436933570876063438662073435892905325674549354555834041538427466105031390701966088700041494456223775055344328709161519464145138304019446116225901124227703229910489287119749178971630749805970358597842362404001376769959183453131091766839295270963188215271565877168555041206392291264533169772759031294306587542514994085959538858400008158732460936573455417921233406828889285295263248064670192230369756078674885443836101936272123245663990219027719762764388137807702073034373499007595537976040954339583882922973924128892101028371258131747533975644116495683627829708790373795360090669577863459576543084653599339187609832717155561493495103964245596466610139483581792104985874742764837650142478629225044209432781310362167852675554056231949354486695317699993980402236240143096067667554970335304498453295129719212786220654759903814478291831106105534404257097460709705934359761626377850563352486508821980896824000456052920452858375118390787336566372128692710066485316878704759718818840503951761091478973051923775556193395813361533953336511055916502923795659764899695474011545040718493092806239680122706224940734657578561257292348534126855335222287506652163089338027623319779133095705366831309488662200500508926127185700888583250282145524282643604058712886798275484512574044836763554635450749472410697782212491727652536232510623248717774891593166987347007530575601808091185738321082309665602020856211462646504030532710382961536968203919205926257486178683602038085842009405340281371651801324640519457706276796683566351485356219700453320142129555907984729089606462423659282774437614955870790554729995237330324928572047642632777715085117911691455662469783804165354703840284219085597285672606894697898286030688759406153276211751709366536500429130477691886747338648838455155821483790588686862835696511458864545485458411224948667792737501810611471602556009789668311367902754649294304506038435552153193517221635838604420437575453821777066924580160160497224324533479808941396532549977125680241978955108879780754091744936542763763188311738367908938898013109507010067556124672882058837518817364848854663907997096471545943411555544568803367781232646554892346085553770977561712752734649028159129577926562736495321871967535161983027638426307179239643711028938230065463422661748853385074536870878865902590855365457693864484141777061775705833228529923666137557986643918038209036676199977963525121454616178544640286234662957081349106268406260749589314919587578233060349381772437855783682568816753522849912330882506632098300735538873079518975601810389316577070625769275405714283893007746531919874005927543449607421821237831566120500138949126696582403754614933195184931153210361554411860723884069285518317500082317196460909375391249403594791749795551991597056575138029657271103393336672702523100338346084416909691694729025933164928430485239815989874242877731896492637090799824730886938538139494799972407279232147347747764811412526661527742377019701407691903303685332439165271667151874192509226627507100816130336791012634975280299668660612466777162756125638834061657095046470958462727556844326716879499981225534837159053709854776759181295107404234776454279983486432425968596211296825179559596096704180399859490018697340362428720096303573241639863316460138023870119219109071541392913075910863867267519511109044153529865799021807751660120416499247555562207196016301286145260370479627709920073439661521463522369595804963917118329505610260322645550803499760845674135352523490460029688866880373693783752799525421685339058449021959683379785855049651361417339204679263660823740637291638807278886549880263235494485873258053239085437835182805850508026883548622348936987537389336564020743758329154170936446440778058092055725850841870423249128549609224084432955598743702843278423542596301900268825564889739281271301487374972750043855030967440113386854000535643027224494366162348222052467011999337601590972281859016500336478765467555664188160519085395199538676778258573447842309182030410895228751685185396326024208754885276905489153187624722870756222926098537772540825481088504984227208188429078829136305315155932610238512812243080944976300441897731503657247188548203086107958339877106878153473745382741796903363483780076344885748967095471474473861241838880999030353760211678677652863013597197282516705124332798719343110966862593430303146563160713497850281838782224571936512460200061423531731094234042264891530005517640625975680007338175873701585592993656315587669463823566200072596111326031159205120519061300117646637263604270124954145563255238606552409409036782383047495636621621748097055405893727662535002032390540569766269704862820506722124988485959978451017390028402251881447021208679490281776571045594921438956471666833871627648266845024500655166526149083014609270598578838019910759139254700556727868831823682659989429655743931735118723651424482962856345929894556028332397079527956046363596252941383937625456313157981664032441812505252380481338681723041056887833089691203771367308510013939005789503525341082859826784510338179774803729805248814662230927438959443419472050729669877351511735723740596316533289475558692036845198917880383360211907919468262172164043710614685810865658942360702549597289356302272341080058965263891774511269342171999694362242813970962261531477951888000020961721816255250741564269957346791155854750508850438080030173697636592161684914226466783420526906382064255377558559977319740998705699850203133066436618896673391216063791746926492297584182596239660877581958384762781431962914927827234167453705187487904294365702164361058436682248045951158178286066406872520921482413082183414683750582370803560811962514611819553612349461125903904912178027464704965883358019798970030992083830076494801779874407682986452117021522307621477703833386635745956323734178604434732716718691549623198631093928529855278215636066476118407882862499633723238499628633492583628507943219709611412936909414006111963065793169550853401217821669097552036953667052282056995823275597770214370455287439481283290738706771726621868649246506243986972309186617112883789188189605579279703403573152455597984188462260711200108620627873004700422182719147322578718872766423360060139018465307864622905727066852935343209879017156911950608166307589143535926808986725512021649481677522620053727045664195676244532344336847124636255526589853686122488958931974860399005396097725762593482786572989123568647015938836219850944622848865251751522169130010745391892541727470640951583204406039330430927273366621262876474010185718728683713173102901222296217231237674815005574161402632593469808786014516991407630178868377132139841199629407534444113284208521653238390734261456737735078971696727189659298470302116686305903516674996645665871880831930713309892603972190881798073026294461018210328913531408076531371994401082958963672757628187877910159124093729653048820962012689884465769030724260416965210110271588064207684855065197490184860210671408979927626054597165657793870985561034993441029273800268961753611076284376026918937302954449791352393316058347108383493119242634781376909252937181412082696362512162048043921193360543864831485062435934325795768898133346053104733164821106238944945393765687483782296329276455532637241809804236741596504445362945930177664268284791660572313498153697693094983804342838022034983007907474219863255996835952984153695240652419244007778326044790108102170733258580482421164076503333989692621685638446595845234570600857557440684129778232993426655986955075071041661996034991715310773262704573613981399132844821430554245191715624132953521103414634271553476607745850398685598648424903544854823723157266589450443765093455131288510050685623298303111758881124605927021548098155070121758262113636523753786130449895390546104298498266162493691078020138988553107622949538631587166636456390920338489804504685855537912244962920680527710307071695392413281065222532898098105487973602429065072164220588381760649322428595963684103223805107785205132556323413225819213543855452823181491031162932778411478920538394180301091055982318923004350904685230910768755618460671640645466452112975898458963789630406110277321562084219068196475293904912740259986790927620154760376100487295899643593615916883065268571544229028571014447058104980396942249171857028796220388366350513331147004999931693320577314121430815295464943822449607081660339624906981071311035910878693881146398641042365348199664673915885048936082980580000145198736824608684376067170307976680925203144719640784498147295357517651476050110942294470134156493310774261737141033026676599740910214049282892788430561523188664282712321939288688406568985216586752501824774424362355246034954464911698867043356135586066613630177986777074414673773594176176375076451635423424340970006635399767250127010634313666712355976613630645445634103329266795418365132037752771908993400865188235647604946591534076868104970849205196014629415193428847967450811032265303175314217595792916784057998885465669118186643890707966566832840293761925843633388522004368807701677952103430264165497754209792601858717567139630997873717687671348693992654525519099432560394793969506828480160560564146820850615039095238056558837418168086862332057050512410693030440274677852169223905749762601228109252015546219306042978003394872477623152582370861610918245830448491481589348578285027184806690944711635647837116257702024630774238227214705417075656651271387979877435745392970506117446860669200230347996095695212782383476436385451920154686308293153122872896024031148288038719232333565044430754526523155752518126627566696426475382916579815805327933218646842499205350730220249428915605199330675261627366880617009875880338317822366913065742900805953205283500906607333607560899703149208367849958964038881679965970569598104150195473614858932648100141019922306863597730637651516412518136153091567709623937351139982186562682844152619886525779649246038943470362828609859472090002550385465792318313317859453805265759212633489121188873213951477620261145070483444275997673067832727622713845357792894477531752597536830217791230272619127383303176314441008025403732507268035684102493117680780678012726117618966515055212603093097406668439995790443162016722330578534057079517637240067559531937455670454254198732392697342454309944646583916265037292812382093135741278545127889219727641379973914933158649965507376988455815013173182790547945700250354341420515284121439649569897291031836350199149625894445680607853708282985741994227068080355075190699169156969753839325447462246636006588581349911398158928297453035618494287581858951619691177395170669386640741338605731806399491185858409217303944982958665337124218355246370403441858353504023565119641957680183244717501509800608258735994127789624655169597819847121947751003301238651348177451377439033330750050211528419857506903768867027699257205683473923946303755884890754085277078223622577557845329386250608785896779413124590247684698821816058120399173962863151340927121914991964205795054529851846440353112654350203121674663101288546959916344063052327781617188784010087460510679412645639433503927659020477663075292563574044208449946137739596235987440158821053559768759218342732268140481826065366595085257957229029410328115559937283580277266800167572818326380682233147320070047999700909676401411485153489079454880108846369716200662807872754389960811055929887187970164784749742554610160337420830988921090917186431395746237186505263440952678291770335727561244187478321134233725728792922595251683040664312603104119161458272234059293519013862982034339430943838621724462713910328039500760238302456638986555764389825434597935430822484671716821266921230555959919647822532737200001661071280502391045619021980517077249539942603204427364724009027098394339092253379601336200879178674989012282411248855366880399086762475158853695870182974085617117337489708207002651396452543160920155513151139692150155677278973818503200254131023806305817936292287627966380469436836872269134390740431348664411165298202207025971877775556190802373479112075825901997565850936488019370398318120992133849587669593684724189886002363900783866165453012970063807390142062198946539096952802544553542510881861790098050296913019258834131860620017698287717708676331060312658406709300438516477713483130029159783174486727327219920250952299298562698478800887673601024875631824182539200428494398812360468631215066538737408998357923733946111265928144244735994322804548375242597405818432705888790096223208524315713988930047339468525230273757802487986293524760876183567535203444909427087188781290015209392396458158906761085826025141620867166057019512341765083487641349658809933832018081500349059588643010400532143103688568084137142059625546274413971820196297245569894900503526744487967494937213558629978117502616902589065126993832843714027010875086649345936493668054802200377007910652486816640476310240051650989345853318267240246344790440378696680726062965726961458824787178575307633296248963929004905555865298701711844663141423580015400851434665948441212730050562222436966122490025749554161353126913748817364012589785784388798805828758858451582720987521781287474283258749883469628724930549511128920430979416114837125419776327078860984516212792431326216137499391472978671989541809833412948957391829917081368315002871977822727829028718161523214978386341701918301082088609842578454414624734755007320598027028865562208825053413639637441402590291250923043638052875925826884427697721085608482002224166611688480828974923245623308401860566389595931547448268017131921960936239149684899491430041697020967948860665732573147560945422846899045581177513213712429782230502722515611174456585490612175668097550168659124886363867153479563927680879039897046914359475004509435840403696646532379027122014362664004180732915546163752018460946415501895614929353365038782625325915242263183867210205605409886798283151773359602317724496405921736952508950220831984766582480280299127924348962594579458589296022381468352914262877033420422842908316164852601409996686957372589118904387468398278964862544605012631781536734996208477156883266411192545243583887066356074255904232502649430809871808208294104998725431610031102753294849299603120993881734359565146619639738950617504303082456054236290249808773691344942171114972266678599047186011693506662060686568771033505075415655920751053977591575030925214629057627613606880864682848180259926933533793790268757037634824045979232501853775302019928240502571451813808483358230062882381733671407515682247077077182444245856740271937476204282248764504253258865401768920095312395523776847791509683440774814302306521096389789240414464552056819300977655080643602660789755819615331410076092086237683705650243390606003824567640285182042270737885178012578344851407274877141193864414178347653511567520088597123435142920156222169944259372915838980010832135881382111570485769954263361616412442775050597064212719922621284114861230365968174966622769821612854306474077753230572742788875237855478735654806886604624033480136320655543273893223263679659584903204906094553193937943631865085095195861684422689964206780400611736326637891301956874453501919363647591828801912654351307859668161864184201954736045090285213165873447850274694376955289928241485266797197571285745789439231729621765141551830161246479524764574922360109329668421063867279343710123755663920736528744261682964796774851723918522573749927407478802257452911941133951055692793670572392630416791008488459140938832999165354085295087001773532024882349820002466289737484029048831529623631586666545916995211784083862979280914438869494722742687104782319064107900527307836150452394298521130526799794634149476118018950904794220478535873990250591080762751531259663219588547807077269461608607148311740305832778145232313690382858326143494066450127114339294806950792883525620926769930778214615360939203591655440887512932998822464867697502456005140086515752979069286867113121770400402768425910366924374693166401387074607217769546371302022881072827483425887458552810231221880339485677603216521090264309153074507739834415032787174837191418369466725810521008967638054602760542768990432351819617488925899301805672122372359747612693747202301514355592415926795418066936951854320613610639001111840053821555177353905091747593062721270373620688118935635527239285492959209147821181521419378501229310865838218958810166371834968123116060304088177642733802466937434303386617511657235606208099626805860117201461086712682568601357601075516681997881365292655918450801515079293941602022282108571498680840832616062637982304026656673017406811719454095332959932050395997231764483235931935007816842181620976939946787146548758225833433180163568651185355282224396675668200930870031984733855233355754955168154169837679962999761996138285830103511452388442794535176740647957342774285057619271873257753590788651690049602105358118077795443496432655686435537086116675805093064277813271045401302692110254103965120769944285104843814190390414828712528355724329474278966975118451845549161801861339429300335442812008735602893216725741976539912786912548305956996649080101431087775307951499794482991843787495963525146935637300253582801956990561333884829617132194757583767044438019674758242810305974855526663750405205688606513240291998220227513368564281213269428916386528134481082725607116488006501036882270110989548790272956415525527085450828963220643114516521846898081179867170886748402796675708360792843455566729719302411397337922064720455897098006940979428576497611703501540358519541798549270164288907684096435369679056021375582697839349656400839524425343700781238951444662027258376691083140988355823543315466236178127614205010926654521496554073278252028363765554710157771329688406572529966078865447565216080885855017961404186310669855748183768795977170089879879883013498772631273088243710112503015184138263538175529879981213255056557247672439856175253709172381803785842677509524112825749846876863466812394814153271981188012754290872233039836061754060854837507437685758680244936229827853200338326988475025401987616927868086898435308053424349104913539895332498624833379017650027341024751586556606022376902139463968310297217865709294357427359179074257892647337751092564291541433515725069933800354433830153507137963637454000508123190322122345415187540168997860557017493319692866680115442146688990608947727131415898702019211147421533547054944301330633332494144500080402934027412558278687631318909562169548754312558780485420645187157290099073074775797863523654794019344357155518380310954064495868171584585334566647083007703722414940985958283283095012962458580764579401843552304806914351415256065998644675733034163709841119019316212855668480738484724620899393786712873806480330473242980791009186940993275271349655924766888369351403250065102098160613198601945673127983717419501374002089225498526053019690260673792677990614979471737102920630303295113397252687296815126600546676543941205763677674003094916313420485222227186750840067949088058779909916530640145990292994519242374352423351195577865456469658941824834718316025901631075641896986618204448626221587213190256211196152139007332190599780515272371859950238995514735800852053969759524030768690672747587565160860274251642344990981328678127790510508998629929147081491170276821971348114539519892402980310168736649562013712731298797125926251757892028256248930748270491741566655544722114172872856054513037530437303669238697857061149998665758658083745701466165502182627511702356185920640444806533836391637876294145800048466912618183301938459974090850958745048378616806299575572264846675258777799618600533445817325080935338416469666620738255711190034256009275642171450725032369718537961092117207625708479626230945279550957774102910615060025693042065148570741583036824482578641006612639645343319691193038723710390166796291114940548566071374712612484443344926520223104242302181788825179755891777961420603493592711270930312500809158638944968906739804042019785669520711074826155259649249044788944693519152302925645261063572867614004994508166742587920405987677688876255170964346001966050327473553764947076267711613134217515733718211690507855348810990814442396594043674141812125497771330935769716265785141185628238821664947240823634187392363220827434125199217921825872835133443978003598572533201869568737431892481949345337471156642897384656022684108309614819923761917490928553621236812430591499480630284291900582424490804367674126898280573565024797166528367129231413956141880661540260056392252157534508490293825330712197019741128365607735860661503617688920190073227681277245458750873705359169256711796058401183849088642130530904379722328990713063399272368676644694500272140513230792282344978054890170887996633514082062882575949654515148718230560600743517074541914057613143533969833746278543935271973357659611786959782106214669204549366930977548274505103121847953037428535880013550353874025089388013903027648116406052570339171513122971232697905771030850084772505132610223192064693088367268781686610131595248463347396757943075189271426864977946866646323073103980083594349016682346514173868941523330380583844312962809513413377281039489933962785541534125533902346496945951848687608142137333041568981960645142691986528666959938589865290260865897267657281427541067270611855818048563155982125677485480095951185220412640303661676637325349725458740093629717290472938113410709443188864463681703305675038046713830554223235378038240883419420564141787334926973796214725779727291344830362257926037987584321067071063692224767247227700751963563431543852212664384787594364074296189716284885317357329122980983061688099336576837166117833572105964523869427082744442891392279985647211200202693214621391096338880884710918060304033222469551888076532144996875879559832711613335023486675198103305447212437825365626644532272706823324305450768230372893399722095083220042602486192514101286845748513037438024516373389006103805308888992625251522019280165467980251917165785342719854161026880850704944819005792065539022457433217455582073139346664193750477854468817642403063567300623687099201114651393886477473523827747285212061788118536608024391636138245082575188211404465071859054502302750871622344040524228285124530490839910321929868457678107124521354682590144237238699519911738194604663108859509069401394910298866775495581835816659820247125795359743721169139405991119488224985546506111090540602679094220168498251701534445513842022397315874527856545848462969804251875851373955728288013623360674846791152267056095435344973784175438979616155248128902452784207205608485362136775637311493605691969148468509060722779619469203933631641830284627839826758590132699250263750156613815659184768572614780555400731538819643247009547934385970147156350594414426496021278424222012724858296003621750508921094198227722643340770937940542942931777773921461944855456801173470502162648022495048884925278152332228642536183951015384607533503217852177797800329037976482734226181599030533654531220922889833072317184489859190277141748428615478256573261239931716085906244010181391782265973275969559861447611784957119395451118790991004448498156236493990103149098339228398933987702029949873365391534886925443606258443501897111480706991941228588952539970566863285510741982185220716892327095451215464197895745591886194565377655269693679934106847460915573539789236873829263568923009190955026631893784469190888617522960082479608366157318704710067317443735908412646378323522405685272830581386025754162162320462084753160817686813670527474127220097350547266385518332076708849784740028145431288972930689116885349893619454280534815220493918814432589718653484203550256049921546167828116639788354177638039277731290122457428157674707251490576690966788584009347829776892111664612168273775573077466705368054728948994458978154244755637890068453415872098755522792862071914561633086307543810833236091324556427063428458760385293094844399525908816229495721853414892726722908593696370316197049400524524792905198695221259595775434777428985141317793824877809842026549608988429600297184316123163336917632929130349985940388421978270757042635411044195696813553166638483271730791291715015858410540762522320457147706343003395225984005456861168055652705069547520222272633065286405081405586574349641620227293829729813794470366523290068527183824323611631699205947584743939915983706571108225542251396126036494319112383228168916925695926041725291384461971969482151566047906290744397840108660514590302395774610970749486254261936216237797510213004836019902793094254105562896610403111979822238235925614853506029924440572216485893755729488951862387227901341934170258721195699976661113301585606024238964919823194795234327354640625844914418401146810550669218281218625564028115939338044107634564625188319513814522080469374882476373474972160457541295476794622856041130808747931308609080310909406522410677070647839263211985122084066219855492255998373357846628411059111964978717900108453855753848139149059223278281425285329106921394460679198151714717263688653420142815312820478195272645810429184549026590975948482006834508611948955374861530139053598438600938218910863737858401649346823401749207120631609976206106734540352968390996240904925467023723330821013266354391481881505696310954930480537367473653334972075505346086034565359715790208376624812355292332360717325776188409471366966039257361237871580928386690367210306372718715321843488603173957461651575691951584509028552192519454701299137152274923879155603406339572506243557265991421512312640525160221335277260879811610482866433849475853104081647715411137347621865444555389440694667987550421176001311612005536605062475186618258019141771009735210468645824193884024500911416158533265934352962413141708016943200624933835105311969890407430679937366304561477387272558746387171949286485911958020353017663278767003184015828880547621428743761077399105891602973263496740026793174872172622836489125669396455502128616430540455677756024527563555178378080802345876134780446413279533952217425366916124288421359860674849489561234834355693367493124135651396967879843437536587606786256769933649648398787781828588296781708682089123388775286270642959131661502712295544119851089642702251751578481858258035398795477242765628296821761904050123122931776562951172996630575914872570082056629858349107909864451095826593321245208523746358510960096913391574475232383502435564465373968200173510064201936263663150344217586504933877925367553666890252366927927361708901368815628163868665952565587786068800014788031851096783740983555145877934635132557114787349801636163054287522039714451095038305731434702167021967823365850117190879177499287072312665676457072313580752532345031887002475096069938643808377828237363033974803831227160582410885899293897565974541004967591105639816713238627620714124354805331271763182340719202387079563769474687947643214332142978382029122266816769602729438742674772473133985373464778309701465977446156435227299592056735657349968380283912054660295900390759689972443684981539142298934961601858126606727450023942571288569663668554451438328132445884699282793432494176453114562418242920835251522657501259979639481416756642229471342370173319849456208551212632442273308736971227417844887340752428025175403535674079937146164792615845533777594310236215463340775571256109212819709570080221192681357287910699069184864281762943764878652428952493017463438987166051441595904713993074414409579542871692473161001425747106667475889243555614443018701412626600622951436891747999161361552326943937390727921196828511302137652123763234981615090895991051649545164324047972831342319154238657171765829625382008730500891464865109928337162080985889653380092177759268006995517895358093545493084222245709326025972481492291651236000890078007692712983862251559889721042561214692793568363512317249482505991478078018845094171850539884047392290176941594969024862159137165257619327977507912146161984846125875499565180282750779875253209350820296960349015153755545715976088341959568531777407628700880766043247906517871761652091001076980074052931806672186488160753681754612184091647287919165544639769655389936216281528875417656403986173545156072433524806432534950980999679572177779422740504213946947652874797552701655259713484361337074088757753024602550879043429295090201474456372236535506791309693467446034545679500147778699801524313239637960941487491483279891202744402349393847555057273122818695689215386999046823960620114662035566776199231750210848274589778885112508633540113496958673098737079272800143724025008480300616804697935964010230605467941652394782118607125449399392389645404023048562988241157881862079994194514661023560608429758687094813217007854632154026969914472295334111494371021401412955959920619161587393922420978619889746599375931275383497443010467978545458751269620255525589616222643149402706527685436278361931490870031346104793522506711496695765915777290528677431734529882766803303478572991310686659435702262537729321719572887777277708789132695603471987298652235230520016113318076295245440972667537925194178348984135450714002109827650044501636023154713607318496482590873321356955151999115452908727588689795486923001605087190444334863527760298771686557923021352927271633378974457512740188843708777055055505583051830537862428595615441735886499694269033882672066564634837178908563770783940661007841594179642492087142987326360255222835710632757976966203100480531409432358986155736732374677991100517000972498763845150868635902746995557730753476423890504479455380425892390694333313642396452953853686935812531785829734871170173472837506078737631811442604881821474638382862640940028995893157930952325267634933365122593995494222555802370018381195649721707788671775925919815825839569443840537201130026680050836798912137814043849045142373146374110575569497644774479564354814558104383221550199199382485962319092473296882423534192188320955445087306407982522909163856627275414276415567605077826396912189814454358252984468232883925679731855927588893090871948126974661188915582070446221237763710417740339316548729194396578532348726974398253564728986543899645774096530361802133833550008137882188636917978942610645430632498001941231845400369520304140371600318854358106320561843675098651792433632198316739579978189923211016896545150174445393965423694840438413791089136886688589430511491045920365896536641511509053171002699410587923163335043120595188341846066604258450946179829693785528980818004971660037162378424732869185394244642019064581012305083802570325839881855954889297970027708375015592847367623298788846638713438164234094408622634385678870157619286855471839778442403782892033719082880033351531651517863885641803374004717628033460168554370922961693486854334730934682153031807646605221395524747406971306686314803902531550963437981506183119663414398779892598155669770374896942657710890784225129951849338197594492576077689922139162415750832895756467490458662470193997775804973334939996537871028746752544627615579845718608808422181416138594288378206191004661971511182057216726588691937416003808670964933718676743977898260308477527089311564947328363479464795803885380985879697384422595899378892096400913222313677322220238444799265775160979134823970772669661381107938591476520604032202594710026200968568634683119656258395385289742265327502236962630666571410363001290719563997233720749192323080903604667521130043787230793770774720537138543845577761799183582444199689462264947927143585525302857021878162603246092097500973313547861022306928310285584841559775308711490644286217117852958200850367779070916688609821552802593107453204734015347921345549354874260974681298207228936588854386116516710442191510586921811184650717972694686978016388191514639944452027928085930987885347118190109692783790857507497409785078652819841690968587066674825377602528944126720046272406571665137435745356377213757629298243915896903913155012664852745309045660450578089192047620764144868156940526771449858553905952685641901837723238878711673530243027055024714852162643389849305201794547189874639401347214721865273147963609856357688155783277600249907948809983625157888805014557006799008659855691500535818089886194894997160514497698104807761532798753601713108671458961708774077686568339769114831376875440415658041227929727808101169522111587218045191804684939635037932116404549792772136355525838733205737793036243497118411124698841189742464230788055920211739545015036453668493993134651022246693600497393279142650254284621509276659071505545860721288151364727894478285597039207165132075069379029736718635745749425680038406660449995124077706150546033788323021710778387500617594667095057936342339905783128994120381181522711163720883634953585910945259987452021870085926099506964155704023042705824717702493249432864078820753941680368174148775813496405930300722886192719322724965668155635119119320651208460287982342178258510351579826675490718705781283733672221047466318756085413357825633911229629118694997608058372394553606408675425080809412283749332374201918867560485236713007794891659507863866807032134415285264924478887305873388772110798543658743542549854363282720464975251390865043028940469697433531069774447817123332812769839314593899766727252933676306945154638401600297553930014777146924684126026778190492902642766902807767291636577950611322095416903069776444603956041748222328401534943663990339727004830114167456132041544985379785720319206740467673915867477809367226811402170777635531755654759482548122149257673456843984280312795621271104250895239249391371770612796910178481276644763015603769293183805127858864405357640284057623483105764402145912373720094423050015057937056644146267104074152435929038739637285064794491525566573347056550066165575834251949614164349878857485195448604428615121994343079390182712991950818275237761818750432995411959883697754040486907356094201116863656081587852016746330411715818354531840441813198064203302760417943131863768755239736704271763901313034943962028710181262763509001698804959341360014198095707541995887417617977798180708220063398649255003839325145426902881656864225929456247274956468881278142336243721388004477711938539506486147961255964089864212880249499098553313307868151568124776860072158154753324348173509672714752346340584889560410038442961469813445607446954497985780176100507425441948885536038206295999156046851058122124369986442752127461607347127181195183191150648011664289699850633493083977232443375644578440001004923562707454972157038449787737670318125867352053054829129937590530405353016910170358914508141456733607421821078908442803954895105101175627548337939964436745645878767315568150360755410545614856504357522514663926013865611942669586830574935436387137910961796425304538811854957854988121971176900857952261577915196186182568674539265919767953921872329595096474108909045727491930307664738744165742556914909575457319036466119247648488529891629896308946478132924908184199060308009441016211988588070470834759492842100320057703466323536600585954226783250479008622096921469694455894497201988993620982745930333953058610097620535544637492667353088597331810116622228434411212217430898018059802715602945790281295282271596301512479640982900706064409984268958408528802596064686923471051444507043271654786589420545633140357277697013215433885739866433077024017150222263054498560292209633971624617705408449085337217222004373813932057151980891242370236671250897186095562125997304285612777143591122353393078080856737222387327205759884923229445652864792348149916205160035154042479801020045063657754508227912159528881901188401392608231083476269064049408684830749719502145563783848571826254896799446790654398086603044269027802634882192445803626942381700762410375191603500032099589599056092571853370692003328986817156189416536601623140853151606444121521987457942642911251554425303290209198117182756050577897543525248025562760271838661958350062206851719483043418338090769295294154014893708013894676998902024100951977224959921348749281188442519078715087312281068767605444341838618956010364152827959802975293462342423820887259246385807734566296951227294409532097993353349812223810815542528456902177497091102896035128679049406983441664744712907499095196965738919555603112320995231593683600100833568150470291149954313906189872432930649476289499524182056339624873380335500089724527354641690235225270571583170744874206737506515274052340748027965167990387873567375660419676353646946419007918652486363453138815337553030348881206795149300991405898908913105229999769464831847667935518017347578351172755403329042276051815493553194483975675252702324738060825078860035311064962070561559079634923530607125054601567745055409351780472954214512633976220530714439959111333649919519656011373847478798513150349936802915190048892520530580999831201925074876380109024722646873297085669203553055033873816372295827618323146705117660014549751545776444954749189191283350316928854410031123964143268806090694703270979500898034136187932062881093007374071245597249720970507825212797730023900508480632663713462025410787713066123113144362870128398203113125579052495562111669964687088925293796519604353853895988854083581027092948638785961180577257596395468740091330154902676436585941022035963598022310830069683888608318736444326765155173336620952535717652739324039101219378986004600368068590531775430337006059552712487753817355849656505145149450573360779396077597500271523755827002806696612885330214809017165911205796257568712959516077589006314377179414932502628514964590515580626801858217614172530164268039808037894922871037477839959486906740246811225334885743978570006212715532423438694289476428233684745039234991056044668061679380201457644705162434527027279131962955490052614706839171135259131640181602332167086271268917680048542247124068923049753829255521957190360898049957225735927628745043590362724118089278515343973795505804276212249609377411743878631080577227309902345696784395083505343049599981786697149023706797802235817378706416056566334695399851217368955958501425492877386949211578701965762215435239349316703416184644570599829592183977512340599249887734032063289937424539838555435910617319909159979711642244024698637102288354859027389162002231512753624194877864567287367927614680899292270085507608144195005285648658822172186202957701571818912574772767658329441783010608640292652267779086999822287537046808487628508106734212992448506644054343771818249019486932655486812463796109102768121076571235188373400060592893841555985680746937742080542637885807369709251548170014852870004917065453127546309120683925217142843018458393623960957725594239191648057055912837132438113965404074386531494161092022758299938649911904817882352642756888002057558208083304743284571758150825555266105270863638244107852925484897741096590597111446314369646693700457424741098669167080652776620429152304175597061093778154718283195817030006023319029207117918636392005452797203315741472666960035163456326204021438610135922513729635881109794680829465556720255238169277953995112729007031710788430627362395644695147183403783511145480912688152980014020224795520137948239002567589380790248528394088972678553938436823936914833257010066164043469004652654126141995320173855336501034638689054682266194434383646196943125514823949369897111608722103430096103340430977797641840607191298602895271178140871046795304694915980025164376627003241064881663188098338546119798711761639514840584226394002303192735074083789258441193666787749790174207311863502978416794563416300479894097109830963969724917407060454323304722225354228633553437804870295951199814402675319904817707592198877508918766167679203923026543060345613607018388762174162069878630445827492155784572214469403547269172845202125443643731923691732561381389565900465849314633262901641455664267600722903170224898811269700734235103285390260333184377026886621322121561102715981470249646114293058978254179571034237875642758474409254134645369581221655697816135380801976391474211320495237398702953105833819008410137422601979194039600317035391064759821425768486757025213440329376858445788072803649978070078757819143977787008252972799707009931672238985832840314355572920279405844973015768994719021420261901996350758680777797149527078822313940022239982856273757375138690132877789386776476422507871458003938480127211294569411448259785356134308123989062626143270966620961017842310403980024311353058335513730971884389624530722931064932314377486119082319115030115159191716414290444726689871936040140336541258833102813114259151514900837585583764144523106504152991484574209870395142230390261853368490020105881036993403925888624057392686480229669279818954651912861188332166109490481670182011903239142126383704087318691833236502630241045662549779410781307068317718185269086778604722927224555974830883253124323032243235820814219908571033770602850914259871643715576148921140685065413682320598289056040115368488885819571230035505674138069335247701480930762135733194670690982501686981402170834307609386786685982924471104866485084647263346245539042249420365527632068803990602241876984547732916288539218765434905844382728225403282923943077794870166491181682986068888754829489404991975270863547946942847390025170641308613528817277264796315677242609560321220054568092243884253124458770608877917966501025577210278831146847875426664697685739402777822940612657774326321190471328889951369102844484512298161020784755279162355025507298955440114808542405456485275675812704279386159516066362907855931572107121644318040270285498205402747466077169910662742640062588615065337183624613694220291839005726711196433978446497520682714420221890114027901163365248807508221888063063263771513622548797446349490747666317517224126049629147345274960784236497920041197738444937125450569667586669354437238063087086701893976812634660985730531780394263029387367989637465719413435795520598460699695161092252462500364606611403955834821665887630058939870261546352852411361597906054595982224701059670936593594702376491961603945797644075447996178624999919385392751773856473570730334436515010521678901664270321133347972166025115465965861343551462084987123834919186362995413424131279980980747999173302156030495396851051631297669706395949036979022040761248110766827832363854766175791429168445316569914260189775825928186325517715536720134063134478140565976802934543159259992605641508277717023402771746159889734531586203750441490196492144041828548504312433476356580265498113084832411183937049219248983353904322338950214090297592868710866873530178882331974783292488792543525543483316408906023348442873886411290346574064193308564796710558507350392114247798567534630144877512455134867172881946398017936101307810588494870584978574686191536958542912519611850980266224650853383799689857915742267576081896222269105462255120591659502537703311367694810883078802724929429249671551403963401083185201371532500535222622247262172760069032295912488882812887632828122749311530198356962540452570297400899357762639391960449976633949031433313240378976341533292378965014145511910870212540987607273755110474898343126241978811941550030795378375995066392830539223603004215028013231882101164830540418588277158485608687452014596196756668923617522703269585736226682333783125982853792030216779244177131420470082873986285237101281338361244797246477563206210486428572861066937364549056938396413975871833422113546089900386907505968560557534140493464423102592635595190045007275492474503901537700483452249382574851043100294402863107350393515999620888745758927505442501036194155955084799202749712538724762329209854405828849465228244264871264108720582810181862424702937320086854411903107686347763709732285254532940309751698479274210296351199933876579113092416898875701519234103329980163503715606138309229957049336670270489058592429119907625195950978516867644950308163628803595640547239966357014533215744753578997466365510760004544115226642914764412910207712479255361187227290340290450293127294398686606195967676134106023695076451279215125790084096648690215015887781036247728827552631703636263372069403321771718985879198271137537883273302999909091333006424218846069216957987909155715058492173154414499182003187391169219081668465252626333204404081872020209922426359562451632451027835841837877843051085946147361401403003226291392897659933894422062927875205672647037910809985766116227317964336928240240187807945310845012173236079211267867830500599983891960887961733050556740237143575542558533964533846857772813818752835302730479448914864290838636618619629902699338999849663657480330125429399956193952726425228050110791855607658081503603597986118827646913023917300752802426762538693292806755690570591340131962541088639246817260609331265841786757584317856888663727600548419424890450523577998925377524331893727910019114111679741484188820507827885792768393506252666250787746012442123130701448655986987193121740827988573645464886274646720417630085168923165585876688425480549600493406703406577802724490828267639085900828427433978855690546346450164311891902446185539287201227848333719788822602784479747206570556999221949986152136770245036321574404490576832760848109549303464578624322942417852968687422694832410159376358850666098394158864103815243994247998262098217758054218710041742843866434811024513805435405760959461150953462329788371641409174227067819305254930423632620463624626669320897244337171940180055641735781666302417441575191658752946437698122318130621580723892828945990664342233655195816367752709705991102540935450658148320595604206156155625324332283602863290387985807917039615615338082767548701795942814066022600205796135968382573278438886459703495854151652477148701152611523912154716739614311818243718558286109447234986142228475286153387148060429937461763872807681519753164808999544987681828321739869402810892190095342731322937720988201612379580609230911268801000916724321597256856180308342162668944016900908733200234674859790605651305086162550607673200679607668041222096770114196512376511348509020976619317332282234030866422844382236495012482350485137394148875445078356367990014988728945035683164747218700327310215381307555365280671442664940935122485646608668068229851348246193269068417029674728093900239927622631179448731027760593492995708574171052532407000511848468960801421595872425888717301226399529461004345339321965142944539728721735085599900230536723317278213802214071561033002077384357289348711364509226836703478361656241942368220652814799330476665629319690412145902871174067203664322459821977522289120394216779267186187758153423430858860255188587579833862330472017853156131565975659398317220446973515027132982926800511160314254185373630220119954744535704376097564581306203026948699791733771214319610861012823572885856582152908754601937854952233074613643706156923865032898938437489615362436852970260237104024083814411326704259901670472924371645941261014066305042214485229860312350515022233777073290920762565617544362019664463929886519626826677106847908599668154933852026395205337222164065000355369320797652418695214236112916717601745540458992716647492188580501612481587368440878098771699000194126270108075970893215732291688686732312702164154948455501975652598384084646689530828824910362908540090936097428168415763717928642285753734506521590937071912921999730614599949509686106207575131327731745125988753245225453473355746961902999406552000140936657417512386138028697919949280283014078314099603166162098658601347898263910833034052137824627890462366631606036581195677865938872172227012419535211508155420236504230860225491753279344353181032005892284353277235233403083949328239499808696949574045746769338009754064831048833972446197093054747055283454794244345986732929487254112743487460363149549837364771065878731296581247159668489594851453474831242531457588961663186425623038606481103764959403486732180239214139514211333093618453128933235122687908760729178785355991292208520750838329061766309516186428887998079012636135768853678406133875789471334805612229905588709844735897519141753256808451654908297058000252228988564081031365606561935375852697540161071506620028322547244953605446425582173464669608284932022535796649972584466894083922239068184438877083357504026769235479145966066998145975037675369482768401617775335625152306859650402688953430915831940958575904324749924207651038158783535719663167605721851148504409269548989196269054942921446781174388779725981445541126645703680931833577570691028328304284551766470674409946455821094176930507261214310770483173323861603872023549917631468811679377661577516572161107985467742976728271312822755470340556800368826845398842577359106875573650346112657597037018806067805040574233507273720307341048535894350085968785708735188083111987632643162922474076012703391255673317753612290027074492982782273824349132624095039727113281135078011352849069288139641257053994301935028750545748342103635993032362280630548046908820742260247615014393588749233452590568326218692164307960157498999360052843985415996441034490352976149613540675973793920598040648661413159225469519628134042417097808711203348095164221125244394800212758071305352249447420576672789806877542148374792783885041340829176907009643988074944864909966284327577245825193429055139780074542398290179908986656269536302714847714722378900335043252780243279697935704192403454470306977493100300197452368289352652675747236999259579763835049960453504630657751409096266577600790159062736058381302440199778450332345431935363634302700695130435420915813062889780581127005862123152504025244903551041091275346860212655318519523970952563413932543194667077392590938609503738417111633491125654136225287884368229013195139778957514663955739659802126797480697238932557160617981300009771438779406898664255543912545555951856357627624189160092328744520610695495962597061053828789706904160731165013604959841291939879553846823075578011707351006560355939606335060055079524580892748128399299107871999771061018234287503583440393922877704848869485073188999017206347833055922120687953085212156110148306785274200008509088641260651349179432563793468911399054729757233293353075334359830081835580953115313994817212764709489093084342560284374741848283431539635901719005714203962118907263770233785979772136452579765343487005506980559300607809865620116201858406546693190631272799599370638918662321040188229326071685776703149737637745869196958508747949627262574586132235526050332624719296201727669768443547335253353644231133881423471628246993255076225186944663854052399872716005660387618714545244352296307538958489540575061713881325643037079270743562580958299555414978131646946693970823792514288854077053501680668743606858214884947623314384754477686078969217180145610841535014388934651277753830892309216481793985592414457915014929472316405704909777136186956457145527628425061780244223237657994997287325118502620604817758249917518464795943850622094634296576528628529613573488953735798953952917047063333083921444790723349411051768530884736910414319119013946540204747642928554724090735425665177977211140473796402705315397848743160601109520982182319188321115268167888892225469314343219625586884317799413892015016637874990247713844398429205034800375779000690363515847256584250822835318722522123156043702748644048247595511123393245462040208184862478391647864124488574028693678738107655536612955209011001996370890515366728844452103355115001727833559841341066344899472081120633260332913260828644095570665450951146054724373857323474621964605780009399940071207650056626952722096280828604441488537028064999447196242929706922938970982666716719871109602332501812889538817524426645188342329256795787217887381346364608682877931154725568827198282456758832151284880729721259471288588760701696677247255419304273840084924856431791124127009165493424413478870228343930918460239519330220742714738563216572685433634963435293463834874113235952163423054175568129819777078933284944471945626244602185489542093544735114922458737263045364935863329090513039514725063300657049979235606223994375862599503647296041962492368424648102427843650334268342590384818904985782331707542989369264887044904667866516499388643139047633505654142457938106920151241222771206967059063335749317572216666121017558151459674223027625399793079553124470249556349041869364387987586434949275231533756743217404128931467798550266520452427677599602622300040134271606157402194656694509617317967787403399902226466026922965236709268689120639275956561134653857831839998603476965120005602016463063329126503072949761709633521575755783987386535586235610130064010421211610547689705118797494690456604226478581612782461312904701973288824638608310058955846430420054369068287029524945990996787356089136902520370570863041567012238615867812630514298832981657779910826539709707915742332893539743331770227832302839908445836309624205548663546524992412443628370729733650677548214499241505256916338262236539225378199460049666181934692612723195698756930133705717419400839515948800434691204199674805654198623657351770446558847341354391120529384297697487266087113384301134157519351378344565435665435754548102601339928290088419190787693364972731848616602068991338724580018878923665086817699927985548724535713622812616318301434341680311417445668305362537211819439411089045997285339536719988882966474723992727227958282201635782660211436028458770779394795898419852610512678546256083481625290041530441400349107999551696523699809584902653503020353835732102559174033437267025260442606493283068789558080969039514343250817388349921244068613301443120451299352524199021348849644719279891869980162183602991509934100718574202713521027532561337180461962629472809261542080605987218145610086837172640747912243770629490872097308513763413184607498139235982509552674803886460126467785856387986094721594298386381056975024405817532689914181212636656935609837549929791558070728578874989498031735906689174945197366015403046719684050799684772454554822349913174350001692689121539463216846029386157971117889938241360624754948868279373198247541532321809125409775722171871478454013522560430432465039606183962876543274811445903983336069350816162057823923144590453157515956845675751451057486797951827723488140380840512625725102856979563637026858700655362018031065796239317259664883267113383991171094443536716590318242978686022050112414651261965944380333619502185515686193543303620381611416916704028704279049438505253604901507262467051290952160177383487886135546971320352006479728167237613594113219380299923580169467268373190740431362085298847042541610153071828812029274184994935920308947305335032261292213988105213106438468256306947837980608153004283362729873287771764886922530262164971483609724418204324451465689829233336364070803233688374169116743036918618746668099497235622608511514801517948829991704840929602987296302725497358380046849470023357119646503504715905771855050566670506354469931547621108874339979557352724897403272039517346461847864002582039169067377414680859204118959073456126090278721008756455037728642442780769137986848658471115684385678319578770232070425782039423661536090304836644139387511889640992632019217297119019214402796288995082524801651831562067154089986822001704783209539908954180765877804184037669348823703017605155246982097767983558242888036918824459056370911830219826787544484051174971917714943243256034069729084839392704579009082452014226221438676348812922883103617036608317069034025742918350461035537632095335452888478076301803720325369885925566577523511725647897834417468406401182732072353186040897531948722432396367004917348483495167939865644016210200892824227402370833667393908342282543237046754758176488917201393387055571430398286757838278164660564216524207750963341652538975041598393190704755238089186160303900488248046151054042862900919461180218361241288033225510896780449937967521497505564439802202322165141758287413782698390102393100044431212209277437333173813328873854618723335004639473166613978036486642120787703562978090537037695935609526025417903963462917143439200533982896968573117788728254913653760131349439399218377091269269103534439652196985339556946194526342261299107941778892828705651191723178107468028920365555002618252356558445615990074734220977098578276441039828801600219231635727307853180196734776145154980521720292731849403388167101901542568244854498261773013008820071137211398563529937541705130521502506808108701664735670903036499509900613109409071745825277772817713391055093132450942872427580263952349393018822565409000655333896824714355363283674522900315328061393581180291506416364320016089958239521432338827830509405944807996908779957647047387541375263766145203067301279849166930437671206070961003830152763661973154114684344125346762238416701830932093571901020442690015652906097256002200971250769662822111166777814536803832225148698007323669666546024442247266050724988585093826849011349243067910561961376392320280538077861679315941918925778647438812657230675184292468911529583667886050010309647217821251219375391177228285911810781962873074413370919131585761181464461289420441647320254773501189472728124099080185885891195541252599514804916728041736700633032026264645916447224449165084473039927618985799325630421621804199830377313517431745977710741815685229963360762776659252504793424857533993293813955099424020603490481049548495334917102434613658157295027464334290877631565147999980726664633136619258483825910502050011994937048203869471787209176171430831652155946451192237930342235763092213546534145182014631124879219997900880406443721308418491954492838400774474803000091044924954898294507877746875743246880803192502989670670494702313679292619585574843328937073470912213935780445905990130536723435592307563527239838108635644979619607339854769192925009149275015900084090107202836226096780292120368839293289229185168460347131775414760706119939761743831434898444812541153866310832210058873979995838709671249300113944496186523391591507694035679527051913082057069776462488747911079532684230148223675719121942410577932106787988081700630287914915437824532468917278950403555944756815795317589169860457107627391008028006981405884360811050953455811648820612592454176194304878796627476341861873845496280605986926090721740651934344729362713238104488696040739087661425876781317523618906294523938785144466700950005165248440732642248026578488179584755375110223012406839896426042930482662233745562203714909427851265061881426996953828021264877476439676290527462144746637104023864737121694578345906360354707320012119746159915003852072970379854587763897271190619279188760940448865957226745253055303938639517125665523818302534205942383363869143629722623236353255059972012219223634245264567702669988417622763553789281454419270782170970889148675468890743270953533704233442423587959139082415879235864353145901642726716309295521549079964133307374108175211792061877114414355793057124056951817321776779648257820223523446905045404368464776053823180843233531329895308604710675591198843463728331513312539008827177395154763546133850177782936988205916393845438531253225815511283953232389602756548696261103964610968352208929101499813937324200510739355120306167291236076857293892419527360929150668838568384908930816865477693807994913943689671654135330206121997865926291124552159398973755037294154821004427752312355059067511613527188020127590108945372101640756211711763822651664211972599567245088125559917065415017848418851523402929364240084599477040682579290693837478711043269340003021130414839517848420030515350951315535657068415330856133979236252515768113006301789202335567676922070302538183298904412225652883152169750165224881227363383549394831538493646421914688981811685388833704179314528053597428471244726538248140888068201545051761394087285574018517349984031127435594373968521698740843867774120647251787808454312167339638493296316722162163300796148300530940952322482505964738896169990585334095597102423847109162062597571262640055861206935938277179699961686257319472341976087914496128786088104216652172180865598978297935400854142289166745328648596242999834589944193711445080233337827185498035798013041808048453404095455801292633515846764187079917433277647195278408517370353505193954893710756618288213566484761611095319788896629834461071080333104737870283586224780362391555866494019716267419049479454210516231648093574881485626180121992038424268596565662169926712761796794127299741496427536387764192466838500597290272083642103695848007232471338341631412143014276212800794182927620712130011551966111528726886213146523926029884289696215241249902484476676216076630999323823435174258850119365002367281364526965722944527934024470744240076715971271037770596281769264926958389810018053176517141902376739057630192407914536591836313923002348299867514233879786264269970844714226191391525280742661980906495492960711302432819629103028090904730667359690174360555555811075931057785524189088108873049474194474819005515687380053556375411870553060807572816148571328847684395879849536188706945237253425277781219183107239859419628293808589991130294426613196422024138532149431484426194697953712256812098894363884118406672159499895395307781981438342727671846375877234619318580639666698492125364842890515945339531513596484389636664495325751718631933480787503805246339785872660347197915575898529583456254086807380715616549994233537249138099545251638025937690889947288980761006002577596490618519181350562380548849221942035346187410880839299481878209207959654473602804011478780797436761925373718829415748766206257215447703242642146997143546277917252678040588284023742965392595174993822032985217461674464423160067029905730593661257172730024718640194641644628315175391660862763305829192297429630314018127673649251065092064792576249546349852953447195204187680566461630249201610865811276052994638191270671119443858045336883244428526689036853508302406016900031520521779039420352283190303441255290557562427846365927883677831677599205742756878198492650606400969057787593266131730613370060202618750596975879804484390899895386712537671549787769663292506426759589908257042470539956770779311855890190424449449906110824875735932899801396209762506432741424069273213768842596639636501512449834494655411969300445339903963114030462137887393232363717324125658988958312603209425858037865334601941552057206576923503670230395999718615524796497623307023063652728604035638188658544883443574683301219570248599727978180328779127691657513915830789359436483597621107229074013800143357597629784474913388998826044848765347828476259262628370711670206802693820028506231239235603161649622390133746807496822971909703134666937626788015723946486883872995083375468083408318009984832402813697386377257948779326174923252892233696041531521912611362430828267715657873741808286414965643256307268229745793812612010709863308718480698252440356790371781900659590412900361462621809594791425893880648778158609702647875994806793260736920257768831509279209778789533425818943874392415355111051073735190102467845008405652370550473785543556005713302192056431295212036083385482930289899234094994119101258313755760538332791024009496082867723234584238015097644208194931225020873491735505968121030101190028534791308648591387280907709472335750871492280594955090488162954515504693787446178942756610578215512676960698065447543822609565977042900029410800110748332510958248919031581055801653750475503538543127607737421678251447331176986198060133597275922832484960537766524162926307775874039666464108794373024297272111626685203902167651320787982439949269062352359447152530754737322002077790295357432746667991634904105916492410235281115186069173847041432209744732221564544230250403606823020977605417640783670996334224571521013533321905011197479489812164998553660517309172360315056170912664392898636571761236722986898626232882799077442838075345003118028108781854508613886303991452953616258737684912523143457339453654979277188680825570428083773864309150946622356197213940003163527930472905590965038934476689376477928739249693370346056321045150614865244448985239499225433919505439909651167855678921347258866610508636010288511851978758414596679142547896070719421156276529426564148090101572270741492134796369625809285963386318321316694435077166171202802817820086410152695902269838720669597990496359348951525041932503900747393551794233516352457251975046287553219090546409248068924622916587645356036723311934044092050088270244307295048340913017671637090991362039369913744858213646786447989707238643955332239548321924400328488406411936286784737034044916201289531734312988114887674533664266351319860088787367353251300354750546683696717883348123850760166609571447930206901544334703679166485642145135884858826929384465694564478764006415707300630410509581304449524471584080641517935829451895318138654941728313346702343191103559183978661196872689574742195142554321196776187033963251433401160995526774266870519323978222171506548245694461176489888423066057818053006760363472587849566263429074754689417249015091167367448214932925590337950412655411497067617126858698317210356861880659207846555981722884070198656468654442390483748698901938244573259550359097969225925047367864647774385197657844051096272476719444507714616543452579560142335005789866912601876270829231438399328066586807372328020751720116062553454930882170625514229304438174457256985496748823582206795181854088650319029632016979041098921145018007840950316364782467647848511491367431863500650149345855811449286942058156114533689252482282517358477819614794410683022143901326251737618429241620345847400970613288037739913164629395148024433392337833526921814945192397677242661895478951465381180805882391840908682545637428516288572234419523873754267753557621819178262039926250936797466258794849596628337098119149601378186864199943866115305318312483569895001516121332992662900308633631780577333992368138712957026950264708483936100315682009388142909648929623798098436818485246973669078544794750163826566912817914184825126370082923626057587056600983570776227780422162520338938033651255447996106948213499644023357402116144430247780164275475014989646680045492309219056632299856617345825877173827104540707935954347482178211002018490642591584613404160767909286753655152173943780652702408335778976519570596608017919104412898736615757390321882610208412438181208668102722295207531309529371499460266399097089897730328510025135457891918480322295243490372904194871951678278661880865080694215950424707954315807342392063581794845224452851561511537459628889189132069910711808314594197813139805999731326508930968556132753270079948314031885554586933407755252739329457966178639096605144818780444821862004106330111844034151012704667721880569098606715935022360345581876735280467473688531924986790539659305677383219587738525399279361141734367394161428387964186041223578608566525572873544083476652159169488261502763106032323982040814872552246970234503392115043798034788949652425758071105142798991252505561222160825641560954938147372832727712875683285568847885449523143714402690973999643055964677999344027307385191828510908939568537578610765656140235156606761905762336230277278278423799050654062518822731154609590911335479478302240473991884271550688238922326694925731178998274236001001462417322554059643496793373358889080325636043295195052150678322836213274995638662005947158810447159313258370624177941565528006378997075254709037645830116901025670696188253792328412818009243215077834299346755168988449830632562545031143511497510963359486594549341586520864951641463406598870943753520143594477778214163453042965848458340629913131738985604164955185157667012285422683278758960176399730947461549154098947098619075073432222858095731253915381859636387451975053510921798060968709237688270060107950033474635919403612760267941445850145717643896325487782574488955620184052040115964552664670700373297682800980469625894631340852736560164804303545726033042929036327517361527122736431131922691123735562267363186541252684186102977022748626889816024393709331364704991074986347878133989872253153958000289792004137147134065573154490162109043678508340051024225448670463638851587040410674929973648824939418255129034420325057711947938199887687217734298280580581049413595924333490438400763612271993330813874422356592486388571542430954917919173332850352303846456615538825988857140392467272637034217679180858205025162044012317893793365946032069595439555916409958868525552750835919588321928046331323259746303517537703412101504055455595928150404779556548554071445151207950889885818457505654637005216121127765672965106873092780515399326041347703754853019822152190276507073873205070207747708376159570372551996192021595993154021516900165234114986008122041235507801370229732369130167377545939225276646971193399333321981913353111381390848793585246208830179347629582538683808807154209994003308555083179735828727482342502227031019087984922546802324354914130323915276363438540866939106825904401386938323357369512684700272338984594786137318344836515317992623509222541529792646825194577881981243296573940302273984114214649252296425087529170140861549851261440925622496158292903675754970148662386027031598986333623077266441178601650936186136899570087425848888837778882431048590930284122639640911421498776405449930600342118039637238582136097894290871925229460675075223987917818959316254975798052782873992501231120756462224509298429765121483491959711394142446890867015528445220979827142209578230645148364444553086602870932073710893424612661504686539494950793428964060113402654446981176413628242799768168969662433348036063187510007902432521417090384190772560597709386737416405225563204515578592871241392574155094568545827756041735644574650097713475084978501353425793275485949117610685770595430276951588718761633587152536037085396725791346409004713456857603929575037456969226024175380390891542159025682137133361175054818555281141897915688395056365204920607352836705089961599607805182667079790409035804260112624502741417631158999143910514274092884453949962616526599717531119953768467970564257763526134504809872832021256963592698608007485079052131628151639478760624185709958813806444125569998578736585277731086646924547964746707121289192157362121896795593082207383211450778610477253595112311523997740798332600344221290957959066250323386903314019769885529150495991498881606757998235401383614943977534298956625730224575820839774181069856538170306847671009855747187389637363332175070244716887855802356514435566027208648278425149985078628926097599048877297157552274194164630086339073744015275021328863425643074260289530171317449989858939231381433457532418931087558570811911455623519272503904172424166122975193193328834491140827112827389007277712973764769673481218814237854322777333838624265314070874220780580283451888192837703700353957845227591324934194599286011243669827288058870532708767196426259870717523751798939504792020345113822652350305011629819848071521600547155789111348026312600764723890157311084331574737265754132437217182519253691354913076300623894954873525479316054621007660681546683112258242505078649076656928721674460820089272144699308043481024982190163061931207522491910686286985349564790323694460254939670353803065619841158379652729787218318027931615287343902207745143642466248581555398644197270586942262231659807538647281592213406770310634018925032020617481812010487276134762000097161360447351067584088549026363740984947814041425207367307236796558187201775580740877661224515146173806132554087368980548483422140290643604649451977850027798594394203667993152494891241445526065610950122767935356601987715563321616502902274905323338130624060269977735604800490906430158181995969086450860975351449276157968293851662046059934965147947267570032431525946742965718519318633347797166936565960324547019077558039360907359818188544839345561779853026277927009068992610995159245835173940519436816057579740198367433109050439136303003034705927909615016724222360914407263957634528346645715970684516668835929573678316558704012911974483752463023358106266178312609900293986122512879971976222541117829316965797209442742125772276025961200184968463700162503259598392206027675650189092727416315879395586707723764334127611927683340398143744524650148365196879630550787435750716356006554566533584695606647751806772612022103416992483126659027387087591675486055481137361900044222307843352940704929874341847612847489314757789919431001925648207057282229982580322617538968578023681163355553326745295243392297596486721343953564403695017892839979299634961810583306613565501571842958664424911692999707193599693459610820214551927314195664893330610229110670020174215170986627629032768731380922100891259951549827256934495859782233282113309325277204344716105205774640074272824857960305714025056511829368548189890158936656974208837286871272774237369522371373409621206694528074145935959161099224574972344037016365471096606128524169674630315962255549254644557067519520012780566247825273423391592713545534272192224832637046729951443966623283673214129600548388806576772785184665920753963960972436407976155769763028478982956743735641795929213381432010490387523132783089231636557879001001369104905859608734166075272595367868288411803560672388750173502153601353923268444233409981857390652218584954083273667466557680240357481364632788552785463456831121759656886514687493789298764632535382906195822655567233143898816175065781083443692290305476078342851322803395375356845288399221348208031252442786202543764090591638255143946761255938447815209183311386427292319681293599579140486066153829143209322063150359195084719035189699466943031968551165473185064697364384398637300886249379421041677864601736320174355722324971180929524484691540761938558615329812708865839739338129095480772765483559688790518526636568651388699512763528922380867895589574340229582293576967970635744475469927338605217920335081133703062119895539842414845296818799400538671234191767070959943359409397487826689869220218408710179742632077248856669614006958434232842228674156674725586691095387120328329616619275392305557985126246035204164292874133342717400669903580718610531271317254923243591472585672173613948246623435503668942217463011248513320524102847365862421768097786231956083393037425242013278778356037959240687931551520408512836413793577086861567103564422550649067262106559617179259466276487508825636209670729099076687429901982084246924683188641780073135177649653566026375732562554175458692216937089542538483673496008206788376446168501963280812329164749509903718490891597438418001546400617993772101763222697042347164207517571297252679049522652043526682946603575228296942827594788067127781807594247213499267690204814875207345979582939589055344281900878686529271835716447178567548327891465916784392992933743192469168109878078675258642246248073534470458071149892673275663519518001501391397943845577436057718503051125214221360085977646738710729671271067849605424450240106491087091331597490944880703226431179472448977454958009083963032486340106246738562200411638556649493733294545997395413527155553869966021678642825256905983115303927494531341303640777958150445568955725352998468455649790906160070389252632162865548731409309292674237899865607177516755605254177760386471148690104350850624489861837491023457359033483827801884311386528547691009796905661307238973383200812420924413591978277584774870312836899370192803840569913547996825610738808670051541468512384530133429531076661193162190600348824879919520420126349786672093600548269156005209080164933419010598129564144969441314947426535678236960762697577717785946178120022406333680822155693936456061028321141001108966270390323864753404409785246200303981614487497861367950934816313345585471598857050113005708368646783445204083946704833108556267398513283355794983133457412711519876584541441425315217467184732242028793060165866377910207146877450981962964135995473586012901592513223447179291557427282085764241511458287047842908257733935393607267396592957061032402224875135210682425736234477992003422186689787552933991642871221154272848534544341671878250969038538928334891957116798000176632956996970891752525562846626618435063852754181177922037057161223616891966452457477245058920992631443337601473352440025043285010122569923437953817846033104089735813298272001777976337234019316518552496526543115878431850293391456811881251627553092755088790687127666826816606110907193917495330302534366601183938535565370191208251853525993806151737986612690370303867784723287563081620526243922698958200504069903993288756747302818642724102974914946601106429192360696547343629356081368332577031738305363269728212857036266436408030969454238914630691906669624891444120942388502332789400321436408182008070917694937535120629817792970757663306047115829866962882955815811233826338315450494961589569318072525518036949451701169792629336451711661312363180395003488910554214663621292866819832335423815351637851642093027570411882027437749076340242303481351611198766612764629373256678240379004242641522869418759348269546980781488540426504358194100963055765496198114792350792204970337354170781515450591371670951969549544947297493032114117727187905579202136878941105167712689371699727236824738365114381682204512971139721421640163348580627934181047154420700902482057726265796652673174387920677737107161908390538731831562510750352367948300524640858111833615975208741726338533917170880292071923722544288586632097846195416605676621131507132525158982209562283989350665868923257787865678038758184604995533472034829995077176313497477061810216405149902776085498990485528079608479086748428305073213752915286471667812164271158158277602375153579451437088170564751278939221919079964804013727776575040275531529177083825523942375087687350765097918823379507922001555999578438551706551602430298584437242099682353865904921197159165458434835837253570288510170752821469803612278849027173992606415709817133658409863980400282738995057080351779442699235014740640634014965706335108064690474304404859037892583633964196797137198616718887135809646780699046090129273959829629834239539597588776734074874288100542554104229881180767121204870554585420439938343097739304693898788761176217432578014074578158912472312887367253073889119367930308568787031960252848985558095579758842611074003300709293366114879287853168556894842644274786922268841341735653542531993822220731484061201231098631906927420146437519719544849243061473769139269735772288905446735218586559223488467614568429922473817822818456109249986495171353538348109922678452617207306007346940064830433399852627543648605446287546127881422585726084856119258187768817539928827920558431306326295192266008598804483582397418028190731977661570966315318924313236995472449003326018243171883007263268316021897774513100271103989988183940533192199522225565518673715137436173629081287038377446997529937745870384362941271561413085384493442423696010791172690702226260226656430863394352709936422399354852754339877887843003279865640430627410930588156035468624545522894317557372439454792417822584627212646674617432339143553143366814269490267977860634721959883974410594968882127401766791263925985571570469625906258383057326796263030048630552626492292329927554677405717199224264726093897147828263711002135956422064710732723283276240306375525041969585968401498191057927746348338725316045702738090413993586339569383220405402986811551481168431531952853213538726834165965669024392665926397272594463692549286838276278135703585975721302580469527740505527378235575769237360083285049687083213547573532148024912035098311169323811702684810871902428448252514002212145407814705595403315823600375585860276533708388192172999854082605566237263229943573286395820585211012627444346784289996132090719160046044032350811597722291751481372143999361062453543833970790322483769041582677462753474589220657787670681649997745647731458371312697795995591788331846488285008020226350970103420245271866393856425618156538703248196079156894917282592531685776329329854825417879235351418221527162780500268452435485935616345815739822725798514389841049927336552445104865901025758505467892679961856343163457913297117282712542395464342198294416754322215917649078783797333313317464716888012326052110268278691378151733201732300531207561307320707330335439730383494753005315091556999073626893818749946123648709500515093371876719090420383976747026622246220714611121666771500594094720044853328785776365385349868669432069696173631372930171532798453064785821710064747177450325941569531070006015537066165711810459475421250911285794504153291566497725134516103496807770189335175404204587756868084286775445246588696856031082783553514035360981996671568004301898698381318778050280463837176646015054398488749659714756877939875332400856367743526364287959156257431602540497668907052304322101112414487775000922936018261262375849828770417713897562674331695978406244604797702983936494284910520306074204317173479378386110383631167446062521889437490570779680671246228318493068195846595351646557259587292174276682487243960968015560095003848889675823085833632364059216701161673438553077506312895856409380455822231347891811732289568374363736766054480885959098483616344203115581802946577076629340744415740124342648580228610477702614955848999728190689870535869507480548095244190662188283553698354651587826483287828880473141443465724201774020554588148989639350654954072685238236180690086609672852784141647348269322335730257167705206422349235872589835057555441157365257805187096000030134010829781288657668249864165360551266632322606324510952202748040982521549934675022653293889520132352220934279412596236375315568818534140146882940210331515649804983783411208181705609635826137849277267710653152957037011659446007493348735107692148434410500925820881932605532488168749163650442490490596348986849591483582368885755656417799564916507258156112437700205072100365808195113455871223714338114795289122518133859693389232202239267176914864896832503667804915187151974790672678673877847134642533228594018486042623028197753841424454197639269948942705883598619470723249226042399151183816833350244164211361753425569822951767311411706009950138070235932075840440564719114406622000309423476407208400365038363781484636438679722254738418318954906371564899705583380039524810313665727300704239847167477118588103340736433734115752165089672552304433845560056961126457086502778402415013472844529269716640889467907241957352347090806203627911953177093188897578854870180576522441842311565587992922507598824678186189761487489806485045562118294939292718832968689161380790925976999137647760413532384406228156953453284075912117528323191343389362698929713924921801391403137875929592428903095335576918865672033525193310161362050046323764887349347291562147594179538469865685209559172966400664340405936688701217362561197410834993377200320057507824750467058129882774773758425415637364528791407423408368962084759806325987783004005382398044357231813071207157517383922236193981712926950236392084702369779248361267320455317981097233625734652471617155547421557052422375764092465956130135721781269469475505446456894976131578775275652430676822805457482611749811301545833786248117283526755208370785740836168046304687431929796643334706970241610851505809403426251112446440892223965969596978439204340388078953529455287530147053610002871543021837289078403486467988407757441253015330198420357432112224982477277582754360176562480143931943678331674800972243677869631669462455637927150602097088419218744162326378915451472363348567473179569995804945203240285389829765409938292463244905366469588729812194633590472971388541723587937411935526650444560097419201986994739509627798498801065648881576603550072697990181796576484880059558837524225679935220573826052186020181123409803713431051228020060854637272307974770649435229310235118960897842919158140193700841415530354581009514059749390231231078690669891735062051131774277692321679810663626387295183001848688055625981760328474397744116922016690895180717698691408768967611687478656431937041439522291064636863426295968516547196466705004722179368199497502700226681987385629753825334700734789538049291264985905538391326331284110888210394818164150184711844509459597359541266460966686242667288319590873562448883225345690968783912964787911276154160786945561766905253765557333277437628517675376575244212344190663949466559706859933029418344531105178178087025001707375676287085360188354987940842453377541402351997875970025300455993199169281912329540189628416551426944586831162078465573748127298574567999686280345724587940832470570464212029322029109124574670037158752012966097882661547911745049413310654623164500562462856011256493969790363556216722875545141838388518579443252571702410563200438240769906453938663706937808975416922895257799039456971205488266294167069929399098775582123533945441050444099571970039869521544508126637027131117125414098276814778328570579732908276334352074106703496956298901736606163479978068033545559804939666178500119510820404793258168199245469975158645236909649189200131560838145881264866450555074932161297063535885153785020272040423939289604956141838616686550982504387565973928680137995889444234559338021261697565604312571700565839936683430985455723535302308794886472030856591254765106313562072523416526570664656816404781015083015325921227087127210374608186038070096945292226001309247809284916131129752703580062926545340171329439683364267766425586204188740066003020877871309387748941225893496831883460436649439010529575456283655552558712284235596246411294309812336673399616908404872621005548784244337771419898423371353607108205054341852931014811563520293053009837700702516672044795581613382946512503016588184857467972663567546366164386607922537200205344738458661838039545999307188966007604359241800681864286512768003039499258449213515154988730845639841246793990101950890086411974025017876049825264428416445564879383514698624007612465892712713108192877897503771846227164792128546233575127665423698125481424555388047830070756971231498120924343171658012255983160882816105274292222641353710734061423914503999232418133088051289872838199441093092996217604867950163579647322355760908487103204454281531255744363904332354609321554415539435193932840823175752078267662723141523083187828024675234670121621613324138694034237690842061338577655594188258265554233106015380081628168380359546650844675655222233943927630266527158386143471039871721716893521028200438740933652069716522539088423142581886391532133909129094233204885475003645986209896585188366838663516986051950258866377608302247565943641066179365524967056799807914210666017713575345160370003636738580016347029346107411655986348440450932955757114006245372558250929753764528952965801690837696758029150645151531062922188538827430622987364947726638115789666474444507105889536012577495375991698356011661517303842748888921968732158759100422045358742793338924810107723513297258478880336351034514156160485184024060478135897073414911968194099904323889260937836779116309823325423425612243184334140649584694934539022412637362581012713456609182613796714208821557937759053872805742932340454774346658477020994010107438545058766748098801614915046187419166314511544028006070207283098579634778151792640042115313290861112419511433283813905280115033209186186040765183951578180290169028219754960793184730595904622714263538409107499985050909916360753033958975777830420038271917268874680430645321353171571741020269677561460342161017922690746382885575838923175912721118226551562732243116561716121965832529216173817315895317099007796082292372719286352037306674706474510519431667476259541530229358408516775396050892205168341146407659867989592663027618246148916438528621427755786585323518191838842246899291234898214539057749184329266599110296634354215045596181132686643174309163198905836289751221207984725126214619526258080719571693859023456454420132793115806788173883718338487054037010178898068628753243326951495231650034715744867391366135157916413035731726055410943096170832618588077644335823056738280278696349563703511197804377475065101141503611430934068871582027453876033988194505468152941184592094089386192441217630932507992582162531077862225821405600277827301206889714714632320915661014996719222178472072409682287922385616588488095017652777876842099519372077025858050588757459282822274005720902431186043937165002976912744059329451508769146931755176246470641633841775715330736126154675553108030372466226388697893221245551375745909860486620496083312429533784063314335015867017445913298874911849847044699427386432952288305616777953955385675026240291786910219624284423016512817770137208830646945933966411453822412045252329363616206150785905640879021383719748100902173045452737912168758582879379743776265340336665947807354822250531536959573026293604588253698582367732577277868732228250858779304722043038010039346528580214036218639627889539524303512190509391589649315870393097875718216235698430393576706896685627969864591138945003394718187598407429573131587120711758715860306024524041821407589743279451076450873974874833729041235196179078869536226165270188832307309927967543985278273677350263690656819580310375901780372308753337961301271343114734422569567316049632859197534465141487073325979481278308310325264352200531888829716074104432269096352225717750587018614374712270027071939046566530033169495842248574597536372907721832196908297988280375800738151919998805944163842510533732052293764513776830352522580691567231484113928295864173737648357464663813056338056280694640705539703419068444829853710477010654764171189452624402232172508947838587301663734273366548437719455173033404505815315617927720017271230473255532897926553068057679564202297817284959525742343280923371747917725147767004001316543214378973125904456881781603651927116605115173902863686259562665022015513873362417701804821595026826257220221732312825475533981650259704856267197933724499358970449494086747073048521747368580843286045017200406458937285794291776143306913430371500958893772556218434387266787512424364102662573154828016127592311595999895089508223301688502534306216521385353399974449237984828223278481076062901386375937069823344435897343675919990151269191800683890600353953433231134175822133477252958501060384785709657212575303685024189124282486718513882567057587732892698860186521420784022844331258524386272593106433443361185960688488646031274855266054165547658184391586166407739419121818130603563119299667316679213351299836150995906251266274931855787664136047293984412564236037958331766230081193703020151418463908867705714913441310699918913915038535854748264838253712872557417382590965386601254903110191564746973557628127220690556824387720415220291405785877096874701854925883222844651907108797716423189062277305427979616963832482209734251374593088402940357644306421304779125777441256737421555419528497987810560092649011830901121113976718062202873805251116341442058378016043480840494088271740706500307183932613780030606057457196905492915641791939791477569588274280547275201070471145531976667616228545519159017177270230153348223479426502563954300409457310964194246609320853097243207191556597498873608346297615542407386961531448658854878176457377565757226278478186352676151150255351154583560448402412723666625884535510820119027142763050001930311259686866604494870546616029236325314020016710375904560660077410819017296667942605657312883308078265481918680083661417203848926464386622660883222570018498901999174959079470361856212421555863000516017640536873522273693863544984112303486630437639669727534937855046317935240197131546178347658400562979439884632859651038430984035070666952495685134853503927873960951516171522184531115526878915518798832156945504296565469100359792273968674119580833530964374059523671206415042066303579591530871183272464405795429240199168518837228036091838537967160299880031869752062529334701878869294730818392251740614333448859515104468884153423488803454681043532601436193517231291594909104604813567801070153473935920746861020699786733703366104117833733610709564495065328577878693305153662511876042386738566566922219203128765092295166345197265069334629327144208923845995767594268435021030025403352947420544287881244577098562904140686529064191815977947045645205304317674461896912497198723564100872714313554677000228548926371837624200334911096857494807064447555448451295589337715102401784227716361908692652798135751571141582967192358098445070095035860613535120920259164067717047736545150124862907629767397395002445425133072109669755165042210374917030219447400265560344520417307859257297907516209523880002314845719487660033569738423395671183778760473746853636571675865386483696922495825627260507190244146754027155854514344722169079552879099411088154438484043299737946029875297428920608540562356815706572791524914166814775954357319233668130910534048528789293092717007913840303421668208510033116774447990655401645161548218771369453975926604305653837703523872258126815848244261947621993897877723877171926652006668171618922378743812815484947056939534213150469714331657720967676154102503398728086402331082982497137715266040878680555905774215770367549997151774332158013134606160666046195264195822739919243207101343760638845332790827458729442946540754483677025072241189031119295596178437811461501676908733344404765142899156387588498863217273087842306696222076088610716109281679189580111349043359239160838942665979642565830668293899929332349591983581285152785885827008616727278962934229713210290406882961619983683406776986385754530347405811232728461231028835938657597271703663557550923164645446613413523508476518560717864435051664320967689595642970330350129231750879657994751985611785497427030312132792594447522678060178176128891129294374320393405989900074091844321590554198204983569234988831788347828471222136548203343950069307205548235806788349166269338591098996400403676186801931801512880703160596907177998507698685768561527529916474771626700925468476377299368849470210360070281254870874222340857111747589006916262793496533791312735640917539669764908642967147457157434385650968388059612810221094095693508308816408835710077158623569631966207908691861928325512408555974505612296353801468441044266375367421175475983357546438254580863362683566920126660797228893286650835023438593911260442207182044938599896798698953718173862758226420290049926718377926602202357085530379806651521859009163397275290465874728579909575220400464184314909110314539879655204554398668070290844435206357809191055117639916389371209077984835792087179636048245147201305610431476633905237523892171625178441336494928736867668074097966974369119840363761063431373388989399389386005289867773708729148022301151046535609955738523797870088674888331833454109199640358534770662146214710211549441336334415245399249972143214590038105778924166522414906525469285022397402447461603583279989167215224175013454358450756032170914416459678649474527833413351045444200728896560385596039750344856428373861965570569323894515082888543869475189431292901608663026634636228042973486039429045798277986220694912126621273014834090478700975490317765016431476829385413246446791468962947860263273058127098711807714329808614327802820619778765093006237899636762794037298171799995744091819750833652102287092817454072047806675101491747255161536772788715182764749457810127970970037858673932164602904483225116780674483029348337165078555814723463418920192298002056015359928746433866060246628614420423663001626308050262616429232858532830925140544331077615024371832353868525890208975088990830677191891359851215851421227207926136110208863520520609156655216593258970079187857366979625644135382913887024798749890864450644499203844025180095648041251201909267340582031900456132515607056918297297080433430038427523236551459813970804474128026871621133446210274765805514651188612619347638340756127561532590444639640888906262197493519139170445397388794426712905793656918268231575534969765108180220886337374690696414269881471482738897770575641613897057691590545624811042840278827000787598030788167238327956222518624945282909586510273654289181613902526999329354635629832306024264812551305967143254693667661417530534501568091812197737065246608729526517625541681773229093637330817795774574404589331530217389536300829479161759843262821907398763940295860406208470723439022931761005736596469089863665208341160811837419690720491999503596875934789162166918082752999858381007971139515372282108530495238668583434671573508404978201033838232184380175919177334521516094820968223106438640248307850058252647476872202057730344893495936700117930345352706562146175365492842860775041869470795561674835916913275925257118996339177320952015955373181941414478568586270265817631973959498023866289435376956523243586507850939080203133540831298205783382451483179779753657669644334395491469992994574660489128041251648394248030961228854424961145951115181879211869477573529053102690916873845139018767213589929998919038861937265225122001734713199269072385093997537871293266847630975620706985958054282554417870095775497043007623344049173814633145226039322929117384078699730156104771913024852943413105647805016299032253972685500933591151615534999193908250589151295432354935380976140059977770329497765927482407527013994137892631576086182196200083861922224559443076485534523027665073765204150559970783575144294860185490054622417622779326257439811226798948492862075226572555041952367682805901439960822703100439433866553887124529888754444601323318607405029694417814360303401181483551172669760055683228347986016416300035661609878016197625976281907559789144520425212539997604385796209313895634405673138023760087954378686022635698202510330324398006485553288766084861645562193448575687324596098852826354251648416559867226540763269662731156832545476735716934667343146416678042030003983602832943619307174351538110436226590378705917670133159840839030690471734943936949082614238246924054865890825686150923256057644772772997329179210547158191270183715289356389544951607971375490867323502492096514890688592662200598741589859393958987473761166433013213411411254729386314747433680148033094499623158761596515034158033805279134660172665567701945134158066357994718272510382153028106589265656964060851483257308903147109118241243415270014962200182496627897455792758831325440082100819445476943433782843296586207645936074302801779038066583371453032341572611969597600183213750410031647607627335849812003234880150923365014137957821252793987305180013029351205671246666573194556740848592586278907043227544747063832644477040743221985328227642673296337796428282938080574231968464287116230582802368531310271411482256134001805727415359257501646182903750664517289650928455531909128850806003671711729938296796027908218741744443962279543661828093435419489257102241964192054905728604717348024384851919205308038190717516630257619194182336242921412635743687811656328664285644549040650034353797395865851365239824937370927461579476977453514854599939252806687488111235082201458508612549360201592055618698250721954293325284926660045590145629418409630855557265562414660755356759627743403599290959183159509485657757519758252447898372530705945118394485281376007289958921972153263529199658175755251579543471237302287768308442170486243248408453718399597486866590792345182865452823219900294731626015635427623154970274633898227952054304833768011120507026276675942982679295108979950380364330030265792279783279827398369516495984383396353406111206722436708439234690272292019870865667888856381816097416103475386130345411201123813667300531739853020637100568699688136127190453649057903824647755600819571707111716585535911367399686681213970857604425565199120381000155506734119375864834718788648231261836327382643952701088378105080930581738866230278483934794030606738039810203771626053612985222399681272473988263492291609288737787912405317975016533354210254889634983323070221122933551365827017282208557643905657144314380616722200107332522010687729356186310569738689317865692872075170898396305880441065810134115080004370560936130691968959182589137877386683379885929198556415030705003269161230515547712007642866022336187241448778013668411396926894595519314134710192486182009755716445082580628130263573877354691077623471503207889971491774242699051417430093797345402379385278115185914657791476508983171802735382057759537037638503666363908551066126155921403721108630906708530403329390311750655752089794362222468152320688345411343683444190755073214975701580677463499028207819950037553303132731866177174923021958478275772004128593424632592957075702675703590627425796871039689544334397869537120537118985573046659939196243304366260014115105800090589912877305983109251937119624634406695501379215199094155081151670395665503387593326918658195124484242388630518429226609539335426237326170902427116821074522885118823209418506243856383380624444882406709424104951248369536213027592675420539303042023717190499055480643459662230366859555673528147841370776218370096918439345141780435401457242074322694227445191471922294083887851001231467628796552258650476156288644594259815027808303502239916493809296099003222138764183115406021566407454935117615962159643302105937824280339550630579372639461746691977564901518060895109217737748918091576437785237790948846291688420026228468283894714882799512607683864708375173074451592011032228303890322495151107978608244733687341903413040795344732813423386500262351217804876322973212012714090685552679669362809685053440036701594770407181955385787209915731536218603912602301271922052543529556139026419852717511247097151572258934287623111647585780830200115633072691919832756309528250981661408226527937456733783713844528288323128787527611955625497878926408849948769676287965128416949215209664043044373908794020486116989206043683125031799145623597529645885715041130381628780532020084197053225528818976097717911957752516063445609115951533565133115444372219257321301607713033426545862868346347506678132892928624191960613400971211318721367940159244461053881041445285188493648343154188286273951180940693401056409939533253345714359087507914350566789411699651096095533093994422228218953870622400245543017526376199228724515170738505050740361810154988807409650377054342468870610342118852332008851514034366597111818240124267519086145292628981353084447534754673135182314783898265769814798751779655934356452641474483481400760033337907371602315056896850338482212657521819685409516791885090754539534645709877373123972695480584173441228101304597579500783193457603655336533250731537303422465672359679718259948916423997608184081751749238555240298200676442422270736901996749031929568911304682535504659651662406268884848305641120795617214579407956196198456647934643287619344703299527758342469981653553004217782103428675542671854367553856254037449293892361129403539289882285598079358278051215203699486510432079491639983703471916881430879277993573225991705278324588469104627239565355913202618109907382596249819181873172431666899928847889267891278501067968916065841790215597734743341074924782213628559415966350098155245300624619775614792217986066620897015362035571532162993052020431322238052014544862258667703061794110356260768107435341486036728854698992689511760147983691250300452553259799505410099354449746524930124008750560526360377899567418365445383828875452903158446228616753179671665504155666802999187944812977813708096472351388211493194791335121549549389932548099130245889171677066052217570331461391608751666458597613446350557309032939535535700315928658729858340540158003526545048836095068993996778025553681342247945597647320239408039582650400390973218222415630275094614357833277398097322102509689185836566516985277324108770680632823387269288188066519642178449962201945843551815151205254212456155066925792751376431016214247871086995207211153874218375029556983301892474071312220651758607194603793356153372821234581787369263332998854557319847011156356738522208351662272376751078016878307691485853154165115033486982516314884483637595635801003341438879783006646533759191891703573627203169661019196624788582920930942125854784623690573734025451271201015830432931896223617365093281623254667580581335903137914503081174042296423447119160303804881728572884931626503574086103325347645068153484345349940771955500103105675874212956227901079478800796797576465239389569723719222998891562564593214640496148386091204966158292595496652576057654077645784102305473998410983291519274911148700303825146599612833770219658283684409447338668691602968689986008321831765522395811018162968160716020479890579127721717021771962147013137680025628857562077835501764587994190148886629791293556011051374173438002499840461029515856841928397444399375164394977527165077743093181541902289528704970502460865052958440802335390508357077642048529950429077843180224831096745736995656672490029203559867468660344970008719495418635136968005255175114869979845782639016649326223501447164486429193930513741173186716843657799370313224417814132935063334641625985308248968656459492422542122963341991873324473250105301906488521169477943931031662155262741457324425079571052838035660023142579660105959902488622895518734386502881943943776284600752658891320603360644541321949145920374670495809259931711090464235215257149642842425358485281643434400104477847564256339639721534523529808406704216870556174407877930813570341280137823749640636278901172864349187412091771436366974215781593966304239650512012036092540979609917720442970769373809410045218775727476860015800170728277483838765406175935696113442196718024448108425925299411596490026650341617656053846080796598883114041811457099236864715118275290679630382423308241942008847639965529466029312893394926218456988910875652205599597097446256960985960768336363829632328489275821399172267259143621333386056869968554310486819881576615168403034934620040696030535155270501189543613369646569758320950391060956981299701299302150108823261892751395416147345028010706612317087712189140994423125868782648986936662621177602942450857429490419251039728162781743644027785451552492567789600959065369388239425011569672318873850492373439281282569690124263777281288870755265785901022153718064614136094397672931307997987194129961555578996745045181599178820817086914262368246385216373896798587708917521470623160415622690421992596897724449589431897069639731304337147000311382710309042701566604221657333955066365062647933270108531036072245659285727786073180884882004696153071130548188116351114594426272997771024236688353919513996912462937912994640121261269225986657066131480938567664311451433805668469594016241715778618343118282588908816353798303894293591514603715677511471391233296567517861938836154186326921743924097653128085694451007349790715219882843545652989257174068908329625236828871784672645048495675667093407701176949530961549306272900846748549635800540545429932629485842977905256548420987925786640753256487522645735424890024867047097062897647152365091990450748970788201693183061476364595526620236082107953950845920890016691229363749921051879959370910518132033798597240543305069321033710220380414752607269643094925485490466233065157303462708541231521093385343121503830653035237718877903042149022946422230474207205246988251171762096192660288869136710963688754084707552061080542518039526824598528582332054147271306035760638078141748439356185331255112587929732639266703117868277572438558927154196606423111600823327247708633381355597193887855708121083756138392383569376213294917543117642626646884721935329081463279008432876505980498074673184859601843664368833799458662097236995960189866888845377002529372005358591336641982187820753411512644099154260181031976122615384050466758034306675594206414621613240147152187037385692477263447445227317244060752387180224444078096903300174708540768733077108209276630048455557537956936483139163398814416456925562247867655080669053197995697360822364069353931279441063913160810979690139853323659705211225923128312867550337443437763228955527828750423421126655318351504089133803907168564263533174710198891366518604858141174463928316488765749504567244621864444696880412912523602794547156734277249882144672865581746490775537014878112815972094270633432006416525835718683906306291955827105228320816966062108364922010199518178352387886046521921089889089896200019853131934462140001676691042178641105763326029809650027318373844737151313665764519577791347064508844836994157932033832186144962079104176856357189080606038863287283436168415622991281763704291128436638441727968551868216126059793530715975237657624215571950707621078487580031773589060077376660195998365290381733878916669609859267004965450413783744724176236318222232972837402042566913030527784310607153035305404616804421182445575138872480581302124568300311901837555456078786533296576469176929102776484011335369827143418700368019892377721951533559695202334381255010425698766231217607171709779179449943122755534953769796969171707206486400369391531597316463011290264798458460974634923362660482608605504076588104981495784430059862623414017723998268209238720603170313007786804482680276609847791221548691290611163516737173052175685422604876580491597462659567979180911650205784812812630348144901365526560582712243900926573375742200763795365457402337898372301683370411921723811165716545934795603408787670368288477846415447524828346372965743886704872793856880536947267470086170980009008106177899757947873615874725974005470356368037120556506012998632788047564920760012821482569208380205062976356109565242128699782289475635940652579409767880382478929953115142938979526542996854145770394120672710474311846125739488433921101620208177121183268549222247395430224304630046202018253244653122181785678216775071640117100013554577810715725839444121572760655721147287576089608200718704666283273781492480054125894337801060300675311094754792286392149097647603638121372151302226270209330915911473389198082195807246765261960424603864998773512108193590663994164502305466845571012389047974973421968887835005405641931540671060521579061696276730996245615733253715673419764459836921430187198544598847049835037706441400657487983270194777066120512268212184411773331117589548472509857882930295151704985624352985031063957285275989232703995729155497625326641874955604942977725263602006982767130882524511195593471330911513135776216045234861812189765095988521325738126392621083196439885943220348365231591735643498458633230200494247228016151261433982284876299268686523771207107834787089752112212841560440868611110718294325154555352593963178361226851984853060958557817636717504076679739934419636341302361574631226411805705616703342234979519001295634156738539672871832405637229128933498743418383162068333093784783260035045533695924267775576845275199351709523429156788207892771130275352487368991343145119558231052467502055032163854710120976207302910791230523785707897320229090867757511488945338097175800571420324825527983800622035730819601968390018714246971097718304512344915283816769999204784683825092056423228007213890769884248045939530497375356117305136180886631489727187928139577272640918527336995385835580455454794971696224906150955252760425048224702093806842047946777731061738043596592667944368624924006444423735217829032280306029851921572529560251401048710510192658924330672793775302426878140246181829509329756027485659506764704972903382682929154658345894053586765577925465554820155764279519176481353442152014219567984231722039413006828052717043066953827678654190155109280352485327306662072604183268059526188110108796851050197010691694882676898346892921137011174992978569570515950381057759240239292016155436254425273395185538717708486920433933505630693826507508947011716241270552075185364305685868810621875790065905392528394871755536155795830497869334082655558436120783801594578623474934579817732801076876246987245160212679010104428498669931833777883387974841106876430345919501868033223373709977397209453222654943756018656838029240482349921900038643068536216880218845160346031680222681709349977417383849228297907068512011207641248201630215714551661144876032179617959951923438491980421024339405223072328246208298688909154900224784229818124867722457948739698929871885833630890261961456182491402015467119842174113975727575875786180652126152982094223669273328319308536991800882164941747748657383975783470888012933171622039951997005490109531346864973698415956608862687080015796838882513528686430669288329468677045753530545789247670844814720168901333826907211200213181479292990398158551317629566512928342772947478359654791655056771889651887058236235002072111147282672753951083089422779729018230145109983173409281023280973291950419713652594721474206146788775906086133955330396440429156500417270484897894303198118513822877488310876919584135749640846808930960287348272317461809250202676034183211254318349841945925156714511632718388472166097480516701551914230836163910616759958661867414428794604020818186748604093458377162030176970554362609251290286178511777678393274957894475239297183864781728064808127134347240364005819690377045111022805216094846127261579506163165251053147452867011383376549338054719970959870281759325720002044514980393663748806084560188482297544766602476053847980151486085224001377463812156483837627545894567725856812034478593172577828324522039346379788454556367884104485722576584165302061986331292316668722737948921770963901698202620982257647284852044550652937264985415471898845275783079613039108202494046514328186681376599363576637820370955179298848105058945764076291039339293224112716756339852125094520853125100844732621117596596945942705832476167669789708227432556376193633253029296228550161557553957248018207682672252501271690551246695449685526333106617556697430008594099712147264593665199434657101871378337833806953706551962165282600021776918759892391056149510386819352995055789854660021941167949097591223903192771187354686793611476597101120523840188113982515941202069110657208090251249146606424504536592739260451143540124821931834445665203613956876746290135302667094695107352357538434414383640449125414985097321386392815700590603264777623978669324169709791802517313093642841703932731016130712350331659939592170390533916741652499142218604502447815333295542393837951610769830928236367648904233325352145633835986197312137341757482492874387869498376795161194608615220469649703640437111864687860241657049159026643527287778569149737598537044910108994597284514150678967990319263339756393014448155482472675643653259208157820049098664757956042685314802384711940623345214765204786491092447757112336579690440592178365616690779590654096004022907038428941015027577817169049019473790927016362480775398710313220397464589853244922001317394389104321472516834361085533685099944552457513462209405374361891425510547874391452302233551029393814852570860810486926781408514253398158184711682530918399929325795026444203749780419116897527762412171070381740025375951100296241774459772813078036136927001812367840251397077770992125346686960852084166566173869881390415977848502613014555845990449212146317252265262919000424179835933906630013131776695623622383457638513781405182628573383952412953747455717005687703568648891577055993335958501221527463497269416512023513323230775471271738108237830420140440608530312936411645072390846365984993306963136377800120631403864547789303637131207166215114164008335989519829006581317095899781304477146088030108342521633033314002025539116310277490041658937164362592064891538643995204295604829514897351851203436187131919486360734459324102947211612058086553744082766070232417447550703712668287454518530730344107068622285071762931376294376244520102475065947064258552203347414983030184933322778913101100074170130413793054440783084317307913835491823869985680449090148510436437671359865786240888230554476077393482453159697387034495910847050006861112638667068785821934666239854666974034284823838164708868929458311927335742981329852037407642664802148771959721058745170154491555081426984895926549857202340191267698371515010586483458254858253313870128671502988610647958122704135179604818438587527093668083174303813533654048476923710737957793568715379931388186527346795268004759022032938978779611687537371257129405997396797352060661517635334051927805382460769954876975442755427946497229074024221127855225218899612184440356117407278631150329000400722609886942941363525259511612418207383822450861572794929314161972916028052346315547949757036579105279978132793351905078017579377440810310101525929099850977366916723646104541077361546601612748060315058866793413231191036036578536314992926527122849876155967730271839645873767354610547231501471414198291009651251278775299756631635172462589516107602281843552855176651843630554307258800408705175974440684421972533040777442225013065134746839425811805755296089886645815232355108388894041763515652450550147217515887603971099962182019390503082418177159981684506765568522626356972422485498428489195383936116514406987906103679418343040269392413521249690503944289389658965329971514711336896033768512240109024282137829155957534553869084101626987195364369032420450670555565152381223620419101551916859989800605892504548008428589221344522601271590896043470180602722010963723592440487178850188134504096585422042547506954759816151814099047392475182937989058929702226493770284075361850879156438060689811411405543072602511328694298580729547035223166206987855186710545103672956156563752478843680199539252676900260361650126777618528518616275801680971869948628774073268149764274279587625970289573121386149461246181044405622617403689944002828405945083106295050380787035985042850696533065076194084577840955347232580000757810769050400337658935181309948584282595344901913420332355042901512331134193835673711815752871715155570798921092222253237129485819602151248011719491330682727858413645543245287509668024987512759110652369033910519537670093243811511765618946373079058440312842596628900406855756775243562135644691133983185504177162236587194541552737837361556286948601129035894320404097302764573739288261714888731791540858490783278204574914906974574284567303173625458882397491294510943415940099970967720363811740214256607724860131671534906020967574530033557221472830865132575808867992303779413429098515062546191742735256488206802583418284729180475586215726289169055956076766613387777451727401924477135314674681947319390595656910630123151179685467099498710518023003068901784723991725651726000240943221184282359785228924402819575205303086972503324218843648192445354038003470057732036890002160354903805918645863447806004850949198164715748303896540792479376356008957607181924993183119973971573866466528323026495987374394519614575960555037361560269142868169100612271360209855739688252699443884103562145920742874847827981659480854519196332054372862462744050002317656920526155195300262955686368400077552828192758601110808424279346387652540828678902717543391541861542328850378272267581873327242550061627734896241407063909514013838908557676253459847333651918768955354357626716076012299248521320894183611648572438890919146527625970156883477759522405114640461876576036637249834167184271740986240413171628043934903141996920808671097038508453989514313540117639000751611964608006383271627546311018549302585821030564221547616465903661697612136028949793379619363195576528011543221531756969194824232719645051267444889423372105076277338567633249615829898953319895454939551426897996173336990395122867805512613919842809075105187211620244436554402793129348196255911534536845470547576649117795195830710531383914036081428100244720788892700658235361672588874617181162125187629738130423902122049953762876563802449790174997044403485459344080258701767380972935334150095497082652394826444191875892479422597150481011142123172274311475512741033603504264144950298861235061438262462831972938819399526483742036032698974893534721938174028334997278756229081652832728336331222881550574934538822686201338919229340167214895510770939480273002121057872077610305668974685028481989574196651349039763617464250549504537674859135015082034369843259537963716684085523073313476229446602930393730623904898902272382018406841072371857945401800066885842969797615182244114453453147710136965115316169114018998723845138129222999202436073379673251702933987721540939172845321191347835856121644849731033177039463629853626678596658265800211940016461457660804948046171528343781297097752370469766657138902516824141648952568158127005152401020572895850099884465686705396150996020533454307184495714929218173427182899773844896298094001632279958469214199934580095455374637915139480482950006847066798189951158844392463950144560532936253007814699872804063196142543054529713981515914873662988610276872607908535223957473920388193760253989233464928941842102130348241811139153177412527411636080341034645200112101086858947620776769661966091565298443713376329662552010443548092373456844260045572231149083617660313149077892372708310763868632649600170624246710336759401230559338647325173577384269468818162600165441799523715329857227385455072372599942507292446639894375908765725478752746715523541503837767045741565035430753831633635423983421062755330473560828049064828118443538466406275015155118099115307854696086631891321248162045665289658357306665508783816289490134533819133938713813222907998747424117015521942549013799666326647229185323427109859959309023332780054047642821315897413873697100183923473536230142683823042004560406931777942312160556322646883989537521739084803015695622942563246067938544198529684561792879951306611949941561950562429821315040808036322694540197145711582346678934713752162285129549636724471865217947402250182073649682724716880991148598881821826082671225028957994336469938356410613122733288226678773611598480778468827542084665208250494738226306394419675898566634802909149738654238459642882938094238794298482629665698866565750319354605867485083547909323656883059593155929670372187096638516189838475561242693965545836156108664237247882666153480206575592508178320617933799993050569228618839927572625338786607250222292787708075811997151103445494718575038195221176180191208946364173434475133701722337628931997566628130186644860486044963619625238770898916467408194814297371068837488657774832029130999874170498744364724731129877671470666962010623697557143672593482166514985412703436980981180399553708355335641202533548815124613154281190334979404186134404557266959063864359584528643989955554742014461627242698542963040920475763019155432258190955039102816686539207004166404641859060105975378036050938577083968932796466763087646470613276885790644800204348770810890991640579335670391314476910205869724893608541095497938254938585283789034872828823317856887236710136291768084436104860875522615797938961350811127178358018417106447391869304721462621372983925023603784911713376459268386194557910302406113274953083478739927853523643155525178173860803127524588529999405524189345473984555084339329643527893435121520513724098612958184054447529187533351124210428283740448149811357723522568149537211895541506058134913859695187478723177412538135716340254633290831140436856648443473938161415292623284028499654923924469527262011877165256533718426370374690732695904425509258782489479278183524587150779981781163375284662169682955201872838007516704941833732217946296090159758133852151070059407357262398698522674475085506938701908393267787276776063641382564987892916317551262672453135822889341779228421331640655526484255453836861552321560069136146957145414688294660384195479589594921356230853801458583690751059455809471204555323939287759624866951549019327161724279094096864177097643211281254120973809544515769288720483103794198647196901444486677981478469358666361753136371318109821642708043767412542007059429658776401804504238165017659900407810050648657372032829830391340715511443420175544970950174503407350526995332202530573492341378572166039766242582774882922304553679614717805773748003870853309002721640933397453677848694997727524350554937561289926418746028783834739583379638636832643384029530848550428164974476405461213470904689882461801421140908622919791904482287979923034569905080688049260750125815067508149682610314269424157178416525142189907158187490603440644387948629686054787557655163654360649497539800814830728959903797864524330105031812576350055898284678245363559002688299277674271750658482059956708906706536128196085658098589514708789836346118691598981284360578949156159889211588725490863705295481798791103060200539242709732347319043479637450068885059909001551845740677634805014971453395912284406222600378232244443401621597781405732336687991286218017183871383523179524989262720179876453700862248115551086604998778861979029250103913995397689961277582839677006181917286584307077737299843463259599823900637575251664929357933367557550770810656562917540695378637110418716401406997938345610439792567543101706965368044208866250584145705337696703596541906898721356586712102389223523464666720601545916543034860414864340053413456602794345666386203910461210515652776531366758677863339647701510411354202012782621645468405607386298592700191590438273252398384072028190029117699329955217772037356629444242441970714553904116264076574602049830038555079430580065031814493357529778623282523972219142197504530162376529987599587447769112505831838852134628368912189963493276356199609834114702453137048881192835168943396708045167557126799343869859476220035045751705620515436526887718525008488244523451227259042231464622161927714190102360771324413191672376596155520290801193209331206414398605552229931828876106218055724915977562525621392179969006148222881380540878772191292279458507156391423234179180180402788947094796416720322498482322888233811633415812961173832167720960247902299022009217462058117930253332423741305168672114429599985592051907681632340885143328227979852896859000107442186866072973963356740781465267424551343546646807707574758099365015007473315549301312317157791042289309221571531718692977388863608631076707968052765759382678883876178503564268349035928001948691386999920646477523600893028000215448494998701668302250999686260670989860970363086800532718300408496914858531842595905555663024988873799767019250981165851332790333149610194191670317970976097440524644921384485402693293727658962426180332717157849536302019611996133711465861301158856177552819083617797492858379469690899516550479708430680944596107543644325770990376957518043976955549309753693166577052495082034812828045461778169168186110978651477714358561866278612736414771594493340893142583540895683046508847420590541868374714024849475969127801714014509737999901612743379269724387981563253958890074444981511634253336989575053767665765803780225377190804029272052063214959909150849269435531573020614755422630000599135811694979518076138350958419696773526479861582057630424864424355425265517336907183992779217858128806388950431410624180499349311911979693962334152863170507826319718343674375812402531403923516042675055317839224187322256897734624105661009644470771156222449101822126368172006830643590943109766348999393105907649993258628072763608150412323624268059307674334966988305441168125442204965385448071880101328832552573651054576501482704545516611454395227974065589526817553645932622163927023020030844314191502225668925346923907422576387706929307766580612474575435274463536080393361005390367315039548001848811802018422546668425341398528411013226264387963552001537436269387024043198699253477602268826666222795230735613026094360282353617204372906121251912560173963147328719309608858993607161285023760093946660054743421983647839656881857915212824849254462441703294028207943633307126953297767069886669301160654804245028086715741218537772066885030627455249333589656012937931411461330426800625989737859990343039198883098650750836323256883011712990516947291381694394817384606886843803443404301576697912355905512384946148392579261364651105690606609769184421998136346742453555713628595717161504365871671008482765374786341105985145064293291727204064007826269954356197993004008827404961786990583338007707462259442723719169864395628590506777595320524768170479845495232292586040595269202501539822134478690864689044177842423037502139662882383436843280029069912834492287805149355114328998419560107920081470419187040533798548647780364884080056870169199462316497022664544005846478849821741010785838110391491897739492377211560075308111766205150738896918740258225378071366205706797958373179311362869396307705373655933252016866527710736985501632697704613243438748597130781493105985438371156689004945360023702090397420877439790655505064952999922849868433858558827493525600749378290546056262275628265218139641359313774010254763073543902301837094115876613526035904613762934119909118300764586701079056588059049217544805997685780594275796376307266847264776398005486293060340018284615178125372886631416295854408417231499455895437405885474335465538494591833453579295581337563532200526251288276257961081627887458051188929118727105183881018599957912454323929097944212986445219411893066008487525870011047424315551578179632510520076211432991805612375305801314529453077081260316768226872569720793520016546246123891050747974782563041086157239889597920770986635033958941364429128198721151872554148918605980066358668871518583901024128095574645312510251780095492805032418810294188126106537232468735570821027155077007007809168496311942385759801598608499351057182929421451777547876576751841512752189323294622514093406646853710699415604220845005470151026430607878170341106122693086244542650065454023529814385472577214108897324843805980373054934076758017779302470410616761711899487005827967809065042029174643571568778720350706174592988987859948372430369120622349670253596396344589119768947237901157316440709137394645143931135097435117458402731424484144914688349109954754812681674398117955255317885980847069526959690268175873308798929300894246511694799385919838062493032627280048373546019894419620686387532625150186193119554234990788185964041419262586120001450454011608187391435076804558393313539085353501070132644168074093988614053259743057451120398183322248376424737620014225253531064758582867136773888093336687365855039853423457475020873215711035825936262626080330687940899575955877613675028239087289000130498945233034939671833671774921487540321549137508729153796429204000113394700848245308999910882702783536957791280441506965837009721456259197140855145660877052682069813772881267041522513226333665238973793992576030813623878719741434151168167229131840940412237526933379089091584789829588658156649030753982580436989270197287943981173554823552198932187308540752133977038915572284528111015835975771104459121592987569490295074794719738973251383501730124857583477708330113306983564879124337738688563517406573517541135896909961915418106796081500113144983352685870602856524039541119977323862097598402852127053802315830736266689713730065269545522330728122345140377596105142846776361100721055824600285639654038911086648574781955314730388996740299786421812773163954614795284176979106221062490517313803844190315443570904433614216106241489696521445189681904661586478525815341301683140592571189487326802091992897131263977877266864278288380836487030447924525785698875178447922664344916153540588127741022035903147770913710151043451877968470491178766613028308128537666592609849788542675077746666973510741175141062624929817416924139331679078636976058786590317372516876416947119086446720365181582305841827704120126419411870856981939445424149825668688891129227213716329968995630860310035035384785353875869672255434796369462841951182272511750614222333420138010158692632387138663889458296199625817581391976144390564791206282627890622781537559444123087312115119631730238913738588857353294510122797266631138713859841856590157346664795629899157804673460413431204605902603832848076756394895146622678092174167174698534006588235334010201363463233300885136045915087238468361148749311211448880644044563100366944037361951316072429845065499758175133919472778017971359098572760388974701817049018887823201877252795625540723094162747572523453313772878765161661261279345266934878181374267659040915010919705744106724041951527229378060745645021312710743779425751937870156888291536836916336315514236085559650331502186607266194471593522817291151835363020095442678559428533991872188861220788171924872746582928859742244918495915794680364722716395681859834172111674772273906594297805665083190786078628568985935220877531360669666352240151632153404215390661596351258145512494231719095936774405372619393492585829058618500898510977666221209441596213750461515558997225067146240718331007869170154976955041594464783276787871059820289621700086844648151330950107158124899199537354179785812408747235284125127052902558032713462417380064941515606214434034712384166069875570045214248824301039640621634322928303169193980516055344756964388505967063702989686823528243875268939303009738672538749594738358447509814021772637672413567074057067214647010161214835705580326683001804608458313413923967386625106009379299280470329571521457664285879322052873327847323214506843033041555282733408946247164954286266800956791785286022732649160124378197102606188509356670252755698378093164274907224426450047279031777890909802416969624109642786710528299313571740487191937720564882006361079775849940772995501397943020990077154157375942762341099547067526199086041788979027264816176281396642747818863551694616625273545964605816364198391524433151510980508333250834695291813013357235496761553939563595103177697182625870817287262602916310361359292407018183229153898321985306659252852785007766579737539990623552044929590072881674776220579980385108834772695839791431399503412879081261727038926616924204663087763964848440577096440533990879209133804772420186084829451483795952404604860750537260799229669185192555583311345745768438141991888322294717257633730041373914223986140935631119535819745248398555451585030825412920289332887498912378834160859487912349969449380041027600933240233492093586627379701266479984650577222212433951958610427300619608533198113789606234967560248816250248469451325882306768513700377281397968824630462196643710514314530313930587026375458609128674583788016884578470199320587205929295726946064827427000882471080078956296517749540981297596233150916990035083454990437754079358929948812960261276747520402166696648305309169951776142978564729991026563123841493004177815431754977535680729440594807111331342936858113838415706612038075488295840812233837450234089897678346238368237588505973466771795665065211555503838211942675180563828809301622910540213901083968155907767513039631069189390578101488735161685388616374417274243538088057952767681387777853992776931030648677842254763210158362131296878373553830467824791199187230141843866140765165512179061817715167355115087734449071919118554646340261093284733512666817110617102233377917679144267064418712674282739839830389090582636467566272687931589026964546195856544324015450856795696694256794245531146711745454084762387876753747192246814523231546194348737043495280944313934627673940430981523085909810975596928244703806649418428399788367621374634705439636851992726581210602696447302585530270753242861465524893433703988994996342779370241818241022609411301127036104899786346664843911013881871956495582952973136219611103712429612304887367084439187356902956206423401379329005436429005187388653393196943894513656024816171419533843868385341884552732867305607060139665307710954805339766304774456350725042524457424368642565446139989660279291379867697802311511679810107684953818535668894690977218258068655147416750444249141582477257743203712177940469625357019453709002260648310505735067996119258334631414973455611351268266882702709989850183335200906703045323669018649836109895790303933971191135462001390630635702847736014325482741942672811337336347331396332610083982165395215062107035397302588660879401045677292863231896616445716874136229233204446040325517994900809027457413193854375817798769565982216801733083205421819389731155609443059212682815043682754627540147221446200578402901984139220865947689691007710433810334753980398974322748992728461896831436850541452558045844130917411224857192237174242492894571758862523511119763798783726451380015288504928735760978536016194209458933317557963436858907087326320101361944585576377625109252108576897985505172252609296566745944424315623920681027857682921781947286591875018797209042713040880181662564041995026048997464387553880392236395066814381033382804010819137044745169114969887797820090016944474262908645435302520541055997821351912570382677142817859472196153833805910543405746803890224352250808213972086217424847718916869766516999332617836792160963386738114412344563816972802543255307638836706930379077107112443757875577705818847245949076203526559432389176268249709529874958259090574937121030184039967814817845022623020846991040002160005078115402220127974587731815746045047937459141711394755710444649869965857190475185612258302800419359496784867441992161905694077257935746551117346239813318242820559072887281955263670163160677458777088283101463280349105821746192250594444190890246190198607503325944399897287465404034947800060980833677998025665487072838084810035154527242415585869749498220460958990454705557706947894230016494603198110535024854752415415677272380440628417547008569701313197699531812659336898947316534283872360701173116533164721111652200148799137606186531518363763450688435902952436486117870773940028986502744026845333827124281473243205671452503755517709259864102574047925579820696874444583585866302640218712337737825303615425625513096726116287283398574649874961493438126912829063788918219429062456112051715162585645104281420451551736267463671435545689668382924510103540768886706840312753734710410832450621129828699702291585366085582867577363475705676626537259235814278099022611636070356748406726038589286135854743218958935779457760963428945610305890240513031831470906878031066682283471562485385426769874083259691927059782478371798771628995297781866848470939206104189798875131569119283009833024996384131523149468168834924693479751192147840712269219412485231810762811903223907661380499823956479685043001684999429149640709468509973545000509693993199495545804710843006164434578292859523219426467433398109989909074172825735599172953755322707273287101427665265654610290400249547638458857579016502651151752766089438155618895771092099615146551007398205354609170916301104493376782617607054923727069967853750711510097513538498182806286508934802827786631719370529277943437624454877337959062116254937814907345914752810633648823617159120953473244611355271193611129896998486617875100594169783317334662483120862300341085709766313081362331655693927430799003965288992439616989937436089605756968630122642873584875803063963510982138866074564556898456329562895695013313177782403829023609794352372344178970313156617280949147051532889005334426935357155765777754811134403694787764504676078057624959301893799221359004531461540009240471484888479099650310013276563468793386325941081950974837853687760710301680477838880264607824602493382792550132201466647398098172092111793032247022730776622635930847724232211772474908432992328616203791251519477499696361726257745058849058347515913907828532110487541898164475790302200419457593293397320402206585818187859329103952587926829313250256273400903486207185631898626114785935537915096503796702239629700951213661966485021039606637974380348054118747348849811685147944055562829067473336394176637451525910008103470766145698266342616989306065000888492616320053868817688199055816312135025539324966096541858005765512482763349781937637524732016378871497099144091741866937240728815378294384518883334718620720265516684186470299959785063257429281466811811062413231297396579989972887770743389624261460396294660457064425244614946511138498217541422715203309939518612551391147496624104090000647629193100389248653644698607606801280208714781745487556134146365953069534538224126645125230426345848553738940744329415656683925372776824827314594275490116597502466345933783790283094864209608807490493975537746282345501695198985265558732208154452263016522019035266863761408861766032642148678207557756631704865815327059670575959775623426881817189406627297527230774632859596845153017571402919256515230056997283262144870898546684830878969958474883785725701211131218945308212965515762291624630477428022430915569827609871287201682578073864354473539551614995537595414276312655908114215940596718621306762624562476175978430287370906836052935224674678606530417768071528579342001158576976781534707708869513120646064587178661579062430783977542147393385152494922103468621151803541965183407504242079635281355411232591468506928411838864725973420571172873107663589848690215147475052441926637544652899782329054942007655310262189027358455404002051938382180405139685997176267714121630483241128286899846871071685699051740032725584519837816825134553293773569907942399095616280230808520492607665447609379201463131074159854527718314112616781366631263305070358265310852904936219044415460317792150468045912597935089352143132963605499183890470115406401723020243209371329005495475206555637091200761919172660136610712294259694012823012525246942007859765391486131358671582329051614031186075627929310962437998624234427290379032373078753014531930556973126298190514538519177909086739547178776271646088901100350830261737212638152924745982813200819637107192790973649601493263676289105000898375087269465744828106699517544022919964917384883338958161744186542089344949991730575608380372914779459913834842678844156599500686422929218712785082813344385675972062730598396097836646214543178693663552730192165628856240517367437936054542322252448476181630515555965588607992880480763659611194835665326297435887196569224988484975230880773498614627310176921760831160320123573910550946775795046502277537542677085062162513114975376747108751400752391150671917060101622735635198600887702235736571764875574092371747476288762919735132398321478732082429192795250165592417616052390843289355076590770541289455423046136490906831110450264564257826618279621870896498143721371624776673058734744433634519287544347870791949390866305902132411343483053016639562792439088333732782051559133224145265847209318623521112658826190392535113202854762090994104796379472907207289596245489024098934153763925464165527949954479601035404120335572386034624357484825305282804870731260154912051372015601470602758706155089169143575564413332326692850953137114871609259217911170548384175900478268847496293408786741573930922694441227979789690489163492612313874014708515705057655874145573277745482372874544183139132804870519952481489451046144896018298022736204528431113351599373518148214608732495167078249948447481753513506318916683591078796821904708292625747837962837046541353711242289550842771344286436737578866524996882294039675420737544450841208238878649377528848722902677414194023424338166224064713464326397201729244306948700680030979082751900210377155855687108430610930317520309169281507081199168115156655863070352889483980551090510727347387387013724194697689681003177112928232908695138144183580004364285690526589194216242881303708924025644802078273600246419524564622033167691955460565702717358163377897687480731192713916420825399805970519863060925520958185179397265802750087833877572555287996313001321593238126593759107285066945864770796825658102309871231169194041022242831698910628906639582299199417715290914200259129419174238752730029304370986737883195206375997136669040147470111572267820786381301127050308802498324341672820861093645032461277682079237675565097989049163398950261219893656194141323950574955542004464591854469067450078614433549445118416727658710295043694632614785909959616392182545216625517719643648533018799191272472664768093015794133474670329949514066895609878678434600891001066503879612531902086217789251933200084114413642026389167008930630877075288329327724184518496677588118650003361562731510459287548668003408462906056390863276350691316027774807339029778298924355051622689968702148081790981578709691746692061825630741181448748656724566448334464911551499316232580179509003050604809995502812654867458025733907326293272911051998936630051688295360657338081889245048574460322424851915508466953379777562233910552616430651607368294766540620062238272260081152616232170142040331802548171041090462355175415415253545926683285386877551041479678494076372798062463011183598879504433239899459364968826665922195018307338718128748260904768063026020187024203350978444650009080657824017763906047614858037704427721190182488695240359193943508932248929694850199875262657889752295915135552461594844338531812416090449558515840673770038455334736409086113699350275919180675200570924058601721858686099335393367037415685335579937605520898484656820752721338221298848433155298144188635760796121951684171656644058218254980118634111760240345432587104760020802007660733453717070997384306091554786802291304939784217090919592391677091914663841435812787188669920790813439283474769936813491163064561809550993395409918620481677711348793397167937840601615831097889395883992649542497248307778085111877613696243864915961040300443250832369382153890283992045936906664479293891991335311058919433228548986752363414308209092974716255354438494183818639658274635596101653228847218450827633769054155941973413257169410421327041012613404714507084952734532941516622303185527421320724938394568822540410631028294773960169922235298068586488966952962853170130166864514434087603015422439564280655142209774959906809941212531970980386181660366681556266574723324201639295339247987653851154421728177471155906856954960333564630888009598836373661023551215036425699962677898361900608945096282823808215345009844135079445535203005963528989685354918407803597589901123070943878240236088338284989531391704464483498091305219599333897147686444520535734760621223896891569696481170864056242426968038831301613054135503263782350370291890531620691534581599828602950313519981678203011746040503573992617796866612677261504206759226032452799364187520774294554475992111221398590730035415785660683849346415535547685387175256462675986301384903548391148101052288842353412967649696698839487916281416259102275419425754040202713855139721726100228004568919898281215368199267956213169056727242981340933150039027889407660333527081688073774642218589907017569014908986653970518622353713563782943075236399320675972240797600859785380543606237677141306353871100785222339460672145812551566453084096117867789857157808121248958118086860986536104599850752823174717042796540684478403794162963150423294071045741561537404318884286706456083614545709675888898116641402187880955863264455586341237167514452230325768860309686827491739174956804451953877581886685541153905546053843981222610205830785885214387161160213920443566022693517283657935354555577701270268151467352601044764805670637188869868298374697112514277690662551018966987673901367321515411834581303818433279593983197918497288658999489457307212446271633921666736970063717423583957429000852259978197879445370557766107205107155699476021933032581597933829342123432643419440435625911021857570139018996359103237671893447435443882701904484726018505433372314404241432654758642858284950851356840739934632358106285860027033846035961978571862219726081985451604222313174854122359550702900261051005501269554600674787952259171975634640008649174352509892613180494529179742368966833373117133181247726043533628927480529949153998720148272790209542886342698272134839673484378379472811456339158704443164517458097278718211753784098331607966320042576559466466026360003328425251897154714514275977552632893525392046981751733107559828516756378119435186520454985568304389068421630824681365570059207492871041586124635217346643713616837400119073765088511890463253634005153027428668972306328499465047812634812527791339317110310831980162961268331144505044999814490331864446941936162663307515464359632848445005730926682962182636612306402812261332411492807323353256859265502467541496724616948168875605689743119480801540693004388187120221880285776856709732867453720454523167858227384132582366777773504986086276827252263452399328800468374493078530219062799838899807383079132327448454626176557716300116289212425520515418189934155194542990283656864782449971158304584654056824404072873173518219376832870589462408435137007685849780859584165888630592860056279367129361456129866389301420100130895569765523715597829341016085629468165336893454966158767767290615317655371447948105741221639820869017880224504430233824605164654471878171109897818819172990744522311104826247751395535334300501934285445711563062921837079736847343273551181419425652327087644805239067878321438221407838941269082033466045628793392193869857553597777595826545121255796343428713647278887092654583519461628681313995914122562808204257057720403148384281440261935959084267247529395529713378868264992514058467809453757118704456714839290336557202850812048297504863030158386134159524759591196451056639057337572264677463824432230869487205916884949547416136663250357363205182330752244567396747256806571518877857440186600131572655476801866120763097992154111713525707313019871919005406671081724956447192170569441341699944131039757952733359560254496765919566608781214972626654278995270294793695280898961307448776424434528662026303428827011507022019208251723181546622806804180814779974008197240054898383867259834484055168658554308343106225381557270192720149484136152564835200950957907195855676202514190724571786268601072845845176957335954348063918937272352783821949572393267990494119401158731878276468264499934531740499644722346576472159431395666922688810504996400443511496985868055457132437139422866982230616589203869551139532762939263013635811227668578062472049866764766213660806541705539796827996570821290806872144523894236872330932484591821167666592790821777404492860042618923074411087813975225446943124670538824080603817046484099293686429451920456730130324685294592790900412945382337505517121927037070261037490123184364320101847842216801178913287762753981436308114270458225216788701871206317626051395850692963417840196804441961912735621257053753866085179963946806697141904217245513321754146317474653823894468012652788426656753064170542976893701681927863890247270715781483355941389304584245624912567649767702171607961534145845221488852135528414647632497277518920041039959169709527463955264503469766491521009936881833843481873972565386181932016146211478025856266961211500498816489675258628199632329130541495633410768529297380659998241144058379437089279333912347137602890681762157030430691713711015654879464878785052712646593130532243522427699137909100527751891884514799745077718793225833259714819618811899522828125659565395334729087810052383269470502197105024219179187080735524323052682351541158790828067014616205778846593356029063248254262109450516321176528123998515464493064458794237522056207051817513255989041620585413006500758892130593082675621246547876811166125591574003000635577426095727080308867342465693817723770319482387735300049106983602169165034868189465669315476144756948140084568790939457068320200265090644849489576649396852916934233019272244149961036602671828426206443600534862785181297294957641686736717750625739940177360560962932923647668369803964137187978603024877414042592041406001272616573016262002838924533419892863446573943677839870131956602349985899858311403026552235318194860332981139907273505504409312623471865837543978277974236517446437144749242712434686300534473188110793504196659956036781623140775839736567981391029089620464127207240813601617604910254909938679161356662428176672775906321759561633651495045199493568213853532990721143640984530141191984820202119556889086549084843011774388390727233088466495168317319909735629153030199413444737738764032311969029783958561342222926531870923538697862200716794921721523839923735903017855391563346877655937062744621670540347326523629329932969406220005329763334295703583052538519476881078146663149877271576335180827923090524255291948525325514535841520915744125046767844727335323825278023007863499314026265739701359716451231857293096885633972429332394980027268545670406459020973165469073195573262664615605320803643484215867974499937056124729888784414854114890046072091116712705247141709592902468770442975357150309429203033661442110444456943066103971669743837214980356664002428632984995472926998681895270893791821894656626732127751979576363884092186172295466359594748581127501251737439939131505547577148271994885839173301425532978959864402452501400135683955973650249763895041329970793633160493343843019473420066242931431329924813415540630399958969752577855552672228401947205409384560786298016203680440585665501599660568182411155546257284404871989810368494748452207684574271808374960341056674625385286900542822941966240216383654517568013353685484300775808506466468954527785298399233593759887903088832210716159813444868842078045344103759157083483991021289200587614990419947843192271049107324894235263258791022281019797312642121698566182694061852901489837854250651623423057389697948422371251769680846929871043453965187015269179048574448647091243115262660620165728535565462649409307017075611912206977755295827733354807924987721787817403779130292354015837346769641152155429190143702081381187480951530589193698814579200640855692086498255898850248956494661206211388921187220299669389478662707916900361727843355482587205860807657149555041843461561943776967891176972397411273481384140926392257017581744269236194532339514111644572287506520106000491658825180492644069881380264107420692769509801623446110377165237694007610261525482850208850795643676742544726485783377757679868325665773340469451602198790658951762542687952213433513912540759991142902136679225112978088634412340640257857515653197764255613509518370288036116454811876550318505608352088664579061109992761121070729056153688086207378593463982713795034445624070944381276171225470759874221071295860819230178936304481962291980793190984596778297420970995589061533300285446509637247812703884491736924121683469761415090759085138525346710300991657782542782011102998976075215279611475143032421412262859385190966715332742928421903226456413321581766213388066258960224988395272839348666857438548511893103073052618158655177847057809475036410725063033626740376175091071198435020078017775579904769518734845807672875773466867404372492556491369897569930454111768620482528242536975024633397485417636581490545337858644538341934142694525315511115744412041219567404683207185208803618095953731874316837199401069824661716672930346400775467777117490626474907574576771181612777484958583026801911079404944317108369344412949042249443948825459674367583003729364135727660211830537228539570614126331862088157361523988444184355475554090747531337562900426100041389689271033450360145836451270857056494195222087885460425210903426436681099830420384967270612906762036824505711186554173382433908812175420816711340814942894198417646514421292882743998660164236657717712391954905880263327333091985388158924142324577567867472216096108051403701517695979102454497564391576205780226153588160406131998846948941954377116998893188497278880250752610274798617981023793175356107345634512801570381811523744802956735638432631916843793666629516483028849180407321143504169578891772404137811849308816634134929289053644788262687721724298031848518551932049212092310103139090049465027800692696260284194255697416182818872002475614549823183920786939608388941825240405349107256247293572207606083004826155791774794615107491195914183934434226461946999866887488233956991970098620514854289876087735463676387435812424605453514656803166173884238867865513466814158687311047500004364670668943309665457089176485294128543214827242669785971434091071408454020048740804455031932706159161920086792136401982555152195810055408423706035098808156128398310156500280502953806425299835212843635700977132465690720008330381848628301424524816357740699045513654059661861849038087058128903168050119710483805675009405716169133964483767827469911419507512464436221057894269384800285128983536145600445810239765997387586877912907128621016940821401060758588836406175424434899931998606020939477731309253641447057070401763567159013590041299596162083371608322737798771214013366457071447722124709355298307383778713143570861157216996978953174486682293199254337587587188737823082804149741175866001887372956083878935968583837651399037233403639113139174521119964082573079957873161930798515452942838402911866676413737629986352920782948644058611840747885661168047196749198538642035596651627219001876739038874514284177295405234011654945262448049662736771263598820154250518307930435395212828777105037873287272927533742348805469783865294895679936452754750513794932968822222220205976685478822629807145801015939492880962635497807251686476185483735759271352641151161881298610889890483683846398307238905516317355113916301886577158946807053977652757638420694824862480534850213208721568073666717631281747404505289244165416407073466888554844349337984305531889168231335774790267505836773394419586224124306945320607437950653095465858671139245772250194266359492457626937546457117216051322752670204136582404258908109486767836098563165772516102793328219635412100678445519708892328700336805294821148331488192712804654775299686538065022158603877832572036566009359523139925166057589101809914000432538646034960773893980333440969953286519417253864883472785133914442386240411550415356539850554359498142369775410870577999840187516943079250919436111693303116180902732760774358516712974809030812191406626466297429849495900753049777936218066191955973058961607586195106897877383913483680916376410996017954490337721979670972186191207668331106377255174286352323840413095101788005344108136230010355519671708270674846624448561414064107183544602717989643162399125713388995807303268087920668633215763430176872539678988400395559454176872520169508890845265384081237022022865513491185348636436472582180498612100631456113207578656169793282586789238298194774547359049634935394792673457872231433871635336543683625565695480205357949590865753873278966214561774349300204691721198809555191330415945737228452878887188002955246224898087387436370961577303926320294018970508887946294516887015173093493469878361162862248789558892111559024073494917245832877245910208753106235896057923531469468269161436279560108674117015605311195494608943632426071389056091835689890596103277831485240321128119545815398036301381809209584923375461320625925979370001017766730573959370151491082527465103127720053836933798534285928318585028433850544303210760648538991150851341668112839514922887549896652896229174135723380127342114688481402119748749110869003394614819438725329721541144069641458750272312983751643946047464667030631794129170053107396323244374719662880766292333111084110399627050914396512009707564959973219996239333527336092150830507371957717272300535518101243258284382120371865482201177025076990367157935217841790616150909805748898525609281869182396065180944698081910100936011859846513868127443807937461068232925019399991214294671543697504752877674350045065536287952030379828081072529040216879476376467474212082214933071181266709144663725595280143540912905097047290692028461516554618529713661282843441359369708753520001678854878741717250137698977546804004893090124304564687085856305421925318827512184352190170206757266129127403203528791667876921366859575067143369258277787648078662626620311570904184234601831466780839354591328587001094330238825345826719590871518154650817961419349419453667076726856872572810951775431258871733659411908031248520962918002307557128996167992700302077806578417645333156849944018782289702845726251352812257265005758329689358620451306219796287806571700326503084349995356201526778214805503976738458383834937838715980335539350814344152311445056469521520800474353380417117695456418706325968199124621104799039128787802033364515211564138169510315486146942906397508142500041764453672489553032506756668735162884391729696437006307286087716923654917248463466415586664866750209596506566867790362559567365282688328658776967864883236063040059640831937119235133145237727974002760990874592014275697558976042710653437041529322714568721322504372754641259471589637320138517172951237481256112691045528692961114434418618739156273310020018160085913891328084758826424071830236272619991700601244384051945799449563107500867100534624010068500589623198503591570516213192519110554358022610881888195030076363093712373492989259784975547755493003517689260079739469536380866634667248268690283266863479060658881346363819511850099977292450045075718411792802150615280278418294719452940307716148904586503952844313303267181601012657574847144597100679984827154802542612930412426266332662595737215176101620092712092922012306788808094282823229199788909803999328551881860378087441331541888971298489381971267705174689219247921224601873891122137530058770905079110985923188227125916520303283770796183210406603616072050908003761566840601766340784923047785985379616898340292285103910410663230331549207833220072806645014131205449633960167855904406930273060731534219872889419825228568197582715497454891542875871925005946476360529622042632887020195766567829411242992921368383786772456030253861245332292415747573899567660902946837201064954517247781602904869332204291517185199808601715307941683618351167339932109087409499351862887345678282198990470765287266141925378915916499716595043193326334979074244571483941176798323025600889586153027745951398405488266740447019151499030572796171599571156591828193151435566389080671095064975875991822281534259442487267650761044109470929169303745332080166266514542652759023203267190639687374591298208346154691696442560278178346149237908507183205352818380441328477913876459710599944791912096778589004209564976264025438899012083746076264991617561873473156147472519390737162058282239849111346275308226463446509636482834866645310371822429723105045563926270638274904160166462111117325853198341259898067208932435201813602151248321560345217909023647646164191376322117485308558199740520059382144722016439043407661566053616388889749769669003660188510348040460747355628916399756186236453522877801031691208236839134394912769117812691195757062059476341695193973385536451289568162662299910670842932798620324037658884815227753060570251958311424323700148277851977368417008661612793525465446516564021120313674263410934200294484127069484432053167409022174117605999424517558025794555057692682226771199896209910975741720922428763517256415665206381325862868026554570634839774682915688560970443780062328540943837327553461549407618492665486742795402385976656965688804421121510172973049889065439695587308297217293094081030086325440023780995506195402073435153692427211580626697924354585528882147199909157426452722045962044496454256729233586443833106922454851840089821888805388993755832091498693603758726245618558398731392880330225926914378470737728463192598280655665603345640657942551744158130823882028992791880007601246905787748825757185414838068523215049839928507056264565675649807965491810482646975755417845494452287548969355131208778168671337110346392983896966934512721931013874405934627961462005641864618340744420346079501850592985771272637793599351241624810044192640505362787646862419973363856149735207631484991690492628492385346231459918666447236844523929575657745375957451113372128559833430537029258683394942461286900167609241356848443034886664355655286427851418791116900695441914363281684839029757849572160169784141915522167417660807507549695651843204180634740569461422043224242237873448638347627048175216549345349215441042746952680112167519965701160804765689152590820165643916160406369457904345980704539146865395449205511234175192789985120342499468985944287822811478497870609661368481328113321714685212992467700847605091430641123051235820659543902173305586218497086780436526916935340862606914347982722393442123064827388284925261831909690915120833890824471172993309274177091898895518152731712520635892373119918550728815842171726445870894101068382286564042328660798547973733710108577083853747137669168060477773798939245268859651844259618315096689225647556162843749405948306813077561713156923275546385175400049530998444616652117616921104682532945031802210662961394403971545126357692952621247830884224667794637902305749451967511083736589043179128004006479325029836702342679865970173474158386596400921276841722898298067203939466044353632107509383717985332383119101227215778868794984486592299327065861058046314826217407895644299944242318432074477503998883019498374583051271025384154074542964100481040198405677970957495259022935603691270183759928255942826950848998871063883764117389540680011010086884589362028264520247464181276195794757737968092923709748507509133888724990174917669417889702502291560367783196791833683848183065825361602215074401108065675752934992993137071959323386103699907477714821598918376450257868563416159377437578565557932789712163992671103242507935729691120657032861143177172997897667019854440853696735879698680304869093856991670125773998992803928729000882148889329661034659266750930543551481916885622804538894898743575957454284557411731468920091360838687595773131435199686282607765584858681107445769750372744283637996282053272414264986794775081764081712927715661243909296754617426223760454155670608549232702657688824788851365483959600122192466445951158054978365708680870187223310067622006401828859118010892876017467601849605984473960272708610353020287191338860751384409150087469822751373522404721494823706606036057850497395080308695341168019189028374610424855957040181067111196431496683857380349401653117411831274420789742305542527033103793492302073554425738704133667790786397324319003823571942726064309803357276447820112454391962160504580500032689395151639889207980604789882099611090864951021939904143575994517370732751658971211128977597255684340078327223760665082161625444279713068697329326880823039920032670897701043510680723590194551999254650866958410874301096102243273191894148779362413846532230818227185773234554497271683879104154065853044394142760309073937657045985697157988079643379792263418737374391501941163853291551845852098896057276171608774078296942418695158097203132925953543278481490854126247318146723306492436477057900124967637045769119307051152343689267760673408432296293888389960827620565603309476671349428957928337776897325594769314568084100073159598938458520454535403338799887276272183281859122892777100356856278691108866665076573023852602826026002563866356169843349283542254241279293930596900500155500494843375110288270717001451757744203148439554718393171343112674205920612877450129518673430023137288508328455410660092095415102609068100750724228185226346408624605726693904245949667722156227580013028089306817613601134921249043928882195588325491637836665472141101041233792228819995097052624897603996305778909026558561479072767175363547006464334195867266548875207547867948418017991050057130127490486004716497354136627807130880547599018312368040145738164716053677680293958137285489467064751267426728840379223483998068126714972079082041195984811977091425394399395970893714171004331947444910505574581064278706023917253133592894217871112686376276586093634458686952227600906227499458971389606782487520640800088788723627133018191712343260169467066248105942663580096138652146986977587706488150765954345227242893974404779685244377837387399258235890849063872434135907495036042318181656168094856882114411558506747796756587796472094463352488000941436505135663169611587674271611881418657152073268004359339609571819000198890950502533290638660932918145997934982231686948281131147116246949387559651247283148330548312763412752106593413111249861108777607605871546897826837702641044471982411192602755236498719871646182158497594150419695602899889457172735958097160062993106890883941523194582216100752108284912948308303784154252656265168769868420024071495478612863954494144520294172968250722298537777326957981126919399685652719010626235023252565134925269572926983991183773571317496457775705969856260802215069140854616352591303438197895139426217286901025592794717226079881609041976928663051524021028469810075463562211530141917389816028499965685889085250739005695621271777083662785720405394494659816399764515569715778938973055497550312419694407849697752598907367451084040608120835189520371600830333394754675911235756237495491989901218679015902628799953231460610156315985031058827670026730313315193037493105944491031750755237589892165716565623663557010521955912583265835854493050785502136276499930261446651737290532079152398473472520166456864286191057981337446444262142268911487516360971090495163477219778388109339553806336488284053043598754663229646730008615406892352739372407247199944727137038452258744412221311491671436851899600864027665862128288798356192007325960167183087739172459149201359881062669122381027803047893920869346844005193696195832305396696756775610559448466711216880511015183702280195634999706649014877315936486874275715008800072352641627365975672584774355838057634943415135653563754064574439862456150041164017077235248495211982738773016226624226725553656377337266151954838334700597977667528468149223854506356376203703665766797935786333745144160509374586959721500820053605624038967436363978735106682540454307535922266860594413783167793084109142213672203706230511487748863526132630785381871597201188658555700744717210207383213188274628706048439013177266067889964461323116199716900743569290473505648595252927440506925303787498743842070623371161981366412330542063455105070967112418863104774448518832068125263591624404201661329358458154376566280204848468573914978823422561989549500204202117798857772901944266020116005174570792905235343621681234682460208795027312499196721351058182294545042048103814268141842189921699499839883371516331324812342439216872208567066958926974511689696100951690297798389464973097161723308248994853024882256298176092585988535590140940975551323473323557882606546308148742560358647455335135456085697036605100057809398233021171871783255459957170057549053290993432633128365529849713218592342024676541105682651475826492840142670702865933885411901163051807602271158070944036794219625940662944542505312424327067806960159544250409185670322904826525112532511219389441149157321570295312168680062129233219035977931152506399506413812750287739058632036709419883550145262943539174266720716543560034692019027850376057282528981835636185957237071488514885048664455087178519442797195986826619355701536828478723174531962325461304175235556861627230050219920878665875209439563828595745079322322794140396919125786734271125138655842351543265350349175212834592422815248043683119232713930167044526503936073780752588846213695145360930362813520200701112298164510589728952665545629623947004307882049942408523754350159239769176093435575785070142442126166125751560632262378469803864195985677715063085277283106660859088947286786509696095632787409641648184529512458611904255617057337465576942416936893372390716861156851888967890718411187826703683045090702778421098955470640171898048633985259352028745198109813764549331505835094774427305980029546128470835499870565663887174098704932770729038234943958927187018528439508344240834181542450070415538849862622695924628445547096651233611368816914182947673826332401437972660522592136659979876965619073163504644124546363668103010407939339086405449763631563966763597336475977859704928254230527791625907566820828074694965721948121127325277515542379939519383289810526613865386301446087987710715368636969122383051051048185420982715335784292915121319174754786038363203948241115432923884019619771340701133688677875322990194003072490172713220530928833914694510114736156262611718026164047960168192174385156434714134278140267322218092338060198303961902277576288531686202543590087896426756398786868104661909904294200907210779084147537460168817033190490675598551949379989808920431038085152087696372292143276881282897707756558145289672216356131041473474507682249987447194946769395815903683623808127701074860347506637695301346935554225563038691444491625970605712416636946524639691994332533184721675500418087997467275330833891389663951093302751732505493721734732859553943776099449698694397660970851202883482004380699673636509829913448464020003286090430702580586091596516855568131399258518462983321474544273155546251347790198962242537241733399970361054099737388542060542897323479096279052823032298890811429361886501904939071114969897809545594343233266928559224029495382198816054634623055911015005846488955782123160418539414740597666032923226169158210966581602214126181195003555415189742326657201714627610082216852787513469146480974298241324806916836776599195572835731223623024322576383412328182575078469378708147420200802566304524834868776680868421632384192286209573847809921362230308363669303229521560246618163323468359998490184715702941230293429042180468852247838537940685679019292798202433498143573265297949887641797296925909435801258524667509569073776454435919108576004221676432751776027444918112449251047748807716338601305697215822966066914046997575935631182847816485283120776163076221463976228854320121926878481545122108164855242542305510254583000811627520098694272869519786186241090495153545985969614388368278916588950045489103616877544109792657860650454444918172650446354381500111402515583167637706489233182021497033343714601310913730667781149257531504524034918866861172282900886205988764522670453624941985243972602039935612458215773514160914093381861854103864713403394370305890417170400329570810374950352143871592108366800404508390747848453363600065147632096760147939835032472126291640101382249644023944080143102970790875193668687246434305892691455680743083820116260236083919175140559150663654059079950778060554932107443606012926352681310664705483129253474442797875004040198310543293264793515076211239687608412907712811243769673983643288526205049797812967736862464892435508575274123223245428159748983272003146999766282552176290609723000775806878759842089238210778117836806675177602124853291208101292945342628332487814313261839139870724360748624689823439722662281738987817442922902421959364433610096069341898390982779865034722137067806416575689310041458516357400121152364740688505817262413952921126532085230616699328417117322965658162940096530422557969012953187250026099605998958354468876190983551557378591927512194653203767093672677772587386253838520532843504542773175499179433817457933037816826468902872884187682944769602345708850463602800772070666598530815844318774668055616206673926257024548405667803533854400862797282376151868061071787182908625170734360666236572533853381393496557324818443363608913039171677531443490992049674450023464423200554929982837459960374893889917041115377829929062090673623483455842820655302626152920941576778527641688757750062387423480624249047021799715942089152469288174093719603822229536364554195075591715244854428864826619628258128735620750536733175947791615052780036846157398035542215087809823815742277359303182986599158648009462582362136507820463583907390388860370557790195574044200817178198722304558817544480017177989807294736209649121755821754507019627987696324660905564856470411411344849558290683100270417363845631209091166867934990553291053691483767698491228177679614695586126988027477280321827074093500883342075304294159348799174815758655775305996785800066242834030039796515824475418523741317341682648014652230759211651667671149450749646909031600985071824500898928070104629128031938070455125401545208170318440577267568568365467966361130810432445650638166563821018264782430042447099170136409097219702902947754682076726765116856023740116518976743939568184643091727255831428625460002859265594092430158176725500356445158817966172163245385115475110811100999348988557790959777275200967105220745551136788196126090436283455377089150294647128335106006492190857311033153282492138640823163273145572485094313971862110899397016680886523389238532540119865981557683263543333608910042637581921194187392397577665078012077943664693271744776249453944284825975367026489718982180044723154919711595712096688748962898768016104997792826002094994782047939786109851600437001485209331693806930347833670474774643602599216152207762386255899291630966516626694171183271947354081992563340462635329492470159910726204506059478511568097373563587194086885127966093478802441256238553902271485773095206691617094328109232767705030660752992858719003240823892649390066687543017802496661697922792663554385109140282492830256183089774141310659308514199292555582958312769104667412337995308667300310719266943197818743882361032005942954571447188141218245681604166418623857730138158313310499112048865897083717814734738031154296084769923880733713230815948371075438151411446505267315035477099612602792510170201172151995452731965025654393950725715121134625340606200610905275008782198788114172230007337152142596445323532780145725938555484568753931317598409312938376265383347936459080311081543141706549176612607059761660232232766558176608194110064564804670199460562336175229730248560249879739968029231533976334717791002201785056018777887492504038929878154537428163439776513126018037027668142935708981015047774650442816793760361567147104814337486740481872265200064240832532606861204266551049824620998171442804888518380589218734240034113955428853825095427492097663610246463777953218468077988820965171241840075974984733570142006823009473505601498033392726078641808779612472218618834587786187256236717665636003051880091643399734072015587527865714631186780099135230623332500885931499843833136994958450749973034289811910620491936665540047795492691879710577099319211936951585749283020902072708937324988696835838249476444923505075463948006625653065234566582192916991430169581487387286011996499287407394617513234711326296169376208053639803640127607900247323370364757198542163448832177335412056741465805048630192563949351859616824141081552959223206879277128890330292959679289328987798152903295911722073186913208543592372501687679797888391641310630606319257473676786082773443292448034616297934631515631058642676283600298139611037810439542332079573091486145015586698445276878099484392403337966935451220131948954415287632256087621216570899341439185715570349116845211351930121181917445098895366019638251882202230167426713087245623397276053441866745741856619003294229830360231196016191820513925996440709974002925982065823374621408617798864493984089311838925083274177571331855511682128665645753120811817447177914244675613169275968008061338496274833587543554687769900241932548163305924723319750676991131505780852300435499105249515877530767882038630786597316137316898305694993114400311985550648872976526927839751152521749800070923144178786701189074230358092037801270980770005405269069747468483374857689705010260390289968623231672174767886289768286952424018088913551473149812887571708708903575266255557811551921164593396605729497773542634342265800908281630284352257927432993838202465341918245500973806919196643803949335399692648766676773462948669014375664691840457540731090204400213232542735785082181384975402013487124994029750329096411018373495136357136289242800756843709230069323720942807666954919414789269634964135524574738372863340746356317868438339531319360584883365166678206842159175232032389109632676902405203466800162263670670462081274495280392580285441320030253581936481302581492222089343732091265692618122647748796578880108652174131017757533310301846319279272573177218010961939149413385489041912250348559918986936924437810505130836473157791583929124912705368152732663324450140551563106630592191353286563247229820289728476315325932180119293504798412299036807789689547929742626956258580982884541382780472458811185907427258469304819742233499657745487931092339686056278208629967382404674946046801960443770609113908401575930156817482878061211874538198374919211212978504753384025289688951409494817906784146545635863215651367433249303045219083430631779793213135837891405173536207782446020974304701203517737457177331306153783007128351743955451049954178173252573522316532710196684944373324174438809517082293283327944488847469707611211934217966514474658923261668120519658732160127500638072012723196297426934951690548288794819954305004023875908807910473388947985061839644647453011288175378828832246970564970859649977731345530014668706852387293342148568185273906932880013034037707481077220819065248618814139237234442257566263574444831416884470504457054651980815857008895652167479730897700612719986019396500673830101037214237823686571600575551937064898498101525950104121790181861306746856125812714599778277600123432830122889983257570027001769788022047399993428712182734344925769364518264594848382151881844854013643536587115799860637353638274890720206088085682043297504059294115407658561590856297552134079766192847591994437566764132964841772705633891183525294323443904046421514091925611166660526381679405795985901202221098778675711234810385077678979292347861160661489374826092481398929851579181117295864675841569880249617944070459070476514838236814694218471312966096771231572615482670882195427943171349474341188553395565308098399160469723362096159673900155379771234377353337342640238083464835622967554513186674464040561099892161020913328305109297237657954017934950818778460829468310295433852452032274088523547393851315401833402178092990809265533204662434374939833204636699838378671788724373017275476180820040731724135708750921464483333868634335040102108665377908657971631113018198991682774070852598070653097223949638969193291317577130660205563016463045670449642567042872037055034593286437813315892941639048765743320772041112129403282803442899223829914069482472103845414563624288062858247134955223845667713684507757220763223973658373091724076187424083918508639752536632496100504114902921600630427157642209825495618580486206217324436773472924636277464646494738615489665743169817581474861574398875998882396106777321122078494409504469136946750659488463026442922662604601902886149830687345801003863916477352752190294029454971800679996320918421530161376856688390782206261126977245831540902376332752736525087634198529575469510397233322413719200919680113223872660006869673345840102230894833135393744628508352085153166987949866924746953656885948200981528069672449886220021811238550201516863493166376268735782592519237393379169259094197030116708371211243135092258133416418320271239953831768459560973382744895246472503491922084982520116018683294792969999814829809965495200482580958755029847881764737570223893937836709756330887202528584901091413049865285064733623755470649948841480130808699398474361176144835292633222038544257573421264850228730835565950832493006814096867640990181800296677512454911098194849152750719293586598024048323273178530241964443281936422359939717814890130442168732315848289354496619362316265235335504893005398852328823798222731725783168189102846762389135891562948572504235170927239187213876180290789290445077221519522822675622161797280173790286770718751731433465457577294958442666173564171752958372162442356264050376559403558542345976783401747203623382538085283068893202746418465354250419049800761935989213371747936991669222831226085747779993127640854858706845188967406194654516823601981122382794582833550683825870649242258630048907336094271837974522128899638851264124687687792030437276034788078145463058838360939478648639407058262386204309731480299330255681325773586538737642159849043881564441409676898437018991814815926662671344003262919565794108109335325096872350485216390012573537817909144736541573058885968352478471372941645999014581424799872446229569517553414772363106303295612592310882235679262951748655541128195652576244238607497672985278935125841040654060681139762029148699337430182268174753468844819523400634567188419456806657473070227870316113784155410180346650208027702122604201432180420509980846016495563857245489306606821893333633674766495193862867312661186806387113103305868538271795255540982041209135352108964245570167914279069111088248813321623467925501102463171247232547625172960784949875573228208896823285407734352287711874239223046437402392233059332556407373936506364240709604206207693978103901225118620604111527345044251689352203275458063085554013634186939472346465723548598237169059759968803451817163151833083857191957893634667973583957265554043874102101870145679398434314579370338729059520715498641352785155497137917266121822185323290035097100136233208385154694877905374153349936604674761309791912039909750498149815826380752301499146718107937230347181986620791055778549583815676259087778946778903893586292270370422035810109375567595598782768904482104303401461128259691777167802187169088922233924768552521027786320124705948968732784355028112279238527650948893317194643375302875889492004567605206063661487019211317631989411497019759394509990665144654190389893942556487200583732340465590962665814898505946979330513406335559055872738414614727202944526037449080076173296447951570486115400939142954412048653809558016959021900668183401989284662640078288018949526893855705282336796409334603332323490592850974849994915431915089774606690450759588374158455840635082026657936498830884838453865595055937531550832567448526570691930220079425987975375443303661686910074048936903001693787778444932731876411770706738345155610857401559352952121173355107832184416926373575642638654631247242848067253056246817530658606792968829488353128656275014221273482033649370116560261759739540760690035815076755290528328413821088622202224492770708796998785746293163227741134447036058961541369739654197748007788854753098804116966072183851801612393761435574012344834109695903969500386768191090499640610669275349979558637286484971440378407053142959896878487856042579099490916934855590449211623258281717392499966546884339935907210373445246019444105835817518883884520762893876362311364904702554584948148769764555091416863276410370106579194777057685960267590959614294683029125462581351006858822976793038082100452768557390210946409834302794235955642216518427033476676759774408195747657859099596911130095020310385374265461067204346559515412940302195092760573057112629980713361890021939711556629950159575393675556289229174175299838258608734183936646112220352056327165118505570950325096685630247919047636880419051069473024409039056199059593913244456981204125576188537596803337893943546904820823289430400537803808903305583241822681687526658857005578013962154660295794805026469253509722256001784921641473602852669516711633952862189268993141648275118718606912884109251662055589368859333169773078508902124577826603311558845453944121767002269564100759322375339036118025659659084934087310397309492808446075631385740377820834724738291460808892105260731003623368466693551840813052012040730134953860913957674828627203183931926090996022553062340218952243202979711638031315463733873626757920562955273475667234288040998024998216818042577227431512541155888000604572181691644742754974863424022352182600283610182215371505482511996149496031631326639082307660317848381452537226466977113223213945738359350624310165568081302501554525554407997991905049523161854226842680804467879566873788161148943652063181283274933390427310302629800398416344369553980049101939204028050547246465185869924493564619166372524121870924435285625004629338847113845137966643532167431643953013387344416887775866291632474906991742746784593841801546361101628708244784382047296240555649881319282792356051104804413526187950378120667241084530436146379980270104834444831942673223355171710869275793839750726683696042855066999943280063700457539971450035964129172516440533966281144139057041658969231676434367805852127641096525452773523192113161920841812673985916628950559048846050801561668769085754968274849277721723819419563777324599273092506791318896860482771494386967891603341821293946813702369933599272882641381045092114931957336711081798529183536646613220700012052137768686550258119415189399356067267684474690461127098082277351305551820065972936055921213660289827921308644778933187713494600742495947136793244692895776107941562877189953582719628907471883979781454520748922560233517086664736093282882631123295655004655345732104034490003394919993646492633706158967476040585725147590496516303436240921076096391179403249481457975137953344891707103953724101851347296511299866649513669529139997510850962933036056249286609976879925684983609345328595560057643453088501539241506177397814181743412087200754152500954156129565475481830535275132737643454175886294081129061758540555768721631360959918532576710992863231435135851796655888598443305973194681410920051262993347159000024696377285439625371833888972026586719772543382320530487521211959085031044332317080233911281640902847164444353047036624893114919394223169825940144600314458383089385913619423839248668193788940341855289835645519568480764986724411595283982015735518673323567876753423424155661279302256597497181791430306356888475211121978161794354392492698222274409921818852974667391743000210985408083306116174450394583241497707522042088463446947789168391514259461297679240133681090811260238809526191827944262055354497305843856303919239569918485826994879947666102428255883130015689028690365169764296340053596871499412588884590128668947022579588712040469722186963213710654850020284811735070883473738670977706739103586603953459111423528716293165573851025410275950077587495319726662877795778929463665227320270966073304402165524992169459552177030731556917142296470565808021328442072173505012588192992061757768772981352715471490129744693530073602142886107320039392829523605318833232466081563442577595560008032241412134652271336211133802070317018617870541013739062483469520638540802241973557071067088201632724144477077143243209513087201576639040472568629111970399598342727585593406942885262941280126343354278528349755534803260568418778176722842743017521619942371278025518272796580592905642509461345324731891382025206570563481934195348627870818607199312992414587330730546672412522297643489106793440794361512756529048485046276932597250200537770232537404492865199884782536147892157498942190245291774223598250920278251252355300713548638790144405145330301762833774175098444267338797895646915336667484570287191689271425251921117729421548806138550131976410671007238550927513565430072449944856790265312982288692575077368901718537336844006579526492676423246792973727512768044855601236731719501442152969640210524980117053646590510552493786948440615889487136068363221853347079741844730182526857366207352972568679999923607785268103186745443269886514466871647720342099247165864590144518214897611786155349057423746462934488925927863013262478279285706523797882942502177099964283940453900929326438800895432954054552750752184535757751332950282230299163838031486073380076861244093534632301162189333191199916950774063463586526808347176157797042314358443065339485487040167995143873967568271419644376656883809312030275521118602075992664457601724370653467615917839463292729081349111779192513068437169143529735369071524768080687156239292891874949716855679469933891293072307126491464828811307931483659696841369774548051303781322006444171815028175844206131286855958317980795962662053028949979812731182853776775724511491939462312779247742337778353662122420594360475876860858757140980588072323338908309813746534057847860174814195758195061576181096085383091360984955630927260698881480065915679546464743642817652984838891224454613268225041909774337544451232532317222739907456095899557459940645108550014191440522202585427635764269935284285261284031435597476239324043576775454370210466894587546629302412377258467131244750079832323882359129761944826974393956715504500233408089080875718802210786855643573372954339745568151528290877514016328178225574080481921285457676783004269625648969927773665105953875454046148086668903173021027683323125206220950520992259123449179732214015138405553185580123061027417415983518375953169947803055760698205326018329857523006629155527358362598524889205062688666214957926615368142983294605009066644501636668213857019058806933552522722477812260631139354664330543928838262285360958110986473018692748676783217401140399339279319936194516948454840918407321214690103544324078392471716324427827524524474373257957805245573262183166805268295624594961016073918446950034390959922648719567229759201062817489447765151428523085450680139926656549571507782115470304999209566252496912803364046656270467621307847479551535989313013496659375906331306938441301700988146211627748018755066788105602424500409767359383529459838432137433615589744070595755411042483494916908866746973174563997825348871214063303189144373563656711845227352792990405182948636111754051191999214456287746088882334021282478047534697062313540060320374220605727117893309692555846372636482842487336519197315856014841615354094439652687720559879341655006584865973298649521075280405533253109645569998571774807813538622443315649859245801830948825084740022295125305423370438515007882939451086088894669905741120550569411320555151501467224922057611006698967090853577799701342990332617519145627343643020992731400407979488580340059429164079342776823161786587308067326144737644376897851626297004982883309020087503979037778242628348729420210335657713050090028852639234309696070255346003552581911344892916627482577161184539641881321729506079590729383706664449372055184312242478660614506131077680373641725335439952673618913527176727794743538449396805431635193852133312965847795174977348590293235041976751570501649945460777110276205577369014411800111319175413135087865706613095260832199890559321423671786212095578421742484541263923518313362606630455065120082789886748903071684464476453727059662792125158289497432117805709095625472129984846911201908283614149426160236274806937157706088094598538289351833294762221208589492895699791042225240951339099958374363399710763909834617421952544428910471414460368738271769571534632302241020773370967510539244293231319632869707166506213897466001923345053948262901723916322866617849693091167426621925136806519256440931868392390435948615075468101607102009315363524640253549494262252456711258445228533053672904370736988938029519167879505947450736192477518668973845664356091641731983000252267417372954864393714576155991789139311715753847610788193024825901181789013755478022743840045030967451514817172799581123809396438391440033143116833267966205003648253717098032517098246320373518253794646386597991552197607468137718270480727548258389460466584767999303159316316878990121380129512601383788502321438130277012022320379992489516330965100040612815365545829701759156459514204646515835052290220322897759484146431116573963413946230723041177797814088808952043409162996858425269836000615317136548609978325614796088114394599858063508627130048109513528424099037292412884669450271308809522462946624140158078377227010485394897735211103362431018846216044547415139913396011153965504755907737488985911315905684926320718485452659227159608480388553169240535077640254881183506882494593669595843829924925836977344589319869078847659547106211287496078530224349857971617432193999898056287082858654269604313267522373685859257955223853240306105051303592674627001560781076865758347375662409077881531102563915357536332827535431113170642066050779696325784454881124126639610374585856408645146958842362920053405859410150762143105560315777379235701527256427032257375444460005557328125092179261049327440678989946066971668727787721882726791843392443528245296216532304281683205154974029146763604173850568534475497759547558378491422325279363157446794169897151044824672624185101194481100791616030741402911495204968971530666288358045484036983507938890999783348920482876518382786341834149347003288814105471186051113826613875225319966139800844271637038004245811854723153585105666996596305492303094772059072568688207103591152601330563228717736812078346543658197496353657382127546746138639428562251099596961452001562259434986238073097971976579089849226182617518576663980855156165684183461863097954119863695466830731685125619751414435563272665362507168774445945890530664904251395049874756457791584772639557415190930863440290612910752109424096494957074079919411967966509843443785675746076046922790219052374497538364706890778687918526601482793608828828834385996110400002772372382222040868159333770010293496711845865127288421047942791550850829850904927759154841234193939221784508482004406260228922104780326414939002460478193236899375180731017763873975946465603461094455808345017584790552033240654665801096407332450372148291566449957647128589390249203174159724438548977535820699275761683666174536834469703254685958756966162712187072283368621465298864084289918576527488510822726095500342750611346652766938558344512470411871572154487671326669953982672660443899932147968930106070417473628122946813877475929915834227185603859526483111200461258507480141863650169078872293592044134668575387085480169777051410235658873349931919077398617213545247050672101186069057679529220661504419128863494569383040054834064114243116731483373691678481486019996551556106792658932212901920352240121743526486630716724709309583441381500472176750489475403257896342320905065679543333992508458601031272292882919853302771023485790252940141790209978007857378316721676260390346148136174042946911406625438928001186387506968157294360878320215161133679528319264678088445036021080553509337004633467855235670981581642230623357916353071937553575140627755697329667284400949817103100308184493055377570866700031088098199401656766356537194341895440876450446568278753110699693939541334522937662089709339153320040831501337507345816544875237347480761176309535264196529402494361171447607228795571583602896538260699713497842638380826556339433768926995618888256391887408783097449778879428580229731324217527874504088079343850209987161730368606630901806600778590880107155440445985426637614344387321383818873996483694458579758266214554951416821035705034650121345131952707005620069212877522284204175324315343611721281780662782382673387797453709775980380628893454182485782354847066905950215160387954816470297659898394220794426639820436038788456751927153870589644378937152269164260079053038683092435284554082958465442960199703312013638997665419525262862364904226289422009785816797315735052135592245014556230073008467723232632365511109967670911060626557284673794896733761019524583094712468488347489781659324460301444588319153043529781419919812867162326688985271846034183068264756927069300449391865203405740033234727995545146221186531338721557276019686104716238379252867936427535425916951412270694632732603017027834520316233852236881774767429300254012080306739181879074932295550493839324934485959415971096188084687682645969151606226710069576274427518302171301443081734957537443873236438330748737481431402278189999368406961008383584870128113121868146887171973682816597929821941899548318729236182699308247204715272633667591198059202746515767858995384045675183624439513168900507527425039659965988005590710777789119822485980951835729073263921859420886763773068384815370488505414751688214880294466923362532079764458869203423521249708783632692834109034608212969783324550928939851091913344266349612991004532544132214752793194915389303861932990318136871793384052391592499953758273048336448046100807978087827025558390510283849657014575417776401890199000169716678274931235289989286417194457393537238450082752598484883575334933570579346644841865074358007382616483103156474621986229131191425257011252762312167981741379486563310907000940342619343813524650670524177692368803633502715913744451076316316907636358446765705834489145418991409482882630571273171625007427826083188877807485718412424524798546229570261404668460270387397564570082677397750623941230183448893053521980541284050531591212541719001871155956319033650684421083462372890788110853595235589317405661708810948196194098441403679391875907182200610198038057563103638314187778126710976693838369760351268711724651212389808645304649803406872656685715276827697737704201729318161864333555834791939902954293056993828450224030261240410812737653722489294422538391018638253695992922968223588912006934421479431807636891432014179672338110885340802465835846243485834286308901815687566803882768351924899774277832755405046445541600845319969984208683517633686259749338395874875969924886025101809765446422697842082945206978507931672030506832531055932080696781684855469136408767894045568459934481119413709623351310077912738508065772185982149838237164842988835129070060182145452421540525164741123495104394838348202627072028795838090233365322978947696135150662687657964074861997371312655844222175142419149177084345034828737735083530643654289193543011778824586142315663889801153470328305777456551932185742773681633712665334844345829307074513319846843919612639137115024910357764935734317412881189611317598928068008557065408791162576729109819051516017623666925534000991627997481185599987505766072064380587443534809049941724848057456115333528641797325119285014967641740142638153609643363848255453655081480915166212012802343643199598047383696645264826460527644884664802156710391275373060123247571172714293937018748905529581220055115955151947198767828625879515238634971492865231750473318306565533690744344921599255936187330613770585255494389041467137076703973469960389127451563503926637535066459094628385888318030627852983540543926666227822611574976172556538045830934616589290825350043196608545893370695835769030733323494219753306763482740431730507980202014262335306939409801802690999912019588308902804786836731547484669734297002959681460242472575281990882570313730295270822384502194228637692353197950590593294688530520938004450566403322323223832059635319155596612515668050492980695882418371502141802696970087057300340657277767051110171325524080292678840462286340853064874606966816688408080782013441820200084423077908057254386475676917367570215630823351179604702989840044289089046511516853558013003740603735228535061292799785434370743721875845371630898059300570295819674164725031778864102426497576400312748384816758950502925096907855399886046258655707941494853955805665131188542606883008530070756412366654341687222088834115996698973539348528175033652384388512097627939968879970492947003387277769274716718911610088732934950268448404175828794246772081317953947929486388228869651770163175443024247919577812657323856290873929768418514330944164345377278148798019322487892599006169310839332509922365644579517870572620810271210392913415074183136050614387836919588036023888429125656716533419687284840721414457257686861556317183852619820020100502574660196540348058615733134800170828349673573305943868370483763369331404616621357568801198553046591470984547942259782411073693353102769107108484431624840653564840136352332324949048074323110085753961642937038008223594468038429695178731784066687408215199389910305132741072118440239496331318864058947513880093264545320328331713944872022810832486320950985643091018021735747543299172878247589362372948152944214175557640539446049452508520490647949910075217617791154556635017288887512817002248631083417080661369657716507050194760921712230735403367975350035220449557602798420485557133741872163777701577050142340945340498993176089345045448019606273662115782962843447846842681281018391444517537481679122484388675336062435799532464740110159967573258068544583172234023487093117444036051985309659975890602005668587627857203870646357717893437215373111120329717222725552866170970825681932368819834856944029986440262296794763207429569367155622841622673243558616670343890416969553212038547487439214858729742983929492385588328004826322915028956133785063340251142077981513549089433788147653287509878704727237841715147181310361122810787959112175082694660368534390971381538862602147746146559903416740704610029469854882809200611827393946192340685645686264021278444088686887119224951184101943164828952885048481673753248731200936654751113591204604680221208115137432690550666981490667117399189000948864197014039362644739031660916426616526851058715386364135480214490186023144825548772794344947756080861837698480786717364568673188291057554412234201717608674190846988251463273044090933050660998615577209413450114661273903358283687685335605443960349096681065020041111332279266003744819984636220822500159621176584565968585688981117654942735099584952682971000512288250490348349614197184112667812407781026473014285060130796304598025237179958242728225357929035001911344686562657223464062371471926860570415698951128532183064088395140182043813757142925018993974198210570261304010679856818563651184628919618224293245915100735258347422706850215214822571464546850139505694617031689581358262953316924649043274570511379522764698321210438481799227019510407914310224240884610006878933734940945437436128611178611501371733314335212419261444999921072328872808192225186970226779266598330133203453770137664797064122187510786863680556743287862630588422418736199112993630548069390844372487173043399991633102910224392530877079310446857965073542295809304322257742352472233500005860594433804484375804054114012165774916082497440889115859849648998395481868273353309806206036133130847686433319884570672073979727992872477417012019863716591052261623726208457417462287401656170687424280016433342411851201344018002247734937245789749583337171361501687648911034037461978464526483330455911246743344925937026998389182417601034092142211514599587653065534166434123363860854880508631758568524991332857041695395080473331399552408880657536541425799540851401476129552080936623691952702959460066636364879335251240201276220467099658332453926638043380080047788676704446894536409016708647594796259219652562079383381082094730887056585328477267457671113253308802681438521058957585990705493304112780805378226483188899183793428432159966661980588876382245328697694432709178658912457962841111485593226327340574263441912646712975338780040484957495004013064648723731522562021779640400370779500924355994376900622428935962228343128827740379158647406591598688073710701151084921453441652253886019329514680648127119467322967704068452557505280634227672020852182905945538785708124819516871153264659271148165840685027650169702850457275568211726069958092957279090118831539208611748223215705927237165531172616361816780845484456246399195492265945702316134571249094310056587509102669419989514319448317267227048957249659505154664757135489607476760611483903895652798840335554285076992592978737950854872632462378453563920459906190613506129371940737518215868628652895373034002967682651345371325800765774058551359875795329797888321782117655821127941759522003410431496003661851014520337082004564215646224898877727274750023481896855609555668626317108535423486646989890736112136354404915356228085198086027601636996742672073161017062505803942715602135847187250947993011403180908667518040402607565219277005439036747544729094834968623490330335158262162757281168476706687989981983699314204326148963447805069886078881350048746060582290382348357811203803117508017508655105214215776857537882174394192751762776164978555943870511050196755216676021138210744837267425501663949786956138999243572154685614005040080082642751258099917646400120017413061922505069315965209093079277912253586383057087596247326688911093874205097999112167812097980803989603405402810776136141196053285047855905062111520972148691202704865813859340848626496429498510075584472896445067182692658929737553662793990915680749844205442747852129425167686561459517904614343557195051304716813640910142935357028585312744990316590260409415104790304836968698811407233254010262386733243712995871665322719070943791680084374963023465046205559406394662861684473402911599428753734409353138480587168584782148575697216202454660915785688661550450541159063131042666761748428121393706048075448008616805510007335490887753309147952295143135955837759268030890042173833418822253560798035927785726784009035741359473143970340386144706889285157390159303989424284528644426615647922742517938791590538098115168658197349154186025909812015160846705062897708395601601266953288026285474098185785185668952632620413016174025371032380624024361953352605863385996164142040723158952649194881778683214890827880278232661229538996939613498597470014274568520206433641117287766583309775816002837627742505003984635271749765340934211562356210643789294444304187892530598664973081310001457080621319336319972459509648719473481282073979368995570256095796019540578419667083854652322061342417614308282656205783750462140875428711548010423805676521237782382788050463275802381743576215846518284965600705022184020098568276198275597067502611847105676561439797530957087890322356955729247778274707776743180769431611846146960626617051341786545457634345108061514112666540068277014509808780349275988028000698541290833101864766263717852266026088351474091614851111995037846553801993464496894725422224597606691625852605599844424380763199708529870763877476758453832743255937653967282862077738941627378990196539864700658158324395446194126359659627061675359285372827969802118283605235984557036808765939693176820176404936761470709285231538300232277904140283886617517493064038029443096831325500977832254705211321028452394489086645792693556435933905389117428050263786059242706794578794449109874949022797426932355393962207255829696228842628827739588485041649154166873435338316411962860343932432851813682460959150898780707118142253711330768567221185377853944632104490068305725419149098601100213551306431879919322510677065700834593975765078294208015863107024022888884061990497816028318775978648500356941262986968391313743173786789239215067501330263048479548145617350121667206832146358383427730139322771958375104955235794895756646178281091065305659861525120369556738607984353892061196107415907508748109110674014183950653201851356575493907563812875847713651476287907895146088495546426112926165119829679470799701084308155918336910098208425358378993397121824723920409440290871179597246823088701560390079860118537547457013258234469379736945841160873323260970531334143525842607340614302845560009163260493116071109604249144344055805684677722591141731173377749548168957624631622835502769253867774675227645656837980160697764529001467506350148818768448555553174045481841957801401807499492391687842226765774548463840170175664686410168330664643673799345257203324294565142433609214927407298902065507104675713458805012645022970270975419813324705811462034382241788312794123240787189228133678750429966987799928017370439360440008428714110564065381822637901666657457279859417846935078444367084162839355980025411329814848588575558647810320153285192033874416504722562326503518621427709652962239023609737132560218913980996551592861175432074226902892033234684780983217204167100480621234759425431289853496359493591220907400212831667707994991971126427695785999150692115163207279226493128985202193440896051743229102289663743036345797508720367678165062626738832966965794904193099947791246954597034847561302958544687797683159983565969029377984124416610685314649260685690003022482003471355437630623353463319350626112191296969672479811181018386982770806974971115982996409954985237163724393955081135970645672153957432067578066028372538245608887292979495407079107547448536961435636239192294363145747039479382614962195521737152422112711839812435831116072175891299918670617094903845681414768947557837242613979361352177381645528814500020698314733557471662889146291555716030213767054127497931877462389176700256603761194320769942569094134955826785940270400524919633480301177951170558732654550441706907114971014472839663529400921000711870982721476697220157902621586197516259967001139616436251123124885240147615350760450723084493024281518135025529729252748838267304841074231628468958041039450725604269837323787432518353915290946490177531760582633785805959359191402349440072665546039203338786885917661304820906997719679973394521950341023361991096261805160882677077616792198549189845175159784085863657568324575908902209495946323729000957322647861999437495028021458640318657310871694400893455661223532937241685272938717808825402359410049164142468733753201828272873395998319264544948419442492644531493108794231438020298502100690802363803435606587522245640124343478516421280857793635296615154951792841617036582884449335809445714437311855086902129919096312694896901213759531785764109536240375653781453433037215506500025339958067301825175323201414188296348362644110512172541418261439711329763109451512753744387490790013081720451957706129548135122056822023040442900046323437365469139658220195225996589530440721356380067992770740610224601933755106777550841952357590326370731473580617244839337562866474618043100255020324829164506572766012454630467454315837969292556321841078249506737658984198613229990676386808030062554700338146147531105613875560270924700464156549576688519674512327011545117862991269869878305844999497078275833412067414323114375900038721561752100141722541140315018228426689193359752645440826748108605852412962004193164246058561156514562896445785948235895381154860227007033763470717470689749459860089483252014240993399089516113606920569583513542463015760443555087691452378882192804507590170385410523885309214801419478282917436082036955144938506793804260439083700479580500248124140651254943781090476022170472541788753077337429951871387697678719902752101269757457278357258970937375905409092303547931347957584362507513240902387277734419284784033597905501389853443117587183017438671071105187023014001873248629386612615604948691314960650070461658048292991153957530976903482127026747664048882804081736344819770498499173499142178992704221247815910832491629407878990443309027080979705069202572578027402670418406931386557380104149896733829870909987674164985481891181777479553138858629600946984233919049805669978149817191250373179446966534866721519987098884199717088561629664451629742768049717725202451973012328670344971092577278499755112445571995632024195357919816718371010544355946079425344711550220777930375345936435037895890401864476276430836071816008944575358983682406527013678380107904161904244227870948919878573843552491701798186360101281199134464802644645124571026510509819503858991426811861328034183086504210895238985864578339788463841863486000841636821510605747631239670030053744167125894086520350705420325331731157644749680872359252234072667319211752802677885483477390454319126559033292494354894535987451582616036464886732114828697945990359026367722594917823781887633478549573576871586842725291881318421067082628760382219969250657906543620473464235280508058436861109203338378343427844069023839357265623861825200364339482378374726174467166668700408537452693103086775623013896863050315616909786678189747252520320379873096766370253096178593113212056480463496369832808852633208351225308726559884271530404099676724343895435287140504337743848549206378686842142798614553089577876897583496776672918714015953468543016003150842124390853715358743285108328485612061907772918015853707370242302914969357561268657703605061578726815030394694243453161153441241609862518240718926214450969162000680856643095165505900183991084282023774841663547446580267227667568311959675273043544302100576890012605477400422854842867664726921382794922977458968232350221666725177225234343065419525102579799666449945446410830636666089816523095253551188675641372986304356551703552526952639959765446226079347457190868161430135472845422163339980098151116043803168710236657320717184397684083743410147088113998454670289888303718658887783586834800343454996503226150035860794793763352019738480041839921881332584147648137287484670317940576524896555336855408694200252079389597624111055857331193908908684842632983856751791807630613490661109066930598393063061193446089749094617729837463174585083332656475319033497208443600115218388922788570521398998070463804819259944003437233394051073347180677244684508532218071461883140142979645941927170381082563071856150494759874273493250155224139682264347373941607796178565441448736948623191684604943152925259065770039519663118599935971635260983486299895990669607409051371829729322974247446681987530994739315547181024743246608247625992631586857052390613822196155895083294428933057127544905815327466644110646363924859161330256087624062444250322830431864769966715446344730076394207569948247984815646379067360070609210064817981227413246718360257840904253309221703452468492772266547365944031315106572464970560596939302767246463263740782803680491230122461262810715506536529982288898829878090069946143724915579947333625252042420056227898898851243249519215911046151090444558798732067255717104323280532816852582392546673962328084411398280988737403417211932233643848939959017439478827819378101076405958497804180706779201899500544889658349385675296224103054201120288072601247177008714435313614100586423231110741876945045136700813798811656751346657679792703641662813690099105122738970086745496830490913959370351510306583651871497086386737332972492473750260852282296513782759780485249192233137594895989200334505046948379371764278335173192050711321704244285093833120708047223980206210089312605500798245869550000496317539555872164651622910345137886701062225998233593290566894637328105806525970824241279207910123009622761902088009162545160754559053421656372901824319284055142701375397628121165490884517230265484967858709942216977084554068275541270185473132248415718833719972934359525754242603498176952994999207280256101014043889185024854131938554979909626996506985147920344496999460304935923312065460214044357144521345809019172110716330033040325511916796531199652756917495881589118417550398364401708425975496284129036752294705420434898792939780994573267545442201493993530233819401243616221198553871816676492014520379693499520716589889665680514818209969676721937189233427656635112171066557642474474512729502064344327145923941522064550031864657818299484425847771538058961676689165765450036944067823043094563518695280182582196198728863614229144938398785045868586075976963353878215980302190981172609725506719908188881395401830872549679391080685832137386603648990566862803705435456235250553982369515594660254772025705157424684497197686094851498924059094273121633252731089181576607244615196154211909898781402599472844010107789351199919577737022456067989990594340902556683746198702922270793448193181776608224196674008439448913989806182042355992830188037072715345641197401889123635220704608246504466536803945981071683778468083038148293788637658660498962472494139605201171020437406698898014385234999606027896390698352999063596321916566039779444105082578102068789233435684978695624201953774281561496016992854875082104999576715279250647100986720819204974085359472908764853464533049750031729957683003978206126085149136873747075454648021648666888378329445502884414859788430651363932398278877531500070726006125092324708407265790484787780413963348444704558579755246261681340262706092789385643824762715950368510268883436711465853143983025383887097625824437964887396612858414049501386712865399052347136387461689525068138479736497711486874990974677469344374906448360692377441203482775316753634097731045071111228196240783951187518131820652810275807948893376547845325123176113153479153099851426864481700832033653614334064263976592126101077081690339343477046654863822676714955678106904042393574093685235999232180912237669075408276457526018975027008126972270977455598442530990388519821529425737749181722758050368627201935632241488576221624853956089598549598190571544349814660601453855710069157764531810747263983488090165916737778978903758357207993860963527462275021614331572461841618275816104933444393195673601765081268172584110500120530124617047572574618318786157211121987831395452697236270207071903934186678345640362482583612944984896792780820947036637739714019799145893586607184157838578723474045230639294234027227683168648731298827382500431885020362514034167499770234981929171545980627952208491369715144158810664626512159463655296140964732780371310649026408951665525538664957112538079791445403846755929689778012957315552713607285414991639912696195548719640058997653322164454961089607256729216006213277152068429080697817228683396605699232190767538841619249093547736422186686284362970402022893303847374448385151231998759800816380376329766440062608944623360613917249774538296072982607089121988084497377778651577536258085494154544496619234407304985603432791369823772569509485308332948894344912993220566118733719982930668916216340508959873230175111366260432254528303639044517184448698728535391592385608189009567893607686056694822958728084340281867804468305606483353167275584202234421270286924124767637371817873887314058317721523510818615308744312665147020326528131446886648350837255322971998401515083917961779483180718050393594571761564120475787793802855179467830781419697553892427776659310529153595733059010398455869731464743478565652028678101839075533182142601735533659648986149530739612856382087558742977007698266760869265809999748754545587030571262558956583423188438089182774029826119275238701618715321268410129746879174386861214603220533775174823691004846639270907683721152285771520525771188848822642639688876086027895291199114544856730130024157319364077787406358683299682380135388876706983506240584902697972033655589941495806528879997450514117245899472291355231376767535851295452674148828227042689236936964417833791091846092197931797766758674970246956825830141698558774968227939121463535561528100180704688748628433914627998267258346249302301681396982328744338644109549002943607323148561222654486266297277169076931377021735396038458536412657771641731755849777078579241999073443658144291986310984463713771028383375243622157581104021078418342877907148774308891179319670718063425844775701482390497725279581349739438686583531938597685330411542616959140583265393205759983579606995235268610936088874722014665862418826092059552117565615221410747309464783233469701187245520789118555274441273937840074348767997073335647554091936804733649111362074874810863687887705979498691290509868999856289389267140622826584721171117822724400822018423053666933570053561234394612133435638141145429137161458369915152004246642335030923706126440997780511841918081794473862284205257652761168599967159726915110523648573284045817124130978407971010080137699562749472813690458300861232864670893217511986433331895587556308210243509679139540747158216506936546529828310178867219444824640673773740609477897027845976424394005139427666484044700307889052176791390554958813350126384548386729900760956924133712523926944266793133745013004059912586608293034474366531667157183592679551075244706822268699091981350377566104129338310235731038743513439227499452266056316441632731676189305116012969880653128603720352042334452895188806544409486462053594991917678918797682769317302825082607032160012537185905475042723323262224870016253898954878408182311221048221510270552627637973997337437499420199978889784915520117927527635298227595872206196671313461023473356266792103316819531978891150379718923111910104587066130861843872536163877282320566096801789665972840605200607983721771882566667661626399759415530348689306776920633384973866656445524266776414577056687525392788093657602844679636279411673242870136105007481848970419686274616884514587164327993120236021431518837703497014643631766350146351896865363756414581146899777938650134891392793143793630890732296498343031016833993438949274317118401983016987684806219214115274136050964666762866359184697326063330699993994151129314663842576908406487809107801257313083070230929878230664623741731278547928968748301415378336199672651235318821183548272027121279237602936281273064979455630952806742338679055306528361845862711040435383464324665751592509443732803429959494057153534864925164886391712515553110820260594148944891739268024897120407498344618025440824061322348270487198571408622746447431430237787423755968043555479798788548130832902378960328502713582568802283712769092474738876614325063874866066351313333892664814826466940929676354669346902294419891927764145584502189600988503667383863981003607029165786086530129861645523778517710253211076028809620376758359907155401974355961475114164431697770404588643988199363893630756291553470663211169806328900769006174906888656332852001856687554959305218894837792724088953545097998522349664758820726894120973248514858766399975915636352051499005241412874256487778075382540274641001932291041670507175917579495001575462696623229196870950473572561499204660972891049380203670335946525237945179417366220066807585718381878554730438611794727797445168712176610970335861711020204900166852664584761466063248898642382690806663960756251768009236088986872915595476890195759989379686930094303545914309416295185801625451312726818098198673407767767942600415052622248389944399577771807330376829922988988253437131035104490394046784031156713874980836424968665905523796247125352153948381650747703932878301192157139929126249260603442223827105670068215758883584346076842535107275311180048401944270435161907693157841414084414166430340109531759217213382375965482351274834735183949279071855059506147749173677000800298923834634890590723820488971492151005342483700230267519475789522537657250390868771749992810074355989279482171297057790796299548859315533245079691595413022854791444444215262331655438435730569334684873432921224005756471276521771310372850025185729319184840362152397719433602186325124326899452695691593735265513307798704562209010929725980773958928466893582201991979143001043445429661864626953295913471196561140204140490777314745992459906375669614549493624561341519385771857344793027525002244565479582276331068335066322613581014898351421943820543401493812910985143837443436443153567250939082920212570418570433382269255794853060924180955950859525661997115080187038350893146542521491241948292184262278147206682431970402921371116830838308192092744042575525107849463146486813972080516800934767404842744483359243948678313995228198154089801311348486021910850115728783462246659012591977952815393917714020978704168696487217584069393385958113366677551270103452059610458761165386005407212315631575719641376575077100332168642670722894164099685200668595028621162093289061401476888886721924081671629082317017112206692097381877226136612391758148213698170558460575622580092902169524858219210828389841001627164465417527524509961162269027655891713050761736327603382065633240290989730121547090141322149756422513831259612707673843491176000625814166713931841174926153690061861823128074062697248677974575321580023356303756312824488388553838144982846796790530347676985772555934606018401678465145513057863087278278778335509510907799832998198531290271555761571722183149763930484089526384300327032283869857318139632147285334003152984268040688474328247109961801467446301735215972216750744589932016999772280068965810182731081699121869049089107221970663081730180508267411111258689173930553226257577815709881034312110446620409390828083174418179526237348576637345847666772308208650437038057709058941495457704729505419106709296409760539960570341266746368048231336376379794196050909185705093657312879136520867312819410469465570017497092834469644596628021939021823415197831259155595789989753033553698502293008609838010935035904223456965164144116702882694021193861626786511365811427483231093456450629588159058857447851769575340369411592366908849052468910001196523293895782029873629211362140387587849330188396386585522592916087670134374330767631243707044655391553499616816994656560981834435623322117355426427082065485319930191908455757226737269885269448478136543386262057734252907971498898172370296309167936958850340593007137211831940729434634203273552413884308932790921023993669371013778909057839077928047494129586043336535992174714932895373745160149274595390984759275431124711845346931976058254695301492919641107761193717759335787429521624658526176602092190028444759653815837088329343291149498804021297707264583436535204669159641969285371991967947716140892954573329028288129050033823661122517108111577634562563686103464152757645053409101565827693783636161004906439141245686592995519937970995249690786000387817655541931494337407056910070735449448753518167462005431379873521635514652170575621522843063385870819229779023015644312557234788378563940284809550774174882062501328418608573068190612425904704372451512265269728294165490852903637072312515477443302167667836716019890122411971280141822400795673227238645017538963764676565123243307151890818375074419700537758377063085488488987738499556130163915270377416236611137688655510700337746150418352320854544488360126107379542230800936471914449376109565782715919148503595312174017176760646504791034872639316598554975138742895681095034669961117910069388185177142071152009109383153461101311828772028045817139101888771979131218441978675993593210983721232429761609350933610726082248130834917385247942863454327131441194513027980179274496785672198422816633193452266096879608933862218181644676536768229859723029754778036641286708368521623198940432478205303264148674428314200079350583947368248736976944685087177365294025576748231464936622530412743820410238698248006352621967886796700837122493716236930552602846875209394887669599993272426592986501936454207874082422781482197651056442242801530909918477352536161269778939094471529628735110112254564140715696495018513218341593529001329515815491024440167476282407438007912331772209929878959140715806476456648682659653207301497238684329036702380773660663386339742346844143837281024813115992535255309769095180862142531036560028890922797323637213840502457162746421363281284476743249731578379898423663083930677713573532257377703447574574799163383050518354819246810102448862013694695368156338531380170694336688628848811350934932740699844765700498039990277892239574256880511843311459021724988238500667526716392194406642962394851632405292182404332843049165808802511945308701333095445502540569450724376240238055534520894146785294600652556798767487135339310774227402499325408465660901956999090041796163453723821978224517080441759537564580098421465191674547969902159764135036097488637672212288089440021947350985678662716690746768701202944687352534793441408067546990427521778157759440879602060143225401234752624798041756926711133472179824639770442277495089319646465356574023685471386459160703616158623919435404652630213196984386920504795649786856466986672941828945637811423856043472503905444287776798231083150211876316189789078729806040460338235376195784326081021841769814913372614611739990292434613778844845233206088507688231991507987177269697954432162785873895268210293828897001008447114390890313136813210705957213342921319292117464724000817222018857860398927444330636286825551174801795427934516436208157186763036370722649758417790000099051982443259522023817153862633643192039241224889483082895630555190907073288212812142715480005282570900288910516585430480751789386337353249482845147674001415038664911963890682570609555696578385235781472324970717053003283833328945369398752791361071707138012228501713937978514208256002784366400578346242463603044430803089188759964588927400838828304423367362143824369884986245774896827389030951831739160834830540703996565727457334194508963365615080336564688302416808026741968933111794918416058044009166875292157085048125957632450063329840781871791802736607457277765904457504722094211925571911786374096433412174089334474998754050786387249702272972514821820919921520350876323062716287760980176852726150697400266896439727458440978915454994802351038070473329486334314219860596930340871852533048434220370574115346091237843612264616247267962081263067783407665414412097656505827056570739915350425480835172104906494622016372683629796942541474413307159809838715444909463597062620484887187413173054053020874476232544672456125005593769273623921305179239300951020076411804906016578053362821969007466938112700291074700976540600300042627305868380802881903000783490651989576908940735720141824707055146409504220772444313529370282195507797449551180817438287949875240124728383137352428056676273627743461155762687790899085714789522831866708445821097087027502605631961164557067358414939336785718782840713855678473210599506766762879764045579668008151461736630474505420517021057563344954378600117513903859757122205420373093033737110018058371166569342520456573775548581599173029794521478773628782381518571778861986078764419023853326443357869502755530142624481843221882104759342161577273572759703232863898380370656577107335736720449099866125079622453085484240800294678912697721772846483869043068402863925572141041813100903729926954385222606307236672031971360006303824989023656777414685005989489237350113591468569506044898238377869874855788328822707078480964317812155814564110072326606013583638673392413253051415462880003019704757687838314342483675242504074684602668903279230576864122723313844864616941317288126137353073855553376816296784277989436484048646796310409944427479990720412440626287492292699318540325023532174846363569156296956503359133239087032841708828998057325272692721447132367947033201161619030912013614308694405863125994179836626856753607943007731942184766077894058263281233744024640243793198534631278887735089557680764536860237916130346269860426938880598039656299164562523590355258275366456462876790119962763558947987520639834031434689067017440819957462460890894894644132013218881915046927688549121740891742668826583235618787506908557196327692433707241485956848187408867471626658163527687878457870912746976553545903997834440411821067503617767046347334576752765592036857589928396933699357461529618957746479657093384267522160467582631956500505706486406647965209088806884081365045092212095856202460672749897664418115033934914460211591584371885101158021073963713811209088770569791591434543441423227594422270030691541892294483484321801874536046438753732737455156380189054722894098202527039687765495507502474390309833264563466250794209913723236054310577068328403117714984667580833712659979923611342425603449699352605108608096127294769966108983884239940367983555941050903093873281956476942140420990549138551490517510450632332946287394973808369580417713204498276099894701320727496955736765366168132592667064619689742304897953067873009288290113953150684814956702759811753319965128496737534893570033394143094614077954416423167378986074891963852162584884064895859526347551598167406410729833669795492034603119389195412093027549982087727057182139363570734188348788345878202586773880823202040764379867278697279772593679312856514384275369067002718428203648527508654655394344195292066819622676685076248305584543766471654771829223897301339447461955030945665330280051147710972116235350263502520189201464172569323993736740276492204467672890105665569601736035456665253752631688524825013575403399391906155166926322161252197098065743917361971399020104452922198712445704147310019856056006577533347110599051607034297749790036885962599517039248218362038758894588853505669539837681789390039891430127015680194926054812458404619500256014259778363608148847155010537269005564621906630619840286128812860747208775329093521695822484050127883294141659008768362733388977210690834703109816942331496772429986709165789072575865857320387654036737114517128669936347133585191448086755074146703628611524428497363753499973546162144911547232211423963172596015407438785301682950855551491722230651563364538282605286573999790495888915152898385756954763269755573292902431003137929108403760240316768990000392180065328941300976144525595875500710169206459307874091274947851068882144820639500178780013260705027745443918055165084530593012981687789659902644007555571467143897318757941651721798359801763047341194941743242569694990892884554427665237581417628001817493755164601571329304395358076020493855879496243300739150541489006628376105172392359490971430387457303110985612614082461616983369537647739998941545725302678944192229761703694019040747856215384328986994867216581674346403062614282972682754896696307024793657316835578754888058782048778467853221374766736262298400701506994665852504042262447303981971939458783904532251650982850240214114135075490763431447436690204808860607556945829358883139588915820964131089611648660233167508090646858422277934815612409756578416429283542393939452037073905301317858763431215640541140514013259028576373893612031010615287837078925303829496075866541583734093920988340550806724517825223902727839671836298950607033568766667874386696367204520286977426721496257876022343648801252632052084980776025617527434728621207502123445523232541644673266853172577456374123438204845651154038691082059445939389393329415699401705728687958228660466450642781494811939775060697294646127917310830641985406467747983465624542963855827799788897712878733640486673805549866869035279372402720636234172446891199595840181671382586474680232576124786786664378249664227107276124523175502333636614037317414238035398132069197854539037755841327626255214560400858731710379001821854685550256883292885413668472121437157918283783588603663855342890697102736920416585463534436623393085641078963206218052429382517279691443738237431723253152812339526476697538366481011960826226238317786997781098646112243544851001338540008355865206048803623114277072643561098962942448802911585144708561596171409180584534443201219422184040510428160118359137684815924873157225378148686037799729131216524647883038074086906621992426603039881230214932762089271879963165876962114553216998079323804693052341338567140520743601440991082926215936265553091347888279129479271632439850003822348298774668177482347252051932324388252257739583434466789996274874503866236748881744715874793754213053046760969922160256102334995109782573660293347175894249569400335597490862309311066830147770346446749110636358815475730833064187877141807750116071828583509889713783546202244830019039715528296133239103260887751283240119770153066420768265555703527453477842673131469496401775212995149174300362001912435359420933526477525909389030326105020670894605933958315401000396494922940905552329361879620804133231429375095817511602937626984756148388637039531860564344271597685207704585176294614400324319315345305044481406638177586074642083501770029044408228114827895691741170112825161810220177050030053970292432027905622141061291640476140919561930576754731084637598037527053196730059937391246481635368678002126819418641969118423457335233473095359261980580977361296800649331522376145655318332835717970859259838893643064524233103614974446154678423209411035709264699318195824696154269365107476973140047132829551512571627892572102344597058596702513551188535775100337868111786424791417565534220089085377947873283101356560751736082587199265544001423732440091785901745379248311718403686420153255058735614435127590907891980967337371098075831114120995132578179678565887088316309061005439255135471829127718051342291740004304348469765978323276561684021590575578898280469948574860840411603297297974519070662483269132194613620771045493525723698207167685176588533763362947001973034500004971700489262328547594941894332335714294921745258663114824252517386386019111590981093578290374429559204847926109204370789078735060824809849437763996911976298358997216282571283832150122637131631333894410979359593324037040159733025180340259364923618638147431219489081939839444880470488116880782792315225901038782524168798804198914048988792150822730646452263599756878187285962958167600900146298122051065995439507380660145063524994802926292844658854282429448013960619857017823625796334167685078260517066825732523015400245453652672094979466794047395029322451860740770833483841002604975053088385775957908660116753689201955590275405496855783611519458433069289375990135804578295841653505220105247748687030081654379492818626829948613283687758310900272460362980495878898822985804203706811069539307725211179153438891161265822962949992551363336518939686030610588580713242624685276846827762187765247289643942060080830066854454547917836973119368480918300877489594153244263433892819038015848290657483060228928667589544126309926865494829702796403056749467351334124375750441591482765034075709870811279561145852402662153508710686758525244614930897194301934654031055512015120246999348122821230736338623629588428544802960525513474914834593820312857717136985139265173380571233422888105777090678664854404295161032691429922035522506225449704791463505196648180594501115466240310216381283441553709569586748967147521230200484946521568319719226047789609523976099234796223876416792930613959943480184760648774411597507185473962070632532460104349665630898977138435461157219262808239497228033350246172420381382443587657096618508067172146440108059698055625003212961625514615046427189203522161346880665068007313059539112860850637673406911109167095711036644019407836220494159047071706166524985392437494676275309678889379055139429294856686774439425641776029494540474164069454278611789492574644369169843773134296593356295632022278035574592530828389860086523142095860825972531928518603785319068426241966943445151768495645912438694599628788262561223444027524054468107218278502328681465128946129337581094052038490264765985094456245867608551921786787498488239408082369401808252270427658314115255758773508716980584788943245637073650196375458925884930736337798388301309625561658633023428925815730957453621448452008400796508979124035174392974961300865878893614992279769049003694483073357461350442297262943582466805671945014927132200564671870763172442526586803747673217029604880905153519040666352743689676498205975930074717490456447167456276951116644993334929475851727285919149121129065062806820979354168475108209161374326895714514322913670257169393741446105919294275928844576335165575861429886279988146333399778600666398337224074806401808433445221503617495596996035406704735828116674443449568709413445622693440704139202949885539760421250649083301683223329032050002482776183581110825255981236390375884197330479882522364163184114303000236686097264401194494449634174833018383338872675161157904556812868517606602351040104536907370677772729777390058548008379108940594740711496920917793419164901977152225997566774979988886207913801610159426280356145198969636528913173233186796024688439748872919583898248370225987435262068152374851226943142054699152466938264115345236587872036318384726779717498258062163470469960059813158071157726554916483592335006309656701240210366593764309392486889154799163636101005965243158539605143509910698657178417507116193064727927948951528578009518224815234464587063550150961153038284912708806212606779017103566978942077954269853627331839246849838691097926464579038553128827049873942098521982048572008725389957462606346195362617420005825644163661692357143695792218192824428966502188313486070809659850010237318311079933050996990968078238154077435236687734433204759327710727403721537436689638029581446548940622104957641353786836872088743421124070467658200253309067893737332967621884397425877582040828870282115350025072276247796407377309278701574826116220543820951296049128845715522456493360969264501360553832370992700039786577318811443853557235685598804079391677022630719487147264042908010501501967906173697691953794461087074386513529293069353131899135702774955284856230318739198354052519146348014834731144815357373219462815767882208695041681535183903118512672469992380432397438134406415877459954452468643039127119906114143875683671561740211451169262853584268403514994114648314566332136085175863426475621598993130893136452715362411739206881332374635963363819682394774933389858173062685107186464888170717092781720985989642549680607953239484189990777525944687422749103808058595702199385924383372115688433621968277188433169030505677505993933302625226685086327305105499727475147864259580083174590193394035680315258575625559409172111727828767823130343030000160766845085066130631293899554443522142888384460853428685832777410090670480924572374549048572857776784464199612766498135503480041033564953595340363087263864767888720478249407180641156974792336973381846444437893616120681506414090284658664724038724963551153932162684425563019400994590297451357746736892764744119551729535567123774052494994689496964873524215353206345683565687551060723724466078403673576884673518937125127822639570838114042383392770423841544010497243257180110885377191858695785914034793649229996103520443295265038841834859766318732188708813393568193032900018957375671440969426480980954194407756110921619728353152800789799709063512584924404317871643011133401064806339069998803469327497740120346672284276905602613339754822485402018030520451337355307650534749236483916651720739643326803417894164448301947486408613985613190390077451664987560693020938961476842275282372148975666228816887792582765474831114619457382484397523242134682752218956458025373175748278457512405231218061157383586613708936648213449601859931243364034828473871822955922143761843373315293978627636419314548445601906539783384416922818700075028430391893743093158265478575733214018838311154742441378569249673874673490563388263370124114815637081497837433240557968854685642342690111907272195597821449762359658815574005347555050485286997038688009992739587269971348040474549546260874950710861422770878739425940360492930913082789898351741704012897191684626720995541816763682136434934763440260835472466211462963802432751479055989786353517870411864536442216069471450871468892298653043118188431649955631756198491326827779251898134727432354290752720990361034654435299895245581301638415275499848077986462974365486666840015255533279121141052040625063639283430508971740906918992866462029448067135911365659410013716011468530201417834722271288800472212968930811553267618167757801642279663350095494836781264870361246000209727250015307836067965722498716668333009767518942748813372125852078460583719755390685169376032595903233944606885133692397212274622129683837467238825684463162938102483051717745613827178202824536235304504240388882907739010801599335435175137102852884151930064086493962704168146644909657878998572547474923273057706664116270105019023190887265108468537323293755609419878082020815839542948162212495304813812163043595699158817453309112341198912153525364926406060105301495692697566618182809231687581460059303769722714568064898003448513903199968468717026399819469930029385418444645205900736404626012656780255131396248651762908281678724378008557512172208723359069592589955630981643206317207256059598546683014748478980294027596318497883018222958095776323459636475953559046826254270389576916629576492672964371449214498209525143823829116418788779133452076195263519805557441460624094464807236070793392597255201970146748852684412751619148110940616771251658339513580834818686927108164387629427386058011412470056368529556593935218889256218544380920876198329939846353152734500917974815840278921029136153800137671380263087246944651337213766716578756127107480008311704654445419176259677065834155275023972231668471311784462784269327522350182560790497603663873431972004752697017570586186444074422334319091243995910583224213151614681183504896481983203639616062503060624948767214054315276022308925550661464816031567863117618179804137476523564181208006780353801120974684400186929935870808609048112717955221153773333723819845285023413330885193023846797910120983560791192138054035877017586567971951536332430258058033493793047399296436917215922969178981647093967735710449530271774207237373009395823153682968588073850699469514225758664192638123833539258118775039958787060331781670792645826606092811489047514696129039879226788001298557064244925487218878667068601224150866811534858473270581333623947721888355031741126358862907061983838352950728625264733733532052862470901583602125230495691081205119658570259568574034125851075898994265846510121561138485785546534136368725184133435334122101105629520703534431044975138097949062179851470548844283642397872329105946861582491177110880906737740534989415562607232332590440995957867182286986110844129822636357510768463167706825007671656335114475814075225194397804146306847107045700408288402514977592152191791921608832102150384324599940625048731919719154413355522731921894486596155407755095515559728260445859715065578794484175129034424507810803985888878001855504461473175520445587787035556223854017747030139087776146969053692863474656805394395038172236390558941627150367803874346141060408881357489776036996712325757685219222060732920904705639513311884365911452547692743201866685296669563153857922015516809911935510204287660572597265287302548773659087400638479377117219254951675148329930736831085991026648577197206807156137711959963237318672495197093463624779255712684299123208420963368021113270042707798250324773203659106347839377916999153658520929838482679327855494670316330517238724929206373332253768490088094602218005031206894855692816413820206698771719562215959182688526593949057439438808118153814819953198346553751763614229891793892057756260105915612145507620835577015824487049203526532951183338808451741573785815176621924240675295560320635403027076335411765053462785314846281073234700942997872130702304593162179815734754511705064084616890826342729707709013825206215567261868270076965460018105362975911401965147988693882166398796169120374721578847308949364285670527438258492122767817439388334640274522485911630532307415494583684781177431294902410689952922038419737366053601776472284101164538138292245937991433139751389099223132575141993743010958981249725699983183630577191903741677797641446665415028914165582755854371223071161168831845225727333654068849114248473657006305617064446378032257819694972229608246090725390423571396793099221667072205595688501506471632822311601297439725741673972389596462764617954018425910638199254831744246275169650135602723166710829847131511815273248401893038073800422399942862890261547388272778890153395342685155094031205247135657712989923692933228023683775232652212735950905821181183661399449443959497180921235810042406646272327784314937105141073945522925071893067925123694736482083979130241882111037953797712160247246903289082842746367094999553410104795029775999734242835276827447236753185920784893349097768108841651386922033056144365005326149471404584690553030960847343667415208693064045145065951324886290303024171723656695779460956770795084775579842100076948574989763864405303542632489142125378894548987404359056034015218461615993093378777503119808237878986729752767028954314917595809813937424521779642889335525823670688960378367965900236025891688014642388352120648613360062473733255646810193313240380367204786179534970225529846053566127941861224395117937825128469622103993930949773508244305336467800593120136157674476513427111919377275821684726390364382421471331769782669808669932870820757000558141242299896616706211870254485179646151882251460219765660227633671174208368393491599123329456859113850652212182075096018561142771270059172150924028108261226372464878112245765153676590831812549412220472341355486870477804861741018097381106884429839850333908686711488600291668311285243074619525116702507169354427512035936096604817793676213282777579790452293961273052808941453813791400473292602296782908495853047704905737497204553437937715335344804142897499127501735298305749818292642893401590997827911998553238814446942935664270163037200706781092100861439880835010349978713098813704387149675145387695532503380780623223274266939696191920560707688039084827831051487899553454866472609020076692415495214774519587288470645855952653708823051066841907297875202494409632670613286373935027557339099019676035745357487387796109730548158410391717619661153167969026008951072309621443465496978031969303976559937569099139418686942687560362962787967268473655271508002722285333656538671055167630166508229188214646853641109372930619178408583739536367223390900044770207210338183531040539195971967704604101098757824704396637506176560972381769726420596310910701022042935223992553293842652604215846943503566915031912830093648770397628338109685394019057139842394624289769910130783950950521807905464413248957336177357825122569453476850194107467857011686237654876675072693803882744395176685687335037083571909297668031052083853271925768143368163929464940938367469845792950944793364109298449593296470435703281983615688710030753343045510846170331653247616082805406032745134198520743133955438596632829589902977926143108127376662540441318279003213999718487334733135134853027171492047340110895485277328119010342301976489867179626986711817370137936518290883921137874830366414009516901844199516685916752160428525808776673330909781004390055455970824675372381847829218013622074008788734044644582197287259188565254666014133342839985502483180524391887524778775433174300777119201356439048158073535257871423978038722167647840707327390680705885808895066109721668990166978727910168565808993637550983123695088590609078593628005442842110916170908931631495644382455899134941728615974437774722223764183264393763539782017480687415892200181187597619431717589938810805758934138444421459672183067198157435968183105573981380278253995723037600372976306652062721824499764565696006501009546958300683584245089580137708145248433530337376044710586481235981579226337999980339737746746512051697393934194006493662796418931832151573829066191220102840359396733764629657250863747559535433168975171145556599396418717482675235396438638505639959128175133905867111314143926638247216460468437288217235174134599851093480352214958389714557927477290725506199621224635911640598208105171099848376385269704751061393574197528254354455640698459226112216321011737178077784981827485156907517298081161698202380212422048248079506087606215557163908920217979224342873766727355276254769491570478136014341414436622541039054984042153066337942097785448979257887820222132349381536546442099138121219347255435466523383295475420948691031751416204104051896694978163949593139150744914873015844127479359024101462920905763563646757770001170106544393020519537083795129208822849573977821494955124884228615561276474078343731187025825218014679985691873535689281109750934810770930654162464254472602182523513930926099089935182039845473179137372698912057861003142310603206262732065249954172081716147074130506786816021657065082692674471877623611859483487317116341811433819522895588741660411180337109370254251226390838000758547819768135451775091018525896168287174504264262978160164883999228684968686969095999593607146230594468677572799719757132899178672656231699124667006824849352832601088875070815840850967470363353789607338025521603341525331652049411375756244657828823471241951922980705626734148996986487010277813576079492836854394999687223761356045329872396040678714668943180138299816840763805450858390876845099077643015834963805852010228940750879522973549396080227250630522872326755758699804755184996653728716355078145750669939585884141738858967623064100700013952403922987832391600225852849664501070670609827147549112180360721329886675458963963119821679302256794323394483410612182794783756061143454464150658300615691628547783459024755126411152123254394713316269252508829652532444335155689507897591265716627990332393851853790929025523350905509777587291568985902465569407489763529416313014984224202108752063770907940192489788584259642367801357585388782836224500904725818204241606729061819424681571502595848801421204345495023599303506990461892401039923899534783091537650811269173548370576243308165257823098101536889918170819250252139865479313224220889685774064216789224394419039291730644898425319564118580552160977713424544136279184863681548830192756315259158528935831870088178096458027918847508712543938317036287633549311122829145693439564715868473951268568703648269745972615764606344525038346783959956284364296128453555132802144842385828442023631584744738408564659103772467087569939781369607283478475063569646834264808884960117610963209049829710059829422137861600760483756429132830699446065181215953938054415157851902087630903520150590505038098123303803206564504755161061341388625780640611318487304340575093010164510600220857819750328358237787394381922128287349671117552910209109488432814254921657162769414893191558930299280967962373240991567809333722809490194571125546232577103000624507288491563142956372727474336985536753612609365029216052556040087376324959722573809711686115621719341961507744153641052043035213755392669686236467654049840947869380817839942967620824468733786434446023661472065863417920439840780607626541161388461570136844664918770972400489765233538289754495670682651962966625668953673506356966873287641023970138790890319996642705002146501115847627143878078099735675518192460057541533904426425251427344677545487942834148577981714583843369952976491541019486550340988940736507468377020527827999525815472589000417979510050987637078285428194912062116110195407892560841154623621276546687406467843643266381507337438277327559337614189102079835118760100053656097556768486973614369686613219469084978177733491074726623716926226254045433865786757000767609225986163071758080552256924567303706661780167411688624356803350417945357439615485893740962170925295746979133769262050045107479417419219755507082076230552808281288473220149252858605929232744640345319512814797760060418528374859613969953861027271203132828074912964702891035678626769523614531409151803716739926589365998497980934504878300551896042532385992103308236811511545579380759027517592262794486479016678101357443492165379871438629889857409843059635975704127349362327425181670540095788063433665834024311554799566475942084302811241940023986912807726896910589139729991171703009568034796796886903546520907535133217199001932793070087810384784165794650930786205959926673980990434501000318027924031139885414403354110829995589315747878830186719383913681629960497277844043412872374716343866666201293626327634162381455381410677403166414556605971292198464034399446955561949787681052711591417369859639549429063714027703390026152150813593079083474769564198211349964224916062604306201176700303607301575526438548615270989985822654001892843958265108337385903389024467013553597402488232495292935260280646799052149150225854631042502424408728722496942682889983500141707061387706765945200539977307586643890129086036738708409279523849312617906131694139676751562189024896636592785831090974926565598059353119136339853523235169327115046444019043848007550446618100389411307940036791684419068462104369595708437921924815090109462465528765328159037512851593170077918627537223892450142097331972256943292746073063346666267928053648790771394584429765742683508973895401769636170544159570191591984922591351044337952618209699277104326110205497925203135881976075173259225563364531986928728918000617813621067841617362982244203072216861893899145809829562628750914164110321669531683510340421888042294366107935044422118353747809302201192536598359678935449004494535743398274376103381014438703434483261872342056345673053818939993730940004170279421054530743663258817760831234786238079549619323542251009009374165672006897026468769038268548976234241054479254776153859700119688846873881216987118590436642275313383378883136335736617101991379942273245389308922349089072909537154677266594078745935611730640669063262761071402414007181229335267951170811729973767246438490355331355377040340620674896496672044283374297517026327805790654186283623992160457499521778260670937329984158126728221742930588497496902907549522031283815117479250503803418958324776563837005479661694279210696577017931345021319834250072085471957337461906698342463612748690535132080056215864213247652449929603415838589706182033555923105548425936507706760286065683806870162563753647167922248396284695971349146583964434996890662927437508719304176266314990396301796855759811805133423441167106877816314086406143312302481682994771152369059267490144007555305069683826004113470956212945459375369048925311910021480977230145634728563531251990395633474975337772080189183471696429457848538125971772438535770939235506557501967906349527957244584732134554177307080530261116017334104620726020051931114890665745667780192915954501087607427603049253383754438913356592255512068769886081275600603411536171091686382382089604238779430721028385124874970602737495178124679575878400226998993888656040586426140255687151855187294990209826964124536367665733620070370461255459014145760912660734849670379095810928945965071043265475892695166334119745126604443567744905318227920303287265895764302075959966539416258642656405768350740291347770335960602223342079207146806198129891479482049405172064524981525776920202931345377864864739739986990496487397974717077411877315289366762229023460809564279809968780347180109861941268125071691291257151772508638302844641105579397924673075406400206414008111291765524423720385400475512837006050317249148698753360141997968715530663497753452604332604213489450738620914285466626064521151986532358793439283759546811597976170323209324136675801500890190699999089716183805988404837007879393393848275375153355174371278401664519093858251651405775686778571415471648567710139186351328625985578340458864444677093729340497575345837933128216139026764627874351293470148040196017496233872647281041484344410779991647453087276457698199896417195212086936637224026989108469079949846167488628340150514649200630065942634550744773037047052226039969513283853631082021332844629544179197157395825067371826667051101966282078703395262963154173752719759085664459156614594491496909358200035322235314317782280498084723599297221035142265576835474234556132105077234066669764418052152168011208772260897441479033954132909147046706655072368162898088453797602170957494582763880504223339931605923831688930938641546488346314772349695711667712741479766081814456280275146240281384009589474295534409047452114694015045453170472125999768986704258958553880143600922828002014367022126835567658560756079492781717637805147945367032008803952343622611601852092233553567196708558406749132983319489629457126778218452399877064578414817724336549740357570892098489222880650343678730057004927150462390494517647971069234137079874830520578244046204740942407344217053788043927639429509082796034117478104547427543694337645684229481812474389526069191313339972586878964711405596839098945158894224844782638168115465885346849689592253271983736093461706596861794885677565693635343973087863999896835834901033195214067723843071457350707523704492121032128644441968033560551022130353458133948271134158526770047417928314433134836703728599811123613635630552283674450602919355892919133649886062949118692315496934061250768758444489897091220116959135171964960464896476503904198284434987635315213362879667751591203815907068355598344938785979361690239666100883254234141013313466405595560799072911926195545918766907628376210394818832869772109865679010516088718877146073069918392993128442137888365489401061452916354960568541912109555010139736529052038600546257275637350636003930797079084548105161697998675660435319878251601262882890315519066892443785966436271415015386529183639427200882201401395270446625090753031429145936886529299183724256421677718897347056595027618791329306617752919045713849680775371443210002848329674598768778325237590611337962440066176248931928484390926278780119218897214201429293965960814850076026710232719069587630811814835958153383456613873528079842946187466101999908640840437652064119551439190503543927500415235932555991659875639193208837482193580969489910043606258511983111592634111498934505131632202231178162608321249949375174125965670427094264784853789165499638968978642646610969003205633906254072324274679439950353602333615115783617796013025907634659630386436370196295281227019555261858053268383116110889796433828943701385324434393732850427084361071573352272070424097752007579150611246193582524497011783353747331107184746761516322573036338654660171435323745857674574114617436293256349298201925449533787035673821795962524945822621382316388055922765593349471888218225670825656873108084332558736413890537859900048700375236118323471890052320097073512258568311572286064647367362509888280289499042017923487564498283708413823905225340426585470303302922188246920180644991896087084075098100058540790052833130800496541976098644416643376458675761309791258906299557974354923593607381208322401648981492895376243429523989259271310068720538655153325870121337840583289906521222434808015847586595004171220672986077597347950094824855439634487676432906638621685327845735055323880992068891553417498644395663382902888811228227180025205165670124343391574937184493975173996478451439336549436505241178639354989211224528132874081323750398150571712944242258583967321017121075566221324067597447634565115855762387278613042321533340958770981334229611174575979277332135949938189787666839743015274495412597907030284289031565699232384610195753811840933225652078723086470258112267111982957896939242591453902003448573224308822536529657632867971597366402377822073203431644125048895859464630587651336316320050332818121183521035266160358682583066823611219334838135020350504637516587287547671200856698481927320308547083065388166401900242780848364986399921513082533908900369449170467755864584592666481747047333195305636564453197445291708230205192420765936821263341906183677578818365020523824684100759712722606601708683642916028692627041458522794575117254831957843627682177051415924305010836653967630387141263832877095899938449435762515881380345147310904293265330896050509159225827222957441476251244351229960054398966202901628958169645668507741524230762461532818169201545280802220500589206622824460005502183458852041098996188828660696516482187681978546530100765100232662300154588221307411625050245742542775856394676727271782272961608980689627909098871882841960675881536288524192415276507685075995469206689570376142937985682509354174916968105623677694192486429349387735620726149919479191785405226707243255215513928467562172542006757274419085827895271252142609043390634893662058143313141547461961800605890926476492103874204583076821269306846619494881656741708770005507842790600069792190888178459139311118761072541344534168960695769933938864231777702761365628976283963037355886576440324260136474050092708448028214696290955895679527358734893106561961539630606451081465757186871600910721017983161598559940846267294636086823956855493026444943049536904025434641570062926524058975065757927442963549759249301667239483055883778489131706199508147810335017064815916071336135842036142197538589567720441818793999764381273479389390554496096972342936853943209247075771918067490958292748042425575552541921755488754516275729797345283208618636047531709490906657130879449423884877608704890501835237111012811070011328575545563555323654306827030572218875163355780182885264476703881390140845449488988662988676194413980487869077396852932577400749627506252541377410083688698240927230243971941367149878889571742093493123331189033486052662780985695263909862320042156109543078923234968954064956322130362811263220496383720601445704696736045438501901006329865152187852105873140379376938432773500024825838225955609450557544763706528933724969170760550834185636462881770711734284225597353916060846174921977387428927485078249272808805167855215534689833376736916408973096709903080477082536017126506803896267245785728731384500747704543389734870288207292334994184982295728282872668517510609195596757254017433983595683319643696582753481884813957733266499476756774942314023259353170157788023748419054348939293737807802499265301285926525226002389301285014515679024564553499344673321109706467892969604950918799656780800927420577972737646064772841133624192868349790287835388453322312702597386217108105150586874672465127972307191016259701704882166303381034555360924840285150228820157777588756083259730930357246278424700363797414208418952922386062093170208465190448140441309532289724391225712572328697981182735607748553587119906241189507626462630096818401945905516001865394525911876176077720723574687156640897265511059885010451029036541679503475259075940067055336806270181784640618847067657988356374030574078461425299779323647684031273269085669176283504065376215961454929307813407446469747790397302338974226480076853369578166454739770675775677177863520305053922305174529722216504149290672127880115553587781375053616081541089074701192722382373034454035015208121990125236855241348210194488273027389431254479955876658660174134949671349940509525835942604910103173478404809000714841897767413710573840980402589540967370329340031525611245622361575436602851572947748246778041737854109123225566655053534481603480895779857087433509589614789007418483580925694005276000535441891204647234398210663346479802052446470440057964898678046061686063342249648337089422283589852264532616521230748019774765838719844946070167630744963321387671303803102477636396561804015810870098273370326853525329955415577933681669933782500159011803705703079368794122530553963647370125910192501202573434495238331583986711229964456545553463229997599870990820368879014474060011622956018488083367242112701542710348167258729920167849511614260318423548078467329846912584004238037226207381415780788888027059349352998860014674013743301424485268782014920643107141604383002945080676185403912639887153938634041923892039069974444726790109881781208470906170822953828796368337674900770654277127758429829175364678207498156876237643071083546258270435672798407582080232534357816359037838840545735656326124015205938088428167676719906619577838766066979030165104937382035757834342757281823163813384497321780076678377896984233065520598293792445854415125792513128555865157194257674031846425129113287437940662102772796272533826218481258925471840036029995645841663973723464797926589000853123463672530667427010798804365224702765352524392143304909336363479449096881013200396074029934723663353170660416549393543677940014083056997275734436629995799036420211993713277024486437733302885507857437894083192134136165481695555512886145192256338808632250197692881403519768946968571650891581413336821308638649780963737421423184077072234989298241967269562921453732011337841305083928059158742003691848117621726717322627339058401826399537033415981673146799435385476581010592503691469329177689686668231332985695462018025805477085560157598822710506882745081237912625397081163503370711135076026218457426936051578646667347535942228764285838396226401337577191495517192457208576674860439552583986991139095249741855219911915579122828343358372943469266702330390847114185462540723600561327498895244195579053641787501971706216019432277969479682647273345286271484244731852051535798503451258402155037298585736329323128729040005900721792015572303601812299607456186371232209661239455050825947702838030549407495964143947459860300160899836986640378046803705759725772793925114579543986619982842301296996667289002562481445588959951187971752695179523493675954917300119893423602573131887456696283169701612913228340918178359114262845327189573422793971836118278461844840873442627068847446517630774824516701820581602677997840235204585738420893569479104134140965435179914082982212457528616699679166957102465194420136902169880937952451079217723442441773637623509855595569585676733766306270546509635520433187609019230904665862180192568939465317242018554814827134919558324034654125977717484568099088016689820182907841139941846369724482642276434448838096360716996076141939994350941845198384300351994303551449240054400480595573226645564921475849361803809315286365807641672628869210457820405430322384800719812617383456861246306301856182453725487706712242597283348085590050263162750544856623700834371700204307775676659772230123369190569919422002536550646581840846612311398626513115092561891768302463888948294926017439911072609937680204632747452385589250160735305281218678909893593918251061506647679116659972005748694442903436441689282741730947433829868116633829307907408592027441532277506273748830163042774023168915369143724420139573378360338621837609010215081443151640722545894415048968802749981612741853935109107991413744083948113708195908668065057203142846615846014710671517723092770930545514608280430197757298225020218573803080339990660177603406953279066048298909876766833290903556954785056006835445082291007227135431974806314665908895657131565866431316372817042370019267943399870969536580596049517592802000345030584979871158405840965459199592894830484332696162252837019978765421755892068497966830877841242755562539024259937489847533526068347065677685385393275666607529129439599811286145075248566212898726106271136586391178205908161705328296911467714594237146117832725348533102839563664997076076564268935021821590990706897912856345335743475758120958767349893382728305892804304788521387105481418688304358227717048259652450302288094767877045438800114283806927407635848460271404222272476379641500988848192044465968646723464153378395707459421464952424205762727343333135213122326334199118088494720651889384102361604602574092795111977245268858093216514764391717989930751882841689085680917788183998526694138932435666116357195569470801144194705773147688396943203357447974384632107192836454907896934992226986578082855971625415767309514408409318350057127784448305023494982818994852660159358130780821380607098181660101747236526666685894673809355871284054074300680317404644351964550582026322507357830445837715871366498895592327547791358083780715732631172497245442818638483856927374690765076744147774903568755385334501881472784822264692179651474014839343355110575546040495895596564596633624403362166856022870772541428467946736045511718766178518978178996927309975413182709477266535611548003381841684568784475277133979821789945696232111135992558440605066042738903794278627310365434659826381576855572414858535012670870248441718727239693336233365904699755485429848249694888784823350672588943668159761559124615797527213896313598618835171966125223341345261099724211103576961326322594415542765113081443481030713667266221240329509315078947952654842724647456557146380880775849671288044530560161299855381881476085086997058434682421461855401850212349925759891213965574654794309978704209201492100007015989590229503077941085686253070598647477034181740812711762166362997264741370596462840885139774365933199541256154982417888894029778219963663925863175609118681768113175581684850526838632037542506082294210294566883344166155241911033030464705291929006882346284742854688703147216499460976107082755328077226351742145522537935042025033627499689638465686962253884349352705703513663093929736532881199688719916898624743788943034512286147546905961762578817588994851088094481081263169862605915908571823440788270041162747871433894058360498239881888963655098909440044325348571846930181619680705451662524847261348400860484896420815620045479939005347555011471434625560214651962863220867309303120202129236852459757960347759877679135275046427334136237609222807448492049591821731348993547339093150831828295035346867615188514941129138226708091161194516817497776193185006918244461755059421274172912597026992909447968344383282093242859585088539671162810098745681272403118220366152678540372093034532269532374088299844481193114554531690775507115195338213065469731360656888278734208612941277058204349050302050072116671432985170626011892405477480667515977169376626027797284103161256187907029961146085916461740305512751785281838708875545799499907604541943695310294146328071437634218600242117905932552257730573521822241907893494679976752455427902627758825370141013062817700867631289818281000920434828550720435979686182579604860127475865301843482847973941446528168647782962398493147524071777834846841235122283587643759602764409786888220845366505366956506501838426665203800365284924088564325106080274207016424895070807947752759218052883512050467922744362255454970013757084825741839280252423343846935536871716733587657460059264671907384090560079978519738608006316099488721033431249909332869536380135332529042047845847224202147921892160573265418076282217421298423227871167312685391492280195172716789814894483838281952736330060120165196744195546975839060654120978400460952988280309908489464397608062204626324356015724958953185187805679410247536151537207888631223024667705237411242335459518807697890628080185830992752892801773732388531179570946106405776614079055283175592308197917601282107050773772329335359497505545100452128671079033117309343109565845196889905792492513582271366099766761132409084149157195620388226701950546937614392277042051546225701078303907024368657435593920637442686148725930730763469484773343185619285090725228841885483187922707096575828372829194838812285918947131508544568798155237274211512629211536326949679697737973853059455321607250636445950402159892111898619246194020762003844803305159798189367214773743197585842810180883423147201449336499612728597488433367743156214754513468170908688965823783736712007563418308472355599979092640951991946272438675730032441006026284433639517884988530733224635017180351653896768525754316090536508095855626387284571376863268102067865278880813988824967198562223850914628874813157728748750290252846116470330980532043148325399086278260769724087460191719099595242446658862797970971795704198587340038613570087966861480987805361973201631991704189929283072322319085718997731776528750151721251021386320305889618521162267034529034747483473476192230332371300121812023128193369055880319169797745507901501868657903906301403521688722813979150202832906995561882941892335159235202967469157656318641314999414103570788860161285488981558830969374426361647962953233245146949419283995520217003545469018140457434322621035927878321368137256209109058627803105013066463275282224868653664286539359353211692058354339285604845432096510621693301110551132131379722955014918116076431964571736452026812012095330763097529128288851915677631485044099724186557851367836512367942277264836966932600479746955637580050945802318379001914502549869045257334975319002439810207688413815976520023775663090352459209438097598618445043441342913525224179178509286976387309843419987407003812796312335977228118421154723296120958089328608061466359834062563341384235675708810612193327436368954586090545644473470964089331401240719013269315474898272513011530895389013289886372859945668045275330820888431659930633649424040282644706017621511772008581155526651168125871825360735829141372012886000227929433985770154068487197839515146804863568694638196274654630754302575456608490571875357704820126467727786863765486211356099317035446623290395893441141727158629996096210041500698539929006043651329602403726502332585207555224079955947239560426618162867235964881735434710728812606608965443462607188112542095066079844952527819803662918789683853542388892121687017199104973381782467262803357468618622240982941219987071674326041800025298559540614756143797055167082545585191552175495961494992851729241633888065413070745969904423427548896014576532073444305579027605311006358424131636218563556887895418658531994243699507778336484036345082433646418516580834039728957965788444031960538207210087771832785146551052490019605895082180346829438393123436721091851488846098544293165187148133326861887972725126127220377208091432461762870159581189836302144348253112948677440963909622029800187694930353927372328467500776594974159547636107600384461940824625989202464046683558256010923556215135225176094299169437278175281496478407071139082932576870016030610834702832336631220614834373918129457540911562395093308890357535064482663172865991039792992024277269363137816241236269101926099397018267781002169556937105159142507523636635611946257952484960982195187410315227039215494869434567370771287394336740636466182487240750879418206964352228194084169959509910237568127057421270679691309932986723622837432566658422079775243311821031732857270914750163973385845296912671881328159834737090168070682736405011169715360551356332648761075121048751027546259923331711999695312809720303895056275570277811597749186510848153557933519709982417655297674023360956382666438415969284910306263506432710014255626672835142752310569912535798316889683976580396447439868237790002484697159108731457534458191553900025417632129434409200739130297105023291557662679343166601981159061802759546211644948063229433418529623119135695375439462688441524611342990120177713443034677729354971360183681822758341494600923749449786010429068539916863398306106499439536388618514481954863768813769622905835055021133059208222475452494288945331853164503594942017673557044918249627239770843711187387066179986324778247176681865877417024858706874399111669331347455510043342911199025741390871756369759026746580725191771802073706945213713071290312988633692800507613273688371684296113550266366935768096728776328742375134808773206012685162628792665706161342325700327611952898537910735075726586583612111936025620572767912624778631613019145281283725530557631080358701712636603629910319432075790875000499879748511553784016488112409125585074578988580066951584611561512895545294049278819248773322973801669532048615537122028356811435993949174340202942647635472364296197568057326453831023718653012333354167510406756330332829992501239642940848397013719697938346936545987415635374633693881526990440985266393539403695497795359305777242752488700107015505785025102494071836177654782679532672154564942875385721101858016846078391141700330780027549574329422898332965776785913473693537889990774303056718954409902087726736830238903167098573511072068096554630478807116136432673147182151295487356508072087986211074791251456066600617211238100654088744143874318994429144756434386526838476073282212885912238222090394390762554129465969106982938346528145637260004834725344900172769030949345316541705955893815268104819098920345832758505023448611463292773579211614683489632402737282555478363733384642099780677389468875586194778159370960322163351741719364022934894610718817387385618513507373732269777661568040653912747257949980803606513958156115622109553109500841886298628988348231504155697586719704094803190954708215302143715838586877235253566624869706850417311608369520179226157834743708685475455528194669249383578440106990592748265685652419018219385202970235678031877704656859968052502797023710205744287769645138538221865438577495969152550778176358586466385311490895986672130787918231693977474288933421274565126340960360206227428161733402771595053438829483630942889496883876753574385973092278712732212427618531604545282837769483307824623980197918795985609007892197464431179226443499566577510864385577531055671952321271449274318135719395726655137117045920135220764902226483596580907452785910602700760114117229930492681520037718256746941682279293761902337522153694102152428079254187117516062439374714955378041628516825530346616935387872469500713191504670419135894290842360197654126276350222696978742502559686094349586470796020920923908593126745956865245837005233162977033191852034700913344375109441732557212149976762329509521631369270162436802995319775243265073380654341391318007041103087686028895330405205930836821719609429968220325779513657449024437727858350098572188483134356643324670647603605760188637767348977319779154478191477367168245198257904287206652257259937954753365699806058014467812072494602372031626261879406135740668537820267850957200515076351646235827557637169692142034861294465587944145161040896674166591266014022053523536734653222391156724212196542446917302602805449884510205729587707824689697937452455172586122090846909098050360564085577669727034384290420465015972205170088466447465277668723680180423852758557403204242252376179052609197219679256422860648990931400452174013306781433571752132085554441752026906955987939842036801469937937562732396847992453968537273651899232257380857252014850379910415585783539328644077029833411059777524929412756117147794383150423486723671346481477817325441146033664814810812986100453726649030560778773535474605092142777961452996400409519519525425448716084949177674863297969050639149944960929615200622908809855971096235530188820670717855895352406386629817944802461574669694019914856204287493538521365697189443104561602247097968772066555860661082620141282236297672889712822472642818025108220470604405265324188038125860471350973391832557843477547689307839953237948148303330006633977648516439305952280457637657078792052099819053681010037804760252432745299275110803486711128394588913555317943012882985878968988363391027353902095104122359795009646126913941421024626764454045548368129244556287365893883456568957987894326219286829221994996728060615379986122703110308546320630987409763313343071981435605003860874546968665795909211031726650187633480345472420968278710493011599252230652387688154922341981402573143025114193528034076362101332227554888141265868674404133798686107104705274521265776260090127397007339405137694744301475230033542468160245852737615473927581672263394570911061883084106923708240670779285998157097430842990116586217974171472285826835250291719030884867398201204137049169098470960815789027076022830386730681411588863333836048943141289551637908824763312021613660002165485434570457715526910817545857018879422290391463757677466299027361621232186897859396920379620631857525872568680672690466992165448993649084539427578207815977743195866236826216880227238117597382970755492373617271161384110066547162608338441705122639243608595211087659059329781000896023308280727947796607206344882239734883555050957358359210639838994841964566200637895984015974203073842495177113745018447318537418776310238383287272716977312471487543493909419657177344065120206042315045935393359538904836224090229812415098323793771454775567862146671148460873729693064954434108595921956653998703669731271958627950215485569458939075571309358558733360275277603518897153470211587401695119335207804017515178106338555501050227181338290589173360949917438375182864951175675068906253607788370252918801021965356183863930287271932140415706532154586861191431041559342677317813871361247755026775627598732990375316171778593814174677394395550720267011585653814107315667553695738389048125487505538889579382001481149362597615441206501458669636094251542885413995584048410214907613870001800753693643932056267089085486360683672440117715381385778387889710125908834082807115592316033347518424556585001643526731637442617634790412721225414912686872064767971950664374648822559933593664464974575251259998977993484109436678171673072042424669190682940701706086237589256406260707717031898438009747647364720733490006796924488365734722510706478690114029656134440436173824483192744506468088808382150452327208133758803111061801273607811754964958832378109062259243147631595172127552364249669847915089872346646387776583076595407087265552224930618415974540145460564905549245631035225356926068665058838940182074876259502817468556388337785224648602961191914628994196456296905752735181551586325028217191237284559510773382588149655333538877482911371429039725250171499467773241295333831539763734647004523467026566912318998255081886762269387847676416529322951060563873730661293176361134407720924567507704251911994955795344866275956096983057746698744564392735394934655418010379890015373992943634953859352600226323430308050278791354124413595865100606614388633965596526992186956077272003581619316307352579911592981711259062180632337838209209554181398572318669440684449572293082546655092158232331486552548961716421168283822613504021306070129441162913671402194646986704192383548333360826694685969654668784121351884491929636420852668350697178745208082336353021139603034025470721634668344471380850035401667703179726383247945800461485233733628940214251513291956886540397009785000789483362261225240026330360268758569949783468563355607462149749822165969963002410459361469350616830227072088462660384373471277349217814672331696920276555980420944112177337314958567285860475746173950751822714742299810196179307754370066326541104365258829426237048548756506901333034754103591976812272049360629688872804785157999873498114738387015106308143799844610773645589370773118195521342906881807299018127233177406483738144918223402096190956558592639186530138001399505379537460025991016184749226636326865484397360971813442531359674580453959155519127181553196362335408641683451182782526739197737012915129223231603208825964157398664739169427025814317242713615972138181178348714338302802024012921176700609452858916439507328457043346086292598793054025584418573129238585541424918066501457705760664834881030486349727108939190415910902622753231601853472385636227402212814920915521070627078383273518076014633703166088463200295886931477523254569215420223789869274705909930750823042723449982741484212139470299403364186616963314692129700264972334974714305981028221931728636861745419978807697752558464718126138564742795861319619995686387672939542974692986428874881935969596151038904993331601215822095309705197691075845650482131646268849153460125442753506340216374115786535582489444350118359711165514457297307321301363314271592918946935052331624195218363751775696743787821945910373304029181042117497021919400071667276177955490766448546192435456870933854155023030469065275991980327605985871626624325338857414305045059576924878602438912379278848092949880260965631751105252774522549204854652634131509684021290681553574393555625735811687920986016773940352763796357395801542915752875642626240354637133867540077526406278497946537116904646551875807628327515230071869264453283843234204585524022669021463464594877102681379253780824834947031765095768025896532118245752123998675778705766872723589788271719980268487116640762277722542203033883767154317918094089423587860884746234972629903420687022065711299185473243074674834319482104561124127216640461677140174664645790697033860560874564656386732114670223119836146905166545152192179069084938542680986686525461788187702388757621352775252794361376284203478268611756808346100474126354862584105697491534954004535608121767543696311339833406289931499696177867547908830295639832416108900338809403839559100452333536024059963267281350593545683203780344999167268719497694845002818810427762496236327441254395043741896585444762434475955939453807892690751919398224097927256721244323384328102452688853888766800816643807435477814923300288205184902293417188202602283665566634735570413031424217128669168568012487100410083875031375382137301156806417415064210137747518672094496866302505728660741799396493626809017985425349434408826793613750441561776528493217431805819166449938126384491550137245228941553126321479842096298815922648939725750195946075110672941553465183077512307622114003540491458426596865245003714570078388591203074613189956398249045830564086171382380214158682722330587964400199160507602305257222796463166301851065227506593834507869051160722278416368674283191456356752275988342991282327884516141818594368884477339626974066598931961552174504478001619210068653815459569413349942855693614569656130868002484015472173791590964748448058684175069339917127841563856756675887334467083857711106931389188067228862609982362291111614601053231389111569061485615296096488660645950342217879791031846535892523648372315079491677533374323085073222243497560968310272043342616747611429719625264515131516556502980935442967954581551575217067356116728610675894274235096711236649525012998341272790449977093197528113688532445782760754890098249209465916204365834326626536891701307258594693668908002818859085767732731618437042423440143972566004680474164472419829282049615326541134226266031038679881136179480851541678564455647374456526832450781685688615014639504743751397493441926734899728513782303087548858743689106458505270142555496418383905827078256661833280797873167567989540656699280078574583678951752559535365070126452334652135218930067027232995873737508093011750324510781740269404397959575754881068373070189380077052269575084120339057943515867209126343252922646786524704277818199040913141111136586079828316151136168571516406639518162687503759236560017203585053517315531405328425795672243970409513343502629148363350457043917051102397898935549022781951477531496466273643959345620712120071552182459331599578836483903344862894119820416930202031312463494571246229080832841263441940039708680999314883327706059610909898753338476087983025303145751699368921657685684647407948590970195680314065569814773652930326799574575711350594674108870329367239784359819325049704400869979366238379812684703952098904178609956356562339544855297261341226125561902339333897451969536152719625420623787121287194421148860443654726527739029714827720610703109447485050193204636235395713878758058171034795217764620921491207765847114771141959804821457045002284975658724951471508792155566170418722174789811292151084856582116461434716701966978901306924734089424718500649991994316079385985766988228089279268899624285316090476544169156010802485780561694429017094112785994760335305976516267534227438833929052186463978982152876057388551789608324710376300052997857150597618425641258012383243779731415730622836427512756662115543088219616025400427232163490180370830615837886464828779905165652442435181533252300134827777292927974959438243529609450600582393656405771503970968571916266393444065006379615848807552581844702321777574801699387273312418943918654191006429609315328858057607377348251343685098573238410685414733690760431622365742943484504123103630542876653950123305915969492059399728482185657405822244138628678558415888020815986189051392866900174313289272853744890252568990042644395293815870353919199202323380228087181102683699643982552377192475217722008367896628616548802611111372221303950235609125679883720039318014065430706468846894875894062252148060212537387341017020675094170973477079864363423022519985795943987488662040564305587897288056387244887378708777387379055307617170158288425310560381767297210075174729629454255471647289350140374058580860535756536707562430446373716724289034716326592051177218586854412270633149691833154028409378599976144801335037945323898451794069856518678496532465302174316969125798320882820401144693927906758769452515174042194378419750272289973566169732208860838966333120605632677681775911929734570350853365790586663827060732198154454273258900887392787576697045511791954760522981736434935821811202781539473676260525570930884017780416099069227636410791655231404551788616294213633844804729197009544213718727852946781969188670402287917108936199714881169319959230544285372344644414016565453125313542384067773772137930315053561970478507120506200787345589358733297432499509598872156528137371821999493194421302517790640521304189972949149410670752492255670727786042572912702854731196814579716144594617358584809886816537693011346240111450517197871692714609649432324763533520824427193935311658776362895105091063819311841867002080401242608022543932955509078946565458334730075104889306273181971401592241575561413143732715055525612963538219194908872584162408413048998898499752871513637552448199521909357043865155693189136860618113148876287923976152358141896040061851180782586954128226370356230922270249980338853683377311505639373522389166622615173050567221525733080529536492092429837174057285093383041632247512353435069825131742174349309678451754113516823721963175016973187185538661787334497273675871343295093849890515947962263346201792537156910382950174494183962631945598314325423472461985815435730962741913434741498993495817987688013243608509375828582616352509820317171802345326988464998790545504298066348531959262742667930684179198742149709639964879134684488267514251678289203165026423186412084720262126664637914146519854797457046036603731877392342056481679574335490383329383151011017019148626323696082999136284187532190613508108689625321259587915971101101279428457565749922319673868507907338318061151268648053860463497562633200194131002565221479565193347661870851038273361135349197761883172663475222902822283670193560472733579217458716294503139769895024628064359629461726294804610183942392476492962535457899315956272461419785327969157861933112983323969982478146489878636432343666662010494122295364560736374256243970660439324851286927792659128479093682586378064835786091569258261737765555770126726487943035433008721780872361393197693322593597197849593224624832494517351557551368013940574432166753483406321636645438349744220648489532722176220514567678086404523224587873842066134594087365613352462326114691745581451361396461032978226314555968177833221543041241112661466239102192103243719137095102536875426193797323336723300363710966632589444646601738246933710722468417419327415680628703919544465902792282491228717168485207365000973879191933970374368136850062918228310730465488258698455981772876227420279651498149873837649858699067422303876119097557891150069028985374852370203812712274066225223216192539408369278707875242691455708605882415546081621266963671470458288121326931455491281847433300386313203728422830887579863133162721839679073984890210354556420743951202302209151688700047938920668578413059726126410587861801642893271453051688782789882784039384976630051978761839594634683591973615105125499203620466869294591732033177490064378592717777452157969807300648552919963038468707379501068975160401732778319939171497545439137641967464158517959112844630055600951947294595792027625573728384717566374957630948136301370999275723104496187103956237451781597289346030209641208715348318224856431501301608293636799003084993226954655397680856002010593009307064417760546422687176057810724501937072913676371844417121896690279689532104496945817680019161530310199867314050381634853818309008295785074729883453609881860915304382566707554881898055975416174800020726067816147004609072327351912805623995111927832261661577017254542235322381053839099424353984754681769703029059970237166176964635748835019096998808243095650824197385623335350281333528872942651826800175332769758325782570302593316848722061848388199130861197466942028800618721539922229115618915046008573057380943577336970126852330860704141182286480535491241929054133619540023130221767024836583438797959970247231385413858664153702531479057477258917942119537878273796350076917535549086023930588277985155412017370899475319257700813670936740090005103530985826971042285821845489269596628378783125962482163786971994183702160772937941735545387546619041699333533727940939496960958736066716285194061036199736705067049138330621884292974677040715845301387794178194974105362949545658473268848977908752567138190476050493366485903055353473657871017832805436753893211591850207821765927743813799522742794967602500981691263561471411474386424890328908412670711235410034660865117447781370228857631680560310871799667363365325718966574499314220878178890079761302158813502520872975026230473950677083916278693684501002441065212416655258020283114348925941124244832586861546458226400989725064857489834774982968641595098035931502675470695157160031999311086606280269096509941312434770478149310381104490365873527514278582335445493200138247822550702504765917439939478369815823772485090100859227319235725551969637860777723358643606450360971386290298088505465800288525620502134348982593036751271923922296354540564903986936649044619802349689799899587994794913705716216181069205379531802410891513585644451925793277513695912995997146550341822293213962620143390313977443811378638838347272806459800361626220495109651727277407979534690609206619595833003083464397694759532772035721085019856211659374440316146612623672744769284449013218382666970228387517581611569585229973254842575899935557095307737187709955275360923181309849359861595974021799223502063761199993283806223994505991769673765700843410932426406266135304915636099419405887001043988671200022295291375476037137352044995432995372188135150345093690813441922971300207681425889086762109948565396613943671101243311534355309125198918969270361587680363025676241328769716232436777669850868244497187748992076683920678522657788452088091631422551196697437493340941673414648977509479707643292296366620275421181566552274635655374461354693785344804288357584205252496588036927368242134620819880457934383334307737748299863669349302158738865867961662163148687940889882109911452104083446035133771813398249080964491860432219883562789518076684749803891311226584031061311358082673199803978378771172926561786127242319862735795868464734903927359441385483396104684969950459944988703606260886899524739798428403932475674305727683361521881982686783863428280477727281005492448002395487963515038719770553119854778140589683022584544561414414728409764698306877023811421931297182074764429905458483742599480377414079027909376578397962774704621152116687438698497780037448424238804418291401354834393452395688587723400983025361209822501578684668106585512734218613054421685245002569125435089263441063794756770344522743273276223654530822664183880644317973797389702234838253972958256258287059123742916700411613677647822254767854331451416770048736168235282465684450891608515091580184197975133976399023941977908406830513586154134846224362898730288855593892945894970494018002049112895292790637429183275019898673563858479979060503505194191884040485546413201567063241755310488459783447292036854789413872582274526652384577498055720506899843060804471158536655736256556171632702370122316507262850211372307106629837900374143700793485858294490492019110682404789479786678157342992359070514186773093340028348370037778791098958179902709543993928338089294425486422710611716961103538586647449238757678848832626485542128907674633682726525725607853061024881494004231205104954402331610155153862677035249105492575172064189216886281196237701242307480662900363726889351855646624032493688484250823900315030859301847034354813211021265009109518957834741023878907285313933587966971941547968459970080892653681924845684648672675725040189813480573816378837967102978469398354540096519346647446872648061162328171595733115865288560927484370643362063233600202944250994795934306187188366528155986318422980872851670046665360137116711787782805390176095845915455335751780586379622574728934101587879610415043265889202426099262127910278984836384205180275677678625298145665529911153510086863572717797638943147969647317978929405617245765492634799111513983984311493489124618135485241899925471868395450520055909245535170678107526154655034365038131461212805484896728359957287520436589091188429891505519143468868836213052429899178394014209644469303652503205987067438468680090268890676769190230887261803931251153356945978706935646280413959627868019339763698007854726905584595978962680873255086888162449585397849525408210704462661859823865253779864504851105822962881011984556045196699360024476345451335487569264633097093165824507025021896934938169178566554187352437339936761549486962672428854057395151238435106833265304988705570054277581715799359272763487007521946802700954798312926307186092291142626755685204187005707619375581667904537925868501205931142188761420883978195913851920602841793767161688752670887738539365612683214305206008112626779026689806636000315844541285055210653226313290295247436795589777795472295379843321936323624419279650927307000959935499469457766942450693367443890038701231582678412724530141122987209234867324493538229789774083122074374625381582527851957950038600849160278002127947846740948205589576283609933727315760671445558060266874830912616006342049912407907490383523497853229549191672314991001119443505481183072598927733273895849675883414605848725366948719606493123191678760911388756564902815084276657865268231643347809741330522563765314863258540863294431925395671680712099549326484006456226539263224087149438448646726200100063771588977627466079022316677318911611395982392720929908651661048481369986439639026208181905770658659354196702186284023136576297847422229497931452554373950777741904650989967606550580208550478822805308213231246157587846809613979050923539787126271636931672198793214260058384669481948217909383788009540568375462889747979403802423639103431664325641776452727547465857343373015040145709093735192402536152878816820978502550663606215974915148607408969768892442579033389035327558100906291063406953496526198520798524462149707548925954041782959599167305408074198851128132039559179361598344778081463014407334385335671588990583041938321564499800952973477255826828391418694307379289839646649794592281707991298371316024267714540801813129792858267915263700856905923761488153596878027741856246413250891726221439712924699584709814621215760600326667818885930935376736294054617137176036477741507530215818863099571497443444021082353346564298904630562555840764461175328708311923595729564621918418927358929542456958606803964198227765512197445605545747025591037182851737846858539061641231109839222894019873082367476948410944788267227722885296454614890555006738176127290066035852588307335859448874417500286219054293146188177759665511779474791680431689432033506504632714725882587453809309093616875226634375661820412659879659560000503934979538725487478672064180854440728617583060364920357589657704253667696561115078344521879901486596468124362207999691750713293051750203243842523982984845794636264436883736234824855995805324837276481072195158356506315785699309524171521609785471333687401633811369752254899278165136668932548689403559166321949015550883306579459378403765828230781875546979410799905298827585895858603122949359007001345473400126953026472604842567300696589125770895779855314500883884142534337075621371346172065854243078081030804837085137337851376844043638957982026143195794082875556935671167598261543408472651356867127357707333376312361885676946073658195893387087091240509260569650301732645557967439918020145365038698203865021415664197724633725665067318014500182199456928949009689701830270870421239550896228890185561810404143947690736649647107560585755858779112988417263268726021738263500837053394508910505595017647151445567965104070474202479229190728201038001942399748470137544050865439900344356885751614521046467798380883954271668852246477128659303051213421475387896915389096088113916325718049082699002247415925458237450178249920292767502997601227570305347641909074558138036155606858219831685851056547792172804278667204139941090484123094254695736010901879333292200587065827130319388643678110171206743142223264387248674978684295744870393221845351603623156010633034369276955375891802005397966094990237076744764205039428715446438211012432208639944519244458383480345767660811424916153823355554990327545018818972258554905748188935934603016835973060467326799596660403253907196732526748288529732746427239750733699863895550438994473543836231204185790322007156641834044595539780355139390337591847225076768389245153820227932747028727927135692458824388527839987354069852696687279340594405356064843892070997901454222640514838971901606370986245099078816734293330055510004913724237209137142013681971802850447934958279267998477097214973456787188361360382966936823988334817673440486021780367865611535825089518158913991950358118934013197911194373913640109807758948057606204772591211383714108345143130637592096474539544919430417228367741019238440928608592003852305100034847405611517106112238588020041960664056175226293498563922879348462028491497083212582729525626251343894167701233533638475984335782509511525556893498100803117028090114905660754692447641245184369506899789742997418330058547253572083943064822455203610498588928244893267577632870691523625259464109580121735040656685868533597957748558264331257383208710752021699525637750864130651836065863329951980514002502703558909536546330332030080499227427026323784300084797817708027708915300359839659198638138751767620553280848653759980517647190768243472867952225289525481424733572574796434298371792252322517509560494097748560927232368397535054437132807235785728740697493045435069398103613403783611888742478331274226323461806192875443813219125667948639849889661759463010718356596914055737508869935969625554016500025783899796090857865243885160774335506168730584844463935740359859112178819334118992726774227779613824626600367711804122396724394597561209346181359370712706314882537221229407929875522217447063568694068254683764187490639330437252360628715277873453947664542260733801907028292175947117119011330387735041307144826611673073625708518179276129768506549338533458734612695145743991879517882239407323360326683138011441181407537036799271979166628474163787600065354875792436438216480522134615212212063831235981143354758466284277478569149982130642668043148201800269786066531162183900167209424923546028463381708985172628243349301818677718709999518130461836168921136731171873149500128761089908961309754327257594705533180164485764597020744093160456006824171544999700915087281630591152485671046333504726513034352061680378243118100101975457604970670558532514397043881161474632901664188549015436980764889004249948731099632723935055037881784385337947960680417660886977129984458164722485109545217729506416165589978620021270772375470409575545027725948742718756048077339493382756595586663312949082538261841904971523938934774348903574587293974001979888193064854730060464738713553438704491794724185276870022581825659261742689393499941023996735496787121688472065020631081697147279941774819178908543746282213375069089140419203750577650637027325220288154450117017231864181923591910231598924627536628089450533106028288160484282623471145460557947510640368967101184261485538025737020760634242757422209406055985080991325101061648378402061717190183047809920430167057766382740656805563266514150639224953532513050531812978623132160491787416926256353959569669398673084120643943462709767524793805804029710175025404150324450675751126921432521516022679461593650056638199719697269783986172534347097155523043608375383902819263337108254065603659893128918207356457068243068287261130495977773988240797766964085308971434637326213670604700387616013934183395688624552374979702877630268862185072951725842698515267256148556898892678702109051756189497999031176678668788565696803276311083037668264356825472832537230002116277138429279394816800204224365379409476294216077311542657158618919984958039446732547096959108249388627174135307796493826503180843700992989533994850245865952392247434860128561046251483561605737315560399090127423553511951900917792260391920846985981376609651990472043983792571464638746537634893352929027380511221302559567212696666514410110629201035161272076889425121632596924166462075782593624870443820860143038992052236106237205607905420219890807438698302552334853414919963739413407651002175741816006457749458189986846221643286154856668656300029609919855345297611121289591613556633815008957907474491513698335293546096990817353683013885936737448934549305276076851844549301242633124762711182601117158567301624220701215653001265753893251764048869635771091429368557096860152860743739911796451177843304399490333467628078209889410386972555173790126430282486203307950886918231248238677683892724694103769682648702219759442770729850500140116724903272985729396965782840144946039667100455632960537217371343254924679647631059483319037818354355065269006444525090929004452117048628818333836135665608809060164997315590031381603644635399022242464366937751416079472467026288191909428914428219037000631745795145880749833175216625500959120163186229018661601059408780854365081656373530049002767602983233639909114402966404387156162248777569583329962470332118485144536253480672243283485051992925510880501610287643328444980845362800606881953682467492875298842764444747959741754743180620766436134887853768129079634838890822556846840820852695303853164374704420349285656353528846387655284523529546066983434693223966352306932247951754391170517144266038828289737496184158659621494086143105025801861425121660743030499356335083484364977723965723343298649158776022944756017290999433283601883267039312358129430983577321286888804812501636619542736792030957996139279815858165015179494370831184976377119281464443641824507879637376947224772625522988607475183174895596918616319267526203218473046875804854403872546613625536673746854254527079982296149922120176982278825057119019274501839386730730125134310497013513910074007303689499659801651594601353341811175827290332424408733736839055689426742351389050183349997367173755345221625549120826385688334481888079726281053839050305257282133128933638552061590841012393371286783749665602358846120267891893160066544874253719902383320110032615002219542135097598941221356380531452245986997218681791841484092808932747428893860086956896091036710594404376909936868913489367589998366398928262019006124820085066211934832204270348158483186115905778412748710237557129087329097187863446503254606888305587534270867615076653492036601611414772914970647109456756840014298975312447869725268415713089463888822382366299481422218381628591835043595162618229785110153159188057370987897580476648129976932047529748447431850532153967793476054193049376044461993124163823627812704621292249267981758119624912131502549077178783373606982144614901611064256674320109218645719736344307481231114917661580584121107526320418894421034090757216384372953011343251276714026511443486696009394757385772114607961823669266464730113849884314334862277688259079029830351048581477465224435737728819406872921695960761760911864400516802449030530968787681590346469180001089583046808619246964061584522680531998442795709215507905733727180426013652451663802017624348529274392956867059082210783523245212096743506606752118076036433254060925304690361966192008305091881630956901335674116696680907721587390984464022663327843607718658435502919308474779900985047185126498254540953491399114771417248232024597789373468310979993928926371995290366767180008326457959767606015885414739677804735248297265384962333549977516101301975961579156329596509904738236511394483501537112120217868720747822655082218209467535493407542471311811521426806662960712557578057165556294571612308661722390904979004174255856846800535135765433757792424606265049317412214265049970449186624404805409160886400742567607227342665395683210713572856212486929035802611609055789871071731465037031047275181791425385995410661535841945398530288058114395943370073331975132919653992869527244643129166916413429619694335907087290289933807420570443136353607872349893154333934044437155458011766188735610660308089617403482215665989195304365201027662356630361481531932753427026218692979176550775538345120685372988374731833117250458187041024246680405700270835937379809238023934936464649561999991749283916416718018571498535459737791253515350910425503611821713426005292791264378615871975435934376861811493370582664411592879268051413431347069137735443622439637294412139084597555029698549156586284111468691560790078053442685592370909732267305360565971795804743149929409215019136329936018711163152251695468844454392058362787171870249033368982621685941154265292531306838416113391206913884904690887802303914544965841726319220107815059870615725263079861742200482219507729165243556390980133099516828493286355701889453110461758718989148014580832598402164058505799247760403024668302841664847044754870844756216472601334112090303235670950196549750345097246251617901430967619015850116689478657042488479368183397777773334542119920681252230440323382985944428969650401794904839768471052038790475493168106711961996881230751972842756002578274322161358447090001787069253732057218985900557126277409574013584623999375428122179850202146549810302031351932364128147449899452582304726476506733654893204963235426528801670989548042237109602826852014272648790429340703822511637484856912585942162501663089845587065619447179691624131271798366364249820745299998827643315136357216272231825186590667892917688372905687810114933557286713585998095936249152910203748245582457045051041029120914160880243512201715244001298277410894150904674650371477407405876575163523931627791562385423556793873014445317502415491348090620109627916113641067951227579247900763379288469823728090739164539301369734021588800720668933705120269642405344117883732642219632132637941719597146294976071662092659702016358783359205668220267782177688421374000872257520380697779411626512201490989593616117383777652791163607317919484574417161537694192092187603310217121611750203910369702745618553897535331995152052507011745545945366487701932224463851569823989048251027911391416471506422466796089464951921324529789006635418160048780573772196766482337641143469809263696319204406013976695979971871385021074043751231802976866854801245973495460278328467026334348347411054834307132136072240726270737339437497039177215485808128828662755552140644724988461314932383519401846681539999923801679005145751870597247319023470836011882259565781735092376829314514831677465500050087269058114915273018482421636434297757192468395441051637527398927618390563376075768266223696181023252889090263259591405176146485764739922741108968748399983900478485779679982712854701379610226183891142074142372737210171475669885839030962767824367234375007032283293457104045252059554821575967091214077858643330621421585597405042631976188396216255887137238670498582053602188008354420648273566410297632969548478043449618559156297215120620826648175007712277992329077838121882637449227315204857370302580364388899504243391082601804390915987293921825975967256874357193720229791933501699283676888387602394275759901073903058173864940749262265513573273663673728282729839028804291222409843513519276863006431249947155556845054560596539056543021827316421350753853398265921752663988383518141406591502359303655186003094182177803496516685671999979355513742681596221764294560219680829552982774749979665828832884420631986580416053303474049455594353858080964554961834966192782588136470849340388180801725740802179572355223161134926586429030337969066433799175711806570440558698204397447469969441902381147076838986668587378104517974941136716738170961146115301956594954828192769786714624682670187480735559865910793192657549277688995623171488906756441554726094206729073118617533515116488414169471131198111100236817027891501375038863325995466396867962134153561867107845636505043717039000868582595805290969385259663512596303650949710641585161910170500253744160650311272076537385487271846399574899559586463132249890597421738699528725793446114738253376447986403319462464923446078873188131029588138931737536904343274092066543014464278729242784141468709321563402626722985110399616365907015403053256487456452416570617734206948831850938751839940945081524230882426975190352692039615849192730483340350534171162051968637108290159625547567440067673618048213426604653793738687651708149758889954894847418030321813403455241177420746729364394568665560120107041602534168588559321947880353738925773281531281985597874695372281896374968237682302215571832549968484010156103553779724352592886365475582156781439131954678289195839704656310381586639871984445439870207851251624361472172381681452865397141971432029494032278780604574517545837490777882004605535967595510364575167348052601845102689263048914108319368298900022705007724965988981657677407643766846712577748454458926641645154004365136696387141635382278035269426064825319425114151496717456296557105832227545883589210439505262428572953730167041147099936991221900080006624713884253659427272294895398966194254117288022853967989803676411716653832817623684099126884003447366393759534288704509636667798276994726819041165881139527785914766534727131565919499487213279642470302728960242836928479430407387793194649948812172193010225684127176069868478660962370710650954462636120372735398990659187805205625997233806706216652694927466196887416400054437930705049352008017313242977935577598379738107898661513588049598656769176969682075929479541844994440049423406300025233650058900089997950772230406264527285141408724009960418317027588983367533901734885062265119773150541898591637225434849633969133997787604611907971765809576589178626258112353956948852874925169982920856552526822734855003211776018578061700556941208758572450096489901565835502296916022238469506392037335697775697115373935400109708869439117052864569124591225667708506193589646736302477654899001573738598845837192346826853233086584085599732700747462089946589542349574295721732300962293364175771548660521923796016956624013953936445306080875463020863491946479780417627109713301552445801491529402528221967896543360377791677958972724551665133930316862302794112031366922627650623610691961841477617580905581828018681593105932659561802522688148031775577644296828630677488673569078369235555027236931370892436107656032499602869567989753097665457485669730474267416167712156687237658222948659901660189387181240516365694094313452701230857414117779102944934473810856382758588339584388854133886428944269754083735650600415343434357576964198777862194482590365593718751014653318318684327816836806954017043466499214550006213396345304201052277196174243253567055575771930785076513950354415548111481482033777872794598008645847439047613429261149393241377044694041116419598385845424831490666029519192570591473590020870017019476072954886036644842660898850808970356846042278846663503207742667552199145674077274845321562001873206150034589733521837297679095759514087168652047559849336477543614068621437265826780353881222216012398833218541661563835495620212325009516624973095901970084251759003813794341143516177266196468964706680711824316656328658573254376690171055485829074377554451161112442550950383062145948017271031912416289717483315381675182523939029051044433146451309111907763432453665253801219400015283870529310792005652026892812505304972383014169207585973786539470969535264707104859621740872492308885770625415659067800427262725351132905737687346326355653153209605849450434635646218077904276995640496970417131740722144207830745196656783938209847875674912909612339189481702250364494807192269904519904835506459276841248592283452036365411897428303032328110163380959254001047655398560465554134203030779826528283131595870646998303980689929483140347814176359880359412582277563644671943001822404857841471020849110652181030239228800751633522399370112049685817812650800819961611711613313455764211485922969262215770655348529740615693084638459125850371860893727255815508539127781772744214727037673798432433498065865932204157923959753937557105818645852057547416586061759173837486639390192742655478275221261726624401786705492383947605098384482399033681920272185509986773022746562760242771090595106049522914011758657126417424914119186038429654294370216145580978558716007643325876836532447378529304827758258718330973689245757197232729622105503310561885450378446351599348320432365422858554930141991748087859363743374418849299226641595270474361256385535469039662907648429377943620807037613256329252811280953912230604258808178074859783656220440296479503920175239638378473872087267823131606652768838340490096309419720708863090070572232120152145043847089799820385139348971978294304415910168465850494709505424795167971331858009519711866536578714963888357381951409315276443633386740896041112448775008684556564291195680223559615937330160578480591071496766726005750574415828959988021697644293396243070155202115383032588337892322085783860371085597900018353471734103002392820343147139536163176590599345442640272786617534973878617269199293825304571069705788023411951627602089598698837639527657829468989061660542842030639084435445381735534975884920166705246415961583672067084142092413227894362537613289380863642701237867622128194155559481497372691922751345253590540630970831343105268997272757663110529100490534910358725127382088019021745943151292250371688119180314484937385063658865661490225762226427041554647893924340364571526949744465628995861050451490748636056560027009159176725683677537337359089916653682988549800920951072621853201240398632357647826913594969800493130810572849147213180109605616566148287797833077034291641312166216653226636738051046881094605553735933791626473269109991822309294678779781739985598226520792546293494452211834425500722063809203482031764009897723516230919798026029094363293297511424651157751618245872365608795353622255668418570102645069766910811683691276612847843541407180677698097868978857858871233988633839557144060191130698359441200683206808969857313109252906939533839754152048508451744861135252330906238684315011417045496822074745914488766938347789350768582055658322438229085899490732570042446353889432199242386489838970387235472494086826640127830383205762078592877862574469505013847635577410611660857412828487109387910027687312990423213832264147037957442060466244528795647396187822861851597469517519467845373223364941550138681414269829220485527880127192580010409772888407992426526321748248154729579613661948825171073973142097447238690561102206448851745311177664671185307201384612083713170690191148439754468531326697608802178775308582508903598650662490952983540933486101330496336600572230540933793355805572658531077368238610199667711324708975962020567085319093675478021145433779723201327615402523993081424738262855993215807671379784863156712551554253915428210417712453534500337880657791984372054501361988414043940619759584688653984474316715838326154884658733337525768027186301919303426175332305615434684605647317306269091970039252093539693275865446256418970380128890952119569726055807658070415440820198572949033705361401935482257403942213486282274832631689808015909990977474300831446107246830037130910080930875935471578021830558871978725361416417343390898244127671837238226213629071858097128979703825785792963482569477122786069496471188924638653147354286593361101733823972420041307431100360463827614075146837908177742898349182722606713243448948067657855067181783004827595661534691246969599883011544792052304204737349468939853994921444920657542469385931867937487781709180919787044493471960546127902978063662642851800752925290607109701228520230608878327430171652167318483920645827647576515328240961746857567434496933078805592569403957525506710852902705821788955702199191366171994458468070025667654078235573200379888948319523893644752468248479494856423057880807523568465623829321323631194889447823369833412094120872413914655739477355848129703047800785246834522109211729127601183125111255292623537297165844611875485534260415423292870782572190928340986101548906786252755335654178071477293032115654185357610103141047995912905110642907504122976392579684831140893183729501845574401996869462451507822378546894323949117624254175606280732901670025258890635796579450816678110610059982364381345345267500700635603535824590385078227233857172278523260290969658122714539911080126768842390461621421912072613592017191994876812104537899587333798333586432184917478409093687366798218203994634468803173116641316748756581400745356500858946528156285174431082613792820875573765424085676966853383230928380942826423751365809343028230161410142905727554083744310162815202983725699275604183146817482506806340058541649627920749466248985178831225023486164396208572088091483839141514507571302279309474517292030674196229525402949848180524693380887103184597970884514189022358289024368540740554029089776077523153036833089308412465869783319268607753801213077454694016952355003740935820893452922359655375357613835573089118349514370404678557667712717380874294223199250396468589507922248841776643103885986930091928061405254738542082101137938929126111932066406307373945316633823895600289581356733548959715916296469854956052997935641841415063149374770595876441355537378618470168329174119221901725358316429391764308102824954822212735496052185699253703154350818500716916853207359028112468125440338352642687454979966173413756851511119024362612213000721808405567193891755012269564555884923105513600728231805367822970888928916016641167857428271070714967422057235128383925417561416855796502349065171380384580511607443529288382131152209436915304294025066554606408684666102515329902962312012843983981842211687244447146044730383889206707021743845624495365490129908669388715701510076019968101084281928875594186127785696936468140656870572183993120787214587804161188324732694656793407264190149552950834776488936429657274183473412259815815960802482296644909206362035189062121123028007700200902344141048377129223244335763719648054005829769948535292898409504682540338686537832158285113119391361444351363331069472756877057247583929638328682196694808604015096567334034935522211220609678002560758279029331620040447144321862653314537825410908846474412939064005391023910150070865638457646307724280474130977169660759037050312217632580055738059463562372759224383178828712140198342577874031578817228887208602438155938390472913438890861238598325421591893629629556549134422667767482714640486529148968391611776939508215839629711421670873048848874296109566462842008996796268887953006546834181189994608831290677457142009130941567937816476305534822098701862945622434407420066863913177723197799031161604163787050620953831271213510686582770648836557589272476577157774137849881376035243126517817098517698664650823235678851819021070647179170924145770253490886886979110903143352070045414331907311261445144963644908906512249216623313981279690685188642380773058760217691945474076711970330371335901402206653398844181536458679299727898426573202914931957163468094751884360522158923744408754764593852161743371531240882116711838192968916990555034817031152348617540398981255973665528097964273237474469491874144881663391497601289435021007630685683373704035269122488995813161661365617927828618159429670443338525600164877957945324390703097175546769296112460187880298018247747172059495790216524225401237531894154898436267653581287153165265372112298392121032136606825168929021896082372886321825879839832031411644475136020518638573116992063858801522252459300438954155383076909463083309929132791536882609083444533644572396348934945919762063491203530244435333975831645001926855727412860783198818110785310089926056239867593539621973713517732510577788850836909189547862851396481598624033176267961208183066305062780751739257060183384162320089567663755397540736326840691472322243723024972127787699053479618247056926304131860943383852057528012820996097467197503163135381822694159922945764388485573917386920343232280379355955408322187468972498690590690828306894992059285255066653508439413710776401357003725764451940810288187849593754989676029542647152508317433500402576886861383714790963806065631410492175587036980145086940868157323530640564315499795050885364066217717476056953100213386887006406803450630177001599129134119792778913233968774386731089441035421218376694351429999294102882919878196477093786582812679379350321933145948023207574244623945657852822417039146380272380190465537178212682553819778655758038835737028553623327922446924604345354669128401035153943512236666233364296915997516780154962207207684909475578810005040441546557334665084736668613307358249111097990788025922352527520353695694400287354929295172548890611116890416872686833413249650068125672602154388693246218369488895983075926081629601841729137759068625136920790363771481509428091314116850451613475286628652105021136705069325385963541418280815018099041198957012359459099905851151447690950942332976965071951912936894676144146149233773967405322771625891415635228460101318985627002962471317812529260161764889128779743031076236414026197078135490606182542807983599125888828596290043002287979515016654413625240873733055799154221006960622088647529989840825895711727026702377463789898268701535854064765990581176379718593392973706991875158687533181806021992908679994879928915882232847861174423523056442891729796454471793471662051275524748115325483999372004644223260703490933628305807015670481036958026370847950647799077608526144836830193240191915653485999166184188959497633998635732336405734736747835113729257206113095814793841909212658106935787341153209949801978065215671228012121687045496662161545918210155888090452593107843917373790415788755787384520475984994460429022351474229713765958539080173189139542393404264912014411377344510061210323400052356173269746549228436147643453324370442048523041212322945859263947902588216067024499024633338123222391457646998598516603693467847811873648038239518185790279874759352586940663905463114060101085140826948170191879087400155115152562649499069196232268201632032979793552940438844193629336569680685046419228942787948840157977959516598434372714840178670371570781401924641238489602350566408803674537994378821238061980867693259468729303030352947896425094795059587498076290874364806901682297349250261839277422347925987881081561402296425094529044690401240336479191268615731435336286173914359412437127702991180862864061113495944607099319332812410560459494503848523344778904934459523521115318792653144446933711371309512155020250454564072549660601374769680610655051630486627526733183400922955545901219695765437644991458110197231238128583575833840031646645617081751745420854402698504774465924473842971406452884864156077003669332495380899351774857932200563598475064004210761107113485477298824378907151446388464199827653157997457741551509564170261932406495350031530963844398613542165370223747916812940375792347335610009347093605869855192328343180912730020315958007246973747915482077373309905043586940246954065845130804229091713850141677695143586297220233797251917772028334784189416353114898648304381585661340151313222357996524999801611244128678044509870709980833857336947343514340799489887435960254856215603720174310449866032056542198971417935299916761679314058726126556655553296369010963454311089130503386970291361457992884706366599195835920445903328325692660454570397734874531840564595066874563651692974645828699526558918246867380953802508599181578826080533547209786307342325343373165892106737521270548092088977014017739510422715362616822506238394396686564449375780837524169491317563142564760158085298635034460813801969842662399694721374416767989925717263907086772874949248397560969589222905205356924258554455904892845958250765361775240358982386602492619345733233632908934728124370337689845511240433550502244516917563611251082108735359116615902807611771575223218001955696194089618339941135215023359807172223057607079493887331547073752309291972782185927849734713601073951307571655383539599621461807739157350565817247297285679016135333179034819312860003224641834081732548241843281555605658905936854193145727542538710457011703503944468221831791086819091680137239814541443112617344506802505842845364314516608907302902454300817012144816956842904389818548981310918103360617558016646025606951142681523281150765431129512491902584475939508403409827399977830009283769642939790520307968846359633888170541535090299009931628274188089203071557352619297850753210942008996007303442443562195976091149688764942589637173680661421878167776739860043380186255539221540661881597658134088337255277106524362336905752282318627444679862581816906547329670644176370991425989795186498096123759289724071311925684168461226015538578836979761096176494631606232401286593043602603597287652621974937633537321420853971976595780037769731546735643821280972637483163921723983432012957212466809032816197420400073692303598688944348253811616193740636583618837952252405020958893808281557485112431116514434515928811917047051767513074759454032795884008744567307495904482939507744644523728065361712099098572584562043431710545297536305320704258498204021754846545378837195229626899302848189956072909748418791328156430616565123077745362436022090065223358534089946988340928808277083652618185640860102462664753371984139738466549761658662777646153934410151435515532472046054950495483007524926505810236510225467994204598853348087894230718877777798866398168188317564233693987940808956069884224041157014421804125688951730766529824017254005240398019100144087251438551012228016173841079220823258667161586781711089278931145783813892096667388184985899103836898354923073185108507506265949866299935986643888434514637692723998437622424051914333223446041070811315708148095852895958180408107817364262125457655349119849907070338966758083616662637427597848994104811832779113293142651791956385241913220237083156316974671470056940365897456950382204750200352592392091957777897555158920004401341157010605670726240588974045928745328936007278176901146584247720495487049894257094790446768593626736953616923171770444970210057957951233045924356295118632337865278740988047081750936360665002013139100812632348003773017768403915846738453405428731940540860446940195590699463171895363944596726706031750692166307753811915772789550741598906848786271438093500067439863723395214164117599075504768423950649356445314572407056634902052902488011832507859452535314082112003798896323849298451078270028239944785925560476438041006868216066002302432097709987934066879920594681920306835333106680630207913446954272788929156209228407287185612153757419900900264789071560081660512004236845240379802859885982031272364318322895454196566584920472271618272144945396045962190072854937628699487744301521041754113233108133812680748854785638931570254818817545997067248793078173489093616337036567092924386292458981000719290014202688086502786337313859932290825488295843470155831823268844478832124159766011774010691618968452804477115428250462062914800222832943729365813244996749889333751506442249012555846300864716422374519425038911834978069049502145129264102693627100531542647162803586151596175148907693914428607893934920086497545876386766706857140559415410886049725034870965830500388784924046409846111338584201371758468634504080751438908646316428181633946012831796632864744282870850107461733866665701413876252593921797115909452166594891853848045590481350366301299981395491386451915686169183083391723880570353352187440199141197277498472112491920684261080828667305204169769106800892453950263158073201323472981554012116474722467967955003050431132950873843213204563117566387231213002108629263868647481697815601361824541366012854798151612885414254794080287749004118614802564334628003967006461733770514392266331938050925396083167750403298630970519458646938606957685400991724592165838983076136344975957079284989819436894209679840115893396142489832222163527358616724568806603483350409622752143175407985698290202669836408535098887684671574710056675089507183611473681705348024083487830500332701354085155308323200095841347457363975433535950706895599602862767409693673264198203289004880298176786258564387486759955898095151613606687736500572074450380122253980321961305983767263307807291629175226785971650895116735902371270712646254015363797561117441833038976548313094529887863054691858065480780228975261509409780440922388848656260690470182052819884812370799716698538683946509263470607126966565393985066307708694155067614424900591885297283779015720581311778534619678579790972933097121659916141408938810637187495863990895924388720316985238949124328335194076108078617142360310843886149232601830410431334178304724584454432498848333991677287150562220370353120721221545735522632143815462050563826853010466638280634147129615188334794267445856582993122033911683219062730603210398999149245176372679399840406757260239924955798172388769724908837936374664751543613513693505943690754119421161993679722334119189300875735955081387387095133447964031583394882641034037943185937576056578938089942924848703531242367034866115753400615286405647203656143759403498248530509479339749241247944450224312648408199758595854570961628259954791998831977235551660341023902967476779158948993785687866529091336486932103844600616906573446839341411985004080509082893792850847999493463976694438722980152738929590759574771658646313171621552409158449057606691491285924944862722592046314491392137640568499341474337092604388049887126954188117880771272410351635548068638127319611198098649458452415540405158059293068647954604352017305656878218724705477151329932005674085842318352034103069048414759118167776835455354627093304666115276027382145232445010891906912568631054717977275764139937503432403723462041615383626275588336246650712632816131458299396765929500507811665950922433480916330552456985712446905952256788163653446729314993320864819409824074004326298984975920698216800202065710738089349115881372387363736330613077840860186194837635787677946636991091603030099411331136280468045655048794470733030980037734986204470269298952918579503524985303582040829919607458895656130678279744660645526405606512008579269181473870588194761119655039889125833363762343680619526277896958491754765827197553328958729185413817012388031392445956857145571851217484191504024100535481838397709419022928793320011938384554912621439030220477697589771101544965180444704593686745077535815115268671516263122378664711230743231775360772930154093163326795893461769149883839331334095812850958168591410376295600009867902747591151725862931294192735001755456329268956998056735223319435019918515362193517030938749258899041755140152986618841611114977026950832011911114201536739953967663082588636725120688625838255684588611173330487747108591916728230316629158043751604271455488982841828444239473377740850761910051779256350997837517803539729602112313200117171559979649462847503286443949683224112417057280847187050116646780125058400064099874360767971513176609388728722213684301072743937767027186455954752166433557090349473551084780702568707686721767956490187337102520683269408176496956204894298338329376294685401034264636183519297974838245535934016929314645618222025109681786332882705819291235156155005583174983416985347622400158778016221014443929049714122442549044975657992536873516505811027963110846541081705195316658777199188511818627393314467883287814114287523076207921752602160720288819944887392798206603675259578531721211533920630428919567817935544263246446183996481566636203868653334677052259222197846072937934434236430712933302133999286150880985104002813237790925113299289166880683476592981668578948906179617228184303706711866544955875959680626192693527373579686818295550618097599925022230238308715237863087031766445957446944765238544092305377019800680462102462652141154242900570378904803519736248841325137947024209210859739690837416634739673560389978233588935591403205867964912169819540075437038390078021353996289410656914815985379941955689457922348045474722844301984476915825332518781637204214268681843048806456994572296465745804595187441236908191791100741902069773607865580967091735773707907547662958123161452295195958074634934487158797769826981389446000471982852215107376738916780336667504655891657637599464340835090231110470210608697498765776605789109620595417257327048899332267763350395141146255176609859632791031698280834505545947964506242909852375176580014666066251334204323385912245321702489639413170380080199028373999083526532748882482465846689546789416980249405414649129216937020167260636258289254865339859921554167115429557923980995975853780438819516666869934838990136893697126583663622551437863902304268994358735860707667645478714029487730395419807037808997961288990256184563985059581582171480566115090482570588726589877784749205791223277303561725161049121247821202009791605494242857501701200320620951608834416686896265036961845038740465721307677957081407854015190879913049186327720298932988306295803006159840372170632824132007025778506429258312554116240678703022684244178314406912139171711731042220028408554197837247184159059249984308570461134926050911904222586223716010685203080821909336931612710809061678035031138636223521867830276523704719631314714504255443098059475403393003704653666783862402788406980333822528874101820211681522407633209925365473330241746490391011602772667745503393892817452896585261926487338335974365068213299699316256578532223894817037987788406733565715122682534333761120083245393198125063042936459857273780612118047715859496078028185801023671450088333992963624980666119554955893343796474171367644831250230078600615087229892829326228891265187818240526894686821430751941668033759892262441916943351368095519972759896499916109793963829796003085867292375229923317790151771515513043588851310376054803168898186501703641516267927830609006139358385951985717794935712485518296214558205284977719742519794249938284472244671879708220828365470576803586340966224529657102208768109581697828031893319106613523865608930814588218611305939449418812233106188811208392302454915348659462968803132913078533850185772270282688288299225376644317893841242975324482258461473804257816728348647660969674091640675821388150710350915761356435406661104191377020520108930200874248203247977696748336503172084640196388240593063816279334355770515742262018729042144543396288823793765921908288164495671980863569575704403230021700025485024989166074622951773213763790488369871109311838059801663778990283139999119901571438030669976445680771566753724243836119136729953119182315682296772820919293595195067516412034167494679817842960671689798949565119445676945589689299199894948463467721276590359429985310355147277781779258476077543274441803868715589568257036734167808974741595355092730099357332953423368321450944814242592340441512873718416427445779957740023889073298324033788513867698556677129215113853043800074914361232357031263908628600306715710695595485145875398691275574075923226087901369684782665030047863353681377287138360654458806263531516313947407622282738381898850413739109524079567064038879448810238262776642198340846950934227582278979768741720473927800812672775592686869061452400541439749293304450197983992535969643697936708836436659007683635701422858981021940943638226346018917731582611090729518319731988468668522393588687107373080485996580178042818128163486290455495533076348278178505490489227533269143323786514521347115808915790413168558731532782446472888941429680221852784442981012394548181549622038081159768951685583020389706142694008131757734556284200766189016137690040618583535741938410590502172025385244465425381531385462848267031957663482606462903971749362301468578368412189551333112877369866785006518615451700695613547506149973479784857461640873492330480784439747931048519291768622436373965838706952397290168063086306952075252318955460766798440141962295939568520000129967671775628491216719227405251183790090441225608035871256241618366053223221052939825795469408119138703184882480716472127864525992226991211157814409972493724548826643491056636165194943251932728433030126810681427664167084329929090033205316644819473632782561814104082220583089554774371922770977896432307000317159777504334367630703075359345582727010919531160633418132417086160925849243185531029843823147176803507774222488034129258936894290125077970482498249877062692400422618921300343918978797401714025251563492931029764269298942451213717942742940889570299393666744277456705213826813550877719183617570101997559629637288106706468532341519022821628474433109605373908858139406018378946960777075392410010523806333949503358263842282278103950075239384233609838472946307312756413353008262836129130370372450974720826102051082301999201311366866806456462796855809054864642611710337763413760716242730455846837356574729148882769078645680407991035574951965528310313951646246107940535424417042356058214009705822860041744315043062743771983926340023260179071727691581627044805756383772532687718011587294273009645713617146046113630738646427499050646633112120021489036947600567766554282600073242626397675001150219021352463766740264565289608459275630105032754556779352514750050930715098762692126825431569040604347570046130419654563395955907044070580338312198923712902715852061495496038725528192932954510962940118031489807921781350272476941729130127415218685805068851519538969012847907555229342187091685953069748007003020241262722037486583338486572040181822386699022864610493422498197906604319726052956230856759638405846729563987188352481042381081332918421626250533538838437700166384550705202179970728507620010511503546139370632065570476622778958113199894629350458832970661936684999857453818235189178238710769004081002993323289852207422200583095820489467559077009816214970756288051204799863198080554942139473788224291373214839868600895044920169111624593370075636826827703280062543843888807321243752081684171571458827905596383384292843939924522802020552910738888995000542279788296805003529739454460288886833478213676149019416023598730370768973444239864656494705033483196116549444840248474342913076405145380703499203812526246800051378741234125453692736509879310555054820645865987463165258720508556256897783907431675926309089296140738690168990546370591090883337949678519234656041044811697456457348968546346041608421789555197691236518999039635241447899122204442745409014374961954245048579967117073294588959530571071348712318317256865333266967711845192896520989524524097323168096078458222635022228585311427362969094738287645259449023753268373184482881775873745581767949787191783908868555396231938837811349067240546946770634894075193812925024249528783708773165655611974380943443708907707354571829165576477887631967542329977827597040808207649497789844128610674262976981546674313045879251125901773026892102182957731090972963446778352605897604197479594756627177880070431763278356242913481739182027770052216055587419929369023222003503417662746248624120666256221428630049212852449623384819871576943503050078750525606655830883502264049065042335600793450107231284349766071807197620019288067644555683656513835000311188949107293875797177473217929725355552201541605045123718734217189695403590937158990543138324051465514331295393211874546149068751462959738474167987499239316566806517472217803655783484250756268263341167423634940129360028440627784981749685873979003949002403716970776985276928022679914247824468482885499853665811103837357883652475690343927479244227797545171661435447166127826561422327090482647665846628762869426153769550089986885147250857783542856762160778330985561087978713897740497241004632019377656731007403736541762950385881627384007106912058604004802758068310760309235743455765038711618203371899093358705002840958679803258150471168921736790176831459006612001687260747867601474091079610511755313161692087719108054729868790256802754505825681430397039411133101721367890984648408699647355468851770355140523378015467088270384268657788787182931072954276393257733581647002767663505959283091170697751789787884984144115200537531154773123363652419169704110231103763292378181128957032262852275953929669469196820385327772308925603395671337225664002255725081327010833244997032142023268670225150368190457621044986974533924503490057344530769057459133300143653339670571496444731549388771009931906829205316963102646300549246827562852753764770564334992577309953195723578702285821746246936713474041827650132612639169686382903698199687498134401078864391102171984665513619084744489791209870056448856490407694635127783505164820358940473747747488657962009646571585304559744809493128591637281008420088591820155168079975315265487526481709800168219621096058628287611295178001647758646917319298954604994512709914327558893107641553576089708891291098873995236967349348261011631319555680964794617811802708988802007293646534527229922695768829523258311998063304071450013140495655990211470392993042046940891107648027160536467576919918501695463112446719584986311738593706351054793083521740804369769847364146438518494870332335575687359423849197868183377392966942823971757295663997373791089462093855262155637041978536062356639881376451708312907506184576760857054305625521697822836152852393273098955298186813556187344139697625178435102163882150522418807525937698693600720094864560149180923659362801605251675807143154281901698627468234107220985135042388818007816464706830561465576215511263999211426192908666191481475122170477200069878320093413856477375799986003691289631078441470749722784207198212838831487768466605387363538698361874903935953522885384234849068624851268283170015995977126706362956604560999854964186419323437898337248341528910217307240733900489767933609745327744590619849756289001456476300732122491520590870514487607071344907425775941494362002663544493378707289532573939692306321031001307354652022086201835309790936845901968410015278831933838016246807164790434602594705604667632841718165526930623152078582463319910592716169140128380275759595524552179330886800442988456360572040480720779960292232399432217797695522316075057039698224943293107067563012121454397474171890225188511199935351573034505720145371372060320524334585755865403227798388575943813144212595006546006744074599378410192170816145515193179568510726093898640956579631550587064972599519164192439813517122013023276350868454059416958227760069238440461894326940977574030253067278803877004679097422003633742591638122379602298186211687708318928374410246936415287816754391340644062794060906968223039409503432458190176112920423557263655452880960367206473861481843843709843895694120778483152232627331635770933154138581338673760989572688813490825268523180079701488993024337670073066571375745019122554908729425159693446054753841209293560381900918619897886314556519069628389022366813180103815337435161761528457092924574956944630121341678816206803873694920544165666191748222016453396456615585127895645803362030128223638128719364825314808785852527870202423922487499057730020454069036428137213107269314548494126157845611001108190747203849254382731829723034725747697852050774945002115524532785807455419914191364903249866597525528314597877903644328782348699273590665750868695701073464338059358966245631871867140836203766949401935304996497550992265862643957344595510506166302338991179383106756752324881571662368271713169864234133284505609947762036953883636446279727769606581658323644473534669344051793836108285563618002073079783227236685949120777991491618850165866776844905418545559524618025030206871242948461015659167008603174283463524471594335361469281580696713832329939384397079782017811563938953116401155324578049861939894517390492796493765050974971542491788011208087433788296279041125172653335197335328249663013562343112007985941462526558662670565403292255148817839439551814053021083232365103208107889785810626252621011209292796984161829147803029805685743351340156559579051042548725955090146820829836024255332001479625677857394276560408845685380687581044553601709097994111186358157069608192129609634201053926250297509684615771927823175529248417946363346755718087378807773101978294988472218508971339127192208344026544028152113341616999568627342865457220324802166472525926775586698507765089079914301658938016476602821750366053772827519299677229655873583514565146494193630853137304732347697616348927565157361669395615692648605368743994169430066666326416832989035583418427731236660284394447942011372500858808285067299146018418597303977960603363970733568581363190345412107199684095512830742148370309820862352762989543564662731082592507405200312280001520807752222570660056098036917304707833712848968527251758741725419787485116682737819643488537936449928288452867604411347731515386591987131742546426917286016442090806172973170327848062310316355552394154635958794992219384971943595961204774173271478181899394656567880009242147289156112489465312195508852391979165086725706107441664709414578319993925226671215369239442301951381877115666881740616131416273316981207077399893659070853704616256484534555245598514263011724470139237649451650168084828586590679039687632732835910338311731348719384571574943835280345766895373388062850790863038707947300797353665699703416215953935279425615511226387320367836619361782286270232138603047850805542950541405388227325517603126034559338821091283734094103073653226981721257167522509025812280516101113742568365711382965511230452609315848711549138253693538245688141802013689543700780354426090575809811673707637120945413969439107793739577659989637487127128945569360601873363479684089099511296550309619839607636818489370392978287591645577270215473279321780779851168035476095944001893624619471541295109266662249454178052372388362267959756527644305320733515478217895815131250376119240036942551912670628792059680046103244084730702637431631978162584251563252169865481488938212037502970645798159044945372944970828320062244758853305993882561121382659171367971354376675936530660390878283682268118881873035245407930357440412843291449952229557335744276984058965794436225369510962101492619254956395773591627697971465210815815015630984928789412093241584395328840278606333548594800903000917794090676443527395223047051484717436213665539033618484525879153594051712067797025054770277910263561203284831339668246846248642044295469022067841555296603526615919000468555967492032915845110433662034308381753044538850616155156144904147361607094060117366541279255510459649345703786860364946957049786309128959075049551509901190609102353493974862865867876530304817929782814618412313774062051662743403487179141445066386330091955290606620884617698758163210443351600234888504663796952013356981213285008263020122414981917586953401893988968940515966436367949695979191695121164702222895535823276280927944951206196014500288766567573582103056437226304894123232640967894109465095002818841381802124487283790783032958204839202758419852176822456681865824390323604109444930505435173232384723018649442655528074348203850754046756097459659290007518063426155833859589264152341217220590800425946920876404087579129909819947390772580118138580703094218816098657654300196458756550022572316732399307515986387117492890203660736764798237223654492450743125366389577239549205402089378405995859994048822713981985383806904240565390937943406883654756536654899500357978952932941019590637402076962220867652383167124283935901656953430901179746647512340122851980528349325195614716561678558361752525312470109784275259579947630998823156193185461230040208720385106438290794299145774562342327867028642021613062593200099653285330618145938058915233233159633422626585662257794407195002325754756556624351132732444909474982008323506330406371054172755757104965044068854603360973287861088084708934468608464254180440359648021752186205071691543117183160260436255976819507384460533806496476441132725991133333749093025096733783036818119650311520274704406627890248091046075724481104038685938502725293664612775188318973905939405987065658972711141914753034918147650823055041362851739744055122315625717999436784976214047640872755774394283141946001591233892158817849562899236813718083948420216175155428594023851972772909158054826604152180895346523931137470077163839417385048437960543468071237432450624744394848635362664317802236955650020295043061744542104590605740365828617085466539174097162972148313376868423507226894446542901093843730492409374605569069122313378172066474482378232525703275954861061920116221406968564173764880325766113656945767319096374489072842259505331453966764657894625667015483064413695718647513636635878914583870290625994435666287289214537059879142198260364277163351798465881397030075416513175729195606704626735603035665611248599777595031729562243810792080933372092240424692660459767989400513211246263188204501122778490914442685053833658480240044607340624384715348245729944392891022093061859672125050384134524479711336219144722493140225508412815421886688599410741339268599149115036541713746712763229767616154829316018748982196918133033030470822835988307413486139234446472022824315649278987567449496131387763808165643923490475665642822537285661306156928495555504001618697275592588022871978058604670889106171113745196586451247945289748193510412998221255716071257706730399109040613271854969005522812385233469187297588061438623601379241198320683095335058878378407686232758428241924143466754041594617524893041315347525818981323927694862868530393060811186475260475792617882342536340766743841831317360239240156195208294666236004785697538892500009728538221589844719458395348221423255507433711845152449441468942531775711606371791713183730201723518855498997634629341536264909730578577473278672747770625673856870865684956095152933123294949201699358994878465496889731011874658131731888560722396046309570501895864219483773866548608068157470293044089996921931051582330187595421328622022790906827952315098946114853156530393429223724702395442614866108920493939609822090833605375890034776310020329384090680342700578658192564289691069349320027208337806177870887295609732924440537818311956874569468126429158746687033827173189654494454791462681408480401022898881753127666478623303625705263562063913705471117822132566971027638276735274742155059164246897004373395027722237446982095734427563840272410730689244237989273435097951448472786962625093267197635578480756488480548064899131734021527620540578163673030115709587874487413413008543514562763631048399041695151195720241298069664673139071502919618392384659055710791721309304627602224122794398490777501350168342524491195779901703862664311026128150617110521289108232553215878315977998202073498977078501983580372453785379873681698635087737478389060214100815415290515421387430426234836849365169784322664263712433085857613054008534218279355246094665508266206671735827770316793032105545848072428237214330010406781891463562881501524561075240904851649904197753399292210482798629450604522778349338702213033387095164124196202011181608903063077102415183102348603012056203067502586748315875987500756116597277041344067158015619398613263529382693536220876772604781658839028331336594523770119799357754107948906905537973461661659299805004730270749473729837774746472855926517484298137710290860092566595869256980332140475112981964068583611466840044323807237985994464630560162420308659519771463221313762977423674065107390229179921066675671449624283188167880801382539848040285675148849588905905505069964493168301586480089167473775498514199481426942380092429673160674297949105756479255704413298505868005053370938358677253943450114370588395713000785069939843762581362547967625602227456259176019494754916495634503542350756634339355932507185747233699277716405899409611957751829978619107405478961966806639624997386984873047094309964245600411561756095966273354526812259667902160794203369019050733865195815402443828712757682562743714641810651895799925756975420083489933079796936178224983412310529228005484907410491379983721724378424330166249416896496657725789678247485002643774581770504226510037021465144892038847819859955865430546784555713662213133653113068975248832377814133208426209129467983582820888054076391097087921392609737926396937244294543316124252327876806921591877445115372947214733394366980074081818620207228724437943316619436554922622680486369335571682915494013533058461181463624412889294748150098237598097554598521240917712076926834141737534055591883923029580393408722959584049631667385634004809349666327066705330708505272096103318694841580602394769006707839083849763878448207686196694348521078147715581004262221582324626706846647024911521968011145026785209318059655357546604709375676823076591371902703627107955459477536565787469417328698403591520297367277756847238747092651146050805150131698620481027209233167461403359569859741271867203796529509265637999747826266410174864148564973947113313640035305758063519889317597403822074308958467658025413109039260769679346434240368396409484985598348806661145298769140289237205895063062155880650232062960090370752305856897642337061153488106208110403344133986684233399483185401986796989678224633279677648395060067288879636163319690344503371435951696063498664225479125734303607621878058816178725531162376027031981141096146291250464549485758671095074531350452774823792713792500973369958241933441562386211279886429879469504726471587046581229633088782542641337222506675424557293261221371170489399545687148758463301505478811880077775803168816731551536666964369116680782067711009201702487708143234398744495119584556547387866641556993859318072693122468859069809714227955013536360947969186054474157731262934269199977970149115765854548088922001511135792441617286605573994263987278795169096878183697305721149486775268813996144847675463073699770782786257640686992234554133924289173766673362517176191906490254912341937526209351831392153236940841040947286030352053487589025809352555044980131257719625963563552521212277224610608891688355915599870199993811227067007794474413390495632225644050160286270714360493959624715474494322702444173443982831316896198940418408722716006951223237978708467767594302279796958180411662731825100391065335060212918102240413593783996299308561663432881850960523253323949936223864273134436682927263078094377549559708291399798641033943022930279916546483276631488989068490040198572819051330081522909323923517555585171062252442241655655322972048717892147099436490743446933594049167322091410555691446831655764689884979594491256592173481747695628294690425268025013468561237109714619558805777000887203599837867909916564480318752465906251982571514687268477423965569831047247201869655901290812259110182651430266187610654602706777109527210001397248162500645699099788652319799695819488159672235724983430968172597613558318499474942215969654200151607741020213777792468746489259413051222451061700489669579738048910729821377506001562683830601906051876173204737943126681815179020368687099960229428488117764853409887531470296466096098922938073280439691453508379191487461223050314384551715609675253976852881689798658561827177579276897103236752781070594331720528145007468071452229407331186881513306388574162829506011869356674659660886563616504772296018615565724555599176694455706604463838539150305814548206882152060258548566435514558241991484838477526546696407973450493692445105590509615966974513564946197588694811667735828748965413147622332339772928256945402526441132135391496952285531986650370440538200045158227972228562193109868229457017193628139173052986014175162584729118728170275528723353165368562978391715561702689655585273097238749460497380224883570066325506558653780567421392372950651518202382826411685145576356008104829491428444428390665120701650862848155578612434644379515947122050439760378420614627092070454944922010592902828394594356695163288034128617496811886176986234691633197825295135410449134712098347389546636112199908508576231678220693647489540247798539341651534985276879770659854994803600928830175878240630699399739293559219261487938812872293601571824275190995430495240492049318967095844997996498404074978404762701499210462393917935391114389292584360774431994055382480607117241719295693612536665883569321911895514569653347832365881470735529880649004300247740787801803295198705657583139892823775046643206005528173582491046549660450410236432481915707890076924017203995546702587544815503662272890852284410507942445254670742635262469966471756702875292887936885774563184091465296489088198760001881435870972514271302546007348186135694086079005241103156385378573332124428796620206372385871445275867352271771900892304611105215011743103195958530925083236553693759163411215546371697866952641954001132403467176217129883868471166266322002444906945075304156439135042750232899841746978478392463501012423534789053100949295361968263978824249963016757552324081434128587235116281707891969984617880020595131363731708838257921956451320718180396736583899066357663993876009526989724994139287362462627394054815734690875192337049157450256306168871822664584734725159489739818232925844818978716174454458942658461527673289860198298840797963848315434739834387393693256553057180120207446883184845302059527981681530254615006589658764571232116267602129001323088632944223443867474838746936331028384351734845958027478567494725111761285242503624795087220130157211565932831980587705307742201669390588867313374884126746399041216665326552085882343754688796973567274616883398153003949322166528276670691686440106445081190635887339521203011947740613769514545654803480060775218930610711610262430053891114138850512115543788488157077845641102485836677130201446210858886166719744473478346683521551283608947290138461649913491484273072949287248143068997687728438184744333945433685184187904113463228192296729222612740260093146617779598529085649462826652201435201819841569384563594405506679008115463797222081796662059247247491139767405376413282058024519608011490120493038432849589132081486832054150101369215018860415360208601563956985887327701730762214582108807070921657148593795303869564330334543402561332182609773899514901341880320121167856910967054217648321617827362382558875928964092462024354910781491068343014375723607698967426732034367028452485055183569795609848270007660234390025093909254924035488713670528540194196474895375873643573433148120607731739137392960966947578658021228271354527330585402151488251035615907689462138554481964951485266777182068589738772727669671373303292769120549071989379903363469920988898392133652973475526607548593401498139769820842488795704013871603088289093423010053708878504966444082018323501600465146419947457530649369816304698269624057111294224429227214782332619768503475255189735743566708233555073337860491891995453468213671436436768129571442359151633865734002647702317154444784984454011196097439672766860249161016587608489531502527612291285585846495159245325276110884062364215778979736847695983408206778165045190497691524298384663364635760377753240165650076064957268223208531772024955511036941829533321388458801531339485181566799583915825106751679358124828013623222560220335706599551506975428905352190310250702597306555737049064992251552393620565005993998515992969525268799058933588073163217085987084679290333502012064174684734578679322838981888887653982261568576543433423921611910028527860637309941828488952065232255312782071624207044673361488620320324874800313073106117127241901704057687551318170227503559112138079665070556512530097684834677295585023954128673867786844938408433953752386030474130720882041758935177168850728633856228643535218193213585139269903559014226474134373081586075092472707078431904418584239153929062180091515398653821795655035285044739406809396021376032582651315998678364504965482348524241539038714873717973372485851076997664950962630872423215884557697493487291706694756530776888993752941246788864186227201500161734193793172626773186509069432927151282071880111408482868905958236905699746660503496252030891009587605351223045174869332266826526582557882062146623017273099157136181239099482581755656803979313898904897003759394705573821650775727350845754166029112874511670898727921101346343066261659457305555626093583772138195302450022224997082440102994336982432826466137845614572568119573434036859401111150637841940262638133430070268571587430155075543053042887044140875933910550340746989171306091302405006358479001339650297731316056142150050697101605389290817663431561549856302734247435586824977866320181151443111803414792312680988967195454704566655541924975725196303424460731442345450973761605058582022821500663588986966332628533129797376502975000123051945423243697581432995183058239399844578097338445320014449976057266510273756713951067309967320832566226258019850821520023490998919893281275914146478837389804151112411346326183978434802543902003800725394479817294173251277003218457909189525024573235435571428847829453314145180993878874054117065008400322253974591582371542853230067546522785381842741694805845222359568159863022521802491454676654101155929146428777850757637215399748995453093264248680368560873806153353332273518900544717332893699203475782524670574394989589932699105902151960506436397126105310824196684294564699912881622543551809233520379425648573852181741457750932342702223484355315666356007778904393961945004318815791563140790363021797389812258373177300448860124372451192606362872024349070588259771816827015255844554606761150370257677790378651049740935127985840869645982445670824546215800523696106217828291595097773859459992325214008937182859893097872227308982216737756171029609874653727456146712997411923582182936515302347376777266103853348250559444376426885350883851367882653218490654763017221961157014348141829073418795179265622833249703052210505611872403339024011358725108541894288380824147863483373403542390636317984596244458710253918608855200594875626071104050217420897142723187282256687089037772931448763823400208715168994474890633273253402159252582020595464475400074650385290552917616883905868074029631520986656963151717456937500824288052324202587109997719464182490994036902497784074004860789403404688072136179085639345923792179353815886285189102771683158068589121881706188057881555047759841245479406126646174492995567590095090937080945756053885461288875179167067516384008880251330966734963929412041334806073520880732231673318176462928234519875480680209162616032005976873405000973658020577999066975104605046681625367784835517882639476353932718391638237891745471538947440491035980190224739969508529121419394822559644908039072256538701850137331637444440546436183382799074885342213868019094124246590574240194234800289421679020698414471164955065638009408001906707705464022956330297063743777016599421677675819363452822857799417103888242879080861910796623623647609709470904708396520311208975517815116610739765600243410708393656340885027732543320872826719709208720305539977651302507889911900610709880971536064504119209637507951398552437490634465670212543281788883055314445113593490766808376663311692283938002428997963360250570861449322334977176608625267062647756678076137070949162815948575808046583020166790717485183258881382562096627506416594454515969394082534093581682669721711773979541224196634041593617596955344016212444949966868609365812916856706973588573247057054747771172458895742506262925018226060519281016294388258618502025336810856428793125433146771894715882926782802751506657134850160953595178025432669108565107421690544341205420224110449697852394199488518926082592553595960379030914274785290579137085814840752338103580735211099560681376647947430795909763769855438272360008312300848501876357286770108533386962521195959470447412898422707742364908147378510801360019737308295064411954766665832912789255060985161870954289910176563971501911394944792419345873411171757449643505544667111184210116346507158509431364233783213799342004996218814900077854882225260957810502367921277998756078979193500203922582951994973797259053664660555075379407257338751241949801048621313491299618269910086752814172179679551426006204966454407667176350909508291114540842252016187827663731104528691475903639752594458330692409009218689951281780035420082691917716125225932547845936638028317880184121315888642342254064810568187517085966966348941601982761662701422066602538232888882330437759849718268871791601075699307183295778363722296228670499088213996040442623560111068078014722459618983443901119131544537509686070155535343472496667147482870963628665887380318436934111780535185387599381688953697419765230231189636403636568096680810819651124835211352627563855031794423466017980456724874519473955060477155272478615605710257208396541313963511423541666910618666881336410246907801041234341469732884970794897633704684088321962280016569393784745180756018925213615640101932418818293867740942635875102530493825207910626014039218995305837696192483341793026961799998543168231413013196259321151625365927868476069485819801120981914840450591546478454212744141118721775805903140195983175394026240906822977265299275003539133645510361270172437808316125690255612229361583210130063977169416068167167393306046915908954339018746803104948611371392883545203069043200388113867441965142328032460489022278061548031931426958274729586380475318893984550049186604083504086260811484445778960148439218832562141852496786984495423238690982243861284374831094736398809687804493302188805176688901074317174228679436630347488484769887198554449437820860688404956291237065956651706785342343790877115467819538258914017107656771696383121336042911520924613368473242247212492739846241086039832169718289964434541637162927870636216927336955893973797601787057344856706521768712455708904371504404056052264092325681303682273329492607150788418927263717888149464076518405474935456770695824716762629954698613632886369109687256455860498623419583934539858500616887234366512124975223063069592274110208283085456744465282459625014121692165981856838512312963875190950217188617232881683144051583980257596272164364144361656411458603346206891555113788243715040399125143968553196946479404646392744767203282439688069511267363819657369930369597998517824019485451393239899763079839151640579066694429583339921006776136792760491914511232635865511882167377076510766261644858494484010277157563696519717096927709365698662150706037692637222098916451462331848547638686437437376830198680939650459539684561050756864171528938151320368648595105733749844170202119237787492197042564602171238947721421465285963319596374206166502500801561217432891256357909342584326935125007065632889433797452864603393953471279705810124787705167981143528821808193945128956152680341724917626934815119400600583401446959957635603927932223045178816561325754831241450569808540160218641324819431436295661809651890923852227903263182198584473077039352624888519725915961376932006792208030534641004720927658884108226859126201209781641681437076983202584719187621094545095372634833291618342135680182567896158582547793261708591971150531856073408122241381001804703680195067705812441806234300400451665487929903426508548650494558732361815630483727835518397053720581527692176238462970864838007997934897135866705141439294182496001904435826805100186119770211435224136100555212369128911889213348269074182623363780445278622367852240238575603654855687250438244949405446166519132303652208273631369245626581505522364863224280160739068906424234065578022576944493029820382019176952368606773389651643909539605950026559082895842338244250409803843065012384560187548437285020044073279735234304504748749356557480384123726038124756520145710886253957395024385138743039965169090407628895019880750717964411958665364312579009393648690388607831127185869448095691105258477235368470931884158047012839455687508910527633779119712157625588360323989552185238993224179678695107895510260742810417191352954277792117147357691705108985709567452693420241694518306843998008688034847129094977239267965162043612790640505336608004735208563730400470722299358147310467381696412442034151482004212531855984270214836055171511118321091542868690246662199247300119566972082786270959770235886164998953478282961863809191065001970739291565738894124775863434010876651120501025286068481919870436510017084052674012709984515842821140118423321237467768694460073959751805557101635470612131720854923666521676605165004999863633557525330733346091280967160627887780201149687919254858620822497822265518129169902810390087793404550700015733252647656802009320450325156412877611814043413073488441733014361756746478600057967361910569546507632017295788235371135333456811418633350820548182044707042621932593688541201933246300944282111165131906296424428447654451099973280609810299537976421238595637874026339348514934222547518487288233715260875268951818732887436197675305488057312826979632083592840002301552574309852745456642935202475271986449840892764225643247102388264050038852576075200496979833316575057714238916099632519652046551560113295012645298221128106787443923504804226633390358727931505381907194519591963621943490185113719477289146230359879168521867397924473248022772126538705388062967376017838684438746105876384879824332677261812416206875214701792906283093444918102835518984117849207178377444830886893597908787617675411367396056119851708750477655906926742633594345496619096039342949521820741867791741025986951590874710384834699285863883547157383522132296260652489411833369831935211403216914755306702452785487374947425664413847629929096313071432840382431393824973831308820833563618386365180960396518417846114948418202007440341913771133614729489460001114904243232488975440732538260712444315143011378334272588189567289931202718172720100881093462216083135503123025353793000771339002918905697333368017020677117965117913501829820475788335087882980100126183951912132343935236551316744030032827712067179203194307354998404907597991931798889797621033537320108680044829424745550748999725282440990067861388303438397357534752397416794060337908660671381382675852608577683685333898954127787305842040088959515570220983059739061334787294744530780075908458170030130269486585065718189871491874738445710654435451014487347249999798118425123841189013651763257908219475850731994223188180888399739721525807367299677182881533823616942392798636976519671692837765667319220220868359768383650556964128273366806495551262296985363906560211850872771852525030944092702949844137336072075271648604345150643695324890997115806436532068522645924142249796544689688467850444825138356199733110936577489112443584968949263281753725430124510942485749158785255510495360143785804753582016382350225368451036576782286301710103876492781162796626428548310287005374677516487583771509817479238212898552179537532604754110025443207502014339581416421599659114894636894338851098283404617031358736550063968648862695771216307214743882847886143772149728403336305648540378182223367827836123457806815160278463096551872778777091240577074876850268562333852482624760534388095377263068831170512907411753519731664408168029274480909942089445909253755706571218756623617662660101767800385682262360182034026959334171198520874076052222524041418599419654286044358696747865231853863552129516316103548520005332579038362014570614502058275547505206072579451774371071133600705508401247047794698529340745472939486168621075276345460460539008675007207425983508005600284938605228447062099357559251529233635342653170122367512828243781652470450783591440457817086602689362806071911423675240420782765282095373861129280496359192295078669699743746720075855390787682713044333171552710350607932779066330037022330745306339117147978016082245337149080473074633338441573143562491831186576923304463215566175119000321098258064315650235402147665669097119408235678134081535340819322096555347028864510055432791799140527467859282087863618452345790021993150107743155204619976849351497835958898032793348808508360738038431247290766597925725725469667793251461525986549287913249923695754398538686723040279494202156999938121350423097255326668577414628168718445365645935185572000810548945637743264692067665596958329255590117598448290272800733703062215913351262972050626327253279192567576522757643017628913897534763858301874694422188800634771086171373198335228304377118576039487949238120512317288909673564297446584976634786447350535063747195379066474742364849496077243723562587446739295139101067483947207652049830327216709016780920411376219627731723113266768649588922435037141192322315698487154721261846555105349824495706037891823470865460650511064203344462319738438171232732581874200111932469243270771198722712569405447200486203638973698976855402072467401681530866872895989731026295749096094516234915226579043288992256391661404878231817155057542976780556693353024255882437827965407954789328999099403893509014277796175338015597240448158892156097353237533185104232477000421501484928462920260641696236292511910448513117113570213357278408034057197562377931611310797930241807492589374567388666836586332090802165184161583155474292515774196824900191171607630921457851227567557201116614290639476427189939436038927812862923054142470799003183661659436324623049556097007691771396540464553825524229629739877470968403511463417313325299459582155772003738321688167717588755704660081861571932331856423581724712932435224789935717703657884789887003373475239706605710948606117122739632539048558394916997424631456218227390729096590568617372399234141193083768912281993042277470060768186869844245599982900874119603010877881157319111814971337002775153360082451334576216367028198398003374557782408652431429123850173225187312644255640164955408926642339190643372001683003856516537452856484019750214057091810292216217530552479579724576304513492281545080065669417604512714378200010984409734472458045605779988041328191304748336449566832637297114280644370653215099197574829467192472691043603933825735544406551029136009863525895725030338628109723039841841429258612009305471740868053235171094094946057680560406200410189101983502474321721527615306155695374697513006278202041859304043947196313579682675630260705168199212407155871424052183216503178436139165970983825966888986911442054782304187762177477273770363231171397808230020520367076991856675330913994177077157120748589304184068053701565658756898184041266728044837738440460203584038178335577630300638736145268081582318027648446306663188864951306905792865392728320309770852932873276625887579290023181220755538864467816009959897416620772271611033021897935443497739506572406820841141035633639288805822274665758493820776407828591782215156788560678925362693009786832392680597787160815330517798021667474427440313379531450139237457431724719464196867631707924329198638169838589741337055876355677137738530143158226549159906598321162770572036369254179669556614247890024986785284643759992059374513965454065638195862400223632961194882283437762214698486339749170379031684228717322551477093184684115745715693049202594449115042814339802491572914464213658981574893993344361427505609946716981564957131825871242367364572948428566163978892740266437671857658296679119434100260269531409471080195852542440763100627188947258025263539005146997923288070161406198604022778930356041876912010628328767413965537366084039806595495435408125637594061178821027491143420180195839128119563222766786083454184401763989672008441575553222778569145000078047065236621911241349050948215919625156433143778299533929871369552996502040541170795385998957796824355280210977489777125469437898552555419978836113557834635302407487767095883353756952017237082878376002788572834079795543628531080041027306301185284268134504738392077760108438538358187602347093633458287208704647287778742180699900713845267096829131828825094618778711485515822814971927475420894605587832878428355389098502314638680138084446376738398482338235496012045412966453100488226224262441843843494466347854676266465615305691645849150946309000844985447169643981165331481462421572567986937372805810993936684740144072181989771414639955903029780936865212178920773393330244016994222098234370872834219540086170834049487646659103600044515684185988988573320868498074805730810721975486832289373603091304128935539162962541133709321299548286459495548337141545988959465477736871552786949246160420638650505628124858050220975234142525996014837173979231526523366475641975452955047427795804714607210976376510123389694674529065344404130290970830393128106220471738231983201257814138832718594269031059014759776662259602345113723633277760222758014062175333717696194973292327202069244856579054170431218592845689775372470565786640544989364515464168090154477607197377496084631191575471532061000538370060226857870835377130617686472362505680284711677033806169634266408765339887518171601980267800178955704183261020037427691106800477517681827129785731712544553022013021234109273826056436769379270340132760138838308753372570268043283537057290679037050137303321834927853954820083600442631771677155904904968550949038036812017051207144869789700301734425764445220098859949442018999017682474208616654622665892608757256559917368015008199656364019981236603508247050126686424459994588686125934855028072708515175994134765564113820831907093427725993093513973694977962162164752552541294812499781903110462635419578909917091419142335551007101910735714414002561914818044308617878528405005013132545961251370911825578385425720945343736990988322355193744840760429983382319981289058027503264679042213647702270105865674064426424506640457669681229518876146376336129827156135327191021466703880388157761003322192231827252364830881245060277826978772449245479338221864685570188008901010539443420295348158614031952613182180649826543558868335002602192603055690402055962555748804534267827043164419063428607167688513882047833259777587893942324510844997182683988603795388718574313841140656499195151119951206902127868302072506898237226411483243841314501291418096656465678302453049145234789536972820928777023558104723411404989010508567737928522815491958178185636575184160138871430846733878335735449941722891907660006431499615309718933506579655229424493975457529799231797743894848357480753590599161203714673983818453188930916772553482136246967612287333484222795334362511928027213230034527350539469020721608611405933446046726119719236387707588728094446224371364075789298788226569606619001691160934550202006961948477013662950821811126642279087166680115594747332304415624530420194343840170018012941457067858859100385553717682113064699202844673041652803699770152980762451423707323795718217837048116140603980423246545687296818002716789871729554009716891364817862482118325067816209991369905792831798963773981678131030539087621692313434583241772359389946876272554664514668234572545901195833718961638539721566490248820286490023157778087250720295022909168400680477102111134624118333007568225259387860409290005013769596045506088483027950099246266982807102641580552623993561607540753808486822283715958717391724961508828581000265073956572643061139491794324597958752036745978992365243943943381586381188750745314699702866615077371398357200468781222027539128753497873796709576546346698751121604015076294706833931576129006131001431216778469789732389850460032314605003105441539793702685641588878713973735134699346997425927745972760165010214716380928063781712224628426553236636070172489605566388195698097139142909307292056571507564465716180101498209299900853188992901238539173828187813465856094892552981176102319045495651424861170450991764720177072733060692990888735796576880698532228103433206398417961140929606512878830524853075333692334864689700191323714304746588495439149074010752783073754136200533202216572694675436117758213071295712160140843578222596035467507394466982340849733045550144282237747471099711289866625241650024282801492618896282400447103485037038734783512456411480953111220622491759914153257212350681459604812749689240902798217500213558132349295424641595516687207234434428294941814988689430093275770206582834616756499647585825918742735549065802157668971922707524257626134049222613100105262327724823481486193930149420844121249652657214246510907046255966433228538837971382535300915518794564726905415881795751258971524014817235008849974256231010404671087192570017470108571819236786730907323115273869942377132165659607747820082690115704155125709113765156269621630190097844818992382791126276848560424709865956667740793723763509303880989089418956921601232108207824912563505579550466008466465483759859684630833268653646460980083130526947877180091991047213064195731641286956798300607683286035977055177422359510806415316523706838005444964726814985967129209728523358424964656808760410757280627153433869942974201017420856544785898288270789304776194855500402536399084745676042203497660041448349057811141639987267892640924249061599230539192972881171395481290549499572745615089428278727948508704698302177390105818232112409073278165661819974023000011644068272034396107512950380324702374383908990286462667016378682955805102784523562625253012544993185517256589290222679929807681719298280919265230328832174085181950226723960260334169780216104130549968916057066032782634019005462881638966042181999280438405302750750825987161280080389577683856586704601186585561065536006398591514873133081821996586510363213528259364112040658328653246281269948873635740832318350666421901239652796868851530485615600942675669214401445828005796931865302167481114366961938079590011661068226058525644329586143043233033774763360884108769737921385017489959898081818146158459628418525567344167666739673324605901178602697142848461917275087322223770183175998382338018507077752731236844417743930493981689921119523363719686560117627291839627369566623880049548269459552002253918772868000949476972798089795860166180649352139393483509325645014450074710600541233569167747009014971133745735761405728460646980963118264993199032682383886567784443761823176420956092180060971756732052198796702840074659809267802527714058015305070220186667367054009020941307494859085024243685737729856292242468965453301747410710213818077773092163530458559981566592583628485981748156868084919788456027434797827222977556242376776556846149214783117218611321224506076915352092100941679349803089223452327303175891771846925841103375959427667199689477941996350482498657587111806667637456371367204733785241685692123588339611203501604961698679755416361798112442479249116630139663345997723016019618356783603291729722362125208340061005841917033100814608817677537925220218216226909176577346121247183855683846301292132411887036322784807646269190136944793945354875125539261187346782275633262818094964465413076195310537696271268061349072941243473091607413049458809353495763150303281084019299562213918720435469210515314120755239583165222291053721114316844116727981409246177977993862922526270197944464349854805330793823839384163056377706212454733741323493521025140130299807601964795076911000840884987928070190457770808828030134302374463317053863632158608990849331898179951829210013387345414812708101807502470122609895945800772024089204613989510183536692686487006986766564050314439427965695187624904789205499880219166187588220137157481949721932438560516084619753599236503735841434231872061561918250854380256762768267099246848867126942868621670737175310349915317438973110061710786877038527566420878198879198498718752804022030719939236268625149607077543953790071254519188236052010558373227700079416807888923974991101526579316907598174572271842293428588030741718533602744532846013976468638801247362861276296535873985493160140159538417563266674486642814231997875062115000370175266336105192796167793857091355698684065534920961004198057597616290968418660706131896049775064924304938407569536505067919542464992180800766143876046378300819070418582038064037148187902504735215777295435233059909421345912758687882958777062343939407426146653262748863084617426701685546758944863300324465180161433346005747378319174612027699553370171396186136641904622333342081853597078900021528313290890169655020364569117784964245830201929065737369182511241033065550579642064490982530557477543868764430991151945802885682798081293668039105284719628405585520528853780767727569734058385639176487681900082634385225392773650748163286265930413329532407189978022848569758160110131500611779116692688180290857026706991856605248848406137833586403913154109308690151451385909996985991348560629414561965108728417346731705236985787846457357296886427690483393843093398688616781166193105410314603631012911457265112348415641516356488938182120528834775499376786891212506720637944377862123592881558069643254521208852123957884621401070947126569148253617316514155529079451026580590760850167716577007141254691853773327027446509542769568203603849446624203569760672400137430980461000668716772200956947594377482893042292547826455471837367810910439743106943636689295921882859500399390217679111768802945399596607651139855825730014004017414898950150155796655035812690338067963108910934147095605345423591148917497569142921840192567297287448610528672486004402411931514777863374470181159640380348068127465606873135806005617844049592869686781483727358687717365150031865265686937363085023791205356021995725892688806439091133734501820413468949210984350699071727054140453944167541676172775313682130176020589434105465449436988403450298052414273628278213888246562198289972585054796438120971294236853358504995866819848871213867719512293210821297506850885534589078720502918847200001720865528627135097407857133101085823840476947980624460293759759483395576302199626783070834065465094961300330557167251206493598874404416212464748273964306244245241897076968551079023027487056400820009849844173969009881800961387694179442517852397351147469219623301899031588139059050804283746004796292016446443385528207397667292554444505149844576956049055309793451114900987734501544162197166961891326480408923459077415372248291145079368124425920378093148654156893781145372167692070585528684051279712346528233707977691807865084582845086448965064062434887182493992343889428429135535623832804877267798718384441824983612666974458752968363166759184464364160892212199544368790761675984080296628518575267305146873396324495340820447746712929760774976634909604554235875393343186128253243788260072380473722119359884115838361207625730320648766498172357981926314005911542243225408627935641656008544942533916104979803034930445364482858046155536099181576819968482417668875704946778795399632869800360025564958827706181578600821197350293785843907099928235010122907947278193865348200519212830259461675873630552133166164926428236789965445493528049387358630088651864765635685184653465974215432509798675775697678827190881078585034551367392900887782964324052545568206115259327126179412202911446771282231758153844771736809546427702900704577327276411392925198111323579368680331638030297911770809473068585839948564791792951051099416493994725256162249105875773049059344908346978444020286118456037450042748440925008378914024711776381832037304751119730967270548933591851628121161133359246712884732336197504554816036926162268113307518690376681277480357040689810845207872177816962764265050777657037413587563528352460622753706131104329539292305167599132059699936755480661745009643885168524995914025402211127449741813310526135570939149049633408019981515357601099366654033762067764533711848741903534312603132150491625040562812729793856621977154779082136242188260873799041638990986776682534465491155370843411652015742187992685623963024924166695749494889466740156911080271572044571878888639276342383329648523549572066761132279015134247427653878426801639743856633214732467331813336929537154890347545761128191222535348675567861532535367063104101431486584163771143822606674896543006463428710366193031598154626604218654472351335329816423970455617077276415950385182266010782345014339036333812626322129102727229330589708758909931038446703562826702908959365718505649566436218518150350651320814655717528201457256737813532633579264932435915231967525599714558601043827665478547086058089754747718759987059171495612783075328055922758502918709598851388766203747545737856524336897693491585678313738619261040620696518662289472641218987016706378427724414789091223022027836951806405683858225560724898244386732947107025265976390742760548313395998350751201734373333232726593926377959885287123468698424910693377044849284615925773095156142116852661187144433067641710374620945946349935684618910819391504912318615462861318286938419803317106609027691846453655407542667434539222432251261009775272766385186691154094464026201275092913494492642333655014527871530660311539994821015578808825061917260423110604527398421017061985455928812142551492220472226271999799685377961130029518138114368208047701528362604722785310300214122368757357119747713666138971197600850758652728636685146633885877227301886243473402384387864602016673795334294394790662284423953844335455020554889193244299427421894508694847227780370552465896974491878302450949994577279520288315115425251889894011383841824361529781873585776193863808675964268738273183970435715706955084850216668045540980017062737450912521227506746380034179320346558596117553888326706097327830966245739077356174005833529380927135087437831260998921992633239824864342652445912011027375663191912434435270978221834392062595254032975517500951057130017878517529532303819893604051525625884147714052446301881999596904164547193945251198320776127702115654418635649749916723128184660451332877864872270664460456568294529676094502934207545049334290574885173989136783723735853409254298363974558030256403043388696063822637325501632300973067388347752262906507490704729768099160960598243125872315458242599398028678185035717439091389680970818934110147853426817169417589583278015536779598898795506352357146317005167865361064104584308341110483472933882492372675855351370791107645379075008018815154311829888193576007100800517276359351078373375563445812724779938967478048152860881378646470028710208148018322186840680347020743717509088199325411758099759223853129484593703138715446844680901924007402295611197353427066399692951073255790995704721001542205872635111326172902952817623576569530193702546370967892037921345093282858696599393100902983969868698432352107974265460732982697716709737765394144315880838432958404975199118835457855521998561131418057866080591003939445654562126646957978780937234699355370428064825943861730756920586517967443883688549211652337108662860739179568737490377985787981791935660765183030969165607170496131505370340271228256619709854427168795357617458067156618639814514133561094291748667586884325620106403749759721994286787259643528550040363395516070877914336660139458855425210896143968670967649114077256129483191477395734466694746205964435702291258466897496534783931813770227580790659238757138073094219108362502587394913674191747464020195910612399453249024341252425546545671119638275055038802750408420308476240848771973952408616538514017112311216449318324872891958550224361229567476121843966596492122563292710089641135590038634570558605868704608490158124821520238809249176311968411227786182987521876775289650727707899325227026907275910235019115728506622172151960640131947070784698127447092754168606551522792702787294313323266521500678009764140720911834946592641476530855625534353645349546784904674057762498832987757731838666828996196529953475397321434832275130771228579334065245697543987544274271823166904044874397965299737051777852232383123296036826358352298640314176863635365431335286371130095926996798548487960041008550290464541109903511595536975507661884413424701396885923991752741201734687875269187158656881417904729870910133265471964392464838129159981367548815136978625355813861007387273898102263254972595142016855503933722813832849035047452624965679282069708841579007806010043467680018927043053513150354424994806001802220822797863139713115935366782089640729814423495214594517531423459603025806652692278426433011535613379647908544744536950871619648195835101830046421365590679764240438553257178672544254366318679958449373646891349344341038689275700399869989601616720315659658525349577039924898899339379069810599561088135162578011454920038082258212418523274588421139487553968391339770448850593457538113735989528630505743125139967700775786904064011120365405700346090360521588218791057344634177488900114093142727105356150415259583603267447848489294440186625003005937381913754587137476808606372739395963264897034142656028489179464989990838993080212976773477267924546273814952089441870319632693131110020833790983603986523962897980779899401947517898488799004202474515291750253596321479639318351260334777247169274039470309425656170133275571596294636175996312945798949404913315565276013402597601522086290216771033422494997961557308309586553344231566412938020375478449412263686877551358597973016568289699722375568989107626714187143762286133011887354474955559355907793748709259824972728341703495743903676582562711460725665347054749536444155532604485961904897045197983163676522164672139758203187257599973473846699603088535528535006011505698981621395304056845800250089532436347644808037100881608990529279400988524731797718366944531374511178277368374470792515720039135119066823627419552788399985978536769204191597253324358480044618870645472488121498871622406909332071385657189999880957012670351582688964905835257857929196251090648139313039337048417214368926046430718523651451175162931013524811954247823030634774291423960465728142677776172170200545805274523944618013395072583618193327061037450735173974493164311834013668751624767642425871334254706535127491897066025397341045564341730880955465783659814846015142715782375698657560236618628821041408667383776965551834412825542807339796407970578607514372838512462480948405980316200163465253057377682318505449090064100267638575510827501886743842958021326847032268649773419254956316433509025230466310127917663697389463266289206125499744586107666341267389322196050988154470278485584292643829061015045591619573441506486556612040462713591339265551280136580944771255614291438036559837016156077953445901333237120865927450379662855223805743044158949118255211609996975312565039131524309619254912836616747278914480494106472197588968332546273512162882235550438214861043475193895974273569163207704338948288291873592060704103483978919322479620695725432261337617271490953303956026121758681938600022107669497877476119895558975281503862743069759183835134944881837794818740272601121885227555101851897002280314467470798527041997085443773604484061830847180405778487038413177528704421845215116998639130081117698621467522556214877994384972344015388858882975827678151795573789713271291566371682266568482137386381365124293534383273830707339415026805809135815551315011175431106760859265936617727339904682134955583636287354129664405520935439672957530713788199952966610734530955153908401596597316951277794060707777233829369929746076551231017905814554179499545655046400591691302986125486124951094295145932208692752566589933325794276330641419908016342117464175994186519786187770646323389821813820493492615016077147901668212561006293146560122700665034052601177913798165606824934095573616912872451257761232409052891665576611851201899001374514614869908507297806641355370571233470640333829897548453649089927740515066616317252995625037207888799629993133213403949786818278147805046254334779544766316950425750487773580049428951247307683457259849068438684609382067434720806199402250235472538218222739620199458228706392597638444528034508331752005184448074833386882102196906970932446574820395866057828694130015374992398959322410043425282039671552503293853309307805509918148388179683766019577734979372766702399639254275899428907009735265386030843292577111208951513293414288660984786574693735003875161503399879533013836378467971559475874634395325985828568116524069751436858042412135186234003877395590699362372048619077515127042920188582667322784312172312319251858474826736948993687242915410307187853202072776259801019961602299449357507861348316167914083610447933350389694123028342016956642729764242055947151379857304312960965512064311470358238248173635006767780141855590116909812021837737987046848495224646714493115438006788665802258128673202441511165594749033104712998525641215519712069141424983865590796992214144335900877752748439450765370675697250796941361299284205109387985800451761284444630003383242001814148638357386352053859827588358986044645609077835811506320433307548758655373810955575720340995166858244678605060579791740569289521028690854020482831154103648211150721516127331303099484259280074663202323804895542673987660709050375571016833177609240447629543674158575509736971875072549446841036323054093997618572423709690283230293897582811735637249266999046137341697239600986453394816937834838441559334067987315182033718933474937477476728427522529325060288025314606044265350709100717976200150708206849650880935572189917982272246927632048713332712625496929055811176214632675348360979800001401002254529896551706251477683677802301882510484743126851175039384188830094555281426579885798348758148967848976019166475404065183658230215599510866297161891333921087311175250181743903946099970642118413304001037437440723794353047675769739236950745903769994351756752646537746091323489124236343470845955078828790240816507428701434722267276127901160651145869798500301464988206583186139115286119079294656703151626203709304083261030547989368398739904481492684387384589944557104188244790412942841337356030821589483339730042379787109637220840763647487705414471618884398173873333412919462857401728990888385527642457862739368640993609930679827217236558268214605886602240452222180115637934500864865312189422056151783221138542965079981948533397688213577457532124623158278738992230241151053523956206400585988626984553146051902198247029089282745646414883439927487215279145494437209093259560110853486906908606288415751167362154645882892608232858034100340230263333324721623599306472976512147032083727081544137910782017494335804835811217790661481997776646202981672032048561058769900898688381097459987012425678490269310019208715118571891769072637217452879934565982853715529099447205489423150064669880808512594137436128689772651736050045773996276861457309047951328378682859443098554941415379286604324176420084907394495923752605898698740422056947857470715278775833988450380609984454648571266417481564391520359673876201465813666017229103830770772858062532342832405013679436996419092216435510655901104986374548082306827975324602812158985457240456417456544539809025567486566916781498677055120255354285276973989478402001388315118864745130373812253687602342126869454850356292341264451805174891237895006103963546564512323901061028363441879753726897906103917624254015817856190723823960171535745908081247962376857055297553717572637058208875108110901906506868123206425824747315921998890208114518117298607872890998086900341212949291833709466064565802680633713744648443579095455274000957833284506599369179944526920155244947353616364996953111513481575929195408885203660791455883638360780036499576081409190044735092091846918512374671416152779703408248677893686921743636462811836303928620981700274414141583483541619626517635198852891149073649040312775367709891165040085259295810024307807065797421709886810158521239108303493065814279640074467924811923830327675390278211834744225027062575011888354755024292784144488622200911502547682865776230095351995392631327476135477845974707701664896669403799834386461821590738506323533201132184492125610147102938725851753538590971283669617679408299979623428909522256290950073859533828632711994749905087286034653987959594346111830943969603750869281667813375925469230919609472981857837467056964176842896551055499903255354894876313264936776761735953752179932089480816673246063118139658394805626995152063847798573284177218706633265839007648435982835549874327544884611602259695552299113893690832680195530359921158857534042546135282349741295759912614901753351959630089926273197521288369366091630611682193122844827633528803484624281410592788602983120886998178825760193670017106974848030819074936382954006874714610292575442671854853270736923984431084513637296980730817123751680821536543735446407315083597004913833858516843852629875645389430596766074703136862811140134028272657685119542186171068895755492269690566593291515293616412515711523763161631973189116887559649057465171036423816737327940600054050480706063591126887626332046158593191187029885409261900549105332021467945008339355903885390246542442451459711838331011068026129422191437712223910968935417679663304114294820211802805203488933390940239991416901563185635319971224453525339513919257787990791930624147408351436535827190113881693280696297672796281664538057448157874837715753522745440743344713482358072963586881999410731700683195921223273552010801213686851953947510252941339066688740177107590974457917848559149576562144324842000603423816506385516060892047062524446138990666932009209844206422516487867403842315510937996994279167704574715569596624454042260616411786583551730037468989315698031284252131817185571285843268702343530932755395979253128267156143867759987513223802176932434943444884586476051427959869365351658600140044489925261925407278998317528064926023381790470525594061748682711510922077580484033452408259980528899763709411688098639446717022477098175622555424741920242839792298783282083729212145423839737115928894440725752627757832583022284041620795278608706376322045540091580015526108327839169585691236521515124244264034779088957466582355162607866688031423720562420488403746338430511683660933666410219298443503251043975161577799351972936613163448091758754971927096671886691453115490906109509640819462206233153070167775154658037553371021957228763666377594881702915492657156914294443304676083048899777293355371286454393064123386193233602004331418810777997139388693059408054095962891137098821154409837176250512675775776541678079736114245424118918487198129766057371686179016557538363503846781286617867651586858900842786825482492767996035720013606493461070159533644695254832831027681656530130458960314334306758292085111530586516708092115160940738980250005668291823887817803485901524311056997024813187278463185432261081632818021823567394660664326391495896699092324621868807834723151927647257697761204181477486055146664249094767833153867759680648534605736359429970778208280841988089351721423026279070848562393550793049543045600112277217404100375794798652850718956196917042239747476608600757347909858099914025191147779327048391313100884112132491816652593026261368989375802633430552670628796739779476705278724406246895188105181541905715218200408803491275924264272664471366413167221554730864532457997794608972093860301625921438765590135831391297520474149944718601913967288597816313415636995431386712913569957507874703341491337826769225833072377209624101153985540991629122547409395336546510973952400763237845733034820655927254304892740723436496708026136051249788053966501974195513279862841563585104228538826695797203900357315175916720380317652849343902100291368975845239070211770096311231759616270244373599830104697338023825272328148464644219609882623899143950867712319634692115088365300160747311765990277479023804232917401403075105551428797575841276693631914067201878015812500707682069573579444351347032528194907781612484048600812837102966929117708625443397775739142772781485977927608261302810775187283902936796183049380306848205459284336723690502918693773168352856523041487525555316868897011291647615012983802855450557815348342623476848199394005789121890089464202979273130966357884281708490026512937372463210009638958836043710964308752408903888426874717722176410738936926247965682771769968750919217744786825279677821864069145719684876368606682999545434209749688705114042285364964905445668947819765198386903939826642866305786823952528241263190118798032222737691099489737699411035467407120436050147464795533585009382767895340079132970026422438051840138997962192094755546539076900180595391835564035542001449625888885495019766832969061667168019172190747586909972720612378423712779478103701766092314854114661292368426474719389430593478338315827919495534329595190140962615411297316448004349099354582307537345693921173911365437049341934138012611294582420717438189433037223712731922385528585453430774560519098808949722700061985963015580938468655251714158213237803075470349651992487514603341604406843299428410364817494067733189993474364402088210017451365010843695385206555857142976320836624579943037108787782707111740349432479368988682384030136749754173411386555978699819503531571305272665669367962968789545611666443370084927937468002583122742329605694312831948702336830537585061417333531163175310251026211277980427810262701361711148457099462153186577568144163278642051287577982239259436088153378316914090360512977965320094028507173689223360937009478805150579247611838428518343753086230384361327626880173823653735441399310069644514079590986014622212012372539235396946398236612373855610919397242062837714429570012930622778113149754586509068362390599451024445882486938406296584622566174954101299784472966824142420524594075555941613122641637297924877569885380478301573163499217208531306598774224456079608236371513502353081546495501199700956714787893462842384452450793458710693803865098641640709517696449501573357847219239608813291173824435774621719306126120574954934393477835075921810022104431127876336276371254072658501300433390984325582819676912522331505761498670392430795957957564911167889080129543819294584053747769957286756652094438213412980082283721860982492413649442354052068934200105052272104314564514760776905104723865015030960949283780941538475134473632457420117822458653303068621946135748624238699582882437465646627980124729055447120754249249147361026244853182058692425029485863524782250840737837841258286619637577162660119520777238770884081264587027733788255534837850045565116568156426095843042010993653628400182462068389853755544316445732697083209948619974977668026614599576529799806384281946849127606494805991918456839611856762664439615209429984876977244540179601757682143339766823346664892489333143657234658730594959343292476755714729816199974815328035314753786770175509991249661096124851462760381485391880729499710212229043734388691883957119353569522952142947161940080524007326912843916911139045043242439415566353426603970757551498104632946959485514644635657144822473849389352764872755976277970054559701956638231098525708062328628702527091029888504378421227972420052210310113809330130597144789505996647375011928563397288957942589851530831863729651679471175554227788069219977990178872759359755229945152881940702530906715740934497635767269675200832351874726820792223873701836045190628014053238060026991027086993687929415639570253508256153273377493573540434563393858073186585418308427288265699530064121669394182760088792435894338192677913118872954625546216937810674203078293673186725704389007723075180003453717919511855187902268440054041323869398930028257305707194249110544076512283120180418633242518554837428097634371734642110346174536146236317477701879009239404899533501445204693626086825757969150033795583366037689521573780747590124571794178856208966464024525570333816640298055071717163613170964785061883419593668064132810730015351808832191219382071473931923283012873878165779088239365250919675515540218571938139665283866342944925090862108826453060562340728585158890407145991309788627066936904183029063055039795722849612929103212823454719644547430116301337357339008140002021848944297047892401476306967640488390169394657175711588567257618655338586090495380482734615044870097680179535083807105522228261495327296598844167691987681491739115620342760859298678191369530771790188183942637557239588381086243636763910985660445716830245186278028315326097455183155796904290163709556976541004578741745235939052540768358181488869983356102757642370547133707221300223514561816154499202061237119468797503105325627883074712175317417820528155046705826123965552959934744550862348983547077132828914163178404807830582937873112147814487765103799501022677767281776924548310160809306265468838144549633389201250575472925795971009762043606538722806246726991827984461806114327977367824897626903563820642512828587506716154331940580854431288400644976090617365935619968072358092659162175690184454014767955840757511931699010520636488660180706417241461952031545337104005506455339103677324446687213587546542906844326333923000137722764056174748437167505297878748110176951529003761414602742074754606932066259267926769529070280435491608189804469685956361233915909030780122818697939907733529881766913299208854735403837348553448906401833837676508281143259128451702545990660729580293660170803103383763749002001931470585987244239677171296908080434975173961367986341987776687167228416394041703898151339321334937124411039423039558546850345339676198132144080919991520781687129456222028629171031666129861682997487831345909914631271173259485088404718270946874218561840081621009478780605228724493582941553821139068061935490840203794419931449088245210756182140145756642820418712275143716270511243073672746460715367349879909889095705598936303980194917490245598476424864344059901914203301971541634756002118508554129294368361591665645414649583525759405191458812445646061488001893755035354155904978077780821589929922017579877975805109772274383942404018339917637483392535841021640783751898693963668965029725338019693864934959644569752402747013556725661149399560938303791028238686557741644780147338375122303608226780828372442424460403572040297855242788005947181512822424289582225667842556686822573379525487054830671867696301092751850888877097323663691100822528633681932578918681498814813416066938059143255184683209522537223006336249911219745646335534699465635978468668257390171889218096231814944040576029579927676146401183839152732548845355538932984588254038578255436659813034263372288923947184295945327695779032400571085299538358063347693844480776282499153118641296287991980283690408560541875442332842011710042598774950286472600178763043514233073152583898907672314687324721143962494331349676381584098668995303793407177346035702028004706385837135274617264915532084637739842147520253952531254833049216865932947449758082966428976970616819502681660209235320009765954397668633313495909404435821087921053913580992429410905150834563953978629046137834244433933915497078088413921637790582347087187739628108921108281911089207543475012114847178721421221471414733313098243587268057949641072313489037356207331248340512524268441284121074736218691502350854037629887181187207288565350666521230008063874082350233052396793292806656131020216223401670740010163237946330285526934499421539607986970632170602990738184292388463586769332234908138720182890372432153423841312727015859891301066311734088181867879426798745451309126730855378840335912893773640140178845988846930059134215375303853442879142884006663739819667488617070752252740192942099271006463597950856685755931436158000254946437013120421670650507800616741302939941230091436324273140914196759176516292713899519789747793716522439188464239976382722236685887359547765118762255622929548548799981572146776602749188547858334839200341478922085217780669693494411966160462181212490844287183066293830553737941341516287144374357033883718718470330817835080626759920377707574095977985608920067572384053825438420300462228859956177616275728635178265950347993864306495653392431762284944780599526964469556444466561008792040250569329277044657268823993939255598589039822686516376635525705909046935324509821676510494004050852933672583731128225296236497151591434351489404068708569098127758405827399684444461958156059614885056582550364945308437881169429900613083041469270491566847433196097627324433084371976217024333315032963664956026010591274445677957090804586975559179542488581329213996480507231732657380695040889172971605690937131504842160698369725852029864360177172308512245524344824216588193906410753350937232684408335736291402811049532204578884710286155579763398324627313479265945270696095630937617593999024733760834076346624833756190111208031798394897704741057001558343515289403255446023021683505300518554222779993140237244544281842935367481061969710736207765060866523302723989352208159955313415983961816554351654590533761458608833246489349816803484928955654919719822087938892937818581370929241686813217188773020681413941357808001476146050721332573509392260424118874819786121260012870715686960846706956895219572570453979366397858446012808229578498478420268774186590836734602248402340828934230934595649257717193259056637049322138964105956374322764499210526549373622347482224801844573356355898655897290352498165355092792136963780487851306099147543963912859043366716222520810042818521924747403446157876534415499697853836439177201948125821663504390890189800980417819666634727210822645348934745750435133041271648214133462433387757016630380525410162185248937780298712413234506792184618440938046774778510204146869829847015496572404179026299388394467772883639275533307810408605188061367384136398634459073404271546234437331488861148519387840636375218792186971880608315880571252652961039523524110180421979937866519571046287231421741709856761039638616133865820492156145784529596737320176733311773275594440884725721958176441183124412811288761356241457701794593547223005062718886199551093400543193490978455069324682942578111225033757811877093526659864256146191899460648193014503988355079323824834101714089986276995939950870464737890220260553559437755222968641229688075580026489031032509475023398511403275242851417591823539382679987521988403789925888765884647919574418523153176996304310358372389822994041995138423023433441542380902079384852618832112466084980624344002252405103629449793321568212952526449186823466113466549877912491241391116387402793755225124938981125385459669011359891925260531917147700358004126523391560121819430642277831808134087573135393794918075267159548334508498771817475765976499421781052519351763978820345695185886967042368037664619445832573457140998736462640241093927349777933167454915316417892850468592612429371451619804947757855187333304056076545985961935269250762655724964209076429160644794154349407139775977864469023237926012135309662376591908885219626255693046042661081454475708573124804912312977677732706132580098571168012101428754419343100635937387690565747983492483754775072219488057906136341784398183426251777584957439447398781468916306118396355848589632117246100170134222868788972153999110621097315360172116053448365080361346742114238687838819578619673120265129167456568583589424202934990354321653006359774718390310661829185312777902618791505898574107953582985041343862689799680356684924189243515918214176684894695488577989613538654182420868150738122867046826328454665592495883207042624172061247868090861281316838253997962487130360654639538022906940692489277025918971319193011920181348845042252504224327674412312902252854541095759385212095627933399464402482897322095755140169153947470180950587931094637652782966792386835361489048038622965331110368665027975473210920016560551605454108902014900521465881512927981408062084198005442795175865653348783834907676381160759255262159383998273795863558577036399925977445678610746205506032636407684541659274762499320635323456313353811285872967519330931469773769239957478547294235033658035074585850003487534895243296361398571117229009745614795969336345888181970712108598591298801498248865136654192780125451916209254338392843074360208318049342744974301170174604258621856676015443642523589699467070097075648507692243965044539568611795408595684661961857621170806291150425363061560518172014056034392471451406883854715606702874281446042653266707713653686131046035602954202431922182823818136276403334648718310906351630744704661915170928498560443735632695315099977100108369280504932890531008014052679910965391482591818713280592499666936073867773044773282855221851575778796623571459056841588864618263730505508648860984303690824544559544095945605919779903208471843463312728286747503746953623671426520729135291069755239117108325445665008554633526998340258855748248629451328620122309918774242498431295380204314866540099328940433680232365356800311626781006750978571885188287913199619007499158538619337204230915084164768660270440891008364503172714301756304649435030443347975234466687387275605603255167871217700692726095226650834202949099853866705461402906610261918822133727875330112950676864635827585529837901860168410057793678852933200991105323362868855573862291187644412203192069946655077246366578955433183411674612796577029175984127477827010697523054224166179055598520863322398398112136238972571049645071921983715097719684909625682117667571048770113337988444161733935441251831450432342225546873507600158317717785771847009455097177607902052660809429718444991022353549336653756288682464486776625049424121459918066531706270018434632879536013189031048343709656970450086030282584384103697741037518232045420010957550125481903751662805918801395991943898068749912542546510016011868457886908178993635914138468414706525746074883154779023392430189964950725314779231199660329082840879297091818942411796749800945757249548450433585980189043458582196349431194369364551264041203503420123004430148347637593715913938006391464139789874289048781586860151003233342857280573422784163665116563664005879408645247132295805387453804915145276902361217482248177587551019125913977906739055281217546588932065720815612113293601934104371261709576457144589828012422210221364256055409003734029735225135726175690709263005176570251876517460921090739581093927103444661233382986079418362233117907202324354176668854116211948164940401294661170901871406809277108403650656027614671580931521205385166479095392273887792559612352514422572627212489254442468614057927173337011713608128862273135868289022621852419960397418075879777158856738798882065438187657576800666511673159799843630471251922861831264732333190643280178165190576240875564725869209486741736439708122038772665539197025310538247859616552360757240105088127491142204513083091858727048804874759345842432260275939516405164313673192130143265269994206441297698987944523307688597813301172303670527399464722589026566778122966871573102632911794707871503599910282930262377171423812932611052318268606940294525988195156427761140663477252502050217702034934878601990312114066671156346171856447757018094593707678455277808762265893556833889269743094693495249538737975383231114077147886907371727904213874304299688835014877189374503573580802997698619781403584979802575335392212808529984733596907899102088680531161595610670808463141664483094275572647036425814059477514523283196986280415610500439605780681827020297293613398893017520713670557753979504799391269123694928911699490601743113951093133915971370540325079046726986137625771132402588171358938602819224839485872685524268394996242109051698940724019898343973655039315087920099500391834847920292663616547903655026400741774308674238925859448772755716733386176030351348124270165599615643767420997959034499383410137771047676018585616333807178722188419855847793630151690022027763788657507559434278099818298535207902963023225469995733817121838892181481271615488052214545348751423115588097107424298600180809046415663434778548531427302109037263906558369246126894666695562091559919708667061253197118570843758872239065599603426205330022357582200106163278754078781662855376242531478356219319668801758903700605628656770741567588296118091086920257965987937468037881729082203953275584083506856815100001735433923519574625144788758226313103226170795732639050681011635222929548102415817898308896870303829109603652887127479323850161817297220084439995279725670629978066263331086824279108303621445573531355974066648317297597144003716790814800604205380805404846132579513982787808957263253875045489284058581085952237622719838588387093366376915552962834273110578423023644660591568683321339973673494463586462636440811357906982471636373518917314489785332093675232328379326737886474824855416547767017900752662258788311407214626017145852283139066878466335620103511757512143114181716733896653750135162540152656930997742998457576432386167373405516108233597015335779201866358659713573649325290473613178778195952659180406381508232394591856075004281410414458352434638646356335685219951504210925329722132908541724031329108551405601192851701613706317936875736097633943058688255228118744092861608249455395452741031446113154926975823065202082279586093075637196245453313113250390879292051067981371722287482498569263656237335495911997937501504387387722107292451193834289886747692445495423961325743222253565782637910862846407420112442069369215401908034991216552237208856573925309278479296836886008132946334289858283148756703316883598391151027740703921758876425041651126052980713470285621207629089785318397188901082645146579147881888839635289959737908277418426768686247554233876397204722558141483414077363362222889046620177998940090580128271860474400404209092847342062459644543226106791068593053024518666653271532929596997412631401794009699559569058597912110389390559689283814554008162435203281018702627346098572344275429069261215456626145469567921047780685173419564200023113509970253550688844658605816199577053065819179195263939529381507858662684975757150422463760019254831313715301403437527061476584495321404756152366907898396652665264297433910008683578093239783046363750188656534162691597147927773174707061640781277753557176436711894541023141606286494218348596339992402019168163523665603855786956978958263168920046897332088572926080589913226877648172218947574040269722888969784274297342228160162595667537281722508568234503009376298177513845181601562389439247208314672974681424558523021491665222402741048593322635554937053698064118349126474845522854091485249208113724009241327931176349394218758348423911193724854266725116603201494555599692486276888609270471142511120916030343200468002441153439630634636535761388482821565836679796561204359354878246535617872900354819336115350584866417718696800246112569831145339261497844750103991724125341232632802612105018551278080118271901046930601830578180289041857285955594945828719894714643846478902246504836482499215881688590737761157928792311733347602991829172833371286145265278681368718782956832784625858388222220645138574638435543892103950508369051817104140008875295750012222223509236850824430192902036902422701723518543766471781002058368864679644164446757637249807937749286453556923962676026382025846195707895545036047741938343007403011724671853402925610044231535321979694902580215347347542998158085538555647450445088934556855612058692366814858354166806622380552207916990039499101111551011351464723080835581079059603943020694339018346274496526535018226515087689765245553602629001570607621363471001736603229709848017941149793377104524961199297935501550529380683845030081557605724328346593622411263638835447895055700635989955103493704300837815876759723739173436718809455852311624610897873021333807519895293865072348844739128661291636234366117647337729299236636793406744837481815961076870130353565839986396752577286683122104532099331942161153939387039565969322356973850794048631906939230040944272618794358349490786465256110573565474217420248373367431578390012309184706782978475493121187204892898124751367308922818749286667993654812095245734055825213963955491636891205119868079268340474769232175189236944364817615201469722982414669222943169601965891693260597602731113141173065097643504984328040285148848790518891702135962446289247849718364579943395268748779674045376869147472658161359971296388951477712703587731244507792785060281929543074841769151720928452815113066299041555703709950271665009204035325845783906728187775509226866799659852013788477734724345541917451784518894082423428157157125695470528513758057539487303278161238717497101373794954458248592038743809744801225891867692892738623323555178555262572494327438641587386029504503733956386563477256978644665307113470534107030994881600014866855237601690627996695655680134211224990484628928937068340466022161287852792205319749560152985514176677879355058413353374860533538712326007005087828473386905815556757675174553650727530652428879103270295246304417738654745494152874171025543899949598585141606441600473824523773101876184646475067339640213450329132942536805526587058755711373093682504246207085978031878018434966673951319608561171594288477730940762092486326108688025111376823273171269413125210868196821375282327878990088750500604989811513532041437983051151897089160814178953280979956211159580199655928557635070579961706305717205142727823339699409010950835862035502145411339520356845742126342276463668426937551584330088220638309508203734896158621162928874551539915178319515411359097984520476449866819193800915987571718299896166441560195199801225923664598478873256352207927282259849498392876230502403418480520093259618300809133334530117275482803005983959823831557064596806474085236365031079623194756171437930834858104179582872872563497723674162456229202479591704131716797172863757581144423235592824161761096232171164416861482403105818908856188143320744737036824784121075750485714646903467454881733037724205988661950602692408069846983826630321742451551257184695987184829556331142804314056832097260307682772728753828871641836453445449372412567884847364425829083653961552657978990175572612834921006118578740145287830970601524455070450172425238115706151835193219049486621081289387701771548553368956862823833550818700189554111119893826718550116351590781457017173312270665065569764989403746475418835531017858266661561079592413455791797054660455016895340309614791687550073574581758499952695798562062087081622224675994064097404450148928057351231711319290451069210256921322346017047218837003444303597009077245919272974982278243706503178523354739945332268822065142145445349451363193964808918218848448563169509664065406709509249348917752931674179173998725986267537415462249733629526090418644745318469428351279979870629170816172736525490352933697461932513928774849439304324178991129878486121854461746151179102771430693251492463817766116212343702842452252948869480135658255564817129263703411529928946432356822483062740822699513352267296429068232001778127866558950827177291044216182752727615994258198598823339589217792844675309748710082717521141021060417407399514697959766705773920787025267762032431592611376862044587260745968294226455586791602454938501690336844591024851057026898097955634805315149675507341369932749680264190355222508182383841460574532897387900745907899618431197866018383243364871297069902373815568922347514826029831307392302466091671712371499258534309139243542195160558202737856964906049996286791300722276828869161380129696964440611377507785936562473905031671852925595355414971355297785095015147430247672211705030431590474843590979460508232720715318591573422805620414674472995429805759838636484554654161558483184569115595679630593854376369907834868101717556943905841700062216495187240802572931195112620404111263636745303322668247917835040795060122365873421304243439894395831026387804289806999026923479750904456093753259103224338189578863027573902730943460330209182365005132516523494753424720187171126035056934512275331304673330465006133243833747358357214381410643923606578251195484827343603145948541208120358288121357272735252402499002413098894622349708362380235969181636951049927088769263602257875572530068211941070569757145346276629087196352736827529193451774128123820635507650675781898172411905839841654949253573300456451374299402701610341281693922034843916040845558866753306961749025882652376808890445982027688633318929531398544260824187744003730447831648396617181759641463430660563100218266490497216680332113426759749928883251133523582983339172775997914321457993439200520422222838879209186670722036796323953199401049446628745673503262084295887319571567825319823925716827739574192224766257477765787190096756272395128282119315316387751624496988441756545230163803391857633056548101108037575361222194115101755822645998438850283230553447776984107530447830525809170461531125728680939816519744865716340771628589257744239105097658454368762934477718340865452077502714764043045545921720766070954055002709750509292909435390993158127039834852362935907581726105097290631354611457889351503549463026295634875030563827344819173409929395039458835814739903598543504562072864836549277229574258578054848001421002086243315825414740414603219877064612627465083048364277293301699637442218092341546489201881887392019619093827530898539408626222751982908403242487782562517408702481366002200499625217098636167708382403841307898561043003722836053123342623182937339692258242949383279367538652025332767431943399719033315003780736906896648786558218637837978432323024829170501977844888320008757333352724506675907486207206565337372932496023016710962322937209789187430846758562310082173042229918825845838864225409885514783855890124061067621698593423030304176919804869570646597323951538560243186953831999136248963316331478191874438738852209981348254885981129421838039565213555118587324668059663594162075520123588264783946599205795928900491255778278589860658879836350479339742127552284044360414639032111905632867343811033390601377145881065238385258851160444897620581085984527337548310666896478418375785627871616459969345578856291773455950403352381865140708584970364748579372147554540713725426440200015777814121116941583511804241434756219518304291734825898021817498988107153075267838341651910179276813811903470760295792619920767628896980047067620275556726128038768517375280908921317060798895065928270136216825467769642701549834740370331486820837001382181841909144348666663125384321258968432506714106236836104438209290899991637964499775148905506857145530767152610247411773687638941430208349184529425871720174157928083163057751226813047345536636952348457548142331006996309541668065133064361514363313741375307092173302549377238395337914103350809837760873106227872107345165067573317343940797384584267489308548262562761104230405557680473072147354337979182979142078466086161229115461178460093670129413694034936027274499931929426853192128829701646250654830604871230419852791294386543631298969145735721534416054875275330836790362470108687662918815410166910818004709380464342237464850185485597673540975500695524911393276181528445563871006907278831517215523654707368067054980369015283862316912153806210660913461226469599539319317274822733614446686029223817996545382853480597499130840409521079428899729352600379261439703253283564513442134048783247946705790149966479342630130154182567437356374888582431109242587934312804146699455337919712595067269633586710970477072372122181655566662726133178896317466583518395695843735361993238401417118885716163398472384418099831196164527072768014069996449750260116664373190017888731882277271827710306146865217927239354317099990962706944667784030496893386598854528489891209837518569499892234272563412190096889809356603972341255662166992169883501613665948961122327470964755794403390675946379693238597769987607875035761101617117501567053098930692509025860089534514113174358642454756361404059556282875884450768046543430841400974147378026860582467724165923851258714479228047462130231774389390610159734568139029292337532672895110507135962640479581822740626398893110111457008331182878069400957433838873603512913985492019879012234250887060597001422170374391827917018993527912172537992568347909333827319037034705459611197827739885141609360317265666046199951823486471884344232572989530961286525995267688338617367078004737324756045219427592498263617293754570205513707852204926912475317764612355376416105924870954577202081553759630107102354758467407302507087792388844240476026090549413442356687809796459102390024652475256552739882919119987181500169927300242111869449615072262685093521897650400422902119996942549503146828845074618370476756722775376949769211890597205055442628862543425031723356451218466601351180875491339351129929501014241997939086664706481142884976608342927085187403730073648347483216812358134507487369397727564606519641459384394353565701695089725591284361563456091046767562704095406765919449483180564571560433312581296887101949835087104353009361218501509185879077943454002462315376802716780676846978559213105304849757934775803413418924821142269144118069283887794066927962414652384097794642173942355116564190478992753584725940994846792679551722191333355649178067743439398594323854606974019527820911820047679548483187950007175157325416180966088226106679091677442546476009462747095726820915695588472948228826362952412114526059060862472716984969807636957681175662172018581473097991353734019567612756370601860594053858916922270556567329413610489480315369477778902108232988814914700426735575630298100705308452573275634087366251885740163369436108754789918290722491828114043811652697412345291560462260245049100220942137087069680357001176895920943035032683831015153051562865588674323517114116179003229943974787875971113168898774080430792240581648382647503465656775442906818201693215577834270305683934346891828005801163825766383188275449333197355401345364915178323501776684419054280090870818282427321470813275755111926828911953635841842341812588698565394609832993547248786938675425470343367876906578633342172056728025032037118730776632713037076613109619315543787542384540107431493463347493698444738681180613492483731669125056554174705455960833271437299294682185704428794256817914958779773999272791271863266570496870069866440707456318220285093818682726339249226170975698164103914875241439941583699105600050062951571704653848356924951141698548278562463719632218893890486616530254559940047182280128899574992033060169073063681662087386346306229071505106268784689903648915581995681238684866605790506372307583255704520051407387629474065318066598995894744398162647062577968232535045187433517994818018521505541663158969227626179849205095057597028372052780686574092487917057453430991493041925223864314564839371982629748631628801284884985528723239975045673702219348211461613112065192545076364306411227924516743319586899973560983663806130278476699671531626764698368573067127404705582744048738260938193490072192248102380747404475865203930424945446287157151825212439181410559486534736068178871167091612827636010905603598157075234106469434507842156615403953209924471388495949691830651358288409717659697716453507081390248954596627290984694204022595904505044603521650018961407088526471919993322679523894382716286446102162185291505411333073781638564241532076572327814727867829297117250035045067501459021616681787602152611692246098303877177078446502914036033401280180028571666511482580813755147142702225232169442031958093253398199652556118904325647099512051180648040258454202309990442325586408060304355976624496204410041706225991831910957888670378623044090358008182891119410001402492762118823805539040966814675422085530656263132885554890904338766102882728921050704573978067680251280762428977514839233087171834898588975314337603601470027752660033573235044863940160772486679275631745587146940306123247287986331349258753804502035514821179452210910656826816164286618146381773330970717278110090139511445478734327302574639950995673862721249970700445587291425073896906774163342027911212779728092849672720480187201272842609597341358519060841721364081014359704887433886344298381954623283354085759349846830550516272795630253883980704493147372004338655312718946805080293605914473523359671395241591039043077235234812129691741141058820652931152621193984993987070840718892302423166571457574326053953956044115743383885612902337659428466035690525837761970210937601107586674729796035819008589230852672968492588411021959256219466100086064485599292434355293393437305915987445932149486554011072198951922011802295362168327651797716281809365466730058765962696224413556681841218721651234590745299799531849807807207918745016036560194301517147634781128397289262972066478333491441387531446771322689886233085582196615210143922656653267547716966134558803993709649598809126996376648373486183200693329552238386119388420749623118076062786100487445180136990113429145640586048306457325602262746179088949304645961540632014151017937634294670114763127058171540928664085163538227703954959509824889192474409888996087774871230217999349203612710496958572073507714129578144141095941695584907030015331816799053867060769287427426666920714284567619145310612812895020889822021233419140946418839947237573241173131415778310058895618857082931613732960889616882801010327527964818187196867978289872094161051850345128743889545040579373270453563122895898993348091944653172446080624088869910664008965649731398856850700536056253879096893378723941829887904590726788208125298409265044674133490488033464173402248753017297553063286279543203092541539540955606283986176268522376420416370175143627923409355216058627294583847640220532686086043805600018490623516780058581721410806787710488562687036637376117419597318511443832738691349380956507887279712980104415852750344836011015739215873529914800573045068124585495999088061160091568790967632553634851293448817729270376388683826943561563776658756848182661444056760353697626925317188610507748073230373504452742340012387263259418884491081140385498368874297962112998980930448020871040990478627070918139067598052957865468961463304402554484314263772390156463837331974552052671265806293521929754042074829115281003092434381681504223216282017098212602206670141727349869880913483607457999674177581974143258648042266093098133459036302942201804938166874279786692685479394943690738720072553701028583855030220018938890629095165516080990569248809304921226805312502644018195621014323104601819717832779237316350436674899660006124530155163423863896268419692109578192078366018120539911468879387403825094903379595574747685168893730061897010713029539735307762241170626610067228263247378412394538843040361220069850712665617360509146333055723115203630502087654709975379418005826006614900780196394149256356869643728895114766709862713268870251417287335633258877783284882286794514077605320094622469126469000732208176740959413154044584514677194450256940831174687472627908989612957065444994284959142865108432699911157620318381698253007696384093975158053720359665477593637276761977422445029962608205368640013020976300138330593594642416452944429856934349358556952069659576736659892856623766781990849064468695510382162280211866836545924137559091242626347765915511092918568559698385357057172492451912969139022326616910583657687076704597551927104137286979399828906315016199099263608062087620988094757150083315876254204407869197051739462262856130132135290821280921704085685028045678988287123500174378397556849357551134869761838208452590274698112684704410964513370022280341235531464129779323176252022088474203836078631754965830312608881462256587811640737545956774759382248765242921792524335482932300595241630095810077434711059364787893273847690805158186079702472457132726820630129312670027799249660622491514363868668434060500355561661348790473518562640435336364017160539409363472273289340859100634633896168083725069386453337610894595532704954192031872215900645926780734181256697034129183665463925979264371925814941774035679699668186389560308525830196365758113528815770159703847413790697714491492843478820001325036369510642669077829707927668742531321639464347817057186076696901228429347494643767875606167675109556399661856986030793952302178216167145816240379179460905129160063526812819224308092150001202101715838491078253732477578944248648149154902014659904244086703187141383465927434299730684783818428169945981740119515206315258970859839003704540506829566389073731684400180361824980659797080233569141982158920481794161323666377414756625528983424997945185921595095961539530281795774518709554428294509470479256946065771386961768175097101718672625384282120591888480104631683322273161840430996025934868664387661382291172749326261438045946214854446152417437918464843741621770811563229677017916098192329528877854339029509913486125387102345398930243252566505591082109870721121858447227239738890056778179172603515062349197436734225227925402198045832875093198365181508251619814074530765538438148746552312320740784256158953419255720553124564786119677723037034463446093717500560213146364561508110923564295434408769567111090470087472767573438788311369210261396619163054384864299745414545623208147650710432929261011770368028082366175068233008599439097104800043128490966065520149651593873902308455544181559903424686845007769929068739854493884123323750852861452750683732255431530278796937191738535984735944764974211842154293445364891367367860478457129766835820176802767556651017622605423854024718435467084028508154240152348682741274489039073387863887892263443082990215527328778513901822314346522357423292216688903636032095319651865138185177527064627456927959168197924782438030275055969755448513872263414943371141938457943527441179691685341804360410335753780719649043360886611484764161032014855130733828309030799853258018233734122826019929460492716535766101310539932805352975517555842268837509977743235843881832123186484821379435646584824669231976475300735512819401489246555069792298228681118907456243677889917278638552773359468173315032660570505373617901595035786133656067624998162578188618525448729309875672295282060048894554182174646621449361395024363803108835040369086735880237474897214356750489458527332903000984859033283115737917303441313998568183712325302707281440175923596851826731653901524298705169076837901962564977287087875948054548791139666422983276059022915514592311703166291294789719714514892075929172301310986040090825899133333380505726537392191225581963784607946596552248337654189602359498961772670360047809583513915083764623493636142289626760747687118543765231185810208454253342792879864242667923350831200163376367457940441957212730714539743376969829331413851231527257773073080468026081169802609085956103102787491513705596295167206946896454598352133535840241136688951581869419564294132485657743755673459464337635206252869765805070120402114637608423110083517606279696597503105007653372837666401496651583691288520568657271297798543986997848356441216106270363723710176808401981909200558505954953018812590366750415574907151728789970998797110888310442765545646829904134854921661331329052070889305710675994682353657185863666124764308630876857070541990297193535999398982170218211911480262495233374197363929773933593410003509647222862876066343892490075143832596832694192516001550596412072448311407884303880077667181328262167907973543536723459776043241837222756734323438105603591194691981939811971474982650341058219840628642581515345412624209400556195888697524966296663757810319473456484179848797265621771350037493027652545471254427988318745402386701441064280069372566065358963647136515208817943895602213344304771873943791430182758686954277465448918657491281610497076655866602111146795171022102832894555635167230424643653194598379670581227528520782063470207816109616002361729698435692112249534542363917994484018026863957525842760809417251279519539643846183215533040770566176911158623673554641548246224331826071682039977015922243958234457479649703957282211096623101631500502251501621119306747792097729346547016342617594770043399944385583389983606325891911307067813602980698760937372310660305891333751370004793222326817139655101229269603615864697102045949192414505785376567640033348663547670220009907086167460224733690593359119390489453112136907100338656977102662749451069448260117208894739736007687161168945469889617561459629306391183602508947595415851738015432259573265059622282390069119625856100095582554065073754920789982884156203933223724596175817743038460777639846225858320238741977193806738336338847878154250946079954899122036727147732810347335749105378492203977255817760706731798023357099326270002318474553827889295517161365572641411755800486916428691226067366775198337631426649342853741844022987487804162166393393357382669483637402335466561100120641606070512097198129770835861912611456573984613703214286868964190032919205915161215778677132619652817179245275303652212644413732725299281433880957453127404180688612758741885109847705442811500086259507538185891700290830669229691329782637871717227635889819860914659712026050502598115646454000266089888918553365225819326698210410023751033000490071769287076307193725906154378824821246006646518642399234735161682531330264372208661959155990079077460127017815362332991150265849981420470957895360843701846852873462773784943846703941580619355316826461939387025220087137948152777736049018591830497659099373727461520097769596181824449699658196094575114952215751892241051643455223370688100038040223793159553518401898865313575271040127554126749045541367317511112135426710698314575631474002376272118682628150420290656590352120471413547501781872753280406714203360374553732521058412795920383417047782189471294714380973844517546373504027636079129287491459640770591465392683438343366150208339886150163728146593274064416210337573881429066025193458862910710228985115723063433876499967931258197626612239095016466720065803515612153554121102283047224887198398232834048857184857440043542577626219125729843618027125117361918568064119527852005066767544521251010152208593728782837129999162317379509891996255444801135775417478384345545121101634837287512756359333521862204655542859002638195853895422266575147274641765612715150461348756926000716279706603438256869726725582230441723454706890647575786388590331065491760485228528913200629840126538331639446994915423177616141068591839171408394469000487324045941836305397979573977854630089970834199002824429836026703965527969680051849170921229027456379775824387292719838875508788733533824456011413928481680237132736639972829735161333208466367903757093450661687174616510763887384018118619730329927642920897548983498096731645550823457556479160297464519542312665535862829069524520572673420235031116165920524777470645338442403553176398697350342861673688548863506072055042841687485895808676892449824235642888471576699934672861642815681421595255040783618086258324552621882435765694002922641176469957304199402158941043143242196525375457795177537422544381544197889350884699023999356744928595718975295819836144373252830294181591563184170067608489747247904792230282794363558431527219830107589064785242194133115187312205099034302752568246224617276623524286699623356744143510829660948589317780800688470405587571351798913082616637652798768516625036068713587226488018379195316088147383359810278076878808857017981257399802115825144341194398071436767193480872537798471452959842657836395288050058285574847446596659151319873392493051994896814286896310237966482787333498387218483228833431649158280786170856074747319684353095089357762035856210486779863336223385164736738504592055620866425258694755684652102964593977853180572922253244373057089279321469744848708015318186551651623943849061652204001371638491113991667071584556046470952584162687504258114020895028979829342386478306032736285483846788471695198386635812554945587059817272081269112952512671430366861819445138740776149233179047850312981775596860596644391576834705802518324056682027592234065983236443171314156236706078454407280274204706584837860141366902575619366039536971359623234146837175843068012134597609707404225644787748898158757118848535956037093179595523158369781822312058474367198081222293183491258654728546416598382645606494681570249041146043657321559343261176090162454014948002985246851023467105991809997830851120437005294150970769277048784090432397138281046026516641490104361891009775295041940814576791557445872220481031493319120443130588176757031825512485045230514022485522546843593258943918476400547425377867121538626611982352099019572668665998797316003425976278786415334956216215124411156026645589976911845993502829360314816875726326780626504963378198278381605108221474311226480038729048369082083128719191457172229184502231087394609388077547214835835825691858205767655303437659057965846778312594651507212588011340372990857810749505309562678173637180017087067085948278200148998016684709704912245383450132163731622567866008979068727316930408135254552617683423816850111658559026151215169061383206872376575288085755445311771356007705813950794509810971234888508892501360052271738682878390988928091724109136994275736861066425962686483573666256859842039588575800289277267675064692272905384852419342978994376672917843783664737818990604108715391961232045590398545287745810621853788490077117913142169225936788526974890183523574128411938785016679742028085367682803968788164228417356726457417201374603335177126981813712483910843953650661173391295107517072200243972616797803988158595967762170376997873176496584230874651326247668632873354094618520370845351939979098187308193285817430969433987999985611336221818329069559468286923648429514714587782151995127503313482092691612477841716458350874310256614720966586087331573886009398804006983009561064884330500397632704949598835925427993893879479234568254628097284586698026090276735974292913138786249777009904840605833500256503108597530835632308912482373820067523822421837819970425157330750288159133066692326437415457496769580863815614946081103220736005039421686526007735921445870745477520663568412083231025289361987784161950000450649011296190689136369447952997636248282256730628630000120786306961724251629232182760617037568769121646876813575775829903332760615625959926183771419408064477948494853764561852176688805308935907693200952136244606699294691235732710270322094021088805346054902628951989708639684201780787107787497818736595932605077024613831697954426745179506471302807463486871110447985514188200048995516526947678382433262520402230358978378764814833007073520742284683028480640974893995198363451549835491033917833177553847581475740070463972077107698188880260069977373126318228731671592856828592000159924817121229235969891518958643420449916900828931303957108040114472995328402047565864676634607158759750558657220131658116577440302004567922805422771037462295312256255675713047868122574852067594215148672554141042362724989878150738110779422790820488460560585520746119237869559052521773203218252023903833376873907399156638334594268533641138738157958001369414825745571370554351279457266651145146500869261545069283909943399458653522448281395013373403863127667581838942391464219993559117454495295474776622231147692624290469646472824946805150735337531545070607288084064591864430047155085833649151673088749213742118444735538548223513820632380450951763446389145563340786273983608330536155057325018788304592565330649190337974845004474237793659987570846215899448783969017101334668961564906708978180516715777195030017014861295741480610020005528580567077768283515210400338524511649448923010623486689556708125878607968887315844472424933552358228593823445231984136716187783035124759831248900435460616736946493464485667842618439048743227782137225393529068198270435015252152537773494789149618328819635827435603521231877582310463325991109542663459267481264123804653267998162257899660536855258359388670170681283821491456089784638069890637010377675869707873691120023629480087019647385416266195284470566727556810578848906690344140540678549832599131391566945605479667815374105624030071598237795548337858221725439373493610636289847136951437482936834649059709199668838235876511389900208892775401516614300013669063332150744013352754220689072389385422103095604878997474465301105288123955420673111476754746951901269622273909553842736977377457038652712629639333711422855752220063013057468835149056113738445951295895384077814811520244448881120248040263873698200676781206905967749021301375073419947170766546518595048693010626136321915905227790578230708388578693394226141406606420980710970322016182391956326844965630917783484202061163340858458083484212195491043163354011460024680474248468513283434975975990819774122718311505318359534555126642410474822865163438372132367860405999363604932999114870626148677856290176451135737251444949431901479532165921379630309554891968713872958730999321369871305382135954586298207912934397971676554342563696752781956082814841068563667738924378329217906786922367889271561227204702543846542398619274067395023549659023285070868812473031735433370236685742766580115822266459052815591105726168612770446548053092332546680111344970017672475785297017629709157335675571970022025767155617261446472448542864029674277283428584908603323995247309264889837076509770262188364213745914789738665736087228515865601676375453563684182446912736172715183244521473373919403566138604367127215172530338785194051970100272697890770502273358745613456974516927991390929529873124635159736930151804276526762202147527568177189071082265886060910066185626650590866164100692656679372321474528783427805481955815388920894013911444266644206629399192230164314940485400581871472133050163720866841307644872032468314992358171276441684245425978352443495339579433669557710505539673594249942578110635969390656427799374675716384710175483798029974033389884062125121417050234072782558718600083950931504408236278017451995453641476185010247061513721368436762862871125476608571630878511186347727580684360912356398870971280717131130924202291470867682967785980113894514263621557526423408699715322440913491092219711754352717743319522717967763365085027676661824798550898552321272097650305690387261895801097454828122583723431042836418953555068790012320600505742722911752211242631497394339020593667179566645452666132428816547007555113721763701100264702788670295721454464751070066155035359999887291757315860085948740203992344401881345735467907610091664566405567745672341233916333470357533161306864801468520042070956654942634288320233819432165542336465631391061048873557076643423332424771699914923803077364165777312550648675163119537974592413934978670565108735843627968991604301048730252763288245801575015583112809297620235945472921294976682352659243651498136016766967163181505373027739084751255278627484480678062792136636031422290733628734980928263544020514094091806607792205560559238108930145846241067982261807984089445635236796185989223444362918118676792335370474904282124033283479020620560365581924622152476321347748157615147488382509902828490997918941413318922937336854673968360093609960121714619556851214217633557105631713237528950683380494614593546857989388715988710979997688764699335658223127152973371801811507974363258047919352314679774990206347931663338517715098234974485499734660951525021286420326828766202987321551864562604665273093904671210390383428534296416126729458107231921911404080817687423095285175714672720051353006393502775788658117676580607033950071448819458326419065042758556099222818676450546859275288587868053020041777218863944775973348764230220778517261214831944145208286969641655924530237203554432360799667264910291388755720543998718663766288288259315304291765626496130165506805094894307703917967404463419443518665427864777840297981718434380923810430412702312994328521921196135419176323524061336672357246475131156026896994392531631150382963575424783012145176433610265044187286674351271550208537473596919742071217760139192886454198610249821426558317860716825074511479222620189350802131834693550342958219796863922003377736278456318015970342252172229846511830175469373804924678341755227444661640040334454184290850576107526179338792553795199857661203226908857402939814724536596949835840053927846736261150888041995041854861643604135240505103994468270132546238384049047970919083813301116260754930827529758677531279141673920975805850232192540425387661133579439954953790787161861747362330795382993060119977816963604091803509418029538236362881302848887638908712443926021343486937896517780156880685133287412509506536956122964013640437211619540411698015988106898276592354339772108999459387584115537989354903136728954808380463930355361397013822455925019664878469537923426113605792563976186825159261613343716996222574225988783635182620053402057124942853210154398321156317608958628138168341657999944275785598718912229426424304802478040877067926532303426297372616578465004287383412337155534132007657587341367449672250532335097360107749904778920683581932295388746639293882842362011279028315613888097201173981117523378100737027967550375185805844168711714745792641816967191595943410544753062245892400919066931909501055149046918743771075956891960186783413265927378694944729121628468904333187210371418085425454362596238487808406178422802820017107440824730997644005298897108210220747746599697893775335310047436837872002033004594015776574419297442603476219100721078994564031502719541003373495878225520525926715222052411759459666139880819604552984222705811749009281757045735548867141136671919493030359964836961177371960686568925457584867916618034239197064160883192101271700038138390851647119635788381837811176774526819319044646807246813478614144976551447441573415743843058455993203672586239894348090705113580412638175984630973604720603702800546390644791733919222761356219474069554391803948081878784542092096111480215567328990566177914831126756870918994744778472870239945430551892494957359718670477908387083809668672315554139291029339540373367382702047164475901242067909393960549066984707010743682233993029801618965972588153003810520538891196240616043962090408286573014927200591195153947904625544882010610813855911494477868786867228547528843999796920506982215825695002748741229133321202346196780135520287192638485784455997706760717424485375003735639818301107173822085052431335716008033217935435669007479958609865469557665500441008399040633704699412833200566902212173895277203729842526821911437921974402899510185361712249504581586533546879698460909559484192150034303507063626320467970151599324695516394530293458723586599190217599856678719269743190531195279857650832617421401617018473862581710862175804465682197171053135828210623985582657180122811191663085649949249314119195811783673036733421171483455942703614187663265763312147544919598003212101788602084086404202751834587497224979200188557578598444892630389910851996832646755721612086426262055211345227205010273635621199471836484327917483889316565889746773085261582062078607207155568270262234553603150692581726903569472384221076014067261665829188380924829572361098423623691741954874339480278189362378511390075510539816484760291896031197496785850107967242664349997838427377484998557828651791481416029751941838876869925721064186162724031416127202669484535284537469226809364199970202428185085253306474723991548088974722328740570506120294546905968705563944206453974901441340169882845315043846898947771828206312824839049375289775398913244072543832986266228451572673468736792017775356041242359170435991875983621735826082049918273947735396855833675221254950590370812926232015077932344823183279061199774798178407393292748771415737214736408974496403446363300024236145951862327822316224448709359425457348903408260543359167554173969186168697486161226241741250679945385987513887099879656311853651620225307847196387776609308555591450996561582163188195407095264542043374016040498251359044969699157975975712012386565417180981951145620528833150717986348576542955582970690408818156163194394916967002046697288037078154872115069404832449574203857366573142999649620558626054952440479349094065337935101880662398779846339243597592881665709550276873195499663074176773201776015448424570174641303835993697192432092568469641440969921798653540052331802717493207265454872522566537512657334904992170561277929128222507238494358650288585990225611164706127432835922966200410295600655321520616008744064597166108532450161998387501485289570555054466253851956142109405805033043382289526764518434205865854796498570315737243697846046668953572243791903301360088410123777762489129708643212086925101362936050318410274917724719928797319893442904701814879805571857551847528880244075756485075099500677170005864181273810618066975230660473441298193152920964903313558130383887646046433337449158137542131452246580908474715913132528288862581666912859376239589882253187005425255042058025174011785185643292078990121993038176106833624695047222415908979230489160057208459816144970255623275673221458238927298676541732853437927690681643137956993145330443079264260302309692654320780624750858255212257335380558053251914020450411920732079325230579004891960320464022266352115285224424957212223551803693195401503884457341693880568136377143472382413041006486509817063894166428941777525301689291217726402231613015649478171617005400966230354768875272255381291869953069392688388642589419599877477900092207193536264687790805464445313227422926435678653820770659778030030260227154927336199164699219267610520288089597830929027453917347158169786527208832155888173020081818171655750192458201338295954988938920776979957797240146603647323177963629187205139643341854707839535886584388462109575570808401778455799835434531124749174887748942680643592693514851121214500762438777536895731004161710558726529877345463482689480080595738758276150217346608450735576549067868470739015901300910641340021669100081496488099419535493237501681262507058950611274474996070123626593734273790214280025218459322141504581570962336403561925835823904567436362460062350057828977789229447837156591145500107351540684915093213597118344593055006947846962315376926660810062904115869375184802758393399199199433006375344580878770812096002166158067292258260844956828942375078290150587677402500819702862415089590726054973219738560353101465651680304332019769147902047643364616824973613076266654791826654103009152540383508022073282465909162711950587798273237354717735559254138718990344634573480976482130954279586328321829952516653512975613733924043308310365775774565731250608886938157497694880062008588663256775686286596173797033843970115975761956058163846474425772075680958056425712603391214472622433737751017827014692935529707833650109253568562392895726667995836111050459972957409070379861173820320802240976216535599961356700814969342854288939319316924058640687615430711906103837008041597972775714233448487428408793347553171778031222004771610925100934261786337046498557491150692474410511410910082673295835732385816975464944582801425548566425276223567574869612495902516552425467062001986960415397520957847280387313465984549526076526046831992104185113708597908172292508485122962197757146366197594906695296780502252137640323864348180862028932711732825755106116210441014074084845805888721585953088304460816170322327570888685119866979055534845163459688420976927836651347910909576255580783079939958340370869043858829575577218731871410267803477040522806554777264016960808969783891000101714013266002063246322972223084676771259237525108081590125022551227824573480277853421152634965088081766754730636528047630894117697702061162404903662923134852178854223315102429080164282333305277596926538571063478071453134292765394945770964273649036178782659868213831626262576411073405686315871850785465812640368581400901893012333785911853852339101435712509623890953249297640358482627493443410354544645093412277587812501688484638222168706772339752122525463092052424919989539406491914727740206269625753700396235900840761173799690501970901935403668635276433446822883146336756185169318375295043824898668020506810304770282728379997527230039694001620548777458272065184534516765375059255770827135673348239321393167163797607054715381338544517156619255247748851547848581512313042600930821255927225017335211190685557335744126566262772535634965002977845733507073116064998616731750271435913419456260362090534561000242154327379707235348006472994286524317812488699754650211648657367600426712788520341843798185633131348482538647566171066094479072855204034076835217129563578225385870579147243122463900967526259252355048643076340742798448361449041037091019544172423877948186404530877667733839890198892789890172557137157693124343042165683352246221897424468645254343600257041158040369638810319295481426955060715572875215366709219528446306748689738033349031774454573546065513326991635303302659227907640789023702821671899835194498488485188398728018053676797645305820960759615453467043583698796604941331671360853911807217153916235206384795712864715707198458110400099622448944805260057645541183694996368874389676270069308219052082545004099618540019873517044816648988823258347624382933705035231394362139396703606370162662080898698592934530946294367106462814902396701604782052525554600987112206707569092597630290170984179972686351405248620457950072067125235943961204871830739886665757847310709034287998783467871389301588386682559750466634129980080976958194597545289804638536792338426219737249643163539229369845032491798936407983659618823300217305630553702006208008261400172521170930623374048365417413063619099821842551300065588252038122464579788059353256285998772405579606274568598285444324838364864708761800126610664622513811774262379413538648477569137520580204974352384319132060365651125683881889305937847324496948708554871899300781772867343999537939389829046403916605320440750143016420844854274230554347789668372012434131710019425840796455042514255159935047929601903103443678015980581020539935654514613452425423012790960863353501084392671378271057766349338079532947543872468053658588390634198960061080477699840091946829980138569956840226905552292959382977861088640071483458109737431524918054180584593856384401041983339052566854731397382557524137595213179236638264363443721140984618591169694713701234113434832769632743007288909163879691383470981117374976025446653084300076741934833653909706929636838293072300762660975242046418968776762240737726064108346748820711825504880596982232494555065696744541656169330619490588965690653535909486573799822671697130857923727344570698935773676114990766647590595886783993414270675821798776273270445000965812903008548780214943580200624004914794263503829811822513294738626955268306859038796871672359621303392344174365364679841772218986789488159503997676630668436444241090354306156943799088472829941401589231683931117561963456370321252208435345552577771554687364875082253588445733327569625074204884270349915192119810607838094005400332440185274744847174937342805761796073658868014185077999041421513980928371604317520930629388795675076446209903700350679494565897105044901156976201084084746920906229938138726838100510461927363677556998079524548257453341022588982723285937594925671084755763058267917787651562003692232518786165586283679456935497630729214402118029274587572773566556826670413686007830746105525271899798408841033076193572045375372021462479032793496659291722114834710393770492250995693139904826638186594189944648052360393739175544557532741983544616311740502372063781601493779170354110291281914117688261534938657426117755344723856399408356784681458913709408491750119297271574565789175917757998628734177764702022150453379343569204638623682976543072673459682784438431730328309797748797767115768103644520170665500642057529361140519960355797067325700747969403204194387026219649181788427269174254560027343287212309469604959129510649488066210638779540790648090322201509654833828327556392332979913465963072580175420345993110509819345210185598541012546132374455864013617135946585828737217743376323107634679357129463589175929638681859817359734555816000612565491441238040263070651284249248344325706747993214584257175185220589874993666040014571221524444698425861583345701713182621166480107277518679312048295174036047908558143244507402521002848348654248197590351462720910937516759098217747895074045875510737422072102492055143193652105067981759252238470826645554784266632066480791575630401316425837187987101643427186842971111350557252608980568382131483525081740616273700122318613326100953552089693347265409373258344411838364402607383109467494992257759935797848104878672823073274801152623830539573926258666206529085823137397251118887749742856350683943300498281557163842322462813336560437430525390812929331215560428047729262871325266948763489238319616958173795898360211011642891885941378815340356995276337875385003584496504012148885222734513344240995696753103426381214801308294547115701830253682762231236362045263901743677713726902822383938928012737217628554507674087391271442130337251530361384898855468096234773522639032659851865514903331809237307507081442464920580732862512261586451923896225889109072122053033262426618245549668850950816627277172920564381892980365584928235949739968141860842888593169891188642849943055168114817767124341548570759630033101066767080175654584881967882750660460964084983272923719414810530991525261952178813099194841766154198222238373105580639266412453280210093802884671393183194545263578466346591577017305921073647060950171763886997219925871596364255359963587091987456691535008517245671507537769836070891158326119328699260979635379828515879281678161033842303715303362955192786769311646469165519020119835496527042688375099477930716376104104671563696131225390728924732736874476481781070397120006888450350504369075782786022973065270079923000268863132311266123334987065630899834007377125262716221821628641712459153277386204929464984375829508055806560234806248209668979588300422815451571922759856975328945279588851526291549882082347615573832717098040038225913695986619724837766095973501851142191584671907837245942697202268837815187048274369784015853268456987492756982141875855554271145007686474390100432165459785951500063721973278178820269674634858771692606604398749866816951158474961582388584765163690783893113258566221587428541365929473941754030255650470490075406586650465994251210996220718116523080633760028005492804003526697646134809281110527795842149602488110089686751721809259831565527216634768237810977596241446466840425125928863784996927146229093803988267713157169618691655440673924524070715079385011651834562906651002417864298806377341636707367513853008635265494995804548608362372813690191163687762358482630247118870435099543267737841832642502092643803436873420563784280779798624536372826256182526189665222903262332128536454347560095154360040065945466264482878045241329887643065047555056222945252494524308388892856584687280654365880810737400157272727684565284040146571131300350852116654809907845117301655961935511378788332335337207827731850044182562772879641509687775157160501360108476958905073316693443162961967183527615678103892344859586601264734304771118882509210858698099924872456267487342700504731500139137744135716898579461954160645443741342312842746141178655539956606328842930667947601743360269389252131353263383226185518139437378340039936288876492476551414982322001977852566852468518571833135306665864475501914453622679623775789797885500105147071567141180421778974379567807773684237375696964223425757180920464597614638286009612245836542180851021375858486699285264935677891526861176742211693959682784221608898085554366320870468218965922627752785657243605612994054606006163598217145483321908383646133670256715754993124969856901217657939022115180603547953611780556351154646347748623233901364464869017549087442410078250098487522903778629705884303876801758094619814367451158458338988528472256498065739699314028865328488979867566910085467833962559542887242443909339138219608053671939930646728749459081795998080374852136064441007136682480585412821001911744417680535461020598115786131081866454089152933316223438026275359729797990510605206724091451532845115819950445432863368125958535909446734702883095950370591414906705817784639420243927998848233795859069128262469148041840185922148512249760347672308629100423622625452825672001544960757701728672639936021235992630173847937565115701127303527599199135647956665381272658246497314480581360651535005370821673408022171432285648261692267958258624158513193908550379570710613613163442851334686035681960537231911602523138603143262745019313251494831244344451468793028544239261531194955580533791421866250868916592149899655873056964921898422297747150689950673512449213316633475891311472626092697816374453742081756661483354580830839483807283564584907827678746106971705863615349802075611911354681255970110791856771767818282354846360291209949303163782626128363553141362515933400903271097171038355617145680468750793404739620786564255454792813117290378579672423028793685716354671362859681280599917715031180852458303236209612057841637202972165306579027366727799753147252368082904235829611903968098579469330962744353979739431587021229546495493332274410764436726578683816218035594877480221110643966902709846792334802278000345099816840176034093096969566734903807989500309933683836274772314189780401980149556767824996996295773469119208266093500944110633339979641722289641410031756485552856890159649971209890177440672329690015603845844202427697811518557076733866170244035199022164865164079897850993792200387233038846320752251254223877030945666947950247299955678163055991550296895337501071670923335750854426637124880326142651350334977282849081750169110573322570477236880553499367647123419938997939391139330402647245387162708005032569543381185877173602665154998890601897668095164379705893964280597701752753647824063014801840843339399100314634377324496388880710511898967333597700954895910429307484319911751814023506072495057936821861663747302421537236719903840722652786731098249006352021917950120417029317797665134573230543899137905057234599772775859642763069609847132597961243955781473631168094263262728054746889107354378372435217542542402796468646288269631568507473075774272534152957285776972378970030639405699996604278652165873329080164102116724824098936288027061535696917939819785748186188760028681610419227385263900563640472902286699674005653822466379765233642248500870213668297593345418611776774745622621934476073522052518725601123999579404245143847526987561267838488751377411540001647974558060113917865911827623980837777029510420503394978719876573826003988509775280529510661944109604637775259043662360993431253557791759136465362853858354329691030509425221766474505780104740989279335618138379688886730850499136099374156086124444211541013720652874430581995875639893743892947314797038751788893111512972223497074481524347243591981156529752042334979091404662054204009706431416641141186938825084070390857741156605884014960415658236167481925695622303122870451643693604942602915698987516555997018747562136249373337016673634308549187216183872237749736587661579370266441824450127448050708299605604503614286077154689370862636445663599707229212413980559029557719432372972742411811035196867753598065648477539834452594362514539577328731225644325157457781164726507470110560918763689136927150158262686490337557542284443442777646536610619133901290252885433742078390226206729678622590569386084190287560309698340962877900816669534148683838474564668064258703829080849688555994965570645141056887092125348372319318555555889750217432167171645653165432421746706183761111848841592645816182314751448110953978741683352722384192466003055239438870621564852100932241606412650094978837026112234699940621596472841127297214262331574586500571813196016811507290639514083107174860354703467907804828769671181153698274632861301773774333553750509647556771874832600055845804453446842574794827316399672767753030852103871324625800886709503575603936077647376915152491949268605937762699400023165643940154444976203259007614184324594293334847046886922294183042419316470305962180360006472150348175615715709326953731978416918333209615570866794031560944302172314220746227046487766951028469159554668910165478006465880128029716386796685072705598984677575689923586115636825755587006990246267428990763882900544690916098240153586467291530658782464069205834506038264741883360478800645744667525534967547220874165708575924014224728824585698111384759004438305948957590142870851889817403932018151491380791619708049460946774755020161134591443127740999435207634853801077486518125029801906428489836527200556732211386650872216636485792454873096604400190808402876624739763413168443353301152587127700052895933191839594995641558300410963203623212640995419730301156266528687897806412398936003713208220585081795662504423481341254700969602991343188784387784677467320045969535924091874624120768109826981217083322572537570732215305148489761058031348568800011420844751096755652510194645479968610111493613428417748064942675643255860204212790549280688491909235151737427708031636603316173584375602503240876943948372355700442828218124217110796583263663841501734845306650960465485648349036025057418241526305455785557104452994728308444042712227530040620593858745621097696916321621060336370080580483214793023851540810945208133456782043264102874748965113233951872933422700115720191228869817823964076931844724038905356724607820240289602400915500183966688492279436083181722260711996145478520336632444205525236915890268523349033456346142142820350131764919176365385052155287342800859761258670894525336312823106290631616686906963112537454068167348165422805108768652682766580859772085494268479252337189496696195652340646579298738127264827252372612110828418138298711616654284080800053812680112990628511583141605441666591215025922302956251117196347779842986345756436107030132870815016258592959058950881113107049827308739542128572722652479469455048629726705704689039936544224619905133970307501718795526169738174017957966063795621368428797934003994587143071298500042351129368548898384700881321255780734014093307677520266892051259754027299272020647204496420247613296224094549217034747829497434134808031648937507792817350716599061411302872859929736076441941057848907691428739346469213441387155768530009460778530430325826267091066064021323943767805894599743847986549237093729933860512941038289868837676890712208382507680431905862246721458126142855580444468796375746450773122862376603122236114215517012041406076451587807872832714305962352839415671168554313546473976587138314435833448481952273462945085730497880048823621283502701471736636173105745784972235181377702866933594593981371335900818358275948024971855796091787594345027850560016884897189543641889607043961805741426291984362996183715000875500950049211410243876767919611063118515259866069634365266157695200024607476109621830284501451637016454078803353873508775344186185623350543759469126064457386397486737661763671196908694950988114001943942045440254356219385908983556624250071338686085185344657856046597563507665523473711448094456501190902933444654611718413696373461358503998807706446179539331838820057112840186342494874870879847474972621108016563210129366436843104123282613118754504328902318690834052716964554371186050381904585924398424759806141085057636111842821822513403750059840762414724566049938112519417677488411054874394354120793255683554106826334369188826459989334590399982328563859157069752507023454331005459525609621374167853689994925831065403558731661900161105832186354072545996387906899405596534971019818319517083391300035600992962181907238699327104429578232154344406579135638153163783828014274727066543291695623177938658000034308469604236737149663638127953843210323979532529204891114845235811490868600260378842027714833045360856257716284500315653483667713233612742446889396024724569119025746237077953320589862762211014352761995558734577733059824343766155072269519732101478659031753450781203720851687372162886953654952458333940645108119692575087209371249001236364382023395431625667576432190535223411353175403596013212332189166976077277567139083063984825785503424711994071378448537747592690001475465874584038029691015867069451992706132832599781771918125736771309894414645801913604754463126501960352550687841766850605638997660796641135868473095650628096464778758247431439152104229874912175125409619263631444026991256545919855367690513641033719856233493082591164087029171415518262110047963034358020762029995662106505475044982053412840731001698282652448831220671498996017898335926191488666954120575334499439162198662675465988566924276797004238673100593522783196028866197529673956068873101971343730689384884409956006890883413543667531840787222810140207560620625735533334376618774958576029904202407240677557057960939803183607793400033005358115304324947376942643377730857735860106156550131001684945617939831880323972159617870285835358668260969994281762933458835952901292283921001608463616753428573860162554080534916454787826871101975779170514687823221388701185953634057997475868210574465149185918420990248963968923759812570466222655153794840328250660619702561258989320101071698077668809751790339561435985409035036057242187712859915796188551766479948474358321201210419214369590224576399125223546569120760896702070989318738996704047029214536394384857133224063753585524320245903219756501662195284080448218276775270090251059167533095969971883346184343334226988011069789521354594541553427516548422018434261362228090271137179229560395773190955658791313406309622537517227380588270138028836738160078761116535613962370322497953278660869778993554277178032680740950328401103248115420831365525502842030858224616181308074600263737818516302851580827745656692135494210244060344523612236977450360602002552902011474549727442156617692578423872191337056256117439672712618298143193075990659772146820424302347770015839592473870943518971063906110384667122433339395118524876589644389235649312710210458828962534306875145654971044576988631090807158238904435729834158408671119953236218544165415271533319603939948572686678678362982055531070207950258555944481782462696419553689719918151424453707845980799232604585972299320467983901826223466956871267689656659822210545390128443051306726682723202599674433330902441388404529563968417231419508950893162313290136923171274475756355470674588897486030453085692227252358052221092553130235427686001422874061235031773610227707148760374191244898734519701247756671886116699083256837490467408588573533936086372593669965729318602865801563989568330266304263384157624560507244560726246308543093714827950109374727518597999806303056231406032046048798422020746004579695631201935022988990593161487623295234659784193655015085681757184082720758234034183307602323918210523871149235912292564493339673676698413916716360831743957159096079952363586568730674532667064390949456232607886532540921351107353050262084205298387367271732484287066479482730866641516536324876767430225905852111546737092821759027146259912291108125573250312137127935797376322585694874153355327047953033949088416835033131880402490979625158303327675041787203524171316297200367908431228002945873537856828568170320899701800617364504729580337448103600143856772902771232356573277746199973325636025513814373047840493877999846877054212447884785308171468549512021362722989337546039991829204313216005869947136807706366550453867450023837655498299874474658508588562061139574732921637341403033921291247134526182852686211409484113037445706339432949739293865473307593222658601811925949600506737238027089333035353902374112682224074397184596254298393957500827334937812966354793950533939294568481812351501300183515131898340805748884262868369733392871437322058777895118347761623926666608491333226349836907479011528110359815723207780794581669988145854917367923798583365710209744195416720946765230502844796146600904558637163191037526311370984502986391313684472572519928069877529642771211913037390067027811520081598472705940202806055917713519443008750738646108594248522842395150256463722979953530689659696232965871120107713927264190808663793812531406282200616435138022228952780737364345791711000541822662059658284064750863232182015572642785961272345634137174426251548765492591075003680752876315875742248317926642754664371815844219069756637442790067641941377281188997625178273363591488158455547344549298825493068742889925117157163213375346881219756558381087995303927121071667672650582117510397135869654955278952071322423175255010737697148601375112585128468194206089540848543127062640044736375779439564322096471685040164544401266697051038614526143398216280790563918119153029521160623210912491959775385430134280287092546439756063737278611889969676295419203091908861245691327595786732431086081219462141718552258881084414809227362060236554720842107670976122400332170783890585174939836557516823872618682606776046690308976434273686905245758834037336037599442472921462262334488392926237407162034252982553502537276552084332338798520932472316374634246773708703388510570999184682894021633010728469866305442874430178156703194540713227824990588800266248726261806956872210703448359200581021955409309411960106218059379178215272270642555880214195261834548614937245316408302150561023458249224506631281444787120966146946712363397897383134637990836916872564838565957725997801096041705736793083276061970832042137776826255372753114686387439900103935478616750482596267465411767558432031606236511789659637263621908155181903724876268132013212795258533705225618645673777765472242427819087045764398555730756254746997556702403684626582119031285470909765177612490591767112855916828767142682242485403049661010503602786130687565487101806793466432761839678550516138926912770277362702559107731119081970251160950407676746821524084056681150170630008203647301434038813066854047987240331668250506047022425800482341354980875638973798847762794880111394906789607149410974593971674167010415214523585626498343377884921368817515681410329477835165769026330908045344870491055363413503275165972026027421503792141316725209078925489751140855096125893059717338936101050582288653568117689093867399651235827090114628302484904438016702303765247623166791254151135055815167557529780636057703220782973858093374538210335592926887107313680981615009954357544514423302653641829972021599185398544083252751340872358572068677504331331960545002600915942621366519081632318606288819994490136675531551560791073797768234384426973738834710507927810596650137267243665032288382902714671654868837457230841261815692051664009237166254766942315643145918255276763925689739338776607561955760663987623431560005592735597315021384499095686813148093743811313625919212176469614798829224364362800543544008084380286469463485073636136463004259065456926055658492621739466432020689131582647266218416962981645678676278520518532451410421750111542071847374762485576987702046627055909357146424824525680886882296065718122688695424519354830552019332298801618250928804110361954342752727140918498010104841898397245824013751128564966301920134499386929436903527405399392964802897929063261581109854160903986341279218733396994305106109875868025615870278474606562692890880776484561990865453450310366654618003992197531986923360141964103117716191578898768457289898850526118553574347010583451549941745923389781200436299346400849069152794659518617250483227419480663465215077562992522094082453969580553392091691172473712472037940271030274994576784114924226935135971805012755460460392742810494023180865204675297181072505770810137695656593486819065415590169672096267537436131317175410062379518191422266744576865564514737182772409536836201184637873871189645383149351623885920332758822770179791453166734478360714492547667265712285421595880792015456745047347795757642838695489097898647155249387896516209774833861178281877140643456245092118954447488990121916832434693372855254597352124626108138972498751531703049490267681127583970284139322814947790894064816532709374117653167119006838565102800341591625097503240762430121554328270859827958153564506399403494670376845841129656142726568498733487556855930346962761881797559120153877240013718764439566070742855535356925964835845444048194192960688254771700422107261431897080245467965208614734540914876736054884179151697207540475155429551196533037688932662677044747016035612462373840689699913079302409780322841440020734202560125231112012541821018673168519077569057528501659287787683412847779076604666791421128982277572128739625083092658307902638582465875650434418756065482263799785194531297431447547774176170929858969195079259578190196662067235344038199949116569730452621628325349296999599051884568792316319008663530772402602569057877725460432892795293922126778805081527222876350462849690508597799984059911542973006264019092489484212322233239937863228057428206491939366259868502599088958022204934288676584384658749296939229196790809252750131338077911496626116927748096455133853692379470149560198994229809573475917806003089872409680343987831424764869751276327231974014317275567128488468892518030196706399570244421897244257349334732673405956732597953587944783874951726592633265278323747378043991530670384282636680734032427974014025847407220105070169738164056708809554337487171536651879483572556217499319959670429852343423273544900891515758703184553302405391521775761821930966787854914833091978628204750020660716731569047672607657653724758203053063534038924450788223286234975952326313716480837000898965795480451895082472729033755929980760379668107845856898614317950474304476802550933517526291244127554436995501583793134028941169486840235975778587439175122042687744443088623718093209115167716617257130338087879605815318746684836125254201833056603795885080157280981583872846587435986486419929158533341864113514595847855670215512640353654987960706400741986422233888568460624316558490094049771520959814623457707671826395898731006864003993811176755671388729213376860767893934744714227449802747595983253707951939842630122538598184547778921553339947268364156873560945248008692383897884033213959369997848025102425211062721108244094523116823129791825766647364877218453695945594789498707195334036158408881347436900041384005524268947356676010192300335218239832668932704605038797881608522761816846252378296178810119026732455746624238174073710316128753828287478376345483452829165029927562077105002094852633717956653768866565729512951357024460580653762215491064526117173196535074325656934633032869664033064665531387321189085782540020879959634006116041616369762307472492541581557728850584351684260394782324314305270163625120350138198025407187111783448036433019061326961572477678401554426418451235805900189746759628166052972167540964000049505898397864668230618050378216119321689327166428039685489168913868426648554473557712224228486034727375194880275514407057597945248272726799199519802190305710327080443355412008033774270521118817158727976038193336810047824301069856269437652007073818432042473841552073577745503927286006496623493359347480616350304600551861601901217761299180761294761102462294335378472495075277588636931856958958228546016063523066375195234060321909112787390531480527120205623519502949719277589824825614677745981608224073357896164625245628675614972356100791910019157600845286050305954606948774775708348125191479680179274872512381944790800618065984478186447893791197261505702693258749032813655165756709862380561561929749019105729421989328432682562058157572935938918777399390179043766899750252092896062081881592042023534101967291237522515623238942007484726591377278410270421970918288055124745154951139650190201899185018739480470018383472113709048257244164529880372709446953864573654474762809255765747862387334272818881020276717836988283713957470812686435038974931296828383829395506021849395097183319314113469547059034394508232488992044534098217595638088218104448505973100937701044494257258460634678375922947980654267197907124524594206601688198029695402328374299291208051034984835001466925804422816072845899957836816605968486913819447374006263341527779821432883084120413721447503550263947868336393447968371279687041440483116200847579070885158080572792140496870770527561259020931521452743401087230991260541601729874654184469017512190795654512530454872699225868032414613307567381629457119966520689847702743651969715252354867972402628719218502771016301771816777659954258261175786105793812122505558269276620657857516835847826657249269938624090973841979925135603141475654339476955195997926772538814671460180471292531937478695986038220434405572282551445064196789148932458283608856065062267875674188850355883343929435521246290701105019435449399020431207372955198192597056725297078828930671004618533567575518908248128155881675155986825073913206387843663953106907734321592814241409959305797403488991857183301166114870513981386164124286779550025924157025721425318874634195068522718861565494445611283407374213498258875626947048037557024354033725060106340458260929779431439517257012994154494543389724462494566359980554905982248773139032012226769489155593791369650485395044821678945453330373868645705952268105829507530511973225428539761935472608883696904834271775446123777389792478891814712351380980385479166677712978505915316408578696570757628285288187957790074478802665196837966419936554616744306981190371684556631504912522945016666788192865805696637164617515126504261169986765841151190650469853666218506990863456420830089266331478144015223268250158567363615055074897814869746986195016824339943696593209612081725464173252218261022469366606386144082674269538738686406659574043633297646769388796726889106845375321745538220914446732319629617889573697028709079066813878597711101646498479069172781267896701601724743263298691777305207493325711539343329998302759309216889650887761148882587968878792252888849827582805359478609762043188541139150206462046444245869214293742098883789276904990340460142389635310350898311224554507591797623662974127624529367056018787377957318735603768066724758469112925337415822522044658146001796579127617991179022545739442492098460690192641594404548912213404614592075714447802029899153449194752768856370702869664268710652034934311574140402241199042770788005351542003294601647596317316658599568548931290802105339424350631585094829870846374622058300833041529104949188795984073307235371330816248319483921587527336153895689148651823230345335738345070181875439121214384399190697372325284217077735543118414284230656130299447172513710080844831387111841197777447877769199823396298208329733693089005671983019633502220718794904189603905104794096038165352287603800793530520473616740672173746563271099016435930533692758829253616293552941165785336979603364245774288366443920142582300787226042333559508986545833795735992881758257789304220380023697814539119468732900884699126123166123541853918699391772005543431682883024408357736489437915059583940466272610271128163330636820086674802113740243736585009370028586210327152290439014088995733688208626554433862611192599547702442158657000009500370315107049425093177639164071550903769783204004138753753964465338806175462352227831739981270847018116638239253105086592986907547147126768186749797175521962511690443737433964562972172191196542245757973283991091658259969818368367929059500004097907046473823229232866721872976047759831371421614098981027757285791254867287828354025286277909266110348748316343896938892936593352884503496885762907713825034866046315209384913818859606753974491145044354961406627752507891439180414471405263092219700635047413528549250830776837329055434626008020304498919412319398541707636414147041110559321026898715655280682721672480600425181425609247609280636834611674379085186897960415404953971326634484802620350873165895425194505198997806064605366793289003371521375395225440587458517521984525370755945824256465180539676247252678053325370238483939317141943037437203895805012731364276398187012932230680357830519083313363250465191168141137965468009397003502180840115573426126827045464623883494168680091196291915245020162189580702742536707582202599081997986790452821713522649986026289341628801626313444242307356000673567295200742251550506959757756833598392558459737758203156735996364440305781770689479581572000761558373429512935140606126673952715356254311490950965220790269401447339323960766796823458148887427682158146435407398821665991173973743798229559469926074969758679918637055073268904944590885011755617985408060592354465181473319923336664383222622387417791694214085156053127985229542310122368495848923306721657838141387173861628191279728014810878279037770863888422687112116641998947894122424976418946142846148732590813420175483253714728605122614268376137808604070557831343827319689675692212973179802262724490486981988926170707374477906363314767413048157065112586514456796428720477684600006457242970949997072387244621938347341725454209791832389933129496210756255495896260006622004625762775625270587831768907587096372926322361354196390008960860844744678953961469214182312342246624023372543969743442758689557917608864202870282041794663675274523029282341765473836405172958702038925578242630417586050310887007212411970215100851037870128995932584479495136487537942434120328676432098274375173379484806748189102947096782941852240848069064417596458835671475195524272353368288788197382536546523468688361242363181457856056476823998714594536824075765314992871486159367517707028970867068296153600346765713402644572556599970152102137280769296368589842950922254411856704428673075261132389323989979144292204099081327931062217886362144348749342538222571175510539653957082085455672366850414685970603368091313042687522008965108167600096782671945773544848933183196889704589521942080176808591351063659705552869102988396654203704685502296672655636215857395715443214947983141019695620789369178304138731465696976401453887845503868812129542543721528591919139743451587378492281308496839153966424234412257879257074941507240091154596602299228828354234559028332527115699300358473435677604147664589864692534441506258464344520265393175555553206348567728583131205977294080479454617184807657032415927284697461509554445980544797147768183860614719647176777839800608823122092328068081600998587882824159890846997397982220277979575649082982861739985348736648826010453088848157111087878972314185558425473089974241775681362833668253338072834838360958640048305920034657022893158185734114846664309297322594006453992414534707576617900857598986183164310087168730873276966846738521930597395540295512717755496582982974527294987441000972239836129211705032074878478626057282957478506251054793654212900202849135200007020472287441288554382375778530854724277208076630470669470374319355771823653161524918621649650868625212543460503266103815853432782701124688745502038938807315249403531193577940252199185085435773121397680081996501853826351053769206601821147922616791789312728456003438218438949290804161722085327029162397394881975608626805663079996728094644653657670857455558071031701564454055682053515522091638530144701057422887295514147652303409743964507059845482392015980686860095996732621009701352295918840084608694711898462920879989758537480378858955420276336447454589542671890119007582199472574902256828994962828701209795524837532572293099896236857816997574252423065838424776858195268388853316622988755966922663511219927907600740816270943236680501458597235232796934555718223577261936807449038110464954422202714818140704019689045877126536823511462246520907752846186358091344161590137599197352193830847354117404944338382164633058999754924992330112682966538378038891581477237881766415253595768021867389538573595835630273431215821688146523647250218837998093487801223220419673874645792661588175181540375966666353470028884050311397268418438543147129693303606656466352973938472366591294488316315658015194007502170169298686953480896042954596287516219460159412257587311701537328055449461507470006108637218419520901851985847840014680305259694416374877664750154902833421182777554706371454187410436197997871176354870929454546154764372944916853328195963740371304129063212914625968176084470487662646331770299122625877320431090958293216289681077254257217333492455191597334563113828929039536284983169571295231378214968904129279861815548146184807056658233783158347978561856912408597993680855984629834658493334922567811979015095172044610826600202183167805041429130121482103794339181677388818181278418755700803039516417827999992038165002241019143398792058969710082793528334043356800971410907977817372844285488711149375733699376885822639612300180160892986256191945380074987718548930991331840751373362246906000744633319231173546224473307373019012020322242640787485343745056559808666746207501200100203593230208549345818213767333612877784054298634366055958747796773685145220451489553725105695003488738924395926828201239163728365734904163212827294238737560677314123567565338088226196595172467933500385441358294853373289495496820111355562465270337562243187864715297783295379394072852188457711056435144600449199833140358414122148678351386816879997300456836299252191246058786795528279349980705239266128538826437057825162869770783907603250264268539057071652297422198534565321606445594555921125938648948678702061310385832272523513516068360289727316830413218534080508352253755325473161152661741564231160807357320126948911299751135330315970898121988947613007702477408239138402041595353423432874487994560853307830371032031080471661393582166907375824071699457618210590137558657853104219058273502254252906106306980781126080173128245525048122192080180722933162883823662022940749976199565267090167679953946642886557886360339200921533286401392806240587718330350270485512357032163489294096484421836702949540056895094176922844946967484402264014443284617133293276185330886407380966088530583504647859489658769521241918906769681130408101863646475315892537485313791919039825346863976913695644009720620390923404135133370801465626109826454340353205939589166333781248316501938059785061987613245395824945628428301434536831153273615413778386055511228748960629838747303801733456854773603267793687618675938273724064372187590602407953694604119652463199453362647115648252952066109389664251441528634987801925577384657852294279020707385172362517303661893163537396433906381349937800344299355582072861238951736096980853233476583430572670774427972506484599881127703546447671623701148457270225206052966376254077547990166813804013618669041115831472287587489040954456207125776707158180362528656403600187341433762621744736491003381157482266315769245925965332749442161271694335467787840067941970160783660483950117545408691202748376593237998534281781520493744819552282012856380344078898452389679453943911463265685637114963402704508232610530021931513378127541277416153823584884579106345967423219639103924026343247907868431676866639904376798287157575061386559917599964438662930341436951466923837990327747639146158192903403789646990815249417820929923334538348648228421273579383922198962137710454658906071820722374452049395782107147513298994598778272882150540797725139200547640356877310549249531762225071719977399970968174466586425613627373075422517396997334217272624319003162145826477377758144120675629197750154625399758587841564131957782531324111259560470602184429707321052485986745382761590190921005178270031836019660184427393512490457405071618034446045794047356824416418288309228866272275753808819956948794469363433606252065515941696997383109551125263021668297213291864658508108844194843327071380881965145541441421070278071625678293393466796896121266264634474101765498560532974740212213126796993138132114216845134675680668578292774010049436769807848247558564369050549846095134341160111033183454483160932772592991347873403528857132269889470389271545919140216993491497832207331460846747253396117746939190477483915309657607336392442310065758119388831050065910574302236077097169264093391474078071593510812960730802156288106636218156272948121168906666272812455540214366338387728407473251325097690932151366053716792617220664633424563562641250271669869012104162266428390232804413640585378589273973467354264332052613743460979505945846910511635572196660036528363549835867047774887859894340185995924029324184426009462941775713522943843209228367578643263741362695858943751643958957424489059665319766220096798395402745624858227141102943585577100722219582506403459838566532702832754825695380861670480487379515770859678315183662407464153828722005332538403945775388423594067956315232549198109451168368616049382464923457139279524362313730654132479097952931547365094199321310187172674769370418878970691326979566906183127503605238991923856873411633103767990746757793082874499016719482858829002442504766250820059223641974614643388943169240992913109364367850180453085868321318814450472108795228642001804537504915246114307730027226159130016171656627443503969123928436805395414876839341193462537939896510846255817062856295980672674549711995873226610518196360972321962173150190179925368794007556731068276172450173790854450864463228956159241375536482381848747056131874683493321287667490153063526947405911720509583179615537872206081785637026129049128685894315642935373317800124625556793040441196833944605881787118472843087282174335126122948500039844203836970098523391512551569842528691035752339742322458300383603684666985918742346068743380262199247930728965328296861629633959256071277737675464391829530934213640744053372032729410634449847828785445899735783450838767728217933411653698838767668414002665276354613898235200881052776382380780611958359744134728329259415777354950974132274089850854884972075963158050273106806129853376827769120811875220544768198005362974481571630631056312860638420361004443384210718786670142441868578568046223875773323478275076180645906653934483522750935845897985749366813658888299177449762788680077486500981561702500148411295298386568672615047478043958291629116828018271596949610754305620404277599356217870518917693447263072873273728186991500183719413752918907718893917696824082092518469292815633513180795763974421710258114393985433495515612745424967965000436423352220750524050363854147121271184339732938018911862268220989096921420133768618481318038939955352402704251603253788399659313597489495752265090488525891959115478607168779631319984515180249798929350339029025772636104469352898606046138258587604132471898344350980649077092343682096388385237290413359573047002727343705793399767601230012141927381090627471432381828767427371178804101058138939411666193732916517447442384863989314757578974580383364114289117516246080239441185312405110436408430711469633717206026683675862682719194299617460644904941072075910351518335331954393977296538009599320728088085324328193652028687315874955446293468275110197812210398893073202017444948054895018950525709816489707726496110767824968588080212860420568363876770183565901945950055357066396131114718228644589028836843385754705148236761177890372860772676034754442499282128963631384897586146414925997283503157590027101690215427497976354460681991690300798366356276893725675753181957580479036654004020605928994974469211721075170557712424205656133530794974348810343576351000594777548887993714368672938917142356712515264945059629463909378151475756352375581030292127527286467310185123478804339773295088379165267433866674425901030955700850835159054306025757735970958505563856901569679599320569315560968073713936616621019124555330434605852693109750592939580202047876711786364430959781817861588296183473690601299196947448822479665280043358382505255676801981624907222308949408825811804743679927370880894374228528454887985926321355365763115375775883895552305585202513346952875511757442327851796628821874269577779860170050768310330733181215084783203324835216417714108986011288303104971053774653127162000473059917864138844737917533538007875067971395421155330859220877428797660932393333197505797308365888195824378220144923947316012772652304105680850664489457339138245041861277070218682868797263663705381728455448050323192973596645641200783530929338885113007562804581267808800173515845840451251675289162578851610214985477447582765794692941462870079796303497869866404093980391823392765490594191768931849390084218718009684313126264454423557728330593737394807887845312070012757850373592836886781612908493348979602240530591402986944825284093879856244796569231080226285751777173536396552515478220458052217076119216341229651384290173303937395125259608357124856827575205999070641910242949124808070985104230044946459764610970863859085104510469677148038447670887349765166686361785039527189786188572007110448950235695352501429705725472100144922153498296523109033879627170064647317546373360178659489033393916582598611929122424537101278656197392301528532994102278265049669828170263272021604722787563633407505785203452829144427127771048931420098175859551432287477442451750696358099409917567578888053101218654852039850682866062813421751145072385404081031672696544921542470321606483747173209207279094959409954801415369817830587409828290539881750364082121356092112357519333124935717084715515720833071934285248450195255844926491052528150428051941361935322660083570049249320082037754362331078608691741460626659657223865010075098087110230031671831306174098829396219329454559510168939955960481999970247561396943116835635737088607521585198418839776530765800877731611942230846923056889103902042802555509115268174467153864855224249660886435650246981228271331228185351272826445144147797165764037237922660004588854343408843488926279470122269454892526444999432989455443983651608601043583183149888176922019660585112252059395027235880115005005244304620262170484837642236890609317479605489018050619030537571704115726968945306880746054772576018285463260143691237384140556593506767600704933384274165279657985637655880612472815630650047829100716702184260241065599474982295738367453174972841222450585445416817335692820731672948956310974195437052911520874608508003525626939484259337729192864647699729738364377429202300500240409085653684401952791785326549441543686785241445985351697376749653325238920318749452891717950060581580842417390840389291458999125519053639697746429130839052501316681068055105923273447924095023488637421251435170263338911198940148638078268021794600314212638786684105391374212684958526047660186599443519195890149542352623543681896552663349256105521399429996972691474771627381462714654801941896136559864657044065700787870295186707502217453750746527806602346801688429430351749781261694356290180273353698110347536132720691295547703313230375858991854967314238250039225351333982257002889120126384798857862796873160184778796616595712506804551020057447038813317878189266697343096337637119958934824489692896611683876397087920621781612188625134842370829567126702473469947199612674941121255324808108169498436043379749406503125716720469752249952061088866379253541003600234092648284286580972314886304178357271266420434578027513973837787694554910554649175684625750990366392392824729972997657445100115330467392816647558534024557567094989346555256016871042779627218201984392165376349713293114915897595839101600915269000068806392502793829904647601881197983895718395684838231427593960967299025573470271910833507480072804100764248076061047571722030527847974546652807279400453025938803545109720042398036140249065750486566434302290089495573415967195760262502084734384989141760233507617623852834447239165193084903643710214704796528752778287142075748988278957684985389808188609009259848248554865638916699986555916413963119780196182765826069637740426179237137916385550774012075184487961996726934545067500862777119698783361091183171469229791774972124947508810425281909597816957968940294698083575278089988919492789773051298147047804988220897481345856745341414033330969416385788295381007978665763673401472986686107753418156683455394925996583367456167448896645111636468187479351058252113154054170077813382752700031808705987152354177694651445925447955875942701768694480614281315126834863672532508205366496115357482222798380095324727112446679127699476666520875002471603551699523637063034252094093304284053302966780738633416827427530610562857855958636964552926613991596380568567455871822346101824063956011322816628243676186056490768076388869743915061972978781107251368681893597225298973187217069550333556331246405441006704001222545586664947283264420081094529170274451855033402789832599797553323250617853463179599537403015990034746329234583864511452470268440743401828845573058799139586779457347661596302738225247505723050697769414025904396159738868294292375487253144933023212598885692340367180537998610989666146461648491325892177147516386449743148839538346388576423390578846705419981971970087075355847268105099806761338096926272297269549153340431935579738943086767471971769750933655482218892874259539823204512899120390515943389967097076839226583770128365675363313455917951527814889730284270402093397074149955940959707034466688273255248285403120392081938158069567953030315961100100376893137591273294584424398677873149530769378322114256867248878458516866305094315195227240086505676527932000991839665384138596693653116567210739688040548735492569828810581412881814230067229751222424371503960036140454266915324100165332967567822313076252068716842999216777851177825833740528597328403895434744378113115255567451638829507557145506044683231224055124387882282809376845673203794510568773262400972941014575988197320260648539140657077505234845483073187055518265164922273861713364208273315559894696578976388793286963320885128611104895463404226152845537128618176013826994259437903746374626228236198527004495214425017704181647203760228957469375492320319396967351925046009864567022194844192292392492644796846649515309920301329661003793075784712615180955527961074031816699169124380788852783694872889207753045401457247641739079451072356912650861692040208378555243403348718502615777262229751406673792932358457092737299068340606184458002581375724782843890485323970118958642303734692652818959730693953568350014080528404747912855548126936091472472103011466114205312159508149611924528835309782618483349231605376085428768986750106813294082064456417766868856517438134819185800376343898709888652708118378979727633710215461134832115822221279644824482848712637935178430115733320608780255428165275057180695931942076796138654010874521115345484539541273382945193620061150369931691370051611771388757532096198373748976211078737444624029009505337726080259904405851778431210195683370111853248179577843326485794873003309255422910942315957528038603279874760255446629707752031836290178214702540487807081010003523099637818650073118428645112685757483510007574335558188850077670353467382786747168983673551186132834888814033491246204274909263342037936573862875129727106802685741475647723178166983939070137500467272975827866606130365236522489265498987615582905012026261018415355250739159611624931497674247636601772491673653006061747356836249667278820153293394565752436379326944134067235730340791060232325905043202574121873708312296480278110750171662657825896722336840490034001398568272915831385122797476087750455031084177214299650229107612154621033379221687380101420419415880767426640613934676200717571675607932446178523757590648202470570877738517578576980227215751723801325982986569131365023974333333606221285719171000468011538447368164479897648575332922471826826314030133429105202810450705528486569495965311415064968590938066288912406449654974973804927141211023596706245106046484369519537469380049660692498502807802216949301958066131828970910388072866269967742152816986359413400268492004758080946975490024794250292784820026702253391844954678465542798092981953092988446888413320728985068534855670063750143318409201715412463628593972717274769042106302749622735384852347106740567502146241202767868790558833423057511011901628914588887577521995385256482174585155076761048633466744853444689246553078469018022304661630966787129060395528563666463712062358982612690488066949091344793131101297371319928954710698066776632315304730849538725920346148860176803025511885084513269196463573947519804681100277746993842695866579403558689148028365567301500063948309262056592288300726524277252128063788331807319168352323549146145319035295440267549384741492984588666354549195579156504780887184901972819149107941349803380942211639474015174359987002213897730844451688409486028144507443313308480581690471269453448903895620204378339166542663512795313275326767542492253175120595770386727197096619546764166171105146848906584443119701072740625225419770847721854214870596962613540222274656617350882369779548422241038477986400386703940887550040100060171940523027510298143392241408626720176155296602149689868435559428194943645181121723052289652136064821263876845512036003095187047504560537870289102774432492078687041352508791408570135516613425344382893973261141700705154517831078015407776715754356304246168309931516534546097764392464752939149379307571248141467399327164860605849205260795335227260620490019145276968392657998664594718158945949562833526754084192615209083873188022443971229328827724935765492091846001177964392178256880930808137529616418785890858856416656087278747511561561210520402359708732128816212345513603669796971655507295492690895689820475852769848232743858008057791160693503561163767408252050448772560652861904124507541042063731216781416921408357268357305093240067453999500620553376515540585809181282557755975836640097326469338733753815859441191923387899535070301613431577233136377543854057519066312055655411493024059127581977266140962534096503347983996160483842135205411318897950468916290164526080196582256168718959346110482065878100042419142459141751920827717238952413481173756628955697785346935156103516325103315287733512660341509156673827102413675288288820208136351578121581691994330896149805663507722106890177211214379622248255397024172000311748431214187439479024235361893270375061797227612115013274673638127025830443034021575405903370139609340599045440640701814333633898369247373761190190009202865288413846588512755483491486901601615348276760678588503026315684480081976766348933798265537772360921635846670296881458467744072996682661545639182427672896462149881673843790294400069827563213770840012412070422367926572526313929304121537143223694160903120933725864448336013851166128744458210617196089852542848506741133733657922077234857541429733579520762072912772298196227023523662672388192699443754973650455158020774262015185878410925233212725013478986928178056590477470138915462189529750386646585022045589649978234093941419435502040821065677503902048360286694459701240877750404146973563136899966837694720866254845032392449795075097745264056450642396495848885038320352360247056396796681212148215376705524426089283015385461332544960246728854920291235555613708602151827057132997027561449651802760962710204763918024993840044500290967277529866827059575709049101029884373338528389940152565978336553486247249927645247339947475869501420004776333690035269865298164685719583559377909486512354769535294205975397370940602094331248321398285797847876733236037703375716311687259988277599108983394584342218873001519669183766173463279094286231665658312426008073965422976408387510675637092855375472233095101873902403161250127206245503194264711666388774023882465937909905623665238874316773961657896142245816853316462276250080339982863963756425861083547623125860501395063200522094435727671141502534450351209738169785313874013203957435911302994692755485259639473326744633271485328242880979478568160022834016389524897194039652852596583378469150511497462686454885191951478806329499009992159066728592181840315897743335081349746037477477270134924106419834060030466846706941410833601124199830750173000670329993735825416354617668306083863998334157567436254250122644174040398416322698779346963396478887801271186260520325602887080687026885035011798372087801456833937049241148485707342375654834998844707794092982055093236366899591457492289870553572834857293639384462678569931929043537586348340129299094704317230903031334524470695910532368381925195285779017597595574408446318624824716722017666570114189668691529269634777375099467778924192536501938865550866685625949675131714784262993978446566444352409827252767240717269358319330628107448453322028039350392096021570192855251721053759043738782479425757007142816990543306815591959626668087056267072997382736546672200399828613479349353223599793537537128164182489498781410317987183210864031744787079897829740529451697748896684704905588128455050196530524171715042220412130653113056039208208512375143239083676985308810892410498829378331321697116426717946579174548105875800818330023960507353626641536742460803360242521364310777966326727751912632059353774226034889462732800015908648599777012047537208100325916196766014630513595333879748358465579065434204062664399264709425695558788450534910814267708748732185079977062261919876715760491367877918377684938817090933606974453659727205290381459736726394531415380674134207043647323428639908314706780378626815065360184182693982849886931454053252400273149287424748856272212420336326442767326446948445301584245093599556894177196733078675872913904010839314065916476042829645860110844094650519840570765446682039989411364602705561939617178884683498306253796451931968648271660786174195280767923237868395988941484513127318198504257421315723356678392083419421672505831462429872605475444693047718881501020282280622633114894723493836720955736238329922020913452613021786946166759097916296724027919838489993357978007372144559083515747683738736205283810349732120433454637576874169056620862890229105877203990069433501044237880547107007421074719734004719162787760826719194904957859102465893050254646371396692183790953034161994949653998615055659134532254754708720269741389834015534750511066251541535225072486782808887156999440504872522075263774382267778333675633400503965077200481993837734926850541680245974514721298379661959455420207952582374353924845076438651826078704261117529294161061627573260086974950826256298825908772155257153384145060598141199199293453156406557286371201756370216412337968566995660014941184425574354429786934227883124431154742065378380089681146658664730489185086828935765503342570936456712424421423910318193626029990730684212162838098469950098252920786676169308272837188486454289822736209784662960492533458625610166630234424276614612727644077291585004314365323748899747036461209763048892168543859847323400930792740806892578118547157667863163321373832440679096589669190869406766807665964499572244029690836891629250818777988551996177448947661720251200663862669053493584722198749378624605704726720744273206227013211313293441968602443108182411467933003463450057946311485031163799027655736956986548090718282478561225460226027411739047754033948177907678633224159501098558966876502285276404065273448028151944896132885483883642026232424836927294446295590287663515031385881212257003151700184307877206275066964677413742373963064874014500253925918848354895335293503702352442040225205478516037280457555131550295963356226825238081390549275745396111430184759789150702969504915579896898197094976107726638781608406502359018411803390397217347434655266757706645697828984844771078855118287837094343279690985232719493447941411558278576221350068263115095113091043637809606175702106470598258447661579767028848474728087016798623970800550288149897370571206343722627765689688565884010710385038043998185827065374763709148886741210143406325477683788292605211699101109735156930337562456098993467728732987500794337526172840510519008326583851729217965234799993456688908261243114224619699131891137905686992597404857221338612893833447815334220626686446731936058191126335133926034070607833184267636663519292143221351839530023728519214115765033144429969726243642006558464858739312195313764691319342830082315920837728748952237659937780920080177276363093437319550997757288268329588773980680884571523714801510177727254349633351455893556120914662577743851032348813640106020892456934692756803851444180132802432340205198455551555747769560554384088655305195600588389498158971796949102465432788297874486583243326787479032187530264162046600123028732107463986318055881820483380218592357970988350805622494762693652618388915044987951509335431957241224547935498948987080011552799671062918216244439794612511962085432224886537928477487749996179533621491927864010301718433460359075022852210175632315976260167822105276826551877309130301723807778453159752782428626568224304667033042759210051463732363893687451421516812791109727749129858771881556038226255120148188674255444563377511920119864991597536553692037254579687859153953440314706424621594514210972710368826855065452521677177996297181606339327332034790716570889212166573339393156272577069111875646390344563525622367544277361867395882855992545148088841881564666178370669006099772793095285336636224215755192060396978781450920352792757819936467660510860543064835457344473024936757691444338859667078537197349378929956034642049635059069821741632234536090289228646073829363684698580817103537262888449105917280114337606908014636468054123986408423110902649872300738801828652066325171764850927616820625552742007400597724318166953336734782556865602659301421129720919727676042061530905236327638847228086695163964609337992378293807580909071769461628380639696847175534253320331010776223308486763188842924353233833196941464408002680642764395035371262634562268839660751455712951118798699914967118271845883517388743812858756943454955010766705684111833649919191651428644713161849512500724108176951053495855150250957017694022808742888314427227436990335840267492772797028587235514460480857422965618754386647121287442246753948888804260063308401604642190153188482151621171947825974440170637997351996277568265200248443480051112484341933899954654219090446291047952029194227047897500138520467221699328387779164498991770443615245144417004834631426878915676596349442969450491441265035944974588650645007961937804219602458472408454964638050493915781989529692494263808351605694197223858802734529596910237222286838300504625733126787473650777688228355355523606038237443812150543060389991136503140628643378747549385431958091368211272075687233066443844027424004660065901406100556650344154057064970764446944041422894655031163188603169118453965322084153167496210768973271986332681346836061843122194749802656191710232598989518018768369075294270679681356067756261913864842843975842281115762388204169748216654832464584201240574784738682241630010141504379948730518515350332650019644927061905561768455325185699718994368633539781596894579794415373394531295657997785633145548358270649062504911970489479729732268821054215940090406511557635481469871691211633380819803344445913358240602642780547171779483418418975733900526668972944103501900547448639112830719852203773525089162561852731908180160311655998241857360890166238329302969246767294413557171457437848496776565681271819657326701973712746025154188713176937203828920873773374729762349090541481659253073971089103276295380998740044341797542588309356620662531122671892028197917673916903735016414942296059366045840027674111923628923840594867142480136419957615823279420998406761622125267946931455419731978931260491948025896251828657746005731374297812415220249370636238582896985341688855047389665811301850447922477462276147803030670213163595043801599905856913919608469816101800127500097034994319415817255914508267455300009073810750737843909877679149192109020212022811262800148122215431279037646711008574773888990561205534801409691235185774102914776559738378439683299054680475309919913475408916006532090510013160498511332530855580064438118235070879636488091292820609023856553164168660394071710090625233784212598611275653156700179023174155619358502871357450619157808247884074382272924552081279606763610365575352873768203777881221137034171411168506568045378164539664337959248568537925191068014962626407371833812651288133437352822382587727074729866904265754259756552742716176889403644874711384974427067656960940893356981826106485557196658784917937485683783908848698746787709588635686791320440510358849789245425565849618887355766051895015703229284275909240964019167784802056066038862647121598137620005032595670875179576938206576463987287263150785129260197234160929683863946096380174055874881963929544660801069098739089422792788813710850263025695320990855799779512548674146829727137794547743874541336642267526391243920737442448294647638288989350103322616276423833391382010327896110311443133807872408901544495662935820860180787074143752814894623232083918942926588094997306592945485677147190217066899189651635030185915350550051737282533356939965289136331239486316716494319346882025963340554002724290877528309003915597164864296015635716259197955526931852043784312677530723430068133671424506536573669347853781028541373948823953625288333920049417089136064136134068166544174048485619852047094048526664285849000505023905411624452938034522818400992444429291602582394172705892232864697389877372509473310433079754832854241392819867326866632527639146991371951099893202291728188622526249561010117464180434188602770936587530771361319305837033805472289972889276586611657462909790828203655852164512856233720440744241631939315484411801324041555995251056537527407340557395501353986491923455473526202802076389994315422684315349670907194139436548374138739694420452824232266397664557762436691789265661587442362043938234011859118376893316966404006584623244700622893404310458711320160103263238057326935089172598056321160394815031528562511036209098775462686613900739623301238708442438169029473200232628672359881756631797877542070453208157402271900772929590642253777965852065442572979778400691002071064581339086467666114360284730020452473250763410996715315157784537208755360095012900724057318780663824753389809163594874830614235800916787406910626000007631383037589276501427768408271805362381967362292966358653020520189494741808057883959162654844351491110689895308765286255697132224519325905616134085821902126482989042676680191816572638236299683916514135960624054992358147765359399219139520838249810130609397416717992997852011296976507475083314518444783251160689580635048086448315024929376915955599580894620801126169097049135391022309789795681239653248393313760731591560394350668726345099372193795025194110263232801249663350230148154713952234454557189152221326201102970504824105051414068403718172207643280346049282165260668925362567647876905772013725321025391594221273319083796332368469624573910071878377803488071434374306551254179545137828320276907800876013785923680136032990390657447483169451525421767303656063812051577943327649031070069839592467015578442405615036036692426298864214160404411736046277282717041946363750055791774138339853938028571662535484273632101951544721137670537514506511408655296869247065828156850156049594489316808320932189027146787347992796069356311909472376210674481838205856337166282366916739320467062554370860819502956466336107870505367266886382977615956592035515679338651010938502078342524074715434549561221579097248459370284068250628758710106773154457619690717941455324859573532220655283082123885692374304991838739863282320127146301535530618498001537708571758626345373936426466686312655528722061121815999810340262813171384256367549654561506425802421200759130285126033495637441509238162318313528611046880194338117153593453440182130147074737355935419797494364891259664305941718687942657898735457035872071295075180062749070410622297674362109698784213810000676988672223555323202699906016577072854935327508005097043531466643933216622558317014604422896576732254418493552078424219404435184861002151176508896993962151590052498228821329626216781126430922673460282159025282966977935924556159691062773229257042033274877379746315276020605044943163974476746194782428049819728754737950342831743764535049818232368204003948378043277825194427340341598756562953082101198306691618837693422336946004353468153337982503458853890508956862403097616797347113739461512547843921805713401881216708265086467504560257130552447893533694266586960279454325624620613133297074327540042743050650892307643335706780029226706276728957493856345713331011017242353564404253970826269006282334606789628151339136239990294885814708438602513297956250538444655997131593236756696688979862193095559070792251807140834493084421912412680393260656996400350283853213034340973169210719402734803973571069043320339562177182249202551261932394621038488801661461809618618798154670795158276786268521704404365394204822075711512276241952733354431410879451884651011090029244934010695293275016250291791646192872208965459866813563668992848016173334928324058855321374405079750584021344719905042816336841321226538823950675380321694830804382441403912372774028022466301342642318326484564074031624057112114582347645440596643725378159989284369186649494010528710842814549782775009232572846464747894323837785716094716476542835926858504778113871062245014792512094576694906246839344228897607004033798190682361869195938137393234405438319416097486158389411622891271971332951480711720032590788858360108963249130667705531141953168012253709655393090300469209463587468604029377652029371121873804459002289842758634459147329082720269666931976732212026384343484254948338218963006038375598847511848860342142735327321235975823628896830551829306046019259238151071687905162470165468577156221246436953499025063367903861244102425839165488721220380026315173349899511462609362852800611839437716221929738431199166810261580288138936796082152982312593645597334810902569611055718956862139650184463610088444353467039814774999640879036774965552906474658225142666534670420510583397821751826918096674713749315873378050223088232484873453722603038527942783459962742987619840508557621286167116237033976572754827659622306629916916463280171117616995872844248412135749909320562044723719830881878326264014059295164342960992115399819506965912902090002841156222516302260958193859119305626061305323336713914798500790613754585776213279897344565462081805562447617672263715381197804467710552233243110647410474706727829011042473970410740863286052786488098630936061647528950879524922306994587994038464182229217334897389397932951668446683691485678559039929700392799814058317911341043249148020038042844427800230816175891218099408671728403432051503165690221466826310707096714880039729756261272483731112062814605229095185367594375164271191122618623062089276971680544966921906706405139508939655838614018889374926763687464962861086685322430990929589086703265894953445246915715848341460300413015715380818900140488190026259079967044506156872164996325162124205498010966511810469325298104994060665732747200864857144156388267539483927761705138657420672066337206924340624347037768954924642299762167633435511827873425854047452929058663254532820350936444943722537566753956750496423582618252729212089434414394524706755989991917865943613228768910079188227707747465761521414421984799833293133813987500338017402055633194143492389620352130713756643895737984393816064170049595179137562092917282222197328461781760614698961480586774654774093012913053132585275422534848495652213469658409529194868213780304438303528079741955054413998478785327045410238678279470822442618823518570378529631388463399854981288690626173411875724661165806475639773966105717282327820008750927228556250895288771070924585129817648910972288064351687061589577789339833311799752825056980715803532152899165647178500882827550211289893712938188125590326679399405869688472250570260550159239288148892008797333470024108452124500422213924786848209445133480611741773770993648661214780031445969554873147087489749848714286225084508404302462045931520486269186465969838764818980784642849557158937166398095139633516012492817922216823158852275731667553059797173668033379343621161675232614339372574199607957906203073968066328250204312219171804198241051427902468928015405749444154461854153316097592613061678764709446154066020779527736873097160525851696769979294801854322058348193841861026080680501281426279750663435540901634065420134537470668066463147783367064897504621235982948111622065092129561274964162613785942330168251847376867849083077423232124594801505716528815469227786039810935687267708330765369513645966537284631643409268413735796582641032324107829993760588656569865852337628893415856823641300681378176822548548455792660368048550578970257009368185595847405452885675906783459981839575695840563034304378218719639384337930911650499413137699120004931714348111522650003354168885371406620013085788320111603105532005612208828045063138469386388413800919448310995765095993453500847926930931104704687176085000752948124178834257666460144427143115074118699241341964688643907795271755280412981612065241454660258772858572404377847750678928870292830415576487712110478031308439931513388528752371016703888988544461006898928134161958637247266852509870882225853833735534174829212198167254512300335555509782098029690082703470061350685645075264492766717009973832466360707263216791559053215080822097278280196953163424748091241541147372904113115552543407986290559665298325139901344517860562039257536401126825554006539064738087274756942812355352299062402885488750705923779414181673783886731640820688577900930351075888965392243788359773392104083713405136411161226664203310651240435707532185748701113154416372753583901305712954367916275244291830130836736587795320388827188160557294180134105163011051238139835838546744595027851663037366884752623499761211081115525757621563851347380550844915517353297683780898487455495849867079497843798869128286998016615817481283679881202889731970264144823784885332528477825070744000319167091999602451367046504271154966157549407751400713168583284356363692968422836897621226660756545270277561230642716868779163553018399329953793079386035575522886495605138560741952244277927894731943060813864482155899526470492437502597129464940384156290880148137126466563953822199654226375732339630374122372453431829609042832766352406099938530873292156652690102676681455472181132229131543628367637736364738125201647240326070895553053457845430476296876819100276148190173698582828559909164972826972460880236125975473213737868013787508946154781498538204198075346600420163341139237482860934080613332249932526267047595433870967871263514327120750877675158299855396546274114515019905161813012904834232603878604003676747333166388614807676079360622664166763107173051351972604719846243445387248953473144115902789342251411432298970160255701984827535776434490026551706861952154990435463591160245961345035822829204657982441238475782131494857101769799079797927896156111381491262950705509041922549872110744800484673287951205270676197237845811358404230020879693495510014996227467513052312030556642214570490032056458106817015680770474554278662484846323368491647302955228172505574073075670974464334680684876616738378300626508056387457819067939153664175083625844571069685569581343936272569863845605864451780313763417755705943115560647277691328002702253994832347461947618969452086615025860185371417967175983807496900478992268469980630882506822716944260645804167114748248750826468661666667052451560340295053540968483341016881777198632323726804192030291657828905380601742089132963968790036504645236521166140938740731723831832261913484984372655795209229470594607067563321601021528712593246631024606841545817899312244472523477744292234890112263733341185370765254552342812638819875450757585500668409577812448711953077836994009982252211778477670743757101057037070587944790576795982634958779018094303942819719637629530100523479562106504803061252296687208875237644696176670649014838406229909899544044044443798882358533845199877396802076833817680640643094134325837760649999593639157265808091312717839190662567910763356721098730441511883988871117761614074505133511730646461166244166087462957627541562699983678149714557400866130650747724540024070346516280588696865315209805732373542662209601982439562705488078530499529912620030911070232693626210001926597219557777604173450552622964328565656360138939639289439050634921757752140474942953128184989892089760337413835056103396971952300662150180236378711758692921954793018720831440247984968665944969323869982919738925080427459653119085886344977898629050970513938506888307033700833841628837884775486007976824887115325147152345657632887427600596738234158086747340674764919124241606230888868318911794008887134126981451356422113155931458829633990101964699313294934551505565630423805805914382518217041636185393815814065178927107316600327685692901497277591335563367254406089111917142739339570717360657679151579552577714896212050631884884281145304457529810269373175159933650310628483519925354359531460297324212533752139092664824056370927137771741946761734111664958543681482803861823656279350997570205185053390850620642286211832761753306603136279603052996338850025473691795131593970708293916868784446958090408863495333393447528625149430917119907909384267583211176068854507756669432142450176729422734308845035687759992486812772611810210384463352266915775717494341275032065886725564173054623738318340658774594332864768665825004387808800884678247090461288306661842233896552921512522486276620226729119007541494510716898235497483280220908247764515399156875405160058789366588784987511617512165841604128839581676741659480891148287037871505244143226912621328793514653867682462597735758457436616651880640029219074321320531741016138862602147365847865621557108958227860299164592257632132339342526426628438308316271657007738498837747683264580982506364026723427551531835112763439840522214032440990777032543403467925436794355825621789093832404298359709764877598929450238710131121385996778698502549736573863443948373513843136055483958469704036713733815913964500067643065296050759573661471912069507423474096526645399672484885345657088551361260716518472976800589336319922516362905849986650002884270545339541450502929838152400767654084764569820306538925297818913178602426485838902819694260138743651904770033681988672674352444030050112202536166308257977816074634322557503264855844122626381841238324930409771367129583745429562534057875869493830080101724214051737083649302698344410584324354800809625689780131301904692220985151946975721108437917713925638302280242575595400383817816938833816635510119900643164322538535922069567194656070410548634456619713487650895517818355422300094455434595107628050184678158334517785253378329428747812038164735513058942489486012051940600510887847331902546835762783227113490183277062750393297786078863441186938264002525922263879341950993355573129808896404931044175830869857626047506171646605824622924756719376141573393703839405515852680248401698046418182862493405577346449290034766221173259480289386246608568809404752304130393474071766803488294136490953186625164272845124788165895585081479639077047518557389742503075618876160278758303794056705611398304225715480019818246060307745548316261121524366923262953495362441488806332234648816358306232200604075175497294881652826002866161325680011015383980261975940204911055283410138384087417231180619453565085925184211784282420077388119620809934194991121503028621020696390944242816598439865479005040105609717650706157629736489201909522151201974834315574690569020973429729467314110238250643945417715681143975827616479779307043949996156217554880537240668502323667179521144159461358974259463176047852807649696320977196720039810135954902157215234035716205369983675886042783710342327678686193710943524662524162644089459701353836026845584227890183970723402268968995034799932262406042321811962854014323572441349390186677586226778869150971175365547559634650874862147669952281908153285458671371569661072902825489093553458906427392026013462920345823421330632920941174600031484144742668035063140497258491682127143145863294261548315658147983274148750889130546125290092022865176451047281937698217105778133306215089184575484451225423029679562769784206316334378522405800666746172304914761989546171132982997318374611590907295698535023031604753522819515668460165137712885008663769931379547240036242881687399882888983342099673563354877103906061305143534926810409557049500691285982652821258563111350481330386094254582702250150338371356338763849160928165346939260233537889301302185520267108682896186575358002616859529231291271472583024725604542871863702246900205054019846070853893047525174929053845025887771612147301969159396624895554291739230939000110638994256304157776051469656484846296125756633784093941149352457994372396655085347603670656655899724314525172405287538888170582920961071560720270648123194375624919207734054729717281793192066538573710530322921730232408896007713590252919802626544071328173475101858186237433531384838995290911380504126900815378816457273939930481092043431363250121158653667176494395863270758623832621878065989039103908157042500557612723599724790560111091630997090995485285778575476787571807896192394452684949339334677148408111306325284392560654201392542413156627084808292928662833083407918634964082509099198913541374818150599707117420283129453642570480185219949856849873692863293692788433274164404586615150203273459797567385086835493991172409531400743414647770073960604454973193918810788392422222113236553572881022713914863830125558685273487247304030400408413465569076127102597787099995538490741061307470015459119839818617319460443165457780116268120145825715912125382027558061221638749990657144258931875056749468116351692290230637733406643061220989776524969728672130854245374376109106685627543243302929103116985959545912552693472141362183249734302911262500703757120045484049596007615554095110708951838545260405338878841521601446599988461921820782564739076497063399075590330266935623319124357405339224675701101284341140002792232635491449972767740515869859169146079467964479962797947987511514215074362736043978534626723279331675093813570028054428819529858501859215823709907775810702900008348412510477853359236089782499336285706323433241243684789317374501222755019710903473317032411464903684906020747668406380854455218892734491328544431764861664036071427214385382136012330073963495952731110921028578139075023465555665115697236647062270828928395379488707982194084371575551495056422817622078504971478644830193274959682050840587246960793155939269848023328131719784954236705100699085502455112490680817180008838618917939054298942432068309254811927533413918751454260961813902732761170973393648025937364875524053706588033065892728567090310817304631461313358546580372270421869382388815677881592114447629770740297953798736064554621499846323435592939103751906663915547811762180254175582939744612676315477563940009845024404385797002953499827452568579555127128348356196836801340504085904749525577578355818298713687645958274855016109030768298857561976753758390147334869690658822295985372808334864633214490632729932796567861346123507472823750181396549642046255180717733489673129357987925555442970393378017891763877352277196550472167280382315360604289288385221524687105308678249002300116322491481649465187115684198400789471641273914545808884598596764559403931665101276049215642358911868922849395155106130607378885274127792806053850357021722305476131538051890453836438892514994325984020344537911957840769209004977056052472341893549502598128531712857735402535580807883151569529140629358491194991828856486773024285449681903464164236220973536474726390634399802394232322022398362932012642524479924845773839519205603405015842758977312108888694492453206145864524985975261247788815610260611460258944087065636263442560437409726126424260353613830127368749461583980967842601381904068417447674992551240397237936174549465281085093063171175990990471222271812057519641134886389912311149235314118280674589225747491425139560985084910999586427450258785372562475589864301760894734863947441028268302187673187925662880463565526565583685089270970138210604362722628707822792999259816684189055185862976454074184065106672447112676470868841044782100643313197166013022488338251990660011067836190434262783597599416104964378406805867067796881375430486576268322535834448715201723153604669627263493634391040279539616834582656757939625976492868427995677507644911567746381659659230577902402486165530452075405205414701461664358692011501618608502127436629652936344277323020795853349714704883170971037086293795982905402626408664615758128341910315317555499523208194921611595207017217425388182896632315333431759247164480019460539290009125137182959120291568682955576006482292258199248331003208013636830910376011166644792267218081546815842332844064784386221796842015173753287217246590259260454636252559847304973852633233685750933151714330619005389415043402910165761252926668737796184056844014522491153795909695771440953628764702382232965732507392192751951029035928392116492142224651337127411434212366885653452067957496861658515992858271701555715617470082084898319813363992507889218208446653929713705989056996454843528753119574579757901201471318256047354729050836435210473189826588058274732261304894697588710114814724274052618861322123359830338383117426647022325667874568700478201542637658743401925574126161314624656212210762264732534419758143063545489386754342471557363619312617083765395670278779112216965068326388132363814264529823785838471013953401793497870384278261465474169008988112212288831162119082856184523875645933312111940851777406016160954378876503438083145532502396862289822955913254294434831008748774773208960945717116560326139643024542659520065588194957096132845118357801747524523898402916699601631066812568596791459332443042571101183017478819419541786513029785448441743562820017884513551205764511329846900310301106374153443250087816957745906089991084172188380714504414957170014978127307986064276142642627651417131607177421587903483718478097021063282181319663968363605000097491422424610733995979989794885498139516290768574519847035989459045679710588479396332988952453177092610932112495799251332275271361786051874761582454861823988282110690813450822333931175041147849431090475433061717536829721392581134549635249728284801505492715519448347599676053253256330279664651633552630398995506855258278798321223473033377748465694196972649556749360103959223103782352237065993215470715179622776556985797043914748213657221195686265924039000568782066670508394664218178630779424132428339182770806136692797301723009648582384074158000893979260943196662862974557286605942830148541490000167436907089303142500534648561451229535431995640428889102980392054880372269450571616466151952798581365934832480695863455940567111480737442401754942624880789790956058803005302812087313934189196431790951893408197521348499147578713542855848416753305359959384190308145714850719252207532937374642021655625414153527032859363349867541672988954611112867165206756055805810895888699448186773953641009394655949626431001155889169644277538749245243967861103669598924497132399637242216829824434235323980898575231667078656838656537197968358512476982952312537002077012830661637590125157109446592899901164258030090328911298708099877526296662836718556341565089399696853615230811476515360201571699883935016830919144604215618839857102753807555603911735760993430773402986941059659700892547122132084145014843124740555222842008600247380909445623973360256604040380052079828160773648144738702394745234454556210203748953291589694413481499327208946540648682932552793685329087577316070761519710634940462255110435219304705246324654676454083170273608972866832684809325190109801324368627177909294737474000294712640346667863394087712333552422778701066517023864405087245316275119833135509755249457769891244681092770873669799692583253453027196159044034262819566134751026491899821858677039801225448694025160546201680146398768214438954411571660324276157367422336127721490407892200447730748296788262769822364602456866391755130185595231887065645722565862914805346948847942645205640125900994636881649234556774373122390962781674520427568429879412598253459475180373576234758227228274787774228064114681341905792841868649365984586995416353653104817533032392106263316492255157680270538710007206380294948132958003093438090790612634638174949880563088830687017318795209175778659366863067749848302376866580205953103395816726492003694991653327630622408882518900432539889002237997635597866583365802590040220462718631356053522248836732596148268780303003099988559073466980271260637689588064157660135929624251638457897403326343498847666796402986934982450744784536876974940058312918871841314086793830052277902850978262523934098287687024284965587357388002313042965651208762431093273528709677416416659047829112378231067835584453701846862560041602022050093456931220010431615285036174825685557803907160905012419384720960174871526950603733866612852335292082044160115060682070287137696356145934480795469650722434419385987309984502861467899378373780532573656034973644770224271838354310753553106621912816808381437284786294238658697626083054071990882517449321132678859267927554612205770185061009541665792273933541650107373426737618738749173463270759904890099962391178042898273944988425287443665414008201130478613393573219350226697204572332672546914325018828969431748752953211915270423526552913295101283027718418505232025528747359370448451399976935129243313894814328174895217060205586212956314442312076371865417673613360414016654504071003235423958152104635034889262179966668866670683998760288026009506971163901311563611867588226813547181630396414901692077640359962639303198079048342207027198315526088299955531996994966821925095645180886350418118567636205911862461632118848482344804990241032111827753684915540235960258494436416573905077765898638294210996530988117118498496983572473132397827083014474704475838051725585560796963571750577387583680121084598957329212567686209268781789507766825016876806850791331278979201899876676907284981641592230980097289757771389827594210107847616150209536046971910805665035951010224306910527675081499178305299616240700745805395841294236046459194117719201503312094432383393069295927238443357617313264247883208249153185023760180700151505041926398048401982889774561125799366829281527246727008663353971650817548779001095584556139056234308251857777816357965652902018471231086104580917230017601650260231990905358252330112954163538638077505118327130303106401419714145061143506986587379865698326142725038248748030183953152729421669381263523545733016010504526511345211141385509193104336186211577469578134837676212491443744082981467353637184482878307401018952851036122833772706122327627219367776892960805914689681590361059403183549826140076494458801123669364226924574236108631928711672461380422466531316952763915656574901191942704203901075787136614074856417657589180996988044739349329397942370669491342949259681072359068746121478895750407832565562891623120631013182907629949538393149215310317990470065045155489777903740978220011972685219588886019944883217550095837731368134732529085828215406121538349676784103320910835168697987018896645892606179397973366261862412799348365464383209807544165362869250739564625965068615833132996095275102294515234840792918195654777880422191030653469586245087897935661082441144191449848220170821282642189274246668014358638157805577287747875011763275363538479348645186342479378856287653208976927289666562501960811735898568733777786733170145301289821226344277444808840905674024105355564116415650655240900442570493087670143078274199116896782779740091311652480747443648471093661082192186027978792641188292061543707007182620674803951275056183835821922969127825104260339917900695349408149481704550550284963047397396858576557160745827983954372237348310048756259049333689593564333611319727887293305926401288268385197336395698119838829780230835323639586916393785215350586003493600914535315721388589929253274770839681890369226706465848854178765366195832541608504431240798682202850192764480783857065943612193734653158243567071986083315389182443535563406488961164709595998571686031979576951802032663444132438839421380512379659848520506917556735200412593186039688662535436784115822278767131087210286457423324314400636217601921530690561273595849542992504296800284824491883700870599704867767504704718339352019228309445870111151251755698359737223840372932443878396768503396893536816644078363976967789766060434221207347944583241063471848086815866690246392208310283321942840793081898017470131607971442627615692355042853421611379400686615639723181059172807995072104288894858157845419537731617789738453702796304655349685257948104760862419285743811148471633044784800431440202472114043736802481245090904188359057893787534724575010228842145004432139760393630206804140413363980646858052082115719705968238930305071592662089046758871767589007274402299234951806651434939662746752896559239323660501987709821046447365547312963898480761569581850451104852676426209576553091694724473639020904358356131877728802170756723023122168215756822456886966366618920232458642896132285046264811276115395056159742378229332453796288920459839305209157607542949763693448303411498492362930954420796436875151612638309676393501614441500516736603053648523597599795546402278549809340546138381450152548874222310260535150524545222512012052940419791115767014416267279393080430088716336178466046835851297423493559850456634907873390625941430439545919231014514499814422500776995357776489362287484517541205072878202273144107324564024954167237774616812829341087243340961536443821074654173074293081157576095130454681832235699443280541562965145160611356550744562044307102821017465709161747157262941182385526628022102052229957315085790051282827324892316917016575386266571472433327085527907033012488743919238792145354251372303339711238096877418592980833561317039941654558860251181526321370421951920522157671239418035274906763239212424767984743305929819974636302604237266877430391503256671283283314483754122157241057636309902101119409772982468369678373254918057888627131009292522789648979760272114945659105422906224073692072313221998206913316621967070836287016466208799748988044844247637501468127901049248106781137232289730337983939036475641650258078829751874349956026528675996122216848529363466959726427957502330421108341089804853603582548118687529392676776874563749950845400049047605879037149893483390093634882452634426515401133247571268135684886099533717837334822663847209799744572624846504938174835823467237206189636015972826248752615005120172862393593737686695150194886999766202452940601051621261489957909622640179633372782560575580163382572308141727057582875704873781392569630059306509074616924229623086191594972949171688949520886414566751429180980729439193719196339201710680774842850123577785801660437252844966239215458332273908997177569471801969872778140325580089717033037988833001360111404329760801311250478545514579023692479874603395216296644000987741596009262939282071677475923797589656180108585166019778918809123640349559982702696268183916171237864136311254945993189709378114677828272188263383767992263961487919394830978287623563074172341899485243288831023091337934570044740689625518441711183038724574173723167669323941819970517447893310291208829741009838231035637837184924076399803185898790574194205336898770133868594050285986855174476465632091106032698216498940348866332656940280100647659014624160852895581713667257432457034804525879574941683299182110212746173630090276251467552648150490671692400521756877753213798596497952411184961103375676247214551439569358328118485834894788022197983089721684725189937145718921967226433422457089196029485546548731653330508505319364878373877467564506206499447567244288069840744431525027160495701090319905350265459742877589062631042049787999583537041553416974951025229685322330647911012445652779637759418442405481370709680130995316614904805854445772944521589671771028323174124177246237746362641461188368139389000955255927786900537279954818111338515930474905087823473777599119560961206392935689692699566956785076416887775052995205140341677253697235892650200647757514532585118914197600559865821312351291514082579407516058460808191955771454203438887374376621862895491201176079782906618146853861633130646373379297153518301923384731608228980893127633176813001034883340954552111458330712866503109646748944369006058373918792415136524023619484285009227995035602665969074414673333163048102778935150498611444942890202722463503983663183035371806396629325371936203062963979401015357075135628453234368354452247462075504600215438316478287533836975773332489594939909561620088353947404263826869657604025515044774285327485753646427438580720589753788618007413787695616095384353565485725804882357533007359907130486743411950904360443106001270609616243402734325307467277461336297031250957648409731112626582556716060967679412892222293103455057705206882788369535214233124619398211518815509325741658170428313323348388187647094307635931088206783274667560311907272344478072119284532995536925370109119518952680877819015681206336612310386929244419103049761421154728302666891040644897473582085042453274410004326866558196478137304159897542184585172642713206433529251016237817149424438424664209160691499438663936974849052456285194070393246061506757197081379145690472334031897692952406923607822515553556238689804659454766842321168920580503421688338449704596646903284416057704538599894649469630306738789856933076269337266046366373084618214163427645177224511800606399843827581747211483043188707751008446789877594634252248853723392773997275706224966653936384270148005204362308008574540582617392891915508460520806820712124067161660700062771958570062369083148681390452948095648338382652735069404743697526021864786486079141370353864376942636554151860404736864358935105430957704979345596991042875977581261048341566248953626578289483723550289289781480968222872288741067337566052134837898602051415791371733341503808086987146260342823619359735480583790608945869231386115016826071855094417993479139042996203518217167970528673354949768635105181506094395954472325584511214763604813005107911201160805510198015146565607565113206612489595593925764479694028866375316185025540423623214797822188589355868952512083695582500633776255121146738177364816223504498560754724260081376146279381546579080886696257113342663902345864232233801270232690550956295430830289069353756439330189696187750747032057846725843362089603308108474665498204468984513813528638214926001770592639668272148326541820685354434039220732822571702525670524752414086347518994024602064592573672180977889184207191200505299315300818401174689856372866134324734072221051785576848526199477811642962059274140106706958798838109871639288410558489970723825826433417036936488585012265896393006474518439329591412533480343032792110716451889516107543635031562010108851831301928984339639354742821794191256783310837789088176847439122809679214331076725900005231606763684909486387343868435915302536845650122614280141818130469183579957512153589260792177569076838443849586266170799130622937900961543606910684584879904926770474484132188332204419623842905780734414661373916776077960106629854166169310331148057512309692164210810899534923553956690218115614360686918221489888841471517521879001860683741063424709516615689911496389660787572920818206140994125146798620596362352201012459949425951681108309068408385060447006449164591847088739177194935474489192448038611108690414167814019644241535153052909597155031552435424143918393782109397340699068964136730936074209011182193549712581306026703243030535391261853344877604634693051692257112260968615698158788727186193087034482319561014090034644005672939683444873089836343325443258912131057819924718299558614054805367518435224054219407752349606709548999276400036771601768229549780931910472830080430575290586513643876126184340174530695672578668277234373099810629103193203142949621186782447889095681017156936223380664018902173758625119380848171469968082279791490847818911224188647468181526373287927684099071368911832134886553242975868462620031862714549451289420798847307857902531862282365078591256950358272007038516401971722043223755966703052617156681246052265325922666924476060716322599951995938163009176341391625894463513015459870126561977121676486054900704067269638145492523088966278210174447787742836548203382742864331929660452228211865605867279765915927921958658260913673993586237163544740271139385361923850102763136797232695456444760977881232104017624130253361311464183545463068561478693837583291182136469213788205189573945318914761623447308935137902046417884526398647530950843781298132449610425733795278721962704436832725764377986456411026115868917048983751798109947391443879311983867796479920921123851245954534678383392872583492875589253032690748010209099598316028858566375494507853541208712047739143128966755039736872504793802749408502869366448800955076842469739980120781665393221248348151617616203900263969549999742152572584232379873478205097256572587974494004246287515087146640853246364966127373346215670006623188797522176136499865237999038300923528162983169347522495351769132064073655161090553544286573800186017867685706860028761939821737656330289265408143023353495068483351141915583397367101941647865938565195136216072267367220655585069448465459891954479839683382134857271411975909750590155636307420430500448656519072330439706766797896101496515583446550261791600954380066379051416978813267441549103881393134188400258416039121549544896518799215375723319558674334521273588593960870395384070268719324319710245323126801399748745031452793321879644274884433059992299805457619405656039604747900991574200446687078086783699050290837161924754035968842696939611924777011044865154876732321841959399435826655394969100834721071764851176242479292251542126327507341203318612033421876995777952133446654311736994225095319965253642346858102808161147458005901956463090501373933834154603417952134291940460358763782052162340407975724756503077791754775986478118345153816827229467642383004166443541960293861524706591620433651134699048227085018642358762193683949208156857119688424190846344332874144613406136260080959997494704797947397140390583786916974374604824791586532248529142601360177692409521146382386296236603861880209477975471088763410595805177694620767569722650135880071412568075343405976415067087896314094413185307965383265845282165069989514564980642423687219892076714040434693400357429879217001997057536845869687440592433678127406921813099165460995235391361513461223649983302597577700215682783245303124514254284913053148981067146153418640174142977336508689362921166499254010475852931252584705105915804534951700388824214561489974175008147476956665800292465951488931955200115864412680445443026395896886529586774614617335330183971351170878793139679211500220030241273670710113269317226835279506436837441827712394516375302965903266336081654769589025137848562946294718811006494009895979705245246964647207352202141251459295746835207845052970032005658704687507310001472285660424786244916724313899146591045261466853833516134177430712313465270483819148050738957365577440526111251026939656561869610218355662705476116226000366364803221491130925454266463146195583636456464668100466794116199716556576919744332087899629291299688448210499265724390500049119722569758915548720861021588835148430964875041161382308378538548602271350631960141576678845177938728387550177585195198751983086408751040487309120276582105030471964682112024498161182005012154300677011054565252671590741761252196985209676644253679172691024443652411926970425508842833378076632431457150577287427412973384898298214621991931551425009074551268261485109174490895461752594819740362393724340376440823928306120574165071797663238695862581957539872617183413738735281211000432143260512212983701203893026746264647423514146349893724301499612623523036047807454045214307229159049865959003191853285077543933328323233684752211313277912842259211179667276984820097818082171426907395425832290606577267365714697017795770922093401487463469377705157938377297501361871644872704119201709467759376946078274986271655710587989527352588137538411279414226918893879755915222198682051353414654688010863160784755938106687840078033315610616716853924984113472437551209311362007832331004013968905604797389103722673611142262833032468680458407722959272338339451097431468295985286914023286683424015120267839171087712780686323207194725797179102757557758848922683959740495919781575412565590601027775611857634287422325254145131223371770147800570016632018585683624279209887007724662128614474359303380222915661297473296593675065851872117753331982652434105657142572344921988684113724974473180584933594809734485515983522419115037564483040090243130835404916188650185121970888995402155979576788810336664688355281098265842808907667151377936032271964033865878519235272722462547296671719838408321192725108168382542496160753860566594126961916664395175734794245350443303396783416438773083624145542552319884281981911028482021424897120798552371217700572814290486869892561205162632181474231742055552524573543056765936506519951556916331377267770465576340792510474153071038441627957518149043997090657438592130318606256378570102886200322273673882248430968869167319424202466115282321528292490106246633642328309711931120714645582673136327446592560711312052105408764110954903595523825557572926595970378954423786569027534069789987387619424098439451096637911661580592928189299663051963769589728253426652959579021707610557967720609835242059897350436062029802396529740481754734274828504645672900420316988695773496724712351686090641196335164098675154728292685541213214643834431679579330083035118453417231811937636713133786553352352649678450277619057911916525366162344174999043174791361316960156217193633848309782435137933188051358655822422017290745091399230266628578506006261022981388930735364047989869293632597275822462674034914132888130293923934783402608095798732382529852291495972002805417037782825758158949164572164156744675565001977566914227815014476621246970020225753185301594000286598411893772846233948413919921138085231199370472843359275667294116562178543883282797828910518365955282184516508021889633331646481404777061311267766160207370229459030320192898099161122068665392492306014776684605063466882056060152334687460721167476556555008790621994747973935492257554932185889352631205024329788778830821457297381178204595452697321732372251296493446077603314386885670911161352624741721370937559710630288538826248062032143090091178584034371276511868633073582467523759776094035791372420672483113713730309460861750239633928775057690157641748064358411980705694598584145105720603347945043968830408111653088905677428413915873518091543613621002481575711585955849373352281847928478692391779465851771480972387171699710295956923976599112175297927328583949446329105480693715026132364361129495177586934664122662692307796841589535636761825721723779096722956055626447262466678163985570316753867601278580688296241843450247495852376342454489265411012722267350206418795545484542323029647641736659943006415042481500515923344441180613305373041022751642002365461943764068907097509389002491722392186877601555466004274694531295687219954680627898447208724973151443990384680211996052622938516088889561960887087343485830985896061241671212517775111393720494559855708135814066540354759397021122317857287319023395121166383899521754683653000531057270089413011085111949984436508524823724631831566311485995646920780625264278067666992754658811968228999325961993626887981733793516097821120114114450773912903315522573249243413822830948038932150599173527095537730284166484774285625023159589073234289433272502419004554315837219933110576993540399165846408126554543438606222881580206101333202268904650280448628323035729150417176114584706742247903889984163642512617453356959988821045796605353723909184523766770474747707358308016560936550133055487201963749333591117386964246452762938009162304221902477624931421515213391880815500254934576076691145040012102896533823346396997365415125040192355218932672323334479280977060425227045106033493418265798584088316966239822860325237127453727153106494438056740652732444616129285282932872401162448432749951587075384530406145312981778139196301465692527085474791107533719408379787856313856844291916191393819865118570482335039676726840455052666737693630996866843784015651390024225884463119010693188666957206471510065900083797873364431879376010777388190042260727884273489581922186664403483756465493941127634922355851365953325720292460328093863595997023029499620820052099944116405118487579455643183993977698506561092401873507149619937013199126680253293544001242715600793409164770676618343862363072746141594238268969218283526204226845289955569279190392898093574244183675660147768780612086387264275333553045249291338981263801315124280966190776880905021156016504584167012733131921854147302349892047052246255850097705653104927462289359394727590100771874264096457768150127334642072344419564125438423660677570722376477377075356571665364173517426866105299731876518599109775824951854837339660301546377016033711920183819787607224826521639943802539283950949753629281835712231442087186920155793552751865769038597354713315168239693980194848511594600020966044102081250596702784370158526062357779703097828929592384960188095088789455280707769236723075533749129071161301268419303803574500752041064229028547836506819777852870359876962572295911855473234696319091931716552093097698826881556372064746672249725724109909008123285115433575746680284932791423139583963951650673090539184406949970142189445130953906283179257033600811932627750914340353121627744441629042250468685179015612363373308211412680419527987563715711052568955228799272224892749387751048458140922911600495190115991664317336083911550700711516788604548937538392885431743566741814944697601552293663865052438048663719833591769511663883040002031717176123464218649365258614256511845740733038961366378435265561580892780679500124137056139632098836075890794567499359293655887844619288977082323648192081853610932091654206660774038693705229574284819547037400727033245923359083174503676532096905440732939555229781789344314663291978476830582087166926317876189739224280185801188176481407016511911371214794198270766911052421853690728229265932827105996164272867776271806898977569747873358768642790673379220170917265317665409819765154053427702070627672458577625587062651659380351627518494087184692143164953556271853280738332273262991572822048336593241307297163115734518338068769650280192071272819055450961789475164400493107996479835288677667585175037825081098055172564270301707649305524880998510994460190396423121361334527955112043499874239843798142638311488184163230228759123138705626331347527859855457997132840798586079341703243814673417640281720399010280531079835404350289679990600910264375087308845165154813904451465469899820166898945671732002907505744784710080860721520881988325956738381849365693629355192250251144674545640430432196358812515669915253586493623371903514636335505521451687026042560171223750546577018562286821117500408291662493223552275322321187916293711077264953825175956187037671448021755205599321944998502956743444227394869629482879566399527057162712364886735060652366178393938693465897553008695770240110027183068338669709721614662182186775271509844338763749997622736797601998878829018076667324393392015268263946232755088531042907108203740860766756978700161920254034266055832782414602233834290525152680660955125194677969384708792868521369170627017551848583322070656912282906728240448916252105268304908265441854923863768932101464935373018229075914059731552870857661412351692299380436487776060579496760181308383404838468856376411848199217684563022611642202684366499021356007082681683014719576692141845996912405386592024128637046944727864558688678581502266086239038995608729788006631248558219995446266870094331094484959276064449050711789536611419308359331721382676703401779853716600913530699162018442189402879540737495545845949717456947042438132279406262051292878096012048739557886312416814487992787389626426029154352260572101062167740342751264291283160334751626167410921898878047519015703632174739436669741826033437705911573173626707724638816675926130407546080690929180415742917768234598981407149899923228442241875858974312247136084616464058831370305422376111389317889647300543904043485718114625879989402629327599214272300313491022568386111558580689513649247511271909851686631257586480161754813831794908527653304331584163832227858333257490788140645943001683970615315707554972360615184880136729259292771208436519777776877178559073338194935405605978602400122089440703456191425802691540709991210798182831255628292977320494472046441262106786725939760271639428315849232664215856884998535535822703202141346443855831605893779394310742272090855391451224051100136048995503601262384728494290631463434337529027685426993700940547527665441550235490076640607583551911679070274286028872479899280511807038308219959300841224314340203614783506510288198182913196622110086979260579711732771583048455856583443400360235102051251640159829208471983194815501257043731795420078126126950854918178656217620957578800065832543702438431339343151955507432283139380287798814048988296549926894702979645043741493345699081020528508679429471132276198595484692337089694089838437051667599100656061743577129678861494379936114413099123407469226194339423772256257451233011767992715671952322884661304068342663766542748260657727150191568747263801046653590025292473858879289934868235234056544764808393514980004611129256568607303316029807567416896525405972082221232270623425510036945262458540391633025973046515604341353560066046535691831890823012301206194053299462244018983513882061778333080682719273602592999751743643450277536155314276216887154024982961982021589526044457055344958295351381921805230682462286218667754783396018949810186337420457622619241466810102071163070055964991855636267596709497494111897811831021972422381465851112973893066372867635593934613569903844691048855304991355274360384693516266344988777048440670643570267316077304991294740291712976751033866654917260544160134900783055290805323839756678541274123333561871572849927627930659999087392080224204991788321220673217539256426186363747020872494685221348008152080077609380046212000270194089672041066289441674123100167952396238502051310207660697037034759289834324584896513615321735886325213143720637899648857077482852021859355332887193248228297568382852396983800192509980987845684019187936629771961771702125299643249146211721811223420711982600211840038887008470975471697840096673449774095890812266535868180226614669209299463702005151359357755258779099104951331689846149246795495149323067752874989534776062862037769808405903479511084246665048774272750485244428321068464818814344252658068555774713162093724408688502803341789586367535141964163446223977879622533138393808586788387828626470733090828715578406063186686707250961055483075476295325982240716045889145210024429957798984495028144940931354643470870405496120288342289932956048382663861931611197956862369018820951159838389393107279354563707219777921345342162990002828264989298141445587006790948266459897127316380042575621027638458832973376451750619900592015496569851824088896777769622526120705415609339477583755999447203567801805753918312379803167545606651642506513347777614992652891671652023736785980705301978241275811821123046754208073447041902299045022603481004044563210075613423391167557233840405366082057353188791317823056363664127636344920761661769008445454446408188648928961617902254746166114130432903525962081801686117756300805089038374402017453649562354178037036637299791058359306479422829338518445178021373590107891185168732239881886936250319190053242629761411620226537525009023245047909666707274091047259280224299327012279362674561784617393114827181162231603162586166806417500853588689077282404077287561903590498667135795090396541991267504840424089578687973957642867606897533376016813386435788836672352465342615397215035112044686333604406891596024244477008354917854266409476330466769161159001723565550328793502372529992222692360528827564629622630598705248268500475332441274764247237402892664960764379496188059391989973334530646649778686135856763862721072879292877676352104316289741805401275428036670002676497877317944491909987078129698346707534810033707953056459568761779039852230425941101920321241438538606858711195475502752045009855415892449571333201789376758987641631621704526160158160629657655672425232914603324631998961761629251355424700241618066814782080194585444630935526341130493364122058350888203189003408427115690937742785185840251250248529608682087200313557227410429314976362576664260355301956367537259287506010345009705569808768083168106820745048081178276534179023822278796040803284767008536352898075849159119959539694632181833954448662903760292086241745901248170978599867421571889087390853902131598672873980327195321685110455518639727843476371845765588784502665903958425496563897236418834583200093028277564220179829853615878609920715267946753799491108983721311986036468752575853249854140420555362527915603319422234181753467871256604782963205771907448978366459503191587658474958723343748914163712915461734513856949097991434880494229112517508926009277714277902697370699514662487005511087110530580056186193769058883128117159283026526350633901679241796846808395772858148982026114684100790022777853048367466287755765237445295070937227906883348080199403373334204854725488281385888564459990274206230791845631312694194266807571155176623601107159763947343799358137084828457414057786267884475207886375929154535644839788636147911974346677947486251851109040253260797602037242174497261929448082273313515937340768598896370485454706871649193787396369143781622441095027930068086215376090299368823217983296048037690365055074625910791201453839863802171796573461575304562818108896260334035742666099540627630494391460058206776436376385914816040680634430908678253549101925262255824469277563390895219671047280172291621057111880017990478176252793475731941908567859416041029742089932830868090472331792159157539483617979503644611239681834074487818998697725662332387136095802288973286225417547948748496924395629252644038647883341519555251488001233043089456908482414473964051727339612680895410534446798331286661323147478548718155325680370117507304402894689215226606186561070547907010197927500302729138291152272805593376265825719483375570097722832262845339890592568283898734983596513477887615497060465516110381119816173258453135878906409946803595859463432347140458075321299139024369429185537527458749027935798733570868512674331579597012516390867239607411535496238723037171880172609642603927005971746253877050531875586730172401447822619621620538637199512047010755214218823344557157382089395883969824938599333192740611962275628849022464781458659758486792634158614296747722594228488535269600190803096427485062891602868811125277940422252402830938782654277766884540092668859219524466759610688820148011143027361649602525502848180281208380715479113704664613415744098333868851727520885616334594295855478477637553957345203202155889458029272585433709930454494385000600227836713108323611269938741938728341810557805052248173597411997974573039350070730754747854415142404883696565188501576243871634409276170217826133604350246035299444212376636475575079404311180449674215692382416160739274963919798978761468652322383612928091845257660426325846044207854977334994390406904150230894471624748834759138411166512696858742055495204636529562164311575015503164713745068984424587373390112215681065701299057647581084310193269738740257636598530635561239100529224813278012155402799932792827470924921523152468212454590472700184673176803599264641535966846806551301850566678212756347215058441068176990424506543646388081097618716730838033378783447992389921759918382645191383809431021093645257041596887326064862794271785508366729498164641019773546172114538209369770346379442191937598071469985382020212500760150004687375524707959186835451126996792214594758151428973756538352305145139989739140845221064978608927483574285030267002937233217213966309925608419812587895619392871720943283753122968241940794582672947423199057913099819974904685270149959233363421237166239439244200973898685311019869597593004025069140886063099280114298574163402852816820093186148145550227207271483355857528787968184418474853524473480943143922108935060933563346530162082868669672535359278379697326851288969183280299266965074302730180126596638260448441207822166646482471391223310737157582695174326369454516323417960255456929436317526816974377066999676901240712496268536502687180142941629164704202267208823401769620560005177555631962308831174948849628341419400679923592544733260666509792676887381931552063235933595876808759794690725823314620769817234190162081416221853192711543418720630038051846456993131946060351258743623220204141908913362031818018518564193812393316780992912733106199028174567561777511118025283452354342285703592673082160642759459578323538299438157178354204880315262742593548101009782996190278659940096727182148102185481329561237256850165972223718835246254869085898431042716389320124870713330777613425930725359333237473839770646622300462972630401247178157553122706836094899506974249712823627700513122864777275788190287811408394936056097496183237465887743843639971235501855407732337093591303333535324360732279330368548198299586099361218544230801887505133311884427461800598073729661325126632681333911431961109238758206798100436186045736596561414471230076306444322291556488062540438538712311862508155576736066958028489827463759207471378755293754635584490295255971710217396599226318555073539917311741122623788616061679639002746914036910327223800593051534222327351732234835445581726997556274966866682722462852334663767048620083146847242226798471406224434710922007135719997995931029896989328308249848211360656381785865722715723144523511766159274810091143153124882917337841840859367648060725833169882358881478017946374880910012300713849472010955685970964972120531410434426090522065425297504461637910209971981422590246492962357146536590894261528997821550653575533955367441847676133939713306420728050669834840556121845714872532775925192062641751876146570034584607952435081026801314419107348002368484514000369038120919157201350934757457027095972660345976344193406151420901121259582030329834754747201892902194085537527201543183220576809225344514888254357856729881707947159406467413859666022794910643390001262514055974909610594805222518955741533722561327458771894162941554215683862765479241294679451019963473896291944444401598725098106518459792938595308924325935518556711994251405224213627336032734107662615443068361028304625010758842146631082275503837289338321963902210379996189367636731997682122085372138223340409101962170968844879387290010146315912457616375893059753732428797627701465231748398249799786224356090291396512362198247090481016018229809954549700098750879570299362820137323851869125836914377153094480715925314432105586117361339685563828757109335762420276214395864865296218534529053700875165029570133148886205141257497959923467457914373341049838644640734220690010642245240688303768965009816227933286432872387974840598487707847795241457753808345542437053445548515562985601710055289048991647143136885108873012164676187151518590961680519830647588862488420885218027328952365651672635318821003153357614133920210376125690839108582285793119478558242561388426112183767651634693373287340171679183140058074488985133476950389385116655165603071582383303974946604767345967893134195660452091546742460579704564449475381541618455129852706858804421854638908877773576354490226208101241508276385512782290301393898640126478719485986699114615478665226491853636924483602901414356352604217883683902163703293967840713018004062759477069095798027633204553910078196123087285297448318869117916203869897066193666095062318321592383048113532998160212822628040765744646749209811406109603111485770875235131252113286455469415225699145015191695369055762330829194638636961056129996042161889028453280638744732115158606616928669563293800625177353827853451091782345301682097352442611003950440299029501666162484730332985776713289315440973205157647206341277831367134466932728834910012330392968168927160151576839514530039424493179642165521564896415583577903003114485890187296276336163689876519817792611617097793642001372214213908704465485877115440606942923170751531794713260474730092863658936312299451364134578563593481912576035881400505176821015076432814029878788566385994458747894202915326812501782630628567801450655782645095841098251858509439376566729932273258324093060240154019891060230954977416887714707660279175750123576474372957870620343925468062244208513094581107483124753579763015539152010835765175012996305291838720403336899801943019509879387784002541149692222628398295281497996830653679336336163890004545966108135599384326766367657932592624829738861240438998413639260659255898557916007627620047150605831926074209052991990043854255584337846870593050473820550441692545474722950500822937577637661558960569780358325985225510058781100283149819609558049029869682736927501425540307088721671425811113978390013705056991470861068086480277565980553055440914760492966960937640863759277369530714036210758484414533359228536291252373558651814041597657186890367936876890386258728514885872504218944620034170650437023998545669226267650545602286965708952037424006066493563459102410595151495806563500794060069601074610413618791684889156198873950459411614033779508684323344478500926393131555906525741230376181420493076425570038586623856262454329868186510639041595420547358049227710665149210772305792747194430604629236729509600193580300814742117742700476142071148152024323695240442930641662779568674269332124117896557254240437994225109967225185747119148114774090435700646350373026357640616558704593847866194673140774861630888816335883674332694855254165081771723560589627313760436994808366147035632249609526053386593913679390354904548488355138516726247381947262125568200918896171563671094693188208558073079953717794226684916809693140761216908144612346470762525846083222906170255500894456108308020164900754866664786012004183489760329848476898323949194515127748595401371622770366290557242235915522004711490165115243067801701927373004647758486645022437076250787953006127147952114576168364042687707955492478781400077243532762266308224576173592066049497144213888178251992766440487890338302069307926727024301833340410887931994394974181090675948735037827808330110814000532567720509095956409930532229800921506543235047193323596075749176078834011579203353198015734379964357267019533405143705115480684713567863578374355103265079829822438162263492027351588136989131649102320529881796770140835301323760374127090434831728336644644743380594102096506577793372423120306356443110955339696663816482164699769175805144423697168059850039445669580451292653410101727003385497747330655699330037347808296603702641691558531883327132462089010108774729615091801689183893146339643085942600929480139068624752109646641146281306546470802275146419221973604326970384912848476999724456843749107876733153608649044462418946568071547765587830440098870144478947130909529465923941826900557209751518525915591338263360833999331260442481452149204038090487870608079849535111651730835516298872176040556039252526369239774621028348644046266017709085427280066902883555130867021857160524673409742700009926783684429640803375753349661942042115653193730279757230331413519041240555713688162005816175146008962510200709765598283125438023023384822975705709200673547656772167674079958732318370255477830219953682344993809764059681383052275501458375839125099641408153368009264250249120242602732244849640953600395878282507293126131795380917382229062976715282735869002896552130882536099081069082506589803559442850106591656579180300679942543758316148109209578259132484154305870196342500388248544189583164522096115956903663169010384391156688844107323065813560858301665068472053970065322187219709678789549988509550195050828576210599432281957906042296393492045138912478945078242429487247182414704237436103088888480729922501315621915720432977313323881206291898549251748968682670429587306217551776896931885311187747504234665902605729863986572377384077547463669359216457647322966053911061102654079672948124311662064353383526349955783497511701794051678891942501197388978651597351750178319164434629450264114031684064805052355079917007041650412485383017970944407077809270918173966664037895705107875644843557761273678214108775270980581210839514318586109105397149538429132464951213646855897588339801077923291633719590791661695173446534422634676621603868957788507132405393836471345048553999165437059938318698790621383660163927124472190211319431182602636197259630714885691155085169150188296844821579641156402517541104997189174028394505192204692907191498006528412096055513252230121373727952975409790971946593487649597030924472294055995376443340940572430750759520438429901587523511817303836089955062641445055644297760763030870364857678967455499681318527507604040003245851390853416003728217670933786522431025325420652121015643663586800123953957995859289022910978770292698924166777394530934990859229223370322985711485510486786358765025496008986882296846757221599369011525013490772097858225137632088239038728848416723049105452098560386262063054797067584017475419185429647774482492569358804316529643382536144425757914863018902291105765650897123417958456554420863761337344652399045862151766673469637444997299941108220526570532604359888878252024067436194942939772990150838566332030706221601496165062457905537610002366877732733144407792209301934475319917337657130408911013677661742390898041513351972862068292497477715042176336163669598948516294793113112092381523967356047061281630416336180909352892994263848570593421626719070259644589661177293351342988417363278485913837922804759280445395660568908189566658948774578425042544812779457176318847316864970289450643352480944292673456312502284456403693105957420521217762632836249241243594897291637468383156697853816699689745112382634109439602623087514880187249976106507640074465430930623644667032844904295700679217630509663210885658827504030799068420973837942320735618316391771079667346627885966656810902632024965544212485505362605217892207552304978935156684631706633955762697717477487456813036771950417087039727824231406753416685929993478807909387261020968768877926105257537608548301109662899946122211125809936150453694078115727374572081206307798525818920776696869486217568697235019409056464059928537778376141140166860586323287262359772157420318244954555127762681366005455776172261131478896320655156820865449111761141180568609576894495656360932733576558596011961669554341330883532246742135716856947798189150212046559355604557908064491185154290405494451650219649456061454651310352157401255161905058373029393038224018428862475659679019955659316688734060445278404752086853849526522950061342826604221840833959330234566273779690145501043448738293163554490618826645587271919557909336867354947125315500971212159275464664307466921540375453146832693474876219768905074419736337599957027001213313906872452523363279416839379995095590843878334118419244714540385752591349010659726694459892688738431358949751753900125233638017717870863013946779763493276082681516938025368596755077355232608764187230287072218499309896486671376038413752068054489499001210962384810297692555918253768234189669963666007949952158410022509284858724398133415972695669332478499447987323563542219689618299587488006705841959030175036486960115992195347877113214260519425450058850441968011465927680255214170402509949604643466507843358613646540234709577057474599247508713496246430843432251721656907256625635337837313802767054867480368704373044059362599671643910863100315181679024715178666131841713289080660157814444365403961471116135645725777560745607984370726219645473393248969242136482113094243922168556816009927611384545622712929858664670820580012707999473775649803591167563039010989762298693461594094408307884104861362778144972924312768995651225818028413051515089229582440947968318487792925413376246108343142713782941574271999867856633007702795739576498412179942916726485713559799825154456824900509690721225570997978827311626933349300875797753909955666533795650671977930314718616089310885618890351279549642468468463258219364973676652286125401510990461242877452202566503862664844902567591189169267868157262066615437400107096768072529649621805448703682781977411500222765538618125731701651942646313553150314503847483672574252366352189808360977713298030693684751890572949774994605444589378393492728727678747943062295184955691205260815523518633939317289413177814602648117843602589967939098633707978646235189167622786355220018552590131025088122274091677941421818987860285759077397544837008609529415284217051462429277479239073357471882619573164535083238098566654653158073598631801201515610479414158358563791462187643993403892726900139506292743682426334770537483976186478097839591005194956421843792746094700454515490211819989534504523221753785356761576603567377311361182753514311423636569079940429615207012690855315641330532517383200326651672676052271628490863900942059453257493710762251275596387055427126882800435215697972556333363020969541065462694888754039601552245721165089501161017092806017655821805157519676725552056690291309462059290410679659708832499387050747005765167923533296566828570860111284316026235148604231710386533675135787141295930716489173898683281968399115695268475391466008051044218594215416273486938125837405721866729405015406740837995931209067020471653443366985799730907871176264529924156916615686388799323747470515243982150258155836084895325195779439585750234727536486697112088678392646729233203938262881118518751418868264845545205994719530480918962640450801384949533869112091951401488846644666072401308095778756654684087699495649864385552676671363284765522235621405917349679156281077997996885099622231429519109986022340235634629120074993590488729476923482042563901022134231734409040222002930276037951121550769563004219335069362721354210166451199856431255707127163185603603586502740672834778119925813273230988260504628079174232503294228880241002313994504877435532444484968127565428560339419644073304654088957503836974085459642220377119409015030991032618683432019425358738523223364462935098502431027229654297936992828329293807153446595079076769559070734835244657781787081119889020417114647070174937848619091991315609698944563946726179260316331717687138147757541683965244277611630741803040640188211292356664604065238295544191688628508051384019359239503143569587191199791898005905769499809971241795948675146383471106976859505241418800148617439950945620582004600472072057346405768382501538919955864697976953135262262498326684615537389630824763401120551819706487779658354467277452960490967725685057732556786092099149532411698367548564718005616417810632072056510253992969108252618071194766439875451991895175203612914340238691346276529310491787421986171883537170898714523498720549902560650854972044802129115603063721885015938518438744235463691066318855101139890285382978832968503047445362452519921000454253788567381171116260835864001455511561963655840754109999174841101758069467282721706302709482739540440772027091034122706065880961110058763161039683493950512028081945333514709679133403136201369366325996302609008459327340308547185300907825954729390399065345674512836521849402890836452184900993749049756361017333207777491515716098953243444051199392788829727918782597983588490661218767095816987462083537947352311311216698322100863526679387365250502033626281851923319138282266103706475869747057305713730092408001410859799854972332489748307625043071389427444629491589447268483765322851267107845533519911758364696929292297181881133704395207994656666878465252680519392241015216083634896594324323565061726414446402152671824907584144605786840312226036175918554417020447208215108817022280013022799180000270827710112406464103558575693859940092032693108795339280815481812323066420588198380755084278970870731721250183398087118714099197006798227414202423410586907476039735771576755483065655491902576287477615075221882229064005120501586074642671456149730064363381538529320559240954919500877963496245829948689338617597102026611998151043001994491524027767329293775043344079262838391177732490802697232321652293696542036844574408011551288907101408786222486181106003562873726039968865914384223802301741182545628532836378958082151820533912111710444669582880534022385476564793187136685248959389598914381087528000262855587622153882156705104548389499517424773226548899571524695384581205635128591734495121898977932697853240659025532447818334280185057695034236609037613380651434038292887421125004269763855275447739446571793789305659789122994298253303685839117484049834162630761413205052906006185642675799091976091453999340269417596476321736535610772591476199687891665991546912444067213894855320797954032863829311443433830261586063224178301340410116051749708862340387532408650939998805249162121255169871753637280397495883161800176020771771289182361720380749765934192130603291862663685440659904631906056207751070339973788059365851305713889298101377188998380607005525338662083796679942363954619706924190215775241631812064239514368735353757947893872377111971414924921854108887385326899849220393327862217076003707759134056569937561203118094294025770169204935210549285028900723067239244550639465457134369572671762238584436020958933780835580505289039868272577689369748594667475394049721519248578136679775511552884210823438215345677223742824036408214907287721797733447120306601790229074207988998598621897713626795548451081051633317617252860886078149156104520295447891637074844965760343006844023550451242905648251484747508491605713216912308909026885267257256382709665398351243576505436397346395899080037326173619243503485214874385630889623811410481791432369491207553283736335463994148159103269340526407356037563727998538394356669450413920720464356937455299277259136079097734675481763254014361936803852050052552386805741536394320795420713106234145631813025844961716968796329150168309007927878548163426418260063466234666922751170102209716124230104988527170838286110438681189371515562396050696363186135156572684385496006626908325087325544534363264753641810629750924916209801709620106138478029758096123375411811275758932257234426501916338982262862977707115962113507715989563464593662404149873277394493729382553624615585054061174648974719533642002431169044385331223237511183671550961125964634206908276236291608833090032271062771797369520614562367799184372799740571931948260989171013781387901010217916936193043093041385550179013606618043192085553371559317724855116914198787772656011691368439161627950988032800919502381653962065286513305936428435925952212740699555270378005662619044829314222561057610041747308795605210982818287298117445453939850731100177720315657848069769172334182207338203532778383885935280054217003256479952269258386198808244738817651286746214602541500273537867829453277325864418014409697357875626867556219588026506788565762249951263178803382939294717601472846179681731759761324119625785549348213385026612136941028695959548719134952655868993427544241824074200713391485540158623325815532827776353153994130426571771209472923223639508532308079057944915883971983938086585727705545668631474215903020734957958200283518129659430870721299834031970691929592831582847246763288895590933155075594982263038471844556702027699758908615347029147572033628729440486543703006783335103326028156270060866370168286408412225550436769442670989028798664442260864965278887935145010675254913228762991812517137274161794149508390532463537918933067053615545729589773928284130397610971741365731914905722019172963106117480080720195494095879688445685334322108134676603253191101537459490385319324345260026676814765898747013660022302633017299803786207450104710145222206464653384882240208156043993715005402874957813777014264012961335976773823068475501455167064766952660618587689699526977114082736650528349429472809637759492119753291493078710925738776414004185707908230970073373662442739314828652638977446283840987820461643983199594247040560091051337244179687022087873316061377909853923969581658006911615300431227107180683152259206670031696267735843001882886516091944367596748120507519938446629934838442573613407920103643028027997138380689654002642613452730462284220895865338228855430830539676891090596286790319798985360903050220304316668612956793047309410869626416922275072754362384098191431212336489366245707194482284997055247103646378254197108261137845163515902345004592584520085136767686822424981577569897148984452532319940011545613458179020331966303595863001202248431711732175416750321033416155359915904993175455470477486455008199723174936532231805909236286631602054355204843966081724193375306727107700674216899062424194047218849197389425712327466452614752785306057327927260383899416548752753673590245539658751902061818462329799709824269431599957399165993298429164307930838182130037958853665103757604426616912766961691457294730238685655224448317274700541915720854221102086219024944107624852473148264164180875870248855574405486918814066565526395921388493350259714039347020316716467391740525507352455539710605021234131886890034989544266285025438032027311299685280404146367973156323534086714005911836874912174337852207566144648830587378205956918704243005974015600939342106518263990313779724313083444594077786581515908516815609562029212090038765894195536628130796225935706115026729648780388008843505136561607827861279787628090388594115429523234720137852107051289865854933813154267405978913688000114088699203448023175224491013335832811793714544037599968670639178843747919422058087488071565266330501847371425065520670561778087089343788519800900885871144041311808769725832588043573661591388665846035269554828967971722752888587594192383595306794905995559615469361468752957746633822550943947118242197893707781808969031290245856220144726831955700712997131632093499937424455334247124587209175828417622891612472253834812131604822747657753561439121335249039444170735742065095021135757725384357880070247202130746699919228246143226697427525069874342495287097226380632125723736865217495030872741479088650180370934476106500263117905179734066639588725937013361993338310334000818984390121261851056251290054454811287697659438287020916977193074187658205944398284708470964043800452942805109507349033666036776752603242381624250486353374321058588171124385537801503281734354986002498120098753886985553582090227375903680895775017833116200610386469880601614609500258304326150138581421558826012727826029954078751943100258434888397113630790721645591906927291844627474045880608546185096210267707649772320208299930066875709425313441539868173165504999670949241529120030051325021182148995849313738313564232209341140151786035054685780228748898311005013988284402121644206493872067815397001981117386938447254326390360698736255924270174265486006092460650336198693695331440149797518448154092952281325765103024281721378435144356563322181181400466817903471183408262912754041435738466311680326280159776302860512212821978836554272575081346681571948867722271304174824014838371380994101339101678829104269334129110649394725685135341082905800063423514634804129287444759818808943968592846831590548053878951035867647199932508211153930684798971382381354935307582887974379024824955366778136147504656727218445934659806384134734875012242360093406532382644937966549165599685441746520552701837772153352355081552648038186786057953249298072095720910207015368144568851756902255391579682229994077449801727780182876335296933215163206448451503352129369597462822898374822842075097261713631063512554493118686328869375705866075369373457395401626054133892423698280932519358340231997158306075269548691639792936609533191660446441819805469720765011877467290653418828372205198855997519043959417305181229950589090203732848906836062168458328450734616055878078089732499482384882804498510907882715540883277607458038317616071344685371707797230066023997040187839221856777413413648525084572100965773427562266752004565776082234440360289884940784604979244696565742972586745135056778120518087488133566801848754204904392169137279408470842934749331697661361404578626464755692388658654259370577374317831329416453528604020054351194774870103483625002705095493348876285931675936800601123007717891816353664147379941977967982233055047953970023241265751998833546776821165099799327108512907877233960551038601788109295247485388497309191872060997113787077724822809030704256389422107475008405756129390748285794251569496949739535709829052684575853056465604655402796737653164153286740184816306901603063751027176786497846869117457877554895280820625866171294800080870414340127566896761693572351583471500678567932812523934637467695925747658313862050034571945984534851853130152813024790144922159982392899661720068601440790449002205788127940621947687429674803866311398249451231397294359081165397320832837289168377881615284478329825189413100217127463388126799131827454144099330129798902467536628704438248071482118413844918258360566689643139853981215748368958317590072631060544012049491018928527780949557011270630323356714072832018836829755359296207999002195274586518440549474867007361722168390908259897455487721094567619378051552139157887466083366185162416933300156341368919103422846655823321599188145520651346539737965134251411762034675567056563816694785811491410705249893165808252533810536380340220321594931282018276445464891282847872052102705131707055845776016169581534024822504572760967281391121333353007932759410825926678720515976915695345303681401372433881976469384119552511302230005285364929588286977001650650678917899417342684288632249681190722889701345359627493503748610817583451180486481451325293966682881031234472746991181118562166405332464345586951273859789356206080733166581872667184884996885937452958236751271031237543211933111237252872223838397752979210264362316864967611027505672219516272121928705241998455388557976303903125433145822189485710257212138277015775848041095790737201858516300991978878445703194726264525116421405727466086077992511222320336841368318611419173540327974633159412347355451389376520784055149811955518505151877842582066320873587128370697135120308640201475463498048862885656510170127409400521405582109573306814928942049202343499514892237404246178902819126707001069944875166830961982080490687525011641413936591250700622369577055376988117775318477713901071631086672331581542814491424016518111373229508539275888936662159566702010255555581046524468439764119749629699592558144721801832518845582092112355055067489523770207853072779996854907246331873994481158891029192903872208584440360392065353337618375200323955947792060900930715664616720704330785783241031839477346479444147073018377172644420565514410120114695954295697081004392871279606719554013763660044952189497773117121642027853721827063880039712429715184560487491008329805992454079712349452298856048006873542440031349235128144009478410312852749632267032709032242039764262472400032182767711470168041638780383676969080900043202784979066689370775283002058000969581708148368879276967877463320644754682389442325018463271278646126495489527573588108307721587820250641610177470270360449780710234859650023447377328926372435486462821869731693421337574403060606410024843769249493680870089991842571775110040619538499678613879599281827537601499841138283199061098106542372283346199317596120438255943647992282635803651117787139155384662862449816515725676012829211929135977771897742599874776527265068006061275825504677929949556146704327482862973897431139651444684634330619287880013128661995144641720857826683483903059656879397531385722314517212399531972400557028418760223166645830328940240522564196595623891978498917549545969344740358701190241906916923637748164212724075445711454392808755825538241967315846303538357058976688601433565425772801734947520314655621016851520921922373944197367104584368741541567415203418745019837758813948957812244698967235786227481140790205005173474477236578166892151132366097508357924463045215055617482071117320868281716653690660910696911069253916614302569963266363278491325577441841109276919573984632343471660912175819937436775710116202814681619516800585479143414591069450795616232695107537314845980864792487443050560067516220965808971393423482322209999632337986021359016564843593111851172170047553755196716334711669973032666349783920728870924584833743906664157810714455574183095945460915835015391323899568167843756388025709072593970039461735355897923949276757596617172986846661765366519037942153140628608983096839248887690110120465299915354268641038191461303719365162446843787136313856727781266873155840472120811663499691127924275915497293551914298303058871601539846038033343131677838777557072680906023109463264971490887206464527224027550294660826667610459354212635110877893659470920665258147573091360702278088322680875849247565955455168721331250798807031892519132195805147488229868882994110830361077591810873181708707966119537452335312610832740813378078589718751499751207349861281191650357818614787708441824044081938383615918394759519128049391540927246142877599873143725230621814034826711548440532525594535234727062349419860603904798246395808201385227333990379523875659963614665570692655905798630842116096846749733245962811917949898629571957771310297168137586258943279324629381786097980059932134432219364735999941395041419045254134507652271972805190605160325243946679179298911679479116527928809870871042099730521407258257436992485603888297468976332364274664524823287341869542490815272555652565414740649391404755309335474863258254385801588038720184752332233684895699171394242210352085153480552748423827392912913884695496634758599272866008451649880552515122087732591820037167909697285720328164772478538233311425269164701342523412238749037156859862185112474117592187069587152164097376934215930101262700004473809631763443863787511780122724966729166361144239111541668046273974992052514253213315382001926290143052812280688490556208895969523051844470183706926630253549462587546350867775838704607534638138035103551262786134291983660961589589050361644045017506924013693275995113910334432524284415681063966848688767722147811726054046502574875606582335843428143177377587196836035394149323447467203146029190849559222069788041758744049088603420446177261805565564200220642023722484016940538063173867120475983893439550505823059377510731029496958336671008349628514933123934306777012694964974280580537202165516971449423700234171082261204499206630117398374002241178171001583216501906828184957034282480838619190428027513756202415409412722735205050544494034184591555352484930278878103752176389287986556311445139448392185936857158395867214051407824804562543445826991969865439929427117069263920793045586573431302160534939333361537020498043780784041391345368531117479258388853376765280762311360830411247032598038713956059745301005078333463749160752546522868741436030823724165194053495885783836439520252453093629319176659230400200353788257480914098394950148313465245176507631048891627847448577494892104701375299669017080927956963682424225638088170296823189137632379980795298648874386793092654682065708077029277311628676385638758573304136400953063478266873543478851330778611172940702887541741010288998509110309297954902826288109022311665492752563048583184691380423043636319778622610174359123640497695593258356198028256421300422850332226620105491013836725632066286253161748250314555842460345693518573313866166827398266778809320965622255562743254986398480168195884075260363171527888014128670691935442898380167112355919676973571892552510547034872054832756321516660247719556770415603436538204565921067117449102107421828614203439676291918741565291099347855733869071079513025860444286645075723658938779604237633611704336464820885928048720360107220782868605595523013804954477522607076090287388284114971586105196974766184217180100628442757427798284279071426009944589429534526588846993355525895862584446327165710483648803767341318191374060138307881775470713828131779931629329746699235805770303772769253425235982581797038499235809174709831703196509915904360655886926394522754639336120514667142475078671705572164293457997051582766114087661370865064140972343273788456970990832731043355265850061022300313470763887869563462637144551762649202595297227151875827722566686996611382089098824366794298318510332710345688725058046693870652578992266374479287446845747924245902394793607377146173270081111306374426124255109268278692573364057596953659334383124022360583222606181278852734751803385414431983468911660829358503832022028856148083578077484256451984546180630418724792429102012765101442308498082711558256871352393574374237892476047659809506024511878647144020916454945867344470720953095672066500498250130172011372244107090842968755431938066728743998685919093689468692282421997073431372350935811469321713383375871103463847338392969583585503946916049153525111579289819484304946104671730526708333069838660107790405437429572150464043022224341244660593795162542912763372229572909317747688915503576336811500090084075251643846499351339929195051484883709415158274238281191419611892612783161196752123830732350845281246991031011819886938676897437064407093727233775681904747027354110221886782145268762410132831330763362674159983614161104724518678207179458038473287562327459392959481334568241340341772212515773833129634864722510928085667660902254489337168713488567240967703467353791818541027993643284409718710231465451686458604198578968830608483167321168311620837087638492161167411858743322456061931005245021948248265826454940649410282581778305248674077695349063767819475619512792369156463042472168328136109837897872134443458238566450568493515339716309478347572997522774151175278219932738746895929647052163553034903369292424912677065283609077205561491629089412073205399225225561351523824881557762782863668699373611939278911457466460220732494082561867093120981856203323216974131058732200676985282720283269885114230947030087614038618123412492853053891824660548001423960544228760911035027550448434946920716596466271401611401169615556437479650172599072388147250422821071154492626882981964963213053064196906707012767894519423853120945583007459132187316186115992181829221460907098908136770499305377282714105839640239969559135126074277293160062660832949740156120663978352038980398486884987174165076570456949049318387106667148138467967644223473492517643657720085508601648875180090858745493048481408588573831942190150778723764111885400293478263375153020855796449086396709309408959054311031898362533472196018037890208133054999662172514869322752126124510585507423088896303482565989562051577253075749395781693789250849123873772617852154033724913542600562643699541399677054177305961781597857319669462155828041188326147386511551985044103891055770818977034535660210060298251632691483345548589566793842976793578059331152426680359133936625577855407589076564139049340805623456323066556943403824324448394703444783323022110838135627753577170723227230043794094995412957969214561706078641660521507198795998881036860833715859865617842355616477305039819098653076307966130805565974053682573554697871167527669786991548039336917729074059414072543441070318556541687059769694926086483585374229179871325227350482026774469891393530540482634583358579704033248991161167727117408847946676262016877232980879066204690956456083695924338912754172314238779223173723025512328735277787785024926622243038340342951301121542838368009320292781480302262705119314378832603980857857450532239569405621440672601179148867252595136067995359218501807728552013157917668993942997360504208787918511866582781223579524290158438840026207424375242509360419412494525903496595991474208449604505583435527583504339836275122391707773865329318831510067657292999190162833077869580016560228655042757308275671852442539717329021423134645908881668512893276416777972336745830103978513270375133405061809056185074821180013946309892626215241060162562196535529453042284332851471244417080268806884551540633526116453284529256767746547036763095462516753052582128147517301478599139592084675504266568849500705369586713209870651084524586109552273043160180032529905124832779853494065973403590732280331212215401905899721149845209836467494820805560778972192957359190249778715794129046156180272277725446793248972198836490879490266789771199527087071835255627014929297351898662870717667123961116489937202015804261123802518283935376730443016860459509029461447939751087532053733312604214449017265760732822034594587418123163989743656509871475913162147027734732522851696904885252401961723262042462671548456799827940163781317058002992047799521087812768167702106312277668165065104867599508479616877322260346777751626268688759079624514530262981169443174209293293892294403503973633110316739871434391968756566054244624376946134159090471448602654886484607930005129575040597394292439451326794965441139408922524002396436041772257734544494074571992658769448846687615089882982194399293871384569239012108703534370288717019222843480254183569113431650612941866000129728636971174139355407801528292738982706448666583090736916083845109176722268593378462736153463161525123629799723639183485859370695154497544630764540672698885239782978917750074923628113925302155668282885605357624607095612611510606673402977809220083033870495189908813873182443489301321359575497404164147348149788563742495238164170206840062142034921594229507619158483921791032035835850360855239898907762337812000152770628260771770479368794139637153905700531355452744660374896081579561202395618644141765812688586747671600938487323218071411752719917758720142793305817262064139117977956583913643001281414825432811065363433275149132288207831099066899603064073453760088838936130979683594362459160433562362689262039044037631100254144938611748712135956987722895311633825269149176317213253858279067885252743319753308254718393860460587649673617313768998253133090383256879485101392457088968493787016364788595017581482071729019537810014189032588619292945146903836582938092304279955593331523240976023460141513431732111825262658458141850058821508716736418349238965286669847436084974920928168817523307216740925298324204719207741984513889589369015567819874972358980937333460624453392250298094770489752779012853954797041458902296470058534018590857353078494353352601093500898784568096513056825016976157946853243515120207991867901290532535661006945649465515316480241379465586478294991689316517369677227731093628103254133607021823795436143802593507269579391263999038237537877646518928796079421671207794780018318646318049804226075208514871611764335507119522906486901864820007761646529568832302404364103922521165063663154800662142727975889783456238098944680319571305737547186053913880741752122998976593715283197833104441199399994519102714125527789299165047517120421676957188445164960165743548054160359873644135663906866326175137757111277263884674154878792173102603930585672552422337192835583605683934031921374688245745628013584915691562239393570777272632283835265347709233838599737093967519703344028795695552607418027414662821733860565419532313464033516369244716608521001639307214593531704679314053649010008911869018663417666721487092274924517563510318831431920078614753721187637974407118100523208059217451275131000866235150932472693339623971539834129118161744925058374035427242098022192626989752039233328753175348098977008026725921776364369104013678943268545044938631982474475895163457443164208942026959863774597191401983879941039373680710815220061390961017203004484040451461468736854156427683947233053735409349484008337400799540416193005717960617233177028841033700063763443808262696959561092277479414402167145132926765457216884792394096690102282707677875371313654594946097478096774169291797081303410006221210753254047023074971037180394862812581154778385864825881571478906339839869766213110652515029402287032499200007031695630852613226320635870658646814712670567046786142589740683338323657158692684417933095646246532729806008164325394407355578625148794113778312467237293384824890796738718984509253346853929097693992041697576917627469446802503920896585224503054417194815621225220179448784365555437811366386539628023094537958411665757171151801146873435977274022726184465011588131104274369617397292182814748452222311446516041594015459173165289909852935333217935175378593071569671563021095102301980075873828417314129144669279864860696644214262789007255163406070107614339291050573005187326729307736516961293371995298599887967282348578964839721078784906788735542979855375372115069633507909988255822640028354068098212047187216819812789550159233435195188125865154310617663692337680652942111496740510292810364858556895867745076320385496945220643662101712598765966654751977826906524393314574609212770212350154355607033414146170048719010034304346891518134722796945384349053325943513129402169788757150955787839469087921540789660912291022302248972065735883242045518515113999951931406054502993073811185511545941975001071210175217671752910988124055565131763027230187902920512900587658472042492875938686232273760407738421871892545484775064639497738332701771632767110341095350743856782700437221437630277098881324337817654454296743107978653811122702146336202091510630531855670656962400752228234416567448438876946011850767022637733511409694555751250141791466224943425701843549910201738576102144292790175986466328838794762918311269824748444748629963188227618692202185989344033325060040690361640860227269016107576661622936110374021157098434613932944616675605199164535261433835007951641012241969883920438280935753516491223116260168944681653405241037059358006318509530964530231483290116154632856164883837108800110261638679213783836015512351569992158112933612239583557482247986529865008152893156317732145457651835560181498376363312801896697128236223117611874965057259750688441288312394266109404520361876944053328556976610277055800036094365792788310704163162806243647637444699033732669787977355595943927654638618434606497346749027950171647766201732565362728596317748876194565846867884368631183329137520026474895289685130437373195492790022533061510894636608515154297511153124136993246766595124885023217427025866979952327261153546107013611334153947595479576310572216818673379508726056482880490070863062779493665394834728295698262824999844605586245086443058947201249827018907164797004127903415110754406211493390557703903323218064157332946462118836086844953391218714008438970536646602846884395025475966015540143305457482310165167510160761118230810322983160874740441725374174238579570367387843433815113502993420938861311653479949151452917398732350300199207452924884453650416703167770420073945984587695747531409088808456140313928537377406490758639248351505613963066032087752998366051103745232530836577745448085850737776954136280947371250358652686628032830510698590997891664091667488361096415880024244561664448934981160176982011401790726092745355442534814778442826381370440731009836778523177288901995540680406031724064007128335867501965387548363972498320661477071215082067869731075507572860213103285345142595641256911672672905413213644747949750323958606578295878626184679034109649018184817080459603292133381815228576848524296883602798956153575870509259408420053675249490964275419072556833272277875960908315953730432338221150187845963733938099290840361645885809428420008509517062219020857612458412234775333602978659129926901543443643961728318658959240783948006259348726691679438967240600599179582457987834568905501088520680377936572542342411443025989754388471111271383499295188892116507021861989303952814158805253935906213806205376935106708236421291575340952327142144495570962706930408813316412741187661005963855147091088401092275473779740578787518513587190896115859731855388230304096677794344940663955888050556406187285133140772046951858048211862485326045978615017764858467579446511098483919727853531454590109669283625430674235877424066920343013038857565817251506086226122445092360717251930503226836262276725606481170723149725978588491979217382233492040032860988950190557840479936178678819585409183712129036470465547294258993682270547832718879923569456492050419095418575434016773967189504844520640459268310252818010554267239629240349150198005306623784522311111858811504613162391552668322064402285024662737664981396941866897050998078490791422165375139969615435406252127305492748450072419731614010615112009886780832719493919868624915549353792741167143610193578656610228841580432447990978379081962247398805294051002317184521399015528174332724983185833439830701666821427263517864887927072464269924543430978407693558605274260020307879386717613424047901364687459285237820896049717765277443075716959359097269885021767222192865905436723811939143628647648790460333041291432276037682100541274818336706536359363692747598830279303886145960012458013035380064206557958034204771864351278473717701404002882520403092480795249670726686537606849431021750626921776344385377775845634723210430322564189095092581370820180273280452560968776641284910343297099472365347733705490097722830164078266671719851056706124135667125078487552769196679574586778313904055558399668895370905239659941209468191174332814257877989953200214342726470282732488207837152670766867719301786606450435727808258416568455440449120066907607947509029426297700322820142622111354344765546733821355989016486941706668980290421501955441449324970781515477343255485071588760012318484039001844524220268317401792384308947732994435375436183355350427157189878947610821908393193443916966385244363645950063906065181053195397140849206962418678261276602164932823107376113561741026035927300057588350776825463128502085241173869855801086530187844778061207650003965420406754877883783120882684107918293749844536678471657544053774359236861988954357600841680570842855983711071478394408767214494432315565753441316982051281957275380521854205067019888498405729716309453538049022057751347786295943151593446131346450990086199733085543690187799018833699972919853430051553514775463291980218586219638817709562861635234476295891253474360730326978250089866745342107191511069526775276017041096257111590533727563638395928606035977202635777700550913601552559517453726322691063688930091837863762353297326539539790969682600111572513903229618363286898269286577462026518918851515198728625317475738010730578111820881998072366217564170860300507803483194570678974353248089027553331741598868583646051449657266467682449219970774742685580865182446085350637629055709301827979593194801922030518245969580250922369070127341069291501947508657859995845733772402007713720863688145865860701194189876871826651517886315929073149150755563442536311386424681929375656675633211293237901304626377187417030717069681128722327419591019128397281412474867257018465568598899765156970397127653828271245177008151012889677558479706282245890675064003373694077686391792341067188411990849189289529160214767633928082820803252176342832879878222265555892054892651498354543244257252153136474682383520657609387308885015941597896570022680991200571176166746573966866823808408098715667517759635372852193555387316959553581007412312788714087134934528827567847055706696215624420798803164780355076077114819845371783842510369012647407648277340815945833756491215659416150793848044762067592746074600533817563337644032799330400871121777065959997725218824738830347741149187271415604469570110930599319235020462098079956679064228042313043676728294941437301237096022072958877454423913713288625053021780240904169386695893194397125769690393741897322849668145608788896415739249685860208979877481600027709653894093586189606163349705010606993193211931086149884239198202342834202837216933407801231115950220510577879747373167097700954770475096242923677113651163937258972740181117481421210976249116942214297649018384660680770189041130792009275197882231930608928642070665613592862976279927949633165074537747646054533498071670423623555492306443333614904952104560060929966813805557463135357218942951115153574415216775814149048517092725688533349564357600753912483345461274425860123425977912662386095391985690824184367366540043434073872625241827251341409061311085144658650707272957980321961485425046600731732861414505547040017873785337404286803895727086791927481459137237890481830178493157271006817054476194438820189126428613821828383981354789695247882616846671009650087118342244020325444334602344095949651795382040087100953978425247781482032233465516771714939559905500180391118337344843397337775701345975023223544951104865409296135711952640594073650392101287274677223576798098502265738099067534484168798753866077882176736216130691363901248465113814283033245151619745281172782935851512485124246279092877114291568521961199907735216335918434203827035030434672091652907403774146438482433504287529902323112064350306566519221976472412317910446820543390244893150157139372280777344615770321336739119752894452475703148695096053890887519643522287124351660892895034455941973815805950626746810880348432590964573767834069573304812437590677168294494565896585908477823256337743511917636473460315093174959222490163754705262830438264096315624551667151626746337285832875854334753079479636879054427765995830946958907590288357551200009051892864699238853720312899593218125933467798581272738182909968084883366060935584013203617654868420687143195142367249998741466724654505055528110373310180920583959080744083552804434775894059184078993526958450951770389231732367954311028506073642380738626420229250759482359858952543812670108001994000930313153723909619820247207509901123559401787139564795921866123808099069450510642796390718329836770430880394470773889178345935185931674430220757751361992955997408884484569728099584844161910515250964499751212781078527433848215884497561065306272485099057129835548326933360766700083462384544597474425794523633592691242531865599337524662751095674991538751955473086398019929903503443268664713856382164255304894057325812820177059736469540065160669868665545396745551506082781344213240111406328511144720144554981994718557290220390437759309337814673072366904447740245973297071667178371670492748704049500266343023345816386538735437003546178258905955740135554458264327709705480435693944696992197950500104259900851126584440202734603865920119170268066267739049339456426357020969983705502231141917596524140489169402073865891778764065236904071193658519291231791910993729111796746449601443277050798817494749626979128415801540225332553893337484672607731300705582771051783663916617333736837272508357855784302020691120125004684417732056709179389693314561863880619725357621481328241345882120748216554312036219614626055874019245914742432811609319534052289128754719331456123462130463879620012635090440570787090270169552370633671496781350696923517640680583209770638958199927802454263903023682786549623426257601536462192697941425461715937054144381572671505982260040076478400486299448075355943708015105519765010911930969014548735361040204209747929733165496377864971459163173084115642928742672817779300905194202560797522171799488711688114354208580080633253973486370432565100135457899738293809989280558751237748358047593222721046422470443938649748021336609945495712925588318104353417751009191483232600277223014192790863802933360509989973298021298148435122707515068282804443845149873566104887465798621155345546946055234307845495162973195435016963136740021713136782182872849361149659141660851824754227923487776532150013148589631457884954341603719939655233393288164135767813923240420998992055471469721624354128790254623691698842934099914614339192938196148828103149282687464472231335240104544500147436339947513698974669709440039171922846688954169403165025663270895976301254969616589929371788820491272336717236025791793425022655150173598414904819881028528038910145214964212979555599944009708984381567258851119974475626509698698483649811361461173533161574743524353325186182730704362300565514660353012705217164429260746974428567636711941712178147408136577976703021680135182417911439463986948043101807477393524051059284347922020436109494454317746822407582010210486225484635881852170204238928537897929470239073742413371678080379029281439842495539135640593163069923698006740292071374151969635092182661594714371569420812527815543345808999850382641799560950760131319439755347496766748933158594268433398295582243728792139600265721278279047119310614619310370215443013245325116224939843465016021456521479273305331792985654961502189517888000045864868903367304669207886586125233250689276581516852651563875337051107514247991657792873848519924023543783027062478843739450652621991963721336312934625555087869358338658448609088070707174518523599974151909585070190082569940855500160267158013133216962073758189053148705197434977439612969535854133548966098111891792091666658846279496737588718542528246515606964440359466705948350457972293847991529297594116760978907894817056610061412782707287293395617569383369304315611135344763883558081072572581289484967754586971378150828056799954684326719856505100727155509946760678353014847078070481656953458604551635422292383980798978125824099922118043276763830085571573697761847809370702750140213000493799122688187194948357054955219527552393353477022379581218106003126076630611496056884550254773487291016618770091746096978413143259813735259545893985435754031182717360962666870137049112637691563803006635701012113959965440075041953710833361354904156378302218571831423584555636575569250069490521618903617421561401602963117807816539195829618034597088273200575686660597174813104237992463860091275010676599773601368846271424877519924615633768101436910310663188975849904808100789658680656143392956946889612532568990320246010690504700265901346398755011648535669064578866370301674752510049218984906092859054490582479699924924025190284385929893433850105635740470225932449196880124909477926737593082862630857271818382236373920320140977807892864530274417359045960429721051756294454184835102560695238445221008085236029242228275442527575219841792407698143705846735599311001921151485740545865399585489216816402229736493918081958946865423565753468675505880630883549960504756690095739537703704094563229806865778680741427283501387382277428918330409738464022192637184041478439880049934660694281062652280864403787644551740544618943419239203005728263441192087258092249708988320395438228667287667046225163588268571237981560035902197280728321550717768857496895005723624885204268423995549998102309182007925917423729645323300863996858562765715103027453166921028039647842714316840094769717728091600288670471013926466787338716386847726117002091211030416113047052127392896409322408791590563531038437648734564383179347831033311310470039896609082748297726503758449776555804725113755581086173376562196022970557604547727360611029662209435699878724465461679922072690872878025846521501612503351159695508934072165352390057576075319197142243812465004477297718307697763360581622791179187950815718747371824108064104824217888524717062468859147655425760742614736923307732528208816715442222568467664637253918719081300194898072573455403666165613798422913884537469331099061254484610417872306814400993100270044235587337329124843317189197168263183937792728510923254111903434228316986358367165700572425074445252140246982921634248105396676312621072365872008337957865872668251450980887736575776976480975347258631964554255857400906761065446376376286890975366891704981230098891579943261703100529001806050490016635694868312942461385223010957504606065844442072827943939641383878143469432024861998984750257585572908753502002438872970214360174897769620460341524163698410289514191754939476817716105700899931805948673556723119687106938841076202551002281785432526316990155292943769300894585472535680780696888388843357457145360093890496499847802669726438881557654422618984605080269799942447549124982981301871533968164706438255150816625584408630183461976952425257916360272431506539643531453747550565529904085344873939655675501682758507767611063153691809274664289542948387498459721547916045327880807559010264473348044376156057471344549269397433705677499534485222159920804732924145054270387036156724371451926607992548189063687698345312109936646142860714633527591226764179554900946704137840869048770103406487006884215187398019583174287988082001321285524232035475428356791240046231375952438922137621864275777841955325299845192733803747726562952998284502907383239990810247335984468396702442886139602199613194848732317130872583694033911507533238745399895962227374546936697031284807784469345735098005017902266187830571719733406270828323387592525076621231648629518388164111072675828816885444624370641779033338192091857039388437657540939112161054066499620310868677840227595721095775890039572401887545275809822766872511439727726830742201410904047048738887702528653044100175809915021479561078212793318614013690045945341853337223951713223236152768929744809668376921256290884941178495207529688076606780976845437905929410450976025675445735647409898863319498908898236431428710085516714952526034674331490650878375832959769629051807261414100258818389446327662103836695418732664514286920622249703582394631019928909479093198033591240766025902212967768822347381342541491606473446901895160252440674548071227989653012547392668942639981000775875238874992078327244802859340099320912396985996597115839205251237404614021238065329587695810991399837887752560711846091845925232841620533497805766946064159066630455054507616519005910320466711777354273754512838719791174526997410652902664708999223189272278282651140665040835514766033271147521535454824693668554107400763990096605045570897537703198085814467759479729808063643658910323437417660371904009517365434158148607508280027433566165732723907453701903831860660658537423254027994817137004969879808307550052119967321482998560490537418187171253131477638586374202632181710025077929150450864816816071949817645758904246084341374099443805229366440124866920882634024257779003252116225423312176736952596770200464832737410278589574785068616048173166049103192748453630851019686077067231207542834977271372597668771435950417738814141482900855314618829427719747619516953891256670697474738094745608522641296439164114251870326673239570168950660344962061628728237911139673623469454651001005259036177207949105969605825875329213639368235441669250112688645871041323697757606162669054775788771555116213272137768519793280783054784826625749109196933606479352188995252012298867185600848379145182448729680870348835041646641216410838196134190256104444587740123817979298971511502247839448264551995409498392740001307017234846944415132783463391332579158004790988973715530453218652467544765589650249416065786820271454931275642619265661700397902164522659220270273879192192907595196549353686640360799077597508121209661522231692515406765797870754167953426196571928272304648442328141807017008700562571473195012964397546943195599796704189615607977516174025969209235691496031902738775023460368686483311991813060534422098397538684577563484876219990772791277944787124005579255812287777851592232513152606874615561880799667819335429865312399554752301273822343792297579188718820326876507755296743344893878004498265226690291232378505318998699033318170194575475102223839178142552659426140623115376959824460694746150511556293181730727814687921374961448385056799272514283640772780810699558406997864684786401353304565201054786022218190028155605422173219426513172552698948076808492383103283353764813490923594985019284657469402752003235349579136312961329004679756987347305315932153690988148713864206224165590867580965058066514402284249315916233890746883193945917694025394149057730163821369629901798586709824475178087493395011634159499877273693045911798246498015279083998993691673883911326891547584010390605532399677901382933338986290703936438422130808478423226931644580388833909152861015770723497147189262950631651281786314577738878577744722263252871224943235403668115525767494326953258832860336942240558571211869388714078280253609931407795774118755527626648321303531263814567370767367592643210873250073368849701250675399381470665117039447426479908118122402783926308990058815138081513122809018381535384037785911408188576251069144945904602646984109513787311104796409462136767373149623600138851968730580546872213716537579456361083885609378464663793794513741941520315924513683072249746162843124517373137024253877927805847589999352890411592664487235258490844975465859757907423819835276767032567122968973403799747693447036668726035863373743441445836115884802824012579306994568388808443268096190006317763312398866076758966994376746557987492558397601865153528109637596188539528029139071247104150919295858498858599185322771899242115570403526425809779398423531596853701949637000041989611227716791222438571666881157087042770186905360320657173152025496159752608940237756508301493136304685278188392441777893285062142576222319569847402066114903601723656321813801920093092435242653308802293019238040469610577988059074400368560162392352039763153470791600485937236420021236298812191629977135977249363778200609598926364979187350172385628237861442581986494138200508924954776653339582233898209507885463929347965400659626146159905952661828075534136067390629751238010992549950873176316291560168650402617261041046948645724910255909903556632128946669790914044682530702045133624849738581195094235195455946851670420655310127952028389762811170235343517228435978042035247343265968093808186328275961155080919431871070514995365003604097477977535035726611793297960677418112332464362476460532972671057419351411565637051094364185972196178000375865147162204871831785006651475640814479400643456077834994735892162508722347258576898746557926091572214408015935708611196262568284000143383947311604161691795484981825901970392425731151246300860154673139578361958920938802969515542497500081176097567270862006829442771496554499122952189692008191766669830096423365537757552123582537155162826084229074316519195957980291413421203000007339409304348369123946916909827980986344530616996619417991846469767735157637051828966859677422175968106186394134665150851263158782076848962361122628226472888640338304629137845837596195991587044779496977741425014915643008725419274082205803124921934226143190128617296197399370548179452002892572258127715436013239323639502385499706293423629234910132143584741362012672586894647018322193724799684026148150809488562578043775447511337670702049661051109257137279870037869224395592230724430001123541871531507035190920862603782671020589381400307915427049091723509253634135791538711397635571583015648272047802527762617612236256317704436306709116928634131705983072488606921984683254983141358254400583266947809469155395801389030246300049161025869329308607989370051754569607518884773692332889446742757848315715382623273716194799807935992555637446757162739247647637607856647672709297315949555137843730784621424573673059534843065348509319364077407036727727391866621455199334756196259881811781553279083443005427731074399867461060106043112338449690251369054132680976512216144160226081332470666985609966484909654090204124987370807258668499929065726654393252427348650417031348092060888869294889161289711509260087616281947084120561197013205330909899260814816499676044880422032388540678016388313078405171595026502130008654559919178749428634476895553277830478347082001133646675984793051541647075530712593655497030514866772381382997232397828642285699514617511351240059997557058901163877425841609200413126435629699597888323099852442375306535157368816702802667247426894885587323285507672602916859318615475720353109253088588702684350237754747110313675243179685827551309071181934356430926547518123779158650382872848387671636173390426517034603469094837273614140300816452364175576845939268886505174359730152576589459855813151344868809822879117620517124634879293331022162730083484957143062442304172972529754917414305669070775550601182534377976953744454248699434332596879682637910785508533843229715153823918868556974374270210056837430858756299329378078270565872681894524447257675142925232015944440215362331310984967256572790940304576801861368983109538707825318235193215710807223939100690971917166374519030135281006044495402714764103965486672407541036659405181267109966153798737958450271193883493676119874532308351970300587665476104833869178769627261999551204845403200477115246035373929997639663363175424978475794467505738601368353919075434974543341554299972221451313306349351094075658134876763641164923069816314806713931773273538249980595079503858235870921434829592082153561011137169993729912634745955626764525354209190911285747766117219021937446209421557453165274596725798304785985663748795932207246571196886108141940333323889336354090258096554630889465358992255714916919786342589494632389397420482448991049877380095456930735516840008113478582786561590728892122240286128228564169882039476257971712027075095501160767261731466798939934465561882440575869028969327064050816741448812392548883725411804039057250318678235380705367175452952335821016380049808958125959630737907457221406377436277686282449484567968585866899721203551072508750348176314174242104325327255514137556793535903887226804756915984866912267769665705014095202362156039340201970852032448252430857884607467778125091060309137085185570137420423455166163086469400957193874967988733308564972079000900684004074666937975278743170294271073969014675035040555324162096508371591268288451352842284807756289277829248094605205421477388758671481687779384528409386269713243163515873091407170334216108583706583150434805077438804769949107041573581794824171201833458168524121662637026763320010354059602489582478030266981853556222580248799027664317549376106084575336778609620962380258948536871950359792668483553005353375939833322184069063357047322402504632358129625403431473621142341480859643550793906289817120747276852534203481676481544213862044177686228724791697664806012607906342493300297194674567102473210808212829929625950097501733157477081448712583646536526659837119364535421455314739986810940316241228994275464556602848106912869047538281380037495172802077510879067089296696182595533256374533028280889009154103419664520706654152460127424670983840282222276538552306356487376669130883178116299994819626404743724332246611909876735546019363456386865582159894820850885134904843260532627827937708592448659298365405740497827139237737886827318278416851631950722343097656089586697011039810880689900471579012732095285439720364110591531504418575068888462687287455074164934181946420430353840123951766859853393495280515458436656170988280388011915698405218161817872405057643398994070523831366695942378640952764940962073723715386617112851640084222786581377282248610980018896347324435519043377920169448712536087166873454197460207885142706431197770974453708200797769172206653839776066750623638877544325010424216706645492355898307466322684699115409821213881851546164463536442485181969494343127256850527027911586402737917239765167101125111471098713733307300177366804711369716590209999425951151348481422427560094356660044421149830238456887630912160775871404689321742220728424924353510623570163392057616655325303423588949825747382414678989844925183953467982524309943740513463911292774114879409115958106193682310272926075405161390338233515656748289834291685820965972979596546727571388893203835844958207951446173718689802247392554804332508364267293543703902550728104820207553222524444495084533265869655829203911613507062755030071471258358536084127885092480802778267420609153116414525389878737861269302744573701997881836221255794877413178924030088697012213066453949566273427770983150890577113791217985711883271429829224314028709635432571127399774650310800888279968106481067861385512948861915696475799120046544856988819327548570872035667310677091137535744185492436954740095362664040927659371659039729634092149619530438934522413170539977076675236825912501070044175828549631161605277470189195503512824648127039931945964817626187534565711335268436074228176940161534679200837605364255106119075500135926878290103628984897228736087894380634511737322508965129568902515041046949253058565344161813430469527972657567908827299978438221491036449380871036850024101192958463759752220318466087571659964895823057823543698013694184520152369524647505517854191044361791355244288421252160889769948470152418756002090273009647302017012875353455222916233857699542127329571542427648393748840499994138451344778154629156522127931507314253942659314364404390088973496235065598157402006597826512267644541866619684957057647739241019913401633712562889390042378062981392155160537595378691117887186211725117221268344469154267891396362982681106769825991549577766971083478271519460718187222536618082485531814924840333809650918318447967752944618541050271587388963662622079036465884530654549798632666322740673007207462426354208393977068320148566715049032374502203061593094506812047236067721737476840630879885806631360996854426093238959535010303789074474659371033716804644914896432894800132122746361674360441904887143379003266346183331381497778058074339608520444701130935486868234464363175916984079790362352838048584046758875615393365517287948842812097498481085556950738855664433240017823640736213402101445933068792146557603867996299160515501030288841012673003917923156506066090264668233777902443418670085017137919253139879752048075644234480462065652361803680542378383983433044222936781795703402903042688665877761401410436231045609760346333013301516406916542430657802323216412018276339793478815619649631338914791541912260349073010602904135371417444065605020857763271848036054687212412581970880653841049880965483156524419019388947195113757899393073027938322613129234410184336703846355177098616811022288568803869848911084246530795379596768843598599775404075462478086135114510400380355976840416040109120848626512896698517968282461596086453671021452036012239096287016067260791963074221033633934882190461873081555502503473411006296631239107346820324249937897464119969072835312205326298501094593431904589880595155208429910138016391772243318388865523421447943916125385436962174024154840799581446097407453685461579902067632705749212386395466483357823289601301816496957572378705994927052176297074973554010216038797246890094521107543073754244129276584295104872437129392708652967346941099727239154800321329283815627093121321327689276101731811308891466788427620702673690104896085088454980635226761510638762132950889303522216927272527240566439033853251631935076944723292109804355232833976646200580180572132947184206461725218277898800122266511574656219521387398593949580938882894784840873617914778097833480238818757613668289501607664670275874038954113729935092411571147573946583251111975455237705673322525489701421435700201250800168200981755107487733717019231507758806653034477735489305251986266586683558287429928036302654345073882260209379670063981100846849621440263303287253236697314646155694393821003571921756447208702382909815373417911166878215061696152467993989556907694151462600818285484590098758152690985157899938188751893266720591596848726274136325808733272111532936720702915858825101988604100331248738147239119136208627312434975576190711412387958861858167644806612725078321461301523497789018238623061513326714638922929308340332721539038975227651254974389399585188333179267316566577870465675771756471320085121795387423608980224393083963812505734080653174847576296002042377910380005493381538816088829757323206824778898867534183001555510680901434366678286487287708647392680652437407744752830615443758274168866104658108545547185185867302480002385891563436933694949898791698100677705162654714834010758333950280794568578939009003900249755672811292903818729313083126533280309061065317336424702546001875083038926481755873290340761210882317906015891911218505878263589513281865128563291993354655517937303485166150043154787358292105765831650417604027620148870713204946635038992186924347968379652425081386688310820095358121340448551798837796677723910340776648899290684373678500262923165734796212282587831762258392242678878364476583473168520137996192830594785800045579969370946762250826384529250157521001442948742617394802710702258817898820300011958099190700000799309620902822317095441061348598468593412497772880159761165642035567817068346864900907564032712633316395575100217446400601450132914194402309882172786397178364631421647334162242286351768974622991384778813957723970902359326156042043963141185530086662947412139418974275376624819430720856890560331058784448823005769884604347809784863834663141744164989426697175195949058255523377583452383680449529611966220449805619320716590572136664794039112638897519558868764179368796442435928063261932893945860944481136484848979849376887501338201512929984880576972019549930440276103355955188462916089982586776740176881899265782586387372649431790657608124191898880500098538785681445335344352724406397202018706755099820311755634413706540846742628489101900452447641656489929298104032521543297452826902671521870164274790354318754434468780661608363642828103452172685913265050825877971086763122258833376148959540989539269379057759537282909775204992753766541099844536966861094962313339192911059953089284081387754800710507986585667002566726669471742321793282211062030816658451021840707458849850497495954177676239238048246078178924269419080488958260955786393890202695900230647527482406712021076711147438308202059375628965933367725605105820448486549534968875393410765879028612490219611314890669456091648505892452134107944422951173666723194018032775321950144609340897106966391808206781983017027915121473670699773176694772626326571317531093649931704999017293693897125804620609717488818231845043620167276901205789239907247128394103946186470440932971290323353736770059129785294177114844439473883053902583995185912408922222247961774942175940665116779313187826246130025977547852701540968310122677592754023339708257990966486221616878844314107630314052991784109029140834701277370689409283089340973461111238215464674857269211892718282578609020925608055638408512109876072440560178117725313310444916659582086052861956033633598861999873565238238143550694000972569917961085705632504753004863627317361910695043884461857732237258373421725508435858009664290047778336143019196639527449534835303289216137647138606132041469175390423266724860957692634729319676731490395416795208240160076548863450846975455996788657150388528656904777404729896888074019697110610931561265864320651537948340129280853735464049005784250725190079829830151225047187330336820565671477739451527450236070217643167656738477037167346768151428607345170205075407337639167330745524069807601471791996761015375071031027154924323341376156929140649839252359110562342196100315475399825413127135112002434516280035950376419927848847345564275793934463325415451373035602519315862731693606395085816950571847999701507897730291143560646740147490467034604319251479877934885787314717266390130572814937357365593104163466690220176522508706808093528102639298191330596777504775405645986124051659638632287222357981296496370900664400702224475063741245378860363260906367762452697916225787056693878385556668964909626571447510025234018068219115384430121873583000360159642854462187652790197313247562751887660516122735366925931459499479264992722526588648760452919130611011706956398071517261461257766899852627964890454478291754159907362548529278279182531548080132585359800368959860308475690437587562617411137894829224612902965972150981420472527002184625764181708530552896836814747036838535804028225330644117424405955516791307119134218737524578300876163987927742710432822291621498348364655517719433407782123157662510405573176148541188210399645307548763786226246750482780586077353664554650303610569398557839874307172656846346663085322956721269071418457131651482517544483098697854834764902068754074415001840844706020514808736975773420314482477298627164599679103979336140814968485061529873863911234807680305342865750754039440517634331830249822304211809358548003400177223735561466078322714044635393296197834233562234429669015960744524592551253277405133182358032962623252232554885209537459302990230699401753286782138802193415791670813272735400815232648592629098120933883709102595510933964369527214163867875483063933647608856815981982806514873876616594842512127745690325144486694870718123666730405776001705575063919130112848136548273479854273405710460432405394468919833459486262802583713061210149221538696825587409968971494905133211759291241821991064661372846799937823006833612970862465937944530968867224309211126608763333725667684595084512977142106716263381709847653073079493501691809780007151696141787166369335166437940015662594079299484285041298024004607423984722015986825027351316420560124539908716796442714593785719769730295094817194285470240511982865317021842324593464394310516729768450019488900415000186545246675852476103419364209866071117423538588334882389596918615709688708825469628028212546942838660745257626560777617658674952901237391387601782061427920921793918330260596853798821402026737775372976640171226723703483228564132495645904677263202421485724227167950589201616921808809073763728623775665082070091313517968581339028345618647721960336881231284507335207526011821110856092656213693660201901507340329786977024700498812559836526379762538602836731576868243145274426547706524308811895041107692936556330294792221189016482183594237318573614470687227080615373949110481799814668711232953386647118360495754551602765545541039941216607321324465523797058455651365562587503187861593179749175777901134601965962120542607432132555142432573710050854541989819562488702485661397073139503105410972176179196685090436342488074565324821424328301611100799454259744421091524380867312409812345530870231742160389623498374092431557873726025136849452842786511119670653904399079541422836154200233546195466027163355708974150154503611452047092859321236019802185076220851432361455762049089095705690695504207175527142451735738061288520725931829922389866676184623660232321180289975504681456903371166322803146896376434842317175001737417421153860982822671626975561686258743575009255190329820955123626496997936869902471561027924781471012752694884962256659017243639141035789083333607553239510871343641259182459738899610707451060157186910735476478793634518911087376318418153413190382351091871488132716051740492430766663614973933477804542950249110866718873358386322004375712923274128786817745985469386101246447074822617706955625425793706478564815894877104483409972096040976035511559543164072556098232718508493862180305799230829363700849715919992020632453235983377581504779755671921381465620674176022906084436315992063647415952443868205845746537744249368234462335978165019821340395721235443955589574092445487968414265335141938470438614160323814770651603058560506475946553358650814378792729654827078642583124327358917138962253411985799428727248622077802753102186678482457833693319576073615825097172454632945352648986946774126664866696702663956756959028968409585840485366840038422292281947928297160551998337518455620871990465067396020413282695129137006117810903055167086691486500452557167190999288870801899115724634153566972120543825430651836949854281287315775805756506344887773847847526599952852513570160776313330224851414735446838169820818268077017493254187024579506258213869316010723689166658051000716084714134721226656276588088327209153880382812966154528585303917316048132714624115401869612069373213993182530255117922833544789483776418670096178275694998880725303871889169413080528122254200913583534194104513121283337526685380298593246012144036513706177775883189328330365079936879453900537891692951379934585241150924876621200577324022278226822798312226184453176340577867377024916593803937833236402753141146070663525336055435432032186079527490087753315884485989198227297184816821252387550204053126855162974798803234306381432036084807431170582406835924922346679515950802299514990215838933968449013795013979387514157969402306488641110517576796683093037474450765538764062110575794164670053367032168515519058224114823198538526553313128565928777822898823189756529699653412582625786090701736106192730650884082515348846764773569227612946923990444515344613089073293180797143830100679341755096369727504468591047182951025986030371052549016256445834528958156012972838741740882650407590265046420210913921565245985595039542296502164612049033784881347094846517470967687853755057955213885863908214291073353015157162212266373245113097314177169521647700090034423870407969332724660845313902018741837843591537725302988619536280041833894575266352134756659564080007501648377648568930724207275716705059819971761860862853245887528050732532490156344157523145660952170128552447851233394253077976446837476904359375655877769063516526177439914621791977463107891494801632635951186358128228928968900317321402436600606055032437471782915223271945861126872419389334059611346081472940552485748445879492751449307464672735489271971407832531555980688786740973628363080300630777223770646175299921328558166509195396861184655798696074521086338547353687633042609387710337331222725576571004267641770813139756227454317458316403292860341373846683753276742677911685315806554671097930337286649899697328507409537055467709590726811009683073302314545817888933899435475657144310469527792686803838656866343172738607895074727891351145435598602999811855817620693072305811121170574685398280917163485830844800883948040982876266811358126611499734589628288922851436709066970874453936164281857458529789073730433749724814299390113796335857586640967471002125222292195177913437692926393860465995382181746743276667142803482963520511855690003930247985289663885487543538852567923642103621909691185655012813778973927467613945695543250454257857353808307837264816215677674320437251464189444016069533781845395694816148947855125645154068620826467927214509613801626652615874369183066653367577290805294691294107253492051896616351768539125383854792704655817383018747970103813064401892084188485303016904507905496616397051083663297268268519158186339880323074731210101732818380680087810152037775209013412408512278411950540504309779218231401889053557717768146844645414072970026265092151868027679656522940218442484001562956123625615834753951046217765147753407606607068216767690661826690183507533098873232181813370962469836448708313242034519985119101570444078581088427042745323610842662077863392151758477906309203535174744400618212541138159084443296607334238275137142653003003234824569661278343927561687403995204848003710327635159415661219892558731062154662353259627544633091028427805059889916571742697449592102884288046063763474032027426253859015423000453024650809529730003394040323102280394888476922802572064323466581373907543063376482047271327570939047599401257959836161565298243983494503563238519675498560324466508745307116884017324492648461890336683030554976011929298249295160798048038207858310092442019247543089765915177040299509619012302711681392288279643444388776250959933347284577787019933840615643424815473114519453827763351189001415364962395876425027807133116440512884579498753001409455436727602642232105832268914365182523403204523855107829609970092446496647001811865162734512019559484685710652818200161200843506641332632793923578723151986487854850398291024978980493521099029051708655947548473692686275263247016989538459571988971018428860434242243523078145488853837149928020984271856258691686505020028897039628296631215640869415920766386175224023520727620633525435101050694648590065339219845688956425556206242366771884658902559037587962882969292100764588605475771238044778407054203763329288434140810022520844713484537075587300923791529542243840191987627210286256174071284556372222464222986501453834378127020730329961152076331799920930065921200943812670394284925167525223952416976068919651152702257849709211886552531834928484807771590578773286339723430844983221423236130546218155002857367464085930578809348041293021092542543652225256354113811322705843853459931485349842780354717381984791477075121546588148899671982910957499932465489282289278982320010886274387170357732542462201065066910838341163911980243757858350814603152806034940512939445030758555899448509094438372568397985538965672772059922217273039524153532601446058314777579804684227027693422568803137066534763433071725579415224746649024025533853458769338136501455859552899379913517286414201359742976609287175740371881513025863664480732057935300474245729994014684785287619580553894354586351196948718934406150418369216495295893318903814045621642243603908951963101606498208997743536145421798584550938459850620771647563827101669403570701096836194029490067536298945059790863577121209401273687103653460725614964843839688212895048688924698957300656358745112684815861347228324568885519508534554678012189675839946766854654294816453060319678326773920613156824347230760125467084910114998639951397546384013235396110399036619088045116165511797355408489564803939789672342926085341403039940766412597306531328256072792926614068152714140178331183222419801594948153282370398956810051489740066072537173330885385878630651086874496118227545821355574628483973117077119887024606806614387569226238459848933028523727852874080993137368209963634499674939883990277048199477688908191287596302991505884165565407822784395856309557733346700172958136751839168683421075572240963740580987489105552588117304879766103221856543153599797996344399658138124475436232389045033493508294694135082227260910663808511495882795526331885301429938228087932152988306823773005562134019529286570637855680892721982428206901884195631613531037752245676178011710550113760931233698036637132197814690617892017594218306336978944126955905176133338091695162244057268664509384545018221738561389728482117585150351301183892546152000454680648422790563656923377486177569519510217807075148561347071100259703303239296438687164298250994216673805329471436732775359787830142128647231186559242961651826369836370855896602729512238520428267611589627383908096090877927141276598854015352421446489484677463308031128281686578158430542281966667941761291133454513845579466464099830727070637144400930229269151300881301508215335424217452808891610049470929206778193272895544325954513462753122780067318063772501911273707426798113909122507495287728364974847323826138605839650638147416515399230174282066207077348570713091246242751970730529163369434430512511878863999990028096183589767769289274636131778551953682839216014726670015972157201228204944197934250652238791855943832059631107690643620123037961712889378919045027102758041719853535622410933422678124666753537577390444083628356624799743953077120157560975804653686278435512254246011197569869850533575419617870494232064561565528442027231482720820442346532381695191465142484256591152588948169516018694396759409875917952918082849446738392286595192735542480294784325235603661913715848750411628214043528665176534135576865078429615911936907295459067421273393054535027019374247608411849507133122223027520587931613708027551390376375938903835932024991760649103148499160229664614298035225990611362780867341695908191392096214870483856792013728795131939812818165297177210842613236461782299776386603359347960976646941952469871453091838429156593755415725304091805750549383166856869491019891337577152457899446826013045451185663013627581523583975247023194249461801092654348457975359123012143615428341836325426521316272038879158915604971758685470224164806527716237041242456343722528771337497792172726827066500941724761431890485634091813799434634744376610600432728299567039805262528238456474316222702379578178959935663485013157548213136856914387270247338545240551711676857710548449091421393324675732727399110945190816807318714337828542398339009130071448284015980543471913762154724380557068213027737530699513612648907252207933960368631714130195421943090576169587941856576616343646694225712924779010426040247555119940623742728019208703404317608579193945802395510688333774320732856143592650532927466461336483800018905786953893193713566143276709640054297114681577912643677945068712792957078647649184966063374755462362636086052797520049427189649815555975812882160960178391695432815789556981232611193468674288795220727255182976735699681072942083040058201433240774228034575792459422572619181227980428840494082506544773996515278336850087019551842906852315710887267954985067939574475943002880602840257977596134564719004933375559661623169592887263451422279821503823278236142368728508613103309325041218377266318341530523044692694315272784974624940360408745574652962259512615673943804369512732087059504339427020135130644434248979251362428218670943400027918665294973784734998768764925017604651036393820895219472360655091628683018420849841915731242098589691975767128664936875439473926488027027920421451533587279961701916600834678462478326185724126405321844626608881963680425050319523265203334114621821492567457618431997273840612735898527951356684468016786933003816785424356521067021756668901058716023827999307231916011803037812912218765532813464222178551443405584174226965883994310758622312054381865916200772969194413972836981141300621304221785855622063565090299756611469776369487813431790879310734039795453599188106067070741041016162692838425983824531129484344053962503699557160252815122505070356238611128309755771244428748689918705655106659795238419262790618108493987793338754173323987690059272922507064890603336697836658974427176384757420337497693838566778351295915393585496787001751360217622501650414902904093832148888036815144167551176111670928822881512763251660895933151159296024653383705733960322899488870311696111276568792043682177312913966678283833212247457060143685898169752365449692429745432167963369753736301309776859035172066182946258582319182650696603698747184293982610619572776411234230059351289662881470534084940572664268844437447619023607906230308731302606350284012884808749124741697510014325359061467901606751923300156751363007103720935610521929336648794045906691719674830846620329192470985594635356611105210823887828742573480731774853898125968019081820460399384392369073335340307218376526620087244499460427199043392777032342805123136728118326991658290907239377314756652359614055699118884827851820505999414584621655119430073965094398913559216292784784502366335152816407784618947376387973422451068100093003228610500854136764692060712048112985095865326782220135587379642648549017671663083486705130906229083291070617297979524434175979980393890521701239941883536573150848488077473958730181168953492573732616778457362909006564166916811317802576408397376609997255647457282636537044785422065674453598218671000853871635959595730739399324175572611884188824893725877877833811963340313493795537764588247584628559515245025197974766877460499806603203478603398324067030505791225797211809466266247282817750450413648450738375196651852109175786582339430718239766714502856792624831381153265722439557529934332014009242371038137636604419869813007991237420699875402229697576898226969955480608376975958024947475008312251256937366533235872255810120100619204471902308805490889081912917797382796931084491220446478923447033285807526593034494513455027485764440145857814734139694364694270193911374180890677764147017560029258174924756425670717591923474897498231087071000064405104339180664634553723246347172432651178198394269696103363252845430947311763044521632493043992772997784737739867835350895013995328492649718701239259918618300486392137833808779218390033254593816361184383563291994558433711180154768344765692159831435173733287061958781150060527704969277101965846453330431609514575314869254505659913967571217719161397162386218775675425614067769094327809379019062199244072732741254982948030650664838440276095177953425112553814344539757176580282572143912280498826059888197444593756877451119304447242164320141350937740628997218647164246269389010217219242627520011199330899606613266574074896445204285092714308957844385828270935056574278518565517671688805545943014588039080269599200691656669050135563789859381576779774954582198448643683929474973865514719347154188692606372274221372735320843969330539423312012196397074154581297759177231887475838457300945490765046696681473788993205576132376977100225771529687721891840752603286337298232456991059854526932180820876826874628436133807138359269822353670691285968560956772138037873343160995357533131572628961613478627653294743438670777491698239338796510708463722254149965099657023861986358730557192789958770383662282399997179054432464904265149587758175963928449419498192260397894030595155173781841430587434559628491938318811188749548269302027252953708950955803913289122466123014202938854878917070645402160108411758808687530910979774721578581031585067305350714756082199593430824914521060859969980510712724026645226809374973203427806010104938630065955038761674317234861055491899696777732895549817082100127678677109575622049937582281026168365266216275892138931726502273120122843952140229821442967054593712943201190993459051602522513798601004417375761537556719344194299698440201874119999048242954852186546532601279282883548894951371122119125580467117608290059782137254326294031873735484226384509826646906266908595183877266632877505160622017051431406968449480342521232475320257340052226051797842652678400646372563137446046994455658331149213071903743415666916450777366695247752309119857859261392050509053307104147235523637105234765871262494899637908815010306389120206407331841629905151785582493445419926698406759633562728999424970283626198498081288260973779983172239486972009920721488475514729003966952420797040766562971748530589511024670745564996477440069487749614452464929393876299785907184440749990880220121629773100008158270030487669744087115968319585350306227520270378514283403824517643412301424971883747837025710486797064279937738622041296139540735973039136532374858860093556481284516847171185126880455310693422744008875164337166062275811491910249677539196108927121689171753277881041584859446480062163839976176489811839440643627508098424784969593154068477781934086821222137576393102877690092130850563693944444087708895472644726792283004442367731988191908456434228034564687972938114753243262171257984004207359488363462224990261246475569858000902225402987115963789019223941286425539833162239115061249548444041156708435802048994925427764548752551754469758619466931486649710734219343127573535689479396131077547162934015613998309826206792768831454733072021578185570620869541861968904410195185925885863564655754449998041318506001682331293055864565551108458949274999056871260243383246386982182789260744441163092063051369771721490776346619194360495950432248781035407698330462277193351385821140314863442604734204463695509690621761535304182595922166533473501113880715297301677987539345939583874942193183838876860488581864779808589045625085204085424853753111396305064140132806156574589916175289451050599921739585171152713992980543171775231617868891290321621598768783881089211945565544193467109289649462300741636613090560349895473150211539209621452020530424082819476379664691230628102249556537065644485596820340832862068547441100214868586858068691093532674054402568883422674586455818948737145989225540684960628179627621240455248127925471938170408240680979006996299670911073750496519109371576075022782311757273756701599710655669879739484589445885392293371510950084186191850264957232629935698820197200336502339371456416156995975527757753556666856933694221935925083126657224246632509223074816630225545303407589408525658586350028229647520027000150903997809656149688988394950633232224423441348151754510602789304469084421764394792293637708641490497527260639326404804591725268820584135031157773617239715540503239448373488154352158377615905963934587950384708810312073351535917145716958800921635126421179225092889121216615299615004888867418264328028758554865748543915162421439049389089578433114845973182328164706508182029467891077747132845040305792522454457055633403004054847614027382475229731340444304515274272209498677707128998412359056156128138380125232463890030966415153613733463572452208446177118886626791856466830471180118957887047131107852321125601712512343377530014617502858872802087424155136344504057658292589556749026582099143975678628788328325842746160136165378402434636893437060730534646381555596542708558103154790906221590556119364704157081029948878382585438537471619369933982194268787703545231519348611612215338540880530969724368813793926677343426987266561363955047387473241358082753902781018120461712695873315493545797143659223787941439504792242895849196709787142836326840585681306265608678050143792500960668656773964005267097765180571033938352100725896663983922586249568737126391669729681444626212090642189821788108183634619392221037693650725573235166005948540434145411367882290874559895754872397324857621618229873272146015150568011422446508332445044046311719985255556375593596178722974901894126104137786877092260357784103277653992579727153727535715502601608990343826031802238685389803686134214860877585435070212229369926642226394612377126668320432208562955836702689832424083837774601409214268151615503751325222341724637073255954238603621206830295598813955234397043502188308564633461302990532106591870577062457470625204326795612347210035347344605901655731615788015455543968769336184431186660447985237436233524225173446177073095585080555849994482834751871595666760917662322426457469687849318667829151504126982177521408082839777501583705254504313794286164066788358684971399608869218952042889597281185109128624123380734054168867183978935371828417118677631556786509923560659202575533947052156468243197149565980142576117021977431308658850733461961859422555825298635155567406387408108579378459867351367411587385554660522432214753671658710956145714176314755667073419961754277573693213958332263298131793527289668270774775259778626412570332028349060073959796609611098911000370999469281140531785784573619383541900126039887830973020731374047454369368658238054963073906316748114301250014495241060786376136051660698072446033674183997673417684486923407159704496600024425494841694704918063109848854178617358523998179447818839479916181558138724133446202405966337292554084128212643964419361486736245565971296985723803481707441457377920550836843554903595035860123971073386774052833633445783855646956178723055413551042882295394564854519176165138270802006471168689246517572906969677645346196750235477621014700025408652672103360179910386411137751534328216268472013067372176019106323874689039696916684853872946096839685601635060035758502780850749913837735930004781455303541015797388073476308470689322806011404992231977262155475835846390294475374793256371785616917551386587556853994485581960767522997433289148008997849997924051989849481505121021872907167462540543632309862476179434352474061607357298796312299407928834913681203687424772662164882822373650830962817762717228382914661564090169025882417091078029971819841070490833483132685391410344072718434184187350432677649009981585658743627002629954084427016039246128629299150854512015134816792642010438708213052289966700578098267470699031068466474472662542271339364861740490138153168534310732188853458815904977586024604178019922046447013047993306064647964496488358173291429107107395007418131926608556106537818142639150102190317022664639750251613164046749381227284903606439523929878554530216155797793124426270300100811894540875379643117926415305204682728833086794537955738962855780970217348866906222143194785870070188497403005794466725923534900550949922922254836985361950092152366123014012928108591277765779805569882699353611612339745735045769114002786399481971688801839839717804386116018188660409403628141797438368434917491844263342324712800651357650342458583033638691597639704639293500697393661030921470958746364033519904074099875547725604968363393805111890016142944020201654817620701385463824673929046070199042845803453056532332136607787460397031202164154947851356831306291023512578768831455674280238976980446331342193717830077476681176342000608259511860501807273096561289534572128057406204059935845633963293297912666215391837110982594961946004676919045010229571653401914599853936362561780507540801486412261689500778350961375696569242679297090278318360813588302574603951768777466131982412449365623686956567659842630332574406288183425935682967970696975941998110898250970790708822089939416543284391470455082991781029995232324706186579258195044985744383693059525143907053649751701335223078266309290380113979817322878339491587086387183908724195057640647942948915421803908126299632190324590940504267904433711709124133853585147068377577655552713899940945362649262645063564279233313465774882459817665237265255434970600448299755897585742771565372990471832483381938278317416215386669386497388619741214522825009331900336864470626320185906508331056344724748358252025077135148662679101914139286367246451926085179888556875155133565191750921109496054905439535848195293845157275329558614544170448527161269137953609208227947574515325936822075374461392261086192672431297408412326115461409509145811158829500086581223269261480353398567678802534828701141755091279631204954146349951570769877321256939690912582414559532025650295838770315628095389691916293358119293065923520602178504630125635135784164825342723702969556010279037714919225441514753675882827811598097810347365758331889549219379846516806414213697781277877393870276427938356076772607870481749229243111930561571763658183980064013785043372759087901751230358764368767152761072803491867664125174206180219471592282524704092163937558510210719482522478107256693366131191147841166364936614482030690797620395960332483854791058308538383496602307567136477122170153661944655200386733343148526542292452044391942402148079494418388387419290327863023309703428428716458227223783237955871791156745391545236345677025121113769208726968800422013377576964304220242510997412352149585418636770724203755855776553177801442338273083696436943599117327151007970877439916050168366749714408428978986236656768440567982002054345111453189610608803465491483297494335531641064181838840653894534316937011122398001777403202899871232860954536202350130762315056387854406103801587804618355308110928679331145551710203702823147842357999010602995035946596928064609479552837309477580877546134014153159991483070504109379857154684593146440914722552136344214445399828403449191011045153268075434579890863024725692501047177540882938715708558817418075187053436859918790852310139819002845287528194928834626585542171250707017031062947501381608473285506671035188189087675823093646123817840933786407378981021967972970379337794317116368953125190448380391002151800448603351673953544826953424065354936643897347752292267482893927088913504785359613749120438522311729946786905387210512690924128175645511350975951368564542702181092722889167420649758485250758637794991288004031373088321211910331545803172609343810565650757219540251090131844737965983424273362400148945429561312731428077603943493957500201479891357154180524021109134224036359116073283410948164128054076819267141260688055495744812142840789210142841596572611172005349037809998404095573585079236527883848959092919901666361911820464554737864960205461095458781937685665469639208315208859132409443112014483189336181885233059179157018145624359951283933695979523056593655828560353860741363157900104949874941090753714698970300736968062722215185942028087386194638714690537555349526267998107410086500776539242486208749231473038536110436893905876663594003763690789303815188329139106331142156560528198383747261018301596467207409082759753452886802078330433530501080514403080286354838059157783913236367864113966576890178561476069731100283006069953700490416680797616379221768426674788470050301053115195316160456333042914496490554312381243317811263448510518770951958511209967518604434845218942108773767170048109267308752410162937165907127001918728943912213453998564512381171458386444862233388282612526742971583084184613183591412754635724956841383541348551091057706713017714847015652530934164876258712060711465961504779843781143303555746625842399214613836806934857630278709091056118317054362270811456179336157487310416820270397202967227882975937688590805079460157256021158497302980517396857098622244443407431439462099013984468770199677608051732577299789756926947893006671714333697450638832773073908223373089037138012885622519380982600383393555136221106519951420085338855510290628048633065720781890422300368173324934907344926245707902642939952304912122699813184811601219074375898837464424110139134033756886734619911273760640747054494688014822621900329981005795514575892421273665283324921691489688684169828885266061652746443606102719459457232831721961326896653965586528551267084914302565763309683660654041460187816051104302838245603818306974085225997816922124711126380168687934541432735712652964008667924033481411705130297509846521218292077246051954045529498923216811720149600996378293545403226097071534816655878046342566694220757629310964005265663835976865108660578799052629071326965341090337355900801609708699171595452616607093114274091102407637998829855236675338315909996524465734592851393724592005591755489752065309307161036172886841302306889285950689283167427575314613168239904148206923363759071504162391400378882986914545019587654069995373773025812562968480062445358928034110504920326016315836262243404440577472225199730958836181654807511519630357586048793139454075100629783265389289630166042295377895183037196788834967349623185764357599076793764775755867367217730853550474131443718801490165920681504278413402418002392058887263759851682541831602013191580478543881491713509217827943719436228829022895743324969072795570068051535970440111766021662718605450546342537494288318741684482986739357302540766302768439920505378401301172393300623659780869176523103258490161582352683250556296908626826349814129348351144323374190777817661493636456906493220982645027513442285810065912980360161798192231396400318578958077450000211244142620427892733854047170892119117231908326513779835505811093937012929987683501879616840317176278792312608576178039337191032957655346775701656302571683655816829362882620550798488870683716733359053012070191622646530025036535145291625279125046703549061106408970822670752702002917777005506466596978535771651208073621968567148193800820180139599226389696571243906061226176331970799380842643880740690754623192046453681930258249044560482395438532765227149639358631320397374168692143997418440663389997112472933483040182339097984447705876761670271173505831849928031303735617223517958114191399623437010236803614935151374678858994909056373078237125417389525483376410051883630323994178510346315647321182453012927543336479619405307107257037590828768294994697483088520590458383191545044557763434777487966490616400034871373085815217754306514012403468953209223203368427531989955831611793220702138950419711202618793186201190191505398024062678783615903588041552484849801106317307174462001937318062764056332915817706428825696712425542834775779782130284969047672435468154783427160918381967989124679907216458718972350883363267893042655469885562116234724852772897482348305609725061700018078408225579284410339439073833103134581381221873039439776044966932776547791328940400503281497448450180043864993353336219691722874068849154274225855089322069122674715496502371552029948138058086356878495238143161165026549686440111593359780020058643269386472737289108423596157854483319096360879213028321774070686079226408288952708477883851629568804049504660235081469107851308915801098879795085038667194181800283115269340428548135948869262722499385670797066130052720527439712650929227021846926699697764564197808872046572993536933395321977796201440804967197037591604028770459171227601714796357855606411533506237062838519203064780012880271352421343424453086499038384215926092478609773056222220401188875988838328944683731645555569038330661557899260909888206721767956408406795131921698172562082981942228659207539198936026901329019187281976172748661333969419049096323896203762247744129163869526231109352315318436299257410709567347161577587973532425568149625632978687334955834665891131928986456490908852035124806260765534373185913909806649122330513425565334242055243870824521660190993294673604814511761252863027755468826015204757424885641606634175325250629392994943232378026531906079559219740897622988949096391429962998832181074469333424630873373507505802980569004259502486135524107493078229299567445777245731538489401913918265954455013651339767733086855183880477977612182072103390569125887000982316549609004213953510712572072992564820517410280709011278910274426602706668378711435082346526169868206567547308877474993512131662354368024138524712077760761332526966760821684009706816900227460176119118563304910905815857653734729253917917367245848061326547486497983281864232988975175540121384750938963029687250318443865761678355409175023146339484439441127056315737708642083296191238129935297402152167270946366957359409719959366804141432620905223948076144628309089582767654881881064010770545522095486995589213967834449368860028227798301476043781791681627820338815685728641255335031522551200985033459279084451393972539836300301708172405285173322199366871811012173426007862364656455659931958500820086115634285907148681487044249448888474545207962268179296230847827137332375451741616268503323867029711779019795908245327012157164726160410326738183672673475911524082778009251193217667354626229089626265339246838253235746492411021034445159921539584317463398539062402298754144300556270898862580860570723170044131223007648007364291023412363978398899647756303704473942166651176739530850856352849431929225255762055016402168118354383775587749815746931538078830596109169477584943519903738270404284099428699670504936337215417324031319565360794386605194138762568278849892984218211986352405426342513282929268384324937374403426035787159679524280409645548579538604387210341970059497110379011522476057201644342889229674507817122777681245377755177988307913895210613304792397315579841784672110005480504468811404289328376775000545373431629048770383722575155583348002334395826175757769640549155777495110207607336332596320250962680160709965430714727769678787881885463591741538735797973816361900029028504503124103543401316197977645311217271506534548599852198759755479662026441551928853250351483821066504619289482290669459953201014687723128926752165803736275552447512425209965315870003653886120274525378717975954258492787270827768915687678936230998262496233692004534135277209748617487715410571236942693352270453471605443148735186206182436726434982718782757798835688255137411498062682774248285980032565451648213202256184558049479631016505022691849524523521921325604786614247382050593444584770663501607925423645330085084875245423579885849273069021192453101117114216622184771317122845061788756651475213860941622916353120644235004708635195368358335952023077543373380550241755887679700577615483021346870568341787809095155856242254906817642217164058310482340617493001502914319717916245032377232166617473943783766192358271962404862479036131429506108096537535969077793683294048690932782597060815498411977446746133830425571622502661707462509579208298056025976065528545918552789759991228548659362662450798345315207434600897835346681061598902799118295938038126123168740991974080898989590090528361543760287745376915150412208507417893789008127020131681570046954959390784918777641545664062049541098205496478479460627582299494738713208206685929498871773176040788956028529512604940777868696684505210357928254305601405882616578673489046523178724636751137302793063648204989211999313250975397505450108096070028513046182474805474179855241834354495694595897269566868431477154630173981613303353483010176556071452825541759773328485654142865240095117186203819197177292030953413755441240881909420762092476042082212595228420830764950271144051337305857215209764053198339451927050356389349398469187381224995074182018999466323407181879557942711809645961780318493881740272751700501188106506450651363409895774578963998979595802463525035134046595339011726126263420462179544406063702782194574346737871014362498195927754878117532714780320658545315094922950584491066721190762202938851265322465261536663978342431672702341135099923010655022784675484973194196579352263191620758320335461111231287099680607643662347181938416077698356937635866605849140266337034831784414053453730656137105245741307504630306968016187375473951385370681936736836332306569099587361587729603279099535675905177025412215630751766513242164311868565766749911069015739657846939153338127040167351522453146337997629580052834291311256142878617332059987796431476009341043791288732799790751613415627873438167683463576497239553259062670706859253463949903777626927270830202674563598768368699876102273173577837996513441723656207371371150553145377627671552974794841623756548377574347058261561571415551904094942174724324275982142289087360555346396115247315556723646837856275237762278293292006650751290219870782388864498520956068237885408165833933247103993996893114072228715234296342403279047147222516893303878679933355935793802130538355762594292011962132160622359101243379082975870487235272876905504220920269021305063511550311432127536345726849128672669681736587566743274053402608884016112854339650292138838344817326160380048257730501795673918508087813521714475391660160486434972735190763850575788733274740492294137507779214022591029630663420989552000648530529696225242224961635756340229845839894703196375640417687216340959156955441245361962950477207706197147377311642717798569630589081476677470521116021489282309465837981116740821337136143680615864878437600693781006004346404568452914958748690045967897699481995259658103764843589707267853449584231700310524933496664379872724047060041294953127191366753675615650099249967109033018501234464802936862213372045048108507252234108896388004657212287614823312169614111524218131546740563473106471194517361990347963657749458203078957328268716754776975901697551669760763599504388608837365919440872756892993151410888498192724133323041316212595518598628641666537361076761691071465148192062457991481631718845849548336258777583933414409836658528360828901351345126754831427758289580890530544073228161013269917511314127889952792170753454698006647492676397133396274670520974513430243771413667441480355982595881673723632015478569405207997789319242936492416945453473917119111965553192403107154981986732251016698517431073372154928252750682630754935256091374407240493874835546161160403827578847725607563663724129346141780795690972643863560209000858463370040034138373413125117251793864748840548994643473195788500835986380710182076594112857437183946728706831684901742990619633862176697304779844565011646005528119470891852986697365394538099123443657779575663497249321138687128735607347014686773645000228818456041673749040106041484893461264476966048528307584610212893228560695651911350365632836165196464218147412882608346977994040601095983654410093320771660969702536522587808697458216463221357832052203872127601584059013678560232900185389698300403074897109714074436010384176179923534285554373041345966254182690484087875240881852274466611012721115240907074152159032445251136162268525987549630974401193320166677184388165352101645362402587862773010095441392524445160399594423919479346851567020159416224695739387274661807081446035510032343874258426123102566912783019579716816332755598820382836714778879344959254662197735072352341079888739176105217398268118344048278858262247247172095445272029478421649133903002348000267268340786978349134356232329957763620459968222456105407500567318682285359036398440622174423069468981203737720265702329379876397347851932771991860476325502470869503469298760120697616345901603448939329679830272304078296652660450526934333475837088473497535713861456792012883724415542153063586326538714920449362931343476207206802888098216468849615514712629994492569982812354497462358493242840415130047221422075254263720409359204842403446211445553383408131167546197572383220236387728610234359205961050328784281181086649741683451867274893925411263874658555096203493152405599360516218336469387189198778000548802686393667814397285554641657953994214164563854935946081018707043539711829940287534732059268856610477162526740259022770153132326545231984728951056246299299600297898773528240870802079847453800530084577724886413581351853015397191609689179019033947999785525108224631503220617304905765149077671899298743032425570403055993479677933136133855580058102040979248635143602924555702519666960366435676216288110547225766971921663396595428471663066381209233946645379812698123326466789989868303212401207914105513535033990945165746025490452200807983051544779778051408308295543556588109796724805978606384890902540010115634447403309864082080982333060227019527292043820436049026276195071734691066142002275394601662659508324174382366067506629615110857384891510250282424949414775416291461271871868463616173779186130666685097452550185647907514544630674985376846746173027499469589671039483502184480487864952024211857420221229233744320337248064801827608819150293002436151390005612554999754099130011657116285449860852879706620694584892654490755088479471147385507707848023957438665816765910990881593032973049597812862266221065607281246757977453841745151601521415429768382474659537152803684370345354325634722830191274989552599422644818323247417755165111004640173970488095387152603399001654088102301371243798184955175733585052830048901707567611745228044194329278379764282474068650638575019569840495418339292763129084158557329105347721935370392502880316374071561970993606569083380619453092000046954087444675164130426839567249301815545005036162894720925044884862060225877418569371362687026830045724714925090304534225285569987321226274576588800557745630396433816370204244131346667681956615752066713312377961076726172721361799051256405945526505942251561436379592756601469994662654096304358719369743866816921986876123909329211959313730429561333033465014819038330111915595635105129328765701109795517509290909484788740035790057137511367317518291356571592206166755056010110386246660142728775200100123079184243003782946660434357816081545526243128075124387859119213091137112194131347990480383204101894377209791147976394176553344962980220643989051439053840222057926645779761333160702824884128875356955241380205655983822913916078007209924388932160754901639869524956683132409951806045660104457045863126087896924638191095585864500501801752679712885141030902959817215653574266860033123998947428504516168772640519136624775924554567422304567620211117371980143131904355980952374336677157634458860359344051537495987765904963106341491240870053234359220294852438531560981471940058997992911996187731153706010708144183351836309923901680379120390757930491475914491238889630220605084959165006467917408897954232518670657476625746107683137692391224860634495242517751675281222476755534068969334557444711607383290541386674334494901850473085288666342880304305548669373719883224403944228618348152917345437658052844586068620279305406643949036754608470751011718320200078332496616392093532877461277207722629160198055368053112431864278199495423412444526907185214018870063724127504236912797728978474672362194180287358144344681898111553990930859976969504625942065851124658486899837439224651077609926235547474549333500955280896741151454862167152387882524551256537208883746300529310897738571408784361712527113961819597407966391269530732403967423353368035665127788506645668553444505335591117777705237017961418610510762353655236441033838211485750718887867305928097767840280948594118200328447494092229981690169424752607634450875996632553996922311293932612474714511443696646903794481790628184339818330948546981851220811103111932158745463720493520485728491747162931036599199904474798258810521602837261214731978120530490233095556383277488955541216793082366146991677171540871534527876604783622945469265365325370633238328978196366093951219672534666855068274099730992249261120795529105231060812064185655776938063425114825074657520088715526258550125149753333029156457108541351732333952406169740250924741451106297495558473004854756290629196385867314619050164162478100481147776340768227882243163418921847116006321973071268371749756905686045731376023549991270172224580760193715241672310510371811083391454595251945240092657845971075159778926430408390014436847775518348788469762632946071326050834551345218296291114461796958938734969164655460546068340094388870177207737649673980459422471015410775804866720834522426475748397611324881375636828327737798405789658791982040054248078977462412340172832562963173930585851246902633359654973360849313710831259338188837235787116750027790310666069774867049648290144130407452874476038532654203019135560261418183896541384380231055616437370155313537538111356965805709067958175211706485271585886169131841807974238321871466951023210111560907540157750040518669884593977410348989492229599239742896822600951027371106092966025866544157959217566697521553265409643794119792888825453765871233871651791077496720794088848334091631423929170937153706211197206587181142421201656227610156274210147614010822040788940139867040834081279791802977397592324846736897750226202253229484578642093978981998525063730764515443589317706567573988564660515285042341321429262926308141167027295520249100737450466800314578629084564044305228853401420162298517708385141626037570901457215501085287456824052038651916720787511779498709573692748973507482232536531823314450129703935053353466625747635528504086430548127118447506881668315673369893477194922987133051078920110590991518857556106719318925452585531008610806193282366589333118083056440480459659842810613371068101244491466783294380375883416890220192994169010845473057265694768851757209204460793972786270672393639705733170695597124955174791314076481674726491083319410986650507672412570688214986190245169340892894049003834497999374032902505912013076734249179050183119603036865425039653444961261591575598188889271847431315905957926305199964612103938517031443047434745977139740141520411419206909592576719624119045169374581748478638198411628164206157323829036351822867250593780474401965006963744942449034311556799458047477502479296150103300813790886664826099268334859835437508897497840896649640965723438432370426953631796496541908499218036611871102270382507183401044459211033314970017732834007361395871172748227323880331161389024697344346486493565773900527150596769481286039936203915733795438090072164066181794358665959749329996793444722976664471319431846700556790648255272733757794869561380299593863182047247832832139271633483294577169033095586643093524250236943182998641063446889932478817746899999783026247895806365795913782952231863198520565653833222504816286813298352905383302257855152885816571951732611136777964203348223222522498141096896343536521802834029634649040591153009638843246504817787222931539514593185762908081196402708629359416462802618118464583445736117386157601356400239035180010350169545825077431141456402710186545564399826535447930928330892805100204857175834881397557733982912093926821091733524034426605688286242569570592278898526211894046971977773809852868469376511915502707889607017572435833180221628423353547724913615268983757634822806452193672727795246461659445299006367469485073150746182988428661632283110065592154747336048288043537227210704813922870567225058104057694741101647220140871296171518896227819996638778342551276248858663348087895683469905073477719855560876130571819703597646001214168514105746417627692608497168582703620936118650582829679599774755658570868476662292540551837347882608880037346792726903062513183761724012443386224784856446622270968359573705909991168890533487765531662348473988170265303905109741328382187151996112507615830536693280779946301023986739933635627537560130846565037497472957961854477376410359037583955872825052583959526196100962067858550514377456281218868890546113319235221653058227220518602648613984057414966518982973802414359858867386452320702989824009332986187838606705794676014520709449059142477146808920878179009420568149085566070314519726402265386528303375481486797608558587370615153784732055648296610189118679724039878198283327768380050599703521649194206799066822639725637680923124761737787124007387391937680402052609309300671580886993648262693234212188492581583384931322679862726178724417006167643635066543800032870707538581022343242385678937148516032523614958554928059926398201797965100887557686226882452230655095799337179416662051177171532033374841706326395156191273060454594615100386813728703935440874095473146622989675322748747904729269354102621349630617520100726740405783379371626609336762542227790319283524483743504580427234204913798409565594677958109694769960002551677107751351595818429042936039833898427644525587849286141737614051525000814826792742155521397138226222178182806352547487140616135512137392531912436718837256406779419342500551514754686595008288758914339932585276988997389965667107231568279588345000901604316035911431365839992117874328726357398161016171926460960314113515740970562879632856292278002282458605525332409722016164152764873999168781917513104309655417818068078962710914180290390016131950914037737132244182623396882837826747533129152799323018387419987987408649444896273612578272885055857590790553496441359978911638170080949357289448322561155687746862188628669481345983958762713730571509448751803779201191848906412706210676034445146167926035178655041044226475841180975361364872905083954447883321414040539772030096675765860536268427039397813215719306650970232016543097663385248598397127086797957875593496519142287410577953588336063571170167226647367910256889485088729552267910928117633203161377810035500241303453217457087189695275006764941970430514237340476868844669891811180540001782291047125122161112774922338400240559168516078957515921104244870218282824141309233518888652340288556871715619397536814059866045329601776572886026411659433200980721060697699654981779193494442697070071578069397369289825901639118346149310236038274775504132751006791405290019050041432811534970627203375342053152710459297747752520464479041143367039533069980011128028746595751337392222445487799618928164115437837866591752901456011904710680170963763736643345299044866435026231511293281661955547611633759133337912226131189984380909106439074324150275263526904608043264584143732075812632751434946514136685692422917174995849292435991934391883337592631518821679860646462897046415608249107035528717196327322516254531996992575518685631317028872681546249625267263065290621403524607465208414366903098184250394486383875155115851033056991133517662527325374155377754236011932018486505791560413123377613467323418843049698782659803006631024854923373080910777084470434387794501649266006711357848937007724008618257133740730088325530620697208517595853005249360075094041803537249739366982408736682192414222991889391554766043184305936414529619102947968345808144856501523343325161542912272038685118204056828539913276825913560150340839136240080901409799691410720918974864043491928036430941331517725307827985003083550841739853935323511183877478189320994658266565544876181527711489713983866905123248971124803260662499450588353919864203820252181344596372904572621963034812460306836861950731607571421298741659619955081631272800423437099513457189234990176080038761313802776057449009980003984453279025446860528256285920328037013654312581395407592754721837380870033486727255844314971109130790820623177742181383558557568307955310895100975484222253142266572844142364263125431719605148313304955639639185433884780214975531443859143200574945110543361468739717283218897227275095548666780147240617169193001924942524311180261669039970045734461386328205248384972224148331834165763352881836748197169600214214734903828954389642199299267531198613077123770615675344230568902796448639750038497486146917695066573509692632672196224537684497320883491573626007304258713412837339841637211875833595371448172966099372803009514205178731464440522392656510774016296389884699421065442461055926817365794933622326942743829445906487653552843513771017868893449095556917057035164986754556531331383675146244497581005887603020864741192702378418990744765506813018485359745363455286183866811044417337509092631043139463662871046509032134239840552121989459856863903246577140515955443942861600491591646427901395172252857036611024087257220765466438225312684678531434697994842922124523743370348851767169188706331569503708123281860740598819185801189131351549418952751351278423791516917757100494610050245539243829870003238054713008652918445931816477253427461336457710878093982180642459085100974113869305433932970037167714258666630217168542414447830397283365083225078495376160594619716377146536041242610053782196471319509392593137139590698554902452804029797060649040804089036212551387321639352888660122382248168850852250377040512115062155227244857758343839814059029962384203085170788859751299262538178513126584853232349037053464521540297206772505368964701026039856431560266905361020904695502415610704049311177266346247269592998290343753783844643948303909867361599264036983250546974371285402964117112832073228469993806358924248414882457567073560517919196493604888575215594421183654564918597931518590054529686343689817703199215085477909149413272893820606590957507553124446466535381188627136011440683147490707467757149304106358983879172141193694995073091258486413613309602378451288696426777342292881774272561245354837597900564173884816630150638606687932054413356130771612224932810303318223677937656057462592376141046715488122358616031982872312013249759421394516915269259825555223198963594414484285550342238812082827365487012898980197573765278418868790460663961675973597137173702460560298438848875379081384066141179588758621260571512837233891352526771233354361027478564543377707424899787276196536945845558816918791249536791776859379860008632938958883218238008920802664528515993544833378516881324724103650866687634085074282675957478857236555169938596160288376208563244177308605192019257730691531447413960702875102553926967654090597043515608313129233628895745050188437427647000656423060873648676764717805889264866199583384024919196470511827160879666452356487998746845578281122095098924710498133977977091363045049940252857838479916822483071360970706574640412415467781281962402530229323625157957576946967828683603679544268491179914941767637233971554366602180494735879031840302009528140192163719280162999800530964422580268234936238322235219247010875995462102291391914929100023439212280986139344283154890138819778956588372580566205898922340606064327139573355790927611712964636086638973042534151045746265159739904647960820980696770043904721253267996134383745013829844338591684380541206030972755104255338868627873933507620854332606900871196692925448646115316463621421822413142387797214447388946449483473489024428402898480323650088979920170676304393679524864709064246125091260700849327492257454183058859818169282403273059655724236525077075278100645767242360156390047166821537325544506184758700836092956371218363253533443427483957378749929044777836717511139358027847135280300935906424157169223211145675844769363093154181140921210381322974180828978976449980627809724130236574863517210934003805798403657915683793373811593256379024231445892985610841625930596576382919937122520469891964488062848448240685607453633919640703742536656199392857862583896598865042013465086163649124502912712427623097319321421047343433748607706020025336564200114767518310631024832263675896626562256803606617246044225443720699950064537250349699101515038894795650660781854474349701647617088428513396742729000002355473152981441904797099693714977078654793608665807843796655046033070723518098524367344016481113706238910299907640524321913163547281744474135574127482303917107696060926225906945005153833679250481312916455472004496016276272700004359856234276867680099000492495704927395733798452544056745407688611467806619940522380535001934704979822729519909125505738824891161222322973494139127412412862965157817475828889498723283388261389658126412068181203069439267308119530065941856702782291178328374367025867514342582305832320513772857838981721944779341919356096647031274730887374049095570458121732172856190834803278229996906626132824165775461097961464523479743034503408807174334056488465996272490555826961461284967045798965327469910040868392784313832464759776090157160995625483161448686593965089165357614116145645385326846402249239067084079485201944850952510260426167415246599308640401441982789760909213458348146861273542247030097470243090979798154290378601991820718758690534859437250620200483244707151931809783092089417001841743925059140208520218006967275572756180954612484495028423933120163759560343515684135390753576031175328553511759757934231094451170920986569345682232892317594030661506627999428001530781939771021417745714777728938065283840473577046140513961681240994529356870446811947532050521645873498869766565747290526033502108278286465007461171940776560535668828425200759311947790574053868656222393579101554612281434547277307628466768322875776043571049973591995326200426664766618679542634447033440439929517385820437827550663408508180494508147429928791536427388698499956818788186113723579790914611990415470602700485691023959003223085949560219377820619001184768618836279155161910248751738143291328100497186616838275760485337604722883086745299656431699244426275239451414061144314604495376323558607871511423606088961094599279837689965297624063091929048333934449732685336533863000952585198148649183474292806600066821661419400425887287033297115081617034059430024241978682327665412273023409322929385079417403780020393139370212434931046236785328139164535968569721407268795207449447265365409300872308764068547179981368400724650104021721564897190972040280880204042928404149151092103049739654757752256762381891389222672724285515226026516693292168971300841591720868378004456212820261407706409241221770986391913161321508872952915341287192257953097094884684018851960180918584753650339687202309285096150571223140124028525722874638679234229119503802412275822600688391583227399057590756591959500902921097896793621681012016750742466226998735284916946382983609657764510296067041924711296779921125535359978272561996256580892630324486990308160797649284564792475157897542324684840302456113310646860888238427707515392853749935848819303416040267974631034301380206149986319352310135351565153779658028086550883377424215781882902201139832466399741414539204454946146628096358004838739999832225048781128911187365539188236827363451679843444378139430268368180558709314312557259314806211403302863699090361381847517948331487242455188549597796337224681566031791051242435721020180507185973394753846200538825708156170247778675813874135918465833872643696425333998459187893349883844798938640626046079647521179136821344617065965821396085391882357650927390704178450234349646912870083705108287908310956128687058425741183521291514131651882972540887315632279432266341020382223344203932420926041073325160461165836155980955227917678932373463751768696394162780524179294354670410295280182975612437194316795545497701897663359017533913683116668927941600418333002666424088817420938317327449121337372845828399431620036047959901564123631551183493801462569409325105127812372828654775748036530316659754660853485409638367334396852525510258809694775701590308992334161282995254656998140852805289793335830174555602662779710967975700307770264133904320627150124417053276623272511457780864043058239773868458807894308073454892481175090569848539661448361381551375795919919215323483192427778032578280360332648290700383288494584880622161513667871144188952360001448962342205264891698045259840238301643988557165619411633536038122401241157949388510683232280091150370724689423070468576004021607816375229456981896754908703489262813975759479543822930822941367426579927674188696435530187163355755609124563900977201786190822477681128477351490772917793701330439630174665030626748902256368053610392322955009940835309812866213991311999050725674283760770893055243015545794319675319298242625143944428069514597378534473829624191956405805496503575597124747324847326729401913519507247202990781874073764438271750184630871256855446201273043014018521157031039906017060830855224934375527352163711675608069665069496342004814809771916185731129326778503337486948904794752729567232995902793870582001017049702853367036546467131477769358368534980040955575755268565806921179059357171664797314282607310693845104508371987710786036554762565122032351353421246500044763052262788869639686131714148040108121819754237082363533492554646134806013806854685460657907108128348645454368300503826501601365369793330399419212723375185656561514836786673193602783081129991360866919948219397439695168301742110285035683218401741586030851245211767690845647720359939632359339017807015878321528244623833369131903951326900298630140299843668280175080726930200519702951977322029219678832345374383976361802329518277298129620623374891701715171503838242537132189234944567884350967720762304639588093610940156809889997483605541376649865659743827296788152663656292254109381853945565513439003841950389117803772876761674614462375477209861285060028168841573674921195497405652345285241157179130638292269547608150264170193756113252342347915923670805674452140967916667804005391718085067249800706793885804854649320678520741636188511154861216417692338906330687113039332320384316852343152502369159785169398796626999995154308798766584274081245652224835364782774213078538245704816847717712730177887953611305768432797214545108137311168249890658240998476510009505515360849653792392717031948175665006598531369263453817080865626125824335490996649209856637168939922804095806010686671079755980489972091212635589457568384724924166180244040144609095283489412215601624270960912303908613811022117427516937100464389939645563383686512244112074423242385404748955295368848346760901295422425262465534567803974006676747363894392415574428498785475169304910930063011059518984048079417830621128860775036006637195071473872665581907719808460515388339119722280766458938931485281184568209572107885252968191649162547689479289153405618673480624349404195451261397269022565366116151672386657208455449278015752976903693784269304426210905962372602987045747480068837387000314835890842397535846683640036446590864096020723672864339434461968863357387292692932189904602083764652342469694942566667704019643723772047415659003160811702183062449862855545888932121903692722337619102823688567668619125252347908977642431282612726089767079885055514044312896952270003055056103885907391912504167091875740451505644994779232874764763415626623123153088529127934835435526690654442956264189811137090796913541215674849420740942834211645257211995117390441239706780905195729171157664381268952218124793473935298998765826741670308653304815036713280267360055634545478210350522792575745398373388226212746875312402491572187606722775787610173488751973386404089202612714218468829354399590646041751116998649203055992246411056302180848821218515864612185449852549336952308264392654713636775384073648272555303081456940394030245207800894420788004190120510145362912447742786606306422598549884325008381170074393324510254536189564850210382876841604701142460250114277888297821014545146637040954270113200237140167095573734015710132664631243819982595749618972042776585541856203893631446502443219125113638137562550466373686341599259633875297303282826248041228896999523364828133812045013111521982349007792343720589136707854751499835305256107432059861367864280569481546430620159741810913491051717167927320170117961761532120987356520228176275888602725138813207810857672421412755368284163289998928937259422930190930367514055754878772338954325245291807349384995873362728989057068022577991012702552370271599570613092297672825649856918923110570100018379470881059325023662601369168391501646776362506187268808130999044235821342438750220785119436669513033664174497501930863614082514592577680759543582006305991235964897885491897712502991807720022101929506868517474330003572008230441453381481084292590832324839326070049588926001573339281371364816081830710024025856126590694749323514781558138350266224631203785570614860566015485146750698937938368930849603048481814393620682410037726755254114115220850029754597339914267975875241615223667105005246087793854385498823020776069619053784600383539267342380549190316531827497971683108952132181852148127165718364111439942044101577680000681934181850405013266601270776708900897960115074296902394965128264486313089296065322914011652481775099386583137646035277112456854507182559405773343789400379378367620599316876861276615990138917298098287643364417784887535938139231938843772062378111376502454603017944255201817486460136078084263227662247546514079604637621886704185120253243842104427798012028248116328691180288394520319608170352163676042530162074332383824018136207866436070701663367822681036593883672851082578246844987518761145404229958988692351154409749845488286304121153177482275388007207791950705126540971988767641421664617521947694738722024821687090093481431182680676672593472464189831998312563810962235582472245908760941346601578376417500622102998493941701495598313253141060645988046242290768719821797600800971624044676812359676242450079509061258375880473539610441527995723172508181962440517517556243928117527376557708936245479318519642826572239460383854626187973811071029221410634550665572304409377244489242775412239220233195881779395048913963723827402900739657214404760169349690647675916067338039506311794576349247990359320593580760675113937294884750189477574366316366417995322569866364565693119896659083498921530391834883855854182459883496775837813106633910010695513446900377649893832527042628479224028820168920840987117355039541360046489408056188091597911883289728683703961005503942219071262612793281014288168864732792792592671731892793498524046121318883498188272937473790695069766484573093143541721125898488358525786550717195648020328308268800324669941078796873702419789388029828060796954571457693019343037007065643957043645012053614473557136824073596163771411694591144553103938440558700992349709032668775083921574932448329385180050263251949848464623459018162788192344534067698857533564851228881612691130567979942922858834799459167548664324138825840485702805066174297715844443366697847342382435596867621621586485926566130204662826982355679896335040731938618679294657329316667481128664043548537312043904653444381368928593004187513584952179430672359459223478372611514561177555903772972864979175655190796313141929583543315971907738547110684638912864248646175437440187611311359453707966600502717356612075728640321816636349795384711242337441950967167022694153418138655254204815413532116940911530020297027630008004053582176803180544706043560480250990435814129808177362239285460155326365883851331520127886836092474732287445841821355853183073082660321386814069753024940250207385740783015491639828314573832900760388452321002440930905323093080909040408949075581762916536317119902908315091082645684909027815964683111309935870513064461189756221073302726925415372410546981636040106857975927130993032002680143444855932968579552811786060164462419681911340341635705718127684732208504336470633485604564587561339832036811386744783974677715865051534591074782294174136448300371019440052325710204631904240222904576714816321192740666975259280667425416370736460709834005002634942071453078671046145652181049988339994170854574153209938565146542214915852081277021439462157396297538643322713325429686401482890443819408004827604853618310052731202021301261915775299225287345817171234053728377190574008140722766161348655647714530811170897546158271941320440062170532326024501689122584765284352275850748468118772164749732534228042212712139167063966307601338369626602752601562152473457207009248519354937524707053377668197757149115224077737073256417446761730460109860348473197097964019134815171772252240091966686323930129088946280336623732606438818900804561696492337267923288923052972120833755470488333364114652728818383434276543387825680533726973325145417691605874553191793158129534262538535300867424806932677151094557090183521581787150110456728747941167365931240080298937555406680532216435596840997264089618790855400593064598208175511930295843747383534699381228702385782728213874180595879444539775756755156077871137531495875854628703385986162338546638274717673936923136203230261348449141082049132102162984175952989000832027021625751361178591509058413918183731172181105940162831737840202434688817488963670620050531133830477725014266379123302671822850543098524070428470721144408317995138875246484822233881318127337949845845249516901865687028514594906074014436666956396383130996492272580574339075858810740534445265774227920830348353454164026887488819331528204316972356486281995163519286390037236439124337588549409731680915127216986443810975157769144077646150240389823956752314847250522490204197816941642577376622429017403886117846201233923512077214185942931823413468107790926639091435526531924471378419643331888104149021740465179528563504685430464245608389092601660055970156871524133326733051464206694557928296191524590905437026858231691201557084594243674110193919569826041432045453249960205140033810561997736180561390799797123895258110327475977116731468188677718085479857440103464553543779361051323519715684942304224002911305700328851399505597338769344379963217870073894734642079244013330395269860468898872757228276111748082776024708081337122885819769004288165901171361066889046647325280306402977830342754615958971552893900177088315518798204899072155388038494083363852750700552073545344897292555189106178420854937903123059528229235388833903049444566794183219461324540876471217123379255439337215822668223742687270071506728828506480743004964171892476478026152819421991439733133289076803571511788280316613513744981505802509648071768021943053844290882667858318738367348884966955893532928668446880434791684641912307051238265072129422692634109838020104815556347010972985706037243500226419387997149588628396398341302207883820862649450099214258034679642757353510085839823531886669422748926963320948995458463234718952686297812025924611239795310245956496658221971330980083499337715460492370062347325200526220129470868199758952269707905405661969857986857366063892075501489483741002892597066646825591014868024544251223223299788791213340039672186971134672136324824485276735576722639548912435171191174454246903605715717276758639191545155108433175916392844120969132295139746857335201845203888297139081170153685822529664685526886127156272557667237672122433198676640714234795121763090892617589396211014359853257296178295612878822205554016797559446671231273034388192435306433324555243675058430230682395766773265918380005685440820248891146288204603431626805340034140720157880518579434567221621533606260462464356707304494258080411362464544734866454769869343013548688786802447790985339508101524670208060819783700892615484072602760423795390644317995681567176195310512730924080761868332156707807315566198979361614680557402437641892479777469583690413316073399380620402064364141770065556830752474654659188825558667872905737613594625913144102061168289738812773692834907224176329085825461485119553538631920543143285056034706815027254950602586955518835781943374800820603560575784498497721031447880014409851651665262488792265686251753132642578025032074602728517476763878346746111740525932067033172672625167873432452621118464452528443353908393581458880090802722345408800900603608556735661169930094655080978922048180590878950026000550847542815534119289159213507593246048445968259012062129908114295259875947453436593548107033542415237031542149203121971429652199831726490545223118824500326479203585465626606611641100710061678395409215242465805607448217260559729942476936892249425459149287201205190707505945561401210686444335561783859152973172209332039940102057100030855500123860454636108516648349400513866007915159118984615479507609819620770822503248831901873793524699050627141157015151797743025738091662295767389801529374702442329119734142034870975668904002751493712642569163618123969383431683664402462876414106884687426244650493758819886655584795078455656397126299646916991885111586422779326552378046093999464680209775332277931620115029090512452618227892331936786103333800090798078482444781699221818007716193747219689379248704502117156620051274918281885459003700178114331723517636643649454317473195314572144358703883246284538302781049697520732485227286018064131060153553962348998774169717010150468247136912638317040620812358335476630829168137307051027853520772574695515887584892457643779310902997708564026938366648408592120835726535469219849462692059614743926806259000929087884669849088801281679548959286645638382312875311161804516524682886212239927389144059714325108444854100885375324633128066501946113040930415501521926469661981383981507413376438298806594475902481240492730783288353831237096909490025628549405065446418635400064635059476734179811561664453217009941923023857987097895266426549176653219904177529881057261355817223169052103483000286747232857564445201857760886198206579269307219773831266601396573823812504279984667451487071675025471559203633799511111066844149368211198419885152289856094493780166378632135456438904231399890962078686620363785318495161585916210318445618121402665548650845501498781034510920647940011469129265832999052937963956349301885707835826022786039757959034615218589640675188847688718098761012990779308708751114520964519196783534887492419320375273356085171364955024985938487117364972293343383079564768889429115698154869442646297204331529334050139201309597638370768561844968677012228091400626764120825570074466761576214984235819800319907619941235215212239085364329044276153695764938499069366609006007176013969852497610138683748552008788476530399738703064600763961378019054665902727663818281201083663352770120362933960100506231714451965226367688716938756730717693278480961726079721215303782531994102540789422128153282808588961556625127960436057974553914724858689303702354441781831078753104397414055168572922122752129788293580152467375757990657450489210621549088544900942738596361944684156468377693291112732098014103840058173256942914689964920836749188272234470727074133134210178411279904786411541458731076073201554957806653943514476384441509433762094779058534800476075313913128434982919282012776011586227794067395576004016033216390481746344052910082563623209913141525829160886812901086006275145496525876248397408740681167999229517204220233854300140367880149636627682119990476810044856347841250140937482618733979331763885879020265313402645642960038523785001275916263592317349776295548699223848988686052418558672286514792315835025695052105995755950815054024141363400697416207992362714757659549377881363145136200398436599186767740426580444194543831651752464658368158579879554123858202956173529894449664414741869592097802656529870609006881249413056773332015145529208187530707889672421014426520440291823536653538278737036394436746466267381788233112276254721972207053800679645501596592260669628689395675459986735022768745274004178219075441430960662647278385986490320268707153412706269150822144343265737413439225143434343782041725905940267961651771698394139640521823993024651685420972872443874059081465015236990114231565743781206085063654322689845442628340686951200196524502030373942891469441986185857696502756734874433437155483441155731444148788862754452905162817737893495531042598234882500843142811260040229762047620318214567392940110320339972040382162044970821808692933918375723634856804065502380697428288515309613360472447702499323960572615418240503909558408756800278180935216049597181425356383857999036280434395490497160029744715043684744922335428910377574962747319302294582140302308900051366403655601625029761476947965668026789017011894533600220735889403793654915999064272339761865050525008364625658313833114791027911031399178802368112136643409918202181214187864406772555748759443206144058808898954799337200575504533574674426331662368315327172848283682868517620436955804092885876098054083378568822982107821003730601611850215217701696466342888954942689028962699440197084413467389267781333175051970553527544560633451391237903677510919570859463901340060586051314804720253793802941671863456525557717827470629162887386531738254641602019029696725484308066887754376206398711750478755379385793472551108852079473579547614953164917747587840273798638300898291242180647600592841217750101135337233323180924639783344202018177201916804536200751624614266865765584682379650740522654829687984215902233576409099668663549983994997717227110336900214133719333446686541940839432107521658317118697603217505947546465478596863297845130786448922429140630692607140832205548309121714237870538186663380279087732939104121911064098647655979361419732654168456225386462103147763397722355309545621860396896644852321085569026215540929135994349546606485987828582828707566501867057549976828380566482202826921165457003080005746215424753729312447382659825282508612411918756055042089223273329725086403444002937231696251195232786037053383105426978616103587497294810068993449769877735724337860250727640132968413375243118490368054408154620870378443201973235866220799692453885899852189738648186356188032729101530098247159027658703115831219075775979055257669735564977369557998653103438814262946781599240190690033123285543760355440967938737915772229937055955083063259729599423415015176728111519288421660636785898922211078309241723407172044374883166680350897532047173107237325941658057952118382997465193316189552117693946073095364777157870271624219411428397095286672531173052155138251539452921252473531105462565662477867065148365577795507452306269990381085343969356432049831731102530381073445110452688918482591173343576881123412346310943856428917580950307267784937700227393632454227667856846902793680517865338232544755030739581956993997029472544283153156672538915912326508404053548391165535182057140723975065971103679248258073102111102391637885087903789874296505237195921521107866802160525922422396507624346146660267220998921828095868578537160763523656468648538274031735689390290763735673586224341918412309065878647796779645077419720935463733479470577195379731097137035897378599498944688449849176664206128112394769027114390448818006847477099074506945092106270416135550012460836624181048578464773534161066985661449084146018879636555280558239899867321626130218522540047578506162855971215174861127707061105558282276531000759268582096916664752747686511368301893227571310937376544370634252389955020730620604085121035083025493264018874252956208308823342391102672958543007823367169417198997718900714863783285498152121928912843233156305063531880205310096747759221121592584082855871738068562908883327315038563737573304911430927692911305751742016391331876176013696432411584870933993784475787495273948815572832499972834487454807802473377889699172067944755231521967380275373362269028932125237522460174794423089133491172484342661146472413653434591965253561943382523259910644579396044224473374943834742641790897542902706650088895981509469870853234728602235395790224104710391750684638758327432846622711013832908661962893184350428892518312872328919283438733716524603193968066768649956353732798625900149499767511673418179534390293416755462690727654448089199275766646569001431058790809739000700010452342804576642236194759208502228740708317053775368359320380132464781454536045899174842710787724109916478384393244258491336244244864233118286213734776179283074471589296890794052335132831536036328090576464007274777395595219817281975206148335798217862210050349818359100958619767813573519864957397116976641211572985829204414071418749815444840828011711416668686929992237988348926878894359129453997305135298241966559168334427381849943085173513085961950391843103704324296040996705638658620352007788304123643829244310909726004756960628236352284670229757495946600037189743538420616648012609148961556584923229470816997159938668481469757715926662424048359188410097278102844594261290579563457038443387434073898173455650640665817684196437546304109909581582092244849526961242780165961518684280095562099340054517650863335816425659910326566067850542497515386183873120882679133721102038393522322694178250125436868355401893615366352933373477100881240047018506737696820804334522372862978626605052746353863310135503055935721131271919137451836857063643369901952507037496621142841493583670149788997934970184517814986768585533606707576442437055827371112954471511834226552488960832204497956128046890681614349599432790436307181571716256854816074314648253759551869992732877003187754082295462380480477866734656552188765258169437000268275233896462877300320278897840718644767739202957382029152594864138258087054201116104970551192174781933149136239495600300889116411843378596141595986950003067351929843614621727416991809517816212131401002327098711965802473658780468509821782491912961815108847483668794596648459881504589169079696363268477190182386511149458752977302274464519920019690086558178256112302417849828283652851490783878208422959168685458963472031462130252026522422889575726418277313878591442509880963690102135924249093937025734737812646953397264772992854382154242173728682909259074986842256390983286270936468192824077240559804429805622007074763641323863916617764665939405080908277480139291914933931053171077386260730219576085978975424138560492180710361093640069108425707802839400043742253908711813142252413426937411244870838567343443970916094212544745122924480703471046094930478084198126602710951195201427697345345526121044362401589917343265192838657110569734763659598910132284395629838150448866347768669126851460028371428010939125633756689470552651368420845201044390068069637215092719926020547201420201349782479395850259910628601348722816082909241451752196998349525109494503815015030682223833343928810389276308789663318884878696886428702643970907318652656973057716110339021381724670832864787053335897818281175053866703055641920678959750439686810378224112235518865196706858782080671417664347354389848949135042620165430171806526310444549875303881512221663159300239040633208045254845167826798966060308040895295903530012234512776683848710520280850445863808173278554561530949513418935032063957437732806151706622702421563799427627993655012514108350980551729414467447027151805737062725185030842744318830572585434355382857015378338450194607748251278215708390392606571248455941575408164067906478753640341194851785498391741604590843062429630356250549015303066325209847908181740907603742016941393346566828429518036940268758100237096453173258016109384505329323550964776258599372233628445260397093428195412187469089101748204742539763573877550931146545919234758047830570234377502391100470342869852590334948691852092371152644479564956696198104993053150655100050680531639660025506432055333687052243968476302556773848390221147553863377089757419604335942112208959141014934987589017423623568929401282135372530760501340047034987359663005419485269305950818292252038519820024576600851955675227780909104788828622947926719404226508484118018212407369055038156826484010750206974438214962170550178029459152481895079688125388447224922636568592192663709858907430960078573401320748024712165760430601983085596184351889827579720143959858345577772151316455124222025003874640909530494237489740628689785000044493923711708162856906893094690160703968222551066148056265220906460602614255772229445300897885118483289580796285806645472119824892666789240369383835146517905379679660796171923336942736275640971022178388488328703517638791750647253312434048402772274183393062543925359331237543488623696827133534854614617735317270732267874704154203555165294707037273248457219147308223499308618124452709151704478393453394567496641466705760067760930487007505375586887515935949324756382048169990512898947298517148006632380205679526824155899197976859927672368588237208499840247027378815729443964870277318566743173715616676000392957778567734482763733197945075386731531064069091636591825452420310421356475862099774595495101190556159085713143978483966773140548335675752087535117895784301305884326142820704462087327778915196680072229940330536640183697590409675467267229705402865071264269845756839202096107942447289197160993877318690299003796522492621004042693193103768776707200748537665556085029826522635995275937120983155287143797706780229571132727053860228415906707234650942049882349532792778260582531181620723386709978525697975669029072496023182964013251206364452221407155912005400132411130991583113389690000808925078697841573797215356954367830390011720090960093233082513137020425025361453338641479868198508441445943699657169588243284681364751849786021807674490758527852500201994591036667034696986006007629005408713030263907340487591235193101136185919526925575065002680053248402707411614213016411586553935283126370355723646972677930262762520365625298661703813314884212126402902242431653197985043129571008830456331339904832818272222344812532574313741645745088654913031508116696807858643599415837916765762455723341081159814848431682785099739844737502198379772175919171622307331370609634880941228953142130660410331525916460524905797244275067962583818391394670065066966860611782878452872520292868317004096681575992742203842597705112987305783159605134378472728695156168827598725458529423514047013407899539664438174529210483392092702866791855006401466100376189509415421902018979499822766177904679408495135223562261674932697789251126686207654727988814423393999285130057085940682101136220375037026712018674300807151666785307937752679276712172058200095689742114100242216617077176509130447028536939503855283957719779909565891464447916891263840166129313190307453093006489281646517207676720086189403443633212897653448595850129242375295620344931549897222639996872966720600813205645952608389003203724570380283668742405377420938913004101494944579611480357138599860880112461503954437067824617199444878398620177824453593539305537151553386913089273325449489626662402433433270974475901980952888050003055799682859909626576532497952154733851912271722499720619417084251072344464029399517195784458094612717808867521195977313171572351132464670865500164360905387386198620870129116189818820519576820530417681363043759744866540042124701805381709433139632828110010076613281248459218386294230585390251713321167344535794759051852293188012981982837328246499413390930231530105810178585735550404981191325223004215816473954735403778122641800030747098556134448710640541586401452330115777361102279853628104052075258746181238087743281297510157493000100356832652492660379354073397091533256048528156732443818417840064439937637847798471042415461378590158944491776812933458443914535570521847593736072585341591714620872178599399367333010042263040295213996548913883388564511542767524400879030496934590146378167907725018243700975475451801824798067001714061238257496691126644801143357135296834578091272572614962811787884871142056250398944962328195250729646047822158910661693994747267539483146317966892122010686366890097777718625280853146034838348890331188760466614733024039807399080751265793573158921528041491901562976788289447392043795965241125000937384108710746742704313595546021495428897514342432546208980397381056481369787178316904802985224113387898356802321420305531303924028061987613330802174338210327412061743367150125656046154208681888414656302914969656705688906696212441605924724240576704219757612046978892124347576235788523666226218638554317651403891114564220727907120867370131163136910541270159593236595356504987121275783113595512817774435452511070080906152241070225598023403984198019713389137686744520684447245552960957371885030606631120837603792321158752961974127730156726395008738891012811203511801764388659604075644423941168279708454505204598282471078298220622258293778023538617379827575293493322564790043470129145285465929542407898695282006602052711300832039905082646195429387578956910452585932889842836908963434824383422958297236402357925486537463212791277198773918664056442529432328551747574094083868124653716214761311865528722264972196447748514496620479354054923326433353807061029432157775245484319362692254550395545398877258578510610801152692120663026866240487394167898750243233569173816978955068475751504177060427429759143627886413084593783426665622107611495300131552125320170301249298805431401773196031395621968854534739426843797646155174979215904714508876529103205929306276262975591988961095066126939264509690305313314094858373829873584588880953025453193850181306792938153829771250714371154602877583463377940809023245578187016717920056225157673791259642135273931604386801299172183571963343881192551766626509119376723674643308793027848894789876726053809435301568002978458580483175192148771234160542283685120272196576311929033908044646006005883466340502167127143490563355784928783774701909826036534485579880573274604711563802605422610755769649691967598903961508289927746458260261053191895918781775544678508509316823631869920878956368009655313596285461402141865085726896868503624978698870534805504362853297221276238960891922038630768156582423119270906999049963220691923571485462457124109305631155821674479148360237417440850110127393341407235651816222528031550209343156748209061907428500943179024599859443545292052836668686297694798749522406959256289565535020026430559437554073802076015480286423006388052961180095095596028300031264886086515959802018824707021657124010521756466012251266240513419377107172369543313813280019758330394875449943737353245518326220466280151752776922788331955835880447087914300910305839913152471307714100609665264005918522535855274429577266009059022084317262286603003670737430639212211579083168621975174082524544158727980370323688886462055030851176097529009554297228861961460451464370801616306371714424274674578010816999363931202233591942057701363494073430960095875984043444621312653226842834375367286523657358077843944277671496019054810597042687706946186442560324696654521333687670419996843986992956926587861390287349802176931569530175185599521819551537408607825847019922162863043365944240348834540515398973911392273282542206067882081341062905558350373505063009661047396049592110541739953200202805992458310229881842901426130943755189956468936579751750384668903847366933475269282992267764828362484350540696829874291792216479628330714943557104056296851617760768143050253598402965953167475783652738817163310042077383456196244899450621867977614677966328131022025318694842586792449217265220007104983201141445008242053502270274622545375872621050044502325419618204604225762430809108340105400183996621891667088359309207643287758236538038412267304950441185972387192875965724446653606925546342153277907017530938415723354965684464105675961167518424715275463047454312389548927073861326683795660509028746460306886407330430218241000535817247847629172063872767204377750895324571091347531514677287581314364974529274507474929710357918391839016211878672689740636678039144043829064477012640366970260679653596368312158739169175307832242280612390663869370867881858718324572722858490241194249326366157106776624934916640924650282186090781067344484513406052378918866078956810748097945988944375003427556108024772373112656238688969391947832444734129954155679568159313962726967925143792210104342808368213119806606776944776110003117865491014952669387592514280509743239912814353981333185454702501790373130082669924080114732161215005332114721205197364306284339890979255160377034657176351999732991408460630293653828720435737781972395322413825186930592237585253412984915737089636030274985092473231725062379530096421947676414038803166891892538453034614520003639527237609834630039688119704595849524078474810232400027526907105617527307099896782495939460767118024208196360098321154577296376696917501307739950011334757317384570028069613938020640638356584438260887134442667374796046299900479525904109322385453349514701778380855077434521689753033596835140877240840925961620283367624790567593556471191741978233699261574599535189321693014831185384797542722389282090949041931204434864484311633902759317246156203213961937267443850219331704304205967900451044408207366761525582150935989843960831255242493584120045719601867618847706859766090141238421329559228090873544254204392501626970472003057512689686453414158566506782279782372429417843304512952222074449095630942257144735414663924575269737392155891829153721311080853312594178592589179380389915748473774147673877802376292524462985368031678927705306087187794110574065235878988949349855159959611041082369296020027161412413089500607766450889293404756104257919124887211250227249502552775625910089122550898167749314320369586187475951025192411960978447370981210871555413941914856307597061936258954316946329235987116094793382884282243994783746544744586889197811625109041147053694024540366782146465710422268336057173360287392800627967983897632719696820238258973787936593574515833158485690885137196999571022586616185903035788481316163059713454013605279449576412859233022805469718302195123298693278319372246198174679118210483323641975386450375361257870760952489319994045900011095451883762515249415722498784898306887906224588637889628612374288666077682516474282874602340105201677578653751997218663402627310828753777859380381453774735147605217280139928135662504297870258940780127219254704374833705000080351335971675733917087951808777727640713359533320659086317611779268645991477958325726840955685803828808836160815129578219385173062591789175267866649237010518145146484230461066289197943304931967318349435946037760210412856845252641806351681515417293005884126523422518300028129678657937212887454935836620298643721279284900481737795945833607205199620791564220324014522115542058011279128898363308371564175462598302772789546620021813597555156883247510990484756375643619237575973775356276943933845801307114531298520968203155412075888138300611708711243068389109159691270326376274424068876756623813878368840661352006910129631053428191145401106926713988893998630766926876970334270084242115570586760406587610164601937721153049331696235384770083953068419932923948085202260239903080186770779320466372430034172522624433952312092539622282132477343101977563333783985956484600615529975272625880640357608921593728409024609686302355828630787189087887912875878976159188024606800742442866442894683526003778721698962282328421395449386943322547958751080170927540652537730019931160908898437301409240720303957842795898484651519308384736315615396976310969250106457687357099756428751123412868504081085093322547806338418318099957620829901277273834160158192432204289119133113412089686960699957212516447145606457730872377262011608117668960222650998771439097066475291486565221178163572042409533018174313565698149237459015092440097329082553305047663019674820103908398838917055125576583149770083072381144918463184913967541316913453922243927111506130344539602478309989426163158873886480810175319453290723413185254645317521955370880672363365566217621958284737063745229010271758881119589154008337318677456691057152224014137753447854367856584296326332200509801886472200086387118059341899704115783693138345522365190581444863153804662486866740203961919972365514153179083852736242608461905131657213786552965746465613243678018644558932945863516406654952967056694845370771167222597807328004242216722157022725746198751641178261887974134421398121340382968100246327460472055527440346384161259628577866090623204769283376965764251049343214043950297525767018777674077245707511194718598275466456780778920105022476069798152036435673603254159712973645767640350266596053971350091391824843210090482623327206547231553474900370077314513279489008509901021133714304331339210952721639405718567433899592176089320321115865807405840688844246533849777764508361927594695070868267777734423130894061760946664827960790416870008585506896202617900814945843791473206240738217935609490120009069586865150849538886948257806943308942418646125735692453225428321379249464085441588009704103207530965164956428268520090430037227974501209044802085801146785780775350144487225366026467921918852862324384671169844424219489168791666344012913898932424080742184878651607316782160404300259815227875845185160511946782558103127047705154648204530783738255860692067436973501136394818606042477666043724599817248662028229594578369483783067145861704764080714371871336544549052265443450190507528954457348527076801015097740590897116520734110555504916246944065087698739311282544843902682829135797354380417667921192967023348786627636958135581359684423876046569989916823894558253279058350847286517463171227989642976503436895771907823435778200452435448273284886298763617928566539458665705079251657153779841936580990504001878874053507195128660172465068321582802919432936152121980980233525303105685106250176455854385688275368163794454381516880888179287372350654601203589222702718391266672479818853624982226275043390654926342796404221401819055884725563964131945389993972226411646695941012625292764700947114993333630424814639164114761679854372182598183395172285913935455918416112314992909751359233515923680373307312805006077308590002665760178576679173996736570759417143812949862989674864847819451687890798002421534739970969325535241994151433281733041074225422510513725481453062985599606032079408105926748011189223091906207523487186498492766197194772657194734285490915230570648405146121290883333830074485827812383623063412516008903640347007066505360543483616671220114009403992003420450517473527937757153012830352476513309518206757578040159241880235670346317800888287697921499349491195284688445352390500741468144269488760088485092082527218341805764716884986250906168278367959918392426460459496866140292831039082429935552406390165053396712595591387763434036760580672950921233150786706746502637624142657085943888439273969772203235155359378540805485434259609749372657229226519383350349200498000494846725307278618317615416738651606476309686234307978048393010135581846782060057083919761176851435442143576146987002408135502899894119852435211056080364139852295704601807888647569631238459617312158417676435072713588795179205761770275055576213609650338208771561916245013075858337092814995753082906581966496897260518160378527619031092266201650372072605268381503808743206436272360537060734173300203234984132492618655732819196372027433347955976555704294790067567703547858544828555919967081048187565884105683803787228321514030871031671290597354831270858231106224913943415172283839206406781741579666892354078401604601922561264848797348663082438531053792694343877740892815957115362847289075372050942387542863195752552696377605643900182940791541617283408631336117921929043648684247707090417276657992034345096424389756024706767582422789480388334492470504059530397789001522809001910828340858322743621137643095914881587432605474922754109715789033487339191617186682155910690446528346237767798741540443994795810157022717312260733417093283434622045643451945550594918537380899836116576019122877652510019123667284126705943152767519781589655404613870904866207111329059435684740065281274590207678278075410050113242382904213843303644484323944139708336590896084047106269275019672480287356254122223855531617228370675183238714743367728577020249661804102164863594813679217341524752844573854808241455933767796855797921637191632779204432903295069711751305036867232425116779130229183328496153198936118048562362554956235910421203016278821999660987931993013493735378934309821122155905572547788767463632695310133026020887117480839927427002644101363091494420658441831017736388880049587809864065139197431372198843002829230548941876865647103671453900274582719697902347067638684378816754200766099317493218313119312888307153560762255861890435891428143918342968600914982501341252590559372474774593309498318483086603005314316677527406009643926144248335860619037956685101491898597621345526571985778438797929484809366026381016625218712140037583413029478841486456932192671205871502192711763074746780538918231584468191460421025834586280863105183797403603951157500450617315734253806383760909708218357821211071175336148819855799896049630837073628211698236921274151600051370684499909058710942009458223626129667295452606304950719132585291181364842071069155896090056709361315923445006243808747470470644238149773042639818104708870762533455802849577895956239045856136174271980691319815028396699976485810380804816747405876332053203692533535864425888729709814020444934196414570540521708258671335039369024010959915153260960281800838410178066490149721792531278536599052323872051988679445763735949691886474481253781345340653637734877716822072433994791612960236499083066286563055234415064471022378700509545699314098462215113664992683726308773383574067075998544661431632702487164191090284259260833934609513052251387466482254628344713324371802056911265010260840170320624458961381819011966275885734789543847289852070700646050035434789794692530704575298525676506166333151816364494506281456632886056206865191246265529185381926172424025083682311065184306535671382674149550884020413154618113450819314867829273371271097882303991021961616695641603435444167514558209819105216958791718944104007676365259480893849454420618799130724228552253779017217051045750279152347036028181851643805831645991697965156903890162249284749751650370462005171759826994388783708544345232692086959923998201517565206344155054128421821401529659946601226623231880642410290386165299316889339570137431842679347486026939328812198620651161728041717403689877237403974010821241279191629157515010953990797723202163800472517347586867777448464295945837650122660544377853984990214251977703758799521315536710652585747029982558142071588466918667123604553908895756928638837646225285337791650104575726801431751323329765237806144057236860888476617380329985105178406997990554300592714534822753709344418511511918896988166450137161734493036216707669817006299916719017753730567922479313542170951375125088346689813268627962922452881657353986145434344085105152065387451495460619180963728233903764016006907668792765676879960724353824418413663966532027062262689639862927431788851436130049563173164173874747933348664051573831197667349916740681457713763576567144788230606254979542537919471291228108708735394452682481262333322591251164479979462619476545981543137900480156072045969220077308599692738393547337007690205046178680462842877298048110834614882444709296151692190447389158716554686815075649407176990788936516292990661493279192593293009436380639050085364585434671540302445715867240480704032650238717685484303612305241000870236124454509136407362804192337592392156665890036323536746932962988193826540037409206769617469349897604942243361005976487286111584419305634739404875058559734338134346839185324882254826265083326495264094480003226763004063113142297351143704000723083943977008453810398503051407812930578765381859627164301212358143442019211041561711076027189194860302501514083137045601033204828929700117788079597252051743640519138978101960024865473144482496074884523348186965592439371845654975957997738311947746670193194260593806015158791088343237081442446346213094547268306095985204702032951819644816770489194657946793757465100450711177773940168904858386799577581404597642072176820410908529385301968123647156983250989463709836445229118355569920672762711132381447921931938126202335343210484283788500925634558706613309478582638778048959553580574810552061151495233684875165750083372447778039390276986489671628280702969504954548580357135447697107929872661469546750114356160498530799930978798489832390968607027957708563440769966076996525967045949476385159058710871772695880193609779017416088945077015693157443688264737039655364916809452287430383314485394471662018616462255553074562471783547693010279094504868143850809713096171437785729899919534078886209384229284693321675589849821265266705574766197405294661904160057090511214411119165298998123185028530787440415647971545303386729504462987583475232680530077509170529168181292588481562956742423505532674201391487845926516244551496827634874385661051547563918044599483860521408518641488415630900050523406159907565983432401843193007619790478141524218144881386572937798533824467336985737854441553196652074118517119686860735069594133405542058152595414257228554406517194079078962032393090259596263602897160481724027208737229808134279634906973643615102491884560806516143654747922856507538909391545034644897144190167339836431417357932780365392940140328018879122988768036117601324264755180548974258589951181675088152231261842202667176164275635063547513438659276558602462505217754156349625454833764178912764471847681943736130919879078800226903290201567073472592468960009737949021556073754090369810797311897263150449789219122485123965507743924968272668189851854766446404861473740716810942148433760468871996131178095225141865729961183883917626091258227093151224084030583283410780264093606464771129342948506410684006471124011135566545803415002675017447857402662623008968295507039183804241149020384073180971622653120663489266011154639730512112703936745027820445611637712832325900763791285775593920608794707165255111443531487936790981303571677390640747327807069328276060445872716941528377453771292367393878796186271193006349280664929278179874463281404640777352526890011208909209479025438614137632395993193121672101678573736481854426691601114983840021921329318302112196507240796520318895792695634818147758399128337592245929506227762066455510931605991397620388098640557588117769592871394849021669702485264017373845050599643518857385213381851295056599799017296689389452311514456516568097543806524860293438100792564027482334635451716718200762864995342433242942126974809199027401735238257382822187155112688665578349786774930315405125229688438247466475331324555483053094217562071302215625293307280658865474201850350400081530011751101308681603266743466566941840988895731008207052502851036555209384252718297594498922698111571443397533543950067978132002478433238476956570136590946362562161719866355830897644454562586089254828443420196967628814320942341745288470576543581094925256632738571168930365943856500562169612868561267292715979883478066159913154539361610209245321525323577135415388771844710570582622965866934533267905424776604886246864888906028548721814077577239256002469286969840595874579724285550461050288213111599048346795489315669645495879370625107254215292582388613030997104085878639846592739283505371824026580934954547030162865504317861960678338864996543760384072660169248324292550729844016184098495084713217847407951382779906182365489540184966944714929623356153267608101565652709327207186165764218506401878803244326627611777802398972038565868753872583198451121895598756254568578085318207844475300021847006539760671187642643875454177161274661159017068941552964403457862346403375639285992621031437544143787310227628021675378822552063759559855654491001105610270255022654131551559750742544816460568445409450291657381880003442320499067779834351195619804519633127452835137252727977769732437427868349204240162802019361060444518948410318560570479067652590878244478209507023905042825318123550628088886569450905222706421601217906807761134691796184668798680033787673934456841311438729974134195029911057970673210325834082097233572448975570512079636237595185389467584831945310177245841198191811536164343785023011926196963025268592936614251618347903977832641320379530311109071803716665339199858255035958826617556861347640699368877109703133209328125239733695811253814985053650637340497125149774603474665832810971647236369889710725040095094590780815041433124843526125857586847658923147660532409299925818304295295869068396233636644944729700607051628194066021563468119733470147297649584689975512961488977353481228220376274156615285882368552496741081760271254219013560853335799677969422060035941987681673079760576294317861062938323873553717644402205100259906114896576465377066030957134532901318137785840691609005174241895211529265105135274191571089654980035182559450536703581017983955724504686734691306865901639046272876115962914711717913213689408084518374374182844895676237170619419276505397262651124105728343437673882308176655672606465042823696375231685951224760064228559672444189286796569363634957167088830812620409147050187774254822897767557164179047480027894151836699150758784276131711751961090403636394340822149429863859904355725895751925744573519450482068507431217274490294185006274126032189588265189219482820984306583224906751846891254829550546999001691463851728407172458435847604181114684634162552949826915931831158281066081058245413894244702832673911625667972397944160859891745031583240489765805242366358260782376907926093101907073504475588425155533244972602073713637181850162385789518613973271033897104108472765323068058831595464285734801237974220245876149320879672525658102853639549444757914104175452455880892858967014120711693122771235036800672604186507654660820011739440139415506026506253322166348749736706847343212703867521950906273485889513291514339615403363290959376025580909603360166884951106598112117199757979105482969669066308114836501281799138502059146714603266661302449414792566169643654664320684196723417089388937288535877146954534438138049966373917747626829398865376457380521005107414900452406365554459911300914309140578188077430343257473595615465978249254388506115952390315916467132991298886929250878719879233526068260645113965127736788995886786977054489821826225734790483046106247091429099096045369685274383192543699712302249145599734703206592363557290769131148225031710483129677245340719668940213257707087437914506706849845435240396541159147585638364243657559234235875123415255520985422762307400934528621001191869873567108731084658012072357481357046727213713086017806316152197794115123119405530711580236735324632458908284461536131181585987229614082251339759681008571330703906926215816684933479376802540904121660554382708717255997036588924709994016327155457591429330797645244950154190198299748376353343447206443413466549262040084612237144154181056870829043591423740506649975694167455311887768841254746494748501855779214114072720511851277065282990354317943363114665599800333050220591071472536973852942711667468451633625481658373494031968581653989267763305238233505635237961848307076570661383735184454378965676102889615450118929706612624158631451687378849244800634105474237873427858711903119690455156207442583024026809728088087903378272012083781298790177268557386823012272303987119280284199518611235554914702067987411429459425219065378080469360073378567271904649493578873331485070545931666144874874476789647189582952402553986781441276004294737231216394920050772762587260187896628693956329562589396832449560221809863438596022339916874903075575003841879438638257463827505945548856986082154019464448847939125313053134018475613831732785508441955005085019392437467378105214345009781057238776948132734125859976511530041128951865154250402040197997752253444014688959104158942323133258103985428404515418299758823669054530965154756392572002532327912541872436190154922979047516409254228994898267757903139520935231636871920975035821711519423192315667851352441866737162267167713383624321959988291833688407819246688850331941865744750752886565102568859230026710749236338773903719820241240535805097033972132441283795547875395951975691291977854306634632994075165677525268336807633835857491228094124521057700697403082562024761576784898867102821140827872346233091347795163763853132814618325676116816102049938772125501208023110642208422753274224784251333691498605893117440001024531169387061615369208139560003971535337892797558669401424842284261360836979748833508392608300742238645887796741479025779459484739756688902979429408769611032178760091413918067942097087595735183792784979664447808207521145557072081990714176729774223846882749701692637512968041368111489395214260624333987438121969813360699631089475473930769652494442946628031615576213566945766433431759638174438637737101114630067035266597672251779072722967473965188710391014438658834784401853557344283377414939386198724223879508087406902095658968414445384259904783593052733978449630310094061549353884663401733988075430655747098529285709623961521325259296142739796036486839863408189095948246533571610343124824168567568964314630138028472020997755063492842117591389240762704210639583726434245968301091396849753020852291541547642283450708973474481224459937707332319615630408243379490857042646848418215238043270265891543199800159244321951512623715317529744714477931585960888549243835663679208809328102160562226417993559416708914950572200366118905334778819796986321749124780210939897262087386651415122208086862879581034304115413041600576444626175515224598300327912435340875119096973540625339523911856859084684509613180600584515051851422592550639086487230010328105206663450279645271857917179856194395273898618303355092087533601972370470718652113613367638571342646514354991642711967962865992890843817210872893632881246814343374309028558389259271749643427047449351125197408023953732701943490226121310549930625008485322075072688325179554184308965883132404626551165183447135514609703442307975780218032324540879622298195246758584082400331596708359754866734467278866094769761723521782873803433603961615980446427399016389698277044944745060275103605775495704449154027047196108219396011834757368018858711538219684394424441394814574195154910755615249951581521442105181761484955807796369676693452419789508349583309218517408169074816181095006140190744225296303139798418117103384261496136172542718120813303798205081857602352305187540055722174565475213125414575662684174626081951615941138295920643483541573844838655122110010371087658815598154227133081097653570731506275741994374924786574904153541911388372463245151247500848694155433021396929141765010130250013509275708099504480481285784605012722228097822196588925771903390802010446865933072289289721197905266049963673231438678531113075103170994278019688401426214818461502907240420297377947476770689493816852059984438710001582570015809702956859280402686004581694443037786342898477811369837913763573451001009823153120458912550415260073571958133220808805506526762094754073050923075007900135362371860054708563107119834626721212642413949120561733623087171721076810795045735766333347195933241054442172453426181338264066263391447227205652239090733202680088244935444511748453762740874701588103985543105563836142508089499078158101027272760117090155891625188043349192130881300902598122853397676231219032323782988605498491194192693446829153165399634708548228088763112985110727405251318112780545374189957762944401962724328413503702806127602340325154897421688993412227774184769001408915711542735605982485728863835283417688791466100363447409286476031927208413941816490884231796907701771260439314243630177296498956301696374834747207701153952291305507485849325063119563727599500265524663049492998963681564105307465009193202779136516830883443207823203907849714295679518439896854217490503443093958896061164053167373395991176390429026123529424804470241191521909379922388074369028625224721789509918371112999006088623981406676256763690892133302790332759026207355686378904459841694836210699609644830347148557062241659313254028659691886327221917948430376272565766424667135545995928411006181670069550654779813735604661170655931838014247199819370885243479672089981898797863005315744381206563140648441326833640621537553991049479675592320839376784341625118540000048172845636805654132206872046190095827612092593289226408428302523897927425602373205720930773190690367670867782803935315518526364672617280803995349140511358999997112126157243751721472815812479019622657414566469948028571590527179562999378303142902216605907285323200070232306110161390149759886265164266074494413264752247080758770587468072667518988582561025010226952585083632896518437688146546101361728725198924180251485997768197509314439939496685473578927065727447056081479183214224748380168313187036742646561797196421067617428394632327791009835579706280680141453252415585960869374588255376977913276444500621966405285788819837905818923807004908493361344289058375465223107603150489498976269003173109961892063642141398147652237985923961076606769041519668135055727398048927403344666849096537188383269171827203747627577429240625383323295519150497229556029353554186626586962355677554555967699057449915738595239881929308340641965981964444919440941657846074465163240732069814207826414381759538812258197193914504867206109455434907443628501517338580359721961974530711107927657646718118488975967519468745537625364557030302892980630211470267411591459148525323821611035873415197602238765060256248263139201294782068364780305316504104588976388575658247658714787185770025311175490526208144500301788333037893915022116852312330466103644172073748630344071855337597130467268867703811043255546633154757191706843340663864691615782804410692631169723433455719871267984796560858885017953261759710940777488475186167611038611768901140651812458344157926246489303751628434993407699574727476631933352235532030264889925628963069817317143059132127336689737427011657939064502444222498448851945202098806659731332651024978751823459127321341578712774382791900945682865183134309520296334621522274347239788201618691755770087464618328878900930353215218656293640694605079327336996493207928405639590037457283214446010461487530486977373446457522823298798224749989525827831252874257850566929172572607217812225586283603473335673043777365594182061348314778324561950529397392471465381184901628522068258940450625903727233130183445796797224632031964141013103945778080283276950609543683703425665841619977045019451300409154415968227043629912528596649855302270453468841028894985057394490362722815999961516590299205523024486921322449052220941361056023297622485975571074057267386422368803430167033573652998966612481607898590455346245047813698355335596792212160289090796144755821497385010688133719340715928676698540617246411128949999446972398179459741881257859706072293181703523117513559004972066587734545258124996411791913043181624199496950675858969603426245715647406477413708420157889178195452071691426764069242492992113947093405480432986016604242338349318551900121521842584239343129873519187496662049617788469900021222396570642245362804791633923448986957384365877603533930467033186405823103986118068741424683396431623368261210193157407872483960314093524960312983728941159306175010237336901832081689719099873273637437774632535491039606530252627860915288910625517279888035070064287393271412309081496242918780224266344401464097126919909824262693785740867208341891728218798836952401006140196485181775924800792263756209448789380679358944788771007677783100967859159280117293481819305395273556779536780284738700366666863718848210198744095740181608346401605338014743769839833858235794752314932669798701462107892097272671330497293388962006638647005564662088474453230431171965825585771668198033668689248572741554457505352476590259008499467133747299484939589395851277309102833556146660518122686304709928981663860453170895888457878575155953257303248223365997742205501519316415573347580826397620144462616532427393441371018539983853961739511809967359258995361517927907172564508595979216360759604820319675005230836444634868767013514847792331247421635570489325344550289747956448896677472346259905331514912519397166863427407216225159901774088246650353160542148368855973034722745682772836874854903183769340103637255974191883614548336605919004701263577149218967663030702230441268195525643747317418713759957968912242324436372359813965660838334540253015834318900863110802163705132654160660748842323546027057828411996966527158612392016661306147479196463632508048680078686399969803642832976084913768000709588492189097391791793476210350058611976654970578176533109194971362871324005176391008613101868384451427139845692738494092036844190533652912196375900148980859110795790947028881216349873924818802877424387507807421684761035494681467978034413427625388121173700034805525381209590123246820020948543614384100340166829814916614951543374528483243496878607048824069332710631840083033057420173959529782870174559040121757043570589697564655762914952903861162973182353616934845059975509391820703558321153742603895550229897887309628940404716583778516465673287179990736855826411042570880459657419965560762212026711909659306315787246592328264967265339810050096650054765329041428578575116807045005604403303675122948639949804868974732344921434665073857050633128983547603105833445580723741845689038455492634834288737442545049073713227242597833486231729390650700296869997761586903143458073390467668350055545960411917932762171515755411995267682454895985758298039324466257092241966849207455562610979804257273311683767309614028278116239392008641190368521739625005772484146408959278969617269889586846780488745039015971971452288892053022970089800916166601534453427243420272951335756706613410898714242691922069976582381849554289640151711204897976342147303035824758300615356658913889001280031645915506009124946171182729653799024962906947090193349751988735197294177716211016141798746035731393161399852395432212168796955179870836083676066313603163730619387600314052569638715509921120040021596337541640461452277324024558898968684111068759581396956398483858110047929210272739014371456861022773251083938623412099550450874902768632214137121593688172265204101592467644363242100285580495350422577183900281723276778632210189361641758556118712401993934034224941547669184227193876072648496394326967457888844819603259648460677737017033704986094457004019600886756166570340086402776035781902795440541725060276424766631534868396908688731094132754363208749441795785434725800266706638142314535301337263340003110779539720461048499161696297252115766631653840498139653497077064404470745232542329255792779775269571500696729535301824497299641535074437522177820685362218272972888295162264666989878019079936552442444468084155895124443434108608995553280946602090665035440767729360488128046138700107963340547579242039324599973874329721952664592490369457385461690839605384144737493112474262034355219700998795664182198846622867545059989617024148918017314205525314820733996633361124530362871881034502408858906873436488371011301520253749765216945691816489259282225814594386572527012378433357071896321781207267567555506010197810063366784617785979957417364924750900026423320026248379937629826822719350341527052438661831760362812799157276684539076430652483257361065741117224174818768802944592355946628094689831057499569085522811637870785525557907435572604021042890353260753652588614881389865189344182659510645199247600779660320301070031467692698868961718518737927745664056590150078936335934294622683031054782059630865278112466285332919585556037809074857498595195538297803065287258837266346302926764229411687643661741886252644326365436407545311572064426571349105295151456435536357572162408321162761426845517753771823560456766149075197208000945628584307209730896711312446313955218351704110234447574866679835396849164241479037907015524516082909795629262473927542001295424328153046873450287934254817786972881821941809221504762975433517482754604708851002203461326753336226278240911292629008574556967499649583326678384885877957102585458620718837082746137382421842720336095844792792848938143334522162533726125410928739103441619657653732687778902598995525742045697326302045919739103167936070324337375017559663659920000862723900188030058976867818729152770876347462215515470340531422194416579694248731864528803816081695580875688452771934587784648575792037143560212141798819869081812039010421021626616317649252836350629406227271075023736380588145677837464407228159393063589389076113156270503393450136993578063006368140922932127158059118582684871735479174680014792278728769916059336214525369179273302006583935736335703808800537402141010261804873004460861103364037692240178847398549225301081080079347694308721010454120745013404168565699698734739816084361603487889371342858328659827673046082801301172711486535612800373955527679039727100319328447568562535685298057155480064970754178316602150388753299661445978393689141499815610571686685503899947052359255820721073718951091155097637565048814772346298855218717081561381489145286555227564652993859171076736152872083785179016805314234735264927584420056620395350689711855283256950888867071870359779898274827420818366314211363233324019248874589726963086494525553377910064045230757457641473078427817387814265271290371198700899231418915178025696330164629456147777325117978438093976232578867839638491355450198642671911391094581958108446412140817047635886644374421847645923231485475809101058867508318790488039597464658810107056409745884385574030076903894658786352636906196352527169187194741808386559440320336946644194179979424579794875599140566754008458427540437768964338084693581120652803124125848712268214171488706170532805492963073550952561246132055722085570632348515159274081151094859692559080260896241952399565139119766048765969861463229818546668258693140288630985954205929594993400904807509629176658084525258791383619562600324796637205707795936745403382730588255561364934358961332537811072600375992088560871168131199541213707230490352109004241249469187375277554577377558854169853639546567901834493187403078827993375106388731792861376521003619681951790680907955222673040324125863598807330585915324766157674093467404211148669462502510394269160383323705053206293372643245833821758085965046287776646322133075745986116008149257265872485873919000649152578079238542703894449261093574709755254814844899427347687547905311687862390078974351069756775282446338539990972988214772133247419911900659600667968378366988148607668618927602999939142068333911750092269483690371889102687438778582466357086552910206928159011455953066459521252533663435224125345432497798397456904012732633802351698105242999458722144593432318037435221734551582102324511796576159286117515906369116136517525137244481332507027129400637657429486282724037984480356352228951104391906972068090510781224166716537467088924532890135544065636422007441970425058290389045239258167776856262468339663187900976262861090351669561258345149422125467019057282969285272006109569296251605772904376140992452271049575505523437821642259105836084114244862762842609557593290629509726337506644964647808669252837138070376763549945032629602776223804300092882519777810993819994002900107416399827479778103599862845048158287163615150778701946075527764207108447107171630119880122483214215753000247266238112480055099477083885210047865183823747403881409210271768682163753142258580791316324474239937144869457454715285931199208337877639849134338933028375467154404720447762674913557174644027175444796969331572354498928145112429030461562642577360108200356182572108795892460825957200699364895403580586219176093324693473326085219553871900962462854363363393627754029701505000703297536813651056688453144804020561841114917254554472868322648936464478650554137886468009692687206111437401371050328451595586624540117635877287725655165709512402592916493158761720636971018087620791417460654689099724031268084977001345749920591686393259474202121400681914561001334589269021294509300239547118808876556068289705540460491283529518067190459524997286145468298293689998642223222047315728301895307817541177433644526548959174462139456402493769146816174181876910620380310061149433145234692640590974550385819982124206838781210767700703469480842034496757142805611454806531295500333556828043225824648695118667095040269546367765280403919922800350007253186418531324121247672188236955270549753398343837777298097996758897765949652979412837002703600728597960820589252244643014804423446085653568544359978274101577142355097520434864477928863959754586439497592582748490460383283878045559694886877768736687658549349090560314843969089378131392461771679066899544297236012138118386094440583727795635711835752645392972893036775139713814234761869941441900936307514675504931940322349504394663308497514923400919777544985289435148987933069907525601365016751373243473749510988720004907807500096374249494031002396247454856259970810045368843112204193634381384221365041346280521896784661605492700089032013988177758234260394999527289053610032602816137956863875693743025725896566190335106471615887586593904193823600571175149333055266483435018226463213485503848276192528145149620657165003621621140435159646179921783668884565636364353887047928286305622094412453404189632343180806738541343656907485843823235929911311838116346860626491916356278524868379632041502074879022206985923436365219358939494858217898076022257270972294660342469180931504653941347509368872988829833542959562339818140384530537960385721093092318127118195184723150697988016415330094237663303161820059447159085811663068809507054329017236994135048469659710595603626997600801954096193566331508635460708473564497066896731455884449111371017817386380655154747563019371901417547439812089698334637755901959609828742870017501875368042704711441770350997233969738386393490548421439194736043801399638865871835630303238480468007018003751492161153890189477638158785246734178638845253399636389602229614676464624187001647993841604774168243499736143236273390514497069789273436985497691743399717507821475471315969773286654390350366665258874767751070633848747553074122664868895952801366004180492140176766920505865316424843008066780715849789907715470226915886461751035798666794716190513330488806379971282170193486440466789329024972779050943256218962434919658345592256540034380569680534396706826608276971492893016630675186760876955561497020058209927984912506374906413710171074746996727315103252836969721576634336041698489286223424627813498843468293564780416737457654511989096540667802091487234016335326577674551857749674342968398219565541455879471647714217561721253358318767432597842725106704339989855388979752736399078908439703256848661216652363171614920696407021787980577197640825221411564257554195923700214026699785217474555943499939268427100187389555370274783217740198435961173806475148227183631233005295004510504842325766328244960893883907825702522193931711082310973715939388622624732971718064284064959627603951755122355375345213774461587186042722093537755248202615682384537352914195208788086787065175049506596495057862161456023195570996310086664545105122201248654938022850230615582712138781967365385710212607966506032430187448409121506801217050208868905441496418630710211906050778209782168710954044343601059437162200417847904922318962651296739294186173928964981312302368986154911690281446514400967349025789449159979528415680124686494933958868052207866643437789493775056160240187647471709106722742788792479251915517058967720771906972605581629949486391640432637797553467551281233014953610308337824370064836906401511514801790829011163583965068363411384082220464871284902399849809015664433305816434801734035585110094022333582950519029749704236855319318082959869803765283774842944983584041278747162463606484371860514679061217475409246698762437983372742743237667977047472167257662139627289784380707551795389129015726422235408637815086606265946277928793336717873411519475015860649034316626903765825079291827823459396341094617678279105115578209247559568517760948699273876023410435371998023201734275260679002078886453835282568296438512718742045669300953458711198337470717079894504199103510423809798465409805540619073956623987697296149918703795156053338660238883084729366700578041639166165887225730192676017058214248257770505435298864228787739139642272293136227774280794230475700745805836542223775171525542862780211363167269706279846578176991945782588219621773375103674685825568755456047515334162508521603079377067091650250134508944011313450426950622274961047581765973738481420059937055126995600196315674411580000699222751581268964795995194784240248162108808889509361473133172885152712907389788561441322631273757025690608966915090389044611124896180363158315412886137043783354110078331054065698085572076894849869005103831585649552741584191875159437340304993051552748929816966520090211764045951783346019046557196976255730043720320259566024320124365288753739348673816378710913434238812400309005798996949764500464531890403436085785131104663351770777396582268101591427440098798437501335534605861968999131725033089412864906270306280471516715384118256980409638555458108708339988127812150176748888370028745182954116321815523138209065165886364727765990883108303840561466376306200090637814328704070528746456822281857550666830633535067966812972895891149939694206917830790278714436801748395904075702617378012293729683045726095305987222302355686386382507771150968806947576152366178133763746420739269971901859455170333906691319482381111624053687561577070603430965584759041666389774184319138130871333322029667004704416752403849266752098666736189976626969918316869040257399289737399980752256570134721094809172818460238887693684838524869048315923443048654978413715287167068160942234351354973295994235569736693389570721722821179567698013894674170493626702941695199597198226631150526681881987381188984005430671636873865453020268665670154672694499805662131682916252325670677650784013774540319236559755159925095146336561755962540913884193948230712589544914452918130767309181329009750056922026774847635513933389672236494442097375448366570408991757718127361274649671708667718100251281550654777738829368259472077763986896336899632673312289428395908769872397286146675915046865182831870038460122638853855117274574676266959685500603386180374623699696381912980050595990210769880397791564070518935478081708548483835644062588975270384717297048212429783664873266598745449777061810339303584336447115583949656672947725647193926682105621664530976835459693018775162281548131435738740375155004510386117352239383781690667130408283767123780032474954343335331861537870124868621759740310806684451903110296382444891698864777339847482685770698448124228667445608219567169942338323737264260461047982389077225526156312489832965757037219841536319807794650362689362472278483419073705585376249409459508254433727287533169030011275270113532031043153452571891684389157286898944329909397679333018547158368857356414084083602890785500955804970033298159314983245901512787844353081315787344198851179620855853297806276977449473574437723934319891280807348398638220180827429228939019545168170728326605959720679036978750438021909079428121165064473036474937823513313328724966069988017048881012043390837291992339975061839575552217836237006293304317397688589475602668158622713099423763008150059309294909108968306192634661638731496164070104268913217468131936746088363094656129811416491775890877096682430554198230927065027896750937288406480418938123550578082961123102147962305036147145511026615410000094265816870891369334639418105568544191566020083014068543931642907001513376265749990151267843639835028994621062122793017426345337776303392867284328404963032802212899503366989778518389225742268023566635219320280302079357612164732292102954056282480545293804817221933659395637552868757008013703683950552319687599644914545563486141592669722462240216645368364844967698770562739004169377892561527807984440874059018397551035317004793618675620129615575448755911279760428663741578364791908079435578827659408172428936452243175749058732497953005963617910572523607340990124701345304744676251190817389243914746061180276149621319389124129807364313590767964439941695325944264062808198644629891628779726106054372992990089329233766548799434765459651875926655407128325752236596989182431613336392252733842958014871892332176996747564476582966661219567933303446275750058457769891144585959946950485040598586600789539548841859681310847619126165268079968040926973956245502123319519661242182192086069597406014332365548288641082725901068820986105820776656895063747413132119018932033489002636853268354018757082652080763665773220517171090442724018712725384830293383783909881777639869716671538907819620309234287896618478938498726168378133763130337658483101257821819539200633132577813155653616279193992903674713825553467427942168374068426489274298074346573792736804593902876348924472084976720225156675727480749795950435626128234908249919154157813292788218238222186193048224537024466440772240381943718618302426594625874624780492524173737998478114305016010371332885725571697877093834106840397108007609192152201583947948456017040740135668636760636163182799578324335534745861727021921470321329514849037240664681860910404245362102757231818482044488461650703553185243446946291737707409162059537747316179900823580340151476330593149296057459347969776339471919759280984310204105630835160511038535012140947893934949904084222126526971573034204007494328220944107378216487596741089658067969556692700942710678206536080249578317714548010861937187816363770036771413742179282456111356942006479686869687443032791420657006609889601905824441093847206940606689763621219208817160332874744050913680015912349371902604203869295135430321451492350347722596728031714165842479016011790441621640327194412705919160542059952828407484590971704860826594893740359097992496080094692510970292732772457162535506982600296720230856315994046382923187902263366221092392156057684812256075430827797410892945743436044513592546894089339592217969208364520342712930143008061486050654586680631017284556680980829017822613141646708724636556432184714379275932800561884344412232220976301353207202989428502863455463138754469690902084842847527058465151741906447987416409708173240537809007377142901498626649717548883071471933900899009262462732156491513803743657334622422134333273631399765107339395169459395344881406085289736577771698293832275107070145640075331519431006659695149561977531775598693908597731326493225378585461670703448161733868968465082688429473519582641496103000918821579390562831423013768473507909637529135249080609945833253718340282940005184797698449747451432775933123111292036767590859353938195482131413549061004770870496067110718674886067066059879805336933950797621593147278571380708499500714343971149386142170893157604195190469931328122830455842981815020635701072892620652103673828024833829443486209391569644773608811312274097134837489491952824469095534357201447524578637860883385197733987846545499070294651294111732163864301918817117461090938777765390538030145366979919624105722075739320591507950129278586779061892019981531981467413254308054392817734426180748184101015484479761981750639505504871056748437300236545865766638542201386850854871312151636642765943504959780919255543374017099743734695246141432163473506025199659042064830330528440489454865427464815900441085458805134169268961141389671957657302613383223226935157650922062298465991597608417976049335129815028487643907547412304603810285109506170337019619778898044319490455981545187007415085001943432608258266387814453824945945371651544378773703979796646677766529219370564968456381961181573595512817134322958176223374921826828388888245574484109937168334481547177623212692778968755584162988133007346509746787308061323420172501409164812650961000800143218504167453703303514924697874520770373447272769791364297882705091794727490479068700734437123234627073147490273407400229278159269980470002723948340105749674951631479666979917978700808848026673898235709214320859596322058120974246662093475312254159495539784862818752795706200511611604938572176370244436582401306211367384200796727202142470519668848223550118124964506074986833078433119843398200538455268014607451590603872945487842364755619187241726641734719515794709792647128302460126449157405815794378675399403586627698774445660474680283948563027233528083856620118691484401403842509124806958721600745709996180387972138862213578046465505079081209357528386534398872621763492303316506462798476294013102391181634889325807420039592722675296837718508473682029730834701994559256484531562858231645071758377808581996303200880641985513154540005132384651024648818880985291561600993727979403022324385020522032713494450372199915626140499600556877716666587850578460173465740963091261083303012120807588219493583364590137172868446659709772217357167039154034611402043458176164810086347651099525205445587951834919789350066642604890273807997481093476543342617632670379088635686287368182013589930167245106026170596745259230520154361299775356099545302680148872534382074174151331242468737368012897912574180924257935734071169885090594682977313787270101251067008516605682717170486805828122268936136368306008059386909988350185417342600643864686039889251248910353831719683623018761657084383995735546665155812456424040812199929830172966702765107458867262379646015106544111552949137132809148801588839993982902046492019384550137711079439119514760829421786493285711524181048717830133251900270016424339489568681916666941839232176368068151840418482242419323927443110627438847969838763669080220494350354610040149381305545368200665816415160163438654421691751801867455554311438924910776905945164638674554959878457668073114191811086439938531284682814730509443466765043178861597238591572964599865457382455171665578162164880820490257422122564757982034296039863813558278207364384556862932756404144743586212174688453447019796858728055176465919038947554363566665436176271721474467939118484460087987502325845611147169359055854106852352717195429764482408292406259857398559074860549322020888578802339933727322409226671359292502272783535898521273914971239581351157440443429628137668973799991333401210938521598960206028749533473557731878552539886705499665473873222495790616105506023461787062928275142819295330127495308984694539162976127647206669107351140820223410806827636603941803543396464242511563421181439216696859431258515239635936380437502941158670928025087157705246518688341953605384455813559902742996550073578154339590504817561726366351357546917903437091506059189072009887010859932995577576133999161380912603490155495921493477811736574619775373557258317119079004850882040194248339612682227536374836184547332218964685723429344035217503588037453888187673955745415771083462565927871478361839526532337197760425027563417747394506860384833390789278861535555674164329398443171565290424045431295355916602789741877798150395883189794106714155435612324211408604198861226735077194025626440627039419294731536536361605869719206860734912107415987804078412846244749942931999768624009717249823621467155190931894546893208299220150080871515392755613706518101127528992572511106030642667369284462473711545039759350798111265693757542404355476282018576604234032226125505420294484459645396600964782684908690157186576016898633397423890237312729391712350873499194254348173869391865503347621265068679635213324052341019006823572665224827915007796123390526137638433745847315178676170538800095872676190539752293662193446209797550407033105080857132093202534461750072810257796484121426142089245909665434921405617549291457558725696791849872569261196533546198820795496786823809820356477158379655862352985135922918285972281075670761352085737672140983483641187334443645420600030927802905400499162538113433107776927381569525958205506205074655425729590516799069607875986344430220908155010774932073231339651057910766253132446300473464258412451873237706026883491662517633781337325744212951767398305948656097505377465762773846712288542914578803071901524950470633036942557514006113597396795383531725383811484196641395564175934299777089403933622961344111029130338147314843058446440463615147684439689165265897755617765397501743779917050994615989539836842721262098973037833293621974988493658171390095443937244625371849495753427841285002146320971504764493518052663977391707537704757113128486888110523002245470624515301468295395854223683076203696083877549644478305667853999154742726839556742165250861614785838853272117227701319837853914807159265344235835123264624933213963014736893917703712154515886901566601799901244275015124799999105947817698373059714159006823622500988961006299636702253197116389950341015536619414563890316466679366870014870021466808558220279406064950012046598934498174257222990880769478989948841216140616875777482749110156150636377585608383078786502563245823774636255019447805294407550922576255085065739332968098727174490611836957072174162402509766740569711451999750875394772957219705626623363825822931339967524436855827674427017740684520951333592324403189399768277226526521364110096703387854096023793949359446469953521358170875569047334300206199630544860942397446776209076280717243056244171025051642064668260576882078176212699946813269097630660403773902536717700658099473045372219607402694018669449396427675055884869486304047625397450301308043662609089582904886104962934689655624496973308019522666402070434235852661017791103075559974887412666765406720695930060416052530037952280486915403622919794457362109777559091918199429370364535042538301384022474681867618296512467961653923528450759086476250960532950356068731793183231897447279316269625308843758946802622352176563567195849542266280449810140357658806301448715445543048515661515921800679410060549364117655444207722129066912748205943322433038756315316706617811507826339831078429429123472921028821086549574619907563044368658357998550432612405511979327867887801799564569581455307508415544579028588988011055170645157499976456617740438291762321725097974405474767582863941975373182478292346263650149684128333831050234455260528954334382983644676150492373468346641484127930504760278469867465041250745543765803470071832349435245619103810731135903187811620001797899896684499579792047851912682527968154209243393256816576485829344552003507328658179822715744315528651373881271386017779923818785504932744896649094918022573166843557256969767193122697805258930578024824344370339404688373447606246007015027848639890963768109601285929218768565355453491508751018964613131798849828384418995648766947387947234067725710334443897439630211138006169572922940214900143552029293197205541364132130356249154339026531478554433968969265996718668107850516424667012824485266984931202213514177672441617207035271362795201458534345392564064334079426373291434388010732885212348014546926602975773053498910156098190551341311775937542699043164498362927762362879426014196309340251806091518497381683517814614990210551531880862876620775622747916826039613069175110302764282452257423527513642219167322170801454584178636835514686709726887342454774019175467084275987927185176481301545282580731289735081538429180899719333329307550637737558767466179238713363511463629854847678020349492071039756501335070570812396291650449125823930749336569651030042555388121734654556107464650029311092582111554518098471438651162956663614211638267972296285763413448763984601280453267159512537814836750183900277364920399302179050066620923199881089251514473125425986176885824321484319883129967991115414184893738433210229008015867914593192016252606714846408376705581877439094100492492486377815431065771177426682771074026927346187962273233885419365512868262820793173706391883037995912718817119323042161204777102442808680152056776190234502166864559039639959427047698860770845845587660419746197698989509128658749084059840158710378362131289472170117831593344643495320170892239536709064490869659601316922387135567328209765694866974269758779389384792743708321817123149162607460314259541743631366804971414944365923266377473811879475258676062713219741794656861846821122494045446002321185451397309347579934758541853593894265652742234941709338144146376850469538686904392900366717888939315096250138478515613404301447515854563816655538671848032657204857522825766997946477496016446893640492105680161107590843915313656513899954231832675360839317217816953229835410105895234105163131963701798596166888302434404420664469750617337871623826482520006653874489708760203910745465531241321312348112157610296277803661083212920028467740830887048141564779070146077658489796461112885841091465451439316253744517699909449859107047172234588354202050411525607280157419912867195267091415349804499151312624949025488811289181134744709209743345073049856478447834160732562686543033698103947640507954396105658540863300949833439928225035640445165184670402541086312148166308296894783844066339655168034423768000089411417669730885800342283222182053958412192470370854657908105115009931495999855996473111469272823064509430787134142593476732023591730565143345920808887072289783534504994330977737449712908484125305839815494302257328584534534849097895353627053442617171539367616128025842277160848432245214827937528938517955482667975014658948517753771570216788011163909421276900490346516151049123755802151449843605614772207588287018003188473932467900807355500969376122577840256097401963330250477712977583657676369408259854258284449763323666686339997034626519303876677583115422865718022840771545966719676039000356193961943381940322482834289775772878424802488553989436995801947385252028933863208151974557287870757275133658510169340040751245890628713606693694196616207280208162603099440987541663211454470313602758848924699104965294400671264592376502810143293563433487847785222376559896137452429672814247132751889999631415882121764401737329922545903550746388165994472325754714147737390507525307951805041284564079650764685572023520749196734021146847611803631028292314123038384547670879388084547261213994771418677081195140391889176980552997070484941682344315869789699331871492652206840549800780707369279083244334858775806241397342071644679412189259145401482404747728444500909352449198197469940679332773379759028784844351917596987307913518204651644351866147686475162085088688406264144831806155035708731843339598019205623684804732424503876611265761337571958567444286367025320753094774841649529708586666808595633670980456770271703059659838593901288001787116454347371140936394431788171517375604500545285412705200230811242299453964604725576294825319253141331266495369714803024242245027456279710142384420057168730602367617968906894546837753211847596732428593718357407288511491704275572307690677566103495854147958135208282313316763353122231664657967719183180715099271725376331926906781720897043179597084591883120961884141454000867072032566597153525499442803038766478086006758341811849961413145669832909484803258079666566661219255531795720938492779535295248183570613260192627968911054755905955870962908552010122251920351464876270900973723226033254282433310002321259922674463843284451369542944863852741553171334619090200139700250870630521559579145810308511502220268951724447830553419619829426887590337864552959110128133995397309668061467036797053509751867787206313958880209604834405687104560530632178946967905697033565079239714820014107595450567661110244581732736922946195958717007637206916875303605953784081236705099296848132354608477991908579289171707742138885822916948954402733064994586762299696741932203505275844623772601323158100300369112971641778876649034257421541788074402652856672402687569278421567252009415958099802921342896103136657090712847385033136709037117221829217670653536906274629979426345926435168371572313125589274896851770572254653666410417076943176661902444500043321217583462362188875350603539778867767513851005549869289058461313055513514340965839680327039920084583666740158738881224329633192771405943924053466187567836915141751384874816097562810676862361670959877563613633208606993753663155499532284512858368985684418889248287080871517887022825139615694238050864994031565289767653755953193072578157699432262595310172939154540438610902587686248404362582916028366640918173381081990718554223761290761729816240983876640849291324489730053124695026993792127314391339163883359710619094811177228725616992874281202593758811762148414977595919838196372718468314105512885278731094706644650296886097335839926854970246852691195876344200318099457083743775247650187924874889983509192137021588575051254657192560074759016609898155192668552284777501043138175999198706361090195362703839222311657421477879131669692780503054621993184548612459320109592725557117316402527898329998467376811852693868307331317175303963852029981660755208890804240163501628014889416094505193012886510595944390661898317146974498309655731323473003367496693814425939895792362552296012461869799164496577929465266014181991499823587538863706806691692646907062587789223023063919844825560218331017556733245863113986038275270304759251569158074336941611422810541770953258417064540891698337247692819186500731012944468171969373481814560105557716882222505844034400042872192288005044446868024050051780862632937537937437256954884932584079845723523437266544316848909099855672577858528346251490176552352382412486006254540547236908013397799399838164768242286862934758125332535357047496412687666147379571578975169898671934671361891121887189941023671479503773300317322236167592570601985991282870985135069643704455365416542140203739348389603011834801488001300019512797956149515623108465482697120975369236805179300436091360278559998441222307934287902732175409784523821233644883615592875635856967010394055514276348020878426066333730559158374642287541959003004079167823039252726487638524855885433487707673459465319385456906259868625017381725464402235575888103818858430004927041516561675385999270820597068513460303794501320605058045955924236448227653143231600301530037993196467968660152719502055081548966005786420763364535578423573145878155683359665699382225696491112155550843511669894027101688207962650680070750935187818384358299149226269391651809668934539885527879807357122301560924629943749143866159911679771812843598820689965887350373399046005289490935557314272458410578270778123274753457782575459239896892843099187154093006036019499532196483304164922196342053924218403412270898909237172436306697774028532674488859333826780576767175696308508224860622436599319804896738606959567699102481018214615873508800289263782218420454742571490485857754637998686759423023600694992448898509606598990814841656763517474317573402728897532217369071477581136764264209912301937592393977167736373463190072969959877608026149732305230048772256147448925670653668344676545464209837369333267712261990166916307703960225560968589200391159845295083205032196218370409317637796978152502191827266755155799966090735927768133924386572403479305840505732475499914854356396000191861911999006629897442803945186377857302387983320937472096376307981000315685592432244231591182070403418412349915777480611328551679526479668995075258089488527076507397449278547306979170714364295437050335163657245995400244888261580469414286035702365889676126498611647700329148939020567913852297515001224124530061825401849367810452962524564031817387438703708358234637696316967165599099369528729205906019795400738354010434929034894973143147219728885035337179610464942644334510946906924903005363314564635554947841130220076857397775501373848372649437897193645754886633231231290739811066153346153003740803344745567073834452355833749005888562370235837080183679783057010285023631217393241802809816100536094454647969886188527788988514924843950011692625896179276083608388064781303114577076579201462978148578707388391411666722347912106687994996771090466490711538080846280833419790273798683260151998489023017480925611321239213824325705877010936439367070149287420111590903897341351194954256068838415951781990027930789510726821631384036817642551071192994675379587239966261503451474620087969151012644996791022059154673940935971674522805433440866676087742358625712945753697452092566620488896971181142659876434488948121358478352143087006073531190022445069062940208646840511875991590159392705394086383692575151076151705441151320569602392569006082138923305166921614198739294256225073732339956567203645744815628055669182705437212972388355452649356294199272270791889079172965425315122535644723957044453743312145706686134972123462242838560920746807065229238532189542373115638569671482403684620178565762483059557053714275782341525722894874398632319640592174596773434161468963454719063812593674172123355314584762959059343645120821894538109801100623908385242149861389134394568611763738474623188194865945086143928499409381818654376874547844097240602511544118744342140777428028535598258091478144052478231834540021158503140045912278018933162770013199424357636946773470777585016732424952872425629487139270639924773570866090607940452433968652430159784777767264973659477559008663888537620075100861923533911371448300547913908015321749571022331535343544912573603370707038912782419993376973286924258445828142152911969774976370551119759493085509684126668111773946172578425021145409706348425220056292536454447012111226688750308711055005116915697210421773380680516657330055234141623634431999036599158914607646690948514506380821229540026451989438041223475514310662897184534569625622613113006136036178549808019109834893853977720881499909902447096245540044208038680635772053269312080433053047246209553139610157440281508008133646164340002939159991192738049216231915322401183707657951221810352736894031401800914170201933728418494916845108908189223183377102783642108521243066152476090299439770358641594879697967600377666949473159127927339928952245774997356241176126975244645837007418239285526362133265838725536812131958944428805267472102458963482536654107227146704854426731005349802806762140453065689564181731307604162528141759299247011868774696222604448138613361664351408185412798082955521857972169282441298476682934669878892720747866818502239160177523803077020088104064852037945034590670326857935702381358106334111200934516315086545189852623070622070524737860534920615973294350345699216002817356627218082353711674776276698450781547047056701625647721769739339096346226394922254368721466881260620786247591184802656246691717952109533067889897496178362502155130253259829451546497670711382624821971178158822551097444936395649853683180614104506890025317426082217308426327123367683238332025819770090537937875774271480025717091399014127507657065920690651478776292616835927319507789085953740906860658319745988946028314865733360601525315148003385921726995204316038146896372381144269808875367739024675092939294643707973656982485434929395293069996733367563526432936611668528721386491370182187445352958723355608494199280994253587407315411596400217787284389221978384141124125495300502088350288312247339591581670641579260289297912716889455276997533198546341598243951534576761134756360296923257381965410836695322642577166316879597410929334387670921977381716537883882260067994146294400468598554740627892387621689642698738075879769848838568321828309095624239719653713600683934964599730889770371236269748905477157171904255129719587256906704404388972568450026850007172085485047031160096840173865034106279405542178065316243194383982034762224710664935395075914269661334860114035306240902999711813957015569421167696889068035457944281878032237037094696815298013941553218016427711283429937562415482320668828591438620893708579795380733910768769184033204086444404282790130221845074256690356664121419641695475516714409834735887372249312485825175569661427378767437233994404210614523764899481069674910211450276304819497434470261553291679902425320869277104152960655671550314305584208590171035400556876191165074048471741837836583001970292980449179733077363315357059394973234221042151811382240395345379357150089780907497208571621886365575735616727502456511806713186819188984318716550551604144132949051580616285685574313622051506400399320056336758756398477175154504460788423828052400973203855204833570958671519354304558992110188489760829959067139101622596532260929999875551386528318983710184801126292971915550471995217503436494981627288164286661785666785503297732752990087351450501972697974610081112458505234890431926309450305195544997667793447949236228737232100634861700311199453339973375426255254133243652625429505819703436478348067837810026012770491743708313188999415392847255116484044897538857409660001980957643848210914067029615228288230930382678661162939810484060804327822712176707346721737418273545684643960942604948293583472204603938601886592099047793773501994884566635178064746699763426055037383918406443562986421680033069856912803434310983388411611170481919437004336569451404976578191768864264404215735894658576510260218405919321078812802899975388347878915113474397949427518473015308061759583518736659255978879889649764471503272056987426794381284671957792700735764960535195090726707877414226220829176350252871691622476668755112058352428401591954393547643742248107240429548456848148298937609812694953110177462514362438001879388604564028506791425209946213795994850726206403726891999004575954438081063165452466078834117073554653325823989498454836779335778651312093568643466410009198119704747446998958964336566164302437455468953525658121174748832075221724295163916899517633571286054416373538575336815753391247967560628155821746820086297561632061934493797822085243802771391102329085771060309406699210924657792508997390173628510677668161107538129673055890218190914998698149723013760881416558019750054465744980219850813837377727530294609070809639196718253817561519335537458519771024387414331677331770679199953874826484578237148150594819554627088036751680035120682042825285279934309743824686219121913906799180175063926752971426057563097617691973914244454052684567394526427561722592655947412759014934233822669076936144954930992016089688478402869473312538778619056507328931215014214770881348661967746969230603519607233524983333475571071283560691741244294659055640352062622074372998916094658398320336613214094182890264887941885845557492993295458901604419975713028232678993532201826311372044829237132008836705861210438867093198793604638156503359876891919936058723424581593437889886835618775569223102799834888573328468916142210231257079372487136745634933016414526984809188137469229572900861703925437108987532812549929892272965592705531151784629460504757854858954458511518820435643671029356595565742716503245224778331790661473760173938576824971391428363694792541000203789567264114930442232873659003139711312292805686367701222422003746142380911227317936628386731298865588107754714511018604066019679657216113719882149985023504235799661655561835329257170566505798078568906482050712578083975992264481006381859678322787254729645359785340346890503015745199410437506060876612567443678315810263356442168845645406434180223677181651270872040449624897391731847980646581531314303612458672700854075196689495489045869066042903822593857132736030471423382432386659223972993151791054266358105524667685860409427280317983780288543193007980104277978756626914998820385193794370543849415736483374342657762506302219333858777666116184305427889265659936150354234773812066868133433228096561401101762950530703643339617642510406964755116693820535845401289703520626069998278317807487373476044210556744781569810676534576546466576744190366535605480065785310117251990515595392071326988148514759110021907866664596168249720879115437174278151841364403628412639013279629936129463844065983435774808984159123933247917562634522791506937351662578221013024896313339185761804327127236894737860188773551745734654136008961635160686231977882709192041600159955259850416721515697327608909173184818558172664315369816047583887662701491563376224360284416749735590340982930863024335731046965902188731637977752809697417084142152371704691603935295226384004424794727827963849538591807452054286738881509406285243773187341639414646053439340851349004391413349380419103716530499238628538202780349927028215895133135538609078755386336375229296705311415175328191983152675707351418340338929067084493224302481687805840467454910200452107986146618267700929622886055256766530816374864484395169946305724836581315184128626492730728550895450869940379804466788948968216866011929837274308835405944035523211411016905060071204846359468308232877995942993442429971128772278608636783018403830957155301777359983724889953858449156733031292202299793492791697155860556910795643491216027025139288879249933175615244917235330897467149167889737677672381167481005840640598450233792443820719218586247494883343943053078039906282503434932002266064225372597079070605958561759048572293345065069468904292753997125444766375935931148005597131778865216414525535468677106813216424632608046829777767285620973593222729714469109293013740698098158292742343096695983622869442368828069462385857941597536747635717125421416208241164809211377410436992573918896972988042807843346906267997125821301460695570569398499537814692122684341246939940899852971174582040284591530971406204549591395505891644309807452209695166714723512592290893042905650917869317939831527717258327094456323669569650724239696472557982469056934363976940398833085783040662356611165431978479012792806013318481508599859888646752375382792248606887609452103493873128530329632271658756767073515422952695248034944556159639007982251225651001948233530345584570015214872385785848261276258110743137366179038527134473013832255882209374972099428024130333032177271941380734185642223495464661989286330944162715051269765598756725507119238022725674103284912299269960234970067882316536674038263887755517205036962739670395676695354387738124480769539489324915124844412998443720501846760189423468591840721135311518721257579110923665764901121321724350197150966681828539089162510757424590175698053748997715836904648953433857311016372238077291532309601727266926837083457035008070949447178720038295795894121888139116500564027593332174302093274169440277757476035116030517515985354907436608063495556383634058388266020080697420102311291133027612900292413543117559350817851646593083369935178815600844097431898342301511186011842467218455379714671379380919931074711515383774098711676974737823364781748459496526123721682078506793263620583500746494008646311528021920939819378256213829052977284107989591953158474372986238320330303301006649990895232665059910258258957183591832578655640229506623933230990322352309715271158585805985165474600719118583577326598999956109629238541027378409584407983948864374659062760558125045334706281090958460360651375598185779652622637009461876052598637173867295779411073366545820804442853675466717147185205748396230815866993261860113594449143985656309316931009557297255462962065856782700538268152832971205898984227178937888074611166652367949004606500462195146419157844514824555985387230319052365760546410147421804190034131398015268159628134535252963540145091811902061634863720467505499661295056239786254166227554130752196018711910566883510283294286067878616887621720618860537291101495898737598081007578874609731985725458796757251307293068302843024182209777487425501051746544426310618274371292466795507774633808550326372568100725097737683491353695267800412084570710908678066410891175212261120101985309180705643937729019146556698042569365622091649454771802256615666582434229190002913664209171000201443209136129147981214959926092141783719708829822777126835889436532632677516191361652316276390651649561784359397664712392604383348006336145005362642603080846288301876950818461768568780399518215566372085958192632242845451107851087394840489343045959040372375798212832504436382752886429642136932635324644163119474741782191644682483835216427553531575687411396887195304591993754662870987721421142446866727875259527535131980620505059934251687399122676122607030729973165101276006987949081450223174445497024512235477519677805787940187421029948650871346216274502771160151202168410245350939153876243751515001307674211644836595760364950774410017129823629477153902547835014239601443150671866014090556287843247381611712597168091996404598468220513090336885131084155174418284557309293923951668467291323744388476965039076484432626173934016199277151664998791008787891261382744945710891205503187828303854286046366123422726005667564543119513223952389342010818965671700276161566298919285396201364442630699538827262973171073041541154444074236970574876185443479280582471207545884703873115652401596234638819890595677222981975467039384879182801943006558402997390462360430650716319898606603928787531543689194398728846906270182081563946349379259287183365594056099359300591757266647444983642025171744265870256110025620795040777912372337544026842338019103138361653995865031985583352800428283346339661103409267745692978173870417187359879363911997734616445851004525348550686246485166870877047244681888097192176027227595700402338998460493303874683261978779146142038171535040669760676439436366142279682813363010624090588057265353339197849537775666115132246199012630911937496729671868359107096119933344355410927883358418821762463307623340613964842264177556854562522596720480914635117903799886289113266287628700078239505007231663272421076872669527478497893570285013343324926799509657936465772172729584162261053033338899736922272132683485030624858166293700154915113070513360404174679960073311691542171864514366622786031223445370548505352095043260781022152244203990393049987183610637551468287979979928126163349307292514349916632331785651004606277219172035441428005735924240248114950727386659270444324474571320777079584579455137608676543501295589053628437230121873144933251835666685530299376709316759975024671335060092566807507951321490023907646698914801747924968301221933642925766180045523631424806369774346609803961704439889612073272421605100996102854759247513993523833272682789243688551928612478703719529133349961610436950940992909650586650252816607026356144205024061979329167792526727420993021134654904636532153360649423202581128964766982740090589829323240795636956452600625118506212589615430256042067265280833884186856831496644098134034864358492708768922291780855059599710741942279181877323711002834043437130125301369132229360606150855749774753069145139267701640820138124400765672713722577411213581743067134813783112277446526267378670353320395770203407240355076441678674070070191018958353425149880522108990077967745597294026826980714117719939650248523283145217787194645656847537200376763636643450187156412223471965436857831962269368014918826843321301423401243160121094877703353649575755528249812283415917982786270785720691136517115366742649027823436088082146629626982640376815476945704879014375627551678240608237900118545221560037536107524199209102753262204383985443871574737079215724139360137146766457546578275111109996099674544231370240556304964455767607222997632186134438673143427381213586307894733826347874885630652871540964150028011880952532291716754661406257878538253513099230763101452548596016279697604610069552169031589975969371088273231982308826401070249517126586314710402104531935274065527261606934692066386079192008160775464076771127975077722529995211137983782028356313553507230073703504166941762220882774086071898180747808952223119219447828102192025295811504356195971748299387453560513857265023866824909821031388092227349271032551525059866654363811072487531125896121286637978213421162509117205593982598184013931444541042188795413713484238897057867988888995986103341912763830528049792345392825673659019157620917749898088847519685038265333679385361851735286143782333113421208874192922422731526213563448502156311849122268564418979366375792568337162454470256537379069725723120915829839109162503369884038860339055274692000306102797157288889405999031265389140175087876744132995291029962314397385371047846100936361222683636008147219011769883863329071493329864587697100584602073377278473996437656887835407171767014324822601890080481581447061779877417760416249884152955739761640580938299492946984997525870560671884005351889918508735152072811089124353132009749798221489996338193176742067417337469027306729774259642449112717000777795692066379865121851164813297156153399082962097428850874207351935795604969358849250956738237592906867541837686983910556923617857521069945320933654966841104688143040298567225829306163325689810010370389658653776901252097071213704431435962033871724389481489971127586712063098619538409767755337325605105640259641904546012774820515644222653669639263124085948862388533278723547392676302778190538888726893658045419866465497744559413068500369807120768438689777741112231589844974557853692131989841658906623531586576321722169424987395049427678332708619130003330998176438929467951790305612871002790493560607394512235629049510155060855849035625404393939142561581805346831687957213829986936124827425496436502621947470675599020563571824094445750841198711579639385564541171754953964999603662599409028307431158667838175209330365873052618162322732924817801728107916286646334805794965550147757904851064677284813128842587118426111213790833444704851149305945407137875935623213107156444582070075798301823298530490056922359442997968365849713859477991695575146847697870244224131633091755240227085571251267870533413560302199551114570041994851272980471636198497699267333917101200011781481820972775989640107453008142073763901602169749244289430159184242195873690633685797880750190230911298279974491456130479723725241952349770273093413045386054451925604971774305958203714424331692197841188540339332182811089776295571345491738213164680876074054515807789718389871914458912165513684174683673297683893274519963649692156784548430914694087419259046879499717420089607471484970910918661162443893798916837251723977221953783506043819004945148546055812076361883297531527949614509985697249270716077751957801293802210857450473276285305692583235979302516167430516679728866635164809593701607085884755359641461860146259520409396871889412886935365852494473454562675154455633312187413925787226989985730914778435392911270892152623472982435342810850710414737988973556587887293820924702602165674126849402452548272316329213582161626393874163029807187240400778991741341942401931713652988742507089390489150870643863695098441633200594454517756325345216482014033193374661391427818794737212719217505197117040501414730943788869140594299468108127300018705781479019417669592694353932330153978402176256906318405580669064375046632468122016572108543288297771601031276646907288832463605895481972770612242256292782069414316528947160087712272597715024623941575957991889482124090886552248782441322542026006377330287741804020022478058617885466566551158911755750528772526641098895248234454484249150350119352857661211892608689319229390705383034318961256934391055913579231822490300913468282363451215745565913121479344041033481456227371241272887468423451144936915247817474858048370926321389338239359287551541592258818462606249752939239105262503619822477357080842292929373881664372689050419514800827727748624409253148168230275234936640186890602761672431180846542149677005614954815478256879266826179212224718826650360470738739876878615329129127920798163495310274039476880713874718866749682012157153670501803807924089510508323462204310597194133381850536797171569822365013922854548345584110407304003586001816435226076779083477867362103940979760989549015898545993602289111476234187373331367942303237751595914004265090553609067551493688174740823533885759411190858155465592911081214127744244201053488209423346752468601547566191043357236589615472952643843325352909992343836009063013422822648607238524080971112869422601770034139318332046988089915420067248427479146775869446465058631416206308519889917603516995779500018084827017902505146993847278705502348654737367124659613226120125357242135545818122037564257022926217921016113350095034934289659567347810032481011735169341160855889460623360226773279390167211359365879393774081686826678913415829659084538847048137753934242446516506819346138043813011533410820667244634016022908192901841338540203348498000560142561113910887639056840647488337955874257778811017675374079475310910821035207731164581596743627289181465853411653840749739306603292626875027868865956061197896505210882238565277207790753797975429640036528863730750732217584467625012222214168909150531012479472500855339587244620343623225333926021011570258365548301269555988623937960647340146125270215609811276887841628092033525370505189531045350970466459331133718843582694808446086320091839362635414071917043912457398938877882881284404987189527258483306078848086959366631646617566680308845458831632388401871338389374516589072537954996694306551203743168758073252705327027136828274282072952638067325340101878918729546036254412263917995025268923022844614755607527957621338226796492602019641159372828342298312367265375012201009045200354144305100112191590973459111056595090720421447572025758358653842830261515110894689596185768883310244552653610555439949860398698662199476547984484210753967299332889649840415458613540778259318376926428668966789233043542137316279548114050217593282581664285407174296045708963668671494828155988319547556334202810244497642715273321476118398009064805179152721616958358437824994900198681905240868759110511416770211387432992949272282738876558792115802589410479545287010507177584798226002684310301049653492607366807850666546137679001649328947169840186861290827663174358355417665561438078625223385751159115977029022242532886668189798034848989683202728290083250810666213421006761900066974837121118987541322943956683619313322701753522334759898180379932831062011134101913740452390214822680619264068526728105104114693306855413130689545707452977240362688936598414437153508857651712252343887813660151824063692638821048190771654699834620054156507561273715136084303240346399674595954147323475456753282592664077142152754507025706773352172732776598470743522562219387103380354892388287014841062654173580321312922721629566213954043201834208473824809667294359678922253027719334092137296097447012345581051789024689909228383783157844445170176843838383113726364349106203351558746438117653959563108843211182977309278407388685697648321180345191534604312907746444162627921151130991070113173761465813489109375831545371900683266552761647608397228299340139206855714638698266556844152962020252231856569279612505847777693128534861906190804009505799403168228028599509411021601355101022351199514382684647093757895881820131636914371540910425490200560162543504538461269675220750570566019946016626781064521681182657306334386355529616749496487755659237260307424278321287700769268459206738254061646993918957898447152711717515330085572192412293157509401032379060882758473011661424286575834627390655901289903075248106041437313761685984007497414572810067572256378844833842388138562657909778109236629021420597608587221094347434871230867121628288504841256151740284986793682587462072987640197430930294453246344001916717552546245659430082130851120710612024408141590111764129387583719175198942750987751954114888439816286855030717589394018748154486491806476438499860731732190686164284633169532687276015399848794373781501889649068218097243753745960836256078628213713717768029508375187987742959610632646389601068222479142154401924507947856061880153833667138479070219989294600106942194157270132099145187248470770882853988092564155484366364926163002202221691765848840995598805703337159813623513549316158382421696537777892663404504596832242414865605217278961264096322413535755728851035287814410009882427595094659136126903504254225780241862690576715144620462861455881526559067952757090114684888108335103723348835496544704989598646371212640218672522874112799935741267231017249516441754337734946493470380014668361472963795533627740130427123090099456767250832019876486814447409619829237306430580839367305596719077564137540714453162367631213951351321865507706055250393302651588609723801210951239847071823633399404936198802599480394443172192017742254852518648469693111550238640140087068511829279161663616778950485501182064920189645925256443407682819592366613411571027584460212810324621427155133244326013560948413933419955010345195812769915412943636724314080049752341917390799263816726617148481316578178420352293797717954060733849318451037259497428577766318797799665874724364063224108129401218302546456692869536687623485526731891714991650180312476880751930173506646928643937595689924649763460369003226341957124762029440664317854460080512515733267233110005905938037331336943910568414989059078194161128359834995270584960097665209037610131181680343315493001756179781298676389594583571943397800463639819665226663072821162407215570205626818649359320087118367184765643926074199365780248132782741384467015122080961748125163531103183621757883194163572931825862069962720700268074373248062175109122328650600204800528454123031306397755017104366533203699942817199242010724145041284465508974269139626206546973691975676661723718794296802293236640079053896548900941970860039522882958998828861041747475468259049307818242315103837670490937217036547345405804555854297230301183635833132275718028038446228962764473546487506456125246930141325639665443189420560787012671074977600053782910825262922993112802732908402533788834362096234898289353096239989067431352841641387780584298496777130093767817170439434333621478014078282687625234736245564384353320359316441431382717446141378541130694960910315249970883895636063449507122850003025077522463017207537471373474949992954960466647375378826394739987658118825199372033686163278806044749677769904070997876586889833441350727582321957179402616802221884182817224050264621053246495941517087825111019094109581163382166119345158578726044188371867308532605320154532833666168545579916851575808975864748154352044284936605281860598491149579560117240684242702064238102105412367520099512333670012939364761646553637424448603414472628945166566945192186354260623125256358097915181924090386255644936854123834279093375681617020006805875783634333856897668303487837247564610503695321262509257886261360099959748374834937171585382623453957036272128787799583205379872224989461125401442138534831948383937180471597873692312401478026446926529302171471506264200815636414650479225127293911077807587240046214710696272632152052074004662218963626952666502476481747695340716520996071170967463978030149520976707655422255956481394695639687481057138677006135276246619260379122182704251369434938629552952708040436314161793821091515166289342107790412327286134267230119779537372309428909460400344046498802325951519799878416258670894500244259755134749619525353772158361672031809132169837639793890074394991848507271321170192072881832887389644280579148654823592139262467814526516084121674184895592011345566904089706748668779462994805847877976226438401267788497554551800314277231454339395897804662676958811853706656375086189621564905095712686420316398173037410707105564498887047745102757241952856173230123386598144733912042804397996490663071919136260681961936680762770238983804767035232523108756464160013121181794114894647382159472297042461124521428603422800986332960320853506221868863865130126705275331142286537338786902857521211113738229157211331331207319821490688321328048716310103537347167626958855943851251256718852401188998026000272134737860943565486402798026109071275152254255635870655913922659158601077999620873164454188989049698467384113379955087878939414340442355899107682342607379674460436447073479885210175711054310361441988679722095156751062748394415697453176242281603296946014274484364600855156613651818817914111308073982273442537530441451114290384914307863939330594383690954254005041704567844744735014717111972957955137036078546622744071215242107239519264706791008184221415097474195961517570812540033203661463653375186855569358376459419678830636033546917436198394388536368797267105476087639622456964844116020172774942780378408987373912467163075169972872237915745700112016804854163908230816989783798960701863447373405914294789510903949817305597359413648736053345551408233794406372791023551369212556728300241461031457906471483810987072683452492097982524509185442911496777666763287016491129108317850601758823178488847874810976081582306593239246193248918896691157737886264133817518526934321667898369018227280379372356381054936043998126620391055865447981745959485314819463181905430893148640784741659131547585073806010144928110897581204318419382792164269455657794460436746348782226958658060329594058265487889474157224555429378344072659091575950218787072752350524771027102007472349817112189227970173696889167720058680100492782038742078690680468330068997140686865148879700218763295661421949179745604981970738878647388414640055448906994406783441958377990360988800140732538446039273010738637288151523622350961219407915391232896558665687488835677017467969651582426335995842550485101757667129437791392399562092909082148362986251196033765667636590080962623803817825990674248922250675152466607802781547426856836201091159016634671138574339863612878601135862991126208263904148759960214553366181436121908238115778890311023681654305762352743415558844917147065218914122235064996245621468376273284595236810834281778677825674284413899092670390108118565627403369594809761141430046406661336666144946773884217506793157462870919662390187637658580947677695341831691265364464909450114113263792606770821234999393812035419969409774011246790584024272428804218176749689736695315705120961898616507380929097254945669007357817193803473941296702648985572235708840823016578245284282888107978016391549428200229456344347246804994517215898475061264109805385510863839061024212656735399065438497508919925377652031624250672109368537765511136755438491100782717632748936405264297475821395170314975236230420364091837529295632533481305686198643556593383597644165949462960592373829060398140370678088003880853029946964610422389454692615603045722854787597139219138132887797925605340824997697420495229575890266991191493993690411172791599432083120482088595768041258808164513568501815704204028777995627783472166288684291259585118557422592886581599627939720794947335490800573220876718745278490156463701689044223893457769216168162651805908654377498392708052124820373961459641477308799418705197981813636751793759388810796403926773417486719439878327444110381968946825640207972971365285813874687394078205692646319787021938032644937964620538159301166859290104212538894659136892524057584570966009003991773529035063036859755282540492722570334695167923744889078940752563575261030544352999391033343756400990560179063582737391637978302328769400427924235659914979919947906159792101735483989313236239768119815021033458166406771214961658576062988781576990205721283985176361115801636669799482671455294795072045138959401229317752762428575397846354628778972855458687267637679865613079476173789775275079912829869945695445684571358480463467717260758242129715841193818263800496969759868770486031316159548562740794618916931486217311794157573812702910099464468752191112190834352527780487009125860741368853841170753680529775680630184020037328903617827076663416082976887830190752903522055720327343629491690145656716716752865587903583392194063606577381774838411195377158382894827990147191746566867815507783505505035038946912415131191004120745288751923727712774741894370782177958655831991967554608544673654043762870241944649161747051497210137555767877038898331307402217633109130707674681160491453705907980826638471442495878537864318109917754673505080450119491623001125261810378264995590896491671003070729642360300599811899782371959164742024453017278786666844735559780748333328730110195777973340360918367728302317165166675629020229211355003561566471928509071975583216475252815103424071940064779460684510584739075472145321133747761635417748653668707089042235791487438651928585288039715495894998901139215736213814061475170124709207933627811441838563163655112369410325456450610430557757705131226011845704326422166072238065538262898049925888202447787398935815405911477781011571648854135466653563908934952076985944853551279799553143001844719308456537177363250768716727752419333974249274749935313864261165772880732354215839067264848126446389334149735601644595629921965271047113449964798453045856349994121488722976925427782910497474249656626413712197126456786271573857599999572227015922117936710157669605332708783017912545751587155950330512549029376942501667470667860925956426173714620189907584983186649356938615743396655324437096381106536131102960112876594626173080992645385670176024877867167462442387179189152251601351720662263060953902307653492017719407642016782296114934199090337606842779323834229222915168687114768672926585474266582718053290530136618508312096574986981477206575473598526909401204395648802541295626243454957083423945486339090278277240074360502077581968059490058304057760783723439977845629631991426000542865411497368989591143622615425232194428379626732861087722400232014537869687304956595405497808049438889504112278884356437543756194532647349335170480167519830085904270759795878226870523731108867433886766946469425781141727278697631868385515194818884476273379525783496692836269558779203596664512611922128747328856019116453956651192903436759324748562706415822650257425434705037462109892299595884449609955943534447346673918383540382247830423060903803404021572345357972259435019367441730617063742261339221354584531919898089697497813087496982364282474505805570197914560543741372590802182984247978452040723131328357461475710099709295600711496583776449557742690042693551493803411837873024513226407621595792438915911010579663976959012492691524474140022779065093429843461439801670753767958629052963769514113674890945725303860684666752497954468673038920547698508840390458506577066148324545261924575129798054166864710153146331583637644317526645995501947356056820114065319719359647238502041910968067245337269982930981546823189337787030619331870772241933971900933861222878342715207882743933603408238515998502910514237256455110007714997383556818929795593549196081808402145201229327898299636612547909539856442724452355778367948008835232299794945978916478261044297688447667506278528762440071565407278460345960407291497384768041278450441499766329177260650675006508963703142724143550115053399164640792146036324835979690534845144325582211775110432582173672465194154923393593661687545259385980544476564534935293913092154022091801455457438577064245311071062281842554709896843324041713498180425297639298288090096787178729987979173223408906012200382684609696561475658183117953717469612460725609613253897685280290820967364808516356594063667273369783055348044097429718680770374760667705590922555109504770103346534004814083723533468123918779733296242703000773649467648917426880581256186184113510295163458961334651085604251514219985645421094111884088195736808527569367023227978559758605648620797624801162911950340541672617647349963588419630279605408756895160602843644468406518085406183079236635632179187699285791592522264338548124286624766661622718505173247224621222575834125705546999904658342513056961759112400737221295957502846250177995369659343038531106781412166247018051239350690542078568767043691295326340886687017436835806248812297003951367980327421964468689041756766943440962131627431880062797996637159527693189223221359704538622007574519966976342476169229609422592337330717931093287566612555907974528409183321723060905954472256743939386917306217909887831220648958132435031915992307256741889041633145392150291393615995285569221815427011896900569080231801131593968241300024754810854622819964157327229250124049602415361947510340187044079035669128351432999593527735655797001662969633276563714075119776310331417120463023083068733040234423588323681998696932843006673382844276845069202321123911155642688631463683014642866500604103069441417741896360731044105587087253048579513957295265678599839448307772285597446522215949964583036138526177737090026039251910075847745623534648013581729985187208491342501571447617075413463724374116633569662825348835824166260455409489665578056830408048104139743112043994708460976767269806239703825739196170764646147842524335625145270309553583128118823964364599234557670063722840762015209378561402496897977600191566472193510428690101655575356836335153219298198662539262819368302273636358150065688002489542988043404065065315772808028120883137906754945248949815323710921548824971424307701910062891131556690969564728758647942805724501577686497185393670656698520051859776546036208469109540033322609199364591751240854233453576063872524116634346403516507720739051172655849271417637292673174133109944055149271853627176012839348233574546341792285140640750223778621310420805305912445392620728917670482227388057028473950748195232117822660372611705786244557669829062378308422758791150229935826673188938808081560292561582069106477950057760676107587324525796072312241250403103175918596501577183603277284039172620485196973018762744531336261436584255605839539448348182314293683396710268694423221969038234811433632850310782118485761180233378670494983626052298659532068192218445022640238502042348145374390686567512536598543516633084394423069902874256769502458063889921849764057344839455049123463967913481991494688086112442438756108248767696184258443021886920654936427104791447866710502328526813825899349223321603925833187153646600208668154802106038849178556452242750825214028259476452004649329200198365557570448538621975054378125882600504808599458988684264620479628249214679905237710679647316947327818921753227391929456509438677368910107691095897538053558736949867859658257336656441948266678471707388663171720643839032099031575401573563482247502896880149789617086380732030736986290595114321598273441759330656921341685588917566782419001013093833182384574111907021080970677278828065227438258610176597991509844014227924991707204918399510299258211547881719657656295310781465906868134946487498857790339330190205254814489848429566754052343320850719877373050711629567299659916507846433446646508594528656869448855863774665154354124909111602113907122041934859301042259431676611574877958665603841983694826454231899221134151462112887394797824133746842193878630822507181944007276622716038449873218912423000699877234932263868206971977671369413265709094856623742979172933727058098617222348107323620636053150452562789198093252223124874104871300495832951921236021322712861397185220448065893948011306793512336271224959334058215880326677967637312522451145169721343327426980498044743701330442734899254118463178784020716873371893941000464972539918585597916510690933415599793160144543842606250502331357918685106955935816108646252523391752311302466295714958988188900474750614259078919601163137524412376322930566039567086223511646433207636437019056282069820298402769608638539299227120624741328975173461161870506980423603891706567699359709660554667824926125507519675671677619373078792311988035480034796838685597804010300406573787427557483874787184310514482772358233943797125006623103546608268039591524497652146341761768003937797335242265412093594171418363630333224554371395933846353495113837909845779749385509542803048495052844530030812049049937638091226826521404634570511256869062735008860067551394009634830295539234286689680154100044400621063471112282682561093432111327330534374912807716304759152983213532026126576160847315719164756429464307803008122954558270789819636400136387209417076136034156335076796680895677986464860667573919707417349653915554406207110036588569812761571830028821953267916532897540616515212334797804519546931146417766012900403100623570452172307481310691524616465721631683628812763303660232975471324438355387569468136097926548708852214360344361775745336105631826711230060874922408801981729394293541310409379673402478391070315015115607392481446084828643533544708836672850216350931665601260531001540417137899061021430452756009796337902412216316071147370832735003983926250213213005970455262488840047254837000961170060945277394046793508398885219979620143318092472731227963419549422993218182428096437419462768243277826923989462678550727616302175642350984471429438197298324872614257515823241341922605810168563677452808396306745708339978523331834138031518519048367366312125372193740775042010398812589392206440613862199652058834205864944625783935186761749583015585153042360260350754649388604816914435976813905774729150542290190711298598692586356172916313205394359427817432374723956749205787259391703915265366169831465505088714674555716472379628364801553334026970985418536708345667396677212836086470297621807981743438485037459993945463915830888079204372755372783405707844827400748153660572235241327137736660875475402252512459509150600308563782863889157539350095538681547302785267441068357376404367255718164724738318530522545907928633474260253370076405254373094203843173093028943303783803387724345067543909384552168041557233011192776760290151250231419864109130690889942809723312630736726596736781457240887297467527433673012338600498180112677535443565187316405562374709861192238520737978430775093305648596817857573972542587981421358615830417428644539654700454326549290312100702106993010769743526697312855828122213920086628928345905359583575301920940943968516175191201634123016853811875150596971715669593778671425228293067596667304304986374978438125538186861620811716803710825215507595559143275328584565317088455520669607195576438608819148087349988578848348271255386621340121721475339528469936017891142258082947875744280062719854555703412033116077156540552261999673875914086683359177948332329007475294200567488143029868260594138353790610774853111975718998755981654930253849056480724712650688193445406188169178345716516906087568460411673541477911265164325674499813850821258892174154318509281706963205677256319516713014629313889041894979399442932062283060944743482109027729232327560825497510728322834619302868134057258511741135650813295913054155427038310091994466959185311571369821289873465873292993075609419289628408522559963985947326105211656279315401762184325538128506096907344503573980911058643978641160321819474407717184861792205903817073892648285015787941072862567587825761820667979750146952396799668669155171717675420201213427827203919181269754255812407811578868637671186155252035659801573948775614115330054225474043675974056245743804827699386977979168027211321080264906421847857820614555906754097528320536990423915629730896909394431169133365651309593183699952761288987567053317723976129388382602079267605639259624627263570575521495868680020566900909670162922943576445521242562658990860686912926487749103458494436213039335249323447409236562773635024220758483038356303141131211500321708104769934276989174231144656588080084968504867850743715533151530000003740901328926443541514185499375772595902954140995969312376808777394247186149995069146776988915747762206120050467720160801462796886301162052630073417457946907570187349274476446377011194132066204877741151360785093006214083202480306967763394399622645573598607413909123558892970046883511688365372943791361960581664457698907796995097817600466630241896438777792399831178144895809549660500025445888205888999933111137275318508668083353348809266117832215259067209219089422575277912258855170596289803915305215112802386132046714582480855824320091270906164336909526098702471911529309692187486634220473068941708021277277282906017686809614838336726382946994364480070361981690025336325283559579898232165943687612610989981545208981221305467009090924965443277023675608644835858252765900275206828112017081330208213310220198275066208989542867584300096099053693507492706772795799630555872011108642421733327794825880612934528342246800619406704596205285126410241318087275935653365929648150463351399452452018358316335328877701426116635934926836958952720658788740646335646161349398697081033014497587408800996194206538678969987604260583619676533696697761950492634453600559754854277771531704680168814666317631269024632896024854078919452233380794154855574316484026403285774190902479936589661571582590494914104143592045500201480705788705240882371038430577594848546179583981635652651399528458337760679146862361038434107380071150698684264734067461864871153527658741003528164641264742841175517999721328687610260596225239827704512339874455197519030699322560324950805741413850058070350229384532128206298615769134539139176084556045248647251748197423768531965427698451627328629208981692633791229630886088526937135498580266757187145430834444423366111761139606187543700620470093527796438266059419547637244277737111573900777142806435834123465377905762869468485258634569251843539365914539611875004750491798547417881402499411586187875317975638510786788204504035981151503691626515953227816168780717525084652415908697491630145870426976050901281723269088902621811320034007999058600944708859398515213576849369171547791183230580380227093686803261230499058737512592499500865007156246125161222735044323406905682472673723880460221586861954480603467133713517373712459864810886569292416408001122604335836893321102813435016556679450854880884783994876117220202513110990769890130145666496489574542170686107782732011554130799533358618377386271671615856760775859537020284552855712354096746902721430816628908712638147213821680287231028843851026401054887289750361344113430777358045278668633766560889090129099111918120223760842202475872068263205141920724582867444995762710185136750556564735021778406407834265477155586959810108124723909950437388432535052519075956876257959709843049216260167097494637022625906689589421557487457126704416811499799182290072472670078799929742048919230234391034485455988959678328464290667026942143689741571244661289119755594104858880945955838256816221924715724257788605481625308970648703961127549504038121120049072722141546665988541222339921664598428340664229519239614339597026284222646609730955486682504849233136061623886192141603836513504836107007123356966336157114050771753771272963955230998212843589335565133609951938309287640518229242065935117385857292112314950410413964880384130788553926273520407316519413052925586336423608892498539959621362366462630531144230731727684001805490797115995703358023717127393025654766469692398671118385696568480693108881684363763770444703673050492199745201581814493907952598353287708526587314200171181861355029647574066399034174083957940045344796038728184883858396677785654136097559046902721846256178272528881852089405585071189390880242745402385129263917566062908726490497385440144889028108004357469244113474049718982832889540061320853369970392171050049588249932902419688986049020961700382233611191750121561824191147090239397059054555439159632662237912098290799705602208143084154731851248522865939114453055595977494258476088909236175648927751858293504069955470116321413588221452880276404820024843299133652780336495963023475481296124268893284912043920866955930975806125116123871436091000485844883142440863633172663565721557299964166763674893723374463416874861225245004696478962282455828756626426015866311527042545564735674511373136984581794052082350033870308066990948888437258834148866080236703004329960238265850818710219661196676369050944941986567583788301741136779032457003359137240322356885378720966753005017480658564013534482081811891845157163969503236726142584804315820294889873471885737787194306969730162289882350341766913515145176401490774175115348740170181341243834314932867575003826410658748967912729718848868153890769808791013717005387863831723407599955231443885230619269984920952497857625366326426437330865098658745125969724706746876374264032334133591110874387463053544923691837410398386295730919954447484267145236433303056147312255221440666407865623212334468345744536560644298735833738231145660172688230926393975176847759223403035086967108908077186939334284697205954212249041420871487784313940642459227327929333203172273291147710832698849708505621085607332291759415064467040755882261877610345704688195771216988558856516106089633122171373972946680795086928842217624901046685162974405414815274294490998629816733604739859028905050289676055113488858873019276048242475110802223716394394548265023163630415586023845333113039015822443552571142541302263182334788810331005746383920758175960268772263742193793218941943127371408257689483084176898952235100507963835926935513448388128387889830897260630128849546389693156129844783630624662035136723144301199037178170917599528745652782068058372257631025227880307508754061077186873734308416365462405833079224132043275580958233736226568756394875226017340859313448963244063284956596333833919756660457547806077945673886822812853776062758592606795300123627042310334747519085370579859733598954041650096614904211196896804910552742524843266326103883806056935297338865323654802617120420113714448796212756016628520100449832849983110730352616612203575362727134112108457482800683590133758348148414975811308849939499269930198481677108282176747411025366809129848029937368116485973257555238857619805210125946327480660603222615390500334483132425624039808633022304608031959108272937081178337803490081634317605721805299739532270599521282876563054150918794141047900801630909201743886743809900027430527717738089651214430715653039899024988796941069376199287406874634859029583820369915942707907665160964687511684074970225304424490991976390651976226789487118485774859622885535854440359798405069291343802177478324311335022499745418408328475496704945869086091911694042561226485870184465623053494670162970912902941906642244349858462600121786766641215894272001896089516202659665487685706657249174179048335744064892526354777402032489369404453259831320884047440455345264322531900433303097164918025508231905052463993873435534302056124598330836293111929630362331171270324271280418005912481342956246619251092053939801678157421868538819878286817929758793853536132188133469695297015999573045403896565832036140756823394724808910068089396682265928437479901084356512849527586533515071036176269947462148797403827194630550768959657028758660619828143956839634914102179737542540808966050708613390268269976348560017048751224693694245672955908843127518373034991196606599415943965961160886800332002515740651408101391342258417126908134775774629169311779529643671431436569005878488044300366011043709550876049492442772585964131932610636537754614576243161979886400777870466444890012700708330558945583969260171321518459117241815733789561063424699504905126818353272321336266750997929627574470059279612906302315948120049972751374201473589039567560458292400537460092612335961461045633363627781978398332765595417837616751775689173005784681450725357334373076696512086342049417284424342881151606296166483039373621734339732195201188366122555391849379466339775616785505663387506940436612762100990257844827332328310915540258479039201763107175383879324072677083595529089117762781626362531379532911810749315089738791648919158204651883081977394640192121957722963727871476287435516771135214420356797835411240819198284627116243398734005237807995041775661167828801760347089694087834635930008232505445489672133648778079618143519664107586709386497504756699986220560320869180869377609307702727415033534730575702031362892120959315091590492894728018275711086607528193205084647996264186067457850766718186551783174120585873363577572056589937254444913446335541293654667912164859497467789815772805221885816546879221965610224748574036250986290508857898956725194213067811324075656731378938800931799717404413732786109761009116084204002149238024291717318806287880678105469325215562091263838746833305839808727380237877559173296345187396616214744721294365347942279273299354924276232032999840275079090296960315983401812666142040394504245498677138728283974846217112147462494692371804977235222841751942473755016829794761360209983564503737717678423523754842261066241196121512390010467886557364544132390634729737323512965578578901089319019534082843694980722921651402772873698514052232614402692148008214753525016731389381643419182771903876238639386657106315195708555472420537493132575188201601461037924554909171725382305173977529527930767990372976981185166224298402530806079982948015746420287109640635436881541242083202841429268973916118220251295596880542750926482612161936556520654996538684053223036163821487044230642954176021403275551805194023820202339483505467023922885086308945677521182591040554700768496601090528103669445920705099827282363479498248346283756229753822090670492521178063385793220371334273518100302864359341229331077247346202559155686464913152947794467304953545021279617795527473335788433638232372206783563037337060963873445331558338905902918331875868991972814505790527997242321042239741855462922268954655106194442493276806813271334014380120180882683512749787651780856392172525551414309607425214642977719565595670929362536611276359003593913682835212807445169274869036860828722148909789515445695607178833422512656459400985997958149472202429865695046679026685362376770537892252233230626487631986762159273352705045183591707764620839341658386752776005190409705095892262664947083992200600334300887209786175169368192455144037625471111952482274356752138794649034741990753580255385381716634160782904577422576976213149870957356270305963108975848107820839392526718940502666207796132401193637867159575240125225166561515694175938229346220094950751305294218721292134227539116814081476658138985233985447391622234535150380189419087632694466648063979237689546347903019686267845982575942861492251290678524593429683074808034563236903577243918176617272313793711911401271160568113090645909558948644959893477854772639073534196885117521777011971200441481059359162731489768589708560444607988240241197086461374632610726131159569519777275162244013566448096535980436387377287902858322653635473400993913352900308438523115872921131610420893315982244752469370468338357959826925963336152355468216327051644765418493097034438732558196582013332448826666720747153540479568365002341967835921899492673880718794596189084125184243763388864311298209927740003963166215119456423055423202243878342356433569598488674896984238576407430031804592327530279611458068237263789938091275173200303956546327278064442116407151883803713383053158356206798920002490575347393765839395219963494966396374969131548268796895832509296021380385551277355365421011789062244287352416570368340915913892131512755082675717796698590176579127136410104263963678934484821392987819895536635937268199090599091773985878990540777908790989396939900186250553320992631501670128757731488305294127920644068595380234570938493362937912482633713769797388977492224003099942116578893997781247023221693591842306484121049238182554404227412572116110376353390671589633920772587319447875358704669551542632925290053994643635919600661755958709147244021875016574022698275355951313045666622394554743036366480769426249135663602403746185067938517861214392981406211180844900204406051133289504254564255682953533281361407444822514747021313875790164878112250351251778154876137590861912683068651618472543868508942107811415940536261671802420926070269186089563908193500690698727077341619845869989972675426470628252367667929253983909222637739958719112263564826752802398009477913309534596964565427180971162956749124927917334880832146317048091198300220519992123468266214015643937613750882803757296258191768838526596363881074173879530279699661927302399437338422965283450192827998053061105659027981845899675293289455142825123560052042009874741964743182372217939871230807601160725560123680728749134365666685961968801390689996915589488822473856098812948585065022261334189209744908251840609059924591627055539756763578002356754675666408843490760541457883979218571867689754996407295874774460458735253540987281374841144804909853302418473740408221738788096621680377667024607131218477460302383350023333400250272768533503038545310353248914951859687744030937346338180692735034684620090835580948768465431707668938896505778414168487064183749368673480575228997954512595076613335362216267727866049838802290015931703249910664217110840146750816552216032985678104688146443940990238822047157904416866673552078173751733728789841963555192631330795779958838253117571471845565976350070702949289536139833702228979222212365480524193369923248231319492541901960980568336449309076356038635634015928771283150221622548676448614809440921648965392040528021692032610742224778091743835828778672906504283773884951565644051249276056453221836581934535836850344832621124264589018062152606494500717719822617047186738971594855921097363781936240700544462894258166235392613097058122848012257693092273842013713839825955401271827319974222144998311174751277331062952974744356855048743100251939082085596474509084743021408556653448362133750498075175217149654171243932741076631557987283771387581503230244521357542194632519047995651227641282751862764898230502178874234562040332144493753055565502469474744345415458410341467041713172296834465766045981007341597172066695473830826470997433302236119778048290801253413390772893689016783410964636097658669443443936256582380952223877865526352262604381345854944493719841292182643514916790651840377879835459088009247437273801508688250922241692802495073706373132442956952417236225630937807971522097135171798889271554824717532493014117379103033014880511240885973984979266651886137519224410227081387024854980593955582555456215552205933804070966259312137671692372417940010101607311735211887403478279551346123026540034070998836929392467330702222547327003296576440795381605793549360273646623512245280279183805595907430599774866466104877871225917468482608802411870451778335787379285363580293930462210495536362271297465800170000790053588170618764764882354286238039506334923146807271701195488602635135252234398849601326205185816577505293179356619261768474014632191689253667210286876943589271233346086051529285965951322151830848639948645150938573018215163976457326005436760260410238635086384020459756202827281320036986651958876993443170666075464699682101101383915932791967108916185359726395212190309251716134286409269317005347982106411022263757829861549678167410985542603108322162521674035047909075226687354895848520004251833210955690339091112700112740432494424877277445688686292985772612479051101067974044360460925498214341057426769025577022215919746393026577806929982639871837721313399774271101911998199624826499874404463237517836569064856394687795935454588073353538672777939099617893474936847556321149425758455257779990415672546571232291668151671269431619826039071299576847262286722936389512354417179971284914307091214327907347842749534132281191216285919740235556444233155686945236985629451405375883854955001382458910298821518759108555779570028445937217440065749013976903546694593426769046954266270110699775351823814658548261677360897116253295354418192969893292551537076879337359629435105273950653976094077688293002404040859826733270186102893974320875007655103698067745379339696894276124321300950863038605239099497257012580583729863680360247333268551779845746169604924703644143099080952497133255171269976392527004938592333140799670334654123202875504526435778704953348494897867184436822803247596755521456109836654522966420304983059180684236269228955873057291359921141999307718631073146824911864001228488994340900157598780615942947946556994705059050710735433961877946756117228471877821024811591822725229060000673562818106193009679993881278891681200333870398927790533441777780356302668071500501170780240638779981191472422794693861853690822423751984073122633669475565554206901093207543830055496808719261181744181428189904686315354604386547353883239235667182886331951546578393174394269312245445514073073006498515440859649663422166506138071240190299502689574194621987685649755478957446714770258301927988230159230561549114056591973983705965828801299476688090649558534120855625678146715682638637028727115123740183873560109531293480949664502208290262914646813600636237501872023482177094374992320725606490591972725118110164028922064987868378672874327972831883870290238681468855568736685160832931521927214906452465775791668013391750321167682584070710925368639971162150358082255300867645766377460476820747978722993869394387777329210738386522096995723979938768299961197069809596989554475000112637717384567911464640030616934751652809388116275008174969198520266634259762434373731865283106260172146107566893148454669528398447134178808781050069468664919878393987462972451074866596971419650956187601604197523544382578452573604361463920282795689247755659556695097375873180616115288144152373672714973827718467036019022414889474241213519668625987060338244513328219216644509711197183127240289232813706009009586356661580687061482969694188845800085618814859951961339963846945016676789731953009846473770292278860514436595104298984931673448982786376273791629230235216939282347073041600497356597289688955109554087080802447153464081477867017516805289201674666494464803059437560881273234924249425616263671096494258448588554729370112135693703925477984863071559394654955399910638633016517241723626898077950575311437347102219215316586634875426275609171084078246580397005373218920518600945535079907135591603791128212443195951007504734908073006295358172087613293301643957707608492187631340575124470396024861287866108414139486633089181123387960394296703428436836080461500656938552352884092595374438138691210385878240700924079392897859622834235232404476669115340896765858547334319247918642939222925824604996344450190126143460745992300656258427031842285689284362419640202634764621734324161930404142187531161536796490920173626973468103672479868477093507661812649655603544909118158232899823201410556985906187919642939615580956378437886298837884919876889619988822160463976750632335653068139837420807441212546753706201575938933673275117560057790802423313572458246003434964085619216271178968128845707245240919343699348603317488726114540458391410232075219045719960726754513516163295751293818799323742458962940491334167083965450101031742736049491319251506402317780245108544548925474008789793913217301536240964097332355501258372560434909957188305139723682929351522307790253925665354518953503796046431923333102786093738276959006717369955178739708366387546539526348654929950601419287828063645676616831421646656131403355838232452105855763489424985712671078524545685777018946742188202700227334025080580749321828072755475481719123755112645833115591444207836396919552222154271986888922263663307867756383449974022714959605072570489387724661476371138258109581439811353673452223318335456291852661434105813860107087246725179165269406441213360165248120182355796118755492413880948327512828720333057180497081487672780026547546027639101216447684764681580829374242958476007724488173624054218687109165332163527347466990522547580250959482941912765994418634681017941755334385077629638798465885824744230115207178484220439437672237393546314610668416879567377853068296567862123950326268279711141390259981541428346003684935558718814415708218302047161971313032423981640947648812056281635798288563269433178780504362667958187068862417412365386483133663403570754484590999562932972498206003854214388863714502773522594987724139311930439301714512603264579639789065736273148907241739008601753958308315306910109737666072523280908477293879300327882310673737554814918167903473633342172283665792052119675245192682327461487359326403568634659914585625521978104286979139462683791367310310346251603406807937905908772325873210317116088246814310710265956732112750248084511149724777013058140256006990653077146765951122388619809527388415070834036134702583343766950515425709143363318807875850288831177872908534826678743637047051571848175003664893052538403809062384562800988815736114631036970886556835477004084753261677477357920236276657143648931308757544597360741021680538610238854802892406240553695554003289688053878939295940411708908183973888669298857937635325483322732818080649210294560614758935640205858224195026909784214573177303109526754545246430488807437812737216003311734600342874408545008679758815501089765027358415770049392272054809321169378735645333499975007933095662413208915100107496152694216197678615319312282116173720893983698082938141530288938050472364527316903998956206251163881777006168472023547092041857585135119871446566294750137252873791343608563195141416489368612516911813241656192928213137182787156676384934526808566874663324355961154128328151032221754916161159585816145821689805014193814174553817444420561322122357020087040785902643987872920275267485605449339694638630300840328492826298485682833584859551818411704885457081406144014216341100851808281660516661814312344367257921058391127060724263216347670831032785085677824483004860638945028480531194709029439068857959408193629821796199192509183807620648254951539451676626694459173118336108869281394651785159411743574810761704573876371775583592364703447249924413036980812656530241268118079327461991837483264286736778586483597580308470934476011038659285301095438107199338760197092075705167986744315754382335008147747705514028045599648542119690777363859564193962240614162697750383664990698706565714468089831769801261064464372196952196078910844159109713648757646826126961862793747703421872842128122208798557086687046734177220005270741048022568359932203591683233457353598150042588820807369596751671872000313837559601884160943292453623875204108692174117228450344829423744267063228693592519229104930021630986264331641215829174202127819485879136367276662969991050477988113898388371944075665358616173905230473017969419248204946717317572599041233756238063511953875038970742088013787448503410460456928412930764174007744721790464800745611808439571861801730460194525859876201414099709913015794517970268421188303559093775852570546351327388741017350184055497976487721733593036206668673937886542770616139932129084010961373113623745985725920039441853406796175176221663184177114150774584797009712806571458421620032472693667560185923890683636975148843183168856454832247134399081556962621011821716770829844838298023969310637902710895111819669883941437965434994681781909456343408168436617653945503970070440783873215711345420212973504354812841562836939895706449724986557871447374817175430223213337671060756028806548492974295196262185976077195225200101595518152865181900526030608398736116243841631505633556508938749998801699884557526505128888765632897648388802684828662100410851966003462039169807992395384615558845107421996459695487123113937343651718360493843598174219684109075078456076033231318052349983151700518049545451430365168494359429898296735801845755594685172302697359083487579312585331748073174248058533500211041648417721356663625165996850976682445851400440222760371681853642513306164899990221244465224212204262444314327337305273377086785390748132563090555746130456954729554023460692920465053884474659823281460841844077444534658494263476703418315352508832119357703192481672642777430995938787805927379575470179941768363219304769710755318150423724215151795127939743557412108129416348332678351825234217423071082160694219307118185490007209134969249939418956275772723709599567452485511266273978850637821341866467136600394601539757419656599064388652407887941037683527660954132194047061270306743608515115127754673319700469425018957871526723448620715449022268014759605884560432188956395735179322887982767971879744020884018647226191900978312166673951470575358259572889381970300419006881069749298358553663748430668093978608828570432031465848498596950770014761501934669135125077397745497754983537366771151036449501572735501196090465433380432063487729370026084711986236382166403980063699078820451038048940007226309264396757597771461576411897349892004059093378964378259586933555206721301691440433863562797005918953346001665079885769500584726526060607159065232261324735725313528985402322399632112601137059904322092513453541367091961134455499372473546413810605898708275348712890982842186487722716995673587705456807168680786410517523568340680646904270928324493521855591243760994499588191549489182186229640335236451732108009700894944691289839481674871783128062693871757887013079658646504505249501263818900004473217445416855758932628865107552240330360010574823308351605214610419935540848593149861741192461117638695374108388777845441572109158849646312835065373591371147078960245904319616337638131765985674561868897062462133509936687791605346140901939964180702497526061495085735311356865263019094575390782272636173351651896362460525825608873366773750477913361228170202337682584668649223321714604711971965884922227482195728423112125366296229716842293648852814798884839852587968983091902400694343576738591332505922596421451992193278974984145342144812563202071328894320583988311192607542842505969179578664988965583526284189548846767061943528481688886918879321082595670334841605740588212430104603049793929974966403147348820255849682140736376753896789056878850549515043793408748228641036401184466476699724072024783517491416911556508838257084413785065574066048730990929129922092341128119411652255499898006666413828141376819635945369387382223206695460655246652815877010121766200309091546800342485052205589473901034068565884394023531027721367243894250690151498285458871341800401793104679403376131979089928154926008270733669169939930593854086368474510979695816772128935815954167509856698316263751619586320629036179084483206755447080051402817713905570269689076062489009398652919206916458527148328785728196063292270300090177721294584938825936463822710493000368345597325853629462045709575366109183448664169087392753489567106504056554169612692827158524746432319884309905655943886821520532570371372796372958869539723326734964878774973670942299838443086856106848658433384156036458623104446130865455274814679828320135151323297292301045255515858384140355495571279189822033506862248856279649726775606456436543470336367387280952038448043846021408674923357409062665877704874418546286559245447350317327307552449453026813893829444411264275427456164420163646857315902975028256884352960196376668198987869973935949703161409607055267009553670215597878002920197083483419103641709250877993761482159446589169982400203441034667567545543884761624179255559470153518096134973942918449855239373449949159707961327313534448991647510729894373676305423014124174404064184682589697922830051380591469344618740833520555884016745544799153996524498388698396663613246839068380328108042691358762271521830444876128394822648310447693324572584149177371068322694057369628211255155132606195461177271686900382455337035634561144751613896622608769533346935478823836316338481024528905661098490002703115471958419064196021656955493760112072427564230614264007979526489875052677806385968658432651521890900890101601361556992733061696407916959660970135182159427444569583067928160117680242275536512770925390848808685644322047524721792980707912284546916610936633403328789267122672598728637586317113801398154181529069060361512602917347736436293184051779627006662733402930306268631191026754803668323536094510466552670945557099223588398709546557623765952186035410377371250255168759570947255540042089541924873401465559494605100414472482932359198236690556222480515754972077148907292976406830633916562021910031636406392527291273810366452014767166350495527161605862646781976206700819949470324647213304137166862664862172780634186476434060014759953673551472406078709805450427168927599615934235573889005880094102427254371221516211064509714509213030658973420358465856028388953682777186035134500158952875355711246444033528944386103918196854560952836180757397057588232350954501979014741376129344200233291818796934509649731710552315237489150174843854861685020496531347387278216287637945477500089088206648470612251199007855495494863076061530090619314864555229261686840469364531515174208324619740273808160242383154924679711719156660376954405002385740997649209410366665893290171452571060546058630961345152941365323701922468512780899352223366286506648416170957711846667757316605621866818249513332697173273082204913817213362829828091605545849850744122476903521366441107656843198314143985312380380733636272365836239506020657809539854913368146483470177521563632518996306857098228836108812625425265174694184743822198789960511612460011999809118420862985475091211390070208787522502158692421069832502491334467217572160979448168290900772284330960076540145174260045170555793854704368593884411309294930700267847036204079997126149045636190071207864504388799777392856514316651460484194772212864188210314787298804268345527919727092568878503549698385037305110925643747244393715392439604695530434219893917259797754964458910533576444442793859618218538932992251622120005929863881340932365345730572619087588652927535936246652347954278985329146276797774440100054913835328852031293957749374484613895477738945404224784406033905335044318968392774744026490668198981397031029157970717463307121232976713540502624381529586123169929457749946914115911674512597438426100506560119582669057012272880769360147718374927624617092104123435585477255614155035331410567458383974744735829335495617927911539076242847988243552489149847343498397996005878652514345694065899939239592668598105593070101363340459597507903569491430192371059670154103403227291694570630123224684076750365792599307901813737376164846262401059426497690396870775471090571166464496432786714376766205891650777925053700618150899265907616726351122642310353196074113813450885343839577696604667863626945030294776793335774563189401143297609874318464617274715363434061466851121456896111135425548999055366764563230402925222622094306712734332292279483250020365967208161344054743265110334244106673931653224112592179190323656483787095901171971899696638403531351945139901743010447163405378356191733899202642664862286517885629878068046840404648803073564689701433290088856183692637878583067406258051564107277253822939747043417142995831679575253137324368827169818870783841516245838063047553235995914303089024480220266981615125583302266172458413157133761109747290127279587208045831599231343828807840314284933451200806926271840171807501455985725008479196597036213015690893537475416607469957932784239952829009879092603870778451647216967970822337799001691204669390422595982419795251850411088792244724145525375045645280241067979957815049405124989417689352532657887312493838547833055847938152508766421599058531861775673451711777072076368346255303730683536422608123743097860631276030479677700984726274821678463628342850332824748795184506493336159854623629657831186181865373202304310298663227508160559505373274992558386070270072298019700914197494695088386480627005830478491753441157724119749130774160102961372167088440504685872471610412595833555854354116945648713300381330979353794384117501518196699837404201326217742992523616869863088401353839712755565144252074987568160530043584975104990874133061862546318858336741363595688350153480936830632252725846476128372620579070194805946162879030281178046189227109617632467228176529883887682904324482155435912125219782207650771966984923873225340649005697396658814163181768204124517330502134601841853984575477154093847839283767408578236440187186180303974513140229417132524594068038857472837049690366261800433744282075501065941136141700321536526249643350493013258004067300892536994046766154022816098771626256506261744906144829718098364512859987646926780838395423434133220262747345213662553719486077336421078842760540860397913038738894618113119149990138540596015864924906790674160859019886954935071493250619585051967312673732185306483793660585482296584477927384201547900960000061667846197939965774141899989347525394110420617265019443765661287159372928022604954732423023903733926916132502807929974229489315597533875521995000646242385005885485177407386527749722080387865415008107569324535386101059514518229801726762739952122344511033493419026875457863049646029925400011993397894580815574498723832727171600911821277559842565794858642790191401741287098278153313102372898127418453101733650719858111278477442548657104093961454375191059194180851883290673864575670492456729994531703149376939928048194910646972060261015733795328405649295558036190331012117024971406198457549523659010547367509376617621208981589213641762535029226915487162257306273868315894679497820328256074652225120204005642523637107240260291920581382444187315870474340843064308506365981190765109731608568829738294567331515713481257163393018979883529851075948605534705638337476707196255485882757956790806921075542028226441111267509118566922685401445311432811784715075241396734094994630368111652611341723518385571203749223854215870187593546505765555173797545077729389624437973271923824303793909561755219416806687560311765016928368565671301951833102668828998460479303297760350234543658646637733354301470871143733623894635808088705434013379231001547055774382080255235897367221174585830913765934990381727042943723217982499387874642577409938753952197978319612721169413773608459500523288594370341858713973693275931782056377923116418205031916690783265809930111692734937948399859847844685095083906736595036993412913361593362414861415493184174324574139738994853632524952039105526590913894590803189056697777459360415645659710761377862326345866483709209658022447419582954220615952658512825307770918364897978144352578441200478393494213504449684530944056470456270579257972811864654230876370214287812672210730579173648105131401437471541775621083411705899771997300197930288685142049781451382662026157162979190140200220488451127157287229651889258382516764601212095370838773447258311088684467919028043288311657750493465571435679469749551279483219751829768519449136564944691615945795888792795415174041961601399418450139304924309255064022146353606035214064419605243214834691405027203373508587733471373689163216608291821618737727418962853545151659950358697225273957641338429086358969197249923077527221134179554861412897187080661798133609139188231522495554692993444518337443744464653165320248047071928937915348252714803414940556867667277312788254231952112873161240853876890444057675126085294380680672976584962986327301149415306687956104006033984326469297796140579260924461898747360740745228724303889424909432675599643970810869366745831115823750635820030281423841910122684978390342030753566846406729344080445503580635547063801597406959845019621062672577212562803310096809847491908316174729042039607073487758529639381124361248858923471967346255034791859616419242480370829736494040852640803616728279789626227039503463866182851004042905442355910858245973079555158660138609800512474502269060343502367784993094445254168285395349234292794185355463818440103535566670925564703596303738313453611001762719279974534438306591152217624416950217215729384971355783926411542244860632518664672403909160956846609381292688173701692556266546040143312941044322584412323707461066035817056161381164164749666644106086540691860867693992717030580004731976010104388004726024695668866981470989592826934519151728183654801982164914308377100178184288479556452232243562883791166661000375929110786210593968585266164306071362919898295157996362828041752845204316816281280369619275540440640283507378516353297229254720924077570639058336499636527606603325142413383771036209891864759944790975584204267406478476833302352896702200189686409750574148585095964145769982661360071988644648693692248581619327682305799882892349232737233598238070987806602981633499361120048788951397945600138501468420880602851063278487918921918634936987231576371762017802672198813238645421238848735794572362150296588001703559065015012311747751887348758114293669551072169330607847920125559323689933161956728243283289766734442675668036494679963200075001377584011004825903312338781141456164770233636378753038085367007434621041827715988977617448318673130510767163671626786795215255389514402400377819602541197224866275365012022409199423561858050636046782095359670206504948321675735689443358764813211011206328214902733200488833305269945105127898494369745970838261310488809157761827452945188731387424908299648924761925200689680066728130025146629924156777042358431130962409334772971325911487081431402370629307123449361386858104823138766430852912967738252273913103854285329542674932121814786292156981538561371672908890666225850758802416124155498634718462684514778635689722967981940331339589165394552707933389748174547732754492119810875212911111849857560411212478210274309872930394131005511123024188285039637408333550295321093127792571310779040657833471594516600799669585405573895736880254513592735669496084590523768872420544902318269430312275770463670326569089172260202205242279750289368933004886873764345855725807612027586476204293196309508640895005711644228782055126002091587244373437337788092513078516747408800856363065414797233728830868223876501837626919447071855497188751838019458127786708429191283728495277774879183375428510032729053026725064643462336636973173950845369249537867987675651180436768159859665408161673241226140595576221890604576384542650623434731931673777850290939696316888592712228475312036637806493652744825886266727265476685415829601707738037841662916612166636930430233192501791197338659361327675480795523958078897259870340841219601465702518770536312083052846231554145157668494226068031847397771254747171073101286989550269886159240260853766607975080503731370753032944879533952148384668420215538516722029270744297251267320695461378327993342633487795880869246855468922799764090528872587916563283857197711420327267199743788294474185811109783544938595033613382880933926258716333269995645673548621436578042317678648461457035589744593958986920918248428477383708990009409021638637405744457870857777456696963900629973562444874694895495019550083645917124920734416139571699622917572946182110631075707471817489813708947781922312186096390521364135629000378751856348168994702015141129473131650017650143684337451146708694514840356103802131107369989961461827812358295343701885170803025856649321425402236113218343262984604069703635639744226520380102720239969733718856957341368668549154020849263163384299067233668719725681882296054725101824333814179497665226448514723866393975543661999686875831556885159275979830639908534542404697742642105525605998081444047339801560996522265274217587693548952464943310634352045089578814508365666890471365989106478816166187690356375463139271713583359771942547622130886782033020085120862254373348062087042933353229608230700615909300421701415218582350504507228410213666644437015438786807065617530735667260829131346690168672069857853437379920415195210842193032113532983678930130669223782078470117509324446434936837051782721283982127277794942868263182587052965548692777698635902063429819034294582878767528815629655230403731948650125176186587021860565376481405558567606076423535204779490598118142913646158168138139538404908445286588083036474775035498359216988421058031450526278324910423431296407286279288475272550752537728241493609243536199055621120233808713180516080869058983908861873928810161522197600310400967155970642430266987806643791136199909191992821282020771015728789277975618980572253127594203824748939640782104556303866565709355721265605776848972320733084713047715824360747714414580732412257723038227877221944030273286966326253636620311264999091817019413014538638674071048113287531607079703789067653816955610695318816927194295749531077696378964632862540958862869452681640848357939395424832713889983448794482574497709186746192750980470360999465420646081301549071770569086156874572498488055048219386080385536535140083883120628803787599631040564222736282609239591447901397770218150901506837585958034388961969649291523148483658835316587233337368011972006694105551297575567299782219758924977106536062570890742623200602285164501550989504243853199261603795716230252858554997045564347514893751815262440036510393512994012676547031141931462897120462146052524573891870921107064977911964644125884663392154620092589634468512244277114821764135624834894864699174527388108251520680122212513744043703017580235717231125816260830886126948211836413014636157335773905022356350169178628143597571633221388955564631840191625040750305387793788743418750404356876698001567994879241694323387890456386533046843553135358638605710048040488835097528968514676568428670307900615102372322529383276136821368188556593107853880428683413058932891831926782814127452760300933554954963012469002939878987757179227924533502726120693119049811689968040810313082716365277876547737451465722328457347779907504948809710325773197865365134823539854177922512840071486345567719923913809310592432914053695380644105326616403148088224496652574065424105936688713407887735262627107082450748257296739124488532497853616727948294146214595237674098497590658257324910450892845546047544550081787416185353646284872773309578304382218718803810116873418648129458735461734141030907991432899614491865922704423327004574297553583362441135484641932623343879334486691221431433926073723589367885255691371055191195015328077272983660687766186806124819509990735357874161768925945880451699799150946327944190936285856856206677918159721979347111185510777301938784070392771001224306061157819489162606319099076599475112894040797649016994459891988027457929870040026890679663977607229618308692448050508905922339059571265201483771192824091134343244127080350471137718070986028070024416789734395775762202527248219434547048505080869110300816330531224194486309373677220712217309611488925449473460219549185404212927724073461388987375919676339371417153342228028873100124249825298219776994389093560507681443254044007362476733322712428653441071518459316516015194201528039843552698767594417559941091091575193908279996008484127512753350937780771472259160743074884707171704456836225022341839504161750294447685752146813699916053137487844062838666035420523952447246165904783781225247849494499918984008324450295478390034743087609083563595037980204487145165662084737564691335980920447298011601518137764906812971953795008357003422960196197447230709808749376332271958081418817031640812213106519355948971413498621665692246236786107201613672686797808269484592139562895948554656629130414466289238659574486296114243216791679818039752218084418594800716478176786072747866746564734236839884186213443470518785287237384785877585906675632352173155193659304689528985441756690040424012023959944938286528548166923547553152904876911716678645603925033134649511858415033156204621254826739014457098850440192296283900879648644819627652909323255363039018920429050314019432844390404620451086747948367698338250138621888286763194106676870785126234384323416729923285897863597222896114177703262007754436206846219799232479801526779592311376866713332245785201268134844459443899818243454160681544202443810077662672944512303512234190942626328892129848342575744463696560031168154873596806980857818082836155276468087961923461911177245443821039981456479677542260222537457896126414658075549933232516010436246490474024861145189587749304860813740867798155594116123783466669508500413148005733917657243004639279304478967430122203502391172126736655764645870907827430247586073968143215059878385610523224668628110470494555411671067654919623275063760892236277603816274303455251812934878723883600963496228255445368277044507723283004911841576329906246602133937541181927068476528864214010207895728634209503970226154438623749304796708056843982644828833584953489685173593513913479299999747687877255805161975769942803185882950112817914719721893418845104640046570006956531828348936903651395303920937773083387274724756862427834394950041098220545583159778026216340156163067043392149384910770741233632534547609293890843308869286983230221557201519900329329472972440099677359734495791547620904980910615538855328321348189307643409281906031707791322123925754471513350475446354782444167076524694417859729857806988672609872357101905082196128785952704619658714139788958581683129773822914293296172715592261344339499986452657022502906600867314870193840945309689241918653891075231625829147722664264027920597474823104272890349309258671217090980896763585778025048358015285655843846807816417962491684489905369100267443834580437621974057789112343766002469475653059322861890208122945823618522014003616645315782534702008830146002976689611882261974327950050253328493446562532647527519046387144988332330560652798432819599305324042911215438452820063898615082711902646911006280194970375357872249202579257835250454872524472010942918633123337046002904513418711180369523133797860836514974957936096245531917945604449370449108682591796692524647092413272446843319463553224443653575750256910232328371677396664196849697675099643314886248347283334997072697349862701455098650889069221250101491545346744673000878440060744669469256857360536698953408229161866486668506239412423282610891445365956387404012283466271416439994630480316233097486974236911072905041200420747069346663705615651623870433138462032602621753843849779561691600089038977678356801696913410700179295325469661973715117218859874667191180293009820041400431700472416341202289942706771831533856640186582396405434443993203346173627292239949792994189653782773779364877885586631851181635454349118257182234555578077539428399157515417629682771873845965170939162853323116400319626125295012037789552526218052663253564633232928892003640180207200234517992059229950535512424753383706102530780726253824383487909968209191810152783192949261208453120659735628893286039592823630893025619717838241161441326040946500897825060642939833028107994690098725844187199261652309621811757160050557148300095532274343530931230367294932170184666152235174806459282905234692981988611584001343853225261184129528449109173795308975022881297957779241649367122601535081206954403013558751806772290807705867584229266806011251682236141463434092862944029037613601675564083727961646935716203110832569774385985609826168000961121854533657642978564795883300630352760536984123925344049136183308541653886128757567475464163465118188840660273027535392712812113004514817939335683989063912013621133691053787846233218851080804480505598721961740632280421267965200496087243078436774945667892111710834156401638863042539107064482115477112864628624244976378887682646657788399357803497566169345831699618129511946976053817979800321605716881680307801315757831568572049975686135934321341799557715209007586620554106418974821263831996667091146938166766249426826180192510067882983153416906116289805733511008024994941912626177001893582934340167718974412743046121543763648302965569334944692517804003078727830315972019866354076066386108512098442240343406605455278645625955212444909368406018332107445405042586143002957390872690382019597719092914153891133255674512296499217432341961552545594853732817128665059401111313684969518544379471991377376583252265200213605102460568717145400413974621241120589071407497597858791670739454032063364960212656561938262611654695373470080640610306719738995237829671357695976632328977706149774036288714449782215422393447767121592328659734540734273591113368125616642687775229636332111658324881486258573074263110382515368010347437111995394838148974455568454007879746051078564450239706849381661803986988555562654491769745922858089221677172752121702978503559051368760428427082033948369078116837440974390519826277884441267136652706235995551614583951650992309248622297751963550768850527365664484117022080167072800762499336386850763575155049639519463479614563655354133333806417572924826084317956974431974068790017864480432789709632952894257847334900648104533408997736612410059678940732775665663010396739810820613199483682378674304261212144412925642091029665500040323766141070067857598295465308843135759881184354333116842205637306942231389497608932253330909994197530992355328457507517580983810470541838325338374849322710882156331494358153445189078431423182526917054457629442892629450431392139643924488171020370971555049383685021472952685547801828143407866898941627115882146592390725053515956435660967187139816362159957026932801410713662862708622385704907913241476464804406560561023869828044069191898007693833179319021273389139376460733430717612022518063145615421453386458067425995303130544438761771740743186855851217070521675023808011482186499738669425747604219659837044517786870324981090753643791430031345393205901616252826541386159206737676416404120807913214080476684355818792764683449112337937797320642922576799822761525488071714221270123615361498346312800630856669441433118608716537300487061922580743880873765189288003016837235771627843458271248771281600193627588471206150853918352729658016162850314621120755220162752569554870608222557125182062218162094538745048107153119210301591236665067257812649374101313764041864307629386251435378270391526400441082590588281167515691513022676400612356199346798775410710369239779893819801928189383630022290233739006778937617425057786368170464126533640573649444178388081047534402170185046268612919253928488055838221637416003697504777143429455164684202731579087923469646465700710389972572689092232607496541776359133923154539718625404498343065201564431669133812737796097541242488350509349398670082985834103013257176951563801254581904930723939241682145718426610750186235873232491978633289601584319901917533514445200313891785085779422897579361984493360282017753232092325532611384769242938883813084008104558596609213299046883475912298322162519740658858662458922438256860306136931244537025812470585218786301977790811105022557117010183641872795291184027606348297616653974470543949321828929193282358340850998122551552587159106153915024188729944409090013131787510878274621239467393345422688474485825237268701681345164151543791396504590062404863589769740879710457647472285345815653143278327057323571925649762495678125999565435489478360423885825071359634365491258911780585248580687541684530436888465941145254285817545768455375636208756778601036646467404320942791007763023940032219009936255166231335286065333928429256596913250172885940431237604327051692743242760504959876340706962672299877566345763075114390261820288037097828842104589331445347177614428816796523294509708291343765156311567738048025073841940598116979250395877938371554644179614007253281309424136127220766344027711946407181259311178375636805135036695984268007811240754497957859402998674247477242595446316372175974572706515827248474024831511167073330619854100568412124497536233521233440281988906165627285169227946269251106688391142622747407053742097108044220172880450186463109723811446175615081203732913469993497819698991114874398510869222368995440212873113278163621069443586059544043866744100913198294147042443890252061952554336351559519844783439578198386513215208231575915637748267295664217743272226833179700747948412143313411938275180781741680996859316957362671267069702086016038233771812033842552960993836713944398274777222171361245680982356424862065809836206862060124393843123346469134988924596270471411270946448560783614319832535627456022971639164509485445678367300336033936131454143552842890758590815399798787347920598657889936338468388646157600498644323202922077752563145942705969659857593542372321114914205365300511866138120901921983786915494611006577208150567721920993786327352975405546427840256034940740589165831480875118090061713730218264091704846145603632251934707229360675096807622729901680791908072979619286967311363359056461141749172464137596040009364315072985429579007072739340367308648571424769962248720209850350196626357794577175923539781616308758379795244602208252538075519913244873822205585350617375559862174213723785982484897585435576362314270646242478058827538085668137258929650911316827633255390947309020839286913678380819856704161816258168695189130605673843717479208184193418721032641410268080461098475888869007475431766133965281172708732698622815567441445276235867742295868625938057184596001784757624268559493574686231280406360284409146137613311480924646848313895594744078581799248687032814368651338717412660226068560141426753481371816550517882802334381864327141905805482023174476790588246054677910853322097760818607853577871917181694579812032895679362727245471148446820129702565920584057553618630742027697048809360505099292675980286025607920897144423985509683198558770320059467218418597920351253972672713847639865755597391525020944410077592160197017917635823514025370232800671611939480552784074992662737494431414567859754467033562709811503210044302852190028465113951034473877153851741387860866852336943896599505229788872202451075093362631159562813163458155961408934542696615632766526889241614461588403494800598410768963523859754901534041105051064445588394889728973568551097177541607283622218928717638167472551401129764335721095944428558232646192873849344697679516614576278564212327833179559199247788468498158121637830108430594465680266946277996183967033911989872690648493694061543355037055874476651397408278985369825675568851560241860989039201027922079519193450129508012942351333595705335453227593423714756638592681669246282746698811999464014631241872386950328605004482470300831815607919315417459918433252189385916711173856961490334996996532294451697442509257039814682121162442224863118022506387045698469971256380296871267250466081927767129819726399213953812520127243204369185410560164919255504861661867186650219769216235726402540317783637824816931776070381350003438411396722110623727085612931750514187656152322576212724604277522606151974738381373186150282985135754245399278108870306095462117890757317911767116355495871126273418547937756711227166848774763038441438003851571259132226578413151129531415797535074605766945769633349657330275727919085216486812833557695744773137028805604303592596126784125883633983309829951250252234090073364966259814190643095098578257058287442605245924730442826987867276223038952367870363355889685274704185704845350155717167053824032447094786195897741702211209330635811728651058353396989075805095885375612899249187497602955902989989236946121241431779177217971937812202305454145508103933266350716154889213827000190187609899996171834088901727022962799140487496152365359495550647978974411071686611784524430557570947295446168698385007344046243954466729952757230116125117086606075638479857926230280533950031171965238642793075598589248535224291816563947812827931946102361508876022343399623966812083920587262692142868583738429500339189890612377332402988166905279485440918700343987499460767983318074260158114469640763546840593385326140761023199322267743798231525401595933918708962711795566099547277259356850681592191305815962641644210454895789415989728222534055036326268651004548211264211500133382298138999379027296544268339407467530160555121969660846328300559294052734848099443276064498086123529618985028484869135849844718373067211741228620090974445207693230923954511898258554735930600790347924870547521880005523285158308769135602546747438141140086956217162035929569649000036774596256158923316528475551533159725982611398200116622784460725003709792001641541826151015488237878373263589819230161480795610370573047790452028412445808507811312872970116489086798937857292841496549290378227094653388679745046237031125451669734774231602327119540746641361708074717090794818971691669298254076875478951808370276577793740386761873199857018360471370307110525492760756474312689104051104528635851255197221547540058596633585799410323219263516695146634430907516176737568155984533402989733898704885092923299531098449369372888343269779387888069275691647758702170947687062106569490067146508671697808903823049306061076907764598486865966739596664463812390061878693731378808670243960408956634992205235317875166943105028862970172719432800916206439918705576222533387069325160901287510080126472691979061926146315499273871878386551432980283891519899171927149851079882321750819264275359631537004831855110771230866995491537596925399722640291488822620365037402795021840961674219624562799377031990222217295914015203463850096280631628779590265827255237871310800010990583530554486501900932149725284640262749949415511091906466348870880937654480463647224493835663639786200497459931291256024140805219019986149811279395492653920607832027276668834330294896615409583314557246495752163634808802978609178952973482545109703217774605844966769428331873521216353351833709576783079326800087933602802607185631812652980759091509426635283968888472201097630706686963711786906385368544517427743303260678995143898998900683786725452636157947184368862311158086431488125092192758916527519155478779054293511501670697907070015363875234495436274740416005663056850455519574515227163790083452152615471747979096962866157013307096999350039333583626701903285017221325121528444988115563404854170406013369291462481755289728399198733626450623299747298605782397659736926943302053499037792668927834529793154145582024056938866685544372833442712196255395125158986407281330361837785307632701833936092801634281496917091770904603609717877173021492395545040182955918534437521386390730217555252939540899666409245041458054443337462333402055250346004167574765187452166639792324542730864786982591992191557902293236630427787252514499080158692610465084646421144285628138903507031929207013451745418777036375617191893820399112916601302733997908113300644533738592052387792230277466707617094940110242836054644128356066401851047748937017700020181263106781538960183535997142917520372356046874085954698455467829956622746886196515331820745908794750781498736696880351864537201028378127234631394191589613379485698239410958827745461042343639490395877788081006430789598151109098430786671061700348006956590661851564100729785958737900414100599830364236142976300347044207328122855636579846643463021859063568663910325618039529636701071938242976424355627320455622354705057756733884282005303197213210367738642604976666629700320725134924711316046838093067038053348633955186074682928708710483038709851039554789651634763606788701782346579105448547757061045527430309553077875205481320580972512396816642736920681338932610085804656775295799755827709163107420448515778980866768786291387548532023076815034034892585550513229775713340248940672193692677176688442682138868652616612036438850126829844647455595288870682252368624662236479283080152265690745086472797827615860502768416374023479336780338099292395310566838624404360421239112321816393040426520695004797299195919779470992729596884583622963296683898847911820017445919391470896353790359277554989648296007786469467037596341201776267302141925398007790515816124178091777248155648546885027818976733449509831823932453588709255744089710801326804996994522769175151405182998987361305347554587578006163312435063538591653446837145646837247190222530351544915340262908922405191328962525285220674979301929011451547445071362409227936758382606631958126948777644601474216419027342770933190054290004986749129360439072737200330910812438397152402419420104179555033714741081867834074081827171987653658384224038995414523495053048014267576628057280226680227255369351104726496334144008257977777918648195464119901893789837738270528348441631265267922059387310821071730449351770634336451172870232011039498199471643271427123175055170146159119189828410804039101620149391836710581465694925942575474468160240143833119741728674110424010094414194042411630333714962969138310878608684452931886991098649977684630287139335835998192851354556621919918233636161963955072789991548446565177820859760646333671216294088426406741755425529883460063161426453137750178152399090364917443067456710583269695477657212718653748293854684354341395872511053241120963084191569721183045621937814170440249086717562904924452385902706863378727803738531951291483869079078054557951498185939706349193435158392786937236160728890839458492859961538792807761805341282250313586363566801247188672965306324307978251934836042324117246787070941365241186030496464027419972138619456395404569594310538543091471462509117007959739545355725318637434226666240763257846356149882768987134068130014025178537107969646400398800303825944794592255727251930939502432698827968864173252427995432518991281249773513528232084095288831776564839341994970200741232548721607675755735849701009335307368118934479668818743852103837683146322897258515478570685324309515261014889802819730697534855713183318547092183374410510637067536710959049757175329660503708568060279241118903732062806234582353753447636492187757236929718154131617988609217430344876928836105375834501199401503200187236203378907968427652848491010259942269571016932529333290449328514507192602263726014250477850622391431533892681072255480284896628632083290184380970657892375517998769854005523072912696207179919699828647210697113533624081304132037645518979873070356728862499042249256291298451622850027548930404907780471514711301589064013798137799210854957924259912015303453137785669937872910811641244818215659064377194776215766178976158042326750579356618711890041416145756862663244580264683009209626547830322730081271744899535242036352778547429408863331283413235332997102928768826780799254148168562422636022553078649303718291500908615803513632587178527307601929602707204779162073099643719948067455043989747258888775819856418993897348052821127514009310129930761585877654302766237780254519953938779202392530937847948558320126378488050731454312446685960202170013360429399581506037257471043458832489393735288929772972462611953192805821677298219944896377294448876027327548047691418568355231732887952731938626427379949114691338199982710579955646666982917956287921464560845328955661627483760945130743935889889938578279382430819767135827810307320482389840873979339478305293350953584648793055074711111870462022928748032018885272855826474909638067502488816030892273927215798281476087991768846737382519460685866724894356556913046455338371057340549357595921528382307703160421322343739258685622405854280223661706331458624733039169106115817668037762347278262278401652455533450196668690302144803359321378349496998949977352368460028056388862042091454069017053262321097707119992020278719692350327192672658441642455808170643135115336339048385099222611500465121825452852827203368076639408773811638278186309141087745733624620707500366492805019760912371303184207264764029182136912151127282211449555309974658024519672132107927082057203645634032720767350052515947098220211905084142412360027633164107720080005328038674781577688389719586622146162647704833420501747009910803765206413819436941844479340400819084264023083173983350480715832691777689186961217985415230131971975937522663311294696083471467913967697144539423181209518322308488576353650699508268634048316550654581470451947460520411919177872631944910128337820698363336695572457485505998189158761219515200342448833926755102189426370396230805540069467970881257751433388377459834807453048593926969302299373226022942381223677769581328037173048507940376355887215260981776217885167759874255392131182904214026152895356146036409773939758225359095823545069661887657007188130922112465864743542688988129383763462293875716954761130471510157332704708074875179348743545094397909915960092668677520627518691302799773435214420702778356029601713271878843441966768915371088758866198556264982157556526403857440594467101141227652117030868146121379264065179057369559408843473744888091570129872544520700666752470290341762426164409659121019000786502807631768250301513454938253216101232534359784930749167509899056546993990246845386564846141506578127367134002197778329259567335832889720735752317569965496115274257891291267243592623913111317941707669184721098345809058353745173780966404894827140145186377948782959232919604183217233109245255184308362840746054912285658810614038681179929974440911455094615759650319691073339780583577511153246956174933242362290994584697507759444657950640977049714522487347307300671662478941785802018907189533379024632344997695341588353880290225867036735227056447501438946573138428304081927025984718885829597631720591024511451562637176021645084181033368054657491216430228935482538061704886025990026111144748904892648460722469713464315803187134416781094401686644995302653830768184589329261898787429439157658557645083542599031309338544215247089447847652005305906379995871940317811898638179934780914481983638951633157415446242440860948729407428223733713158261904457146391355168315438484884238250141749387607975216547480059140154398117926111259900182407963589602926251605365707051947902576332089348412907907601032531753545282705105666784516084257949253893300567144366105998466480195536795764191494192400091727154652075304005465758684357231819643741395639271332923374608878056759235226048546153297507640123917470761071838149916903259291285138633085186650332986831331968761802607145932236806076171108152723909654360934791899176599643356055354247710404153414956715048403942813382027804618204287845312260560658111267861801130291499023643696807543960587601165825257153772799357457703251184010206618473543460305148634722572246817055642835396398765017079793749971194874076829166814978374859698772489401500845358677996003659322088338719785920389746234956143693566403326844457317450746324278576106318913547053091288202483187369396303605820092784957668290826555976310087229433823685170269241012451141286782737416243963227313650282583983806217436861082413138787207013135751791546322508218247238916733601637267562546295228474542382100144288109825850729950615703021709386827700550493304080881089352878585755849581126278741698342537029124508526195919248167372095060438553157859124403146618353243696321090679238130651706468156926837397402653371999794565819259379693796093812412665495647521912782550029656740826358233775913755967921494685589687142347928634576367972755473719860150941806346683711105851890802057620200177936101117057571353780108683048343921259838339551552678603594434904791014839204263428270288376640502989689232541162353167442344757392064327947050884022163902634354279000115841777499609193589454910183530367407885408284918776348321664910942249658552720831202086210106619398911522459288730205812342407655025662838858508370600032678814399353484184792536322943343847642734983243819108232541281387779386183433423833455513393993698531729243538011998962972974362563806526375390347792169365203642051675065882085013217009998181103977138541108095662620533601222091924413366854671944417483669634543731744211633060998521972431100477501714478784890170879749391321342066229831124198419035029228318413884303904890088710011512359901307921935915512921135578719708787613164088046616670637069385219582492384963371502906753781060566378642580701996560741262894863393644265522047110441226203848044651844007500890673358348892572786275329918725251301234317450871609743220910176723495960756337115645739437294988972917034138602294612410075673877346959538395260016279443133725870810021706688265056799497109674343869286423965126075560355790090270540722341934571300473126007442861767551666625013868896386418389638592602043192612029495879892360513316175050598345348729405847628550344459944969322959772132442458324648795088934360790034339771016848766177982077505026778469020601604063685552124927688724508094692546012823336303768851214449020058768478165692232229276533523372365146107982635291299067106356083624574805117817968074069793648841919020956957584213909106792724511050385142462055458906125232480729818844154977962169504349478828416676600186965933960180546132086800096603848725158749999651345641619101360404139003000086390005944168545859994217803166069018737423961723117317361079738574059987949242400035483979703174368258770906341949836722665738720989691738536059491945582363313694639076655639872174074315823986799941163629787259207158708839853357611293306604858485963869480127955252000776854824318176782902184070718235951252149982153571706688785070326818366186407484617700567096418337107995073290756015725695554136438100196404447805157917521921473391446938464240758829663873095341615228696760988780510938536441644364147340202793969011580607310879277811344889783067983159098901534849821253749008354686597284529143952676559572478371373050333493499267314660982230155746290477534394067085565043596071919737828652264373774165966864888351602184326411769120518533040046194856022926171505131814074471833309954353010262870172850496821088650768865437838801942881329796180975868927532753435196727400916986840339146626883838589519274250464328165313132179489949982656035500004722252598685769509674131488455226978258915729501008855282207441928432416457326499676273652209382428689691889088880677226226236076807160830510743352653662613600854063000870956347350038104748226850304830510730984087297665801873798249483398174312092603066475676345472134194554427747768162685331236461056320806703602970666832431806324573729326075386137626856516144291139869405970139483763801539070977927457692195246583325643844689450682381171406261229970101349140610180900095396184317857633852397266786867007351342202523721807035698209015485721652359465049844512000495550055337518114591186035829064717910367564516431684362714377922042114801450262131503804930349359205414725025365304868086324762077276406542156986862419359858325187381950642103811065762697100382717876776688314130263721257192987186655425457332728740648743898587890058460483264125975244368128559844598982977704152853175593404389303863259354701689034320014191254655863335776127483279585604902361694511445174172757479877223613417956016346579535901688133147315700018573328082683491215589875699703685843655371260873164886730424978468364314803019776391603893697791213692877540868776556710979933227506934394064744682895132888168286964146009324768588691906595826324426551498860508141561509782127167846435026009741271748517392645985908430692203735757443352303485191346278749387075549103653956215876792227902389198955170683271262413763724989592861761365322863234882626004303981956733510722217380219568374746427973946582085292049151720331110419028340855171678938793173879439440458571909163692138613745014119883889122670424529777768053701169746157293661467790289440038964926415395409384954007779815097375025687527306249678893482791900659783096941463323326717857873576363274218683239537645975547046632036282851692550632458169476297637430226669688428486855312370921226819814210219801535029584203075590784209979466978452654748459530583887931971832503674294606282892781042087434234943588741043049549236388915654502914975007799532690637722814904245393035295462863504428193086913296958198990222865565140795668760695994972464150601682485361857486856663861291166949240097743717570197423052932629278564802086118477215623051606598850147365052966626822578329450092534773957185828223286998472106883979846305790295882696857619244395200732359753008591592409858815732243041766015577914722919490838603104013513468025574086609471021045856103042182060897196276970699568050603846694119503932571649925437945771387154812697198607856130755106621160112054317636405388017122756413720845515340228683372677029335455194786067187120148109729901639132866872096833675413696040510916064498780961638390232721639092116394115761061303316258643200327445089454667878954875731776845228175315328241048411974501937672618437496880930174534375952185827927121433071286260719347087130373942247460143797619900389880196075177928109473837937588811947191147859855381363578243382845988456233755480047418125921736463026841959076951910469313530335545500597309180091438074489648039328193770166421935450371829307132160134126151567210016304765908716722999117407345419893241272776546848882416542656091865085145433757095775512152703374951246758406763706526294114275751071336299120820632978231958417987100537336473524413167242718724809404534531480083691927295499909262971412142607539339331264849168750958056680574533523305588304327811874159858887066029430982098045571213580164528425751821049768298631827918402622968386430763586608508451951729588478094843202260707522384743383534312282931217659626771613740412055165408132211949109149762229278291162021885173145760679053972535831414041155273114963412958379403564650713755436290665188036391568782761086057768819701918863565871875110392108935645816515826583036688874551444956700485231759226864405511216623147654260255397754859708097075278536179254106581388290073152054368126521467091768739311307643653484952849102155911442882295211691875065415765633156544307616965153457786769129165764565635029100288479289897511141845368863509361831747742759295665351367745646927948315844059485415667123465028155938077923524035491177366014698299156293822010096291071023973509026482589889309932794050432024480510574348288589288473660730380662014396346034888057892634195922153568384482920458843155871786862465293558370473555566140690917310654461166290463321375940581013926878976120828196891190192691964850056509532371520237624586096869792389395186735472156036047026833921669801666088010898953741723740653386663368011955299076937832832348484939147779536235652351506723342059767361330042476656948512360947005839447620788225317647801066579334637301051588911999109102844114736121273971845198922006524177249913645853623778751609789015785581130849519529737882401177169480046561768696554525602409912971393530992550769573527241934388390817943745858143863978250057659966996257016165155747189708521838873358435264989723007220485369664570502160776297321256856361355255454677825285747992434740228616701689203214486213805288198931682602118102762565928039649572684361412353504146031897978704137992586786005738307014368322441021893186732911423388010498653936259829181070273119078812375876602604810952434165749915815124252565955044595369090080476758497575157574181332826563839673568995771147920997162773890822164940634383618383969654178889561281435558956315304731331802807499727572320918974218168382481137173260053401752934762909111303382310337542396122517623610998381593478586551955759125877139444004051390299693535788879853548296912060497427669660775770898072924320830622726992772367144417910402115628048684595098032418876770963398796394502605512100515808197423802462170156904786852334129515615846542529065178813846154353345813485693909329215148470478658340049085845256785746412634005311585468982030856851727305124136001778063364952492642395605561867887921517739275631926095181741910843339134889720491026744770751660825530532156778088381263678619899629121334982487476360309888042136294569167386311517897423011580592648202885341125010593009642884922195488173359121965736301153010594436004621393939659795205420950312245337044414584519964278681446818066122018688273728923580156000861746869627958653362069979371873159832546863722041418753178275840822819856533484846777320094199460818436066878148476584988484204807232765249944706102465071901013188426262856921572844484447345092140189809313583540992870812078169043791391103738897747949604257050702248755884567075074638662778784094825950956270133151434034100449720188253590641204140492480423901192756846487241481531708061450044037736046924849757773720136191353142681868923159770035742041490376548165722425054730629560760019798629432921956299286791740985575252170697915521424026106590849381744280778137949797786677904852387469587552211098338292553727660430489206107934376385070121428656014407830661504148255528883433016002872893492207349408811817583970971543191277800794022952795545043589403531613218384794922646930009681748475928607540274900386312568870006846567653714428818296216873649384408715125050457521782841616509904843309820056126836407299352204762328458108296170440326064618771027473673774739811889518713991111744973105407423905619819555879423123265596114022241299236167775592693964131029073456893152411564288801702324065656745196939173976595777649948345258580251585418402934484224607822451146223547382736047935446451358982413921728461978617627186833114323904489805961890487180347911135454091030415014412691222892220468222495810694422848560994434552073045366394066682170536569473274563375892078808634056321200532504738211901302029211971030364311789207721241009046810052292985580719225772492309620967948392529626019446694722228268209363360689595168116726547976859797967088825629789854372108071622143831948834546375220874387344721290260260625683059313464459139941296735378549802509285279893865204530297089937100905874089892616816492181269453335166622284304972161730249260491362615441308267278430039387477317340162980559899234562362799157986157826044422421112411059563965999569254223213712415921653645146490910247877790527747538233034617985561068401564740813160351920417494515305570330907052594248184430519340965485797106150999795362146917242520214178201777918964502256985237186444470630887530725269149152945820114796739980047889815428877772335003217830910818283943236204486455312094024730303456291352036781356687089741468984087051698758176365114179479403500124206943125011381779165081829693614358061681799419566378521591046231944258365469897155569770891185503535922398800513667226227916429976958424918873756185819153225770610434826844486448898021300011563357155912225667501110366551469909720061028576944606774945708398004671322980943620920000449300764516367909838703826720623992129169605342276748962514634133615006820084450187368840283941211964037678561649998791100670874675782414236539672210128059883130939208069812641369069947295460837949241595989933837708584090896238575737225764294825279702724382329418194948925460657367876297089853717642220502404897094820288056402204653361356383451481975817286660910984672572420215594517902444945388697456758465630373717900852445368869753649935897849565739232643112516329166270152694280342946603389585524828869791202106835401372177623121743882652032781421210092555410892673459473428143028525324463118705412261232367679126564718670472005457854060482315172924227635515468383633677279767134127550787484609594148710350648668245938734103148894300734027486048912483751496147605824282344208920045486577852872615470015262624928041394039439727652886903776549244137297389614230406998516450583568977282749622471379008819226148259929807880643950338165392722266519907743010355929459734785264888347599970859490601338321216748866706693664542078531876837510208402281642293998861369041350109235074478123273039555114371730536274457191914817069343555916306969864269032306806953720472600624914233149806155278661339748808548369426937946521282885666011001234436156789289545898291833851089109117505986906680153731830879506700914306026311046009183881751331436344857143516295600182632880698468733478141439626117365198429680618279362862375162170253266920217410751516340592991157031575695324922527203077223121088568807906314470286785193281906987311834024462223665400008821906286754156396190345336506260725202518809584727957598585637871423586180906811625114774124662129973118960997288661725729971149539944473531809619539511876855353879569315949114874575766886908591327896453564420168562737637743978000385543881705068786945325056516082519696090027897748802743216311133368545818375092590107553573030132211913660198034671506885851982321335262679331252946251518241105702819207803657128330477355248917019952344516111888971125536290651023158728525202305930892409512798946870238599832097712041189131425964178303503415030447820126406925087260336731574650912519719374127506494358231420382343281939125737265024682460085117181725284129602425021195835651420026886938852155557771982357008586988415501232017695320422136735692255287998235574596208303549373523446681900592674065800142487883896229277745767209571134128662144960450071771529671325282242029780820567699719838886921086144296047574544326758680908427106916569758715338864397245793307958666142475482459433029971660245779344018214656902127983477217913037083886238786829170177019835040394245858009781027782474699464359820012729375269428423905785783971003420053342742446080613438032481831294121971105696574031486430724816952962833147787630910071640649378973839072948739682046815438393651315627169238425860196127586295118910546231942377442125864585437288411737785741048143260938717030840937932481495584431620906146447821676355819982665552608575288745335258030770419855828334515749893493186421436510371713590445009112198048700132348248376122386981216394195289671508278109198154677830128572007171332828604631617616052753269959074489600379990906377879383780215006069305729907533063310647774457678886606285556779521336056400343088143340084457433377779598681137509308502968044045059864041673399987095265426654020492162213939870690914431209269301871684788442191952040148588096510955006006893900755025240050752081590954628586765323450025729583403142455865294205177881081949468075919921968805746508495262106853029816635508896794014121013505653770683409983396932815809907353485479546702273387535221405937831666015854780138757439721833160722857292461269814136328883114921528970179961595933605062474550876011762603462014134786565528735028268535742956574819777491545661504662604799150512660321663538267234972428435855831778358905332738456484329077141273257704561071185395356288396159068571586253000503504653634188115509858718999130507991121115197191184253019158236334663561111756060361532154094468312402754207885235547511054782697378673303238393160804576542356016593998000690640381913247736639137327151368192399145022748536271489000299316214653503885992056950214822729135442211925542801665362601227197476199120949704732971860054154591354443708035041936711070776836177270115101385606449328011658030519624108567234372656034041347576597251127422266108673818843893944978523815066507868375933332214446885221086894056433878307635282807320384551618347961721183630519466053622250934695344168505933125457474989312737733755623044694168044094242347354536350928244864539250740089877154112375729293511770525726337099229259206107272949144098915095225697198751159298034344072467976601276301825846324800094283955218973367248925332431399577635626895466518901990592913184242591435758022437536589786626087027076750243883366357113048198141701129803571351663428927947528657200290388117841973949550087903297210340242465941457374839327574180574776178383988756846040401951503915219468869897789237967488638430221246672021841496187683776496904589158074468543803156656168512921998136482003145703217269686110115272638549287738618796251992897141753932354722826418185697960451612063175694086882436698207474181307814879109865928103779296281505433486002204179744952009711070565199204639777882138561463629217653777669097610820089118068276510169830876535646286522103889874147162152997694735787356175485970322744322551697698113346447270016095257530729028662805976760039233540894618168510396450406771634045481515984797054906742576449489324370909222048149514486009480681127827891669920378631837458107976305205575623791904685627106812008962578230313396591883442797362474297476807229737740534471503506187093746186638625876952376893622525338712445794166935923646175642102924093650261454726768720606691371394189502182501596346720233248929668623202891699757266483865408382143648279929900003672836364269774891215458925467640113874164835186073520587556288080355481258408924324303338414178047436576364761664441493494357173575235071984238705143209697199641104999658455561780219434165228445131623565607808990056439537348307564059095463080818504836433446686931982112275558333992750881743137445325578547366729430727693285852233063099849250641072008011181854774114673387119613297834918422441980103974449663648522429665519956820451780342300310901867495797607583111580321326100183329518066505658598269604295867337443104495990437578333272973397359036036537159656658292943390715780580902997509378523476419177867654333252310493504351945389281595060310144590793009724762197830508838272850154551929139390160207222179263543144135936808421528594710315172566949957600478978634404210492688500264345259140969407539529611112173420970286811006267945106585965925441400381629903254134392142826064374275996732478466901030715281343490574264512007183479989988101039194657554107281318769049439823569894823103746018417717176621279285438223054898731941736435725860262641180709105617421967737645451775541326029230805559909992477702251898271391373212813814690359325004769320294672522327925600673354435299919936974672154075367405837689263738152237667479263292390929743407273708624632977010998397286715965391177308231605157158898513904557770432233593013533593461772332392646129408019222122470002901267827937171844829199596441617296569476530024347548085561488579582323003406394277990280036010752972320158501172081706364341116803126049532199993257156369826939177898090177993078468826024004146299014818426146766027131886661671758034005828404364137987056318855865042366562064510411183491683079796780985043592549205271679778866655107754958354772153067627854632309673628938244291960210288394868729921194151665563448235676811446722607615226758865121231416268382073721686458686091776696606936929871186356806201493120639343860047063590827845494051197045722086686981666523097801804699649451574190530252628235618678954917463328408982785834139497417995736000376717726657735695118636190711913227273685128439163638816646130856780357861010840089581360427669634750335152959463624792204229095308035096380009464033311186342733816439529482567098937269472394141054105210085106476090036133970238116153425339727302124589760525584614877013648778855162879576421528883840162609440916333087706960025602000029805810519499647052672367452130722674072362992064551964223171802756816781193658267201069350002512172229349628256110533575540311821691706482290226665725505421316653558747339155317029198834237893620832317452767710141082056446749327160022110226091641555532365936433460607683983740741490996349852938538235913465171860894855616815650645973321091977840106319533750785921265306907466839803162854972400289903842214717795702302820879855042795913683320333186899035010474474474490848507606396141041200782633376456073798673932120280860776482287075724048670646431190051550294656925867940631066761542117352350413418464491344613649265054288067815731393460758206434987139341801301320637269744596269720836839460723187043387220478891634689162578195180273415332296640895612033007607115045826029581189964619919642248636767210863926217542510114191473688749729372514066450891821146958348697101601955921422956963477164560858149437844709250265570358374444088419989831416381379823615363962033320050953353073532561869651015472847078529522997826093426035397939939608867094470482575838087842663926705861601104872166203011233587811928899215340735353764177435495962168858226670467491633723339097906355960895415905394392180282320623584678837566556665957667190256258400605465406751931685895679409386477189249229621512337919040669128830629250712148170542954372031339519960554126503378639005556410672848370406401160322242834316462077770309393806363875637448949882922899190595469625990681796654518904142733392938490478785069334676770710168707255331562441784379155516920214968571160875918932613727320034313292954069089390309957307618206968326962366162904887802050352394277745872633927639855449006881348545225216390108850773625086447744152755438923212580984581729049639601320444973094067741539167529456717745974953125176008437647121507452354394030772858491571361335511324343798108031099157360692057806790910335604636663841675491137091370653374173453903111203621793131405648193814893174288930729829761464574612927076733740617794043879437789707525646130870411062232645075487654824523375451333359970374105950328812890237474355409731831787180625290875577983519786171654811917215025771088921373260085087022448862207991302287878764383590124995526840798376292363789433826717749506057999001508443289408119069431343251444963999390319725958852153872169483173980290911205291642052771376059450669154892780621838120660578888501131926704710797113256864086442839047282048999956129271413044724977337826827100712067270315779245151951432077948196333170452210152209731468458730550191010707769389659715734675109388465046419511500108337447854070394922748897310460591000528214038457644745886816222342036979647579014943059394544020463452381119667813485317437876360105178672348837495597635017387980491997402596565622668712444210978566969308604177645651003469513594560504848916771838136821333339271305696453840324393538074975907692523336461757984506646208499451745332723967370386140900609123789528754137985650744974839750540489559484618426270135694829426254404574027063459094299883361699112679592228908620919092378838918271854787924167851856729646013681517337039476911959600145873216378505113215994073372209085066895602684660330851712465220504939704713957445691045809999274216085136175837181106546724383567752170354179782526935169361499788377501841733198899214927215056539752126797104289665628404199296146623429247546226413242866860918911600240876029942422670811884481171704336758683342670947183883575908571038052387078966221596050251358858049467209151336227977614672579992419535930404938536532721824123119361409545285786471991664085102885852067404476822974648105921698672576760732695791764245444695181882105574469028813980834390285474262084126555075121904143963051222083314542725170913353206826158035622163106624522063986140780025650467751181330439840483452042953054341882222576736370847367264469000166727004983727472740791651816354993705097778361425227759414146837201046014350428767897365997169299745921122425377603216092355225920620717621568509072855616944214348052564884144905538341449025413952394772844380300497804809803914219696564771484180963229104282679768869217733336390427635655322099377345559507514988501070822599978843555136036172824419380617233629396795481690551637612214450370948223902174388693548860714655672206848564771486281560094420763516472320549879217616166887978999516658922207492840370723582003537592635615667005067969554646292672920872999157827840328655175199054111633108116188290753467363569970256650085427038957362777670539967394550855003324100241788398443554238253323828032141326192365439990949631368595877140009945659750776075808819971617462622980906690843927395350190263345153730765081939919570930069353008973064948877066620580800984175785077933625541510565403206853748732148119917813670450621998638399454957721997110347861843325333189665934196051503759182394940890441484730442820375170215243813880147741877138803948478012288514907207964326772133834823866255252448154036999249734008945140153737045375555576756630578244520392186935302851642059557984232590865832841988705975106429619659353665439586655407983917668782763006304408677704019602296581399861118250305116541670856321640725244205165506795640341360246949713448925944531795458519950753934666233191145372157555541767921886665772457043057777813093287569736270224631895197354312982551103180335443146213656272930961163922928984334683086837387230876522612740005254830071316950958064776163611325802640899080474470721775741839413082508566055879543144277026513790322492371212332791184563104981689174290898272207161008188877295826251614667231219899501029936787561446730390017260728966586438560874115891963541608911872307312533433849443562810731534987557346590769897226497122731950796788789775948167249243476794127233941083321133023967589755535449797293543377926659033230738920856651200181437564992145932773056376142663085844988180777985797165959329810396451262839177622100837816972017656834556344322405237004530560621690619628869674033849023782367745919515368094535703812864257092719042096730261892022416803978768290981508578718232351901337506339707690840516749833728725801311937326224657498553706697819389424397985700263011096526095252367574945932235612666591749922643068369468593241804606076916684627448078987797462255703890030659220748417986562460913106401467938130960138096692724863201058870836120205171586098107275754272325954720813562375548441773008960434797323362796735352199068095117932474890661082166792913879314150454413808756974873636069070502053256653266795463475143350297126078277284248436286613079077251725237534915373718689070668646453706743224809907884598905713086562938813985627049895367970514188972572005214539790650734913419841653779206193477253140918373219477212115843867368618030806322061957630853451696995946926172605684778231354594680755746741692064062526324763494097699480062261032370467061393952869769168680396693104322717850070043980333077295937269954698763969314038880364104353786606207284106244278948932200350343548609381595918962844746660152407081445636545841499340750038705044859670985343048817503653029061205171036364081284663974432679144975602732635595027785431459915783775159596816123290990076554054056679826601641264128952068778005454803546255631160453901572584204945185566678316109724310209777960275859437332779613202273758926308499644004703834622614467767611640381383501077732981304212679066974854501213025387758172967475460311366750301803658140976186755360231097825594781998791535984152360961350490039419794036261748713162208834813440455854113651892555497384349345102515236081672583641155333802830356374312295825635463157556332642499796930702252212834633721997678769502318238346878216679693023530181552515927423852743101246589592549748254694832480072752491211069691172968702159261666655924728775881778838357908214844554663102432679554136546613380609291786170590984732822653227339715082556794743489290295657991627743801753349894241781279300228972005935168615277928069331882180344989367788533781727888653987495008040138325483244741969556492016006840603490457751961756385776253510237198558600142179066417437206478451015685562505551571535044509992648299154183553797862999874739571588307750078386478123427714256105144947142686959607300302509170618747918670116070181306338212713878126453556173438947984922221611878633719135811304177608487531766676353653541618952625482535661051860623092408845669414196229092430917297597164331710129211061268834351443315349656227394994834214572711954524453730167025894696077689580834542457170504529238679960334242241933606941363601465142090424220949700716591853307596741139174934605251145709753498563644346120651706560960454931193956020756736948237528245607531514031068069969011849418283247368759729366971402953504495690117531129075112369617514722095062237448521068987633016057998765500371801499281708032686552830959414374795824706745352867963469892736191764162228637375243171291987029381587377308031550700541721958617054911589434557130902949305481386242944306004013021453610164881613464789281490083136846530255779217698743447156196451853181918263121283270435230490335286732091564636149840521481536707877668525906630449224590850379736998352541840198915061501305044222533463920038459140561282944940104948032388348555582826752973169076429803292239890427447766197515300467807134758051984787881878683099981942386527304652928493011282023795729848510068149396314708831215567206677273703604981112366080916289295951438630502998482623055340799404804825067941578152623823914244171562973917582433367015715584708060005565617447663125109707778074025956063553280696549389843454370522241571020112216503050697799972873245306148946517241383769974355179705592615667718254612473435447055165144915928517815047714368608632133639237247575369467843010799854551134957652737593606860600065012592386479504148621508115834657334520753778689055472530354213218047776292139023148935069606434621630271519040361047535487252365549032671240309827529371581440599632709596764966591246682633882136628574208533201668371321412936173988348861423697981377115254460854755577846168570901741259710949547769461078802808322966520087666707601546345244184927360542640321310155216990874650092769644727359541455304347960715142380904812292372559985722473719086065352957703325924877614181479576079205394235413083613615185263616274720033759703954650588482881351388334840084709703123185162644328809803247582025518348185219271057065433116659349869098053533173171760955520401427573757251428981143973385704334080062693103000968589063650195619886891284534761767337327861400627870947318316123351486218565730469597265183423239589545512342451624676312074591548510800693710955266834524432575835669524192777703444984522340979121088004768697196326694408410911235657176474738635379475178569600785886968774355900516498447414837848420651170062521776064367552205150487113487275075561207692737621072948147621164491812719268308362563549939455176972741370704627433122938023107126967033378646258690090801377924286347929018761050535809328209616198726661533546646859143805903389046124666274715684477859566502157205702217939363633746133718281281421042453360813879178396598219250537727454317682079586922860029649805685141622191467852962232682839803445336444848290839092282807223219737385643142653201930748329964314340070986319564389220716746984772333432889967441759402205911565356127849473051669655849980502270379456544675740229550527364095365869421176935369837695356137967735947952205696119330008750713571495149866756000579394339434546005182377736945621354311300585299443178411067237929755765671665992176966566892491616639332817024569743035692605712763477008165976218042063128442317628723864846388594406829223629012829031882500051708029009377563237030375475185540292487161444632020624568351257324237264856010226272848865039100835828839661940257116724524686970721471585196253378643097016910302763864145444072082917653454905133340088142858104182363012221301512086996577200446868499601078677577787018611846909346965616974237044423819805528897688973248036122437384593085149970060237417106240654175831171833765399694671468474092423607189795278818727647009271900544023732892667955880254169074227744975865785184292886724944377952337101134241998132372670947128121537469745148231949536564185714917773301406250503191248975507256719129433982451651427346243928562770172540439696271588395677596680826008746678173407601963196369403010067240816151416584421088262381447559874868156221884376377384798099284104187425298411820824862305826040014909655969256834195706201646329604635891926503871409257498588642644970334889853679747817522378531695645348806569787780311510019243543381344711331604410425493226911552733785576160940218249918638703233371086698448921745289556600194594819042068650606272071032887513829883869596226940650179320984052150121164223032248017455054509629239633074058853105151919516888497194423277583950624415753142912309739947024761518061294841055126204112401365647870391556146279107421894650571226895519971852278730142932977654439733050694479290734546125891691010447854807415176607016780347576988955386932552244452817011484899946567401320219173559801498303724311965384266281285518572491759012001645187795332701994336538782557306532893298531109218643292445812233000276999772110617748175495258503052315104853768538233081690163816369388392269464312654766011615833261981679905495018736313184396399935790123441115299168583788952421773426763810889582530278308649377367048036170181621087538610712936151524522186178119517293311244967254772456964167180806004534263109826101272603196642877694767998904696563568149863318268757282041936148121288811892049801824281371097033447251207630208141071974835189534582581628974927394014251288041867785673479458193564582705203575757176109416890218838325429416160067331987086901744400196044577304990938521710588659239485103046306039815857923225238935434908445421604450950191525952334022164539751333219244791599735698493592300034345126674286070320082767640573020867883470237377495489357465782417770282139418293685783411059271866055364588959437854700124495492473205500897659924415644768425924778957228512454487410293234731618004702326093514807291177284685775831803267413928639307751680929628642649884796945334342025628634086791238742680875640991200174625155440508531043495052056697732640462670532985127222060823470719838770329713540806133826895900045037348785308285320740209736725995633792533454161569073332958424908502739343149086602339528235116370074139144396141570482497054838235822241542650618084196952006603850249842736720140802811687120919887775217609013553773603026949013318455960154485309236463448291909239136706351559343722997361919757843224564258987078984268317640450497074338169988790915307177397678129008363630869719232945622565241356279719386699567624118621898261397941142671818124865101994005938617578268950479951387822801937790021500423359301942113601557617023741104446095625186136574285939001641449126963991137448787775872815243901095797820933506883609376062239263695900092337764994443928845749655089722354626031382009368659664365957191147734825507132503811206300345933499147075290551501109210283838625589538473880010960865636252238139954384020269186924068733134625588732139015505338783078938237999206699322739129332157380452290520380845379789412627041477101586778894976601729733596689571317191712555178051523141409588498799751564942956084134973132215262599806951498382826117273065331594970899556641206577374556134309995423084804411781228376401500415245243264803506985261472797581832018203563685137813974178552520282844938062593022075874223411084705760180936466817109740681413896409925890195771690881325986079578406710765289422016913353522586684676087775570395562726304111711522321179474033294091461000975020616572087907620583955251146744218689185317599723683961025315242887176600697006338638356962593005802727079112688902572527791161444615212399686683833774890824340775580720941665762239465428130429991748952426974563612347612647850212504098819687422329640888298229228104179848081350392717519562851748014264830797898532887033247472517800799129515662867856231959024865113138363129910620231523585125002811429519219914632280687843592116672722680884489844083828113147150762233311617612322205824863931972622778437602212024062904789889651869866012118163883914453451922906421111801059297567540803655196072916580459035955570201940107025777266660943461034114742685213925843132519689308680319069164158717044376124031096945684450487448635723006291849173828114822617176784310221187234860426080818196958110766105038812127755160571579242407006519881934674231155185707092590622444746288249413192451955587283832622164632579936481452288691706501137366088955782059849443188640892372587081715530995817906656301265959665064043944784939428482389236471493784226266242854378048404392870028499746762429625156606659951025135612573265549632443188528254425415054533187850680578484007572877551563579863757742154990927976069665295741874361638139258415904329118866735814716229564519947330449140730293618892916549627895928946399429158841204184919169554114690535983262227142262941729990871532853186400112047912325097175181523584769151890289628823457567285641661221440376052686470921964461316559123278905573982083979476982302684822539073748273288034327397172593198389728059005786982690434318772653296488802137268886830168312203356692600247012327470947615645588755085666592063827323214991509706941442461308696589528909492446755150279531326335368806003700314405516351632537541003005390215743775462692362121254007692264529531093412456659414772126707721743295072617531700123287289228361616130711178627630090867771987068942014609903678953836971849273473851303027027268263833753828829903118629190621830778791636777954830784870569592077142684537679417844784301936652905925864998973084937972009287402269373359122175059651419878513551345141487831495789959501775262379422425149774951790584605673155056176540272972914334592240272109758093925514501399003909451560008904633193731852774175489824985500299295226399896266203543578016180493231662101956036496160349036169802751958610374399154705372792498824659175080517866511819525980909390095886090138501125220027873066429540153016905424946871103077961871524312631436489485988562261393005156142259672497505093902622266156138627963015345027322892449846805285038111882944570135623592599127240814258168402023211009219280528437735277961078883003866018251245961691153492640824381657207774267263464831949597106314969952399706410304172921430776696868339579711751246258616445450097370049285455838571786823579351777141417731977929452742761420875636843151001572693971602582742663034145550230323130687112755327030710064422804360141524966089361044193920062206356700179044362495565657922908752806249954979074413433090727098599581790953755437227436822500912973329988013828938358329857339801047413095846163043983117764276297670358759806285613494915193929719394005536350255422406451951619540981712460397851754423169606571458094191007160002320665031738724067560290976043573046962902406270673355716846216047425522414632907639049068922480854853884537101600442620893300906012936375292483334782026235128629322056890908036478524161816235998164638941905982642042495880167735315470786749304414626213030523384157567341654140796842655815653319338912425809724494020720995947419702045439542993804789255058260517053806601370585907238223402967442941747540507477102639953332901090083744269944183372803588214951096282797551095375317924878740275090250285061877543136781426781860531427055281160500335472634989945263717260027541390387113307620594069794318617203469706024976968627566083139737366683981038385994820763251530094278626792809987555403323229084719147451527417106062515910717556030243620148939083761264048796657580421885263791571554959050658370413227382109570509319403937581981826780914149004797446415059244476354076887668079695382844073062585408584040787581855397608061754500643823921270665485520843557232877708600672586863064752792284383596898572115149975127088045886186993040873290284959420277686089626766884322950542774167563038316392510650892120056820466272019578213887535770091225492905866677323079359543515572009906835140747384496201297940237746741536605268189227622043008532432714226574034755686211601600398854641680583697612251793082437343752224193316704113775919880100888920130721003921279462756533120407226434687312698481864204590158659893401077224333280195653319846225556705461260629073164678736948116486993607606422605660944966890590742024797793583640685878158404499172530208124684685212014408306496983455022459164554017115421126158821589867382040968859202116918018293698298136969288932134675155734019826995930803551772042756472368387781505449870287655697000282260801854433902720594821790474897897366381378757900891590250307439209942136959648197324863815655125874956294660731345396758121328353545825710253492004599540566181423615969509345403614398904377233442926256442137860413004097790600205204913030059521976254861697120793444890267866722736597318371959138378475770740047303713139824423587656232268391017642780676590827085359214149657379737271713069830044188206615189330159520635695507003364497644940969176930512437197155903425926041725035561238361032807064048742040579857813048854711879258787380898012172566586333516044695938790232019432322980476212847588831476634401338001561317102427920826249904419945084465655058016137738153248603305820403233695099840934046928155156768664655656667496582465839134388058678694255469034246471731236780689295098510299748149036333945253969886104884469873922304312087333596429594061957278795790612766630090375459310417376978894980742788441826551316574404861664982196986685307918194300609102735221401911510571569908767734264135736509956561641588074673576078496520499451900821535027489227058871275363338218246193519649503334168315862997099032802623273617163249492481457358304669333044222804162671576952940583485330679565977281088341248911331322655556390521720661138308672467488739215157697253751291504724644268873302551384009779796175848550618160097463959777352829086419355271579673676648495845743136323856208016915317916877557040330131113002992513829037748860561712200031907558747192302169696608490714964806475695027828835332672074522770675602495379185011281369440481451281629510451795852096444382511441300272930484058849401331217183394831772157211900399753455317382238682398222039221034904880447660446860716143271467825627920609096935992148047896905911277294202867032403769870009411440810234718065645897410187694478504298807448758219878202583626940581998417111930034691603223231154558830125524007610021621601434786991709757188443665672716547161214620048868362212415264408397430997324810301360509184517723579170773013379362106362238534293085021973940787734511950528519018484443190702806962136705393625358880796749142655355025555610542878007612449333649030179263787535619814728319058279595536667308058520158599907956690060812210620885975332765772612036946021693094000146178639771884784076350373904603560642543920059612485012886499171289733771061687480407484719806332415113721549962690116832916533298777283624912027022760971442156622295646415837166299643582158217017024113411460664499225108961608676079320995030549944824666449605878763440643091715573976704775951823931117791185499185826668221072265057977931914685633151753222186596360126793749185402691338789674654272035329596540308846966847779008241839774237167671803607197842575506360258052696064101760524070380593305225328644062084380064716311197304127734056668443277770780927081412582282362742881644954073425164853551028111206709789724514926040432773341401143263871577598642995529352065966847404525267196027064397444196019776970566471267550363211341625268634390761676475105830559003616989485120006433390986146086823497965059656591234899744481823225626290174555293577742851242275040545056438140914888709131410649091318082717890869590310116056852839743521561721296857103374968372195312448703948526256895548272366883480319823403567057652148438538791501515478373647045418079553469645367878686549051286964943663690671358698824803541967519808081051774972580511166005236551032740188199163056409375278101070354484840880748892910285044309478300655378891083933759050634689332688734837325301947186565926360831432055084995034314869897728904673559057756580036812618436985522122781125880194774034735470784155269643272434177615103638541652720183757060873342585834307486404116252870743436230990401089509686558379996385984088878967776098037854843272505245280104680118825632598988068437192513184306676190284954020070257148646293348405362210765537192335139952489540397519135933979965863927287935159147021539288129893525800279128319633472485950116469603989751384679070768112488540579686024494513142050549087332545314760585459453110480662742919181280448809423103553588614966001348048073578681759630027154852008330499905847612957765700214823053247811192988275897917141384945183229257094507188785266543346737522883465443552542485057968301023905095436966807773334302100659077248411641757645173975458216189246132099194692850745733133493545772652543479652258044723365100522796378638543624509365431176622523213888292304346699581129321560213382931475785573515646679347692766164393980837328962851835680289851855473478532390448290484634831858369647667931785141629918995117109638481899956421711515640516903427940122991245275569447459308041526289175651696121668097913311663286565008626204102020329276344529076048839437508548766409734308326001247901736883228728660407753651403660894219349422336942121998566404118704257851241664518128674074324050997425258798195096723958621894961431162847224322901334596830955430998929172301799521639896488846877403419778589063458147852115093296991649171472359033579104972107029785640977837588918939085022660817964170195064890279771937940298893325167371819334205711464710172597231325006632586781622162319147450177489413131536493934103988853597650240512037160204847957757734659423825410631746060531832438291369051010875403454567007678067732951400081816982261580652431990963820722788566794743451572359051803145439021272690330900870949277244710350906543643380621354587977752438949111947521173394344558771750266053248802147047760050092368688263037648812359265849997659777634760927414014052669491521713811717129941945156935955456406621671645854480844156165872375090727704052135461392106707005677924645458715850541939045048531328218483726981681526447608469850302873343394421743118375395468702443515099831804082497929909584648633749318350157459951678425832960158620869636023369029986023525476798335426745502775987469088822559582700959452841965313317465597935794007376869652863237718580881687273467669898781136561847946779410150939002228816252512097839090832121296775296470956592878111424695474357720442275209343270246812308422272634832561236141655274444729062494317261792363218949721863222178671136967911858786506822657190971766601240254040758945292253944387395482287763888452388919961980814688362931683253744011811762281222177456942284189871235241049248272908733573146933974314214155431972626452727919138692641642952752901430989193200069740338323576001870324166105453879850718301395158985810928672461925736652375504039324609037377423176881012171155245165084642811862092308084914423627158288253817240266313563036790221854798624214075883667032269920089670688632527226346812043332978945700042371329104146930978858036303568960025100796346772816357920704147585431511407582022643695731219110225639980702848324181290676541185344816562681060116212788703801165786803079916548297185268402654991284623672469356580564712895886489298471178864150554950570111327042442862718462979784982878641652504282300906787928468248267721752690419629312181381489943094733392950490494100763799323295726291350375627414822830169096976853857307677191812433814005766210990999638188516471284239572940421972431208712447099718318903529935335434153011261340853252621837362951063689833810987706076549101039165967629494270484695563397694174310041560874962338269496640421212749889257793940068517368299857552409899427110752697619185794420082026312348188742459334032544284041371303466017618451597227267248412281152494837451981524050307722560024920299215824939935993490859629403011810225290157789668241614110011689270227590165304024058187058480569637459540072435074523903278006263367711877838214729245744860126925507692209083214053670446628987663094872227472041398155219822556665094577381038876658831796505456099241824018293715022664494595363215529576832093061215982095362836849427222901067608136023261465692331617776301475826305520607150740452167061806911616124743339231697651233217885514314697369624610622918651129452809408924731699812134479650281512578786181888406409418551246531136435081770466408983473849018409104700558678281456965683667058463655439891231943085458198038976190308550820876536900908053256337405211984485569011167470996175873295838165346055701339653342648929191112411024982787266106464144513655777789836152310500481675767118895348909844088671574583445591173107941192336452142075913890423944102337975491556294503387665675729378808624450033064591099525202918956196793678562427287883589300661498891813430179311233840179623925787591178345716930666077802522646210556703280662431199095092038503288758912662300074363133394136156372036711831099447832777799519910036737183625277426641702127501733440452013350996844497534529618586046872603558790389364053902966280878204779062504624552450003073114729211559220253424575030651075097596772016445989587490982923101710706388947176881714402916306572839304889044303741423478523772885764745942573288088278038885248892344067417724967517032623602642166927100256074506867097491448237104865579428286264689662287462759034648181735267280385929665115189919299026696016557248396446202525177212911623249637809725320024905399528911630069356345644089273649950250839723006847775707988373382423383676605929665596184830215274911380741709030536250969280867961475500154726465968939586927980244052782880766241086649680043321424599901000000831668046950899959799675334447396094830418971887899110892359361978742432713596354959779405578215603048051654687235457342150476395584574276074803125538042685830603589648576017120692834565247518024657682558267487187458007699858183286800818348724934691376594122948380507575503753072643737565759878663512308500370950811785557957139017918212160362605007473426847006077573219599337011257579226110033997965164451586418898226801337400865328552564279858343355015113371736135099694451848179446799679261858120387749222082048736072601720068643553404555212460620996965627040870716587747195010840950167891283303673000276523935422567358441772990222667061893059347050090910614055423195131965622216115839718978897195538001032639669983514675103631740891144067813715129237331256744397811112377944717808929773132313753223518314270419014919537422398867423075698103837022709449220174065773217408653606624791473636057690579186451880253177280207226907735874062131482925230163703371410720656018597188650144497885733427398941997406331167101248392507855220593522826590531395485408787094658110310988136098713562213838748075884145962989978512577369084267528341588567472269662175868676625944715458060157812226462772113447607430180119729814561141570425690042982574070349119801645112887904445448895327502281280942519695983064459846270643909517404023191314179227183979192865673755091199320342220501790819630453289373179224281971231050234948912070808924663254062768050229664058064143716166556458264698592224881153263422381079976193134767404802375167392592002512142961311393845209450503574498489702846962854765370985274537140884054082637747076153384437920079055415397694577170724877382313628799839882051322480445299828888739452626946914217959951420483531749006780357604231326876801102998836822710413480491663692215850057708668575453564960617126980902392459690574732968332090698644814885926117265571995849167648498175000510882924211744202505939013988535898988476154784448507482735927467031003104721062577296168540367533851778946152457303726152625951487352935320054571199832056239549709315022374012063765205884678148236208476808785708807928825594146330005139099078764177638424612196072576677997627637227560714038609560979535935976177078133283080568322810954482461909757663799655087675369767683818936765222660794287196221301295055643131809208547352727535246893244282505753592991923749648937827299467443044307815726053943258189482240336127744044631653660843971831461925941062487997680394622293947729386594794873307667196006454125306135715307566500046742470115570666768559755592592191760325883865169676675691106487628030607259672307826888430578258955062286616752788978999723188878019128368747991344575198108004839453593404802393812594767271429316910353849031425313338519345290766569157058091278075262072373928775191418151723493935323375774325803934363019561256622020343130584255381808753578761934758773182345356418751799488600462516974682787792295942968372298551253445582182985905706472208004926868632429958815085657268165531132156583595005994513201178260098547531306782766687456761332223845691311820918665523179504967407135303559972410652094802795071312217304089204108413228056235623201572142569806269983137490680870176438262069397333871703108114140188954551462539559772302905522620842060387819853841532171511823541078684107288094759759022031713897972320664464406565518454948345411479366433764972458814221703683421519410919252294574340862059130280509221993076700103937461184906847367758466075840310834432293389620605250941677289419593696207144130258021745127690904272997101380100126507536832313573469134894745492169599765242240569387537299054432632478441999666031522287934560201080673246532084044100196235918061902855416079542131338125112137745491228037211584814122699267410444083317495894120760919786798475000683100686151937200093703171476123776861586384308204662519729599742518745019766848367176834393390169384926346558910803982591354444618057278720829134065623852550008664850057811827369566094892968288434962284408305464302169831741382400982513127124592427179294740841598130039461409208708446938640372911123335686136301282487452514245058335166722527499090635991606588971872480508165550433270676258986554920617456568618839383689546639819001553871889669251182729064338098262004436785577307547702151300366571516186405584127532259219798200081439227539914892741697319101270064914644841781409591444396085142019131720310606736000016075472832459507431212892490556379440210634875437110625116839732196958843881410080273959693667471556829682543511906117605293716919585034608742834745879842523362611808051092101453176428983638934705831211737149483555722307603983262445815543440961971270610564265432531087140527550886616338115708219798443008968309871480364795831916645190910981790847725229390092349912097040169781060124443331879653908828296747794829965263276404578604154157720722336755505392504007116260642077033706538178634909060443847440169668861217424908845414138124945046472922549880333354765090623059927636370775692067542486650197686914053346633757329142497227187807708043795058020148251972136184814310561209464613522230785830909671467695628832044201757435936438582638854879980507541446187218511628889466938791560182909359504735326259421522602209643279103096707682492288635467534560797318349796626176935363799757028383339188111688480358335349775960184384506928066007721483634395835395981424704535065676372163361769111720784798760677275322707199955389130273163550496929908352012421341541469526691231516361926153550586402939478648647255942360713225586023381434409511946487259920732123388356494328649248113116656846476160363726021134251556009350848167451854267721764633234080011093886439465480161255946205247468946964200027632812978444750856057075772596502698609819386913656756099016664456144588241581495934491564803813361581748037658622585513800107602298046299175300539502309727373416500726177223737689655927659646564647129102230221666414616823220647787911638552495091899296260822554516729023275348489569524249263949294490271248016870099109146358994194259793822792745201944947113925658256743357326796547844032352093910025322739083309041184841717613464664664374773891774779298458548842262186386424705658646271655351586777887026226939784184794449059782090327078561515525248311002121343305194930652708232420711406868312715565895246139592413589880648293877564960587208736912871250919355067752635498136806523524803402659976681497566210078267921297089783353060326748228233112091850286816035121977226120075071080823163375465820631252531960015023115616656716926028352871867639345693339919865414588307278888882762824969238452795248991088332820387281772020634118915583984893527107605721274379311314934259133361341414530114352010870746056756705983354475121775769750378105596682390615303356268951213786353532700733830452078783946972148490121868106363079406198636955541122940560567279922067569763806832353435940278481504891630766254321312614964630327149561699053057353195558460367973832525241030870691943365472664117151400982703938879477804800256667110140318520054649997452335439112484793137862836720761587565340759588056274166596393283197303828776748850570670294204203376318539936815892538083754530602167688412963458891027727787689207547569978738946031252935327565832766161701122829628894601128934781721614359329401799783584010058115863278625856980476943621903153787328581649666919896440920712624113417927093299222207376529009345269463053718887157950875918192234497296909731863786059219957376283587821098755710693839690856420097608360970323850952031780398332926596591908899376687651980144416073383593130909801322496902255516758980164463170111545551295191546743728999054558804805700960980473119199744391934419368311842838341044645825216164572139803510406008864729120077909370810940765273292816928855318694212873233101223595997988514961263526680997349742867383954117258466720379125871566884670077626071442544511552544462321252537828498087776856800923051676107973852705968867529316874570244961500934654844843668512114333205065371361412925612526400767287556209890071108434492830719792106517761780555275634504414549595106265944516183315807827501508424551322686009639252656585179769176166191888267449577334661839116757507196470443701182858766258817043195594662107447966531190850127004111700956567265223878253342905379477351799318661174954916361125867616208868450056481409290721353945517253132183249758284654833513646802626672736187685763093294530079714810094859282973346011950864434713584994589524872761431452085360587348970224287600889233557529530663751116549822160402069581059298931481566178161376337089511041775476174053798343335349611007850641054152863855010048112767913623883932959700824893167694103320695325852974632857231322734136269014620972475035257335462173909344245061345615275143330850884301100668633256058258186251496286522560088147290993372478195675754917105677935899154442420714393723561107513638691909786544270149149270240956171770643144341881991891028097507225404784082182635305072238982967946975020988616034533342995696967984904538536682770144243466036365656509708831147845642585129216391530311733180335530469938071523578154610534331720556258010808677523384427046777963146105041824260791450049715726333625670483156951322574329921037460577696492577540224590304690420056056748864700855255599674171869526010600516453393947143855836378939432015900578607191350753614604595275712277575064646362142673521081783206803300363901502616161981031001383686909837940124612062784130036925415587638223599909299905976294923504848051333585933684059587958833270939368468657598710874664481776624469168672492214077153587741038824464224896328130097229565099332917985601768431796136391345287588547190842619465774808786760449630393436867822599232785444463717216098189441855419164223059325107261768056050536520574110668173469601655195068613638293745092364451167178860666240376983311428335321885416764311841392918178044273016604580837580817413962085753237105225420907923309198756246002664027426202294539952615595410411968628619933292086714124606361504561773687539622158253771541126296745693832486589468751552928014175509070302452247125346050830043287183526361818216264224793208016612229325314565856369113103665451684141757001123107132606003206260255092372160651681606462400681357081511340255884746221115569235281385717439429528087640743754743244404818936684358337843617555945413277715879906849279692759546618000736848724150227695324811037168779061236988110418879456491988944159193291983321124484610676987126362094016155525659538262499839173359436928210812574229855191219508811292351086328647614202730889389734199497677571752395716492926015721640779721726156866820969797093986211566513642022875692101637792964248101162121734725916396557608314784981697162568856072405877681411832671535516591236181082607135497863197909415620890511113476519619610126431212955749584241170101749947512148190211549056552308856002733796433882053955385251125626241849298845889006792995519124074694903337844965735798493546348234609652086742595089398732631995396816310664043063828604224839718080387811870158140118036199550595891691287799030353599988719474332069168685616419242656619927980829786804927457888041575046990152212925585095769059824424169888899462293344759963773454567802688317094391915717592782820482005253221303401327119427275379028880902113033771958825981666496830899140695898149386438952974183145319965855721880217122854426319731239567575754399450085551352548808690310561911210038617220220248322830278137525244777508334390464989799390896569691668497594434259383895756095911651133362779216414825471097547388457434282847789564870493084554871852176282744564625494933211382303706115498161234548969555204681609272242157340629191770888684979835920744316891313694737026107471451479930269843959667685541530994583963865624583601527415814298893148079596084900878129877912747518085164386326546431580361843284355377273324672421632707106032761146050990179415158910984118325742029033695698247110749743463863367269837932552450669153330648822950924843075751208718050213936305051310378118263636858408764173991085797189911673601284253461220316791710104112913708737413859102163235960634107535127818147256071092164055970101728701714312666554650153646990023477798791774724838885468802297316179291017233667182800366798443905603150639854414791264687062774067799466999934995367595712348365313691834064753019528411146085010839287687320016048415725553395136576516190676582165008154603349730253771084612461209159364742139899408899418745930200413494284350961254016882602717404383936406578987306908020636895084083047451127359634602285376468859778630582404377225768857090059571426651046326148560770705496605677006990139506928927549819993216950478749652477495086588307009710753244351197240721049058541297689294906233054316181999605147173862615489827063216696223568065618528773878881389389897051122930251695630785825056169523841371179894889370469080851774150513098926221219763150795791810001380478110520973491101896355082030699270945278409542679825192093037884410679831676906511035142996788123219090736863981893787266293212550127249762931883260806021183354681105510667896908048733641863308967257066115172951972618853480666258135278105403229293756922447957516170284876337572022589784805000249203719229035363405059154132336233170679482835129848790000435430312298211329876012975129430522165331001266394375420457991616514911407429304892846847148790256376688202838752570890018055796603032332757634990916025047490801218365674318175082934220522852593116860347955523464414114830678015403545227195043445668484778280632478129925713286365165193024053718204296114888781290112399230972545057346519700225256972204477574592435148060695301809950393115606522308732678463836684909006713904338907403749013207270090141726414364961136719735486588196719100050995782523516819838304691695935311206556141027003422857760374984041354343759886288829015031415169341634685558848373296548590039879417308165115055278088616092675867514445189811437833629738142491567631976474296970137343329965486404982982917636865214768022488480927118775353365747189417592034535289232945991806113852577196237307709963587011799669190433189909704460526144791370580855212705424638660322904820285073072864270785161403077361706451942292986260598782352804681390737025205678128986728132819940964948774862070353747595693877827806542163996301292898317709436947036099822070215834106419481384909259182304443938513213928356749049461038256376012542000488480833977517904542081831899621583958364191603176569088355940111251705252454775640507500678820861414727632145910485583328977777205530570483398537388161837555298389072609006587567040313203742498666760161767969126112554220143737384890747607146815299867126698009437458009026048656004572807109796692690821324870581337905663013813538457084167109471076018322368324982166432358490094982613512671851349146400579576812505830310127920023706115352328954269686086022197536363232036804929917609402205359862192580731904966166457135692686317073480468573809870618396585375905511643164751546002254989377504109809880778531310903867225358185015134851358495003013872599535605407839171328922186698367935089065656757744404881821690159067566053104345840063623382775703356628604394538312083668224072455241606701997220006691464472737883791869847098569279467786913196860968988909234393362678197281846202681657615395170348515541490202620574928140661055019435417463501641626003249517925515843848779901762111157340263448760103707424796683830077606242368707562766681294213795458825593195361495518302482833404270424250914638019731343429325050376031693579402083457320625441443939303798327899221694900243164994202929183903437622503928957451718954070870603972138924922881037971159804197558291085875128767864729856582264820518840122903967202357231430929899790495486146171138529958937113957052073787648018891724777988999906099297222305507254884355779251071912154033875928380871972899395208873537883174501444881627036416393194011513172622853581147052210551108450976333756168180484287467893202985383113725638479693224720201436220874302090013981804976135058305827589707137443157352362880200139773087370599299092840125960846089085092345985545034228446381630015710359195434433980560615446392759038238780147381847398843293301031128088432670478969825433112754055970400924763063566770216469925143371065781479790698021161531064296049079210728687659638747737230098105948860377137407735984806503233704804276971263365986715342370558171756194918080099080078112469921783077799139807474423588792634242624263029935351015227050634384105986760559567537774591013860632770147191979532533055580274400421812344076434699986614466480322587617587863281672857098901615333518525299695204082647510325192470194173486059412666717855775467645560127889332425993984539036430516360440476394890973096730340583661819345987662654677502220238507468011581998761886632645739126354474285996465534454439698613615777391450454482158677410409339825676469409919198935691187198388645272553479300404881940690876200468389570907749081263997727105626761794893966845258996735987783143379057432946965580780559191573793119070480689925699958089844821709074892796568057480374006156736672853964993337131275557820483622361044724394623433799590491046628413268903170284546170498356046328335159470850429984308863468636908318126201265825731124223585586929246213086124378472277712351136993966945115825362052296195856939030284923862212427898196030851088926829827085642187569341883277934460302316389810032466804903526424060520624781098497088113897434350969796192938029694149010443648859542248897971301350951164184047419874892048190017401333923120414192318775979389173908785573504292411130104302221440791926719210327159468212267340249569159192274314844804974430354842615462012762409628152656078210011498548472749233078671451766021677712311616664754068940829646995528865181898793108129863781132862095234357661093434687570286236466027112338074278984367020489882925299334261587096312673309256233108052625872670624300482363066355105209291721523735852390786177279302899978616856381442434603533316699349957716864647344354144582540715287498902239690642774096932936355301503924134350317976377807288233604334691899856536186279188728990950182938944290090898122114896942328049304269599683978430978790374435509780423773560630607133977788585269836386631855574106819003217674581360100468455960661651490320391847319282159924328297097982586411554311306965854462803740410587131521586862962491579724121322948882468698505573498581279495862878394894929574550185356933682187750229154381107566014866188903113903648604903599379092775415177328422718169808450330325037112584150435227797494507423744574374040101755355548075592316814291172565691344557117412760397089758568666779422306879514613351294524762865476107475443307451753049328267226919314148942712822111862357701193815291966247289369466554265928210058177573164900152882777081596157355783948317682564041148154323219007913818317897540486086174294484234451342748628949473003353480338170791994106961164925133225071958132694218262463210042660150884058898204123130541377853683936670273193813640600336592421993925064321379946216594677213590028230735357655295230283883407833217044591881524171649056477326643030955037375189127785424667675122551882747442790661725052550188121779514528532064691663305482327564295941915622229150854307572572276871585047671822210189986421060578274386163855958982094953636229146608743124913635582639413851455261436301659146533614527616906753418364852394869070977750351340638458494896827031765864486116823314915633564425551872723301225201518791884933681765763271987810270142347433324689780499258445159510436562539239308847017523510219505581947858795808378912223729653741750673581825818455672688344394907193765439376091730316303181196406763280343035273653830913630837051097206954439611282959858331374380738161492050057810844280259181189724566926837127759646180012482493735064913442338730105014138896831670044793818190286338564996783704045040479027945953463335804769247788688675619990219647934220543889781168646702898382984893752002990742492859974885847638666140289984614562492225511647151993346629693948739988175348545177094280198241226658401531983712232173586587329846042356588458360373640541295748168338372950978929441526033705628101902277465821581755397474432382580905832697732068260272881147348174949944716648477271243696803664919369313828110096080085493891170455776009600712015035726134948940784270350842945452588209655170388665672492629541369421774333181815516314006291621861505198322894962454211968756099353712213238446370340854529544541639028737684334752167071165538954554041364834167824444002356212689496989109316911480149143706124632675302443052951260978226484299819680962611954395842208805419207167994376241631043717102041767702912871670736467907551124063425584023069116201169590785618628707679710093302482851059769818427060591162889537531403319210016305922606182915143849527885133973517796521763532254740790491241159397026597507842007678099277899631655566567471196967445692152409831160173442608424940662433850357547512788183031602646291066986141502259233173589183996388652259589592547926007584807555895826690150710775640168147380047396972059487203307966723961212687570985843595280186895975391011317224531020340627710184737746318884123585839163659131964129878055429013717960663318188528476549443716565067591092006314504602601762504737772548649105146537688666171062629019229435338297495875920129095973131148692479200028538357260319876674411396294215565842773031922221532673846406556570452655821822789447832010188758074724007826777582763379644182858433772097805697167248804711401631268923528598051657576958768567891991538806288430440931316464281699253550477953267157294520807918984096975870642491180202102164476126577795905977095742206777384271595199628905046426193701808862104325515637910507979512959183437584437386667746928515218079115757391240605239873586660588804794704784294775263746829952168912402757712684607001508475247588318063515556550072723059804213141675244883993328554358679290151880390718457052908079054488848143931653615680191499910782420224565381175006933746860680990798726639667946189724782954310445579923679121494251008788504294217704551250121958726654309726546113322829353799978348991628650752253298679775078455629271103062864222883346018589062950490858380007655155259897437136706188897347341402453992895121627228717818585681918360616253035424364818183993985082426098157751326500229489506833763900571369658679153376607325542522911710433660603917694672199259821506036794703479054633773171788166739094829769996487414149183485384165484411234710336688722661647236357213227410439333351626181912127803588541279238473204742771288793165692959579364647786646481516794583157843613060415409443998142537386319605750868135493336981314469586003013672192843742116894864318764423892704547846554441874506189502599819988116035789099183252571868986560530764829254679288145293975967077867608188372986453841542700183686656420016588853601673302989561144006859623882242362939215998258040757613645556957811541199023531928221416114408223426099904737879238496677306674431533434249904382961988824420589973638570929972271165132633633387811068770006134553084007551054252676957024646806355947762899758381760811986211260437873965838934852569444430407282993721195891363662345316669854663694090644118273898853890464529779435768932651510335474388213284640017192999073206942044641074825949394097240213735984802220050460258804028510735258096813291086214916802059226875373575656655324855407245110025012453501366255041009330633107547626887664902932992648614663223631575792204358001454149157214406342250245057482972328899736214983898658683375858212187451493844837601702455690373455517077468770312867571762969995654902325853686077393854202223337704761227528117095106201203054436258538042398878052921855454653198061403862820252602869529933043707227362041412744418591206140099018769872006992250708441834792059292902624132514320608908525279361047943697991350990543169028806591010755017320136571945701707153220781850760790322290894147140639252336209991486952056155131913147723387520376018899602853646176492329053412011754225294201911563348501701478364561210209258739008957929372831921368124236594766728587030194419073318083638677336712707737692260439985268756419134683292175894010773311025010269977553265019982373592202021125322659807429852024280226032034386751263157605048562640978230605712646976260751777586456864725591081615710920036601389813753943426425783601501153011140975447167540397810877732099416801723577441015927560013237834895212192720875466531185823996786541158071565496691040551279983686482049977643168900280432331000474377439203606522262418360969971851311565695560801547749021111875256911154577491229775665293774398039368368338092290815531796019572196335115768793829630685154834706756062849248134344190427154020975919189094822143611579152954602505853076016734721902409927656654940193915464467277311357170130948955772515291996375331743888150373754102105883604870853831101728425875142767460499947997920799851818521607555141979620921665725179118504892967271276216593089128456026510024952328651954312149414408458331327386635309519929053805644104784501716192135957429892412284727723495977461273500394232322824327962785762112799704158570204330449047378830396916061416163086298197512075353392932730995764043523605875681414962622467826507797698094380981972468845617585569048414746442155841069008081211307726669061364636788314162660837223303650585544546792590957054439348370986504543769989946145500198137320003823637180279079515509931652853973792442766973158489422564657424821716055929001295336871891509446684995279975276670940373178489037326483297331244921110995080362659057617686106881141147927924311761842762801689051529354327515275757825653476406640547536873744494376423437242428360758940878357214830096753686211077581333639274974642832366464682417234752049097552943876733078175317676430522628325148281137255126488106741711661722330183095718626913111466988294321067293823320735798527515476899399487122390679532380552693001212902127977913139692520747109284305907641361131591396918327177099756534459799767767832588621865963146120894210992422707914887301297860159404045741562824815830967998787735144678607741447139275269504893664093101085652306931090954717126023871447164306782494504409330339997525256203997347711051400487256883905631094758539263188605275929446019962785580311524573849586662483402919293799525401883469709509262418243334035679269504210692864860069306965613196178138242539385098744064469078703032636624459989745962319955117249244784778019360384074569724074894531051534652090978507308219679332028271914313099559305525137887106252209224495597783551808968493099180580554914748704168370844160299991972832621497516159800124115137114748344799674093084249111651797334617790188546540575272903471408649451867014028707443574695377572861065973958882289563523091971997824999978407736056860790717465556176390674412833994569123760355593118372581296962652566625403489612691905667699498291783356903966882912606891808873760179021001644319198562784363376106579880428111004359888420439085304117787177776077402815559306821507200536941172549517841452577879493100374626673800650746920375541125840706120687427757980265187270113529711824799946315514580186485134910437683653092869783050084389242839772142652082459218376322029081842816642202221537088886412902286619558813989406247715049489299156347730796003110198218077152853672125283338667837478483431941928366556385306550573768289696260843704399464421198287985704691622361747324500809484568916476665348317128000205636977645317673623763768683553180435473607514777328304390050407934935651348385108427840072412370931827301822592356315924756817088846108035621775786963109804535014997935500508881273220222841533879725924889899823945997432864226875826894437821896437035026950430377110610110253786098461373267016302522114945374968753371830037896416775217914530077124033212557935152146885042951950408857598343692135766110349036957167331497433013131857481881114965526629867828214597899125477049931044491081724934116269125471853631084682956253384499427166534194853566850865437153357687562609872989696037037522343720574645226189472798072550604637026405133136197764008563218375607666453333495641895116555648745938413790285763753000015718794278969691361196777303327772545209176033502248425037857030394364000383985085149414448405199858183323533386901696868065331799529100040665073148520711640173537281715475533092253397536215769739586497631556924953296188112710181305911490279055294638167654984434821906822562282710310132724759188845858816508850464689169867929032566140681791885511367173659851804417643382636768197477959534308789681910664989220472485785295259138998130214213016440414481231317302927677556496352108414690036116966346758065481440521487801728894543490707305692319664151359773976605159740710785563665771843055833934386985101943757617896140096539438590977158315000476764469484213120811793605713706061562213579920098930426697447799119842532455832547290646272196743280187268645602061633828694927107452718314916480984197199610023109400605117555253924426104605501683479676475667050631426036359680787820348371817233679844337227285758674708919681461557801763431443743280326765273843439736844823757632165741256459331279636216825793122356067249254319447544272689679570273196647916943619959766561273078682263103968318509641008417655055310123709457039435118939617634168479399729340393215860556365999837632076438669436118367152771324469764109602456127482372181028760114907393314852109133905294823234952419975221739138988483499037932362785423446190463043194520570728617969829144711450166879751606033180163843001219847783977749093469989010204587681554268717194386649901765508853113633036377178402833493551646993916318874067483892491682191955019276775909471307444738492094581953946181529182740812728044463880610866701178813866873748859582758936915998734064552560514474340370099922592161462694521765620030178548254556098355873124782227073404718719164179089591542608063524330483554034079310767018540868464449769461679301080349652655085069585752043222390823836248883689867582766675534559170549840998166210048181464165244315147857117374614541175731095796820498259177751830732164245709744433593084756787853711712677548798225123499342998663583246615320690821873855412719419563986455621855994476106957367125610349209574360671032907169044619109056117152127556626538880556932499098100818306941114190544329560540567277001157182733800711692575341700760960766051879987101111594372982059853560052649381199895837686406694596455079683877010372488329861454623402326350499795853956321904760373409517922866789819021428306937473814750195664482709147404475045296740308299221950306069700552039158786121743604118921157760185490350068360248639810388687819934046659076735076164069508838689616258687580724929633476163484063623757821026188527473241793912862079749167579907437020296729396491608138039297750689106421868480838367243169998770659535370161334510459341889617231763718599356266201577996168016215619461382483865105435101208676757464412062509312417226273856107470251370002867550545094407261791965682494695243309390441601246658282087327029840065402414005595830199220867095257785563375905325103202154077531562037074493744945795191362808963944317583717974369266575252433800266063581061263003932841832643049573868648371104392554270323846137335801680615135498969889758364835464097312986941623553170389368928740982888874682759425032418052330587653968806218001675450232621511257139676564197225250402612815662167781974719089080641068879080282597670262021502801951593239275791160413132229752641792457267738993997121824268937518158423225047733948714315839823442498846775871369115131351772699454742697288237971070031362444756824922638889245562048474039855920794768842440367654671434026752722414966936458619489288843364146954550176696541566017390185262927064720095966216743300617058956247629847746034855934546405998217644151982348473794154929782872843896684290025908825785053920703952084246101473109199390269735493192554118970347479723639688087325801396494374585633728034022452992442706816895573098075745280973765474859335317412184264483555092206690041152308846226218789767058727534652132586297506104031207355637232147088483605276507860188815847190765874650720930652060382270359120728592809488650199398414472888907504280420085554078357778363766670842666501750056424451025070722296351915610651483410869808161518781363480219632755999445369296871918688617128953732520259922066161362012309594589324189653605252904430667308948045676564576368611874954518161979356170308529163121237779748527302566281120788805259024413135478725111745123456370522729928702760057472519320436868890447075749838679630177624196521054868587295348480915721416345306492728058537982078173451751861274285231569035109388344233165309291326489075154246875321419966071583655326055156427024676617757638512421004869118838623686039427753927044886853847460622356091575358650964425837369917475778673802831864749312806696701055331058106987760693006898857037721203042741865214220229843593397154140914876818198498518353260064847741323678168625079078569164669110070769261659442103163697408474488548782479382003727462345675821150620719330240985283210860841544656534364473524151349747261270616648304179493189824678313427256786888443871265344460067120863965717526864504383284102103570060137425401775724455745873248771036493031289018103206095316303894562725988009049925012504795952041675989216871073180804139643772457928296591876498853112593606944514957430036297491169033236275039032543227029726513653751845155535013992845564416654994361081478230345007744967302043000376689162973635167755422756961989499033637490975858808261324241645225881333242544270933987674720634953786543847542233024462066794900343532926336167583737574075838363457271392871546893202301054760238862467844889561622535221556666497161660493746416953815309532965537470826523701363060920470742163212056963554144995394949622523541374714353737969401422198854107280925756698084522274283360629033666620644527805545736286334583143602098161186483672030885733705890494438745186147979820739110427656007084084305617061895104276290849728457725241635385985336404492457133019602262335420068086080071526353342174387566805960816114670805048226933560465702652977333266948953308844062126656443395870214127200320483981753260494824247817675184557266736494693305915158669095844692379398667044866294911913469044528735831407972448514307275093413610873138278080384718877153511792133900816342113210832974738348094242210729487557908759873582290918769863897923346365370808304098724812827838361180142420431329728699140238205584545559168665962388425350988554840774723765390812595695550609116369486731559233600485097066255461318175408493879559574242214749045911567774438013346059965279842147949703888623024149138410466342896221458966295365737322359100356758928336898281940408492965256424222292695524573237327093009102319932181989634610069463037105499559611578491672059433648159488262648414753231631417850944239344931672179317666797404797253992177101748928394089331809008189720661771463100899585575554376966978348958655840597028074153930357854361400923268252704409455426146571901654593333660669917773244739405084928106657479922639397917426674974408156107700350984162074902840786935976882478440530600203498622063693705393552277954566225432046524981511029916640880207533082034328929314794870598002552064325772731672090199487956477687674435174243470212446289893979052586991347250371956492625949648473204262596255519509802341347570524647927784536663651965505580253139530462392629402946241043142945132528908910146177151279216771049640141959521214450981175031411367956717936499944507807787414015391395683918921619668619906297703796363373338046472912470881920285011767784606531678511484274880369210207798158366391002642956899218892252947104863721758559245919022131573145017104442657218737509465754034299763602356087937073915798288347490207705411967584757276969497171710878396984279859381254434422232145014400391355894952227894478511083200620371647139879270998090853424629352938934411756171881810930474951078481372914747857706549195603163614120527638899854089256689932265110424365589090119904680251397651737897042737466261420093060012686293610830042172379814631811347297272314427572392139134451064607618926908761169838632999196525368485040403223459337237452125253339432944796846621923337538340496808248207821146766138572700706079984099282057960884464183519721730447737437116126198954657444863026008472450677422231140447965679737126616329099985155891714718659442241323389398326552512366605732662644550526652180192938610444106112567116861578295043165433461563213496359578497196441383860655057748144767583007830052642184675798361978364774178576773124537318581434232029478496163151239728033093165160436589675901973449867211198715181907149813959087112278744906151178392691678550687787744031036371769522989974505889522949250754386543309470969692321395786075645793897221599618634132328572020553258685190394496455671596733501618694855675000026794255238523637592788654208375362552889904590996710161211396539743779378077596668474275952000603619184863305608397156578221269682144164981039163255069350028885001572890139444341896766879095082732164662009095042692633470428914174016274307190619084137260199175574846889764522210998026717385071146448615839795810524602217091497827170001397735481748724502630824496375844958670239580015300437309874951792487166103249071319810016314529179985009026038157392470931975195188614350519354924188170653453097007694565021423330956875800588946408659986761405231820527297451431650769689931543537786142425898459904823760963468398434399581041504173878350353511428397340133502345941683638397688630811675106646429073831976108968939052255549570991903159921649148691242450224031476832684278964169431080166398434169575097402565244186590601785146685573953062342288950106428582557068885677040382160378689133930841851127339286151005226766154749988829889172694926489757525511809367032528097157056423826135769237982940415930886977499327425260660470930972630950709075111091725592190665611005127367331002309965682425796497783274421595672455546583586244507335985839255568936680440619903248443695897640645797950268294550441668305147595274797301638570887861169545511486151910983832941115852238631227582423310279425324106384234804946102103340476533036853036514725979038037300719713041710083937749323779621298520879991463120734640797132011838185780730095630450994857728707711607010159091477317579543162151351909405721674322467685353707075212672213417175774231797211051873695140991392311518074224493601960762828953003703991456360839577850573457921968489342300353328456576156532793522537291948576622120873307712417269619557060201540092633663364026476188727535505261156176739519250624057869744172626761516869575454406589016565837981513160205564748240669744552151809082140144684548914966367872353161281466090820777148207051356832454815243209301950123671764762356219488736452830334236145182861073508477724038429123214287815547749974945972416807507715231171869768505211687306350312486186415869676566317996747922614220798419349129136397332499952400439930463747995281762302443514850268539482160449030646207395386866541705163641239274231443872849761242768123649913672409580629578676679126549323582888625345992947732386102741646628136423323176442575533737963713787592953448217808476568251622210521643664091979640092412308407725552109718323546156237489644230210154179137184780380496452771222311228216778868769180452530648771942067170118346647566247093538763779206024832407563808059671079701289032260943599142941685302207936118292714141384787025519938477741071589437303939548244174767799549562086478616859690689733809790282630160357424567200845346977357065670079505617762164047941421577266406385618991979320284054764659665245241111683766768730615039730855137980419004447926174129639417443743799461744015873727378178753492536040092777344059509412864858598234697208539571471717637257592821184949690197959626149471183114411765387856474787054402552819778904346699272002424020201866531062418641170423763905232581102436234561237292059296654139089725252760957193157645562527395247551485394389815191735052304119323701360322264215512407028787526049883869930595537513778147143868097552390179352924045825502810520832698306558785535168227111298620687804755957761253686179898842911541473193924795907741146787111058351919759085020370179085666336128416595639078061838676463954977993373078013290347114492638860601296949268710191840017002923710694764670515453329549798351298097241246421368026275860599418509927357275635895590996439795553761151049110786015645046094022314927162653086398815800267336376870469623987854380920562094256728445621764321735277848265093541404101552818566907024222662297818921236694021701202571619982122785447526445397131668742925812177677285169799183979460848140141600593279748031494503961359053738196061902841054480173347158834329083216921770042564908751088868874795103478482486677006037073058902210971711836445210729103384865065872375329261362969890596177832223880582068802332983991971541720175437633416479302813735062148971979600037138685955457258821657765029940953346039419389424863434408863740628318553552135423511270927629745607302166237301156723192235438044506979195386195601707016032917422597903347113463481377002539301670613036714867213579310549460726152811208484925511150324863551158206628277418538045708314290405032684443137720516059018971617563628464023210947610753330717054689008982106718135985285345155973084154301018784750155913626476888080479431135791933477765189055542130597965808219284118291036883494538817814265548819995823704935286418076779690996248431513033250916362150241549090465827333329711937770195355338739596358058241433665892836296237808424070344645384820326583162117078074576447853359081226944021536088563059483863431551034250275167121379720599892962837162464818739576457619399937483016213056813826109301785495851602146886456188542340811434707611079364808858800366511971247116310115182888601825616251585547284875216763760393990796194031083950924274037143950856833583621831374750262573542113457841668287839282692255871120492286465496141271578740485153510546433228877060024171015764865261362268507073561574984198782696670753957590741886785958302143459214141210368871645165666701087412870715581013657420703279662314657833440338928871379462573692821007776788489491831609746564561365675297473912257805445936174101443587077304394046642832541759432405614559603655595288555928380001802559143448723769652404565030415893829081517859541399286414327038660892818070586004886708287703325424471533799762085729814022161342140113355042066277284470746006064189894676928421977711303848013955992899162792837337584038457079673072180802335935380188737749882839421556190069897841079323039868776086628393112050577467122841115571632647186953712438666221082471182710482691405546924855588167215859074546938625361949803916654668129838145442182069978312573608259004108434742994399662356878757251657093525628872531045160275583323057175891595501168472822700484056966943155156510280715781724094456328013611549697185802139410400661485223317701747534732381867650263757585447631112746034146044920048258866215546753301466775775742938563643242352031695536852443422679938278007007957574930166740660126341995332361871938356280005880595805536470503135174178457287899745557956449113504922339115381022560002190039826615123824246238967981677208033319256706502710429572941212419539618235352921306006480126249726927955285211061722374444435160364671944752208163831262633396942435071839857611158103931452156726771491735232286803071083010037774589785743128298600463134537800010969312925176873072816802287070837619638819978763325106059077601965853356028462609691994207583581415908129339389818663559491097448091414639236878165762521740677713113003854715707326271639697306889329168947554652965693927580389053318633538627931560721497989015977215610857971222542897640859529893390548454519802634897383114643228199788506042887021745840049221602948058422764774489638215301117348830196341606978997365742025513092239899259131988833682789759851052567272512388872609563378201992156328295978674292495021969027692211866812133123822223840672870876851199081157067838409930611535583288129846625460889066537415030773686420461564345121736120457335999088841404723472126392001885849719447215201930955345818844551062951902505967476125845741526446118946688791698310034170483332626946502837522609159968044236638833029956496552032000085029964079668882665818464049333654385229081516320355202317916892242113340747759610018822421094408429721271494883766987639192355670379172086345678969422270087986925739452556809454510457819098987202324219307605302962584553341729610550743100698467993214465008569707907844174700339278223039853332200466928153297876847703950956932462561392319816147343313009705224981998740575699293888611766919385448809540500270895906671125521889030311220643669097354634769641858044583357616516784995007123139397200729139198548937929530536937659249115022776330232999074398227612689410779524217136814440530812743673939398869476826592475789139595902483377604496276488292297812165668737394619430466612357964449615846786173144303574807087665181032842079038826973460355719098996710504182000484151057949219787529112313560266287260561144396793884572023218479189973395008854884681287665835603990935271338244807197164228325434237755060133858969236508847868317860710835343334550852223101400312915893282605370643659319472313332413781941166166853692064537992656807390702548901028181119617109189669297670399737708270071408885595961313021168839280841235673221789152974197596298540694172690170497948860193053399880659932593506028408753224181347193566359445079801614630410977129889254682053547422881279461116754639729919705465440379997920786390320367081657055912213236122092988064486994319360884492665534392774764251242896436289319175016721403765121444230545154379382783951001279647150021866869827013686732527256584834930084164513070549580022063506006665130593513864786910367705449102106307692776124206394923067017710644440358411631441816189028169800999416879630681096165412200529355722217649339274980184032372516009848544653076736901082705884265552729173354660560895731698997187003226539483903681013319654492748376487419480599120572322459190945567650414767150316679263353578696546369176468494110855223462763428148561939717116863409910244288481854936500779749487814427177407725162918080365543750624136326573604991747586634501041676751534165353027908946427725611789117065480758647768586603081513457429902356434545775625608208695779715019703950565977994226135178260697256058544547508973707711246731766707504051793716312936142600615522459169746622128575719658127461005771624143902301784953811141034827079005331643706999484833435304559566503085126003794477869691352115953812286187044717810072814307734528842846029812067757872832597220940881275262281442800399189011059018281061229725487295999762575746811496696178070706923785511706880882574976028400790523270504307491419061641739225603352001738276336847015912459348898702787292932845544808082111621197990335584205619202053320647044527524070362043618627304459204047429326916071975296819332386010572862695796750663831252467395383310424416195258442679558012090697297834507645816621413755375271396365302647648361763019885025108232698720025129204135300858389327368944011382354220168473177576825828005558135685612124839738305534450896988456401599005702806600408825569366479952725245926207073151818982074155465315832812265763427532331138250585721361426949340090294271800380398472908360879149613348682059645329094346016964326275999842898898210313434500079018801193551298556075933815304443381037355025446695858544017811802245983429143255553625357518005847622744454759524191907952713163131280456718099760021800929602667809855509188687486003849597138511206871663657644977633122480539314236211071989852508378466493740823880769684083184246029728069824768782827584633665020982560998676831129326994901171716577726926077781351785693168388359962836444148448570641420816460664073697204674767750183410689457702701836117184827573451266804637730434164161393020513216263108321043233450918835080140600409510118068909200791782415020293267145873679304945032001395537161392159644956571026368997599740449715391009992306807826258343594194124034706182816580642088018289044055210566280179126311352811800344649715021081769518760296027655246033385655465703610021175630554083517165644055625315172486250093172606041835363072056850682548405696372327862648640920905865178736627346978224461391996120340831247588285876752873570182390106478241169629118147478453292914989199414086462054349299646299135531413085241156702041224783057436585696084298363450982728680337719624798580035840560466820819067122019519171317780384260027346376954093416703006265624340529524527968527034224735085872080813273864673705831644815083904223449503985589649419607581325555319923726171790605540137504619320550353381495008472537417008197358210383707551067878214654776164666056834288163052494379052095559150103775347201753860809823816147192094099176693791143210192551565100420222953842264917180928530353527389337221371314305486386499756454129628872442732575395140736914394281024100321134333338113177020725067889432735737769870026005408645404258600517952583083053745804656458607073469131967499340254966979714467562711009619863778801236719883729651367683382651869324805303426104246052160578286111153388377141398992040658812320769333483389493637629109182128593420455866893113867763381266764092142954192541722478308052607645636757690757477244995231003637925104743139145067509234870489820131595236255347223062936208227502744946045987108457756618797901047955675381018397897516530420916780774703566685084660111818958987399645225325646639040330814167711926008676147983531506490029733684917805254840140271267906669017189086495449895111839751339491564883620200309274570259181690183337699855650247923216964969557328723483394322942841589213282131254923112708686633399240119014858239240011597558089482441047709652791520782246558733742584512652948989955358986326137662222969967814668673879121433241201968946837278534578114362722392354456259314524186956115036939541799714179407898497691230497709715170056268115324383686596273422453348136523044248155925752435942350163875523547562032453954748058309072197860011916860497777303082489394447702323212066085679588616098242928118331049649000703889329503215272932742265801538108857240496999689600808360296165472499697843031687297650660956978689919041797106162197776627941590179459448194662129116408550334067743974763745241708915709501874477408703967474721555434194556108938402910220425067342604802883835400882863380187820172688915955344552028663350276584194422898339585099573176412950834031767005718069548223484864602209325506114427211511775724128735158859911452782746387397061436924633598883330634806224363321302352567503524601897959481339825156268574865284175805565089947021726506462181369207199960263900972821628453554820097978973792967506770624960418980141358470516476745032790293139878544687811424003119391039262315955417287484668580060308626200060680498010661145557045072819807883692829751347434855983149500693456389685668279545662887327915696082876759801585064694532808767282257773141529888149196179719169945715373859245159124603253690085511696303430943529222890016169228724762453091623206792067501784707799525606383683653553669099881969653898967437212301499516577605212073016943017443116738643653826740635179173647240178247074301671497127566288473077516778240212192914518130453417000301933471435794095101339673435856843685912996937032874714824293145694944813502507079730776950918049075766939013578034642447245267511235845958783714971028926785302473693105160112386145551960651517412153560003404898396870447341497239851296814626768757575578356159329207995184876960621731561398241613733156505312086363947099637577900562425963075544998734150330571367922598110448491867541813868444410664718727146061607717946547846841348378814365074176981642343637183181542600665023219135768927904365221238288294571813489798349896874290684890944163270938655844510844583241452957731922310474568187227501897745996712188697783221804897342470016954088972738715543775406330241918777128738843179516807315498230674643805166152733313758188908063351939034657195306611478921275385812031062613591720029618067279403718518444322046821703793076887310287272484531036850677258371351805352163391755907253752366713361968242611787640424126622069605973093053889233504798421343767900961503155654112304444092990337486587595955958046354715619956443594699923942685411654096777959540549510009520837624663985390212593664727680442423939172958886249895223303440138650367694533030516737323708440691398003195854629256471148509321570859759662420722540410467359064915689903386362714815635305697146100316852852382104880236486614375732494985769759735880402737056211683190868795789472689222756774761514332789020195980484955763232009300147245510944489154430305839051977208771297731161987926287873735578191828754187155923571117179565437477909066800152472008080222236005490189098361186652799073701558247150060087075101069869346456926891755445285192471511639084111666968392499362000602660886611524486577776653911298535750816645282418133363848381925215250335193331397520328203286542553237976513237837209720379602015050625850449847353395764757101701536490977138300350071990420681363758288224380912813702829566463947836408900818416663783132185758300861438574408796476967269378409530839065973539648855700523236611274030038070212901655835087012094374159151533978124123458357338161918256862641743281360699009517014436346677284829284917708170878969582732600492531570429580339199218202077488166035709110177275742766780147612700858490961531839424519219015283358518150162618169561537790015862571540800987919295177313720179181794197114856734645700761184394386102709160833470421721158872680525951470945983474637284404899208089987362635178407449965190706425952093783763098544574114424185674432746494560283927617792754304223762343927457143610456194045170393142905875511798538197896918722029269783675078702435602988504068081318287336299044662120245747132488432653273572697186530171646731330129911231402694418806087251168116199527540040848914317854276641264874322855880544895970053672108263311200090302361928896863967654499587305215612571053377030168477682389518446078083682884305057422646834167441205722002438181281182499802677092454717434741073798188303843841780634115340197085035604009765516675792313609179732338492665243930922881634546594851895360800665019369644296090938716762159119089332522925581475928934268822529346785706603061089178276142911935440169058555089470511859274584476625783103030228232354469690750832315923092549794665677652999884206587350130706924809498069258872791454074560595455811190292896159897463770528295260619954675682942823662991152656969060851841069871191450321511932049061882398137476300991445561156211161802633347245924091473392501677059197919608232787748449529411587003496508747304432180965544391689315434286813812264105788335459875949566211754273266356345652587879713289170164032320684791221664177289128963395699293826360948272605815651149198949832440426848167903558429214698551302776230855357165013904169011342285938299471113166127576226716022712376188440149013772276533715034545745675914679606882933180784044871879168266997057046884832689603938180419888587489939858414562950587560889951458296330075565725009115498738337422452856710953643260595104846538806432335187005047990723494999042162493816465198022401225258906727911009880000606308488210360061585667541842416496555061124866847929879417331005024461152234056078792387844238824773087997504185998500771102502747546771851765648325478991600888122975088560989710829759146366254508541293114260720726069151272302461118731188921036489278037207611399657084623389293218990163763848140418112488547833276087272502222328138130986897461181795360555289763364069991325675842789302216336314475203484937237026420569783490526195472958740182576502656382223561279246623067569538797294706339616345288490513151944093337353173296842078335796234288590590648967950344644498247413690369651737144011006631210888204911272246019032447441080972805672516275668688319512948855169528734571507122650011547921635622470285911773215760884233311752175890739643259619920524766537925197461220736859133315995347057854938107145968668058299320880599663132971146083889112690725091131815849971839279868352558727396682790447391537794305855933216994423628592521529071115758089697867463735505717266269001935633847958575522344441061648395961608879181917420318548705357079591836930218851398452893872711414299113821406579755996035105479789618849154311365495807554875549941789015599933317292758671673919326091235187121849175204367422492138277027514140386551362286393220177961665579173184594640702492651326376253580095892138756951859292493091107234994230838773265625497843854350616579109271178020363265195697741476254616632224632814632520026898267597159465140366358032102767728321790106791892660295143755270922233525119248772506005514158635087036267881350713581348928537952960355729105138400920248309635321453358944953919186016361401119615593539959539405907009466517243897940380615243322938461720413370301732446809670615134800928356016234040998142298321667922950641847294076106689910248712515824402649256012988499058470387337488065175954946582074411863053512678998463492890586551051773978880842807567646169890200323916011596190643739248043090893984994242636386154298134657511282432608201099860211887521970978734013546630195407404025612655308167347271676508041852861801580567453706729758323704793067751588877989823212319803878098655929475705792770569900079107889606220768325999259953955249334100507803147475227843110531098103397976929735132473774865481001003670220813163346972180111328474964605162726007444534156842867676756219245390250645270699872348037890935725813027832730418810711463698659966694302149284153503121484030857495622235254145783077732393236399905705861150619455560575299658692752365274839155256081207657280931748315157939534237454727860006671781707758589974853518344869888106729891971913485158403228938680714900911403457966611708070894416915830009499651207357392165031202646817278454436985684773999959452913563304266149936513989051708894769563352608052821823232529804144029492912676791526544178268366336196384402391935206053805876133131378197951114974518678118697752080544833026714773690270837281621730944859885483430330275306575038485148877293780609745959671479648065315724203068047608400388761392788912750450137042563868095932033740391548551321882081350750200692874233145277598810814798041186305765431166543058553818008019485248383711746034468233942242067564724536826548222039768561556769127944124800399992020443856682731447661867463267780258703562217939215241311529924069520461957971029035053945061349877512014946299371799773157169007298254734187953964124591655785911058133261231140831213154495114001789550520776906361167945680687658889830319415992800900096462694294385240719562078667261948785962272530572148822710422784394349621832722762496948132667615661854978919045342930273655314515290318412046039246759606341968859669685421355096952191905573237222681707064508570506534391686373833803797339630004709671295207334114479854139371239035951530941885286402455839774288823672972105120502324103153681968977331679234699587958016873187863597303878856110120515755391600920162071760248824100282529036085079190081928599117592982269144685954117276728909591617479558404320752807068104594924397431565880625542042259510462008117344452748463041044440496604627548105340414866772483543324880593143113988290597924062806990341537563943012070149656522072068908514535149282087111257229931888252642770647463087646665636048770220116912784150144299563505090419913838829366071798182766104668435438060975644533967562987602006544672902779502961197038013631835147068025775807371457511052105469480934016831342527872647940349285298865005728539227573785599736295475672473730293877385457170098835608461598407987684272986271560705741639491771573983281202591209469574566468586005511876198756265093586346939033416313014611788440914719146019319944526489317475390788326979084800856795600016320746005888323432944436626803663180647267104847839746938294380674623312093896625400182058429757970400791583144824871700237568162567213281272029725438510640169559135462247003992041213454254270719045997888654507079299433203565108794330613062344275768453093482321369886825521901088833372090862801424556275956487056318794292876570007972471934456377004850457861711341404770772179908384068371505555331817352027337630672123432512581676276696801912383830829935568841470068270627556928953527638766898344667621976183301459925662810822124039455764823799586414230088012269936300862509444424722420992864048237550274355438654241945552500953000535502628364481668310787347956287629985957892586081170659123145181425932110721537823161603120389377419370918111797796778598667599209714855446874739334886439255603108776264949248475708237009859923270398560447108552658370933519164982186368008269130363666497354041610981461231729622677682539365785609539627471247125801474912107941866864734358246457446496419556092994971388747549202014628478879638723071366877713501632877785944365220858738329473093770533793584679270138129547838377620881389798960925623208824320045892865075223314801484506330357958612194071261363818488095380111704807931969946233487382679348552052315009215212287071173823982009870039775346234634970349506022035594993176905417488509146569837874356868822319581889885537522871828543673508828083280928417749504431414062356122345457857697054993763660480820506091711311156658101348640828655024941478070642949816002023906154448968352408743606548689342621799730977049159922374147137035427437283900647921640023754977668468076853183587251344303060581042768130532502399169654592171142439310208773651313299454117933990401458068794968047304457692762530014185737049375604688078464014460366723372710871189137813272346979369410274405039542613052805975365749688451780879761273661984895564565071293660244772307758888871889837918627249674739256564575883545436057874576064839500885392191400266266212919692217704409626307457568677333849052321472965405154466581522941435758199952860558022027921795663896278912232762649904519294877314036131375025045681578217307912628523294171935160218769298028585179408256188343449995871677854531109295284987698830776769963265360330467536303121728079622137973758104885122044136630413992163841179101762417403025582067858235072309562990106516210560853117798113068280213504127869444333108899842072076111080377220119807336042787358378308813620908432971493781567309849626455986506254057732292411601701531870786369288195019922154616977599589165269826622411038685552461455155470934321330023435792732061986388912021926881147581895923423479663232709747556469349355639788670210162359610289166303735114070814670713277491371986562286048613223513470600224887076385406586235741035189175108376003813391288811008201964343034586812804876382510539640188818443587111170200430204367763418693747812593764152035023290613022058504853759871818818386764544055120730488811282113871182354849148760782087371391676789730065956668837431963672462384417594960069998154096278214083984175815286351356496160827932284412011281519889362787540029585264337740040985305651624474295317329944835500293034052463736922531526610990563456203952880460056067933632498649966419171750868912574722431482967263852951086651656410774656203286901098400256431196693447037420465041765893833381929234232049103417012061386694976378725163406745745801125936349144521997202847378888576561855786084081473273162061573127571927825989509134765388464952768111326923962382686273225252654988883977975526919784223120778586004289008036373855119356873272322252077698664715385881767739617548932147612693382257321273844919531876854941402290740128095255899417061129607193470478367625268567933853563953304038254781734520053570205683149448467672533277842266692218903123661664019289796003059334842429413679276279549826184819137202198057642863200313131144728764169522568999426247024376102844829575634891583340585784015901320519416097874634634381003481055625633068804679059328565762610757769040553034178295480234240018743184117604636692682999905445759334012553600706294805916896527545434563861521127370216826887703502395444889512527831036026728859934379346423567073730303223977447861133422498732983056198950589743978222212717076125372785714873909327186301022089971015631930300497529214514448299433819329442002732426319590577343323659569111954213801621275748961466434795381030344941501230594647379855930008592897150251039544024394194403412128514298880778392356857040528067578650095196295548790752841007023792013947026937008691977267189930449243108021299798634886640406782122557930454796879810016879128438396709225665285502008346523585076684034769704123422090288951849986264794449093851675171085220120015564653841588971766509552527286490332898846151050437404240570933663974273781721757925648243157387064520444341928259403659568174784957599868534572077700618955689511780109063320609154051023511631296593677618607477204333959116809100962287541743226440753094645663801835116384843528012234303934775767238239240744492182126827152017942773632017211867449497562154762120373853750729583305456066138010495230550716752476132037058621487054324088349895527607686475580938084584434016943081896072191170905775761868145910233991736330871712270414033049931508683985894664556853047321344820006766889947571069108743511350274124278235893332321663144623924635173230531618558076802651141631841118044764922963471784438408342298486164509893119858229329284829847997400106417881132233523759201509507115042711727149576469302037975061874421220303470289433330619250638749145139498394763627324832217200206357204223802771978717216096556073283701256829964363217497348460474451567185686494002881693418916046951908281688464190142892502289801507746799525488041868119737538671418400371674991115937145515549297416383985163910652194911279832513998539890709326873781457459348319026800078349241331329211395652761100443330718500514476597446061495024757709205051307222605856485129818429092785473303157148289064930363423720893389906440199534234089332257462523962632834274171183984824525828213686252398583325696887408997602867696301223082428461700567467641971424519567444561647588318328517054618796899057673134547890793484369431546956673442809124285707955547742278334348290609065504411089080783671822956270802920177628693802333860884906029513133429360696560791833626365652575828541657065575849217508065278215284046509163194171393807408036830577966104097935233396104280717743111569009120367802479210425746575514999694458797963691731421012323777277399641144090444808547293027087298092871012558928185987472765515032229068236982956943570239948747371549443506250812587273495638217899217549667055727854910641256705689055538993616364928423132709829866727712118114978483358768824202700978340777240105225133901092662709159804641428341951433763744167791218641578813193430023650495456450318210554504363615971122321520046056951333968500102999140055508428989345836953336322036104573305286852942566495649308444186629332164785856570230973952113451670860029891720946766024916259368761064877481004999748332343563853227074337797709086971995648091116257868035713665097988612876859907632132130490016063520579803345570933586585562364636872015550650961514773504791106651530554918688457700953091294143012845029532092963403491929434953776471498024825243744201430075350703990834469067896267180974656223817226042521901264757145263592038474009887178856535883059077116209366300009634501444817810131882901282139503763322499942573178378204761657574953724301899947318469830390781965592075415768541652396010305148835381425837648970929123746759930013023505069867915607179541080732126135978566100135431809637520966545164882972214552266037764132938942978776613927173676753480905182037707642947627286943776009466218731204242926151557469375407893395301300786261554926700914817678145434207297320269904403478577755194058759217578353309231328569662438305285757360769418510910257409309520290744813990413126638484203576094093342277125749128722994862027810326333878334258830438326531521804557286412596859175421645428874187387719843374330290300428826456332010218239824227522354050446497576683276328436914447703831389091843409096543494025571386190660687704369692771638222500808151455314141039668375102192378137733721641331248711195581342998689092826366239278535252645926724945604067971957805609562091094614253771364159182969535492068829325544335681674276182227709944555809213822323391804824033334114280910778062626986502666842338098940347892845386140245333083343074022444523928024666386931885288772501041960366819758873513901811221902630185277346171982816123727244474049901633724195668966770951524982690825576568234792981432423550697566119177508016797823641098340213531239856072808635066719100608108475410393232649611746262047186452185077262524996109850921147317411913858226151167886146935697906658985107509903068874428355442231700278409929458093952232891052088012574999252630315154430229713225432043457236941012500815437748493371199522105044533524613112053118226991289888050950070774160252964012654896656082645510606177742978073444463622600175114410988036240114008869460979749803677693915132079405229152407207792311872765813639510453716194927104607301945564442558505013906060212537901773776803148487951764460427633270380764366585361205457251815704185218891297107598031161705620270009898377156029140076955307203587184224291388850482853221424417768114855226394826567914115714200820585045935296527181963891719453049227153607096031961736388291077343674983595597436429206014101713630678203045001375012065832900509028103263523402201767094683190246810841684771319268307588602782741877086709217940815609393548233318654468241261605276322059394717643202575236111178362002135802641637938608945211755197254926659009268903217213665721093668242341921506671039777800848439881620354278048662316473532579345276708408395295338448662245076727723398683246030917259976423912821911973136167289327119201944476769742467480189238913274408359639316591310645083407370069876608498612256607383008120486042588622492817930595808482912922660525192808666950667638450143279250795632274749164073105319916797731119731757784833833895687401778881526519858787829935227285905765293475038669279064216369490880243924072575526788718614866847980067694880186549871380321369842367039627097236930832090986178074125711470931908621971073849083701609495955479554767112770671981135468022826383304359808052352321879257955731373113788228188587543734794781976279044348624981055658676729454562444485229661250903776060336508161361257054627501295694129623428783960792807614894648487855521858384259882844152201326303914009915857762735983181671504767077990140401490670068378510384867690646269466814138623020107106929901975018560868134734692771801184829757924038114121648290479716327403494961712356996935064301202625033271231245709772206022679521201825536161045405943526989952399217969937161148580563257584650385806835670946632803307736109066542888242327912535052276537906699556253327680506627664573103026977849518549148729781764025113371535443692784458417191730316370450046141939212467518432506658553633693884373105136929340650550526597361656561734683458163561909855897518997772243131698856510868891032375585202546258168342986591343428655546401334894156309671264186074101398252085748956084652222090662680793043360145622971196182590008969753142518660980710917467858476260102692132248409149130645515283364846871194243186856953349064998041344915391674848156369445703195335395614586893840057557846559515473470575487858926793796574048024186098293747022934636215218647927781721748451324950445625391887504436143854059246796850688529062929128267891646530446187868698310395319965128184823648212989474116258925277762217041574059968068437812546917578146853825309838408678048697823335764863842770349100293300985868291259273304588241567838351777277997611935129890738259586096067246773084354325884505189315307797875186855757221740605658099267909795987472645474914873713515848507472952915886991913735808412774139124111268584228333616263624421463932698777404015957486238201300683008197737333242104538519657167793713346862595980149235699760814977964168652471546416918932494104120608711216086054319380976536032659840103499478060606641629586468192756229700990667295554783629272162016624937611227266410299319640513252292555775137567574176464443944803106128522383862238888644674761819244340178241762125915445475348699184856368359686282270914854369829905582993033974606906297776080278419106757788644174190955524024446022621525525717776049160423510188279946517708063217798642420036771231920759867394925832430290421734772632405002051164158729845653118633020858769344110690026725006117812480401455908916024514852423546866633093597921026686969485387555132472811468212866067032421771114702576319510809916224863211683921694878800910974482006600704095943494575343075183642060999725373036866837504447178649121732455199333561082814630658217597191925901045884179807990965309581604426215466801709138917137617269620657074455477437059124102910491519339311831075839881071916593238829596567326790832011343138384714512625578329392391894051049238853178302781914758152976757989670467225139787542851861298021483942595698382552813009099171042721021479103674614482891098662733656108470711531317536934274275386969745760398857228868217099270699584043003056645200252380979259512583517557762163590143503851079647892565627273211654458532274905136214833072207070951969908147698919666348500361315664068873458997916547463240339327246385392581404763995281521387363290193199191640458086181081229539103910788281534483127664248983759547986733395569709454594281824761666764369240553516329539429343350734583512587566643904139653228169495485900824430934587157114902943683203033851665557911156494077758731858574284796874755737069711003778964855307961709948126092280469993299615402473059302427416289151822185997384321795914260860102875039035490522264325299489556309968933609118077639986744256687593646650659634880637149247123048731192028723590588791683311584058871610804099726084009331624016716045065544427562752826272529206222846499334039661297350332710788622995148365934758463864369701450294793851959350348801846810303891104912257122278561207825857141118798000612296185265261382428772391673119421653087746225502655783516138622694907511305998135866024197223735125525523523764544756449003707758430900356760727519209735312620956210463873034512233256285119767950779615233016381469099415576585184143610933068059465766718413861086391841752431164493618630695404792887371219245357158670153566594394008373263305857582800408172592603519361056608758118916369014798714946762338507955352770945816520723360416494390337103826117043953175135569263969606521547740898894857095959155558537559618092403905137871753415518381629103816356060243196491536292841474453056878638903670023045743115679510828427684519176817822676397726244265599839265382498317788352165002078258410808374552040700187799990023698772297182972215457364215180707357755909048416934257487038680713007647624641601711466764991582088010369450366067395710062228428041726079180589325081540830165591359587604842350784924754043974808929267849081714312141924832339388839203048569533637882796055179317319299207909753013607842359559365020372867635325189532698911109807541595265680756608652348744799931403341553605638950895335670888591305273106583331762353346055894368047739930783068284642268100287728782862425326128267310928775266029500496465393935996023702655728190934734559083508432523227774400231662008939251571842062685186970998206516798471249527532230367719081398121416935335114694953667028469252861866935083714249088384946242957075545947518436279902209467805350357694405205654888970489449845262064922138295459502512142438895205837625005541535173395320099725989363542475529837684286783440584533740809565175581621211067377124609838042250849641431241731600822025188097844257869156818134265292300783756442062261685904531152251192607887940975519584340384753996306268846954202778338630277387276777826831079185635592206780729693814860408369606612056785859773919181440473429499575522944418643704200664139053987123301639367040598693324644931016322374108068411437390799180422344168194840613320569271097270509032756365983423242973009404277027303128155244382442866701312846653965992147077082644940634295454195599104394159139257708697496953751574969290282751474156401601463022681337045530766496493300890031889815848619126604994203803100803769837732499393391747627323590003869900406224676843838792939595734591635514594319415198991939874526829745813745069644409713541048625183334238078243351021133821818696969597410891326204249124855868611843645000879760462583144378264679401740217593034306509203837002734643533418576647331794861955722084145666878565751876251276899839114253519177949914448719154732518699496747389441414079048652866356709729305305378276872216787678905372479284511445278317984699122454203910963824695374047303009243185077248234417090456601891754593008508787082021352680510421399319858658439003994012676481184181363207942526964256299218565379513797438516362111146902339527101728618177044585435470420549110373230140993406637062871319087908944842922673959758418644255983191625334203196044567286082448725052436379142643010456973742163328077630404737891061046728489551828884912335454356656343199319701496404293779196969351150839072108673463311166409458630669229628013599121941132511311432878549622827055174729659884133660173961766168609313906915291391979528077945525818226648992620701887328382968133886074327986393703982747784004441897726688298897544622956216232347541209964406941478504741089818465495408360129089600188918718028384090816328121858530392036528532050706889175270092501105917280421818312608901754128350403125545740918987904481346973206247055728404861057477266996168087475602758296139898700251094520426739011506611736365703233676986716626622084224248084910202931408260147786867743885286137287468815428905477304147237063693442109223839701286309522962646036067890376816522143532414703554844826472716953200138489761653408324464899155811708196094490678983074189428094363703973965817747515358603295264273513197089052665043834191154008864062475185360958835090724588342045230437573175539004498111873510725630586258555468024051609250646665153942030389021864871912481731750094040317311113838465998603777263114132850721571091862862580045237839298848300417267862743316533505838023960662016236254256460816546146687783011333937669377758343612920656269893848023694951946106352031579738589999069597227078742531051517258772520411686367049655529869332518815204817855971814933377629686125978911316958856483706584217291783348176196472488752673478776506095342504591238182585707630965595933516103579300999938259195801206745062356218213742124703276876894535966316208349364584179410787033991796034516914398003183119778404061694330081191320398137190464779682757291401518870741107402558415000560921835255520322584882132650095814334476260038404314474660519311836725733920852857059197037764931358894612158361024943329908739565516033735476155531575320335445810268667554123468731353208636984757341972864501755826433941357416543578664527317098221630158205527827764591166332018431637851799108247857200759257009001806140364237808475315795511372456921830080102434817142204727324357223462168460978008109340376826264432670294843047741614365309646746548308423757651110662960557175089278122991258221419965293944104218810553807827489953749052742745373264002522226829807912752539605401646970417740362152146666720100242467402023382265767919226013827555650935251478399086164855873613638076453997085533042420022615183657296912747950600961242268269847955988030602229461290588084571722564641150951555443372441849386311901965254727549033086601223841775928241411129285342008898456967069779679650489045821384038853453465646090603041046522654137832169717674319487113425105160199642012381558334007961237021284268253110712894696887011125089741543347291851545366972828380202104135994566023914813252967674573969711389992007453362395702873420047505578891747066197218712756061896359976047845403694546206446513808738811860810876570628542262159546732330210284214482374103403511885193908604592113145691732194756455444621005930742142785916696573497961191002766799027747361690143632854332562661494165220030209437692503247724192027804504142441017893176004688673781707390656685100959221456896415840034378714522141257265624710483043544427020157286393871077642733777229274549375886315722795256962911156809383568509359832785871408143614862444086399889596580397342234528327546910314677633728422514539733524893250482059090672209785322024876683757343636206428216917768134099261238765979340258838581865457178030321841953584114180790637349662627684478064409630463159407466059244140941761326315763450331394973169854389708311436506454208615629254042178341226810074217323709486130302616491592121483425122972204750980939667689341002407104961733597599895981663412608314277133587111288996337922881186277423862824040236640273200686386290786608014301859943918428911593897278569567319878325929511344727928477711400579110322125866109994860284183617529941904662952307314788254805017387479939596120593884102812220577954735423038855292535909656287533768905452343152492491860319429329964936577040925032261963407229627424403448283473364361577174414818116815231666970723887507091788248223817796223981878542226374782731505308999440762368520204202132581973973152446250732884348152364698283113595301572521293253632515099489939441250815597017825366555215980504012710975184161750518955895382569624482237239236428249878009798886771841763848412430743638532103991426145100937770614882830113653963272109966917628521396119561776774528001995218755283199306260644591447483399894777153885535731104327424882134244641878914189813828497576225154274907079505488848422354305710887861776703706895598400410965277250669784863327067008172839898815393086584207071606397007644156510958300354678408146139260253975302322510803556111868704702775450633301909897566208485810251773928180410778688120997103345651989893250468423979050883147178066274251469315609111841365209626346574822714367379903013518827896710157350627075527596907485315919796054169836866640419592990558045370360629081297444043982930855065331273037314277366522624368569316404515614887581197422913550852363010762213294559863509218006480182910732890759307932234807620780822927491316543066888503123185712997593235401342263935644975208727490390421984916866958295014324317585922175666573450677261162224206168689270445854872927225670711953367662426357824305490834923941630735084811380251101170262447045142229138069449224434161265408463421814046411326228554839274082689599408241294999048813564840172084880344503247561729670930630059740259725363920534536173792115080829095591344803399767070265714725405459264866973091028764883984798832278913367864483609306493159474601913856773726094712523371463127203826023163942076259052584409276994367630018114882665862657826544750788000288236788132058125018272651150077228468575716819999499170961808712394669150738000666858578572499186050512172358614950110277047825918120585143685433879747914355071922788936595823062482112237343833346832989654575788881730109450653685586529367629710341007765145089912061704796850966394220891249717275759355221331606799850872628688766255431228446733071602860676097116203391749337465910876879340447756821870406017049396456595677954245127726604998160277564771154305036257745639015904410614807917238084995207876494771964848560579211042766229367802947914306161231980838736307574171064425223441179256030792131193075473443805731817263159745645399778858803439657099337694271265430347147231597011572034322052970167931043613135013562826577292924758112007925430243378657975666378070595605709257864726839637580698079154306207554974474289653031503128816006024278224780093245199998269915063238434793298449961279822728471978445921102714704787802500373762978952585360494474907687946703374624867465395700222351876258892296939329641870071612069115916138893969259987496048059751176185011461125591357642881960913597117385765369848852529924494425391156384697934944656304356244021676654235816101024865375043933476051468046651306667565074347412867116511230905325224779306159092010033938492321945473623821631250331774142530117820263760798496226541574233452606401219403952697367080009815120185498480482989894539136578075942472314612036704719220895074015098884238102522947037343614138121487917230859282944138923642175625837395939822771584557813957850333006866483902676148794953119320401482797774368265663077995612533188915850539224708052438057081865813168118837132265995742535186669832899403923792425086139788626238081389674426548571252234245422718865617265476160611920348373348510444674450210195405709784204101782918594861421828771557587852217370166057334927219817439640067447686730103556629783680669890835728428146724906109912457642991775363002596321349938321863513735570599319086621733759957517876760962443036307367993651086292691241142390877214020071926211770485059756287681988373595706682733352441565152460788569455279158090938078379579341276913223627722170582528773663188544888819414100324494598913385628972749601096464895593840646767145643677831871069770155398934519734957590342075660698709787194412761582307687833436918210919630287642765872229005070750667223482429016529103622491900708853491821723422961159443921483983868464462280902493481236349307170060922841045007976664362059152095585095094909831345442528766278592846883543669361267938093975826963619078336731864036160581500810567088356946027971527187886010947524801802900041221171092126690596777502416571993957961926000138541466234708113291450849057104317252041990574597960441527644151243213595338998426844906209133305861518506817412852764998147938156090626085473342245189814315745835752405294245892496027159014932491385365911386103742462392961469303566771890429580401297022902351583830643495695957921807910434003961628038511927342105806457859387463676234165014945964710456712327702833450046982793312540614558775441806359686145852890948803169633902409487120460935790973331275505845411883108241460539889858301650645895219757762500573080848310711986943048943812915053684651432531434059369261711527393309530613760182859181280491876709869492762677246100007924436377964463805496753169664636789280349831206705724083895899052728101725660210636143242794457794450293814892423970366985557167587411332918084613540744923119446374581217055565416745486555632510426065295033602716889465267701342597576431429497226021512580104158584845577592567945984252381569937947381157467967957245634844318944718242156781483569239462354570158310422966992080033712876229736764589625024759530381156937807409560299132563639535484176440126354023281221838085749921619192218424692779159725689438894680893041815641125658720375541943724200769486551839941492997133434193969485421119649785871559944137638689791507976518597257015318800940765641149503085744731464906730022962984245515216890371203341001620233580992612044903467858519904746038580397624415290835621859764745461889199327305285756440758969585738066555609800191105623839722925985720836441091282135035025517056475368187606028717408813642843215851473902112464391060980762228757888982661303623345870829325542497934414160043368341593030754173506763458111636174432879090358747402172581171593926380694770110187123529363095910296551410909220245618089309673181782648538693760189517169407833235182592232017107480071504093032722539172308480392745826456234616950699991435971033177753050948430777653059953095004925646864263676796479158532172015969711959290180126441297950861557817482112228589401529131549320817893050904467513696389428408638846868662729714503975127620363415757211415990674999142390967633931692532936874730534926202733751209773220993810039042091467120088945585673427001029557850018700830756788377847312730964901654430065523671130835855669491643095699261609307790676514156693455469708973353138611291282899475778138327705851995913287264549551223439746013213798299502662919510802055335101017456626100703132124775897116178064107537328561045561735765061663849393414344072854496263644995427009326113589772475898912752800376458247981116190226478231988087647127100909921892021891331233632397939604723681443590830759805499749051985237356904986680299939013133602749594102591468460762868809269325271586093504165734550260769043558896381392170066970721396451438749432747594605172570095786307926062343505724962173896915612769404904096940410577514657373008067519051014256777994666133916752795725459430728578409476173842933754681941636299254656669319475301929111191983144765256986594094629425390330900835827140101170693524088380969167196297354800898869204745778067923807391399488462204075630398308755997745151313828302348402988125566832032632713301803853110396083508611749288857326230635597612306642315959308596316049223686141436694912947848253166097888790945464750316899334773623409765718722623310259265222904595966905341923165372509238237448333511594094990798920263837145763336852919505222147927347955789817563782595477382809631582687875388130648185584234575888176760665816026498175162062822404716903253377817114895998183094234665503273663364530338471401855884797138630641006344539730370553949633482322946474061678076400916782072594285894718543992772689218524610816972842210963482000243222541204510405822687617957529571463527662278968015200468578766408344688139267298844039566250529840997960494200225758963863024812103944105423710515671928743986478325408515207201428257241328966769883259430938284949976706769542756331666443505096501527967145335760340589869604705563055823080016086859937967434600464490904370150144335241077330047610209477259321055731987287623360864754638306134521443456729998993897834083042509155064288200979083225495635711019159536905309781760685248283094585858633744619776445722768968637032392649875481051546616985782573600984654379544023021752149077789283352440031066619400912727315447360507739895994227356932139171554401213034074662155489025987709211955001800902108548302347610644180730993591032882808391801559895826271602098921885582419898847472863540089226205616463264264242852152795341293836953458211614462689231170901163366097733165910345011384528085848731428290467614324066282128460312245754080460628648382377944748718432157425381803238427849689427244272018787769668411878543655518501196609471016738867142781459630824327231957411595444746643956283791249189302395211729794511067102451196344643451013320947191756239209818911155577853341479971635680021884629948808771014854635343450974891242736957704303681305670010339186549433870201668989346372996270018548251029914213225833402186694296483004663745336300235279544328313628125935538056272578137028851265931005130522062016897378304698274157833952369922873694818892166013213729622642848367397703387715874017517290951042812809746035905067376638286121107060784494875956121633441733163713651159773728978460811244211051073308562917118952672758414586573282246243002117960199460944309887263108187662921465545710045861103048348387039942735845562695738068965605834882195758436501453008206454506933073331175945507593549906268376692034429202330211074684454459759495737696733218195657970919440774665514341738077698844772274375796373980051683796458339822125514898644512482430786674839266898065658763871208356840361590337058260894954658169111642878897794508411029483939560123832482218451965397008805704731661477827844895122185139246642249408941154559052754782658146371942500132019393574405133891082034049866522483494687751366565390005518228573511141361156487752786925468533726132979891975741390675984702783160181029103181941658904137735390933079077670874415635010385598062327391969865530922199161117091936853066762970593776845732705863022017250999407327702366287516394021034643973806650433232588761817376024930538545837792327875490000903961070586253243729566143525392974535784472827605114097423268664137130649265926218893446508673016979357815823897665428504503782204905687282577778053648991754500726415666172440910964053557260676742033768890335756337655671669243194032040494088849511718730721017572852049168410466705767317610239003543274857020454801295662962855724208035185400652232197101276219089060870267198548806620295375806078951092487862917157187453365545258493366734311774343117824120204571845314714415295506796009914667221613355602866108568446776545065883194299219686637656216969971837869084790577252244722405734238685100288684568026435721836494852343375698917920328302205774255639368900824603554412706536767869565363804860698993823393065172478918080883492505716221091585668194612721329681939741608118694829039389864711376858051929613823244104103720785219909577407080185022118307414490219731889655061689387016917014629764772571237061213261504496734910917580893911744912797172208661730917217546711629925622543585893975022915942728087885854883380458800414106409970189709190940713670582429331048014787745803812482223008891473876082290497436976126493099406410372938186541662071084358739302461186950440475118788373355806749666517315100306246766272321610333277276680531259430371159925767899425158097892198271394176205258584042466977678967305966712958967591691879730062473536231107975190942799825902001694492545042890342896244758407870432652057625277033157247408466873319229259706287952456476306212423872245204989294672490353346145895367894072180508145671982545392212515279597681314991252851664125190265271727737173467964693912958033367887469716362196845658419509104512645025388217728361070040507330733053191109639637488975652091742384870862501285987868118915809583382441500936165191968336030818968353213367821257943827010224109463588429005375059149148806714935852845028747086924738718477501866892957774014786856006692623790277633600222515079540928276512104854251166564351042859678513415417390169682955868637837215757603978381632592568375800350053852570100366174345312781298020315936818890010679053990171780763439750102162278452336669963194708223042640722136455314242173822595767023320587626486164281106400015255762810813857612433625847021036255887051820307514559704096609890822860221255720633789643500093801094418569171364918523073401418361099597499724763176628828639206524608627795712498615204575963726766427778103763929715502004369673317161177445995126988200138312946041905144545996213643511277696350542241972601514556604124367887999341518039965393987184105927641673730919500778412866668055592364868072004852261002100737759980714745633291803793401837043243027146493773174242861107084297878733913319036273854145214415448922003156811748940032775393897994477172032748636498604036371498757977185729449083571262459760517006381660089632043108169054689189889148961246705943427563796674593996172315454304028710352540935322848467637367164343498625793142933519683726903700083525142939631798204661703259232270796450743248499404688649258866044256933307517175049280185723393657362103650863476618547677219552699952039184209497245535425010208204412954166552370330579948813226134251599536719031444654315077691451779716926707849990082804972466387181985379449922268205532427493506882828766240438988243686674191510743916147051941801400565035553402940243014323262386625227943981794283204924212823334297045826229194798215880551789529593696781010441000907148605837477753982405539459299653731488735775881753937013051737416962191114317728837485950696939953829394635170882398805541069889121063432424197602317657641181980105483239627924182988663844409807720865551391218335035386829126841178364914416769970654791084074061036025623833425219362739319576215219837770785233487357912946993102831075217184528116636984777669814105146974977885283692344568127463622015800102303391572878463978162234733084400887759049291117542174331231279208184272205937688752137379060128992045768702532546657807009250372290190744999095158218498221420830176935217675768041389119578864065371690197466248250788766243556363298617804063500366995261372518131397481370220293959082706474616761041664046131694407305338208748495740653277868759306875022141425314533722467314488554337247538070033009816005997816087116526940031892700605138539819668717684145548195415253065787313239687569996289809216677726821807195124565778151014844405854448616816389274364491888784759369167970134762395427397602735959610394347660526248334266468449401936258183088859015700782466461837857808058569061081690985016344058684721360094660963885841248753563075588943555901140615368737028637113048706862565775962324411029419333397980746026026078807319384096833196016888786279966923765047951452818521611736829628149233603843320651371601383545980300948915423887256282124574923138147146352777570324337796014913531199851821233578152327941133123777406942698004774454470875000744977733467886074456118806561455382181860268224928512685700130160329750235231910050713909215629802801462431857744039286635787621527110610997350270534603489139589072436392853370958240746271951679780128955031651559349510974742270919411506839784728812780514549759417563012407034089409073445651112496775495784952855606925584492151051856285519460803019010109427995421708888787992030268756404547262267767857196341329148632536908688200239490297259103024806245759657604815097527349392150925810838367875455453851012572489763290565988768857060945555567344950231200911520690387267892725837392414717354293571005130420423283417622292971621352525101974531222784853428070110377498743888657956190604960219564473912411889052234176488778179257718218281035636424111496941623996956235037744143540886514474674574890249685827763727542404426494520493675902915729769101113009342666889541227060794327097004549166914070615597404930122990675300302719817307992554851724207222797323697930750813273880745922104741189699315034516148169117342630813664030387598594705634484572304425359146581722488362800726113404417691033292181066892104322759375166514859677162749681396487530099428935058439737579815799658497153381246134830732927523200277723145702239138309646178851325485498936921783224737390246629129063066809155983809896230158962293383915673736788324771852684561376189310251716271199078712165965450623689147138477515167741539873899865832053023580644979856557877203363758185464131214995267126866831938766787208094202434611315344301572219604225648229510091100221499526784198686295463180483694672952441427624713404828514440421884565385343263101245284234019685470202828119672884689637113842431985181866702985301331228073438532477567763941110536568343721904943040051605587592399590276797285097917723538972029784068516505967004199226604366636971157906176149092349384907483056502024951183581224294295240861897497920715835093187677714932210750615011023166635846837928819048332348306972735533382981349396165607217624026720293999406573135473799545006186555331307112663023359882736589880286593357431158538109508516380472399104116302573703717291427225838488154928414919921219147598369894573466366753414108458572264815592575550222825952327188289538658671507989837135697079472639600939709222797973321744487069057543267786266135526712125342024130660628022331414482523906206670552548480551877712578928206374161449801330154242047133090904573510890972676622820030330024305599797072984337520288929797042737460628764583224099045221203774693676108859805204942628349115115357525899327639371556722626435117402252476557659175085832326043277451678200063314051218013788927060820094629496463035705903210060565006925138010032364345791495451584638068161733038175799615420504318590415120373768648847137659966644725236095761739828826227601906042458180007993784022430898522555669016441054169008718839311327808742260313686922897227394597304233463625012583476037574356650710283344431813427100208138212238806540962426377400674466402974526223529977533646175596529747477945475490288232446902410835037811489135575892618869404328430723108134071371803546400595636321347908570209696704046575248748890091490685435362125490777308679465761463457739944421270259835174967328354736830374861812033121528944089043968405619692444116713756011477858271803620553407536779056387337439793864871798916970157436337487373264288551553609910549359780798558984293967498930886336580432343687358003679678506597999721355852656353869361672712021458026777518738377125292738972377638124518068814922003674212749116436128138472331404146074310379008730069862272612971139682662394056691534975834364246249069446391936554522792330541985505318541186556547468729060542744838928157434459301555117150791974009301820359093019470092043434475795388008994243820608057467761006494986322759764601921549451228271616101472277819215269695487181958491713828422972141298423774599066820634508050406698289538198668669663048406339926103743755369931998947572959287986958531395655381873603571514491953122950581280948100314199548639841949255145016338799284200796157451674881150347010200352707704346364139240890047050377491385772602202133457730161614683226027519849356182218434460663273076619438203773933521735058117971402328933214644186454352797562711077433598971726031803329534421835613741890025219205657189437408004639552543565339370378785701070690153797258950799078119254342363252345923786443735806693916573790011461528458907740674702089516956044282473295729229057644989477469831185023952470599878931477776202725869049685240504669485204412098323228702408764397438353304812801993037058505018684800465739690703269130150182548737959403254424758013189946541165216966886315467342806432925282726987041179643612072954047307366748430921885607583742007858157567924367493440017741386225570425839167850092699309294356435634310866501224528675559224096011987284098835831146425604905975039265020189661584817476276964785661259495949317991382896905841586955049030803184363668598032615278052353586761822866832875093344397812550713741540241541044090069905708367449495927234744682810836436749986806649278804253735161876126051079111414239496673627219176275124365303800018703410311771650333866144311457264353634758717426590265852512897897604392224379987727736377701856108727927067246146023990489127704901548404294026666639954954624343218173739215896072996994010159474178868294835163337738946673079126349719554119191861336680292422883627126719863653876129505675572435425569084029940515873006831434012627960564232643726048858283675102560293249305002087825509304257466394870694283193816992196607682572714900183500048616796334800152092986661077401301067305073206604097288651471100423131977659199300147843483417225116054234169938862144751458726272340757016252561381481375511945539549365945994388620819790402902522144533596565037826982042185697968082058385328218766344791155146568212354848191208826787155345465972369435352007031401470157692652356792976374901664333680266554861931578954217675036258995657835269350079241628510336655566940581574969117640823423187656759865390759879570534154607410812805763787138509950497219140077650446592803554787118187309925446342310422933772945124616867089066361239581488841537676868188224947439523059852429085427969799601118830195211428218894949415426820547959230846364926327497423058321192418489072948471879538520442385410225877310004855524233685506669442870563426106443448353256699409775994446057787111192538121528717569042111900237079974735605110410909661647750625976328233569168469803620728565333296603465865054007313860419363000713172869311984461209047840688627180686076565217463521503852009118562339071160033623376165469322862611049750567687764953368798472585935378091324864876386043286079225814735291226969695634129205552052255339259133353669559289306252360270862640013957678137506079711146587206541797182029296360358115970771784081942138158097489624174271732948665489875463016417055126790570276114774940860842460271629323534703481596575744639150812157523520827038739031793182714604771245401085705067380388030685785205189051051799276991145848882898511206119939647926760612616204910235420901280110351523309435768451712278355955490986821842452711954633975964773776427230249018240157503379078268055113025105685489718959716570358548114319130446221774531847722809167361956794684099856735871101037325414506700382919750559547106021168229767132573358658821986857935519975844423716445945035160254962409982217767556779733189252267491560059519381670466671210789886614162653187510843455830426797443924591002442855045227555225588795880076637018046206299187376553923811437525775615820888684961474508367867719585943277727546535944758960875832209205661284633337471681830035123113099969590269617906711462694983563576282570510531696311154927526978227925581164590710847881336814865821084338447698969892971712286871058807509582672140414465288799506627929620012641273017075579394175568737453082947688456849353894198321773988535197849927196071648062917200124576918994823519734365259969215390643247219222454585335788769820340581346651861487316853498652486246418325522474039527002014382477275209549283505325946483983666754821045574176645217105149152134639008808325259148752878198756117272085239941294239576599202501204447768439783881972750958707196479996905043046942773205920395883112193077559983629959033163144495875783656711545501758637663277885340280350876179696149317335190766778076314420160621179334353195864373352101231863336907644340662912383480815978587398691983462774997498369236868317971426746923193444830346149381023564330815856802570932765683532219151871196158244013370734196471330481255441005212251751534070231986766925188086837072723018390685579055193225875819773635241346015712777085999716612632347083508908624451471015518459118132405276020950323168017743197969954681660213143669985098542021570864601837854716492040969481295313327045989117246124656574999859872246296852851473292477119151638770977006666189248805042494713719021056659138616824262031555439537382340492036154167688509434861548117130338460076886309678213243875554665244245218307707651652016866433706729345538459299159095060669144372471517813293137532961856364797988000682831489564911272063646108255578187985940049815168578625265084382008023938934987865576387453567442347889205675783499271305201849555040777199376261241040355725662739126801020262860760037866314717051661125563264336189820077331207718483868273632304322433278655713470508366688615719644069175471201657733609208810437362167305515617102344526050424058035087535512907260995536279179891924516374702708745333726166172775556410447463382679226224228794446168530541385335728824019064525289527164719956255526068863310830036427099818325160128446033651029928971850965892735054392902236010901708389056338399101722109095785243773779078292131989111611655036093254529420305343214908848268510483276273236382319748070552129953719645365033646719636130724580746629994978861887817342714180778582570335253922335594450951147994606016677625816869099209589906096183175689566230007223495587163055960063162464424311247418278917518096807406445597364381516486201136943538094810548519094422365319522840813240714071367899093463218088393380366182504472125799730908118465753538921477643659753625444193114126054003487337354433142542599174901520300145701156208820340114467644453342101794195147280077018323259233823535294222924390342875731928741275372026404995155080226872623816742918007808002007153721454284436288033893280111003127778535470978363810027038240012073913535795860002526656276874165318719519322129559581179974065858157666254747264790875919549212816607940465357292889184928064151629124292365049313291083243649801749265957718873027791025760040740799517487587686066237546142372522744852045927497169970543606980479711403227995976608310408244668510771734583022393553035559159502654835720675095881445052575386626822617083498206114273531082480589168164630585413998939922866081065859905443192868513365926748734064541677674910219429988710324096584898437526581079372159239960430443052199191043945355587002500493422586125127435478113297044594524500200866124736016772631536178775792882695904496889119768726199236811537322629335386986205589234203277083840258454581062748491467866455551915626690339918263980867981509941140420386159601101692242058568925397635383680256964763808655045645431990428735694426820757559842089350100818475465407068958131338434054921582878995227409801890184297345379805282750856899448692528672162030424648031564467673858587578705465798862990072413749851543925174405546059683862185511475544555404292344469311476900336859363621483437764391205737380232188792164618916973491618233566337992309659377823671619600867294334606116143234699719249459900247373002807425565253510981364510263291947784935193618369017605254464662945012984601573235225836879769676901475017949449829811007360513079472490650221460682291232681880129996759587926147466851720338605277808883992175206383350029510903369962842459809987124525429384202941685872462084395146438265303799173799939974951495090233134477927383161837651377789049604503851589822274612259483056297793514410468252484867571626176093308622485090050159559478773094706817774806364326425008958841664624509658252910396128415920449441853232699278657843174281261562922070359083361629603339583938140046875597295162470191591269207289609138051371647375051309344087743540843693768606593182630965131285417038112577594062675189543139137018579275383148423168999516743214752145198172540279182708365952681332586914419746360847763521363543312246421167690673000480603058665006954810352421856760283433780636087600521356928553826536012175466046322776532450687959872246570053707381248912433718334053540961365416774326814546000765208644881906704861398928598656767273326752075921222303500406528352979856869459900800423849505594678540267331571865256356880365299776403000483603957518749019325364711343600046917342668844990891628807693649985953146784642743580598799861107737671243035908490876986696411257533318000646093403745507795170286258939708700612710398572825970259363986545680487881478669793482043934205496383153886658003077190639262056518226624850514353968867481379093908960471449250693577767465633225360669579754154363730515343348466118493392378165744459131858981487693188220157077222908381878541477741986286464062962840158746466124951790053488262136271419456594366766816853657935879450249187425973930952556761937074469598747003911773255776592392687520966334448125082560598083428574227144606550818062791278096195055149233839290468860284750507484063622788371249838168024575276765314327084059683350419098730297835109206740779823087118769501169834877133901253938266701212500690048587687790784156959073776606868803920155226727881970318454547432609221454770443844204074822530588864224302194527282798790102498301253804144178780122023747079509985764844103182829773896682456633180249917731384084954014102958252400104166935174634750899915757300687562497611200521617738048493775049926819858119067175834197348439957680821287814205574608636916799816607457075591422287727591324072876500620230743709653985710246668348854424292577451184393497647868023875717031769755276801251618898858211205653152010762365964486757685196915255408084151946257786067380449576659851233801804340539008249338535808285306405238187686857063826831598320552991598008233981982042210091851225933774960110690291027351525249734387459457671257195146179449681156903727941492206257023296024724361030257803427734613663134593801610635696567059621087040038234544456055591534303374540275082023700595912294222712103304170176529833881996505563130350806976931859140156000278043097679128827935611504385638105088857615597449649832457447565057709682947298127854691850103726664896705870750508726704157719068668497244289965100182010015002699925777313293640345969530622025873203736999534607108012587111832015554394869535098425508695121306845111006667705720381939155212409656189008628364856750084799775526390532138676613830328666837130131243569188291029296584505474387162225952302652068867355726991106779280430613667949458994799628267906562939859353785358502507582505731795846637556758761095993587025623788551007916145482876123779076954758939520863941960890384002305635676665331897366709119975621393413069018041555331997028970043868099395542780748292997716232103542743114475597904987482666378582688530751222503988159858037176809403933791164330168366432662867942112286315898747657040685551865667755552939407552950793336313146180940746533604977185901465783110432641083350000896455122002278017608882400290680522659493447320490480469409383023815390905743379566633559802440953261209524473552148167728827414023763681147327011839353293648902188435383330804478918291922954777707450157114294991309434861052393058733877517954282860810779787293891653836341219241611092433565470339648805067840346038371494265202248036609545478739576978579789767023537442060111342882847333906531905067688410277893219716052827455044588962026858158786070584944057652949609613960021388281247253252220230521621549923432216791884050245987855558117926965953104346851048582714741558378606664611280655892753389978494433004057548093846600816131786540874577454784250793221290398746537985403246725059345124214337907137522718103234094883395220307125013271512550015540178032044129167339092918380435553719241799518943712848612393116908294547762569193446467078640607178253654346030131970625154858184377936289259850049564489070038622299538753678492508545056229184396541549301408186472955452643767558628074851887806148634470471634214628548702487330320454907542997140059452513246128726148701024916516023831457374604297565699222054253206234678232634521054104369118093304707643333560050553264423717532485550619086597834712823939140042610741023411973772640311290170091175118715860091514217868667149051617779950206562853279164389625744508266668886207557363306488359214169093502592202563141501019917348266311726333298857188392040589322049102539903037288427044029981993833708401195388990275987521437018987512314916398458732957456093897834645919530275703427937934707881719150868112986803946455525944464407700236406546849905381664899945324521998922158236035488777745548908965778629777297912067593470007647589773951680523343229896617102308144086588281220311049123334262076684895730425907160475925444076882944568233033456682848734060882136627448421348189689129778479018327145956443490719060449518226842700645089309993312258303255406135496978149521750247315690506388861679619135898508584349299284440972671129413452685668302997564715185614905302746815330545031772804386130758407056006766581148637462660970837039550086677103860000290809070496698058639759992404533935833772478715668457292145086722137029023856837626837059787867279096661577158563697024784209802713350591084873819115315045481949713356316347084912718313500018959479893129504345393524048939353917673421371608485118311510588100774838077848341722599398879153135559176214729494708972448130005204233086663956969530771038605189002773344554967418712151901109179454857369989336800484469377747990399414745009207081986177208436902851219180509345989881026632102629807454157335985927010210070753617905400764421561172770948546444066335104217454290030159760351347272822062997236299261524402013880843528842120566979036294939827373594144409787214222289323369918034479794182866265296153534878009656330995889235751501651320425889638659466880417613049868051688697432380535890243262497349365033473294880603670050921139996848472993825772274706206828357398039168346646555427854790682676823264993734991756615670411106061646569899791519538967434872180933212586125496221332771939545221659318013182650661046443098662870348009023325818652146101652583405617088954088990197000256027199854643647769768668464840628033378298639663572162848792932485149548010309989713435998299620736410261101166550376105344853881369696433399082709126264758656732910824751641672454070358267546964196917596078015025237384581785253523934300128272347122263151270292090368599813013552172182532213522982561763799701772421111600264408881018200413969654698472429810994120906338722378379274310554145643164488190585140254894574239003754723574123892660544565862368088839564569654882882505009290043700604946252224663188526382698110031178295029026638502402783375304626833182036504620721051028230228258969986351665482473888652472495835475815330232151454928430308540838754716659158694141121256009688418934811124417821456379134597348290904353193887740607166963291284911008702597607925023200654678616385439598729782422329963976034454031094858566487280348015201052917788573470494681514609948224189327008786122726246400937580548801708664801777647814902204707351166742859704058578370174071554625785818553411153089129357130255349540479829577148360423957657475907472224507687094213658411855856172136118538162136648302465422373663679989121966398487136105038397693865306501253223789751505072826246933047932720108171341218829027171516269644445477342119260110291297121484258778783394304938696105118892169617612916061452216063022494008554397090395809359394181907923011105516887922824326326777280179008059072640279817265667062559497722838300308349913822216404409119096345609764013865324543276266937710701653852356196042086463041597973298523545090547934227493774762641861810883169763933726550440475042969791471091430059853053363439328591726593680515318434522677336566166853314436393852276264934736737358564253393779618018787897039201629624454393231322228674087400193689589395800817136798134423225079342181252344408487378583417281642127155626158927804160299152626203158368416032659577230446531997763462994311870084584049290608654607883492164677799886473948361957343104206340791394718227434243467192244107377198514147927810700376185650868554102820638414437388070055202622541040007894129535745029051775860180511261451548936537150062440958516621266336791560775911944501151636878329706277395596862841300995813679275549411877265612867205340789683319847997804295285977847895394947282152998277394430166251658196266557452635911889728410217939861968619385061597862905326612444658310015733069832255719380162173891098740074958032257140816260549773396768203069683017471217667923505845100977735050482649803325538765330566370300453071029310963533274966942003057770310628910108054370394860625861442527634603517418692952299287020762327542620737163368411472057694652172374109470020406266644452205783578666513453297254601349338794044932629113364841221418408064806951891760070086513064264691259652157435530624426768718184934013272856098188041072274382395377146922563055598825232720006001985128222439462580589202395036999049187666443919418868850320760878168352744394709209357302483794471078209321474808312614819353793549587474355642623101243677546716826186313963331694429455588111784094911285050152277129706758698747020536330543138101541445067949407885765410669225578270660817591576501463612746482304875676960958813506252662465132425232333312938175732246424686494785915382926213786774495074363213378513889294281213473236121435236233232214952013636808048520533682766283525822586373364122998202934404406018568368933520298319984818780906736440478539637409034756662959853608666858141141134817965463696528063700838763808601249358341996552063815670106136654033895488142391966872833906127821714301425249124488433505696753527120521881610520605265324449654254921034829401422063123098430295138124281455850115575403052164934714916160125279901773668260144093238513230109286232055750203043938369901139217953974181947698079764356548570191638022071264813490085420548614176209488932075249042434951236382395270073046698750913690301365315065920942128893906829110703700341010303887270869072103200733957838051536226964565671934977296705037447906095607302601386283526752223648860529753846106819376096164832134286461336937449328568373325685808263601079547033815790322752812122459369638393963740645470014912976212414633025346432028125061011587338551884906077643229368063405648850206292648352757352188055759727990185460197460499362947738042938629655634932455186977091820705257639379652416985165363504343747955471104787058289139146996165626164740078065549572603028200265268475917802052024307691740473839011240841369582384096497751412174533392587766355815830985501178410786065887044134242493307359178313004991595218611480043127558659016303611546234098517511701629872905900518880888252973608870772053751599570206486225007595586558531228047919269549327663134159466840115771435732748131206446827398734068670536724928955325143562319140715805995846542940107319714087223931394160925117085048969186145360076955539027120748880925845640559968876974951447738650203434072260802571901846880018371949623844425839722297948775669788901734373409688641518962861770501436325909902812718394523648340894375036696755704425446750581908902864537144333945604817847799303922053317086425985901420994032964156451630489840952502802966787347297492452986763329879322926085012320027747701131141639138620979724070974101909529705726501473390198376713239009823704067536408616258864499550567517139446071482876744541966719613872084131012228875554074621530538432085862216668160219777021185081848185751563955963159723898382925029414491812856435905860639996648642751468305736954961861416573517105764425671695696711668612465827195496899412147439733568755263260485745905706204184724939532486136236659091712546670926382423709137616142769740454603342316121246882893830952022593709353417977870789434821092694885242325874426840527222890106951414040871744781160702664678276089932830297884739837841301155347420510995085485691844235826897282276378765666230587073601377040358639519552718299132647778937352722447995846610272858992921887092947567333845349719794364870468764279513071450291933211618150958963036821509904530427373306209277829930076430983381472926488514778647304891667669728981542940469755554764625152774519352721749412085412623232953634671276777193856620998629361493163100378855549413951245828560237959579828974826319972317946664237818706761291483712194236182701301846872002463959677970067697853365448337998512459063697306061104886123807300007986235288181260527212389325796184981307446581292779755770993429057456031112520268544628793987705797036274322171433488792490701841177085527932768071132640554268480075414905179581409217309127726061620995952105155629634900490700604165415715092216257164201018309625150959413215977427611265487097532946127089050809618296967349249256972549195585839463728719890392459103947848304986309308225682708320546838753820174833593987640257682019338966154893087453574343997332210351883303240123723623307015661720907206910159720871694110806631020123561423404188153716988378673544484666918148333006779709988302383183133835481821279700865826945010884480392524651703827850435564707617464526072325234426195405706406462164381552288899595356193319280060356940124510940939910962662264648709932065217349108707994407103237730889496934375355263485114276311500390873188330885061660871479901293018816411314447056420905243442836452573884232345189396302355142198830849513411572320870594839170196261002598468366753151452860350356758374966271955849011945864314448433630819897257381187415058322193355038064885502470960454227177772733996786743717340599157827590024658869902752748805435887918751798918284190148086287736843916046926960052533588688735333446333305081828430680116341265400483927185650310727512061783367100398126907190458913500319933236139649594690940399384727563367806625113963859207833067358504225710976736122311927146051623169249983331171126644342410571141195941091212489988880597546747185154185589239852540415810941455900725087151079369024279148653938027493586994092591427976562907581004071179720841122099074100326534780880282228006259167119262850388449215327778051598892985361151553878376517817338714546708826821372887391481959756421150365657657167097811603632173767817486074690312120401229586584189213811840406108229880306794587891410012380688727999026940635270285961081659371234035997710103366353276735529213754109506905546679347146216708534331681042468358721343248095938552265833847046646312024820430066541821957475564121889343735821486929161556007417362341671868202293063357890878613514929377559558214710153049727888556478218994956124468411185099198680675019509810621486269095783321054263127380817308894765940033834158921952574555980703392101494523684815992013248958306240715486395091127049327502775678996315332593545622741384003359603794659801464079556638096998379860482684340371065287075408729749524787053996650940021244610255000680119503596012576103881846720072496978488988232073876308573635407542386231053101094926286111326729153548018748743228216194631913234882679965552871313248791255919927306554161487603471317040478165432351517091990780276492016638215924024932113239488643748453238584838822859999841869719729221690127457628030141666182136187671304055776498516679089858217259558687629507125030923700545020425178819082703556659795870778820860522991061358049865752120625577665017367183159391911724501828343864228698178028721086896896478478122787556598178348627609231638903859237162780193533991295084926567407142190229441128623901482443864887079583121705195634764386775869235901147271141683275905893390742671857266656108822669476905967088704087784409648019267345390836703430970326783214998531188978589404055164186844091877800149707389849786916191736524555783968596210128464874143024222669356556511263607284319724196245859499210251851180036906714645502922546666057210949743327755089463037997397447413777865867466124157429549323557273752247024549983501259639557932317688693524275998175274486350929054375862355269334724656167865831614871258303434132532245826448229021014053457190901754331986025636143631136631648704853247186033759494311136470286756792573876869934070439114472890040139793516761374654958707662196996032956686859016741857672812678020454768223137036783694224495074791256875794966939231294921418076379634612630465634318139802045931418412895856645319015413558756881351719090381599696074953109299647037894086387136773239877427687523301459596233960306920942464798740053887554791918966200612407261328942903183297277014173404572931942458583033621077556922942575072262899445301184862627831133033127416925623440937405385537387526284104227734151702258570008001429911038396419909614422834012594163734209700433083170277432580483697936784358721364045661834087476042729120128444383456151088402692814316841092106597582253859483258680045300197900969542352410581725090681522807584620471164876993156884524886503633184003206061545701706347780665422785079333925270364939004646893399466208784493076773606556503489130835480937023719081243123548534550325571608660546865375255602939594258848297476650479649109390776471351862470145045980434466763698734872019028602376396431675008653895642453738624331689673692535225940097308556968104861563825347455920605333290542456359601485597659027481367055963702797013591634064331462645803541907063920495393631613013890440379352209541595258182052664961133798706291477543469163837576562638110465813802871135610075827318494499036843164368164923992224289013747931367584800677006845576396009683528923243937153583415027313947653809863660680289498876857811666411322633786549670465134310327596883696906764065329307269605771256530019631427847044211521937535286862707930348661687303330485136627604712922864424379269714491379738326977307265142719499248228860391098770090174333552706921270706579990179489075780280836876400394093311925893001656546261995886818416019729238040863177173463777452900594853394135706820303635885490245860939406929645017332552079478718123401898894810040528368016277704355416658200251318526920840114061815673190600173070113574697107621631549560091848202374351949138488294091078571083473995339318173599185229964921160250045718520934423135690234355400684808337572543851745547716956531152315776109423810453864644088410664813744162304827435327838182237372458583029422285574089284506413055129988280145467993914637398238616351373231310522198125560031950997110583861128338065564574206503354748777835860267995187362077395686642984717470153162576891309533288927576286792545954273727036285320118347669943225858295891660236220963265055824944380644812638869057472163148073796753570239928150720370665695280161573741315092752913294815905478729530789051360089080189343278031192256099871667423991165460629328804127331091687784896047149078574393079536528392760412127496134762403071793064441010767292027824484040714275599350617287120493239513112877216775230840610058712130460304696251024223010228288571430276889707560212692561637874497499444294030194825642128131882760763455209303258415583868153794363153852895240702813749999398502694205051771472905322311660111925477546037982975804558490211060213646335189433562128878284006642996942279717354154929061798831874572988453066173558156593434488767510538921712342284778814952795269652938317019410874649339290533843241480577445135419586007118584722444494430398040772691657565103486806090409978067535865168207822835874895687211207718056681122208713545837493498932828794929244398479282041494025596155450336239883584201939557512424939665688897881115744279880031829425524930497122207621116749675182254766623534369701310989113568700330322307294759932832798947288727893407674327497130278319217675259785161377533523307247656455922740752829298439342480527302728125871188910252808892280578263862083931476283396859492084956551223715285848407792648178523951950211328906480799687105605510146020680995651223688192116608094376138729477491679520127650079943812352891060878222310386463593512807646486197619564503450278643686678262565026378449312044766933606244771394738937133229403198014241349634357694162243109001721762044053350464004737561751105593491053518090870267016766374679178502197884411737963776636011501836096994074661836617601310883077653544992332814215034909959286232209156544092687775623512458883464399004597735743064805393801507853513942704304018864885885216161540922333594417387377677182648589779947908320831324236788495633686351242473874166240904074035161005879013263612833450074633728834565254108710003978730531456560016344205855345151130686595237281670101957576939143460068936278772053237490634044663846792601312777025144217575640007596757572002694703806856128285955723345677121044942604815351625590196924187725314339646902083060138540593431523924334306083871555126889473281855811495034609630172008787635802805721223792661906941039054975147220254106876022197705543201354052174147155207371837495277623028145992746793535956976137629838628578350448967385189312040199988333554416740133342414497948557964189618903758497666887383891914777037622528424394502403685310051213782227331991149387178103101676457996256925315096634106378124157880899306099989649077465213516080241796069158400365187269327226968746746478861873072925705613434956002264171901911598471475791972307637114166551143405638305993704622921476944369433662177357100695406722486559418796674126289503134984705847075073079710748088934314838587257052939680863083155047896098674126287575732889095653314246614566008690032935527067962788213520506513074809220697430590912440006945623236630762604655829349074353709853753823283695080001740549433669870446656132148433308704401314248193174058844826519997480901750250889208479352746246141119479884293114576277297790756839097176358370089965949417214659717136859858662390253241558740281041091937432270364809012303637178327830676493280741632853369534682396800027568921908289291027680222787288291715590649955845568045734403640413744501284526105635302534565486433850991717007566665871450174398966194065292636653680490072351722175101981809346573311828990048845711409705317172742006697632714074651027376705178803251406562488434877967603563445202234707069053461934269202186514066514262110152780418566008270509332539282885424480992729438879308244364875302092411517030330949697492564694990300571635746095112840674768658262525334624531106618611615499427845650747244864045880641586524072448654851310307411169397971094901317009137512764727243855114818122616750561322722764023758901534278214172319230196594695733613979622368458148776153658533821776639459993421136558617510636545148056975648012191215730607730539995563775918809873078397709631432848814423939877947311563932222110730347556170376774923712587856490537932257321332124586939885573868934550031179524643304043801371797211313221739458472562491634390819367835784576020966518437870367127371883202551714606076613404940459342649306555089110097451245259570862804555384631916495869358268071151051177417612618636315576546051386071595592230139624394131526286338318097684327266672608691763974079809679678730403704418187970081922815715515549412762141179192535847356549420699091760199971190114692890096741282963966114252808506998214725605096744463074562598150296625190974858429789409808454713087837997147148436779085474866812552914357135077659577110252139272632170636308206277212563024796375858833287791300631733023891105222259395183487265862967702569833975911654401296181374917350839469150197818371425803782264668712035671023169924034651605032193354766839024327988776750905947316128467782638276957012026698204307020265221757149314342934376841565856820829326480192833970049542477977723434444021853917561412881419800342882399359634159959092554751889926816163695261334321725604209315352008105175959372954797168099290968943315571449104312553579284915238009591421315734370823823573185262662670751547020683988980013364374945294934615775010982783456297716500908129514559791375891637990903074734802482275772576566221213176235670912691245403837464424928062069653129519459450344726644263490921937952028277953834174158561691798043903527416609092847060500857568286615922001072310892602782176077592281821023663977904441885726490304495563468129856871587699997980033527708394466273457458457959009851556646029313948359535509857603049065361117479827881784376019393623577960076406198929347062417504000611424493312228392097945636511380159383384831465033010992439546995244935800013962964617486149522108386463895229058878328985111107881870381334734796312398276737052230963244688002999492686890963272231953116686799572095974418079881742116622562970873448977031645482763385243988124623632049440478631578213248910588477141864131760643625213813244645029387912195711713791917387356855447424972922453197929886766747428908395374993073576513492186609062754010398706433602248864325139392746884252815974433234403056851452773620800766788934317528488356287829514566302964418012538860792570701380854078807518223997609227600493121810105238616373679928824237730644944369644630979307000147406115441616119593057869580678237621865013064584112746736488194646117887463405698164026666496683248649705109383177100734296476023822658798526766441638358780775187879085717447430645753562160981775355108748899971977425491858400707971928491278152314475120564882916314724564411060763232455791731213325299973495067480473232780315273914666570124938004720351416508382833048889248643337271645885971612319066615385941126569514413193453096583109844827379732104996588412614618394430205773526809427057943258032683618028826794176507929316317505939174607951274914273353399935610113156647627229468948440726753245121163795199670973904626654305764205655431268648273117893699845307881625114765567737686956440742298045498591983841224681127882662019528216679258977444459889901839669811001858800293599641800137444192411673236453134815050552259749131686113333957999290636580057311463233865053530102830550859787181310080683094262789776073437789275454844469390772918941453000975643611303510551329994554858308956822255577439778322718681991171139897738261527032033223683309501606332508394704834310525768522520064574216004052238166156563212322429888011585181468697899601679998794165134788311142187294004104206310771542342411743328142676589951298687983367293700966202453668104274992538528544514547070111078679534733352789607250083792230953319982220983079666831980262662463317894713806635595790490086704128939875636678622105611538186043293297651636276252146598965697814746856187638317870845357383152099794091085954216051897012521845285595871348134116874703921137848887650858932681763540308706063260906206856612913171499178836809655647710574147248936163370436789534638614825018899760828143327390991716029914522898594004266019494082567224986184745218509980580614012374517784900922374744661899439680046507507447107348846275094303930976880916068184427818624705251116737470315016975417130517569650704368593532074295265903545704198130822267514760730369529202724126981133377293341013232753597676851792937028821249430908450765808867318335517013813497283940695735256883317457470956493270503808052412923371249438461167984059419519597721120648331302640014642412430259377557472732696371268656815719361612644255319772519059751972209570716984981132776444298572397839288707216712966151917362606892772153723050327189701756787080437145443015847567014524702425489405732372916246717994564295546819781685397952928826796623628358664582639684811595254794746314377080025540638572737719099844647653302395914986211343200537046548393199106871918576174379326134910817738807405948874373936037318304421130933361101665903618967050783884260559545492690361301227453079127062961788331985025319294914892482677612155940185802273804872925691489339470500526579430247749556457209688891278848941154784672502341556175271629354562602568976434326915914086860389321164232054305726704730227047165545754150092498140249911016099425709002684889357275355851526278822665499299203476667292530369131504100590944045819518783079207403895922831705552910770906498059629025165929980793999861497402659422290022714510178229302527000848444626490077771060332923822725052542096963796636553903581806084923772821701785935945133485834645122554892285757867039497948196066389794710205916405832066541531857231718621945638648556648734593416310730609935370416034037572968795236316529354328644575154132402221889829898574255521694120206906683396414395906886199682292788898743614173347535426768336806287047275858192598812678735784443133420520332467519518052283519348785720398982728717517670936634697372703729285221736838988217928028940918296541618433446838023480546531974856963913469603458231702158459596817262202053279038411329965339147328247615780779063157830756174224003048326470999206372084415572970949379946134561476367055409720355165647296612422189895073828662058121871960680925681806896881830507379577952147449862511678014863225089220949602658626498336181834494221045892160914342649392233295438620325927814559924108404536238544744849065568623170492931975344304386303749853742085410312998092165839911056600846027595699872580975614770626273594873740928383490182905516558314633064515362586150372516793940692749723146175696951864136153531948236708463390194579669906037715060609663617031397966359083207856614765715894595330888549328381782734216959646992813170859504194042766835631597748219458842362131187362891815956287724955259612931313313746056705524931460621553122124383233892116400226586140724778065021216744851496769639758678846914058480033155359445820423456857776864227921954262773487456981646738183891425199397660948674180093007353669811537387174622042293799197544726283190318937000727356745292551788174306412221332748016550005197699554053293117948518402070299644457044705506209221435493581294663505406998733148788333709910451647788684692315523923788812927427960248886066093173237342032739516864852941788526911681556163210129544657736870356976948361834813187296224535676599635868477433909376469357788101859183399614650636407288818437331909993543830931981292838202959170465818976681214398517851779726239575808796163748376844791015398117743659781032481420124069661950506173402140118925877529106089904976293524778824200173847295987438754580547302999216688839288565296545127338959236228063073963674976028708324179196742657024901440645685756394140826476413030293147903130257763011993731108288567211683253034552310807568596294088307516979950361946927274288367798405160277642589975988641350272413234803471909612671108706410703936524681255298112960360258988751861778598391267294562448967927790628266963751655288128014459141921728120749427724840952274867052986878323530050408861705813258142919929168692552392010943027726392411960778507416881733160154479914305199046777592789230889209754520000763800727208296394800144894736689481426468058799209584801602278744631231689463467139042707440756241687389878032157474607494764564278614623365256323764579680496648502489904674220195977283047188353704099326429367925072525150728414422895310705792273982917139350714120224459215228845897321314346197145655803551646661833470751507542299240869122222435779986025651829087896436587704942281844979153776197010701519309982440644470578738417737723730638355479617525014403982133764049808446855373668599762421416418716261793267767261932323655601290915357515410084564212112327235986554940576262461207414552650976627735218361064335130956544323648937650332213457512257000827942978072429330734932567287473315347886394189402608060130755018374903770349557086674311929621274727757792598530739157226501084808800913633160967858358954032748578976758594474217612547638747101523459997443570444734317049417711266273086309634444655294293452670232676084131020630280555596351612077560079096884794553849059669574904756391314080577720236483557427825066320545400942290720925679239664518098069396049224963411021815878004446731217610920899119725869675510166296372760738896712347811369134833416025281817902511355431955379980951651445015605735433180051910107855855429998554512089946592077753235065028861319825439011554648381559724558441541475121571956817812989236731866510810081162003393482943014074587687307957998453663318775853787556802225935833301546306959978640173414615944546244414362385236830973726793939896243333654901968720152839301316199653565544601776992887582433516877852040658998032187250566567471122569510125377728107377217291422863276483386149048747456389378011972239449115148167574961056751370312596777504699945913055779928127693386854082774795711358871165761480378939131034428518473319390191805683008572152699506563096943836450434739052184330689217352170045056339396920380956420303693384910017419124506853010660655573787195787542236874086974552322564022860478082054002055361553808590805125750862192847906673615758423409883125923291171991843558343807599865284534914540460309465271638581489371689224386626873359764056044245005522911691641381838131954215288740938503152004112823832214186192456765300481287164819623168320059431755367429247633366483823786151540980191846097679619471060339323896832957619862243592507544688388118523734012818507048112308218899519108344771904276469320236000857774374425977410075182477729322806342447168338684531205396724835786466515481901248552874617080946501583918268605201680559026283820784035226016133566270114185882514653871709624943631998519472727407942563500764699066866619462326612237981034873944790160284152637870217316151361290537233615063132685706673199879368901747801468799756107677942831783459362241524448974092365883049165576173482456357120334547143833845940535839316785101728308684138098598580505439812648756604793112336315104122551381240817169690365157280302418349435342706333009258285832618005970961683098042479293895346662583894370771874631762540487724865255751464187798989953943871302888055937329426642853803931342535575751777775354135872718357652821693926803168142412585137230503211567445251236288432432804896775369500473123607991435868650056786310208844663577061784408155237815504706188986581708918840904685228010516792743326586501708931413078077544069310426403471109877110326395278813248874543370351019278931608558557975447610490938293318789398632877710466103978510643275355140145116234829596517383990107168931163595507255361643559230601783083091708554191525559653421731428184358917904151175222297505122941132623570392940814632561537229629286590815313023542590784722140267496221893817525097381579675782821431771935424136547043487802747909700511894747329699215641037262692621672657831358185321400264370533460462459948192099478647390592495082129396907859263005003419430838783874983103227881629462493647076037933003858335174859382790553450713135831405975558631168152060248945905339175638645569724390296131803943193772781602170152949914980191098097953304252857481422247461544394134396264266727268576981700886800270495892363970006718955468008224530550776686901029633398843264117616443677737281317146010602230078023814451982837952972564746128257680615732749081714547572904495073768199167785645481570545614847570649684866663067682738085006301313499011620627515755835009470721283453791064234868146456757731982995773689738505014774926441615083207657575147637221472898201075097838190185280297305402411693229765221315289212221788716194909213755956337994705867631368733963909018172089563655417894740108030088992538177109672916243878887883065652613113890452251522472794989268531465407308851944280917178582043305711972698593627694340049568946422162315593313043582887394316669244838332118608433892082106309172457510466539556960915247851532412445383486873713631905313837405144061124070264749457849677349716384669241375512568782319492023483720768394309374037792811358876741809092157316833074861592159300954384023281727951579130786153351160275086486518248274966538748100028338222667958323525058383339733951653774801975905345904964016362539707873401634662837042012775230208104155535921520836950179129419866779020928844618122555463463282109666843984187317174880440720282723919937761685798778281536746448032502812405719467408380035776215046341116319649932716275057088373146711524453455566146751692941518200101721128449367655108982940206474426143788919213668672904226514895857796202171741850329658439526040662250449104888837752530243128375782042498247036190586709630677111391428986390385736010799423753411169174179141515256639087596878109023908601337867083994169770193083148420066917893159069575149474664956418186635282531771068356966380120646857050617830087994662162948972572238357863879269925657676511168297284742914094562306730259863678621417881170556277026455412301938409045862768598950003010672176918735630300110161522367443899133814733078277385963848023149806870100103288708347110216107730822598594926180119676519797241372930848656856941891332863582247837201707696532433609332384432254860995990601494642666135664537367591255772831386436077746820681081043701655837324152811044661063274120864953388390484912818928628334207771884746333410021655411668647223145230807127009045156313811558357548593828073594187991828042445322653477908577835486495846749690688761056602765690636335621736590465089713854308353804892541100152713019527972798730958495289279656371434007795022446408083137756316952436774467718942138105508409756902162932985082040223106646525572043113032363860119204783472359088209210511243160062819562036520144656418144393160590883085684580056635709043126061805027857806792579860942382967035840932144920411568597727342649524156447892224756369812545025554857702197069089023597512749546534234856953321939662866518729699140350424545848169115954816658658685868728383293260164199608994722314033568216299555466089060699054781566071074394028282866246485508603413692204777623285040218522996461884658206977775053515138568534930279580803575308089613605700855732763544724011553402006269835954465982004870419363098341680885363630436925888798505396879029698917624384084699882187750718617272247516902039957405812710909524278975527199551942983907506970175620577343506007434640964584175529328613391447569400270155699922199056992873029294775020042787944160642188836867920383515930128016686062087001848322518223300435439060652015305870306199196249583086672923053241834647097510237347196859716903091373794780027940124298134649753876208047999460669254075099989832782327383659221175614235446381488259225162281585517046795230900244666669494396640518505032470163178032894976736159552863010573290885411984185809965518298026415773390612998429475066505320963798854850135971067046564614131857644238805339181822029254201756836678579793005663915506180043185267371999903931712280524517202308058786475325398452706596109478837948488289475595279563874717429520865328608536313526084663935546246994146431246706924195866261809065550958706578005590862819845779463333108042676292807287756222837406572252105234081475844936866112674039999922135332999238860134025614764989079278439837913830932098411216759385318918600365334221716323221585416257654273045793950546838763293623001340859265304758285138931455312959348361255901380633951289673763438332744579648968402979528516888430080421130461909704631603156714812187676680183273557619428051697536689423336489220962307169608156377191754383319951219590483861438447424090333489540491213634835330965445089765361084884446866771003321425505904267064679837355114368538297221260261877250007553547439199787575635023049585428084379340091814713615309331827426624723572005025169740409563580042031296183341352577547013481184620925453023812687337053290289255204633913817083196994719211911476571416921633901740716546989351898126882933099196079102102964572660777404325563757493970636025241807097544634624894792258088891020538826851060237585712890784370215843937348513301497630861021423256224412296522296486486640065059589988918832577149983489272194357904456975830996371542854522857381116168642577005957011462940399842154959662007527062901639226204109040541322797254949730746764110754197239264583759480570805522607092534109370259280498570832294608245365841088607219326793294767418774817738686694319510314827344776244171206891893421796894424223734119520667401129740959438132595257110816058487048192736269158385797077365303769867185852634490569096890534514082464347025019165808024039100077584552333898192017602101606175952120282089628825849061433956707062302177862359482991311389352048243447664875314148540940083663308041616765024816751480330027632721354822696290473458502054633538833879762317115538141406930798883253579490911980705477522747220253625634229219817540417588865315846686547205664091073121729543386455453527053824871757725650927752563291622891737507398272564827606673991564866192452633131753151342436867524848894314502431582698326746114441010208835926034298926691029107172751004663235104630672387747100963041386310602029288615157282978130986841099367737077129897795810688627967264207312356897898468666127988811427043676671712185751511273928500763595450230065902310541900981467755244615279245535186285946068684791120245064205164891120951366585588372076480454238772309064977932738777958654765525958984462291597170935117948175893786539086086046081509833347634690272941903658608083604914315663640589598575789800455727752208392391319728346935074242013965777415569208032671869044577121818706626461826263668282668512515227141920231088271052432720967824461044734437528234733651362604579309483495910632212850975607631449349680614389533931352389258478771409155531674737718651550288945135841465829832106341469827815691894847871313829663276205729270864981683166372631260888580881078976125719157735758471264565282439515885623600666936895966999128285676902944192468636772842586030912903281526173695561939410771715991268710816278697380024537904678486658987563357394068688392589179257655544332909652689912322586235988849168008677249757830892855318377521119470027373691786733982795577562930921992650957754336234488498220821117025387085095798672750344694613136242896185365759508645841491058796369653120436374742608789416347762385346154523271591052961572111765227585472594185896133795214314688257420496421706139397470781304895344108237023740257236477929162494999073975608878456235564603452183879461272098420877051010900384619989018610791531183419468777054171674942913041396605574010044064326727864859293209579642381103255826659683129178295039995947462052578050709938419239340999365027790469770073767523198432812387253330416690588205050183120406650826813418558880273387596970165163710557889665753952044833539543400581044699575344152583712402443007149526142497441935684835440529034643290403253170518774397135116283832044139136471774287336306282526187134722614357079007241042941517046883061237616388338499255755339741627197312996527330633521369478657808802609589035795101663502291037029615299533415773704816230681117877138201429626190322482808668575904582335169008619388969127133273770766989289126710353889081373562005053111180334137944078441941076944347175885134378302799245202090218285847922434026787545536855060864315718127994410532776101973671190087060255674595103278744983710777389755206592473812329884986958917540302688541390870330661009227136668737624975990629921285245749559509245500718435433111568196497743992780428163128322213466955198666438262245028141876607648932180375856014790185299952363840445656512273520918001854101576590184862875433590855135128526562730009429050574030738630013292556712055902602844484918464496698036043240211992216181991862693427426556930264272182594730917474078873691435563686643814420758366117046092942637050994032600021946612078842061522309351215177657545958012188891477847522026642423327263299184945007337463756702350275995065141902900434863524964318494506521155126009760356597942912697823391106553262921771038421608617801993723890304751228645019085587760804890115238955353625806102543059223966415186607478061957162117986667111265370313270783265086859288770627015224054617039619457920321269191259170873295278146516267938732672158614836163707048254575156370036674835856839191291583952346125911657956937685109488681002645920369033678254412697479727264037911016865857069113076187683378850154946408993269016153570499299257617381105755720187889095952508446230859701539935139315121543750009527549345639263491073399732003369366390750298989364531613120673457265931944571662445830383294450847676101317981763709601683168690721624323457691231984049707814076581434787084519053139663711547969140747202479650924082952569920368184753698729107388512171861129861309074590216759556317070444812305494759238845953264159548005387692819926537052703622679606270214276592152036545752251597783588043631219793076152989733065708772613726406989944946673262851806299354310385945959363048640620842574156473612960008516164022910477389858227600019916980129375015588039613495581867319864968990167802571547294264795620982004778150858288363952453792527164230538957697155063259524950933860451393358950309607014199544387306567242262392658417264058927237071325375263951985158088768727478122564646095323986101305918332933803719368822155830597056650286434615650508626162734911936502112366168233750948494549937508544210422525459631548563135529372182984642572082286814201829222565350948501366568852676027498873125196476853285111162501663990156986643730003047671927662320221098349283923833657524465094987446541428020428837080432028661540708505055395513234849420943202249923458661247955338769173033875861614889145080188099191240072347265738466103763713294822603475434726401136750173263962413885706047152316858520877966680674643460013769466073347044071186584249908644391869307146369138222975627401896809038459715098894932105143939120963316297332823180212221292421037736946062280269952771812380745332361075919664581341908411408867469863228334768586782883066728086565661844118694643917887202681031505870002646309743384091586751242512396563111017774932665035986233265794272444210461909580076264611611124525619191119435666067831289998669480604337204650596064424985903866534474762522542206562501797566326674831041684869677291744164287098401206792632547061559467536236461036864859993602048840902743698939257714795292149965939218515647186927857543194486432861584402390253626359422172666504138332278676622077711254062213079266535339474569880966262668281788516659607067262630458282834638475992208637307875291466939711598950950916217616738931968580733306372081400374765981447247977331113404295788211269288003096300069107955597814620193146491757654322359814605791940336655325532494338965130751468823889637638858653758272433091583133375652503075185539041343978274945194777833499242112645239489163436101056131178461039282142067428304486380163379220754625432344849975029910213682043854202477232078408075308511716550458206820458390437545910954221289738080102206437304819078770669878688069763605588580051947280366260382871160593258055629408501304968977567980394576787816030543853485919219857399039257468882649750727064835366819014046955705610381933413943233454377063460855542147725301976732441219702909497305016807469800500398797731666780181184837947329656664529149819742900746959804879101484831448646393032911178162325278999763331088516914455601143880245984043432869480717708840198858238529461908777907821066852595462893494973419832934969629722021598076863593222922079093100184532160299137659842267411029154040082390975873052959674139167391594917950450894049329882603685110360766424559840647235410078226209533756071516007197926044885779125328499599906745823783141091268111765159726718967867472578149442165893096302029051176595989489511386772234372050075374157291635474344001728970946833954648751450889737862617199216030578322921573942178759636085771328962623134263265903363371863607447370232561709097413636321391100219040168422571766233863688757592977268303264494947451557731811386882889849165780317146297209293456077460472783984950510488336727367534860148075099441562800525667251432743249386131145812221572789375474827612628697839817822464767201624330490540560892970626277605087975727287597513892961040313180798145085041247750330197552984519113664343941723796640643001944697061618229642501232770925547744223429566039813587740029158210605997674641066240537748974828165016188910788720231307272402773106779969417560683517588697208449766337500519579704194288871580219382563407587272522119814697315430115600098881108998552626993701152258947610608892684509108419124257214902852272619992018963563988763499658627969660883664806011576149421381609162917634638727800850591796771685431007207276189777136197103660094045872892488116771648287889629094530669653366392068081305509268493504428254609190341050618777903746334540405556973126010279374224907905790255868288802354226364736347696181635184891740088928781153637886310431575379850928078094426802272269640600682992706760573252592078165071334040058730400215143338229161274565090487432054581192022134199429938698042634035603454024609866878814554657916059501603089637955421910159621286052249688353657499198110433908270620097399779837076057862482023027569783447299848562143574858575985031842249935280782034485896821318566757048132672192376228617311979890904229431912759176609187141384904858505965245713602139116388290420235196085553418001350865280817399825546950026611171146566384657942599324353632924581771110112601804047149520360794043424902338953492106192493083042044281218382115017383850679432762314215175630420024159527940687811664649660799116351926861276668873393308247701008349628018909286889198186010212213338839884132584858344120021831603478531344329317636193823465045900372690238046626450690324392237744174509501619317946332240270752943388373037655477978770121242745028249105446372511398032257561204920967482592239394403762441368392617285956552202877607383122753963176685188307644699611202962216829962796455481358269759509738190912593458056032520770908329393554576779024404305580032949233267478666338337166265985508366039410687137268554821686008045705479798629684033187258886129039265273551151996353607954932115315222219147399184821202368858329954199551922037428167352826370797186241162214826141066681586040748186331008246988583964300004375780754425328885470366642170497349458509736274133543085896252456515322038873686381748103877843298699672563207490255013279570767066847217745696477539805567768109636323887833670206880594040948595976327777260740640003174285434710003933720087496838484410619911945262534618910629886784086649575961736830516912739135826909350660075412408258545000169653965235007671258012232775228215821509974892958304574840774238378972302515219943736938272255004301959030284060301529544586662164858692415252350702781469319305561892359112579629922187399076941449115101582143576478861328324935794816991307359554477148051694200504103653625971092308864789950508462236630646223448065513479045610639752432118010683603112206854412380903332658539201862711710289735740680489085870413204934210306405918942266250468718127450832209287752187704810535214170091712890926552492326759966069114988456682466587506602431607115443361395506671905100059878835939756476466216859637649351055062214298042436515039526394491872518742321788500189475594538521013645918765335401142774603167555324137302699021512073978883701160663961549217560591991988992932023352055869139151098736583531963032624426577782034210841723349078789723993474929559557006343012513760036527087819333205115803381914688628642313781168399983245210270400080689635036664351446300873121604579081296051887106237058632677321133675791266813972604171067725098046859532380047613855299652977607407250373160746270945775179761823208973277418711014772703172732271083068786238967296282561429315331008656109016226820967246738525713144882539015190487085454981614827160834623847150090682399139674906181822338992257366838430509362699339315109646005367329305077871378400493044254527352217225243209250476108125310351350648187336443743697030632544620579217937676313581159712263705599170164723116816731203919062097298988569073933138747662131675792245562296541494398644419754493770509106019554310700304696761192275731179919297378310777879383096921057597877515965911520209738383906756478995094262978807153334518723696769083434919329932822736304395806051933798295674679438611742222594395369769160936795647899455537941288933032145491621789546423775966961923761934158334534484548653058835727815139606723260570086679982757074669182144442311009451103852483195951426103765380244491463722557120017634477306249238999397618150277221806555029029636737047250136215869133886465224919218391405531969005862508951809251866665141043885007687701754347340279844534135472764832855997273247692829101084427912142630597420415316275208889447603744280791205061511933542523530714474595329386156683905717587508526050271820287600617905286899384560331766665902778682643814596202889238971144557174980209226357121185769351422251493044480301027611219974526940534230042771018246736374145002405207065377678120267760700561983632507610350444112109373071488037869457513755534667529675988776485241949682280226968118604347589687617878045791345003529003323138924605554756672855990368880812580106953179693778891458034880905222709571194818349011245494936813801031620842425003321936897677638358265996223712151034970458690487669424951264146471375721427292494808185835473081576438071351265806200572828025711409609634444849498860752038802504818249783613482244193717360073815103315005992222264680555396859374056321936644447947423554450617572239161238899006940916177807093862916100597096841841478029238875964720074420588279880044927394057354739469636652823470819351067355766908279376395764093323569831091019256486953964235093649627169314101949644299309911733250893351883248007363919141944772193318765945906563341700440288656329667525141524412772527286799764782949056552101181568328200055740576292268321843455511733106620570503004822953701807196558401490432418412304968347117177201776028737791425456946396881084621644748004859408877563652338124968676176960830029599050401846151781350480961191094967512706392747829590586234970400342285214171238352495431845619497834498474700061853077251527565104839079528631645480356470421580376202726142643010325068287437564795125858092243670110734408965747629565699343094215631126970922695641364845755044198045392193852226109441071574516368760032398444860808379225351836679584121252875749062798091388563837341964683802905309138956910362413487059071244315690855215062651366963777596794663323101526983073007153441611796921191722909113026783888050399658088210157168110685063132490841523672743697330962462945859093816804985310153898224774039491992652749143776762646933485118695403182693804585765950664141167000198701168066155496538154984954725051958406890263037750993681775359870106628446796588498194024518218200781479318641849826245938816215173897328565017732168974849695034560961358260903324647006839517850474824210577580586919358489008906500658725591317600176343027622009221804018723399156615776888912313456852509253659341233685652090074525018124741378133041240021936926682509806728778204813111173054285416324770531468107285203699696377698107338262570560799988285576860566152473401950617289655379112872095627414030642614557379239579981148286168546033649596234515412721292365017957853129195194115908712078022317705931797967447014047886277474959920029083795728247991980148418242130181129355133427333665328709643882452810004130582786931840623447937138583347030109441367821198800484725956031826387473938297096471777701621413874027944553797943585142379320609299767537245905905329855045247305401131181822537698078508670715210589752496448120885547226551718927063517037585938417099113128593343755941697034554639696752339178850965839252176353459860362797669010276785709244777735685149449739970322118363531670385332452889448992370735670078584541150029470736347089721952043316584659958209254824680584694163066024914571072994401889626704392709943309027963991982754497650317630202278511449107444633679909399611131278407035185356113825761314270345770608531836873449578477139306864061522420741199660346701688819176400475566227333303832412878911362495604023158007339161493276191110778215108651831268494639668844687313023293726286090251402019620690212583839792886957363202156318878746236774611811305856709469348808207239476675784843908893358012558393766488664658997752596440983452792231315423744249531463230640746733548144221780847034837429619381817685151164434519832515526720485235249961613223598034000670749962269513198089788505141486518409369157457400736979240278390115231823173843238145561873049883397093881723266814250290841595718593993574874574126460325673782751153787846419942724596819722952082494388568623596640920157211879638199802413052913428345752858188675897557883071879351494551933499561249177494298665729670834835714880721281982241862918519900007316201374781303781726848965921711318979978340591722442348708769871363673256307754372820529841603866206051513347085470432498650184360219064982674735967185386838374223057419706278544276644524705176490708404590724167373984255516906693177333364664767862177122664408190341168945596037811375341500522804495842340056878090447057026275492828044793399442724141037008132023281146038949186000248995927215072169922991547812292788651036317309567342582330956199917031200492915221734518828470819830881113846358611273486141760126987818357516013571421424122639435747984511265549348927386103290478499538905872324263554731582313764006072835842175661052277979099515968877714930852779032187928931120697202436965327400140191486620078434240059589811767819933510953055192952387998592233035929251311082541839939558037970243113061626058480727395489378200932331454802370323273770282124306179171260858579976978796161681458425356749750558935071217451178916380179393905705355459140591276981998385015520886612853033127250107268226029926523929684072499518557475059029525114221636032849070348134044002570544267416504791215491327251206169796070125511768527446621116392808521835888163239932533197908609071878518097810194771380873377213482398886677180469576333939921337892071385741111951659039628125163340009976740591270030328864962840261835803666816906068071727028637980333446850074936227794632915588417079334240738132248312293315959752814991363862994805879889063067615770565038298289840845350475752756670434923813705609878466588392167848068323234310732136099484496218639977150837192486524416125267083567317451532299983349723659551637291619138786733149805638638801934025756281250483515963955608956458945059830385262982028761506957842020060663905597228647511618670228357774424432769746339247759645251158290044566895973362703676015519729864981222520454293088916302966848077304390531674912084549566778854341508947394457049260573829507166795658108526670738412715957977748864274167508803378673391167614095143802471545123188141305857458214205362333443765478946433778724663838615216106259696237379179966320972235426134610120804076507001277921396335014875823887828097122953041293061285845865535338204245428342661649231713683994218655445193092667461081995303523710366057879660039936794399991850644597520557350409915343365014196195851831247892250223526738230853584287631737432220807441278878528475261954390800699140606181933628286479520775611755717696238446710398225758270874489941669076011655564871995879180554816061842503192880048339010555587972305370181837984559206388929268495933632493346994008599356360685901290969946545680455194123822611620332690439199832992441807608646669635957506566456452580740524943725113974134804396389529350187738957982439786679372033346079141844163427964193853091594783824410834918745010127922069455932867453760511274203728420386143739139771022917477249827137400980709670902320820924620896595897519114068414790642980358717341589792999009174440853386491743221795665684537953371753610021402483818519902866457627557313451503799339127675074401843292594311076471993134051346740351134045812980582020947658900419554831887347334924964925442823940522356233416700534862095618773398349959387856736484299910585927422072492260750272952468690312734747921597614368560917732782711418091614534479261352471125663321641316252949570732808878868235116742300632115169360418910276301012917048360611648961134174155396642321546353495241983224556628536538380609391165460727896938489982090946165935311945560083289284531673801756404399022258008891233482661681442440515500998697041817536747908096613546685308430046144593848353736678925613579203316494368389493338646597796437515836081387340169443792598416457557834612660829466455051991246337405576676460758501740843246291891376702154951721967270094611499958517799919744930687442285778349504068630016751028251392872668200743519410882997770327921801718697730214410763728855923813636176466101656198708902910568025350637684220213612075899448645825081100753897799773723440184762928713574844475276266800052919250260718029336881180975232231780486889946087003900835072825449012514913009285620247094510398559858348112993440124754280951874414864463313099930021856849208876103168694196730338811503539915748152867783052004810202693967344174927798276902938930786989198631347395797512336034471700067413042504701600425393249902865679779469772491205056327021482331402311109612371776272064667929518830441030141325178846409735918511149936741184183032235580986307001683703771840649532717254123268802376756220610973371939316082315748162094194351899922448545341854826289649141484134097041738670922227079169495791165081346829685350463385159646150073470793498116118080351033432804392988271657689967023090808885936150423501371940330307886483570186936197785678024840787954274239677047764730450789398658801727574270010217239454638967621022174846185178953533132264490359020672178710712570954925825598821167809271954843615585429322016200565750392030587075826650493520719700675298424465175173476069690804682679112282350094647804755298818944315820657801000283958844361436501339557242782669326036681026647223807488718170391272815323300211070826271594286059278182795617592061215655948940447862400691815706738193973553361277102476598826690983167251875134213054451986473028675119651457084304243611407007488322618546685556391393417225758241510413565586839217947500502021014543368050174966800253347778923362125391506967213012129739561497763238865914682435763693838601508499692234033942938946415493078309283415725043353279541591451098925517214648788673400795647138366380549722343603817867748937358066213409553666884638974374079842664505999464832280730142208007541821491259482882272603943790484832388980632855649924231647925323768629649041370011366985405082739486569434885151344743647799775360570624211432190798243908813850076525011892427355873585943685265625502866617575691367942137826812469748262376537062257977819414267895953774996561770150446168822406223326984969874590810172277235030718328150908436058777448207554333956945175968091113440981904825922442093229029336169086872808508956055873560668665443395095819018166043794808602347462892035164197274792696100461944763425555037991485152935081495623987214718844653383754508960104459100726134233291651716026493161381923258984178840750231428101976906779647767625784566769696790676173211778265404052736101764691992450723099743105581138662245027225889885779513978595170600215278490473067370280215371852361895443573220187804968294254701079239378140932578235105626606238389010818955900426189382191392644783366860688347475412340422267593183870843013158304641608304420387515496540323001840221988987905397673788498957954511461269191052465581698047239343658547320242564278214133586730304626513601117969155903907292965014066278061721859949303141624920790085910062611162988596306083022688847211559120039782122456786862417289884533952172056784240474670027616913865598177041659497858860022512779804502046696093935271844524948122429143494885811935677604113224862541612245905841648357079212281634938327572072159120048900829751335164192185271611380223756476184810661591130690162783968266590242240964385241270122414611528184179301492642663420295277799216325637812341898424514589048835258559383656240500137014080518112113097781026818832990351126888267018711467260212308413688259635871262114488003430186900285780098192273645394434865819588176122558338265522834419822768829375528006688316785378902045501311585820951707885236783783971366959550286735998914452741717117857713774375505013922775739012371083848361145822604079002548985903999738892382433402921101528728241703087565608087069673171330321455534075727763445188599370782036960895630045579326665661613446858004105662731269178005961085055079271199302180980711779095979070420734079618859274629159859248789499206161811395214606721663051293950672459184942149605700133102466531269347416444605672144192437334380278013999143777679676814455577947803305495109284859768131404032610939197851510559963030581332390720691006909778246147368166260775974560715082753918720428808034227583656573521028103857984448079950041670169901791038384752323416187390936021060617349752716607933081623955926461884502786404993602951782696974886465658215154679961277033183701671628119302857713080895338078867947467198428442160783035034157714905820094593875548390561511721245548777948910132500941551902665394548551809098700207899067350704189546182397592748585113882328144817437456506020455714950932010203177314221363692454023176967435692527768574820876895106053077519867376744711524346856950034389621572213045007707342243311856267029487440432537001551428498217682730375406811236488776600465991422805549220858855238840431866264336488277790396166842609961863144815066868726429250458303529525106785329117132595674976946528928449212177221899856552291643031646064317994939681241471502959614137914947636400071538509167527155464466852870962644925505653682283259646993475755998445437403020170219384008169107810525122347511966577683681622844212843654329239250354175173056361739508879414670490001142475982125385760302474411638922170888054619469419826363369957247123878817978106714386144300503030613586369550728744093862466393990166606811625838849702536580218740101265880798967569050712777337704445219342052010158738957442250721042737376159679049103516551381891204851343148576707218197946444401172314896993328238286660748835314229287581592925082020024028237827487636583920818954790267109824358828040187639180211572680742813436856723953373161697232567331652744504520890816722606895561544076206313043040521958836958612432738125783380301537800636930909010798339701844325081028413342740175650515307431614814039642224241140880054881217771913078717984909965920358855612005424836199303175180042052114830772412039564232164748004016845029134876031052537037220644712013972610519206230219911144964699897935580183709087184656487332502888708052122736973270253458182560596912521951380254411864465192387275207231994282733179483437090140132189713026869498867711158931354776899983070002189394443857576251904959369824375352878352677528188842566731837817371308404247959896178890878466422283334198339294265340510306316623878670353563439038539324834358821131211847450295932894412844322877516107450406017756590046981492497983072443817287969525117321192160964166330708872176927314894375409552288939519191280807396478518519172942519068884497484067535074557133148827419114785044045802685532361906092079802513458057346909065627578170214865824243574450426709361770154159128051662420203961863875261138751889848381025967995977549755128893467692248972479047703121746302042673815496691385752731555436141245489430857877341471118456600422985304144166151125890717363551364307596768698172326920657568313812734663790738399867075940683473916766048929797239474874515286499288696625808764227996775298211499107934093568635827572011185160159649653120833687447727453366074560948107995737286567286583051187911254339175965744060554829726363114929719645933983752989874630911226141240069669572842351314897526520881676202228798219979968178668372354835122905817639169007304252875283056562505478709377726039183041834020792900666032933940786806799367398447541844111985079436861460045741610668724422452836759376841322585834019060130685527588052560817905393086412439330339734242967119553755583473699943768984450278889310048001081904224107169089945446390777074566430330406857077729658002492560089974353629014803993545401228699035930517077004546864521294315992461425999034680986701311385849337984697790077242488220784973215557046398463554202508460474646360191343792568586567165687455502879993860801901619789428526940509619561281183015785234013490206282668013498820299102290064466243048127959246118414921548170588974351198682206024481583969029176110521958763551816398072839705594291355241923501693978054352673674274831697501025244543394200399222451285141616929680320137910298197465468770861825045516816917022583791422653793903373248180334618752753922593556864157574138571901267962738112820022893654000415557367553432051207675846228094593210556494225987506532416502695280621616004251308441217432552102276597488188741747148299872509447982109930614528759351457082810248732244474354476305639561173176745957741516147970766869264740794839333238145284267583780815406124655063254216794622762157838724015375630014038616867821126256367065474601993006968893021604425568898769691920390541271363431646598972747971889817031871298595538032707113671819515960991454628809705738394509189720545350812335547408729068724116448216264032585936952994224174448670985279840369342559852411738550791433725475838382822934848677915615816287451806932644452589620497484189958073679520623289229869946939339974525217193568485749030825113845584907144998311041657957640230942086267093916081125205231832661187073376821309693907767315750244477598442937347372822312870336264799794014203607177746416228248954732455838758821232299845973562221164929491484210407937184560610236778430208301870222690966109771528026211030779970832979863634783104468469193856212552965810214496197705755560342483824154839634325837524373366598557377773289435789467936023543990684553443610369492758616068331657389864079738150682816528192280522011377996768523546302737249330833673812471765811770041543285447291443486543918459631536220563968913555879328791628793259761848280618588732057822463300748668560942659473980192500233964858312543769591689219915793772404329219975662540732426687063135556666958910439894807196722997837780516791685575574764263545950307347492789763386866901141822305751263243858889076037535861102800992739455853306689779963090573517415053419140125888577494793614377902831591178839032420247696750225812673605230917357550135552808292133283561702834110015850754519359842147245678506572958829284394326498623374907510792457902443212647667504479397335618912248314013762503389836290003945532871845497494883031152828375201557420817024016676812390339862054839130561883021831305080134129548916336127803261886246105392159198316876621455410394719016677957291370701526792282202455723595501242612921559607634272485519375488352933490850901820081603653604835683408019303954351427408831918086344580515136452382973062791199363578944292708594849633436792743693094393089586266748862619486956780301999088573501846368180139427909136341813231621818474296567038090134534620192365323962561195729550044226762249367542530251257607773105834532439649478049102731451177741900831225906398340330431236258711925520180200635458336785601946828894862240846220215337676437026417907155859775642431604744579535632904732412530701688014888370143706128107669909298843513511597734516215558898134734412822938832013394058447439825226026599703875448386818646563169259710899606105837860625881248435438444019830976138795132401726689889189929629176328777812251720001787442611473994741782338558596490773126223388793974219246951983407893286760102527788005871015315418927348270276001376485378738102580185884318005581714294790101709570733854776470757186140850626192821784069280833837303753112723303226953203185238360702519188757122703638278101951584693562426560815886188805567017712051732668295275630831897866572943058020686745922840497819017760608243022541164935381416620028177025677597547800237859974638761817259940242919472832154716924941047421582395156012011880868362961708729155370821331687043436961955614023779141087879714163415979771270079591356172523933436056529203887033884534109176333303736862105053374813317151969511253668052892504365042178885239608214032512830418335727248142781127426092193896038557116902658101398773645871666154058470109814074871381118511070616620022380501738984073568325228941276950629462200788790217538835106476682491325472417392168880349713757487061075937484794896834720798174898292011590092757964052833559018443370025792394562145823917725019803491168793076602754655778355128180732162473801772640958630240202391285137052391256466841920108565103530278384904495197631499908159928303022734566353190229309146858129230777595249502519893789190526388151287270909236717893945266365266553100157851580074868075430030715575778619361673165625742132905413036174145254289255485064782600173360013586712247158608670397153831315340151960267745925237288122324222227324525839103193163208532620214885619592251549066777303470738337811188029481559482892516971470511774005218266548411589820296066388423848634589843351808084776046183555883768453354843626707786092057558555509422992838755397649398410864254413629609029130769340044392044108682292388394643650209747515232152537469131660387392518625387908524847192946965081625145540437349954878514285826063709040748315126809991555198247153635818007876543555262261976396194479941294824914857229313721915060920627809292506760130214187706007616013486562679337297191295313765945257340043581986460833195319262511131801134307784557269375551558622570794344388751573325017235918095104051560843906116603394331611472126710636056123288034016975278458714319889644738797916457429273544370341789348122059633138910731932025547915677365976502068411303646735226651112655963620236762544375926829102562751247359021531159000591882064438419345300158354552304195333688216250173934736545542596355282494318134504996882991186584728717600637069958944381445754821036526349574419826683635489871402020862354077785831040238193155034071997430028124618161429742213421989543567328367079202799370423081631710855640102085496763836137179830668717476012944224200516056725769986026108534239054489176858521977826525433429838878393185594963742028373387378804727250189251860386592710602962738921375179704432208803672336379619491858201059079091324208273704793161414539721424898684537714491805027597152782083022145800298111871390783767147580031034890567792274616806146914164146768202493483549817491402873665678521699950027562811933248891324935347277540710983161819837913384102184106436139014126654699060332194099677879490786606072230972479293004348046954492175845431315949868799279024357644526106598612455270533217879360742864065572207215885070670059517555570712762982821918207143749972204961836167030388306280430582588524880664049154897911937556368031211896938240950585533272663740012808712804755289969378791602729197279527958143714821814577925453779825147174043903177952359193614725423739790290034715817876551626666976184440164645629091660948280649092498283667212594979631238027416888733104761810797332829443911896096281885924194419368227268513481974630488257993003694062858991261343960140956919331389315908161314085962631707755672624446161409876602786357827615456928446812806423215159373572178473474766759927278263225991851299617216028171039375717737893961103457866831690878981336346010109176886155795636234800795887924668743175193801065675339326613648445280826281435408273419689618050055379606885193150370582790783653645424313060243619796752659828489360270988413436463394872722751186530863806854384401105741191938199303075224686474336636746104318555335063179970623503752918918852360071045272980056457595436428663499097035347464273277582335732748706650980693024988044221660649519614356179820100067685706203673284348965111037855724936920615635434165066553934037277967022833423540200929385844895943228767757384403505906070670420540154890961334929100657036267656342293375630414109725970985847980231416341488589669670317991397435175117278120094042539539746276954394420083115240551142713024277487263277951176146111638995621083850817204474160099140387424121810055814223546218005911628466816343834614141416860216701544341129632099646120450607256794011598093195517137973739221934529664334004841536173869466489626031330724981171293085965612101339350327050212090347249075584400633580383524572862052262484247016082613819101615168451829738462158536414107512456367453385459358901984006994758540570672417932785114529927272993848294846164567912379725359203736383399950471670869171539803670742509231016408874011812001973706523556432189296853468279198640511159704946853027751386622366038712148306924837835069108788231667047770321736861674736882525118916591323701226122122189211595184571680799460813999153660087254916170335182716783425071146849026559205267675247261006738356507953188166252184776439987428666369510434623633772253850952465405058266563893401405643899841607132448675997673604060316670984535917396755046993549497855727266198984309537800890634077903983191058839768307473184403324548677046462843268554667913003739724652815609336970841453908614400379118387510184848587630676769156270878035099762952174030838322908249074565957528774978181915137608936414410967789567872260010104815944347374973156686813788373627650705172710225151372268068234259098572963645397554750682623345332937121108014252594725849902636439880497535982395122620962510392278878964910143196992014727594418599356362500661772442926904416830035803517028613347659494762023994684445515071297313944526153919116045822884289731631899106096307465196623738061378013539748668440640446025348890640739269146114810745527611668157927486296589593517144675889101085099545288015580233899331480049339910619958100413699502518998775580964684114075090429375284164661734710287752267194068043685459344660000151814543462789251165571795680435949497783727000728104922993702583160786193054889812120484309360623111422657368107366835866247375629168441026545128629175652861770511054641673523008442253906710279247989306449761088679082135416317123112766580514148912477071387674982741144808971086284184077682386788118457104898898512333469077343245442482525704968701497447187125744343124948481374070099919433294961010062182809387476195379258114186879860873539113728347616860335515058178944151241378147144308991937214861170367455081701326763790825991395205907676099683285825513889233920037958254534251403575733648202534132058208197868913799409973052544018284106595416919987979851587089193688650556337313633429005146357769178342694302859654157932355454503137511268799716284393312726768905323641306146009075909305634500942074127011308249804388143431920568927322385591674016255672390471467819225801757012003141601654717665226411547762618883322356053097811313650211502165520300637969491629632441509770173375315282237084386335830246283209078487497706429280355468985576953360272782079322457010135366140296561025302587730618991885401816510131777278996026232091658229534212213179433487093034038034963298342152916459545920648110102298399725813854347404017553464066268788099298430164668107810127959609298511552560204968748578649588254907079038497996368661417593165944565656194734832182184597488578115532401203507961469960151590850218607173298789820913371671883685442271854750236897367886941707585613250413686857416705402401470963622963141792043829241410736095659213492774480213229789492506355068416112751662093541614025973075158926463139444358923174516208034409378286456246503731106736561079888801504667193203290590776432977824751371381559446453244672053251503466254954197859511458966331323387225053140017453971126816905242445854938386540849182453912850154392491238739264731278358033668795524314361820589262141922353608580939229380042301441339643978930289604988206550794239010107183241417437430485407455574476613477361186200460960291143496646124635270245837614880773325265255138249870588898007571918066856987940878567570718288172184925871736635026707767200399843337632261047575114653916443877010672585172364685283290197587549906466543781178421462350432919691733890296533450630801215128274293022293640417394464602090000718152642572529811834842954732969014397291217621840774762277246321433927830258062013495654891628530062152623501174579117008828974923428010520877938568517327610970319198026898677043553799274445392553689000101632087805856626946614747143668587960765720213691145450054742209205720825774293213558861481672741864175772042525555123011935075234995325404716192139300440026875935206471591470466128320979358918528513348366888739716862908690210813786046716163911600557779635674410154978247586615979143969093271473632919116175798330894570417017939233245244739890206777713124071986154989765041129220335503182420329303585828374009847602583742555798074541532406957445728591295705421387617371638381372401510816977092768099426879831045021389110576228320909352856243987566455339168395980269642386067743768740413940153227121758829134282191447081421313298621046384896115295634009498380650110075363079208613151003961720642337946116850712504860231438612914146914213511242664734118699956767046370162995737860905418902841109671649096127070390900163805481134424762212544265930758414476471866986023735739698546022504870449522271024857773854527874935225656147752107989344231753936996442100093253221033022607611458979864150526888132663523319408957276610339796749945840582938905422404796001122282317679698240299512262487514535923869603975514743047522663789978709990658442046059087765330619377364448607726439960753661735234447013158052066542335468601099247021187995126220550683659596885170148492146061651252071862342926483873231000792938712256596544568069046973962771641318119975144534334428813508561941194962557787595270632961364757630805670366644830996316393616478746795626572628895100077413369433048910268339913554035833722546240120803335996115125939181891652025060929915825837712766850488666302702325067271491912574597224976889182825457860535181116744238079956171708781133218647879030125010316246028146470419689424319020846801080598968564239824548280175549817873071186619060908478203377766588379388195929335319813181130962211559852664187293015214909783760960835190000531272289241661453093436844783221820527888216021159459237731637645432642655609624306388563476416229967348115871751189184834216153341752746837436140128411898017541038129271191624332743221617451004090338277315171548364462992003243428016501227652356418356312376331644534805903818356115714482506161225272576044794843379110003169598736287671596451709144994754432916025667307498862205751076533542123719619473578113071018766660046946010254892882822927242890195813617436575507297365385784335075328205470329018873982835105155477086304613817686628733530856243742469420485725797639530108328458177024863944388632719702516459378618445450452803876901684436047040152572090121343478512136108066092234434284432287720232144250161767632006067140773406371312182101963645494194269466686811749525897252553178692314923933470589343346053478363775392542605388525129988167636727593121362050595475081722857597442955581748434319691658664599295443597312768839877547838073558792124149062951131088789345819095662312663999858624750153295080240451146675369689241466273368608703532202795877640659157346599094511896369113865476769149367708910624541503111775461416963058523033511001380177557468322116687013892797303883045430535180301494568572732441032275744835925984649958813689997106828762984630585602735398343431340657312876011310218047209989890173744144058006512726800288008595533430332568401747985007932988864395814749262428468691195404972646288275919006944263418581232396732260541181040451976875745634083752319306314804702621073176697102722718132873547299299159554202979906565811148850312439308882869557118040055827883537949962655170739542468628216741843033641198038346885068158679373248786073646687610898060406154873002113337381973864202821891143542762229733042471066815071949881502321550650354539925842134428086042895388796922962070145682652304844613232428782588040108501127295828321629886552572284905876627973693436476521224816212298375280966857122412991624328417039942982657669874683576943286836472741386879297137653343898773827353082295071471501014490435227704821069544788024697994319196480239141454531376643832358860075463513240626709445144067792685241749792804398411375542552190862891779313230557354121619533921862644372093202157532221963250521615913226275093632580104068639246441674287947619190621094314527012372560630330425032849293599378719905679189443998641288998321902525191958277615636214265066390800754937799902538887766359167173605206497540061795020090833367663134135867035390638904730689957507408099307530204473134415000307470827335819512313690174497122142706857137955670309487723701234417777747616384238550139368281314170445637331384692185266922431044407944413063326924248088666121819525079121675887675422055007076001470316682635922519435239819206263769627668619676346636765700879600816801871782158396057359670065201636025997216437372916859136532579740302654874366787763380872188338914419972994838675598727884097699043800624669394048820047394058931985288185568762866408154511456489564767429886158976463059268339182349399401017372610076642603513934405180392898454667209661809963170300402925868757477098993842511326483254529350823441798249486752205403483147039008018718007996639465787801701482767071337135409216853694287359680175155131157871384716452990973562428448049555831314630383693491982580092232313986295879304577168627291803258704198639663572890026141989731489279268485283010159300273340347378651534367031294710705318161853697280516608615801317765841748224120313592422572726876411913949610558145185671902749929164958081528941093815097090792830229630398451604793729496372082102646771467358681182225357195758480270132079177664108223142729322112280413062689465599727175693175562741607204411375621962801849372305310969839236984615704679064839523829418306076161190813668254368652201079290677232635000187469728991591116846566311854666075362655834538060825192156624239361480672767331957719939856402435246270815306196239360688701906107760178145121887587749153556957388115126287242162029334134187648696286858382667619713200136522583160782093176565011481085484482802344923087023959495035892474872210409996285675796364130408407383854419367984225964427776177104724660286097345774466871794247861764853139858312791530542150877403274691310592920498112623665989832000148770672092002285629031797378556701340860131585941588685146073218095891756903657030876832606289427212060987259148233199066582119987870388980437422605055686925327516650285583122252253738882401164260781039675499522088969658458004988216743957369551336610786367724961150499286423653779266829855409071562955746551980233192676787426869174548235047031502060620778709662636416311262600372082956096613611070127873371028911233186839346817614733400591643178645103518872361586471653717954201649706808117664120682316751620131692877874480169442063026079990697651344391557061762222830064810986598907304502653266384013964700456002595476684182295217614008477746073990091696590818266682522809587584295303878590689473985985422861198189532397507171854462433294488091321705913954439182645261044959053435877223229537297583596488682589055897672418789181991011651382464559579176736994792045655973708564343856662529860720097280028030422127006340506620613538466627073265887159322790336391376834862341908915558764596003023011964813546189919468709126520407689842589104966804760117518089238855049096679587194927773205301033455184239606406422464038217128977043349439834368065185135525317125682349176848985709927332858786245312914568822881376956547392040195889952112855835622653931185554417075108934622812737914076943073360346601810603178507615577016600541644908976374389463747073500860420950784681595619052229366010882317293790869624548083831943084227455808346248734130807631616616285758001265304681001904601212630099919767673206814817603701726767620065569863639018223702391902819586606598445918229658539903583433176663022438099699716936981390472203549296775603804804828194424765140632854150914466554093896892361195745278846490525878657253738339884024237298899467326347698394940783930831769937071995624488582090250474299189877155098262958615553576110519555369266876318565924754723476695280395082619626082713210654100903305843397939073843116083170533472090377721107792507504307179619586135452634363442727599677365123607172940367960666672481684133049533523706386238657442886310975107579340142104628971274991274827720652166665256957238186484148531180485966644363091795295134646452703014125879736069567170552515258026978434847823431537630443669971111642196635760899243321799170895838854403619249500720740310048894345523829122323668439772026092136344723991429176232319686824199699022399796149377899640110436243753704937705657962355344109828228043158318432462058968559975334461390912881488291776291712720216221637633962862123422515410260106234606669637282344810135402651634952685954361979663905529105102611133494051229706089899385228685531288655623477992112670754517979733960771950456587058404351448509318993738980697468549130370604708055399410936078501866843810282557089605141630300225243458269833160918972420492869021765019466700788496196991295548644556132452073604864954673184690155520072660708160394752633810597901150698222571609956743534937661810302680270701170732508522159901592327358235541986907115933699436617728859428233208014789437883447879480195727747241502943905166494045660947575604203603455970911198080629548895814655322250357217571226304323042128481470490464126273835646089391214085594699259299615919477810962890188090846401962065176357150583536107768554062851778799172932740278589200748337239796394560662427306031876463379218213696781635639729279605639784683232958568471486709361898122436786079970607376443338517535305376096252241929001286420925112980514071107906221433937215449645100373159746896096609297672590334104471887710489951219036370948823440952315289690445182116214632368517512849952617872988704578305282707036467395286169280623519309525671464111959801897442477107415152572013952929302010920666537388054966159521293347104607959166914963818928556329007408659739280337352698561523751533520771542593048003782553519367409488790737730410658677944870060591987091709094079633044940400825873836562682024854479131911299718311877488516519800477913410472025180741851592640974671400802670255434731161658407795655232128952941214182719130994639472246673480744145783716785763171061662454796993580287518113493446833954112667973610277527937997953173220549592513291437473293541047066065414339840053549252919561953719210056687918136521010410961539880170030898443608676369106454333099310194753933113954758248635998827025367011287378598929971223342214094547294988396178689041185311749324205116667390016311417940985136409325805184598298449751555489793730177177645437815980469471820508609007477925232978473312532307395031948659672131256071188442756537740149809442086473534901279170960390608497710236761630308156287077769450255200095293250527245698321970032984417909125492210716882237370811104902919586064104319796613155653581364025395699596054350029271384832592038022162089496286477777570999054495184047380642063377720719722527612163439877225075251468454377273937749952571053582158965792586941829425017482406611222707114249638205154397915795156241740230541311212011921443548264151672179008015539997118692056784300536908007243446114285201955669386607835884636752146727683912648103625717972160698111024293227746202123111068952259853899233151767138466604940106628948426768165039896320361158178919748381082926338154100799441017557362003161753368180767979755751111663337640773087204454675431992265772111790183127834852558665766555750921110106956856395873452361887373857949531937798769430767147437735121557612724834925577005435761633498002763315393848768062539239999036429088878798744728409314850338459547158253509615796105718950163420887657841303883403570027227740439982697438171730157851351572253116664407751851590508053864909336934526044578257243827062564647085488630225970472891091061062382745194704590163081212363058798620016174161104825547550981774368572996216150920082153823398810297428479936749918839196983379587917293804619747586206605250730928920717958770142244857820188155811589350033314908502831802951580528752967140361263959142701274080579124151961581992215327328573632318220789276187162326500619587410428705305006070711773586970860075994582924975336683768628670318643923623873515584274050356009101082635918648002597261689440626452880824859712619403575505095610011479672710493846977793646271307351773199211142983168858789781364667314610938064508334248183212421990820717183116465040196559799462422654297934438930915882470975532886694510003861729695607959082387500390419888912432744302878408780312552107436134561688480699078683117521741304976499277040844221994563101412942274253149339291282665025620089703278626726585812017027338164171514493674182807056994000082931655074798969977932486920504268308822431694545898205588519135780067168122242490808961678521554811705851494982600985063588261260982533456892260622681299773112411576113482779829424555447862883706660291344495554814949611711330641667969127369943159617829827404938305066690312285536531707638592293784170895047218391237743859459824166608027122184084888014823092884928336974364257052394754028866701982314053688825559303728317453607160966596405275082203173303526776508169146593259875289262066796676384141368747618876179641756853564355859159108090057094926369719074879356772291497154282398627029961798585940389410492899210964807990829738160286251027377055591683828302927149438409805462401515994125848530962261771801925563824547341628720987853614166558297753284884961778728891078293311953258867772528319154504738857326876687034667502912741862124856937365281736960901597531711019870701971979407553383427532602162705988045177341362101379805140483970814175507510273527009039324056831892932640263426930004551762622463278622199718425206296122189739034745710086185379516390559969226464404042724641029601012860267166081083736532142190749364566571613621963887663888932382988709544211483858121646115250781470256678269085557033890370373204712673742131196169104194972223426840739874166652354292950763866854895939049166910292186057233779975967020048250185463003789252573098582228624439867076844612034617518880847425781922549602697094671313697862384784263537036244922297501164648413099724795511631197958330840050386985375131406802902717022902859793477358781511200811069454959746493672638008540129326921591326247916294894346205996088218592852428722815115762878108659298780620990166729692407280896204825609694846517164156981520022267116357514269623654629308891319156210558074600768700219084451054530458637212919783022715058775669877444458429445859450700343756273412224630747009334642231839801787495169086092787738877303239234572416046312012238720928498092463031621840257699391316411608822099329623710146582981019482690725050917736265934383203017156705073851941781262556766646442804990784285655629159603796387526599734266517577965855260423091241586221605785373437934405288154392762334292402035576184714604186358984061227216533515517750456581132645499022778998944462206864390514370157024241960462602106312160928518939688568685520862552857313775697814613630976952873973042187756268916463370634035049719213592364932301807762645282482517245641150245879462205435338534444832880762653743709529277823601285750887257886113006869755227698705540056352687753375799442243764352456031196279787763236936961972940709744703433705126553230142319790977115929677644527614148654280186385575203997496978241358467166035743491701752789360061771837608151754497820900471471147946701578729177726852952868993828677901672304760491801629697295265987162197067324292267243181088765381278233298295177085187349752208110541643940880402254074471442648057075008924069708874207018422041266912349027937570105995733985045774954110964687247733281401240932139597454567522894329261581238502394046399879093351914150457845503919685603905866563305100026387985604121674501042441886055774219930365911815034162931605577079856309725227161283900527699435872783177460890353616472474580216139647985979644267674965195141232920039486500722812101797256102801455285741078341540804560521377304656524841879674369320728972485340415781580832089670199323498527888810540785485264534169746468129089925353182321239569936287791918240019871899539198635771277739296118143634992676553372699910269768173986749217039561434842013114196145825302139788788654289104399467949878802940568098736383903011215039586806134770587354324345011844552953090604003421564162872957546047343568787150396828081926526802259249320224853565021127160871113752789286082856116431754285407597607666943795572240641700450720423296738945124671742968543801652842674337093513740802251005456282809256227504692816230089713613935813643233622599649857552622939890071731529313682450708939445563831341090479144392069871849274751797405367700060533118904839364717730398009054569737611416285934977855938329140930858576455371602877344196383671856038408409727104881097839065179584266664182803551176162835245326541598241208240559550957853949373127043143461176118635782318220611750665364563266125476253004414769239787675680662958421056409985322504902279409024851487188931087520028416062545278305445890326532859371812309097069940090182766087384381975619140956584286696227496793262079012101439393593189085631322445161877896748871951081593600434300092211648774750145745871942656582484037180582141357650736453937958100980080507398444622806625051105178920595375499290860634409429340566516011565997302804368782070334949448655540259810376403198195369026668657887579626583074606567956574213001685434779433390993209342697337922768192417079129494875038664701996093017913453430614254803802248396541690758909676150155171349218785495609255303636754785721684104669103068905199740349429361978091357295623658723821596178914294173060592401248245315203408335144013026429952832298141546841273839590645348270511638419679537575687302384424256787844052208751575794882471232197525916869403295035129597399295559758934050117133642910969766156680899496191930193176990298940235878533264449019146749251896475836591245152202325429546538179691294261629193195201872216930074175650947778033727180144142670807577632162568064757305920489578005898283662675366070097624240659092169704201238811251564033544051317814739667437990850831869274171689897920767608534244649013683390278483788167336163305329733000339905750063829889335976096845740613261687631751745848665157133539276457900392653501993057723858994593660957180828337800766140533090668760208288355053362415624232979050420075232806033469622077472476457999982307194596232819647725168128877643314790614625227922129439703786292425537647666072293048247602190004625429085247606695682795989818441988973531532907096864091576015891525068113536464057666625537484497652139700520592483191458363817154809010618109245579473157854978694893509821216184548882997649446594200930036372760931382884768156324049477310672564566771391059589230762314388105818010704498226322227368843209322995380249893245257311201014606092394904952675063046240145337767218104866878277642464823447963235683033563612854240647896873595117804745144081251596514949926954003659404249733089477798357882042302273882105448977452868394365924494181035198365134006946781631230385886295045078577693679677500439681666470990465420974085042864552305896416372965590810471022148666982953049435986780852127304028447626457379179081998751271486501236784139431256483778719977690202700636470822679964479548001680573066724295125524250294496526478829387728956621515994360892828474808056852489286051722783416239686429322926622131345534933511693996541030606680637150708012311571115008020650111487179732680673262510960707780710071521609364616376047591111442379974598826446197037324399864412416543482403369573038434246451244171390232970335114147640234822517043940270363618668105789098398532690161238677649216757561471005499583420364233228535398118705014534337585693010035872862978641338071210954030766169617417797625470844465052728412274728541702946162557930534481412317919366606755076756740431674853116539473093204908729757213806056044032582794466829680625346055048093852306583585217940243565236053849613257644208266637778072629992525572924027535869118788867891706796307597961330945477903370700158386455132307769524961640862546472270107248723838428051806400773298116735990152883154218991599163317676440732951189548146558811844183050181356048642433396883369609932294023047891607043343342794816242637141887531213652480503421049109867777265371282902232154145781629739827007655362863832681540244818043684570556626388957551796244270415551319674370619484813893188217058500987752302707923535715048802877843706600251740818080483390507434762289110164414717006213120225076957973527368955239639773636777599872076184523050729179379261743448615529061591463629401882670821260084513505856830169064274408491716506251124462210893960466923535183797377426227911976497322117369449810974685774467853627828416030587807978478609725544565500656219230236697919087042108878394549618304282203749103251892876444978191301324337958406887881804497152710575219382858613149210442633330271657277694568381848303147590537861998698042026051089115714507044633494860280442927493829315354091010416312223283605638833146615988234725958540354481551353956264429333031022193821554156475931277539074013876503799571614058657717793880170391922385028918496281795764033895476407360191540935798895535250372691182707725762465102162133477306640543966925275700017235684881431244696462443984376127668561697173077291262836712632300815214883531698937111648747414844033311972387771464886576884667278999991565697187626406971455254429872092837217561231786442582007815442167164915220134624227343921534683689823967549301004913731086256482212473302910850476062499636065149678066204408049804705797715198643373430961697841602599297664426712211448053409546469368257741685840565576056170002221864792728335776142235708305426478683254804130597366321918306876561553854743602298394975452077357360364903995394422669998281686570032745321911206665304926505494273214743352481085664095989518446104659772436974759795979631887159447873935534411272135557141747475559764206676852717129101646017222582266899786581239325165981614805797938659790353718796767811973829697471110811680214126897435513868584962021597820636902636827190475233916712387265426936151017643199587904866058780929196309097930832008877325873102146299841364207328202643134623125100320731288980381027986301549444350068329154023008900455700239521525189785260849379431270510353697082391679098305099229603439841530407521338793558264823538742279652019403186579362343659790086039229360442861786883987418935490212332133834394470146684899777453824704554255980671235842653385061010665018061896098992331161384390334351009528991469887503037731997147170995853646083675223693364998920927808735769522110763045667281629420694307573415049274094617109492184327673500672215002493993835070466364705133384619060047082632341920389488813426897527279755627473935967332765883296188720583523215361132296368552246227656968967381079758417235551930720411643308959724249833782726913654186430471042700375868695414394158304505288159388727741901722018388297017134150434350676748536460464092221393163938872497891590327338478932478516011726759543617912026062429576469554456609183968113638813727301803362430660322370679016459362766857981104942790782697919597850771310313169635942877344235663462545366961110684619064849903870809068532845676999571471296099105779133841834422643285504937095279690438826435154364496100907642959603174373748842313880543221294661107485784630242584959357789010404191418159259251491130066488056075795213902011440034025906363742214474493772177517254107828934475218827372579582070756094456251524627160326662025136420189946756818812743978297261759455968264812782025827451213073320076663972294071007429552452500335690045530253986475981716656176313005921689647867758948920008712818312078803421570981837341210459560939807144474328155941499879078728889888785275753416344212957083641272796463830022369476459638181051254151609019856800629682526950328442473193456566563536433683331257444403745876515271243884218072759982456725744569435966030833577757113079627276602708075146859863629608806669104721909528838460540081202721024221627528879002211667429224832138826932468306763497435241274039068086886202751533371224435780896898859377035206742951378103375423872006048902019452612861555999939709104356302790083141046264635086754476933591549920278120727650826978055259059050820170467795483252431848162787031094696098411351846132066385494490990420922659208225389854352965569833246334650950797165611710502787115116273851471777230407084669938023141466111280234420088280134520790830972607418019037255525401705235781244560638581472283202094812971022278997839711804793584392533583648400773009791388255798755918317670408388607333915511208279857557801161090363668831366405146425961677116416007927668812505354282940000093712777319081539449485145525625177684614040330781507119972173818256398393599869517247540666913012653127244254657371009286828838912332820895166200928178827795068924594805748216579195211947312997803941037830521592978193240475162560295246891331031821291285567312684803736934182389358887981399389221644588899971097982000372709996414413276450540957081452169065581405738050886485000413509592211586717618238568835159355810434653554801810159936635153586985559423211873209821867764004640901345575398470161320853409200230024574821314364563230966041144930526743555170594776756882028279940807799470064496649949948749513450011134543118067390093452495993232100895995937437015890109681634714904321389741113423200446459628190450990344691483197485683966805691397582838281723764009613270043469514678248474714157486132910826024186909070119994505428683011042530468135287343512717956090232323142406561578663871928003518256046542212907104036622641233343006943519945185934661661639294221358172634637386692059354743440502629002534606802138152658162380618790758837458285734958928751169099069085655477187109730955844804102276612653415808937708868108320489940662203786198382802996165900207663191408696198798929737651990602323386555307853679096240884707944446954070018758303724419406569825361280746994235200439335929775521066195890427909682565834077423588689795564383122194375064925205404394703816917437295098499934674599973445083707635068193952555712039407233331887904734964306807505707140562852846871315640299604497745154545040300118628546967647398409914920172924662755971357474378638555101951620466368539409260854776483047165948427775026748821155155979669584967981489756743600778185714491071649930017525370663728105748037577779213453076583485842661482404601034593026483936700178226064853573208081772141587618540313564651027747215097678796974654784830639429646201144198034629694648458696508529270780953816367978390922370608568150913114091694831575385676227376750284796099498521232699732248396529140956768200130383282190201072204641134757311733561334593848206555350659593204879405884920957712091057751949690265157086874561931398410510320428921808230942899755762710385941634469901784029728188201474612139374469044371701970576969571243158860187620398700637403828396780245415690135164021148915772335539435702911956785702901504422453894499771085295969506928363043914912062009593952202888228902234769913509642975444224236655832212803817909699090987316993198747814753364351362127319019141012648670650923926160292863511429617963187629830063835290331315513853042076744553111466383020188348605477861253522416851237231628168947797899635270430913284291060090197507164518190413506702504516223241872355967759049931560327185782554206400109917571344486743338888426208494163731141358920377074006054224699812722405836962140747337246051447677897762008237024442595923262915183396953805329953543446805949784586815676004735202959047361532962899355608667578442211648780291987969294943417189464720662966697822897914171007880562840605713442890356176251962805884663578532177486678757287394058035643968196508485162518682961683233887700366307055803812588425119082520370065082118110417513571301923883703560628596226054072725440947578669780229882113778147653233147661901331338813127261201520863766659021943474927371996737776732999476220549133952573756724932029820037520556558052658170721644788863507972224134099685092124362006204223318674110907274360890275904561515490056067036850510337361479479040108801339504578347825792280008011330696971609695501019885953197074114611233539893568395835093045658356722796014994067904540582658517549853506949786321967669957880206646433125592868333145718049210238322647216858069583978256684338262171439694201287042577582943564372240682097591080822085161918412244811860328355998577899970735617609244304242066851493756686347230992791661530200127230662784113427342801620745253318244364310013819637220678647882693610460400247162708914266262289412354688175031056002328239807121900893598872523074275118087548413715980051458764973733364308088331295115736918873352166450383593495189262582855985678473346194200707182734262665246275332696739556335313824061569530168474826953601792415556839563668871415986011421526624237285179059364119572468916319594781996229975128251727090536126649075142078119214234555963798328075371055653972583522862307237814477105711187449547318516949474703160875953669681286546419127878262902872045948829009624419829772583103388106453168505223109432030191427973413121211031575196875791306768907252518048531304720730467028803706520498589198559671616324932456445437023520854335493006192982669839133167873881684795587318544629363505763558907730003137140121535564625531080466363110518140694116688040868093233081870345532156192767007232571953403095615014127908902235460676119044926224140646804234650263807426807855383111658499928867877177475798718546060503169351610065884055584245391613081982320823831008084670754772521853562919217855080506256168437913783122422345591333738017664810912560021139064445809034683088631849075634872108757178706032777864151790957237114496423099961025660994559283917631572095736148565077071427510781676116300920912497949023176380290067127028537427101507427249979792711924929421001684232029558156008067647437064338106582015276368418302754076359955559076817261743269797875646382875693053368071036836162027174422824089803709621621594384626139662400090492447528054577907561155684167483586312329213057091716047264701289787425985393950882633889884009588084848930926149046112650260413409824899109048532192362521556807883587236885604363680346376360699461560071827091185569401320620341775916004935693477971909763568328198421608891705364828426779065168252898044570321773674880733919706247941249210775242841760080840011716234680476570401014816029412952840430767858709553596450942909753900803472830152558857222580582536397888723635764276016475743863120076934450912550067626889355903424577691754889064387496177633129857452464684201020628867837344921859920259761620502182145416203993739337299007079829475387819778215805592900895336315099207440177907970649567115553881893256531978932121114974308623998262905927315167960382159627189221277242112524188888319797962293899461513327413696024651541947942910124028721179207580106297104541981836261889380870045684597403486075044244671269679950653756050435963149531042660577477002322814372200915873984853195978963582442391938646231508102307857810084114875132163795580243277406446149716240785546631785673683104631691613607973598004718348474441874324176969589871165592812412376807036085159978927585769606895226173085724690947925168217452672793353228193846134828502891577568784210793003075324823842670946794857214943469150592230799326180159915281115123592878288043910306310107211750830922249073306901254700543530216881561833743409495578198418284455809278670289332169982235335739664781822940346201974959452109681913423982835387620190889786689663600634205339091166519265069352449022587028911586094260138694119283718075429794745827536328840549157649606420212602287828105144773373660763553941866825096835254885483777378040238863877449530898721792843542190556348891968243694422934078533714187868045186146663983176820942971151863999314463223930651028440189673550720272176430082937769812194083024165142155177059995866673575580409535754589144880892768458634400185127457350725675525785688675657923622905166642436745537097409103675170881984962557720772403207816717063913504547359003379406820794385026413922526415804098719083977505353973227393303606744978975473263251737855696161238098551895059515293212105909945330906874467974543701134705267595007252055268006204667608313060228832741643388659263301642970755166730048873172973246274552497949693068659635790429214211569523094045418391852483989505848992069196476680997134012196687134746272600005431344355781418625896324760597692764747239690219064103296266513742051509734270470330133348595946143965349023780557281865650373334879444286689279626438903734815919182650050127728825337794403482791455540012412986195571626178309352631003124168356237160871407207657289224685846618592390850389629604225484316197217297107455880594255128151456036687480038585666093432216540802370268469120297091256563942015543622528749941672649590900946605997054398538674076894595901052786555822343433192727182501408777606268524373593190884501018014633011035979185758068512227488479499003088785640356119307366065952844080421567446171199848873942177051346059717455575289932214792673789639316377433711331772280743782554867090730012672011551498571873069740990415268955881790299841731595264817298783141315831788089451008428716656769634605149228324464763374695439711480275925524934661480547819252536960319553443601555013169874406150624297620424833700993479992907342379010083962811658407639765368549800688584958329621747022170871466062370725826188330384065237032966597104054483499667623993336440504813687091332326699003228224357267339436766218742162038729515701217214739417411990538957218646211382690049356409021243312778757229717731438777462960807555178040922064582374602287281918434981938043510942413171260246038594520218032734711624670258512806249640347449651003433004922788647406344659959194789930980216436910369268286070576782600833070968758741413966758004124429824490408733937909378394249764072006702148143314543395519350298540330339797586893735847616503494465134262079769827061631192892627542524221709600792587595340022515866040170924267593171977633736117664673553276755829313486461345439914588108304473763933688643733875765091857069357967433705462499356391762006450193544578385099898413343190807702639036699128468944892824359911064152264242346247980982000238135156538135941553738906035181934324328420674543190093623362464951442690606555562990657308522458914074483758523483051141920143708916561159974423177741243313052692279072185314929879282743562328739329460052166159701197110544163506235880394286968694317568145085888230053325410954296375524479066960386448614329450966126213193730779630116445674469498576558117567880942739561621241311497714784061068284863344321204460195374942628124609469062561794885147876635292371461838960768457525391234641807062747636885893766126516639558283630254552939796529096402877047355715769083430980042611791707579675635842877486308289194363393611454443604409694737043025694003084995865161828663452567790386363629763435978719901136487226183230184668675576716545805471595325420404586494063427934376145559704028535584930145905533308126411413963143766826710385824123893089581879732407502136286588398601613038225973398127810068477437198305344820428018292078898494719870610338407199322186528767354013194318791578272605150780745428352366690379118895292921037233580009218735190702971378828679983733111608375818667129949917394568398994954566184907427067600357599075184089872921846817240634502675738031202883983704137903016063290769361376204216299079100862906013012850185581719039768837658231143227828488559214937959981381190865180742456593846581527502070977463627232756848059464353139449972480062912060490196036190597352483604943364062130821753785562220927731162913551188714734598426655944849769819003683587236104781586591606438493582741268795292045721890241810975260808583905809777866107609674584244294250251415011274165136746575212187415262723276758202757831981725868312763444182132116856732759416453249135554124115587292978977286318076299146164165965139408631593291206089331162987392941306399902751091213336691542470840135311794584818544042459056923545398123790594125376894134153574637831018189239913080726234923302410114224927789189872435616521360553864274536572383931013558347242794814533518473164465372350194109379587344766176803555296432459023422295141651874286788987996508224248618692434583403243168734622688754370139323082431918705581698137959589494926795388706260660045522136766736990493156931221646536823079495896880020389164607472959754757210692672147781404009698648697173211768012088347878419341626543747535024469004488469982097041211706854420043038806393662622393021760325339230759855074326511479592464444403966088809360798774582706164494990814657730924203196050143829891020631725461315539919143937024312293074058408751181435965372537473642535059135210533584538367633240257062364009212684391373249976515707645216068993368271735946135016036099082151011139748399375194878625873828804774145306892115251504149305578151363146534035971732905861199321411819723710929261608131997489170987681229873557653285104202363120004042941648233364002444308996472486586883689905062358456348804039736430961454972543232948518057254373299516227848042797756984340693013488108936202705030543759408860397520868714566317733362905447743354435867919565476034699971290381249072145616403011710211700649837995997622892218303620513338177397257701988252967396676374915925621306003426872095419712719310136714773079875191641147787542361082687542654302286478926169467007993664400751883967591868271158419076926575821302548214809630281183807791989606605722269622997890298567225486689092670093516045090903583301784745115854563855607402404971510314874182451182643063005740006852108817070653445996854362415297607507761623237929911562228250685412343683408599164635673153556240169038187135208893155932409729369029293013433020701385689024015568569867450372960231252534964316234748136863767503108175342246719540509765777786750573170950079977423117922736701753018788604329445888101604753698114025607867365199952041096441446356987088923326164201910775498147064387967317470468076741263558172117649124991560069926917804261639560006939613416284586673376527827680405203755105937477612459104378428683195050984810205313277647683364306571864409176905610044174585755344333827530669150669904011922417832559042137943077358838275240172400058057165123421635598662279492070247501360996494455925997351513966238809255338974146331744727272411281024099536044767839642942556771893005138052499069137861143725320664866563852518003510854656715859051841867553571746131407677678676184686982494392777633996236602045217536193461688400821472315314883970363386117443895643688688808339730968703169001585163404582712300786331760128656760499883169270817290805252779325887632164761117950756417555178378716919136269565794909905934140136040278167396049326974863686947490956784975754160012404137244800308627420301137718367997998735434985648126050950309753074272631769595601216922174993017813442352072998503508001668932240017016971199275551227570040384005872445185412970875717856230638049028264838137068295857479437292083814540452697775916767958874752285697900970222679684034066815866542862705393966648925694614015509489168863240610136350256828114942536722719696482329322759292212633447569740739042449347116603122637248947326796921542447813440700269804697729977636651450070443296885677154506214010863913004511215874406222781003140807340957766380211408106153126006951807225597586372265994136776588818543463948244487504405573097143669218699605968840824440592553003454431650995588747129226469555350783736276156738394822134662531852599574547797529898491808510430013910566379477945100533812252936180681590688165189969142608554804514723280939262767299999644347660863256932361536192845208883244707330203981856039951129594503563237036269217254746243516955268521114558189540246830141367727557259136408917340104068702206625564062778812496810822128139045221797509207351103231346960428322400979222512573570425374145025364985522891272111145342448835164503596407956312964027668548696702177847969640855571963906275139476897834856284058384352345801192805695609409667526943508807765690078263486478538837286234202677738117997876858801557383281764351201405989810377130171308709260793595660440347728505283091415492384689843075645785442038301391192726025238688013307929744157358987099312715616775132022623184447669480385221685448487816514930268858343716092764506154253764379806844180583483562736900992009692507444398225434673634635365099772732876882030446371412161077037050117031332661931372491444881544294975925284883741930551151676757354901879465200125774452777756649092989311914395324694600212341324172674826399039955828013949221645264179883915120915586006133125691226853131918476633061674963395909488254900883750960734636980929211926233376326378873599733542312609362514608796629422873240911294683966469753667661334675977843529842952949899450093408827415087550807520917701055039067406823183015182927366132975173288317954062191341685384719091587469570605867459917642602507102941300849336866337162390030659021109016060264077713075562809071182338483529050800812560704610692465541566284343348709755205461892242023745453787166446482614552274729238974280208297771958711673830302938925310687628635409754325013809315408375515701198251599749567667660303934550516665401691712105301177154724229020469819784174935313337319519313818704344724834435621171821652053742972024219519944893008181150199203170916177498190638709069382022017982032082668349118985104046848583414860636455242613207177404269763517328312028482946485829327570045567094666951672286640257402993689520209057586830522519889712217089315764847877272391078581256595654596462103723863449902595382267397969744525507552017685726594052973963997748878471764829141365950465452611206226488410930485027533516904959901473848714873600234997664108187815006738382375192975567720886199344360479913434960719129800487465497601155551064031820986702037580589240840650142679567474310531876562683583795911944044884803658028868541173040040507999993077573091212666230357312808543487246076455359018047386835731699970396716153171308535904137391020362225383750694976828902225438091329209638583312353633428553982022339848158850917052348193430971985015371122140081841664909002635600789605216554309872819265254198422083551416002985238964500252797800821127673312410578197714678292671394823964697755922019214616731631333544706101983205066959235721690981576724355475886449887707263734138682118401743560768479692024682733417403847427885825650818123935870554766785026106261083154616869635283567769446909351500727446564668297777727901352474892475851701474617063691536908113641668559232623169331357295361990774558169624135993428309995568737743145314398060701372174867463992639567231261673532334602592016282101103817553767827174918600939450340177207489587335000529712318253779530217490563467084671340957854987099170068446847899051913334602990493339093061121610819093933028334498897488514116991403959130807174784353014275064610509789939552698902846193951758308600022730005818693115570254532541917077300879923995583246857837249950799861687159595058502859356658655920167064897220091678642687606117700159953042991071268891427955821501293453574914096703489342696939909772331414345665739516860336422337111473868744033215750706593422326557209076057356280947607509653155500173109657861295260179997874846927505070076142132896507391463427061621723874987566914646108687612486715423065678669880373104118102260402997092593475230779462384884684631232439450124553620268336616627934443158093853959357104088541222740565626684952764884526912428900850997040298072689578146271396601943635948094320467534739784996530401143663155252178311501104966989429633420460092045983354829423618803630508243707618025356656051627612527206851098031259913762515670683497405495482371471091898732486566684520368817050524117146544090314674990276573599887504304225697695070901630340168290419729386747109150244304156063730962031773845446980869967170183852765914756985283768805600757433727648819310711625413104325509264281631032342580461481073815409626073750493309953900056299159130988942895211788204244407244945319075908862040948427929660638940883886212245906947872051479716698678756296265677530310997593751670368759567221169975866936998892230877828259323129190725318498899053030188474843316815443813649414713832844619246021069212396882479498278968151168712541254075905336550305295497869413848286562875995492327190522660424808513051226619071966284540878648912017340883412141796627841013681966310874287104331082697444354646032182076885753649573737962357571719709316211763612253685758713058090331174689592771046934274677731373278105059684106847475516410768856225837090795467758368366139498107454231443794493830349074101969743149275567424472574216754169605715165088475428935297432333404547922449978220878722144553010611783551136405090294978069456168784537923499853472509481287336836347144172020356099613584409058863094596749590243539350300878743687018034659945314593740803203982027601757470926346220592374140482155194322450921638571371048020007612988479765214203072590779511515044086351904969392013517755253773651028241803868777597990063803488363401453683734417339643779144626787707909321637176673866149007681183035220343147046159815816694364971920088914945929683796410748481775727450844831999834674738194967377810539851468983627713395873344238027267990660666139009306527354954813261432878066329064814337887344938201584837450506297034018985032265075327656264319371733620940140418673939400345400233754296001165045732512555208687486860794038918146714193274639000636287507759962448278292561601030522027128600768383761374524293028828259331181893294406236414731270313737000528893030197956225181839582201089635341203342076417503058564809464111716548397885757694548462525448600701285448967173586906078388359462359928337522897736774222223780113792821358938763648342288567362016860123121487178286641556710841002182948510578681594500351001293977408615830133412448404826653366791172721722071451683262292433454946857130706080652962278122748545116915008921214758050158135110750137901028259991117485546395085271524809660461950249064430901674714839724854489314651356411442462806040904860673204879469347134122379674762623650225907283210429325403468184609024629466261351188979844853237557359528276265636913954354948714483223446555693476286082925601528883705087523158272904844151720802859929839193409627270669541698485549371457051837688103925708307591641280720476692970212465764068245608583141184995713231745827095440506466259869361352239650373631000075892288467664442647099357650451744128339203285819020525370516175186104864566760527160824586497992018341561899137153973821408112785802255789555789942046572901151241800880894755467553520953439191396249329181792473102679189154549260314112558394475129686227353412727736274304554379979542551264874936737168139424025947181311616111385256885868605949729314246526187125318901022859133495792371486125291439427870186347868828232178416667619395306443451797052402317035130500223142376615156653232705702591131498678301037035761827777500387085594102332352116590799648589984307235086408299297443725205375608831724990882786399549242054002455952155034437620420093269406981065952625883083402476867490009024336983056021908890887887834698426666118035195626216662828105482569405962008295165818623953669350685345302350431608260909525226714948750509796683493446289505548406124998131000082469926242579098198461213962391534313153403471918272538512522615592810629046349542657721153477172805287434422430289174677541232609349365149932112634484970431264824729023870790043433775225111101006795412883479178152376947977773733896951264020832427153963320135542294176561248299486040850229276327813686525401861079814479035086300787912918472794055721099781380964827972223089337393744764111479831078048979208697890456626610218324229150536905403026372152156288041711785451197239639203206562107010873216386707826101639647058628635516907926480804411302158677301650773393539111509811346711571097811333929961322483673092765705851053751336147991086423883430559028797641149330189001634814121563092138183492343434923372902912832205420964783489333110785674078609842247845779649578003457424273254157834810468047150740407539909435691438650042786489720153893471868591564723924895989390911221730863937261921001574890469042357923636925344519426522268227010144250572325191148209836736955413277319904734590374030662581582099780216151169951065779989830905558656410779322072331266033050492679480261172646336808403827659962246109563972831645819821400716520545599685322610590225327519612988179346899639660710410000336199007263897685498920523360938372013291058015948972197876741674617942444750116273836150647064707262797392306168289020307439046067594641964090070775398371006119166211931111822828194267983405963724062703866034295126544783574578256237013452261275845926429495349842595117532473145013176314587060027440942359640340073240839743546327538277323194888336822491513739824812929958328517991582464066052597715944976730799329436719721423440333409480768814260250736810015477534263608236656656294598528059646389049096405305346356650571096265586218055529631654072174654996386657939473219805217511531426111925287564412950328757850622040151600689592542712161578859045081720705116296574735662317923286009248171141923267714757950080619447898343376631564835722533728357742054385144870676896278220347606155241188213906478257834714938800826504255210649062826641356086360259033179808740220346808263144032609538371652820890721563176640108326353770618812688315881986160699281667131052150907397404150350212507540102762480311138814364418714313998025442874990271169875368711754712784562151853072907433716143862282415265286780437865871078505619144853688154637467069144594382384757646813749925892836478255939058221778565045349930226229936649155201673027683798655321207777954855816278001632846813088325481623557108268563653902136534759334795302563170144649585995331970687405228415475255280618380358337885498195364727798658650412262361524057337889132491344987094861695094921924512608027001779641897817033514418196406581885005584092629340621169164014687625399566481501266195473253975778748845920778520169056928210168860089112069295698550868706118867817081682980552413188201591897445883109361615405600349143362147156228816654485916094627167510028135983538965937210852446903821637471829670823141142057639459943260254025377091588585003931412063851850292065616181229277047495669705971411378695021381410743664198503464337710635078935765238897959784576734315259657773248714957591025169195338703473469407232511867516769196337430785679248795391137391509790704436252237808691000363340336301398585243238007950574017077692889984517305368936071200613934164513450307153547214065175340768736352788746400959947478379740631825769057549371408405089848422596457696465755821451920006951708733112628027143469790096909779416165456975964980161012645340807481624911614397229511440682728339808436723627986232957566975052166268347156996985561774541899938824127274764127074308749551662894109181937911055780780443432540745980640145442939306260594108153472051647131681157253066196921241867219750730725425206710795987802217184764501704656938667652216562412605178315154823715504842221040883821908066520982640521534515638285742701914802942740413865204719325646883331862156929533848753560028673490899489164904871572312882965262227398852519147962028911353442945431871962412903442136363179653558211071380864505205944795940758203130301643867104561885979999663988235936350919641512971778390268430951021689794151483616083716798728726116449462327415621551906852818719964532214958160196522379124267862192440300106017779609465965905799599905836848427469769039150966318798553797996200417174412410986819190590453799106893775891929915515104812759607138823181944246636873559365530444692398148172064854499082186112630912297588659563251667380724199160745943985950620072680121210701627286263456091615192982813178871384688254796017263848221395152884256557229848168539211397655433440096327082368879090574621958353240062671649336363823965828495504274627292765079905041907228942252281998291837834984948320805768426065663030933225857527811326607167035263094742342555766274380871427546037374560703288382454478940493852038271184983335929053052580142610889274463732820230913623881919172963295212345615040412916332214145481039023180595601246987381143143275555010122126275823663878250883539735775868151001197586313790678303546046912429583408839596151021252109335269221392285890149847759483235563192876073605050973994249749687332721709970233702163705341148579498604313076028686822623258318642663679786054598229166237435454752273013761191633159926979749458582557229535501235350992490527332370616366408386561294206075212112014877556734375550521178671966472780235073964330120350646704945592211039951353046941101284410814413743998376701730557691595759563871520443077113685375655318629465377783587842754041411545793472869173251692175873704241579472685327559524911785797339021132703268280153041389561932080153914347954588306731390631849746994812814220142129387813610696916258671917415434029443404391428190517507510042046103206621342409445564209874741588327598537556460976691624018169663967671660692894186352288253498638779141061622112289679706365207847108889427691096784326973677803024214492472707981768114343974171885240215923069605046407183274931626688906383093326942506306389385699617773756507036314715163784893339129384631371021827779529101503268446946522278900476718239761969756655581285618968517079837865934009289764664181035433305195075555442460134726303931934163959707178565304758872732843872889611634322377049543646171425554187230166662103804095391753531048983220945399749844068531415552182565901849944913705134272864919161835286761773146394181218315344721514416100136800037895553460546668650287624280850524870966630119825109841313263915822804395090461996270355405850337378428847572541691608550081358626914577458370808696970205815167059398733502407940937484583106138685310627616154288710782181943658979939043887173061830466509123248122735274554244832634028602842990884535821960282847965546589551515683006921577113487860699088638736463870645598557349148257287130585319947035194622643455678149352422619120505245617053161276297428677796249840287883534474735048762869334717880596226182201830144478063212882933385185535010034862091846609093123062754655893482595264144471053574052796843087017049907746753363705601898749010327495954895014291579355235338833101630106824374839272009322210079304934426564432692590688952874530807484291500721969880280163130635284598883858447541732263973656403949467335375382744576582169021572078491856624258712398751620537068325140619109749940182505901651614941014702226953655042436993293659935402899155510300573503584343479010518716919646668954066537694445229231532069973180835548161999236133279224641088961045288338591539788439295626502059175347027813144271901065066790143686712775062303867572500260991711759061865796441495722970576886581078269083803457904000528052492848932319616671539119440464546337381607865505055057931827381760617528184118393581428075209959718941404415440343528285202482691160950125736551230529944813720673977782666168902038645054385901915902990594485354655990845499480126087105125968943516805244404296417067672146559757184704118104479562043791561289342910933817503269652798249787967091275754496952289727364076775083534135730868519325447625733298677561600880212373090395108633714682212686658508320938582504188395103691925424911300668854884607731128279033318196859542968579411115317432809631802529372059211209480483679441232571512267594311253165527718327143764300905432241500080152905795257584787605414675197940954373009030453903878906287377822675780039669095319436623529223665272435211124452941522028762132772149216283656992395603636215175444105548230665924361270465456751062851515567815883110110932460433080754781512816554151217041200056403699954637600804337630361808970141463167394117118896098061860823734989647412544926930151038693465797676079867735956694338599453758964514155383312537480028913495410595173565088718106580718690204087136868750810544555808244959284540255481322413182319444413229973669796046281478595675026859249089294906760694589896938527455628268631646431190553482558359475649905008372248791949392738056243342692168360239316429456045353412672620205993678332718296943757007033100432016033957262952812308113089525677593314348158758985407848651336516982692970058457170976557114558365089304314160903116964470536407024390089666057907569775880125454407179152708603421168604671421941602407588660948539878486909529674612974606249731676544627860723811166907812700001444015885042407925457700912026951498481201127628914289332414668671610860281825338499236377633465726426044192365664951948537559386587586769235673270810776718922381986910332660491227438722063585991964831356437126425758156634963997401194582001986453651370672569350053281871347900439792994767665815890299056824279253177957263773394557655630510820741701258072117086245079134357866642623097532628553803903648758577684849522225971132264120487040291212457537164294767519481854598594786452311655174784078385446232021564363748544254142357126996718553566377320630671524564421811990732625352377402463765021739944624355312983126056531547587795364676345487649323774157071217275776129804736924913835840964694186429102379484026641744758717272235360860384613379535573642606708454143605301019501381200830603211637424141707693309795774893457732190757147111800953597865309947620291878671784458803059583149253392626787024209997144498377866405445676722787212940295896421953015001014087934810632994137116121453312730030819186234761551337744114141563340873218160562906891816607846073928264219417773264167680906367425540388330252844163601282150071764509409706929668279275447292127390405175478691147980483191983287889129277362373591700156404873410118994718198620364162646146217436734027104478415958648905686897446513699351169042409764303606346293184665683951611906300222574757902815380069256889441736855457148073552353695685687056221799881639792276791041097453246519120145224551398458461473016136383778797016496154553127953897638547729387811085340606589733970946185967382298738271449167306426650444874752502299018244278613047198915563324359621815789139506442760812241163019317915126483570048581941420740376157711709650173677337749038292903007525909258552106377970279640258151906129429882523845127266069331516032325111030007278089061296301809427138197937074206971681919307941999589324094698621143243299402722516583860232528411189971253861239260775166751228501821517067048503325201551175163872596067402913475784351368381366364756472141090329878677651406484755957506663434955158958297072250867492329002856152391123781417849124963318086456095750066171130556323832240711123440140497880206730436199271406188200991789640678504659838392273203728285783720799455048683742795244717711741074678134671478148844149337918367041073971591043881266210529546784808474270134322864603944292371530022809254952136430739897000073075011227092169352744714691298369221913805804171093419536256614066325934946385175021866214086538353915351092486207192810277475912332282814367146767502545806556823439150613541710650491953831296600726419956381589335199086788011658390181295599688317662648344191018646183583591148784588350909962207449197031494454110764912947881088658919472942597158420476370478835200649756100309073397809980925409243122591383011465235076353077814679318289761395609390506495792087537125423754111727350247806764355421909337234158767262710858662590587692549653141320929428803952107509453670452340000249309815541172221485371642375781854638480232745670992446624238964545875447690021324578752510765138834849292421139010042503989662531600750433844345716748151927565267720000228056843246055255707824050394497008501838742907553625243802316253070683758471651867767566005633674327892874714374279647544479879068481296846157805700570970209477085243381275150258393452895341674729965015260438163709217802974470032742992457099765590260037259303472553500017379258035234228880212480574021628892252158403539060051952175260141626589595988928339941518264824952383645325175112902970346623521066694112093459194148090612898702468208286999504989598947765284520117653608610554748994062414004024732547236106654586429288615765746254172456211642900171526253032483336612871685293896400875788483365789561739747426170476382557633351279764986186296253215600903559329809843065207597091858639279422036097321695134306888439853196462710537373357104158354552729066150749957370118514110725388777241390721870309286207440039037634749637364232333947319955808708564764649512413611027382508611269903894054192377288677582021139665204396283442421732405085170121331749605819440754067618006459721530992612182821372256883036048324011355000854658417737840253815132502748646634191379326085770610145228189325383720754722598658040403844901956941648421729600037676728416205344677288849565207971967679457770065836835582811326717528568362382517081793375873733242281950425049831787369982215615044104911205860112610636932797495452960972724646980637167410355890888160634739792841988047747416551417903458973843913817817651826995650825377222446804522747885730817889144303219199571113087892622086344847620255757997802790268324881543442406120370499811804012308840885231588069452541707991298603423769718021925973305245135371270769133394301439014786316069600405057532362960017796689710198283866266296094695734104361777258601044550793839324897621225942179014368731126970742017021540469473499931783367759469151887471065318751835047714993353488500603431871552256650550524746733875234138836377644492933648353719520112027649256449173884082160534529061395950376961210582903764429898660736595126980888500232792169360450987173082662398837448821586990630136849598061382056887211506829820603928623312130130173936833012805321030000086441629905865884336166660086257358306012317301685538113917757335531958271429268599644136338294908797472514009771114121984959218360829617447261197003869463716739812820515796546154916760798167469947155154189202193174908884081413646676702564596813397437878615358506995344579306883214802326821644472525600932401608782031017148734837329338030072636013289807595896830865112206534818486830682061042937552417569203701600109268689267876579019688326156852532057001275674332039909846692883509571653464666415849152081040988511422805265357571597080140514775196969373202936517057608387708725568131462221029153646323562461428460104742305661197388339406346449811263259381155502200512219091983491454960342454240706708051425969372628060450176194636191180709008134359094433642322765095039031029848240801209774965121136103434203558762204924799209711206079503321720460932403954033763188506087481004666965264639938814461689404130612164768823856921212836251017504848482068240884260522747661370578332256279303716594345816651867626445246446465975796009852059226404420731078877338198326498450791687812723484592964392433817227015666145758946203435807805775953509965239223404071524127716205676490209798693476968290522171924352222961722202369445988273959637712023037857497980946452933438357908048679103463382271364291990484951786089982518013924521922414251700315098943676824642651417016488142449441540518182297144468960200236482521950147174840858760520667925851014724646186237718350197345315476648563169555524274462998262869462835517607032810020827779988794360491441524621828135787731897041947627703373926569697203224057386026283153626777003944383949317689894342319470138689842358896950418281790707276180992454746128897340626455305750688720145092944856445947414387426176277838929351740125682746735983936974682732657090081301680882108423182308880231408985381500580132708519172227299404578403227177997275097948625185637142003331042863288256378516605929623708423788800428397848723218029366113637269155414838658138156414276602906422078169296556609723508390580914006529906273402838693971428452862157725839142956800488094694953714448262223651429126240396001064410918041003540155833986403137907444095499858670010264807340664358723579549256998947969729172096541812051995550136130353539751400903178126477759504605572805826994570896056526435893160393665930377005152939480979815290733451624254185147084493182211788489577552225713515676976918719815487158372888130065293706307704151327171058519320668175157207288801633950478601495331297183745538451192602276549018822790662982848288232092003424579269576810615662525760428765749661749867132396119796735018968817029259838353483669131659008871251428799380339172066692226296808199955208697185887859404361150204742611572578295831615099692338014006207003087209660572456225232052447416125118144710900948299613601725894329441980561388174890347027228249689870837622750361367871386662517338457595176139736991647706970606818616214661824617555982173040669096631642254766516688854628451537442288546145642999699740625181457047930140333653982371761224804125101234340283219177382580327819779416847583603074174707223894566289054816439161200552945804329393955050090848945577203426920881590242209761703017328479320775668773368264928988026618371408367824817029892543804742439838116865880281420147238606391914708242384464448039136949853157196926102435322095808327554982460528788928645273872913343461611610428131317166005645022058370832911689717444371853736979594525562471227778545215567708312031236021719294790557264104719025277740235349607341210677257727842845213980172662339038740526927635208904998683551676355252597650720258330267844522099205173148763689788553302777403390108587503780679664144440722160972154083521623110903369026696672441820717973762698832942168145664499801970043659423722861024584459840892133368363059028764154315802880849437372897145882941942112463502033856435023012089053739906455451095105598775285019240477565712362442316392796989645574512661159681868310582713612303045542959273804795622959204763002742716099384577387687069368449472026989199146723354393142067363255706647099405593739031370296630757615524319805428663764776391347708623060915439814348342657297196987115045905676797421539420243905122682506372668709305284642936817337407449947609630029004771727181695171718969152892422237391723505986577330312653710606910379649267445568253512401111830166996321894188533830240003422852658954634565752798645782666906696142331261826111945005608414509370740498622928319124175607933712407121966049265072464419543814895248249025164884314460962367848060847148396307909512930096096580227966658517829047818134174235766447044071873271363418022821459515859440859974690819530445638517824932368066778850107691520918400262484555844901828583043721413618743213690030801775766205715933600947214895039398426430632183988962657311030618048147588259222114352863856038073210249777671202402791751291767438795186318730617922193106402866562543043725286275566423844618716331063332471290217076121004307225974545260236523076700826116406130203703148251652123550485864636655524583236211360406276786004151634039550351489703686934693361927222810759196744974026712662379998058601738354091024329333140059524984986089420113032868822785536679896972184888933774864447495502419407704911662465254354443786711006474472325492371589826303635254383756511023330332648011056389995100090929094945300457045478498340799705637043957254612023203289358712885799137106513022733938831750760714728942805615303980428946084127820511942216711963042406567237215286140888687368993933183165741035331201981625567460157268233652179886021973569056672796332998179729624725761702801306121397048365877385010783209871122179373417272647287650408398203727369808806521068610516570422821363479221142871167555966263019988107103038240992107981059926369570355378073402887804699296179490298017956914042822355066162863798245311589733659930108716573381694583701731548975647910277363235910340709453216117737450060038503246917168995767352021123155164374382100921931705188446291102559511828017437662518140858896853066378709928235972215623393419203479205426409031349371349590867676715805189706126614430388634930958795399240760775122224657783943610489604559888452679404035773226865381567617975048050258139111870414312827903091579749278042215268641614321122051184049145983449681082126348068840464475148855884723936798611784266985611770855407165262880233984080612598914114056277443871474564428549035784199161698954256446739195829457286479227931813153022156944532524544911122050373969072391202175152080620555750453898601271556710857453438164763476668639242723423596784651725032954968665570658934974876021460049617776362847887709694163130890538143709671352817439529719702491980092771361693004882393303203081142882286492398043881164710057785369226767026367772852926513893651611861105626776734103244630318877508551640836969252619290291028924065515436781346956470546407812792174711058299726127305316833049909048501347456792956447073966134405657250855357161535972208863899205702704757865349845679787692037268253037376621923960166452997660561233556955914199950280786314601630864616662608224561005754301689603426684910125896770768374953619889558261597422609455776850287736390980340309673455191891099468540076938812777525135139004862284768246882727532719171938711881019219807146885208347583013537968593034105253320915223196599770143719203617546138780818647320239214379695297012061085032655460182818287342370426786913319736258702107230122715141487768233801536749893997803728157027067607786806817619621416690816072963003905675783510798570371119416522362980551210331226398914717131503669399935351863616112097037452752391148495443875100820805836471657458310186777296034913869476821504329170092825218004355605604981032396189730639968075837466324355393545531547499296129742480353312485515012080198251817513238029878761417942362988611341388529489537701012817483574796190607304536381491853034591312367321648184530509728524647122501947968362497595846279709686879107983116100099085108177129741342001381645706184241754137740818298469927928593015936960136336354839444441537476464883476491124145040201975065760728236417165064547083012157665117862069950161474000247527193596520904918034800237519097030075910770737249027507766172245950908690456910005915687658371192037903454195267522188457946522465812546814707186725266369599544901056380771278778496356697469863813170045478954887942919891719943536509620067425430019218016552943866513049084132811042239418918464461697166244004674483144975064248734521055085077879428293378699784804671518084858674142566178109165798243511192865616792646360934422611486982931196807796069651833175036315292581049380971169287667578137598719760382225351339680157968798399024750921018364341384433094032010007170617089901707822720873258323117121094595640253476144781156254986103340677547696186396812446737472867676417341718517708397864946345851973149579665814914780238747848298198040917623767279071448452289403389230483710147015343948778686200462980869132292243518647284289367697870538062043432804993383789453766249708764659441474283624379264068599507775531292075920605017673146077112853642903139911906302434178736536763073776492487922736681695065385146823489527240257367029080210895561120802062205897952669144261060629765943010360611691239225492313547680877166902120034038575532631991608836277023769989969286705763354639396557809758301335827437254723652242107255315452036876962326538334062559794699116524276258888553126508760921368101448729171296273051826083121335514340513749472310709357775293711391410430605866848428206275493737257946962094382508810314760102662627876584953644593810251559804847018471645804279269577163222836323469158408709451049516140164926359568096958717277502010535638103834222830138965691041375207885830010086093577661199429947438291946204821652392986940074837477243680450277029452845965391436567523393328287407610548371626323209798491167718139682481096614967277657735885995141584855238499068819144043169519808625335535467497187610563430411885368242527527426501290144133778460203119331320493050061076015128369134726044462722347968425004605415894825029214005159460017597201667417780754869361830949720202918493823184101075838503830299761824869679904862073136584087293818727798615170459311360982610511969694382614602179399038381795938808339624936578819288871225229969453352604136374986241945425265925067752605307817798942345594946229267282710469294895316709709978300482199422993864479004345714431924060604312943364328488036132796548286311452068865037330477381254653521997932683529923733918030788237277311506971012293244233640769381007469441257079206047932338275608652667029749802924184687857143175558570721929621800149764710592357665784242555544131864540977527849447546400115900825577174995149276157057346789840592451577813362430091586524721102506989665931982702219026323904691432398122689495996882265420418116874430217782311808004647361930732733463479955938529154528522051194381631874069613310213409529297044539345113042330387073903127727819148767654007837663029758409740100751109532163022946700700283706091698781109780900591998149911441005524681212023078344544332013742422867086337357386648010456398188890930210016139298155930924028633094641080376693333637575205120358721249161558879878605619926240715095693459246312110120255296370640379921001752355402234129672296256792551588456531452237719928884587581748609437819953228143858708268855823413536385862051139154160108005483256458973251181684414798325543685237090297218952355454498360284163903320620331330041645505407959485143188233442637237456217907120069153491694590061840432978313743412870351383605091174060438700347563069702374592271033291486469198747404164615320574631477710016636592518589671596747943158280024568071042207640392151614242164388755091072033123849613406243191560606685466695224702851073793209983245637064418533493373445706196623084247378333601620256948735846197996626400721407549234823621349837923751802600318246599230831739345593722446074045350053727640853164688047897641631168793152129532460340648752897500576239858352340689484601983897126408040898823078670356235989667698683195747933845604631219590239173210652705109230739406625218065829047001959906339787359030664958848640962432568882617192337328101282861355855052064401769454030430359326113644841768668239140558927856535553568897367720347159874523880516386590902621930134377004686770248048790956600202350240668278905526610854853689831278605460117534655672022865381186383368455916537299075187608280413307902560680553026493403034224937407498112723828366510507530605275244874719320512760370323097447794424749081768511286238680409791364474715536494963761504125481972311093710451304350946636669686410149756630356892629048146833799282936503518064970334636759535195850981187827868775257597594883618370833137993885500713325273304303573582219188596164854793415272265494419335724558949162093189329901670917578065327639545320118289039713245112215517705274021881346160870228898376606362512518366487709707423301844013635309397608424767377299999482381496825046125270659717218235705491972437076546607968048731959471708028388746904520626269017474688974519703249942669686767960329315632623083542034904051875182577576789672863729522490389895318090025628252996788289871397885321112320589899243331760493079426217461518009759855447271452805470640510114532466625081401638196673198455707959618471403153968024766413750606497256240424310321572518753844822442614019995220216925740799313744544407545125147226460179065783672747434269450877463078227114660218890870197741062964869149216593337240877726816769064043836238404118361489212063192575956523335616781746278735349163072729153072791927010858541140343997628589118308617500810288051754503669103426458876920881250554301987643675279846672701570678455114771733514849660943529400282478696046685638380180216994658784240314213492454375758878398129147756548715940475309470237270321656224216962224569938969619410000856719133510842325405975307651876410594019154758500975634309064212230359855611627781334669026600883769842090715682448472032018911973299394161104544595054824849642713598703639116649321926647088903964867693759201263712252771905446105368561959987633208497311777750941797233567792043989003959131029650155772257838540640343177896775560527852214386517241508945333285752877390246150120244221008156465588275802552944498214571745283195389529723074121990716043956226748418933021611727921552301144419978043663302809300601771976189319259885865728088661223912109230773025368233313848188008452383616138754645205521522149590636803766458834582537888294963024771966151736885715564820636714003027091189364366092954740282083709832447414262278124437858023020417869392165010684779458226320501915289043926405827195197244147166224632448123783205621261701290007927136151871499351560218466133055929453493330689733304313739833964177664298627712485692761182891519693968102376645549610727178711654631986388848877259476740921690168258228324038895777549949049906291224455670278397678293617887045027265259936799995199144424973721603709097126580740414151014040044307127952476889164131951162055271178061447847120151549496715405067123228908597289215966590424270016570544297218811243798264894956000844609988174093562001647461234926397384160319962472675768150888022694717220131700095752136665932054867781403182218094826731793112805228190345890203578003204156552272418941810206130488597402079346919536891188130548434905804889931836689842367818846984629850388134189878829754945582707721281240595370073822899034167936168317276712161018997227351841542173644705283148962778426983227886134398562793020516382156976433577678628426850914723821550397134630922278079609578117383745262429941753045470749147298585159515228233299079541307057277141665299071531162768828032896063161282960107998800919306837839027625320500107263426548195455774557514961783254793063314192409161309240364929481671697930604540937648868098831961032276078528308239409846525908352868389388341824004153707148784089901079807768115859356555513173714954371203031949499282491505783956252692954460621084861290268684948654071182706626334047405621088386592611837800586621020559949996409749074807750858987130378777495296795697454113238864486585664223124288853744174430364959524501211288895196917720445026992555307212904224573587079867602266526561286991934898519011965919762800414598098529553210063704945189784122780149357437883995402798711100693705283572115635023833052510187565755650466331382209954700196187264309318706575709289110140734040783795349510856391796973061586133385652433348653432043732958182392403610109020226588983285282302624226540064377464066486102962831392080612252000892321740364028444178659271363646725554323197178450013673456931251661862058103184245833477241297470224745047338796324240710578520044071692755790532658886585210743190308430847014245728616379232906524954500608246866934535163792742973490503580271923814638697415931283078221382383362959785572072254862523932070254593894778420166050301303051792884609759437039196251786133922366164374229293106596731397395982738642981365009890720672750739911788723960351978109474880714513230265409351418854970761452211089922868552422994357802659456076413880684785945008604690516842764646467354653639110490418528754343720435430587034406553729175813415581330408241266414346482880030935168356347404466138339417216413187152980693274984560909033856945569337313328825847964005541442759968298507978846103515531842282387753387394640159947705182337243946038871582821976095822476014445643516452034350274052395870014390490768118921303349297783111604611614969792405675549737762891117235601401509771976505424288127506619604969777357050919492583383196710639016345595051219284983774468102794111204904087854963706745636413487989287060460110415911523083578311483176524262795503757598926485178554090402257167071171316030291806788825231571865788555134975773812990936540773321308234946044765737246867408184187926202672659390481046562656133062746164679213016412150828931541380583115736460483809921384492938556467694913345968490699408724920097335883012037996185710843728025685087964916622721724106690915971525810112923745874225306222317825295047049422937553671296238510625036371885833738976058013751863812964111563617071994259246941688361171356027365538544417177805812604983198505716538871892093373246938279500233412708561527347871363727461716288101926151351110528810363823876745478638633959956558294499998178403595680707552520661628139885507862759116251480993329124790708691366333098274503198712239317957931844075929219157510724820886970876715238670545959423537954399171277393322642924469489936599306596537780143952498664280810046216649186970916487312970090769752505352760994016440883570499180196817444149218658452534768360175742596816225974138069964136234245661678352609454362443098966805109161926715198923541030309011674821281253485873381978880658057142632242522008163791572192228118896693428937328967441735969522662116820139486521533602225473813296205920756280852132674204212875541905799230083948188934762214313297559977331948852783205957307429556835484750632490279656700972792971711245754758386698840061997714613798334745748781718093246015429180715110564659775958953925441271833314200458405686308168175699703924447053309174645708243714256036079514576335760627272781473958152871423950450880244902059860972993765725614918313779520682412565176729555118004656873655985063187038169216127648420636669362698351077552423323698547964645465250803017342569205436236007950058284953607738205561748321378630590307363152699274189057727919453742271638823877910577991530302591029375161236471383631848002798944012642922271640762907866813977345778078627881009581456481005028360784280572382360439686218923855063259828364554230128257745367801428619571305798754927019681819071721507025503217060924013096622295735491356866041126423121317578707705051223672451277195362453907109156409226031124359331269033706047501793725334529397005542152288931619786560597676627344632553098350275152907732126173130985756751564510811618487229791303236924465341801289540812690551788455543926425349252615157772402331505777533162576117289367908788442703587520914461718137950897065866159818395550806384877815430761103368193436771221341734129300666300227659622806497540448287184995147203931769714607714067793806634784284470292757173868271686735572446701665609215521642257143815826632824688938154319990908169162591620184203541034233841143208701119700111471262753221099437653977732313202288790387360993410571814920190393633278519426322388189561848073567050473447200268064660872134487049669167055212272771926499106901861352528294848539336181611703655141442948353661116628355284130238692132129077608732863988348632925866620502068537260398202847328832759679991275782744446810627079482496386469282147356203500932869949756014969799105547044867487515443578681601470458635766474689315673076167733862999117920398353194891713665540078224927085391275143812176330825449500371619847782272686969533446378761978904544440013895416231028927726218733146837119246471501118048113743362145330421026679826154829441629912213780360023268783129778175609399700560451467168999283707815016478796293880459904169006774336802672278572412287015220794696754210710528074313551715564018929752209493613602327605828877831409470495492131204448349329410716176167398644409805621395819102582579437475457243863770147762745872430971188437309750353517939228764780201966395821370695911716711990952100724658006475893529103364432054876014163327911623307525241251657353386675172800066897091947543020691934245572671014940792649120844375555296423928815343504524496530163290407458172547165252794435401992788652772019896432154120117939529607123962437089574468955330531134742002899824471762646327520913664746136110312169924549341929245112256599874627095983544524533776166148641243631332126877898669139059339725966350010319251480838116374477560008124768756772359073311093533411569620408156408225090267162239077400368807093410309831629937969242286636745129747077190454692745767959959573935844620530024052165468053105811458591026235081444864547778394721278086685334449055183246578674851326508934863102350235431994617388624113866093895990564226581794952830514823220101014078670579905584938169135423878271526935753789731862366320466568893197019322802454891087394762175592156780170296250991787890048681001255670642411840590036563034399508903270346045451654419416638331850267038037171141884326945071595677447543260776370728540990632741515552869604903674171006841214444033783168014085422402556382010629671164287295727369745938393030517049476901991943404521183558652437626313351838719542239910667505400037399727671828054581362514679798112736836665205492005413417983667715523375872187350704125478195904045563936792860335765897281679270023665550425980131262210782795608860855510345104372061209401214105691774184258716905291453207937340699863071746291465599336395413360182992185779610902447937002426530117175619486205827567062351097891444013839229584172179221008934150965973779435795090047193369227886416819611850479758244112645513020947128185842919713266397208643165507617291506376022482653058174901995841203651746153679723637077557298571162085868624612397595001611188362065030511325024170990537619566116996554608525543397506592153507897048814321035961249901341937837196247821876422988754202460068548874326763937743148330487706045470770648799803168107340993493690948575233782060504361591498720140864722068416637933531138625600377767021125493092862398855941168895023356999645226222842680650008543349562288824292254896460049385195580879882751110881707974683143719771998490429446672801251743116817530508344705774541065856299791274523194383682227786702320198304440040499141698233500288817496238548738667186731759140593236212224464606797876172671922589956812704610634025829795282797769472271228081244350615435159916785270685983817234448968297052411641198596428877013871148376150085913727624105162431817944832576756840772129911432680446792614323969728065814459667935872554870749869231248035603434072285330510531949112957041492851971699128373120129014016826072941262183098628623511492288572825814161515978894879954446671077161526442694352157014926872613449940391710223812916890626247776731953219424253960716602475970019759155241096714362979414998809320996370651908467463599922545289279776617408357155888118925940326132956264437869720626327650482755733118728439824193568510889600108516142490520706391368212471012387439860209473511101654439602594292075282625387759181779898530699716169166400102991775037111974672767259483493149846743133989290071291086670164176102696250015842912415190161735679188915823642494929666826724075811188232727276378445061205714001242887171207626407414728146230264384701622543376551519181953645711963959916515712277054813655129706095895845876335926268810424945415552991445177202960493276245546826550762509024994752226395838253118934325775726175676699671378655913350960969818903681466361451897741421040873996585831251633848324421165061279342737228379342466131803392195046276168649674802717804214471908812402858551853833884027988242670213859410138705735014194910887397259764310827101652870045430945708979633221797531291343744924022992125015358621641841741658453574206583753995276755955069795388580220286320487003146275227750820463910727439037819900302648690721500816975539120960346110958058273133745691993028576411545828552946345719593506231954425724855830569844258305209345259855007454838887838423869992915456730656075328203214275348427669454180716757152219470308200247307483983865278125854259714420272696137327144826620533141405916042150294852411876910110495599020703191346956009576485676609951697362343362285148314489344496469931217966373682709449708957995654804109814731144386139378165895972731278010732548355294513390537824666960240958321941624268368133585296762043430837808694708764525424555008564888414103471183016648890218095398261948429191499136574333390824772075884223578459958008973772171052555511574143478558477734879419108895226943563308235224955014107839470203297094132464057972554723948090103561266567528321507432605275108261803505305604512435341928995112322534626716026899783182611875694471365813734371034480504808839130644055546042546799097096353469072651149602107983133518756856807173310394954711665604181765368448015989223485762759786469265406408181893104834860687341010184713345210467254455393299592144567729282206926328265644980272660934256780802915152057515157567986632616736356088677592931418382878894826390722988171680565378719996449547223872961900352441011687624404029578342437028296869100472515035048067014217493623470843518114834589995359132899353632876812309717603515878065164623696163523507653227458941567646478901971851201424448508762137608961988343015032321138246663861548287451066975455548881312356297746115635243473001646251166860860347470977452645519536602801453357899019990530998671965418312506849798256875784177954549428247542646506852989029376337061563284249866867855375292313276903562821434844589348398116427653490554445640415851967301130160478280591268660219105365015764281818120816747776902433770091510241310741117239169187643298343243423622087446907430910228145030234459492405383990549210186408763577745636088501798882059690062697439066375911450492609292275695469871167442911948679989589194880257675718892986645350262426517472749323846503830260350064646879073943696918722523471343432572239434033994903541957243895869068124297962911768272130804161830147497717080096878026676249901779263657724764335060736523022349489244525520412502036658318823550880180781743716267843759737386632412746837654722865737380826239701340957504175296035513449634860127581944747253478084131195181125917540594769137145171231860661959446868276930217788841154734352569387035848212196943567685246473759657483875093883485405952582864551965930262585374021244227850506389729785052709550822494911728719149908198099313514832883972480859488760123526375763605587100358612096173150854898350942885628816238933296118389692539806516197125453828505949879714514592869865830689115705948207353742167240380370642381111323758305539164853699090968338852768016103780386594942156270993428659420910379091007424173498448195883852536083840582626419642593163118041030086571099464897170343135350858998591377039191413057999137956937480434993296305552928821747843933809346406259857712631908315453555603459262291998076151231213452570411869504495468193902342545687928462848549708468556988288618666391530150631604023368368985443802337661736082886455330165185718506674925446451950225148976867931133922854890309374090095692794282169831921864800332631719243585230983374660865990485549651253204948802753320037162622863382284290706404147501925212143453060791514943880685339243924592974630830751567738622409452183922205642395900319806456870362496772475817940281914403398392731665916202627299690246290761742876652340226956650946890895536940896463728923796418650254126329798569859855934758143480320260356386488975483425254043485337244154719154233510784421282616676036747505681329993521779195651963224435155490151581291588904337461419663804629560893434644015820432804515675690831523255620944330336831156831579190753068375688650048073975480111907308389249949395839524132823735869047776215762189069840561235505981158961277390448878776102441558327332771742119507361353889670942242103835505420244830495863935710274875205367110153860578320344849136276877850976966265830609891014479820656609169628210595109027118963545626788973492043377250525806284089376560636713740945077513997498272629805835276650785972266980751756801018261311878618954400523881900470473362459240477140392476531629193983265719361492013099543800607947406268628857766223286026501004009332211579868224732341002992281858052743317834164978411652707316850635655701883482445928713461259827630106923498951286667301295087333443874776054698753972722465074460822899505744150696715340967892673426603352693985101853162710377718290980451797871227555447480618939752749330734167470830550784393616069358330998101289941540234022952395067709664912171932073105940885263466577067427294095534085564405476699592741884201190453294510879667743721061080867811829359966115712197276627289855820392766414746113813911941795193018867818370880248273798352362415949009516774080189581966627193247746270052622072129129928334949395534600644293835594823441176580249544612272989348289139127453491071997751825423868174299900836110587344738147109901671676560139481433586532903913050215370018555341286027452263445245160539421841685906547617860556916143651922221934132069904102504149291782208804649467704892230443532838007829772931339763487124780246538879197309714313942488281997616324557032233930531178289441152682338694539754526224219760075504400319486458914582360871471510948228747354468238784626461890224255749742376014089249038445724855908180890728489947058359476843568191651856530236189023075074695822747909936395724799575013922045479803431996615519113689695330150785673482984950514131750637243475250263386105764871456435877496271519692414893360515847754054999731256351710089010954709269008374137694361062238330582255045292260237918834521908824074080721498435853459356265196214277298535621650222839322992302469666113195015386445309816617212941766700198454692669072400777631108695350679034385148310106965853734166213491050514032806147267244863383971947418637156069818931905060600839553811687137881080963571430139832381712515153688411018829811395162951706684038982956657961092492312430850861706949287831671279305735825112799188796354113444782277088070111795245527213167633786146485187915515317727960470696050565991868812534042065845248528483707617870461470799503252898806120863580362006874245661871138317697970323034826563499255870380160270745035684169351989091229419544966644273121740162535711393894626077038836823080939081720819166122656192796761511208789769643959675625040351285093380735369822864391155833976097849717467715663832411610448848738283597060515009403773820113564701964131593885749083751273070105999792942899204905720535692921048605906398323828794239392652113185842044924439776216618832797300767681583042451328452543999046504125336413674621354816431243335250890338803812091829676502768718076092461696854143303570959988476877718292338133641464227776800994676338745554173683852602279173607982681972576345817048007997491471404897982773481484065855214049437503618179984449312443733978799099522455331812325768777555835964218705101852949394297248091096855283658041023018967396959116094640795533020399896295313652935379360762523504753157955778032393347230191439349697542435568806436483941566068399243032559078868240600803594198277538518854211515033600990100280605873703944197972257043018093987415027468411147914979267341161936025862527493602368704278580987511248637173256206561667712708680630038828919221685303799563074152985024570736053375549029173391585929728467047678371545987291349589216650550044267805240654221733615355574439998036916892976914819854269623036841020260979752373803467742646610052797519773239472393145188360617416887844994661880136712736910359178354214340275556997439460187740931250518231525061475093492238322981803411866401479706436063831578343508025037894095922356176353195120807113117962024353687929365793863440961869708935471325705427268311832026071481987369747792459194930290989520443947186816004517515724659644800120844921823731581380456209296125610746514402270209145310065767592430077405887972488208587180824490659249011016813055033326418799518078558302262638594433064347711821208565291406328821136983847371659856269936366155720498132328921072448838589757622396409245296480577140289623322796567625800687520751671042400889507006864787120659350434005213888805342132320404374276730147920581596205882844933443682245640536888255040281907562137341890955125020744550078124270959938816177988490631945412084143450022117930291820665654278532328950039589402623462071785190597972420260995029110466881948319337177659381370322027974498888884317994322532100987461065536004533485107477816817013515109347876277534098677045190365791127583725996650086164689783014710862079653104769118677032860940294235517525496641009892202305544630064238863804547125979554547500407009438909018649330132679081293650504064750504963409310693538800917234878327242809169513128067716200630119343871800714422790822125742379698197269752850743244862488461529376161089160417781531324734538267542511064708529789533801248867489839690222085125230558842369615452167757025325147906466536941919876178275636198593973632482225629410953061939793237329574563407177151696425168185723512432925129964396295566460683381210861751543962959271612364776490887684557291800275890943464960882322989575395770939079117871842692267781657103052616158731887257789831575855383139126088502401936440328580758094215891774259130234760636388402194901942263087363129228203811739053110695112544336170904669460237128092273950987733357631894125568918929502960999400063235390131820927882994885757665070332173929783784171093353651632214893993352223305311362435987384491740341715659075290806580125140043322097584129798833176624984304636181469627529351727490829906229077533278431218609563005122844076126595121110771936687000776850108510850106493130855679773651163003021228120169372848510279256900033130878566775577890146776238882899359432085091934601641895409451474902259808836766010745312164793754372714381699865304166139131780429341369463889115775271800150577047493798819794395522080737325911583978153648304964579782868265155190311501690205301160195620846410512072849853493354743029314761662908199034823849943357538625398585013921357773869845551096458551251846457396244005566177633687220204946852945647923405771065458989869362835441883644304269880983511068319373473995541250672403154208519043564171032642415217827251897724722466472069685428735844457573885885994933990261906290716176059673571166882068741391186750314697170535860099987232775249724630134053479619187242951948777215446609060440202368843371831135342096416461830259428217559509253526296242549659230023668710655100356076808680745180835150007761418005899776260218659141972939222396081999068480141328742371771615800668401648051417832012095244750662606914797575822043407699477353091342312359735042817112704435911201529140578303538819655751760454814507347435843519171194064547209871728864922446229675767928397920095901453646333972019160317960235016282352416327718671682756901753902030252211806743490396079549081856272522947258211206182324920791562969009942835186556225773406863971374332016367162371273670024230576958419062330594094865421329005913391578070140331264601947111499972164390326299933136627071867498350851820845557885097579914861361954389943499802157844041592532049621801099334266030990283745065379835773321961124617117028855008217937926571996883793430253371693744200524541849817280580849383552372411364654783741648402711885039240700566268084827400612177514899708077683037944683643912261436684962378432445685809864668569600801016326205447317686536952790254747451813077568387332253770553108624324985579667049931107058771963565810077121806457602328089879329662242899412615895672423680054492962503032511687955772588427799434029521914879111117709042585729184160289641741526489121248309650328629784058998477441813263403372963168112270293705519781441751822730156278754250401266833214279848361157644333842970102279625518326956728578911914421533450817928301000684133872777392535728790717197384296289052804357062126137934528407185827671115077847949309970681209202865552507384169394220487974642945380826986536757221619331560793530833908339694599569379003259882247647286517905210833359013397165246169598663359009639871737041390366389048180925766966478066529235213443978004817915223406627700070584276064107419131320745258982380033430490483763001282561318869325867933479580208950933059368297726325200700407141136692924193059357308220667447744211310907575403469349097992152916014288962957168409157256098328708419486520454500245596292924089897630325815518793572705197246310573985895418811619505084845424918241541634926195636921185910433253293396389700313224638705297361522026973748309897309856815284311331857255762857426273098829720870493112634048045067358223540485963345110764958425489348353423052573986589875513383730563497191534119548233005728543481981471877061858344931671552485352642003032194451550412317614685038879694629235583843070979027364918344678631446511703923591854142304241926100736918175138105630807364956129659339224669907045186652445326525288196369621388274392563807182586026182027030216425914568269707995194467698317290126418913588364018646791385024068040071691663032238405790515442193008058957572355091372210759675015372669972017854960346490257279378593760488375230233618175032394683538395014797403268096720316170938761642755298396045283202857721886441616284255693282445291133540421716825364307179000453966292624171473449611702412831350967265475310071949582980108153351791883428867471169394694298868663062959600051949475711219490184521172338509219144016416978590991249251131519024886476680237867504760276271759555583059202708403221069759577453578575163701466413729919829901795479836604346441827468125121557585946729736147525663145448727376740751512369413235080650677947671466425784258260018955650783003197919121009714256444548666539536481640989909623976204491023615996525506976896141333345870533980962810828535920844793508692846769343147829973549861197979102774966872432391165864879205132696736803754785200224542313359059434748191579630044482355528944922554072004749409674664368345666718887362744623741135135572379187222300232993246975363167256031429017626117851921869160977810035327227190309165347951699461874025821328150151655489661861593045266398955988532070088538501980054639740151060953822628839426926323100358795943144430574010578132127535625459419058181198509037683375259229878855441525519815841522656897174282236009011640620918323619998766617783552185454445802983753243330821150524467463175347051489387304506815457128911710270979361586210873712503474029784150057037922175309176130338648831397982170558982778408732651310542941931240090226921394594068719039937972917786288870660053247209546983252039675786849250682402831803186936723161553986639019424850042598846593257685425532815689542013706097284380297058982787143028376377586303512847878031410651921137569900506762410476306852093358446401026362704528532109417207342128679463122532230386391305176228923490874843988044079724502296308522805262593697110057184391007707224711921934727408133534895682746118457340540070458855592264433699250014135226863497158442385120484733967716325995920370460204670001508583791767500957617334639251864266775764894766200260711659866929060495234708165476076724262204187788280146834590582496466346184571385663605767036204934897478112970677438535944529197918826065870791170141203072156077828770511392299594052560152968402825191958033852258983969579857951561922587615492820303243722407748650184624952952711522210250919953185275418326272561097862040481202791694096570110506696103324231214107418927704819419450876170751671320711818201101236136812052706067684253189901713647100760348045896640476396560303409950678067758421908959865293607981478646786876386131572416260278730080312390659475939293059228243515545861917848445268641413690497365690325918437168958839952844978396379579486314539771425623543543132650954420140121892092100935607869623666258689955404780567473574510510279602054083837590001914502258072149245870491430522709285980133666895582712040162051006449687234487015197407798174195338221971454688307777667233280486166593471558621624983374317610568172572749218111558596093775005408053794261725827756485547259431130581634833317021241179325195911559393304127472938333480631367444579799047317112543763381391871384482911673447857219040089703381202312906408436067232523819996092039337537992400980192088825290751190365684218217381442900995573326563473172538837363319615515639175162437285714761388180996819878990438934870590717288603535174322645621269477746075791676923545972422800347587161805146071633764423298339414719582915575339289917567970643939887373592745930130991280385831920169648651596133467935180162224979381341172714504581575720041497631187803991925961091931102460573644089818726114165015379736543451148243280917572087786550755631332923480757434894012108038315726228447002231150923572876487418177932669393689692958746230800466313980165976717708830355398062419661698493345205139337221349577583265268657697239663149124466813290322305607094608562954469236009299325061531572231764351532083292354764330249565116921720292586788507173604462394590837151134920043706863105333269570947016659198933197006809973758325865348972194102502064449467917625619814799140012697447872601455478942593913621805203798816730788031877806603223246651533030824912567598889105728191800905665260387736245247998126938496070571592578265389087531682693096600057086480674711347955574866324087048469416244602261212271393464823262775409912846258020984259204313133750569791300223526092218280887351670612890744548945299653442350676830768081920973207927122533891359775239491809486394605604692794866076095825746154665603825831718839178907207236037764513250716268093637201574679368406862934343263719108286619257440314331110066692815020988437207803604464662992241690169727509168612700393361365673268301143199063733479521389865162711241419017843179694357579225830680878499065925580413566521391210143022221109407698910047764573436160177781454146802987590367648226718052223559381053017994275563410229947963102462669238233570895434741112591668389827791300106031617309680405184054306658620143460133524655442941882270557855141543471077253837902558455776048329716249917127461598683600729461994380366739115559118422836981954163975817766191655348836199468450615617321619452895962461093687584635052748460302763087260452992704499560506277170212408513876646264097754773621087104628099368888919543406979833194274904906315756851994359209761276074944124764798901637894194618202082624667526939317405953590079659476783706702601862391484621686961615933539774805113187473321756673087557167013897216962337584544797705291911848190329273705969277629556289269058960146275421479623195537996059033007574947966037077019953599688822715167902262521740003149641560415323285303264100249676161484407863858415126955680997671652081200344032389984544701299741296030340370862242718780667567675100105303824003242785485802380174035829333019649373961252855285726451450787954259527186984135119631365211494847732687236197777649601093472612665113414710353021155158458308981650129114643129129759625843267319800812079057064747226827935433259295916028312781799191265304535756347405788480921444893598386594114847583158658401725696504092513989205657919474209614305170033148739476235130574780842962787249997818186717662388557521046063136268458237517668423211664124824145238366771061385706209254926960428791754562908505070549797894196333597886268461876710421339009351181431351919632859832143746130173284430495515499896620245368618956401202500853827766168068907437873075686010235245800341804992420433808114242703335459140208867906036475255645491451412882238716129576731269834129473619064387683192194478850188297643498090937476283095136919729619278335882312518780579507648111566317911693247712261645843031347743762546781026871545249788276669954530942646149630467516013713977877038516344386850618620655426046463003550901140594674983496515069833595155450404677575396123205210151234714428254160249047078034156647885488822769396574916003621733666290688475766032256289023726635984760282478535252012028307921886905312859124759506076191248042289682127353223744678259198716859547379116441849157960807153472292503386504132073757772275262582700454889744759723051707467155003212197962360687251423177752354624599595722054474227962824378057858884895072474183395339885226976261091453637871756708096273395831760622388564827555438358049434790684498950565819390028683837077085282876747131044503229099707561136985451405089380040579370246815828248789446391229572741752922203455827604632112304556504068459949681475517564975928012829994274215536859008193570670904749985536749757580882158586515376014102412241520253985100231308123909339066735270984443074619390958730825316130149359314454478416212918661023768402390560067322120728402203898129849486680043770970515468696562394815295599486362929910919735719313593715719913857187585110209417061841713365837498336682487618416430205853934693846939620722837505460720105142594512550876773868516400176392871797278480875926150772466210696819965636031494028093222495966142309541536643769275586006979542022626706367436750660650261385883936305714466190903450229714140696945574922011370384620541625309370265050886861841195855938366622636971060073950465072565495852618215072638739948749599157156087086271738876285121849598178480940285757835729582959345570454040186513202228561290639703072670352380512795092046267999201673963311950950344070549564435079588568951253936131366641530141296815749486586507672791586898849678563929396475426352022655955893977001402080878445269227938134733514722759608773359048243025784903061787920945775538738363489417831696571638714144679207758411279874730942266808268401017441331896899440184484467980362998013590317862826562085129455588067132139845711386144411082852706318640023413732499668324776571149341569724922849052182193242229193810188069511030364299324745656955407059311391888118827114462793897379706219435984143384309442673349181652336988247820655472922011631606557983928592374618443986291563212085615087677316085593511855697979346809973989788457659334650222486631047337791131470782336597549776237060256555382266344417883866770025220026357974493867282271135551973179623684193093339579179884636794601588007326171541318101342959701560364813747048668150181570905710686754258806583129866378801734417993189108988551726302591560483209551365421297590891147606427625961352023263199423132777331423534748319825554903035952362893029273174739989129242285126698122004531129409707213432322850987757732115403939528873845154175414393317168196796882161359299080843628147986511532060947889664066223915208643422869027641797577923115240062546712363809859107367355360904779211249758524437947437387883686548500467334765809886455606972486150875287126389696702255502830374584535834669454369618100637153271752966338836510312736648369758613097887002060782960800121165319047991578693804198885498209672463224881769374315472319740772175216242492763476781419070064783209932988525485734265456448311880905101054955116196698467462017682734150975574561320604265631121824696505572157854317618790557437050314739903076180668689430189673445020348782274407535993432834844887772286728263298931045289091062551660324998654038369170643755882218082328742665786014337334892392136623421075506515798769267646546821564638926789873350001434803393833107967241987174772489975009751347984986261221014337935235188024255307797365018151230912330274888388056259074799771479085895247366112008384817345650228785383286055074313079027214340486001405139011012838762102896419934347441167877525373492852957793457591615508125606481919693686583817750143800678565561769535214845765200474673631128711685045588951874450448890742939847291380553707513602936124449129782888729400120061472527552208960027487490267914105019071588672367735040940534551591357960911918593173039401848417292115037174291432057153775488069942418165118550165447034855894563137943144033925769161044007697550047268794269899570355879376214475632349772758044423085088151660817765248903616559858578980435434209299630709061934693822541492934073401477621070606728459986467276504215259820487206941167504290807594864336132632556386906814633423768237323541291559468867633483599054979110489054851925753886616423800450404709613990122543465758295366127836423570026018600524071919320833751441354571031923011174341936360161451844274467420497123207547714044810312065100644739372826360005822241527788210549551520594566385711361084234522722482010322407296903301881083749740295113218420128002494778480174476885769505239176060136964234731719983847492185045166521756184547429427133988343830007223136684247013286420302852815227197470489763443752556614004749592644631980769762697020661266375760348959149122621489903667931622815269860743055117712535008272244060175213393989314681962785605161061925558786387136478620632789398212801226592899623353311881515238666312582787947135446450600122440325825340347467062517234296234684850938899888133401002204945956071900229311157772723657141200650206530514696890958831143050847075864458534621997090842456090900551090699530744713589140760983044674882831022215342804291077143060568150903202443980243296460571048607656507893886364822218487852320214075431670277232865101359869208408288750673297125868640250979200371916314659956464966248450458194496218759486375107855098003787764760876251016291067620166284007950907374498609382856409965825910009813883037225120547407794821906630493067057301253659735510327425320853641973274968977296736419838508173899934630542457029151726373878722492964187201974587739020674640222658642151912220799064675087636895290810397613054564160304417918321691377657051378733408945092084323643119425688264222073675756123857286770735077840007508669881145941248825408873116700141475685656687414786497003259906056918989869946153438375252104949475751456607109378710125669192423080712098916323015087910478884525428402438782066254693220689800675825104980947707524107670949799549006680683159709150139950155305849864323135327412137441967714925028035949460060726686388488206898841660550998654153146553387229455202930816300207025594951143800655191554800156059836148574139686122102602394079086157342619141257740950540719983035896085839221025913001057869537306340800121110054708484615663808051684516947479589808113783928317756406589395803687702243731840840798570267544457708181354896639726811474860323122063431740596952943095475358030476275561846388952650773391805003497384987535358096765722858220719630681427532510188521812239512648691873569516733294233269167794913158616748194758343622510483760067284282490308428565723748255514684796815784777402242834649198545496152651058251113486572082451234999637482236232345591942775083967591474980175952812686490695796827707501687530440137482687894713087508085324808816524664160039914719622244355653396342086815858078064389262954271355208650373510276239232712764646103875065486070981479364627076356094072822546165078526171716126110964944064704390124603372375058963379829655626101136628126151576319673695948233117621512679390178531217848125219494382365806928658425734980380958680761721666810827179254629818648605373140770760262688544192355627583750060872197186115828541358089839460004172838586951386603981703575225901947349311827200671243017324134936407419015402565083158459798068876936018687117099099776467745296528805459354051321014387452938210914995643689732475029172812385212757542122663927740706601967795541543794021374441485458349611926462480970628562706745373736784979872209420360756035020493821074932206062690648207239954224867154885785773484024558562649683455673527897241882758500197304786190949752498895322840487213006357091218318927499245332561591081280886075040421419062512474552194121671988518400408395804814234962885428561721069259851529768117772446367496936612348802293829414339734783898833770730468060243970677408581055226439309296961056635923303996414660989374076689104496021521243967305675034327481256131146500020299847146977366504762316949546578339584747687419498219785032115758939645900285530683012159170566687942415695341771628119719526978181852652104557665469271952418785950788788085063704198723395247368017376955224191823449757980898494027112591365489818110262103103472661682170615905809887099483059275122557795537792974275287769061188470018468416650800958275932503769930361876892906105113926388482270315769351413011716332689022683829111471794420225072289098884637467767573982789518227686382160343939839267643550430543709396820757417198223525882133839329471105804205314980221829983660471606219169812126220601324623153930707683030795579247078590642593227541848436997157753821990312073909571245407476213488510792282864889650167547066726976675276281016883730196638068754604662156279170022541552794460631439624929812899276458489548508917530099259969695179390130033080013875607740793097356955006005810902120721696224175023355065179994820940312710125055472151539153757739586013085537490004008634665473535310632866463647999426477437278182342963808207125677551130079844611427040129104201972644250900941468913471940661887614901151017172289970539629433147602579323792224758691411630332385569980266405995633135006599918415617976258091518321866082467914948879403152589787567197220648982877291684161804385335409513819237914529564810717790113129682804302758973530053855425002442568294534558782618105824705663093477661593692133415246148120432299123558121204510793523498612234580868213993577210830450531514848226849383734159855739894983080628226506338825917543444378928978847274012778062211397452681011914007980982890902787086044264413964670587507321512876511952691766229295750429901267814470285429181985035136940217379407432271814325331787191041071027411019581194955524054059376925197907318646354892464298372869389330785370484269390254182998704838230501464210613574932851198902700175325696993991725844681391770573224043187898204742732210787651867671417527965696470491830788118837790333166953558294516348229748216060410333823877124740456171277573425219206328010684767763552238436536937954711357521268068838836290018714481398822414685833646439541162093016868284097379966716847902038226378496616791704102539923507861119531349830624163302490945447707675070678928687990481910799722324347366296349522599572076311092134798219397202471254401040908741691609208619604011736539314043514937457850912012933447684987977859353267590126663390070291105643274272340010786247556077196529307066434469934327387202941642678756802844654303493718284179710738630178259757856362605926437635083510371607917475353072086165289886637770272229929530669126956685672531870733998196405979003782103274900280000571196086214941106665283211956230103225837557955668068044245887040094915752474011816254090881481856619301351172823117861529877474868621789048487940971738833154749952147014138168733705268690750101332908296995401915452779201621805344917622706737646667546115477716384219476603008500218523125561555902871868538727687390670592656661606788799944928831574970381725890068565191773770889292710220116216845434019666833631977896869227762614973913006411540159978249759724491246433519952509782062364205179421080391811773284060876577255499301635778292938520832832033704030442599982268229099464690577023072159064837325345933111431145574405145493501267575120838039472174429825070867723491484417363843195947431774096409208158806288371625693467521883590524374640557187735132513324603962738073458498472275209374387800767502332826325901002787219823082248183256229471024871782339730538130264887454189243341684482898820707585261450199019065651115799214856029656120685799024013042674627069527269066451503191744237079900844223064322004452317640896702964412489938686374370844597734422330209224470693689402620433825525988342309279131061772178121279886616254633959952380223516774203021621310667268470237978175873120155081094358502868050628569201091748169176277005483131861684396106240056194147805103104391062121712693211177991587627629277963135650793878021724187907892209858325646981465529335954396119472337632634207766655268806640054442793760340395977369094459863357302810992644727906269258622735020007391364350287926917097418195536146638366402780320013383238894586929691681911046629487880271676916240335274697970737559146115988658198747087778471114173394127968886095282790051570685266684387953452235327824149400507935773934327308703526260674967257339556458761186545891177863980160776812188247265281150955328226184086665893956076345667166372931311235815294823464852892356472391726392176781497061782777896334487598036665672711220651438024148898956444982148267159741866017272955255994023713290030372954729894029539083286226056515921671141941566399716773219228836207195707395714610550028257943233236250458859469061564552125578582016296516494379080299173814580970981272717482972786361740237519278062875160377186119217628315937268086777839992293852193223497423320002522239837983902159408359681145553838262536597895824697897227856166739891915468882076340367780896641034315381661426390294288379051135446169653030554220771231817466128471810371675612030396855475641804014447899908244170257924859293705051217848560144762568608495062996990053822477191851862692728135827202329650812278455325496516029056475375829531278671878597178308530788399031047825235727465298876987542934879721856730980131861927672936632683706715335519023926491688050927733588789502309921698511500449386670251195823018704026549280055328192616456100375528927519992902426758378122092616020191908493133348550438026130504806076619245446080306401373795772215638777831753940126393900668448983011493062528874556499704859812601750577381121669414130368312896552023376113444597755528942017766409638260783697191466811328721666221536686907854074259285538039850052347925894834407817836915864550529926537226503708290265065099259978128219778073833640612004317748597861933901044081908448305220852500319412831467649655449642351465519095191366687939118484117657009558364179743707401144937152507363837902843179863046358113110050070276826668254914491066138435526936832227370637553943205338515471278559306672933384808469112182857434714818534064406786221174767478949393837951917487871434298629934908735607347276903683576403981717603354904312053486287429031480080980563368460262672905644062180519846766111151969585264475009382895735355148893881638156658117434968717489002845167959532054489746791074985568412023599357379155243140293947855040754131664874583860300998191516326962768958336877630545146576125054513166746917278550868484419461009810596273065517833829981969547944560489305571757553255363754063223216193483718138042074032939514212777963256713626644489116813481852198679390021622978768442580885144307047939427441596471273856798918805239394912090537774310315254274060357226832527566739965390223412561943929749524106204720139454287153642479244019381966075950599321040315533767298658579207447152610783872707208289574544610544454324924266912090228713759263495037637764745940256913088764683471953791200727395326324354354127815274612827372180083069532263644376636833921589236576702623028485164864446289503114805403158726535677928883286652255143359497976985643092432343772060515372756841911956280050691950170948609820864130522105865202400836232290433176822076086261380346233136342267368509689397176986633694937619160751691844695638398419960565107586152047179026583129327866606931320647838000495316715535045297273592301352789359143924484498060227770383908275861772833706841933185141548198940836965108629563114889597565508705762759734879631224825290232075441145738864072716968872201010059574464478842616034411236287232745927448817501985185100135364367691073996938984689721708188001234238827853694605290655363587666585679615157636124165731902477469370276332604292327578774653504709588573231547685358344665216843200896637050593029668621365344519266484807507929783073815672973643291659657478748765021167591436929231807160238318085941298766908522790915250575802914227648530522951425372013733294514368468011360650802753353409440734214218759267687083041504601740876353822536086930700137624217624002508747459312603463038141121755432114559463172119174220808548334721721651825048046939686891239017236869641206260311216409109554869863608520455309189808761646010520534960851269094776309360117380332343956768983724683148769493087565249300396013079121320571092687774223598950623213870999100524713821410358836979634211522093228345882345253606885764784408112552493951683654518525972557759729812182262847196590012414098638394230094833019259143338805913092685623186049737106446900053950790033097709800416307302356780535853448647888640958647918683914285058977922777518872250032876786787050156184778721559433766194650288568789042022768381481246805027271527925841808474694364761795966544946485360775779660098098828231226710912123108402332209264242647613316980912741892870757799784479884140007926543669099251720011791891516112020573282468219773350697746576499827914658752258014513268580475375003297442352169994932842449731489217538523432309253659905300890685331932014946003565983460759124353846124330174095679009070614108254339447805324779489007653805831343097885539779583114078694252242142834860593261822195814412405361296503951442462739093555474161664554867960273607301202135117231861447095563325972238828326827031660231208184858218393300468436890900933295194040598644816722981223820965670774651856832720963994741626227116337861930425926708909092062359722950823606529084564377577446474856141328516614988436920529636352055683362345491379387708041495552812299364723974661460100261112540515729979834288250019009917594226981908932501421387295247561734188339971640816783688488485034720801239823304209080703343170152270721689861221041021450383710400772422136740295657688108166465434792677601927261310797723511322452541307913136176297235021618928731178388495096761759165764700458104345312286767605637687228329346298902279999261747000760051200581690640748105330613866976109700865504483310528515140947807858599351465497699305377409476531062660888999699014119579518610822820032628162095210955073879199804022147233494133423360568556760594053811254535268431519803932801363928002109172671584516411641137656173827056712574726791492632358519365260347318464271699650990884320360717065861097036625364392488985759342041764197314258161170396519629626163941833309505988060874051308258466857198665790749934420432525884761791672918029839143650637205205995161294342268676537523890338830716046078042228733727105106023252741668802823891644960447877056826337966051143420118546270781379973453822331571496964437580353217680166328946325893123028290152052171191295046388240007590435500848602810904415740894279027105635679224476971862471352815385666080344388294338535708996619545628646936019749847187440803913293396680435429174497080883025823148876986753377952380636076110066082482038730133693219108945501704266619719580703562540811829367270810140126452418457549077861119290725363520342821790814908222030731520415342353424574118559095190342021058172282762497017300395413850816448923182415179496189384377571833964032977107241961319753759062128089221073473535664808891442533150531267562317434442770942650869389703713352566258995074540440786741398551112550854112111391081893140381921642798527430396205070683875425605194723805710580178284992045885994648856543464420778284138552953828005540194884708440833091430784261147705299501785046232686501589335702252764825931844397061907721045249335208499465495100324792517800550534495773573568583396426666961154245515231028831837795081260012590454133107961561638401960212682710360351254939663048861130837771256594980244242088916907568028423106444395225382600931750890315387929376457983027126100082647490832498755382038810887328202891308899754565407588258051609018738948820299383649395931882114983959288275853253187676284502813377869574097982618930484863420322704584173704067109654515492756220933890436235341320437571085989590318292420974361554259002246855248236971733510446376563574169320287940935589854577267826439359796726621771122556715654239038934877530091670111916791623224095565254963870898461706362484564461391783221864898220466263857635299769273363138798557001886719978359233217680464062429218742536583614305026628571237407441497436553404105336736863381670019331083159385824622197659486512179379009125358152327669121990230551748164752343946935696616983718431430638993089988881811504475871234031565318275877320200155404974183881576925491798699224754570755660925154269637395492847217480813574107101526914226867958221559663038667089522574146742674603983048107895221320382121165064707939752359292256817342250400321117499133057552294901258198261978663513865194111105050676304721000094590827590000638289490099227937096078930604752315251202908278872423422934196320534347542382345456851450481773118114430359368250716994857520592371528797381188674435894874483542032721601192129282472481917556219528963917779139227261465766944987896732999653352064265849850440870136678233091723281221400858352128466588609369994188138751733041391256169496053807648585596043181911216850259720827158040379570073021467156167422691524363634931366189066924785934041522967464850039691816470394953933099328527338048258814708229283608233564798934939110764007221275752461886050989133767737763144693439616872113666308906643794941602540097812044289059429415655368401778843748764165557441299748685137609033966040844741995590207014304913942258307425135839319906962235034148359752055315388358387432055131679240069983763860622585380534759781351019224734300766983821931052683248963853237738614014714005328187065101151324938835635259751600905976315736223363629316393048007232035610220699115965518971470722177139437647871551199488565071098707783374264923768127066377475384800159159281918765386194495175236618206810961803567305183750622807977280656892849228348037207208058466018532364843647588270626673751535806557458661270109070344026893103576780062388355062916126232924039359307352511468054347279464808189891713223519157946683966588386038543831419029385749880820271877656402152235263653007795384167723476710329678987745014137010728431934982978684484185900387078790243482874782923899813203672564803570064384018487398922536787023441541735911391611652762774747405375894600748698966671616324014376833857265730184534583955506233247310439846198889203874892323901083597680756011359579834293071622964642708356353396693055077075513599338002108436924050313313722288005009718622075935573853291091193304518732761983942140980258411132800053239452163693272652895589712667320456172863898221171601102864244039520167799143809730996544857757305954522211001694162234572654495791152058420160004306454310141832964084528636507290455926494841058119646230082310720064662418780995144099394140442335461332708759565134931739088020355635718147544804637536458783541155338363011531508777773712797703107872808089380048572921324181316710472044373170330872631445066831294137631868619148919897162456442684086511338916283192493895423939290166469943568290168225590220496867998907823940317743650749300934407039394838904347008165704880402760639414101867008197267974425033520533887196056941631256084958988611282268567171647868728441254176792660464984792824393497327839732393566017288452261775684401511048883370206491438557369637700598088488532582389821616856015652062690940331870620346665213955787744020177453066443449654572800592573015687433287494369679196830970096381338886036710376572865227435507325325183793803376262925306168753744620826402481192717385444695553392956305925060605232196443628145471088787468221034263094336193178490029757179535707110834031441593889144130726365044676532065275439388293101446695400732325272253801279214746333853830916659016727861347662075468804374314896372198091569101165041600637550385763371820504622147493872748214607314188654316136226278714215609716793130215408755640820848544701970959033098594789476131406966408429163074473191589200052756172597449179550219158009187643080001082812471520206347268378086907723021535219853041602025280507167670898977694267334265622639621513970352434897793235077968937852177390051301030950030153167365388121619922344198467518052001252969888520004094734369792633670785993219864257191941152018218792701811279191054975203568182346183923023656093145346022359230220998226086895018090459953309544425795326353088323726036209476833760623602767702993563024077580769960134878979858902718906932298028527445011449761574549231900959614516035352123298626534662838937450823224243944427317196356002909212443261094001145357054048304895523422189105420697375296544906439997962769736666966511245251313082309648739290366563262617825327029327259021797966541593578870900753145743263212429040481848637009198069900295450572152449724285901413438172316211768336036763757972660837879331251260737927871609201817734768399422176362844729540471606881687290024435891021342626207289360240761023842446814752317041148048619396003253940431137622492351868182333168650475494516089414365699538463349599494247222795226554924667761485259457158904991766844467731756163537786515723052576745652112987354766889293220569276510024430376082867953903781617440195926196504145403553129563371612806087222555015967419376981158269779043345543611951031870784731715690503868621782572646308919850080220650525035642560626755962594950015052497773288731292682083076964469144291730682700926082630520059616064471374645727799494127915148926413394697173612621638056145979837282785351531981810332504922248897291857325432135348043376066492480908924180277130931828822253757932551714080974887707838025175782951649088277235182610561732995488322970303187438982610576462925795381596886494366598942267089293124415454934139992620467545940702883074785924010824163694852049132451293184966002627098436692412217742993502109402651906229806971850990475448291692495051614234347265910771205926507838429968731436621776554125050326595555102980507409908316318347761966970910891773415384477606156019946063815540094418270988073181521265083842577914775557206529710571272652762374992021915873176703346235861322811105844149086884901398626413532925401879534492892961137928883335927335587506075893403866077828082160415106975061961196473016363390981783144816800057659214670149195457491443024328134554335217194081593491569171390226009043842523517549626810933453549852851211658125368560148298819897899895748080087933389685376836633227680098644546622996613517941336604501294165114870545889405591674321389316134193956693260089509124266806541168469265951568234686431336172128646185114713805050514089744780783401213119353688164464552503523676083186128821966332536928027690859391231626332858962745349532300166984267014296948432476186468586159304824917743505161258691407543159182138096692246912980845657569243320398379518487360581687767928134964168609449969649376844535950564366606047331291326335380936949234273462584894268104461918062712512439684173629097510212375482187166596293519913803398833668360319411681463087490789873221139602218510798557352168822054628242314344497971526895668268779406051988269175114754845024133095105872167851720321994737957066369630962468616214674781217429101557777964368997649217041344961719069178366097465909107953261025902260148782701895508262462801957997524220396982842348464596128144744931168545260486179659196784141683803566224413953233326618154041927084238924911569594448674965516983945016292508593973342225547534279146271997005096512759385954458300500556296672013295421885737232773626152856097726277470693549226733413683284050439222509431509100305754973569195472538673062737117307284188723413733448850151980550987151054211898941932642750560675899892642754823265126311096782709830322101888962500229380198904193273388068778306138304640789992343799942904635923272840337026651354513028603978847675586869036128896532155146527138084158753121758277454561730549140913927048680998289692964291323083998432560233523502761884982439739354510840734381737597838273479840393193524131936665149456716944751000120141570656633646925796462896625247125552273373683653362930775415698583330771856592792598320361203664895511928343542577312883047284457829641406488689816639867088926094713058895940517201215202772689621977503214823732560232802679662541233524236251614006269875247930895586821346594796745011492178261429888787552716693430859409758656641176314626114052606530516534783888787355069883264799800326673042546016353848163988714017941968736859711019520400483244140752761135761697641329325198324371612590493982330882901065442003172684803728199802300516449234522273808079257868910527213298260888759905143778387282171921755734129961084586767203888770842101130258496269222910700096116946177416687304893392117787847232015822130165863894303380879687664646527636884656547674045297141979434050667069203968621676413402626867107703978578729680711638369531814848972639639113784935971886125113918524486371228560810415158166176023394307100115643002268813866155131160033688908611647897629869294839828493156345133784366217845031299283283513709479865495561300006315928778742625429104599966915069653362823188327116765646318486172563610239959761471688655155260772897836338861855501709700036665668167317868716336527037039655787386699807473693249370005514414292718157377639500332725706467070268191711594195227388499496207027713050437585432863203081023539177849559011709873435145412227134813828280306019731492758151462909099758865882245254192861549432612645434149883242271802935546982023806539375840340238637652589496728334748854447697269415455391968318183574320434245601907981202786251768205261461089860307058993021786483659658634375115772970231316290721974925589223134190866005108064734101267210556532479605196909080233556467436665983846767735483357632213642468062696472586851724788445081498543145874114813486427034959447633467334471937338718526721105352568465828656399753716958794093913289157120346171268250439448625998232017680397284034783401786468417186138877759754930453727574204027004147716634041629058440497208828332222133942583536557404881189563013777088434497207949124857248645422899336760784936457204452443649331297005730367806509688835093832602562772548600611507498901425955274016350332580251968513367848753838767568290206896835815199250494968904104414244008778763815427074341055830752684022594514475125250634370454361285345875170082175589808646810377699742885372947432470353911521355967646610374032253822332136267146317682661132843022225293247014922618758380353255899791157927974644901968080042132059844984048574949473536897145068915477442670011494598971674058338438292250164062289772912802815738202334083871944498692641225837700508675208293653919387371820491075330135381957373708292442815126075080159620904156597475260361934795180016974219550499370140755389266445453361313576072514860399051347362752034787563708993670818449494037808566187269891355603225004829173553311449937197227406901894088640808796044126793425940944097611819065391774006975592037567886018283185765549334723949688160393423536173827048724185480960179566978709568340904297048255653466934678580085733151766292057864533452512398663937704914932487435744730812545467757822292404554974187130278125612430564589030337135134390088791820210060456682492759872776960041173925816649903032187837455276123460001400894526543482123056114890742339991239031955749782624114967107316513882396575069604508807821019121116146135607019800989394705191397444977421311340570526224712841050408060861722823243791639714037022973014301276609207284819215147468434060641791313282209168161965233435570266935658848760286959626171130756935813232678443871138039753859205803025963732250585495710122673218319151423864594084071695301644651044143865890402612059363978771869453210684941891553780905169005968838556705986083887517859923947245480355305636244902833681526675772374783597758566046399295646929925294475184309090975858197904431152074612544202442326814661130053331610986788443699989213969359829652206077687647004307973555729720851331137838438274186530027109160231102299207360931032123414543598662285996859124591165972967153671641634314901308400816324456031451184801545996644140084821347787221254411536381307472941110584021308312540320494831692266104505331384598950341508758050834280139337288174653770388690613593231588322325488004105905918049664984094551710202087990203842540605283810963418887898286003277410852389394100950920069460051969708595323966491415470047065531993780214216376042484527294228191369981440245224296145100361331719127979317345159454191902982024396679653569356945380800523321334834948324960859794036401422729792986195770390348283616946705648110825686414181384058766895835705082155321869501237275019083607312000966872235656440007472863268237882628700484641191191569626156038948192799066945079035979891886339246938524784885842282263434378587340891374846925274051964342808420377141739817908849427366514694315201584121307163675644876476047500001899956896837228941969569837890179128367767764199611289405477670863882347235403512690192447375374007081271370812433905520898427441066829875742929534346464490676797036405656968088567867484145027935942908496079416508064893341390845587039380939759475271050350681027288633627711724558858450261728629458014152396694608734258305529742444209793708680405443707819859923763316308234302059107418154682349458071586747761927546363568030003499052601597789348430505270938723000635211950060427711856402539303562311365454118464479977399397356982561103144814788326284317172147175061203300277414018457255322668906930945314175705562941925518811515883343268551640159616057193615829413772756139423599467421417698916303778148552249560703951821956375408334015160621815565762613015938851182754678815289134202744435320582518872280581316743123165723991173049129238940192265848061761614044933902669352401727404263274046338607442842641358507366404583829150046371293966392547829279324178186010373673327880540180784785880977101701482726769410456269857974525536155360261718108809308141597481712031396250152246063810023992366129935409479857006715442525001768774361578451156790161550242342475439263042180478729019306931400781867160860061627921845682184863612810953033180595043214945401518992862670532614309435830603630537752600087343640509249366518147437492954487055463457763817590308418969395708201511235380636441428758451762577996149135680961973115284909623977977030291098558775336130449669457209706992786784558842803759975260994194496316777145575642197714193431436649190113603577560116139666387034949639972937267123152517967956542477954952600116057776490298555571233943330598644250648159492192258984337625141840166777395146998446553462111727813402469519220859702830833514326709308520234831066176522190007607545358017292064580770958422989980000032300024477099651533706493566745395834698302950421400907435277607113372959442657944382036063519891786060180452732445675515039555166174363171298450507317102225703540635490230834369912764973579698353681756937367309083105338311666031467352902218913768790176597581312660407352294619570550830814195948495248905169500696292157877476732826278043321674288099699781135836721465943037324852053218866640525559351031519796167357657249654043452512842849932010350763640037808445749641136979249326288325990570614545900980774644414883694189117246762916346337481537915379029521165283771472093256004182195860859713643135656819798778510073921746921106917309675545868603529364265306265457743719085895582711993373822920577454023716647850197227608792232433110980374165691340588960686792512041044520737620057639577884642461344178883806855522131404010152387098443654164316558413508611252053260479133455117113218486224508212410309193476385435514755507661790520187690624864600014366934741683207929625130306938121170315473888582325365922465025500416310197949065780890467888941328838492180542574844074642585778726836335742594388030835721840491626278550754152568365288916536711139846426203803006877776606842498001069412877611840193447979201403171439513124733299412474359822808128651901002344393911718358360502560902343638109693232665900941580677319436572665247690088362997437638876810181243063061510090395844571173280878433820985164010808831978640721257504997184688676581007513705330894659567851725453201753446350030991095017243380500923144820299484554622448627501085254879162070358667438375424677928630951371889615875269607556793890370352397385426363554634266173638205086064170074920362101477177159085733441801128052986048677592063245999514377635754270260437857089907350504277653861049315860860121687028202948472729448543996796027159967383010253147889621860292645448078684700143479445512488755497296210992006217791916328027839257935762776029522472682285032753082940643275913878987821474264400723948997876696376768641381476068720404459305051114737397611680367770689956005857295996998116332818926193221086847085978056627000092177685318188818050358531122027228598559568602195326390705918633633669455048842029349761905238020293189844293942600543530987824815401509726840748113182220153171131791417372283528037388552797172522652292375707239177921079113785255184658747319982384189305060369820592586678692254648962513700890509044211940723617904010292242190387930920589509725861821001545265659406751416799891320305634200977879465631411539347428024028327976542563102157248344736442073549886310003353468674571635107018615636172909186747530550421285847808283870042112061751700028039315157857383982012989339244560557973217790362362173722135029733742050512644142460263338625064529234978722500531497274920320689765540430672315122492383398991576030825333635100350339416218723531229235275510167335721439062230811925220076669930009566510788878834765143987135922458171088586184732931241854629648670530746715290916125455745548032114668082851868427391037617161573278098987873140692506446740089184907716499440795550187200677939172319750185396158394164360411752570500592624130336943751510144508721673586749522540877897730929578634057945821012423738689738841030616546044778158421989781073730458055156434849482903947064491749366954096829893811952284596847327555038072834720194654589794569759186767655172250838528280304791432338181322702014833220668461372663855772609670608458668098634389719039625706985282382836164843683202183436588566297725718724701662258571771341125741813224971432602433852052798843279799287027420171484760760187993243829086408011408209400436167319309636666405573382217184567304707894442572044838747029233237939823743843588507748973012403614220269738539926982398959583569928618507564731848867747738505664699925632924795489047129002144043827278546247259329360898274013024333284782470377170516085041672057088330554338716961028574415636101225653712865377383136199797538407408104261310118669687730956445651791311788812356233667398127801397736001889476663102869902328915408514570565671623342886583919428235923492671602260537715612101939075873702861349206682843078835301826133769371389860626795132890542668948411094530414155568223618604746966140298807465057313713686806464952396490868134016093256343787226329816762391013361749715698902454123223815607776152146394873217864119744489828571286942937036219842492301536050259831578212442849429286975009122585671635931672877876895219196527158474572999768329304632328298966251291666259044733925954468473618903741221539940069452427434170868394828315860320485885463554378039750982212918436256170122649507807894525116327485803802929156641270406412953823579177556944995538619384436652934908295379766024494255880314872372720434297918058051828285829296782754552360663025882199186003177984886891173493270761554852352425203570404594824987614561871935306635739813492957232482305960260586923944141594193157277063751072634972385736887719205874613839572643891205864493998051612808013931132130255839963914553060125522259225415911211015952880764228403312620689124704893452508459504735582943820756952689528136390286150469149132712006182512247987449845479253325673357901743264295907606513813674000514506516167781723687635180846266151648057723008292148911341052639476533973580599858624255422258481409590915162772594593011679835414301968236812253849603352947312334868128218028490111496665731035572440690926194837543676724263215354354324103662756159270034609652056399355462573526967467016791710594047291371315892213389397924846842858785716090920151610887124570474775341445180637776031926674553296887920043306763635059989588570682246015496615428151568897006328144282075387335230301137600043788751892556318471597692832820767928802887158320641777132606964301149370849166056105617471780405939723180018787890854409843343261620749182840816381573578874470513541236433514162802397309468359228931877676084030587671286640314004726910443197548628252867800109847703821838960736606743598834896985938546387827080247132717380915005900109917511331894235284421447887072290878035974933078687943390104344377407374887135785356441141523706608734576041748616349245133577236095947901083033833582769123224182013357560451521539118926047008617791899731923956940674797597665341662261170862943839458295290137387565857348188914366834492542359085720758353544529867725281745980151456510960821157597130945175386003002101438954345882353154763803772026589924338657798609416889893295711439374663480821366068734460348025295564052359840254669871151313170165042771102516887835134717313217183337836239074194089646956082457783711446138887327166950999656074193904915202515002071413071081954352722668139099107524083777640864080094222802213687728514328842558960781299617190801440725340779509673718220380950655001864990174038558838272718933022817030410961199306469106600869121312820000404826832483315939234203706502031392013902777134511751279392617690629364898168562108435689892645707960806083539279183967282205647275351347162031131672768158409479778525181958856467464703547635125175954024933037731482924640858490977911815157246739509577648347193321181515127735864219639776081930062416311280978717955410913069364548713519172709982484377740827216972634896955917498656277491529020099851537149751237745672187093213442067605748293801113600725633585555673151317753243158270965435905513739565454252191139570470533950781410367347767602541155263172230226250818856570088036675377112493151785932237067853755243327886808907539115980302281734009505740082764731317036226944918948380386543312337583193729924423479001176740554458954818058741867307329200374987767666363378237712204570649595682020189979419912419984258988842597762335870992768119026515416939323056705734632074334886163677835349890794514770385528264057404759905064174854314887120478958415151288337599919304257721965279331627943194481488199199235977258968208689000471472677716438561972928529816578367662428706970381631259856105902126483068899005975532704132403057011275464226793771750026474177930500061122303029285934833339078556616214274841239498348671170797166455316048899055866554178524801656683405382223068692520846285046146717387973759506148491956537330615842134686083537389719627541195294869204492981848815683295915447310489976141140029981781030662185325098717344193683683189683626119531655019231318000336382540267337377360699640783056574118772235920834578954975551253618378879901000554324833079970013405049660619866879063544627052361739199886991223642633400106436399837570545663023130618575629391007786629620655266111866917163443427965121093554818678659531429857999335466783855681512825376686740328250869152173548207581050950773227757105720362925964056725993612471491212189343944127693585023203791721630013125457960197782345635371842253445296140542455676688125885591856463895926403365843299135419753133534784652779332244374268867767869295926821793552778448775257897830701662561462245946372894794242498454544492303410358045525443184942952033245477926275369965006399159582813856783354577164478101108952030700253463361926070361001864520997288585305937325917324740874707414054786918785864550485598088719062032938191046175002094385476284483546831805852462033049637045413682287475197848561304150368682919660285132660152895288223978792204979564085223205595164475684712429741372692548502728404868174998942265734141420905619001652174606561766575149366601058196729458513625772183163724063521725646110307545913937542751713757231451307153232318779063123228231272184191028493053013291569902547752180989159477526317771471641294223788318149391772859322320897609709120869835226528568133309429596621706785584701842242515872633830595853249180215548016980934386003038926261559705995368798991818310727496592039965852802267098560330139725131297175783394917509252463216971871655708255608260174659916918698657347610507545036053224360580570135461433551852260899438825812209596732759481568630918315457760042969946709681910199708422750171361501477648065552987810907395854652045948053821404027240330165326702384413635982469135241118888258727268628034593836703332981767600843707707674318277014194845293002271031992304899015571055265605655805529422569402698556321044527781979694338679638030292289428413489054654934508244378371265238506605584577721849743550623720300770082568580785305798016030854173449613433808329176956717662791042809238911485318501170901174321615114493819575765233210662262738875127755499736828519454586335185393445724309969978159006307253136624982134236332159230287762525790845426593334874072305736030788623873447263982134269903488416202456256669513158335269619014179811163238085338634217734324826832758741482340224122111297362985694697154065612303173293247083090313684396091124646188436223313661032719101696085310715549538826160260007628108814114271106158279545942081326252575585104718456495480330692283284907352632774245540176708170022996355714643658177756636737291862555205836652434199178683025270808789327444918450361642053136071165439310052563341848944589762945322667502762772104072847128476382014734088627401837485673138004185185451787088694531801186364151559865943866617272689793714494637544490957396779453549556067879721848633504885291510216270564905470852257686975962924759188977307230944058805299347327152337383164724704433362211419922729253380399696530793982927391279392267176459826355171656756027624652523974707588657685301776061698204698794503911274815213218326362610821365965156942283169649332924468747137651919813544224322433378943249849206877434809480417980424219474462359216402081575633825860601646562397638753659047717866487700438360668299692891980434264321352555546705865226417474917190964317452579135550020185047770486785991085233717797245713202438928284756879537646345082022828301975104410512554387340396741207623697052540346850868900391365191844245277933955515951163636986982548012484073411083613316812565279391581824134201877958871037767003075447092848089772723228184862955782987234200568500894368485641900706142627949951937417735051896047044299638191750418727884130726361451854896760832187372878729176073072673906872306124957814789143373221230581513372447564444193857340781345530991006780109995570371075716655987991778069235029391975594905730158067359218259946726883395728963309199977546994267139068007653302396059695027968203582715619835786219249795449553474218995957340448162336811908609589855774314008711628325665099599183954987532711761545059228140038506270079286935244527611168551743099516797674716668676515831686933196974749504748360198599276353404644458249626018283621599828304123720341010900021768114875950535841374673784367641534862776845164407038113588579341606271633121390602815127583942738829716655097021102915028712005652451011824282796693566273577928912541689169602603830314367096012292109321562602483927169174622837776555336508362213560642876446835500111596985206917738028019341003011459399992741167917533373375625482354493863944709705941706539260282822594441942165115003853188087847840461285835061968716795632883835458437187479719685753589046376538440751287555997697895778965733420660821043263556149762213021625443517479042351986206822794930923501607577571437352938052212178326503162832618446145801124021019839754552594361469670987591446232890857377693380094160681819410109486464580903187244319584784103697970573434487441023184979628512193800363122943842982009945223273172724711603265488614865615835817267511653005818548580214215549822313874542543581350310733123189156277905106399959863970229468032513428400902793447307252163272338280842295455972803283301632160705003256597475163114709359399291103658671472447419320034945631104942387770177505734906722774156349107520194210094302285701320582472424580963022318001662155665493332805276558852352411943692867695786199957624589298266328709872358698906437002813382684887548767028703008571467582086119480593524327609070610113373838529259819498778860629914732834304976789549003726251130392386323043787190810076347902872015838711401425673964288439542692143767324268943315629952224700346425693373523661939095637254567892416548491111044943532317485016688048849423986924810608711002370930825621176692233448110687010702635622903572729799511664676402857984782185399513460212672965824230806336776440597188057282205955010305266611876100452500525244692673611256537507963296132386827715717716706620963352471565974101765364696692607347866215839887016321829979693106314018448989119842552208359344608027557530563312677421059098146453200814128194597748303286867017001205646502742660850394320806114343542922558891657524595886895736826954095402997327402541120452440403217657553456586521003409629374194769508046815956526171087657892317475627320163323004919469142865253685043020738079480528648609022773557465448148890080383304202331949548985371697536924541263960570514152180295857477175811315173822970208781785403074145816607059582830712596783266554982051183531954602364974882796701644173797756786557234515271449789228185269922725835998658210837054497209189544278099493390341067308811377698186768649404292057070795090335024754993212433883749652737303588815815787349843178561618216969498730799032991834395067109070927218028523176229191464455345772023635433888052296539573866824733182269048838375290783153841759193490642853125023061049182230292263465212884207745366307760578855755275321008768740068722784682476653891076398083751250440602384327929521750073154488058721570297089524443203651757691460423441491845371773817353262319748068504518556368503452611123702293814024992083756059813415477853994361137719011859296052811006785147999954094289410695718777250345889799726538221185377579904877183546106645452341962631919223268085554130073949524591900042472526609548589420179407771470653157436307988979698602928246666182793272254391579311513383789632916176051700871542213283559746994766606147911256941499918867308510024008553967552185211573795749659788271696214922575179613483950666369252329120273736676011311740186396364992454125698122378165192372162729885857994478496568100993603697219734191712800447543352228190605961803413026882542516224009087491943144569441936598653488931699719445943286551177261342029288297053342236802631886526915077930826255960048258648750640044759415586904935718243144538397565146677156332576434262931242117062875501707614218681905058593635451496478896339924321887899282605004648283256816368876278847825413989000861557438135031847872389379170957240740671958093725676666958367624550304635104122214721236174202586741923000673214485978378547090019066783230112526854049782435278409451795068132307928539268854806216486568776715822360103471745818859115732916101836313335316893561624507057638195872259182006485012356408691228369991120420546457619897383694221162018558801671781017503156405598055234974393476250237772373009343776449786814367990790177546822603839767916880491786610852524553539058009779820924865139067561074506266388556953535943329823448598230376978382438909247515553589572892155167046671545402192811088443175210032011708210657849953344290567332152091487603031944617871946417442824614008479811241093796951255060708527626946507186368095886485601428845154478519650881209074347733911450617026184348564361803535923355800662868809549948560833118886410843669528488331745560753861528782560642482503056891407297305987081340816893637362631489654234402441281683625808372935606802638129797484744376537830845530930439561665869538017596239913738783907865739773738245901812327716478494339225036055965266218525821623032041638332428374081960696106354356889786989096298542935731924295339373313490306281617412885975856378164428216420805064026491026002529068136232791988880277011418626664783653265417240243666900705278012099835452205654390497317465000176911483542646765894594623595143951528367158450799501513701063230015277598512854531392360796928903991003314105185583925008579845730654467326145111952922992124991688154040038450485257174027113177888783774248954410654751881546684080847326135055634737694671894397624359085518315573583803708836249183619408986855573610193042843560551932862267237981799805764582885029300326100106770887900572207122473049915833045460773998947477890614213660097413875590195075314959952775397123045793183836951289051557971535710419649410060373886669146919500484214857125916444947269294270650152268147973329444620596318102890386665575850582632613518323384597131252373067149862208946319674381505502551588115905138339149130345713988665079759287399133500952751258064621236991366317818586433133691755095754296487550355495011885235446377327300651835776988311255091529772194395777496392495183444717904358936415967890216638141048461476989258827214134555693366517413808928326591405348006658397831125706398003069713967677456484930057504135483717704859479687578114464712907294164662985867627991582538155703877256764368030138835003364243052394293034480753367138739215733741230893477030468517683448203386292644381660273830166656110182950778808539987277527713584354460535058190387782418388841474854038149295068666728152178279983084246526804066082122333105104737235072571789260562332711944786306902133736603444836127143897727902143003366768666062505739531310077710362249857571843814481383952961046808697509830500103234939678049262379210573001707962460818228257228999067788101031040747066054294349816013764407880547992214438382396408260293624458432130641447345537707234977862562572360307166924139349119481688173940047051798675054280192734907307573865316595143086008831193277006748920850417328409442787237389015397241532206004015724316603767298063086222288171034931025757491102464316847265607077184432975033341471926550276470899069811834908713819948388547402335679823046239303607247374233288876944229429691516922590131712664475666161890614356604754971145185555551770036974504392978784598743655579726396296320383495870496112337982621504022478951705374483017402357473462190809256397796568656983687621649775732058104217611233940839760343440137217762382199119628128451188709831303192951828315786031664772228247327960352680769134070965129121248324012742544982654326461732127798269317924474602288058042271902982434954739362429596924311399821463841700497031817668090007387164711383516082317680780833643243453577943243103766548260462225893524333088720059445997768564545841099344731598161915824710243552532793291585752944179520350206467550042395953660006372281086086647702000735634545425865918066677338994052502793795048798158842918056357771499348610574475727231513804742567721251426711618192891175042268609306839237279779742972563449671317179055522138860414126174031081597306771887795646861440977912055393741928079565953370336296392977852397525142751343636145638124029255459601797593712125826323344628743544017890951057576294388771565833363386378741902657902097935418855351840401718740538851558883829546735255566423526835070565686981781462452440307440296685914983603638329935315149471544204209040631502379030473300490964876115536454794638022260160195133230605443429113351632473647620190447714541568290972748257271785841737151212775853458674972196798513934309218024533786508457408303686931863562396003336385467268205858005389584599599226629738917027978894498292504712938971643435017415215366046883161513160128234564761526089934419095966005066664846082005637231632839011970943503236597707415860198333595207358227139110927346448774773318373596420011139260346833683256644839541989616304564215815226829942815023923993572671826235964835768701835767917041965875231522864439898672707622194040093500337750253930876671272297014628357229453422370868623344629673631805063600916133962822733630747931604409668714477969541883453532410009379795841653191518377431395342101531709577298118950783980690115901571108233963636092206444657062557386239107777669221827493757480884691996909677743973004446149099470090473224327131300924839601791718327734033084292068165269310162087022547417002906903644522963497142191567824369322931688328893479332982785007754497194132121610383858515727552057565572091456732040627916935369482452129946741184393220694435382073342840811990587208733507711645166769229178635028651009913489438210965822247115946310318615050913926396994358937144356500345090873490768729868240470691739408240851531629800490555278383007018015166821164132720381524107516628990596562062586804857691406472145586511389183200529369199309322428115641891603956002957930741550128156967367866052823353700433716715083966981566818615738260075325271659621745302125018053629893703206215397148285479319690957612380863563549191538789231486273314297185637446100310831032010878817774338572197904135847818861396797131975195463887338994203095971821326135832707575998523148248015480359129583850189953644696646008762522314806277262359593499006026194517976346864114229491973696512966317089545316738836074633517770397548513375331634017907452600773692748617457262136521897202856372595915920320760260797804956957441632435177748976197849433790201240037693440973162782152367042390945869230334169576699413470883471230034076445364665147985370548027073388569142480415836529063710149289469667877094309327733370141893839195637016757095329320603244336324309029112435169726657670304746669268699161419261361602954918047595991690090630903936032804215479072481396506575157471535381805323805663752666108897875198797333620481153488431382481822363950202331566776152553905210156183134282622425018954205867112618611176029757853061947280764378367674503178253789187014114691444999247378152328549625551801256221568340969674353745610750413172704203294818488783755922599596006660411718675150256931910131140628322852536353833574435089447831364505136066380100635615427983434758742866480973981260670779027822214742721904127808794258359084095301344936769759986956563419295476501032449204740273127980117176220999983012431568203021846257987062586032579195762824172528114628670759090595537751310461430015478438593674897075110548180734355510479750748035324232980425269009281155651825654745833351881809806471185804656925762353563097668757205634839754256964761294894487793692659258344093850697571143721534665008937231875309895095491362245865362937049522513446201907099430351284945704711425577094237922639997057045920135465185365531666913804473612135563315337587129323993833771310702198501444172093144434986143406771575346483454742484347735558468767095685233006543836202025217355519976714099236371776721039391965187167509272200933914863289778532519104723941178296450273298881574275733769710138060624430370281316296581481663675823021808340864603217005243685720525147175090393588987480240892121423534253020320883780465972405868025009184814683722347461538208733528536626013521066773675986541586443907720320147136858801504897070613508732921153495139344924112999818936684504760992026376721648336971202219630698306207994353405035338921132450303736489710749617306938358284575941445801936762494090714059208651956944344139208558112859873135546959963838395629686535221445425978631995822240440816521115216988820050520987484729731436105661628942902565710060206967171770983182700354351891466075009968272104902445197126181292071368358813540227412219497345795527456053220168470061583911133758190670443267054162464848384009416447447012531299138586922214359110213021974449792567718680169967787742758361348705179445491940875130970161728177836523322597960493983844457677769035743377097682848393517894857618041298604311304895916784748193341791146350660093338023922868233684172576419629980310872564807160176179392526453958714549892649081330334360891095661362503430442342552584528098990960636868892285247891204400399482876142297673637701641382299886168691030294616927072137951815158488572225655050350937836606770370624486094692266304377335233447058167609062115241732451550295077824310456469566471603953765792519740581686276119432688843797808991126760438452584489951019912560692481400976373200931474525568079065335690961910893656063272801484068054848238344370347730306581031112200605587434382839476162185650813489127526137789119013381904682297043999841171277394112286023729618307200034799309433495959664636013868836875863183171096035572043545424331243102614651244156133869281426052527974884792414429210436556344212816769588566874866302242053733242476723700370378885812177465616691000523812052473996125955595541244299015908985964193956545538790456671552836053412920508596021853814033013661107643315124863354053438571076173487724437751287451890222016160402822872214607843983824457574334681544156357583322291540109944687076657215085785355156877768638558423043691555618233857196685485478837862781382324775802972022677810975812554983412285351357192759988388328754864526960887590093901992829389408144363483042620108688213849630179027145874855554229511519769932185780101789894945397283052651576277570166451594023024429623249752010966834058722584487371209392322737913527916558722098907089272317549700061374528036134648980722097385063819946334649528924627447543000873273411036119412230573079618427389475101095822264138867190485494375693473026282903011659672969846126123067202489548799862282471143346522777715168468485795720188407623834686385984321126254584404363235853421334679577562791378734148722871644102723357181043933078009953313641910337990719406656765104464255171435586278420772474259205208188174635815116373593596436204389628997524987117184385986510647734236738598808293514912865546177316780557270027702244449532858412383187880041877401704628946881738004369638845796657055501963688672827383183117336392813986771620619933613870795105855092128877702408076807746737938559747717574921952258540192768853111768770540875170253536941983580214721251536286796424406729265381851245596102406359302513814731129004455077059081968132630003960361136592806899140046248987257455510653732784894612457283491312710354820257151448338798186526915760348058240585839046166182484957534720849776457121299429949959826193622952764755809116877476728807340963065677291376749939767968558120453832452240158801663863866036330153734471690320259738494610149899745897973717572408190847542487685706680639294170698093256450393628305170341909069314235460252138562480622101996756661139876624776721920213762058857449954349752590639433761766403948546011805304353271450225690223763267694412743482750814070958555294088422226802782875343764943838111147587219011775017284950878130185522146822097152025203348306803100322655433871076510298350254866471402419391010212880232958394232287596743772223785273806026794500597445612609146623486310515722319762939645311728026715235388319522793018559261263222390830673235254943806981345562490455381790956327143126578883654108210834548500429728879542512996506662465607473255316377715810725046382136646509002024037038103402814340151942602063177215021963820671662513932140591395884987684940195040888623016489377712661910773395213947238079913308046142216036883667557454456717531798086173505158018565407786381669967886138831931829552114495757821683597628229645223595684817549687793875903879523895896955602698729359407561809544265457492682749550969056668153097632325290945236318226938723060196052875599789778585799110438249261330918528753813731539977536096984047097940463497566013949929959874560952572265783379734108003899684768855707394822094469245460281915535708465450369890194055434139628416844889831205880065288352219982408578434088662591274857868457668996147077646862558661950168962701188919053787881322038079806957590755487562723558172948197050547009863638189436960735483767862618779955438084604554435060152367770202351314405725659409859736493575290550378840329234949035368546721040621801395963446508211957837742683736187147888831769077803924115162147050703726246802005593792525480960358985831207264387461645896171375320038530562951962264543447929544107085838422112597535773288953613298358966690467036553177313794428211863092014479287457616418375807416967440828402128810131745121062891101578356019078738420335227841342465565586831488996725835569275173699067063418636101839683297203474217847885812569096114636861310754443133103764203082019143373348211576436125136821558588247136096986769116170943610400730255748761600680970924595070880019948747738369828170846710223752490525186123377706395849606304676654785086243382521828645974058792315019455399496900752839211982451393601543183262074398523436299491746020258107529440579183775223279388943977618940471111908167950816249766959168396127826987215924436587953399698658135682187260655709348870539146542504979581207123295773501279157207525876575889834257974674058396410246590209121759186802273138553980084573377349509807053118237935422696506787122100062736561386584048669079914960608048285955979894443501965261383757787764968713268707164059582118742924020988889602220552040984781307937600057847167585380414950616556841292169932107148637977811742111366234264133475272790255367062961565361206244091859222030448437410678047862947422096980258473012461932028166860448907643302030265811403694286439824606555488152347305936329665563178379067675621869359081426449981016821904873404419708165606878626555204621208799590550404329461360881917992339236494096061155528296374393319572265257882248190942601132715928174497131277259748288870335423253136018926709014006653060801291695895432572384254215816001640425931471544817502513968938607885381839442015193163379492323754220310394274947089342312583237102316588316546369860691326569284487596737986383279588989377089613186712383145148954989974547518329670389464625348828693839610687986920841257288943971047544978695947225821001951611032286085106313099343531907203316091011824585761282510165596225654453063419234320825623512228828396285362638900331802501138834356667976973979984512286749943817660400261255960254536745695197504000811664704943569936424637264712235911840675048004381196715560614794121674389103452253950627032740750774771194453403142162120416807465104503709533341183205458788913581460051495894005320904880058248388361976597276697127197269350841008117041467946725938665076111275953596618604973715988733464994248611977713967327000993132936306538256878718377969377663106120619341219638484733832194558819549038814839671564048059144265728681522326157984406534409311677695959964555833892398117367999119325562774682350731756562839276748626224271598512147241322189970811656374164962657288061589147663985529002140547262847221989261552011841476979691677885441103713577414737917812532453362988730666337807465793530343479636747784179235451973400227218425438771517853731392864195602667894554098770946272368310415466297535507335208583949227619355897364231416018199582696211873314994587687915764250453904949946469662121437896726940986124970699741235025044568444883574533714822340883811173849278938967633248833768387632615845460879382309459809899475770615732725483967633887086892868777882906556443090915267579372363640482431418823271976028767264709952741822078741934884493434811519291053118397992954696382031485878336394103395627756720357805975802445742909970006766183706864574502865202831294021629640098304939109734824552504954693014863668816274184822535776506922308630361453624363346706150900191628405072246139238157956117644181921097894126180395547823515009549967378961203150749970841106319194038396341798043425282210826428702699240671690512618943129134917874916705356999270868843024659617732252091388185944354513350136298893526416078695086144612846865159087278489972791402854252000218644486554445315235585483489129951778931076776757288543399359545842210167202028690281960297506355627437622457290839035931037925000205930594533490787308857393271817604598052447489388585211444124421326828285770161050267416833057676735869093179948562830177640438885046325808519893082083599084891486199965755282687321278093630210720671813341763129377123848598119509738263786966290505227015500232664205446764033317162552837265953962937447503808189267814545668940003661568231877478239510135843591452691912962105487561069846868029675306678326882649022327591988080080713526575573660830497765554465067659832704379590376327316707243012074141037162200101326403181618783442935492152471058612516270473930982790592180283029905929172483648234127140639947619337400264358770553070345202071493943195764797954142541015485676415069300531162996399624778234203039439575344930567356536497053794764088283457848760234139876709326249948091476683225836196353016077208808382127565067799499430037237792264227257862926057245891692112037152733085770351808997299117636843243617627111057519434133770370106681384148307872771650820497493629649680476188327804372334658781792672724501507092229145766661593341181599205276375378370916111686537371186141185833244762784047071767970998722413880238439165003784890150931009898906204528806924519305149725262323998388344753001438730251864787429508454676322823384410021826577949452006185161616635531780651750845004194059707308679434865236706967142001915438428751757341866545053535746649462376552139936441990693349406553287904978277728989037861810585509267117318395228986023013124841307838982404077176748322841465524214050925966926789147242753623706233998199461433009829546316800743639924940329303631961850510441819407071934295775120155123431914397742063985947274796549272310217870326433241073814742222450583057605668697213908816629371454461399276467339093516725542481473522491227822073589497381834012461079140315002362281697402887070515538534176587183125404264857512413803076870900669122512896055725995924208181699657313159816498054921066387353173216020292107633443149794410886914801641927872426461418442826754768989194935767057307360083145687521607090755347291779354337728452274505250534492383341503939702271002809272300943516666469912136093248125035669717640516776690073370622972393135543921925681954818820184554841709325484673913715769845156663078988686005698724898417686160670630647466789836374347430341006976529551681264244467390683589356023466421327597133739797551618560563913155875221919200245249668638468838550005247708789791326387830289443382817341067217735917043879077552868018278869815796262588788098050423149495017114253529191104523966387413333009218165058036483867795984048956159491479833593297233341299873983609316501552982441434604196511226858528041889147312925202731181445125814184990176152999085619643123480900012016496284175225347783046638361338985285632132918860649538258570570707752612380188434363822491854608544766463630011951978361557208745839521622563575997724311066292819732637876846142512026886584641255263721019129761332172644473680554006785651181053808604920790817411157428720412805367346947976590205177638958045303717174326894304516136636810013282603200371355577569717294799152287979520647257067357637067865965595496064919030085120376301004163273284555202005301536146090340820873463934769057196086096081137315307211866058332695961266204774607260781392499921935768678638190349843121763603449810018759674423376107024944827515362344142435940881296842822697126786635860971599305684657886885422476703167701259973868284339960992902772862597140909493271839991380177240459212870789032993072281133853512436864635860322552672320520274566056646248553564476034818308222908337130053238128597293282662115696653188428123008058660256396909314092161541919444446228494747932846076358628465468095909903849204276865653663619154250659854347184522370770538236982102806417677980574512166360214370175737534175378561162642718088660467866606549181822904676290282741430670636880177556425381652320813291564893716088155002035996149015655693728258844288945907405520016009874017917087224987703792323100193624435706804485922739939241013821008130939307013734227508443230365405463200186371116694746733759942178328001600432570290374322846676769990671930368059913193669953750967306915268467460607295881177888744902283965309617422994458866933087753960730461704092352564734742966769863451840217926204438516136403158117166430780618824473354397115368613547887221961859109166353130893290181165722971613037209626540628625797064011571586330879780015199231440857396796155035562466694726421414578164267382385444367622692715173160422783395325553033156389707275316634792311982002490783271312468232460484389688001718330041831691018469957811006538715197851790382508463818596123231739737066307404002868798713404082865043476284349862810055105081040452202357165310651090960697475275949407014013083330318654708505616300266389573885780048009360610512930665044834092917585555502488661662235470830639152313130251948549359599135248687322778627921853259022007563439282534110332389994101804734264859910090415180032774786543617577428741893848180950457236927842386379608841482643902223221194778674589367363805953256436347617900462167076875367008863845316581968793132115146169277914774318738231809580274976888705458914601084868082127692049665033089965398175471401797138058134235311757202318273287428366390748786845371747674431195322439698628118667359917142620178923155306051269982991867845864190209578838669576832301813705718738063791843336865099796810332098112417465178603593945013275689317013125764707668885692950351751775843296498714924227149998035265665621186667686819610826433144461951062470765445016030564017023588750938547319891610823910775475359614627105676391560150930415436086738465026117542662107499693724598137463515587552899153250729775558176125347713182295325072772040592275663258540528093180634261011567564726718000794508787310877504278943991147801880660837608309460103350230623819052505444300980343666560397777225490684941115864223785402442118059874212293530187492153066476075852394077909183790378095458788418284024159966876628805986155630686732959761222019661931580990981614023111534734034507867621820820875032354769296066985664012928907776517417119911065107517269095785431975721801237963852439079405946478729186597932765393096526021257192186864570797417559014928101943251153358610800098511270251416363859807843939271050225310323913206083739045438944787566956550606692249783654589416492238462902464206663781608604275572584168605282414422324800246222101763858509958273270903633777127650209263300089290638053910120507312647524050690261162093470910935356028538496973415350249606037272279761445536536023052337454482937186836082920735050318648059481222706446394533665982305008547311166613658082340076089844493019519219505366920938808870356510644513924374501000399357605481872414937784312644804051345641938337760553137852200918077179390511557618821156122918855376127385920266675697389332860688052086473478030315852485115739096290252894600456433580607688209967964633632071384303384484448014518980447656756857505892756183542108623357576024558040125695036323632771871428691590001440895494198987125042262313488817564530429537666224697189512773506439377491176734573186513218862718309662155127595956514071556557289211259627590869162392320218347392629987344609512698273935648605902930939765864341601222679703453121493186444128882344151438847331693733318541365940635107390039595545050071062521382435429714636089636929263248287728539151797771476847697339433593614879134868379919536779279166519437440678525821684283478279196798183264148140429375412989410634109114390021349652649658200470354616045353308827646245677620017318284111394877350073453888465407153514788638047732557898628499862699028916623315026264838647087333723160573100103722821146670233563029142438261206805781950033782328332550001509640772573105592932618916945230167319622013447788725383165143275747767489279645595829753145567333617198216672977874970459555668986310748877984005616587651748964294913400004140720099216001184317277398976591782152685895878905580842015079019047389316952437070538917364801311180619917516743150912700873504605687954196503407747846050632932414650553534649760465084139180716633481803994005209926237324239741808036424709205296872676479994146871403332711784352981193257148728595466748259482022684579153380516005996417656378974222720679267470506487391781025617341642837328045319239646105584769601408035836465309144466551538243177103666080076869345806359433326857172106039268431844276941612879898346279146066019335146719302075254240352721131655778237861382957745857517911565764379884611530105129962342580102414402490806044430039413456619938489937692981190346081598293323439716035911084089538204424446291037327347523118833507275700066537102092679578474485228016988730780364906612707901700343110815814341714009940738354493556221332215439336308978663412100118042134890905461157592289902059996669554591442723897055452319928370122434376848089719174307739668755323877107042562272984378078855268687270932188268212174712904178727708154691201294580869791016840664779392595908315435014190302807098241263885378412053732439735261910986395207810638647897474029800696830331119840266095322139655501508444529229771453418237600025869431935288806860994258785287526957473079959677672767058563800150401657516120155558473758876848470223266916923637536620210991553520057940890671504269704811923991449890767450327659336703901860162955133361720114609598343978047883410711100360836172064413896427675821498423926413410067643293226804694084495603616195261438913209574137823563348919456088295282731799186453174814117212535518916192968917719695922457048167213965420232343158727679729083975548299144675823520625087719542120141319464876974369072044150421151099390539907398133444975847999046125143424126059696838284090707181730121410058754516596259108006598803388653094550615533239899456697254342728700146427766022864257901303999304745380608006304535061941669705697491104074267201312680529384419814821332821673484586841039080538002170486069219358144718629036246413085280786665295847008485945827882227334513597744558780019635961075491441088525176187194158949815691574381782551548104230207551396822429458698394976876136817220633188573510072880560947578470870545549780439074463201402087571023568230843309376480282474641489918028152596148315723027340473298712985779494470306464445398476584053555537504719214563213826313452952172397570369515275725127200092733300454077365608235512429269906705650490425925004902701831249251023696598536916870933253083708907064245549053838092201841774772354006555161494170667148725333270375882939799360404921798953291829633290562865144898683955181953146824171594140337540197313126668574430554764824375369871551631253891117812140057399893094089180329280120550141498688387321961182017925077860758281102830477275194760714337031002657774842292751667232989412006165752511154434105998302665435786901025895744826764839436104239475450065722042266842766392604538460722890795047146508025524058063814342698829183172455098243144537353912620534528312964479050414959397302005198563882497347538577834007632918604120196112450263261069912775150272574341340421115568458238729626228867623854184946128030016236008834305165482229353900264362388236012946166765974074488885951842672431797749510677919259071529624649400548620609559125572612691076338811922765675837716395217657582374480626240431033691588924981464560148158503956341590154024444778329857376620282029045564168901905500273763558636351183735262331331948253747074255805103622660096420944398617585794513133899428372037133808779116281950137019019249572651488204646867039744054658865140409092725313113045567858697948151012899059171621977508082180057180609853303975354447260632596668854918619621567033032302318644066307653519266872917126072590762797695144629632172790725477171880437535339659323520746347106765127567092060973821381754719631516262945929647852129935283784339514093741092781634334560168422843392806009241543851333144318429217919002560492541416595106208711213175614941529130311194206986971700108449055838553832683746080532556155356457442298454149268281145237921568891152028980926194895627834173760224146553955785349827808627123119518267504831951760023493058747980354092985591781380267984075595481585572060181638494015805031118545338272282802404902732674884732865660697564142894454731699343303751904581820552241383498053440461695345226996065641845422578359946067645615442349951512882216708962516070181835811618561930004063648930890965722401219570312345262658432319430264803958960831964705424391915646668194137929598431148990871310134120579649049506087334985194198920785012686415739543507380660429989269443862193965799239956131897084764262043338519479880080003987151066169118275511242499797899152243245030961923560779701792713742913069926794525884778099687612039344817083396807517676815385679705838314507082221475600938624765866779161452890385368010793188348821040529197954802275335972838029979638548380837764654187614552050842971977540300938080228278022076501796949030099402805943352161036575379935627112901764490668590119584928702217571383043754927722059062917591573125163108600832097742368669239592808900224211013217858396787063039010260625365490233868669404559965622278100852391472196869046961313317509685615497552153736869584076801280998284819130537509390837207976113973102960483783402723510450031470960358353608181283012807115311602433679953128161826225722008110297412180558055840811495445450499749650068196072595625980842378989826050742662843651246829377176861818469365155327895925126422756819677069635521747212894463620439747999275670959604023795848005102362103185954568267871416562609764053438144444525810724654561818201536934287736809189334291228561459061958020433442216141748061558715590986563228643950506390145293138029903281065839479349936298052871428886017945043034967054145145429976586197348990057864946517179034354987646356238273753147211527130524075287433067017570814565181369914082346288482485427154693436488290912961253378116959271227660277743673842275044450112138013603892939916751705539449902141188232132676773792380628142824251408980776946170262930244228183774336298609255147236601686674232636551370516853078912805609125717451693080808686899988599166210826933891842736669010723623764555957380158062115560465486334249284766426941583071729021330932593543892091107485345649662778740409276807580528986815488953608162523475321942197548618818001928957721102527978318955898391862412255991029393160517764862421863657850411884747587559146021741195771100607136341989500398349020152773083052100440725733440062308340848339149769228700951243505563333732635946252668875780174337489190861620078014280333117836661812263460652450799550630071545371445924323167642754894035777308326621493464842198625228772864917436814990321780899886788245934147076499258568044907183113756853334250626401526991980276268417113068044531352647085141144062029477136278461582936062123441601098168954983826863906929535729726710315160921729564019538616303880303482202182158092868326968417464051193133699363580330768996306036992952114578418596417628397977869719836542906478442929466582448049059666827871917990803690657575436360096048920763361416558772614874743743637011207374583437094074292810025471859796824952337903132598625625597653707640523099419771013867674627989370130730823749224975674763619470873822170908131180072768343815225613530773812676595306219361336777515008186610349443693502108375673678614751038839660086743821695982360441802551721958677462602950048228488398692569447290732612940299401386033683081845877436938087143278949841242988374764866504453998806256072064548091405008572523579285175777589546471425196034052167499580092624303454367340986889626066976969041668784607307224314252215504861235062847815832317698053660964842810385801943534131496143610212135471042500803299252989595386510785054190081877150708915879445596953614435129585737065710515173296468129074572232495032740579369138855630599286276963880427206722714894100454405960963640506275888541796674270681855255265443176198413821788228243276945925064417874738203714189552773787858009767065247528452919481234186690543835944689587474156975044461789188331495236572402593922235663610821634252013654317217386195680858972404615141073394042895082680345631643817775494367917290464443141106429327092488448677272661499108791528634251279107484369407588683781484143432539828477130697564696555201988878036339038681679066941278434497814219420455844502001501298227420732769682953477672209652861387786237430512811158281136404140514187406075902465364355225023286884740412567240725632317768342873139622986977600861836812981297783098682257488612162549125068843516821908347437834700540961518022759765375727977235686572542868060815006876462084930116766457031476117897988596241420614428851807472654419776675082735307713698900310068650884078444849844410925453752668026772032175633444885662730424115713504541705687576099227428930699895017959179487309937154524943591747351087591287101352807191264866600339912142533593795989490267172530552610592988886914816828994981782851094086868845516356060715148019106739928123172253423567732448277867099515404701392810990857336943457084539031121739616060572201261105167395411245369327520556055278088272494081702706535682773535629782902002458108749123797871167226833447155629903704505632472964404733570101990308353646501940101787626916997588962852508215806043424794081563731778077710120682329267020369201285682067976823741244723998470708417487466542459157659031674376202356065500768918486598484412319411497914676282254889216743406284748559930552673463286615877780225626177648593086078346162674368783098847196918876347761170122595524630322607940941373168941822741995989632642261750997671478356615379637350100942739858540321430180196264606028213090703719666941966738813231037539210660295245651666081121586024613903748293023758758090665607448185631183758164216599157048450182879577193292114478444856606090769238488814622160776323606108640437942547650483904044246430361638520304556658199660240736363872138854611147651554508342049302787625669940396494049886654436482331385054126384845588826864671068806635157730672728027590183588002110022254484795662637541165133200054493070293317981327051962951448691346527160783609777460917945912186061586415285242171028426241462098626554107281577298567454063574652800381464697193316468538719471210544548679407470834345766196107677900999876342226573165748454954262806893272431150732448543129661383800144135579559267911252920397517154931114362300756013625770498099841961292227674744863198148770954557903716917153141605679093680600169643406770066459882207672692626283343265005234109665827408338544463761248659419928704056740884610096232981131910616443501623859257833554543148094345363959561246505303841968317491446407740261566839395831146583854069168086266747358662881077433733745305431172107454196395867154769947696243270414467513179821123878952683822431726756133615337083565695447107122739104996912312555357635162116019440671620420677132685538872079834625866363032790302481929074243847880866712371560960915621021906450205535230806265950314007969360458243759940281493557292701443337839334919895762032301389089400638203057312519314652095289429942385561935450215833393380018362268203619097800829231734877176692206743927113445679710819340468874908939778686819321428910838578135116312201475164929696579661161179651300962104573277118006231380438189669851822507339763763071439809118640023942865995333495235837547303010476270271840055401325682294587005338228461050417184989740265979132325565922602490974444133813677804695046672121600418983474630498286685237004775154308024742399113292740684729184971869233559858372397192475598214326978888805594409401366281555557951955377062178109398484022873668123016020756693781905980811255402243254679063822887409638766805562443597779704698721252570691267106286154224037622413079832532174902565076802917664163955209330811128904190394915422725889772546575001752507773090491904593488584316858950665434866315689579027745783833758028129706719917773926806343420637538468949726490099611050002868661112281718736098899929780440626476785895040329269537881613216857377571947140855683488064047277318881040163620147311371470614847697249184049665912798164420018896063951636337965821809145670181018988022913210700335319472803833305968204415756205068556575145897987230302577234276092091572426428353362403896440539284587793637158382388483475260848879975407450398745284139868314406473066444388367739561740180946647129725708393969896545718081223085931212551153176432290927544194361087379177443858809037107757851684397979562528882446896092327046985169593758385255270544262190707068826077061870232256877300118944621158624316799155324054471479857183502022213522841516112446635673681982842201775592082530098556441591808764155802760442623173357395592696487288553603865484569341398396704094111697161761126436806511359978218055919180781222553363363998329517451842693296894746771225159979164079213396242447263835170806491473660907899491890647447176980504475788501886601555676771323698814765648354677660927514977678144895441403126863135517046802295740537793160455921729585440758885512556362856157162325049056795276083421190239080128364346406437403211345958378161646374759243181302976225766945740714948693954106243298236596625291364462236297839261894195746679839322920111761757426795790413940188706799987720387356132950515131790935216914718572525207539230431389822453823830509337164784081678498119849126859693665010913465304163676087323184289044258366282229171094595370694448762625316592711536242748124189720506405420904560132147123156333208287864842472334975678828926338044371032541115417429575264039833973503987319843466910912112350403235857294886169171402041940304967845489275389048413615890348535469951071664318446044765108183722846029147364413386584197005383054034306109868011099373239521348585980966442828890134039006240228747601362506418683781503236573153381938011057008587241079733180882651710162035450410062540339711678280669684754468096676821994240744923496345565507842200437331821826987184908957539654514341215745628404233633141876761530057542481899304367664665799802695842609974481837945716789360774190895002368721264064047184184577073787023927479592078334162511334996855177721419445354673830866481655870418958310185718687304377928154323797811252812365048170572599750273451477066891654899315732871264443405561022037979913776246946082012714487599357665958098122187397121009746479360498786100216062763631179178074393574490224646153132183582233615297806444479423219303183669050442725324261138378689975676936902533745697050602594308499779956480435345074949875946064302685836125238555611595586659668091649626416161532636129165617462060986826416869763195874696497532765939751420998498040398047779726838151488311552146004817573642788163547304341130465324693197645872284930879369142971508149164379839345578210184036723733176604547893646178678075597242612240037988955784933330072879388343514972177347625377778166142999914491950475954599301517705816683847107751477020938445172160010853344350381851083421727718917888872587616014635073828341704323178543175453962073735333254739660188889321055661000272186628191462809334978029841433630027978979950496109947071363312038690052655883344197751658383847425895960387702349288627975560868223002994015569459213122149860760775208457288352691504532687123872590905192200213103608565967201142892932948737164911939464048721438855532628089151096532199004330018056056192847230366179591827888214141881325911436265090289754103530989464039239490500416365127010953572638950545647510899849956973837772000219572648862680018942362843919637572483270233497185642748215013092154597591394251815184046095798043948959296777290017272129524843738984707723163134836079422374130005275899628261542849155155378446809932924287481697620608018879788747463381646504586476469486140636672843075456366440595632795302023840790231819785291374740137038475103375259947328220064876149481234828005006445532449937058719842840962880192295277478116170685860244330555526941164435179147293170616539878560900255825506742492173555369709783991262446229119225951415398666415637178325285314735737681963920029993896558331298492705791052790625409530305977414870322111119424262652691313866470464816202087776106491743619765267921209854182291655519734862086486694499029141178854136380435193055059259788896791896765624370160611943485654638858281309577117100064852924229524781843381350800328839222079390442935440990946023310432064650669588842564465976598002631070332447156608672969698707702957107888923751527526248519018682079559851532038530099708065518586164057275013269152667755225021459350841345666736862008533122805441163257654339102381579722436010136139379489888930389014229509658040739666504953931431149391224051807577896753775396127091725823084202125781859632576569318914838798174773989608802960741663181002123017240557459316010147743588798116265561510783917093877559118477359699299308584549459074574265691832366875656072649058580500461901735836001856936855058552820371588422173938432185599435526913794754482543423497945172756529166897779331838050830960730422764972621577155935263621755202187421861595791215395130338525734577679173558398731192286060622553198900287600469139453845487502379520864702644388243339143316624947114521003152305787422640068015938320422507375718527580546000387799677906322647385330503911958561769364587374978418520478484156919370677087359661040287121204456506878860108941789011187864614072163628316287622926493253862512876839318199977842719833753615847094493175165260502386697510686442480717331829201060027471386208025257664572261095789980933219598512169373645572010657379657094342209748398424181011623654173393827560329398887762375281528774127543407746339474899497828598945412343377069398258512070278041161483744562717251818719983677531708611829998498691833566495520916184076911537726260879646919586789406903166354174863913390594632381601824038311964534712612328829361738973355280180201680564623306153866080471386888518234442576246780976706950906561206413483239572125925304097814839361271544539744863786190899254003449495570507630272792238964264222930232700638276535189499590340072151474530212070239603929864354410334970583135760490050361240435914134098267064023534805777371557591038755204021545112022080879324907454509548469565142567914591322543137045360715426666881346791307475777772415094517416214830602021185876750044802060717586946645067555155753318728317436024288413996455065618157046001299168197381718255758362413843674446004426889287916206839142376726260929357840711803646939069082811159762214410453102778843827124472487861167333527973665818253106763083538518255171861858496438383881907384595745783929969977072630135973755648964466972613947171517969482798031832570418475884886446489776970277853208453565366829037129415680129445393752249816242590895200951034027572792551700617340448964171233969158511175725977359551707524422624327617279486721324379384856370759387995729532419024329819640445757516601002767560364589376345627053343058326231276293211434434260610083777269562684278458530264445824321693820432269672973022648220826118002685639033187246057250238111145852247566665401050518092243198717311110119631558392702077175906261329728871156767468510911939289579688027846754115680928139713825584277417928153183838729993725161049599537893760756078883261490635077229909190246618325567402708023402398446621080552463159976910024603407970644165428662539127967053615110572872716686044418557028200447083041074364476682531849401926180507479193463794726552826680211829324857721083377654753514878185765821516597467222493990637679345568242017140516681621033520664695902710558896138636314875166310811094589392836450603457022752853804422041236653170422270316804159596581568935052849185276859550137711445694124560569576581863608663277558950173378025972351024778039249301189211944031530052578320988246105041465508646907897674964259281981259737179045881037993490530827881113411385007571648417017526495618176061547232689683380223281558813885241634237130248684974867524965837397053814357524647518706002351302534222965151825111737650774815003402915514122543999076592707640908186416731563911061650645095473379353671878135913590163066429112832469783872016960175144486997652748785415760603549895714943125571493603573931782770696916082049786710027045183402934483714644746541421443746157683841302976506405396838971600705903203239946567739016679910000440137577241783382296657716957801571695274756432785560461612877215714363614462626226798828315815779295737118449825428018797028051865374286447919366113858299161963758277752306327838009217605124985422776887745079385295055259966901983714794441691254556062638896300639645144812482677959408614589913417187257348955454756203821933051422502810175203903616849408841133502930184832758562816561301583289451263262402313697906197460872329958257099862282793663939119711319840769641333154102032768658461772132818644831025445621649014533097501249259642370608659774821624014225268068672967991269393894937911052599701762766050773351050939361638613700561825812664665646949769587164323125152039716609351996028284781741352446981747819848187898647522660812488580435228752897917490264675815750314655738103077099665001182315980881831486595306296370014465137605220705950697511795448587874069780102535956685510893093699190380092550879242303671782111715462881819281857994469861603434542299050526017038420318167693935089589697405885553604042759784650922516518865929156042415821717857057254388530950725726546049642959762727362831880702185473545650903767166384821285597723119115360795148903831767296295729786208091483250003172133016897300564689437235187740535254817635172669645894501717734464305305600857287434679749599235363952256743791293006533362538958604297858657295484011912798646815499092838603076431837949808582238235381843011992664537404530895247887517293812942198012757842358448428787120061595147532380676480985414991929589559813892063513727679715798061402367726872928284488088209879033607496865101626144277021596509491144486526796772075847625516843215324528724660339691318902315489381732736484807211162943116173679302563487131832241354746404803699783927982913802372065264117505540434953924212473319300493987306596103162323809904296453901219758999961203156054779585068831898761895633378300818903412807356244425809416264303869810106100606912728455029401344337433684573662452522663999087675645586830490031046545410848409693315330973808167470356205561058553544603066375340557450865986332209162593084601239185903727395206893878801973283888058658860247503092045828293263299528658994249191303569106932794638080551482984318025455342781893467307256383783307333946908804912297796159749264772032873365792906180413716404825689210835707422065063990382541349729588832919930455902097339705994497739909766597077524665103164094003201183959678898779145960252594149130683972649055867485108338253307535825590235479083004306477296219755366719430114879682727314835570026824495966680158015650758399997052663425921864565479209927391147840717713202209313142588511380924739692344778491461390712057971463953975482978551181361336767496327058968522558980261345329846494623882454933800086280156397654211967995878847505084590408721370569300831017105209334632612762388409546050250865179462014304716220695549545436248558732272833343315220710092076439248479190890878092171261377784935591504442397615227404712917125654988373862356722055309293225508778284900672416011472225879638360754354941760786940281384564293791314142926575428712415789547678281347405339036557266934185160093530774416658905284622377682822753618489487130180288760851584121235017340580420916603702091575993685619642692731593813365661540308533426367782106764588286688405092237502994136420163880796498977154569877240835013880209929664664656552135632229242286687138069871291779407533534065828146708554607468710900367248594575243391891064507361939369263091397376564535715555654951749133808011133063541753870156250962513456873024259448010962059362728056045763624872454730812906868081475820823591632897749090006371320784530147906287031466467946311187418775084600476865125243356288153063355528741149000050628252493337685934084414314053213157132732345469791523948706871875754478567283916522461074850188275808497698354440655057624396312462357363577683751160123278920208730256575397233293176283633138203124420318114824698959604229227929609707900396369942715928854274752645610096089674838395992692256870541022964284559782070331622404073552966548234483680602639190797927246441916948990152383108059796146898136871562648813254703768348439681903224609025095918963088658916807219167227823839094653821335466717690615804751611489250140187747119414324661812392597920289178667352830338473354544638298403257534959420795456879068530422581364730828958190588723783150587371428980952688586171750579712465035892567845266892276185871811066497752972710921590653605548403993791918156641189430007562647641251596000890028734074619948674213214473740820113132151542386280005849751486784546761695958750379203223271333996145599727700740999302452613966516617923626352936540234464337282287069402372328468590287454323061491815577559664560141984856462179190404640719382982234960791900575884687511576917184197492201309918492300269633623813450152724356746638466112333005903840536544096059991264920772525931759449254008973515638746244166660657957991499249441142146477854421421868653611193167025512682468773307351422936406899684038231238011549928236727156447729697848055226157241979934334787122206938993495124858252308553244944531335675068034037569009488281151922681489027624044587128869205927330621225194395846945454751326016817229353267243139630168499608405016978512074506211561085677696289996691718467302877094600860419209036768802408715238390434836970161207714675307428975756827240628921578509505463177198059356701894919272645976802970903375592305225242809244458826349080499126027336037486156547877711196247906036912809959659471137742534538059058232707721584057332101310060947091254598567381538291118122974263231215606481448906417235538916528008861018191227903493692589924979382569819431456556405440407748857799243570307001309797643890218107450601237314621807140348383334543991542100914722821033843509257213044241485357167830927174580483453685632826521836664005793160673731870755276234237725873085468557762059076188847649374189306674442195712179258402854365621062123039093905256118620716319800649563890077983860496759231983015970407058968522024597729434588446330473167556566694664692302615416236548333693628899655134299893504108712949421657093033017316645825622365917518925406518788914042694122703138374491011865672212046975796557021212488754519516880200681909799638471275240378212138176752474516927152717233933208460788298484430893465822729249240655829504489381294081442333579915178856577870916633732382618199611918329404536769278430108145330524009516727982717261239286504081295581762012976658214042159267206080028865517819837854709900621606599059412102915123547345755610882044158952488850468071607568407753919788853687344567360762119946921588217772568962795512467388493962607768494761014488609674885990766229721836276326778147362090586700346674110941990927116356276515400051334428978106577940545134965043397804521149595983561812406264376835401008255821209362101912409673159814831342051933443537738300831972181203176273305403184690830421331691949430786281112544640234203549214212255075951226675761020762640829884813268320746702728283689537282429510327120257457640693691699746658973663455310908608027520642650006958690705509273732547051525818999564954761725466214743992862496438116908416542082641317289359033738068887359135651273611762497407176609268443001783866351330030207884768117592564140700888427684210345948645554258060535741550543967782509032325947783709988102316853826898927322061756641350455036025309302022291856754310473377308740744920443484813210920294407446551817093662878552021965880903997410473876571663564014599718139877039570735261576736699948257341164283832228731421615382277257828558046266133633662594349262905718722711847905709636848334247155329676871602280063890268193817353268680013697545533822791559730265146386112162543437668215579529754091745486513129040839594588414520881626660612382557380435479439362694469739101858371166996837260094504223188678076970101031468692729483882058261557804759579734430334582928888052740348056298264792718276990299622228921658624777025630635875066939015228062259011018733775050998874195738183008077727772194528583779936092991695220884057471119636440809574315236314347156426317084288096973998060280072427016931981610130125042256242755449234806984281358134519364601329735343559597046229706341790853277951301248402515655105972377557691938941871599922056792156521145781247767503964750280147955916492306696085475505299524628390583443524616416775133219475898434742793187298174036102658347720834662069760558993816790098743069513365706896690385352394825093570192323150710419852717012325908954073575571205379269853690429512599658018214794481669896155635106866502144907047753222003189019139756114493418391508353981099687718013605863290887115514920240418702291514166407242110543760659893713564221663703774498419826356291479519102546366024957263827769560527150298714648170911003322330770795331744860145555036865256570224488118121812641732046648229144651757504504521743260822430079458328763865881633801929820036790937939928188246507910707716953362879511161756806956506508086515848366521453555503955943621337585866676104469849514984438801815876050083434852496922526631348932691422968546744095638974483631366294194319851540592501577798055987026490005680737306079517286110222873441048266906387202915211550820500653580774138462645445318905785880731444625581888641750309520705292225233053648719478863275119806039833175239471806223960309736204440366550927970008798204143638889636657965107379058823072302835135835827693953486538650787413116385039655807509449704722339204797369212773848103723207827147013877790609743486305881518098703933886805322370874602078882461546619603902631085366967393309460623247094954819866946583530683791237485761360479748265910252603364322174489366475900797459107096798117851360609187033721558051215213012089764962705593837377825597419340111245941048563105319511061044932161925252245227669507781333677717236438915189069945226392860646005710538782765557889910612133738706622771308775002717961447077875690021929397153230030177349187939534825327537280030855101658647821607517013195278662283902718860755691703274871386827332646296848711594490583977937038446061997979431259603706369491171978433704906156905485833552138122097665445757737901502114808560029142389511871426097668089942727500253540458751674382734982905406650114002564513728456307018046786041408279505475746405569974694331500566741373195242330484101745000933808815230014319534500765662277891586531438609644103518595940529118059048064691579247104856964681275540861110184678226883449283361098089258203224157284146317212611393992793152749465238098372402343882144290286950805172498545522735734542160050224899309249022165587388122768255382354834019050375334551633910408858938706003231563334002772926930007370820804727184900458580864150779105675319593700247195468153084325916513983739402526935500223084899015281131204281548646155994305908317154024284312993110155140842240302476986997476753296150017259808866747610274110465034358117961283017152130177378976340354793164498855616649181059003341466703248369872123307742550197214398497712556153751891946314492419628678236597531818592351972484352600057539880309155918468800332363722112097147539360210936943817878166907062943932555660933680701754192242930272536786936456559272113476148149881252695871642673441169239457694448913588299595335995905194884405506011499107385785054968417788249029550973025429469380873237952846970719053095181081134759486437002101766664098201239016998954918757782008922259828713759347270098568695928902893750591142462861737481559780038172228649121488160563387584393727625212985650871706419598190895371393294747061784456410593498796641640203148426000688766780019808713996977182957576494320857362511170672060611596462367187550054777622799281074693001922078180150511107128295652324277643177005439069280783128935539711238917509634714116208125178710566859836965882632413543564464949992393888737650010963949321070619221745512935122828199572900935918229150436553346052302762844915786532547185873496799860410035046284694310310282489324806963629143967960290133746718542711129308832474081670415250569368114447009098035286197711035324129486029699875111605857846706378742899583773632342342278044099027935507056930476114397679567776193637878205073382598204471269729645715879605682066177600804262141354519164411345769261388069329701811038781014336338475760969591133931054135343717927736554922993793156319754368483239695764410593766522555094277484743235847666397085415861443139680409282848050844046854030976864528287285776905317192380145842834684387007824731047612854509981889339094280758832440804787347290793442814644985386077511790581177218221427580852080328076140703982399943824917468377053150285843160187210537650316007119872347485776761662626066804481944329003954844086475532563506899214650923836135625798061629764972916018717749151704259786222720924121273078038611089759137874300179871152352322747978523547566505198489783337845236497764741633402382494539065372319995102908108952107729861329726467919959755849308067746060627549622927004927257619497349321118779305424260510346486309438982601319594868873863270676709199922406058242132468534897713694773298655575950127591336347635756968194715022140610837954605558670851947132985919831963748128483487992217856659079298741662226317517118207268465869179047755084851959191538053983265752870647315223382451055983221256313983903825791722517137804715089246791847950858447462485867587699955750842616726418406504894778003901106147827496972169581782249793397263715951354617512910975032733650773987665093831269532364458836776582885655409241149785045617120115238622751283591170655649343524167351507893918303263985768814272276198550731085024687676315756768081837552586675216324476797488878296920242026593856899332831341685612483320791445072799340740124673961094063140930379452531537488564266795787953763442824780638007004749822630079854254791062704858427385394699975933901106446356770335443423900412898876396877840690638749297688752557543577465777531328853127712118376848377447295397124772742805120398833326552125835187362287944497852146797497338770637954182126360468437983417494980801536061121668535573185487746453141831748787420507543580831813450810643146539415979772437953686618456938461919607285180344125571533011912509905036161761446985212937011213213997374954370252740461162824670212549931139500652296917351931630836785500023347822984882986899806962327915228660953838147765766903595045913800281851764008530669006561327406088904542387445937449801230678242411906532247951551487120315539758569824915878943003161797712826282710637422314389201617623844260883549861466864381946667131694369651950957141698264850926711237640068660774422267906285927372331474602302390264609593007958434866698049634930620168183412151180501167583081501324986425222772080675897600902942574383298271704944228487472376514089493691008020834756205400022618196508787160521486247892453573443600539766440831330242981256618138374262900770314926817750336665787531480549374104207778453420413613566331935121125556874811233345728807807352838746503714020205453667488324988164726583037064677385084057237796934067860284499729985029569740450458618034085687370930296361795834621908288422354285853725731989473969023108970399654241851041290185118910687543656016385827958468711539628001987129596189079749910715896561054239447799439842375400377135429743079356362502850321780638467620664778165112923232891484152050873457616491165615297847580881047075687093197187130395419032358400663221641802726664433906662543716733643225016562890887139126740825824625222711712681986296787105047430273210491023312713512254709207450614574200889855791457823848094460229895514408175865326814942463961310778240188677641577154111815693722264329665376118595101014662027545108399773031347468034920858558108944467139239009952649924489286548347038300715951981285400465056624509325241043563474414872402354206303415977742693858729557495071248538901344366866975370347044639558924161714770306914941441133441209510278150525800066167513834052633713799604183187721109504618997228733500606068885039946139334601830598695228010650562104174301648063880791839018388916395859073523064338996009579696764663930014399964009308202940308926638676084758624386009745452050270206267991456465235527379961738006299732298834179449300242742180179706750923994235522801495752353647911432583195951851898186139277492045508635888262308568466694493274469980160018356584133698514442824209230306532596153523638784323121275947618542495697795736307231226976847404329643853872964671166099052077135202364819218077121222472181700471792356350844030893575467839926948976953504729181287822016633637121191142653875290797306051368369492967618562268717292922013559084828457274380530537627308539261624032039497166043955876762811477595524194717339386492235299740261936638729712503420644375293109947663363172352328450948092091683353023707291525539912549507316011222846969990504956782296814461676788954658892945376335022700775982711909683860767130048771604280649477316827130181414119520121469152315654007839721999151349859222030359037098264191288128359065879333626367915976129584934804193222164682852145087636397466702773570377374352540405956412824780075986661426738509397062427204957330035633051894588531133149846828494673821293996656370771012189218130509730222114139056886911219847085861201126939222936930131246724588726075605873807944811297884407220941103060111340867393782975156209408155289422005507174451174815224178127138985469878014652483542482563246553665325209987974672035747458056175294686164137098034882653809751794285437025786256291215341216746719956051625321463982491522224218537003297253924461492975355247048820378529468742175844904105559826921342504369655323942317777696999319376611639421187619531995498757261334706349681955358138318618671665490833377461227103434040482483937752704114000402064178754003636808826066338601244819742537559064518231877771160264843603692293200235112165400786654134341017716746782532540589639931600205230807910700083065162196763042331761138299359958220014933524508251947710501483622956396732625643453559658945983924804601338373555593448951212500098304590616552691414742970923670194798560338558072626212264568296943484931547073465450393212988918693112423528809024258770769287947119090716302911515650717801690662676574449366771198164819272473918520147869987425714099708871724166221756800092598873972005718054356723373437672922544721547233050560349935689427973810458498838170916411879062310824078526689075681721586862844003521810433759364913119523830339080568570884735811796398505151550496116890653917626163941731632893065525542344197302363634001543433109530475635874075258142520548281931427967573218682519606673442117345596817350984139225875839378832770045862600302245779572396424219550546229012169225774953686953248291425189045489347915273652322925224114599193795043865925588752955684712021039196084824783964254987116679990706233808415257326983824268350931920489051084941707596791362023221118075322300557326053094279570014180032355853107862191490109619616422514867869246695270409879872626944302424395539062821402271264684626256425951406423120993005924894418734195960722587588839345435111250042134900142932024551342115381032783632401620718434178791309500075405741167881667368600933583811996842161833266906696355034198438996132951837436177122170462249289918874877216266251458753373049507353246263679158153728363171779823701360568207925245155854477824198022944415326468619741942716344982340406680052273562404954201765627765676489602529002105925721520217459488543387111714298203365414690337341445376897747939035613328894929817423446886701213119669698789395978625472189840231563620565357297357997983694857851154896172710887954455224308869211013978402991381873546562634752171930017004950491954171381127497471671469548112546632442471883465771848357864726338085663524181846157260301610696916947512936865792057820427720487829952500528466373233435880194705532858533855848789093885135975510660968916469578848320130188409087807191028135335104455971847545863836744442696557741676854978434522775227393084214338801899888246609196233338156453129277990052677541560165770354271295082213593338410066353984062286725489655233906125619896798053076654808026198931502777165470618602185102208129254656952125687504152620529383654128496155924689205374219734451179667883699633923157430379265491247467250039246231908734661921220238497186257749328185685060419682207483328586446524665597165237222141964177426728050651508466639232174917212822537565960407189053060090336604077337921959979977649053081328584618067724082631049434178985737568724764079323952790136315814502113780851978674485547958063133392621835659212605349746193005763654152855321663927979599906216231106410456671223841384077186964288059347659534416363630727919262823041049372852070540041941229596943699736205153020511654979871177056297066702325357544634327262759203825831198210704282783206992741427686790154502559879018424361710659789010107281091033393841293939149943690179786218000113794109083534967135155688358812573355521125125204108655485775925569249992324582061021297792038321184706129524590759455358213850808934976625736683502923183440830973735625701624632516696424993839509628432418016658564494473453247965217996600612534405505675380246529548383207181340313547387120389115258960764029855890446386296515336124278497157442620452657046455179758089502654454641930031329620650506567820106787809679172511925095446773171881868034593311434220378128031955147613367684882185565747428196484683928508180792716262138872543268620401819196011588988154068628278485893192897285937854045395639536980303767639504201875358246922723708303678153603649803258126343883045514497092497273644547261546776756613985370729519316051931939202537008698616622617651521191866135217444904981991348648405767832606338807150131100186874454438022953028233878479008865324456792636141409477794434066337688884713884258138265638554446837652093213761338110359405962245289771266106071182441708809512523274276350903719766017009117608763287181305162329806742784875913600352803558501445163997354484699831527827513608112362649928519630390603707259477204750528907376162496690396084769970287684312279206099396644728127587649967655439099564567671560764965114746990262502141909566158961971846753510142419947174854892075651175653384013913850918907746738054576758680834611594214853470836940943726342881593586456075226999237293936138704272935223258370510711412979422083826237444956989534766832233348753518750672567753216590577650147912031996149372942231812473596094703824825379862394663155696002339709110427735657174553044495528235262788229074179226015200480756789694075481007188590725557982713431172001913847229635458711247960780514602047415413264290454122876405148628044209759902082233513724947419904409993843353024231607853639514216513116748319611215173842526295212301360745019996169842743309607588450859382964529027298289471910258012985631049957174815240134101717030464080539953321568481349108692313688908968007106146349158282720670093494888792359297241062026799483402739095097051317753967937993646512054136972393473255338434089487615711600164590403153152729584216172975593992770201639170026988271450203417800876598699948487804188396445267674515942770229015891329846693115465086813461623301288346282836895909857865555300163146606906043654171505745286606848130561139980742686893567049769652623660679264103258190520754084186706216437587479766016055811571726123400628383472019751411913683131296122533192482476209673957868181482890818216379162646736046998820866634005947051212966966035885280930233372864850775868167168273421068055893407113532493930828704315676560870538107490748574813356155504663416968808014812413040139072672605709082024200629973926509695673025761119587586603777373481322875831418875474653024761777807244226951944531780826103790579756887270953798618659872573734212548804452985835556709330760460259526819781433133479724690028107310394892193329872630930739680578229303417118212279689689399072393523936810482792558546388985972387916291112882843824477377287719318586775098168756989864004570602818351358176017416020809763530640715426449683070805388618018057874079278097965434944962287783524565590926111483326299085287461419381104232704920301335996325038344257409853271021083915018560935419185257147744691060557959569043940809900578518644636325810410516990075472569264326468126579737384262034249939152048713568599562400980148101932472845241778414374867714924724862418592167448790562350552569451183913951729961351163696301105926036686392771957949898749468458847537720625070516447393972784600358921514341143342926544548643116495045343565762818799012419216314925432783312661279371177792830461633911935886599792874533955431024220251119180732640609125175972951403219873234165538818375140974500563044170248164198395984643549329935090061790906636012200781968868644127096821056456962816417149287892528245420238906006866755659340768542962328846718842193032825208860356293429544131736584847591030098930727025815946976433441312745979023355070371822294389898346195655597415925175234887953825637967771890388558240731989890532786649976422257553787447807001104818679799946479559842497420823432525414839868405220872849520896371463968542662063890151728431209979014050994182557614657593257659556281849599965855186624924284679381699388566893869940882096343908912681712084311472778940265249408107168300355807998909190304626505446839041067824092121481068248726511126442251997728764179102625339493392971589348825091367706774376137332139611238391360683337991021059545287412959013233609607528466220837482101385273913202550206725167415480035798504154229539918924761885404294164779676564024670843731568481884461280235510376054644462388820658111377461785815486677255714747882361972967163569573612489118152252481807567768033672290600877995953836184625166156848947416832644669378059063740859560687307805989525838968771053873323880478162398723929843572194636712568103618966784197845362699388221248105853621762347127086995625737657951963906093284833130276935973069697162907113903015729463670450609894337741271145778833672504878988048655937609354629620412266306022598530879662959610106100254796123999591711022324765392277209404681731077045256820292173602329962439008356257612577876478969612500308784042351185543055264205910673604846209799552764568408820217357822239240187366104991654786029822809891100865818030144906345484871429122188541050867407708635209104538290278882042969741748005949632257865821815476573375418042445744671878119714353384937181768032264652377771080937484375166762152037842994360672042281089434702205899292253733339193668817432800011922447016795328368379989603233573701673430688141053227068057775541457813258572166813223512133195386454406330526252162211245950432148794723316483640231830137650971156721636550674916179154202574634478341726369288965778387955832078397322792319518387207086605151339186117867535217168832896723164347371104884496872621521901103717032082447612915670491754960582529301638498765824577403055943028088450756743574059589307666377439012450917643083539426378048834890372175546111186414590873352860555872455882024868980588769742319101477942968757437658942344710547543595888150300683116064206849454289352412841436401327715580501221315207809846794885544970483957414689740950714359738369301709608672086969278981604770967150774267651773809376856709875498875262197491378842733473186424774049613615775112312043864637625180616217201457617300653210244577198794230683071179023974894754767188661143947819243985770923026006191323314835396070624311778104726827564240944781184639734970668974448716365398296296407465051762646693212163261365262773406092169910335125364586912894373249211609378915961053103284640730231979459992381241597736467932679422237374928158660311222570114190580499064564705871355051212756858116648458733742729044840008797309371925638016821366913575406204015577160323361061799490519115041248524364672231945569792005117010737484903615783931527665485741194166576505196088567365465068109087280568677490448762695936733464854966359416618672201089304328200447459369871814980072872260328328725567965687299140399660426347463280887605720760085365783754331290688914412601014808792627411311773017685384198517479353670093616573379709912144236397271013538068879664677692235844943461698157725800740314723710077845083590830151170730521562094569595840688155257930822344217480918455537763950426224406480379093048682752811180959948395030436517068448392839213295075379414126183797613659010733960803314132351319979018058477373861260160134184578197792015985708148077453619117769583893878246549949681461943613736561073890956386116867528851400328970249557038471897358851412467189540793715490093391188634656305807527727605072898296116923350996771173850689336274591406544170540016427162658664780444557198264405874607667822351924029262972845543435650374243693161024555342928509018543170452642559891130334053520531282959152256449687847435101849742494877771958472389283316124833757399930156115297847247678848694416633295246069585051681473088009534444404857315187212912365511757353741024366226845025392079822984555560598186425550806480136486591668827319831093548702892523775174136066865134608541287469008853080678534544778960356057694870957345365102461049531834881169500685086359859044680460410614888705345414987200531985823842938688296096734298103262761074566889055228692094107391625191957688864507147105592233051934774178789706377402768852597904417849274086486540381348948248270209356506523165581468599370956731275089952912928759394861397929621025623261033159929426604517681813948992591131554356050029681066157325697400523587803970708288352729813458309566155831244053029470802220175858732441045296322865329262113573349109483184367833207306944872508096572221918750398132081427562656754306348758935209238880600438237119217860358658666507845375074262155135534249051853809454330437251500823385885390226603391589209764320357541951196812716599805609046166718472462179701663467598093624744839021583313882717582154671300072720319899738638538932797719894224396233043897499798986314425808673621365028871786390406979645893256737179718231438839050510861696527011785018362143603180711006743726447596120352992524138409869489588254327347708647542352019856657219663248840745422177444044788651674078135145537504154808058502318299711843406478778822430338558378748012010255519432996340114462851515561065127663121518252731152199969980289131505471995756457234439529390358103333347746801357039232768441305819023256619073964046843492361619285617329294313918027277693584917066996228611852884108640531168886286766084479381755896152181685756682073408444221627352353860917454654533809614030652432944608511643589605220854433301119312752336274506516826115002152444261894744927906759713207377421726157161608769039944837418417410750030662475108871898235353106964285286155816672462092982008733557549835746448306959981537538863300237292675470797992410475228838944976012819860375129292002433990125891152265625570503782544592499528767623074793280927599345840209610197631631569241970063573822101195240936800476278426188303114229660903111145238673539050744251097249099448041909649595092193283309250020596143851847207690306767020949144969392848683137238847755556946760027516742138204395774768437426115620941533809941209243874649728439067718259046217494031097141734679320260730890941255064674919721035750404978636065493076969919171984429873414480239254256910619800122922212783983465395729063947743594591877641836571502948069416432722563381807905982074213506790819677978694625955256603064040846598007451217015145653215100506457640118640050145697855965745946120419050023718180526082328015796685918067062200438933590953967761926302596847117016209242045708929534598177914823893307031680928282198871149514135848931830273786813748339367645077551587091187515356942272674253156213621217451850209357690409586347115868719604144327116565716014411718289419082146653461427282980617643088784940223687705477983859770470605579702035527641025742514853446864622125322232063774267971007111297376058463117104127523289344271983713629375969776703113620201337228148342158544352536143498277240927037760206369128737470006640001235428601966605831053135807224481404748398268231658421666866009041960878898263510284280448936928886059191606689726091014408948170418577846483688281679345202422753994192226860955412559697139416663155285035346505517557589778494393204933659492193360514872906653943474993253335460565139828636163847063760029867833947554382894234287184099198346674849191005996097122126286001913566216554063092057316780453556102954729157883652961085140517129946631214613891780653016605510641055562207286130677565914781351000781144269060126498765797327577534977247513448893223876783440092363915163266772705502474450503013939385423888291044579645863260169516535092806710856864803531938586421134059731026147772582281761661916332232823201897385123073844361613241235528571534294698228558430027244695521803741240914068707777048904637933357825188510802299427341564686923936303091348787028845998578568208861080683528467414328644323747459368864550354202125026776428013733563498879574049181125820703921897146415407490116960943043001315185829520539496875966965224404575448980214583421709644105267152188479626521902989861523142855278851041204648797676682127131681317930171245237922988664815786656558612560042284015368380148159785282204011771026037301314572337252736967854728494347747642880575089172887156551660895079342033532612143209332778184984381419848817709560799316522017788046282198463772190800540203488340697401152474243513883234480326396107496343055513045749703985121096256311684350860853651599189212009642209133218889081454735894430738774614933912034456660526444883129623310536821486448909750337448169995514037446042943157656255652355980927065716702221133327578288759260642199785155562553104146458245070757396084693976769072803358996083509343044617377097981154465983331498452832635873264855998535314908138549272419223392172037723509722547751762107639760343083962350222543561396511571790396009145684605239613362863074080935178515990724334892349969744126641507720359673905500760853090680144352885913626212681653202330287341351239942583287978404703964488408941661900559594802370910248913609728298391308815370930174498053496620950476139370394800254913608092871451025791474934949637402656763574374009886640369018935989364885918921221186789940447090284197603982531318941900909479328462090701035576246961049102316300973060095501850755706156993294589884435185381577771926797639180337430116781728054505693184619138318408201928781655402317343300221417867276901262323482781232684793772925599566963870142717239775778510129307671674732971329101061344016605696546257675324671682254591710917978885650247770727393560506213569935672693061970783587385168108830373639274450195019938882126804424109529886365186220403594325021688062919525967559285876128931327246257468745884868628937931267472472804657497663896089225233058718944711701706139182302437678536313209285739491572066641713609929391484275364970924493187810301138832785002110765843720637959913580800650722634014174345134766234911203075092313103132261144308573130474134851667763176949095546519426458133629314547128440570151430928580667484486018612865718619296583563160199785931370173892573032222282714269254317990855085880060850447375942909751803946966699438377616108153218474138813027615309993865623687824087739367953565503495369401283340025512685212132681285814840603991951803556098985705844482181469698782793878533093542423943680849344780339091890990706915662349853513155747027660841263889147776770953801068846942794343371856125639906481316945604145743717528008118519098734370913892429785281751257156225136701304059157283171746210891697925527969537221667889454402975721725275961966258063734329186091327614945324720321270943692178771551866235657645509737445663269958496483266679105556054636587807324995946649617157735117081339160679547175297472298288082257532780158770228934824821835256944905570660317844742386908919933597349707307149858952257901818452044934201018505728426438764480708178934911440977746063044523456302450545262760069986686366802418753890625221452698901080758223478095920554813053340824906807458681387875982763467785074385729194017445300990140110305102459871581475739795711929088233676368383261107279088151338346519940948337996104898805036079352909963318819548320541232618141496204834945634675964147887404911653677811672317032883933295425522218771635238501877604837286328419668577918112707846758147344005313766079826561992275560030663017627985903009327585980978473396479047458969487998444168608248873450156280807512922023913103660555799160001320582062718795612551180623469560009375456148338412572032331189491025466726236289038300203469163002750598984452901042109332077341441825834820844314453744211336873719760876067343271785264061121223911801494769631408574078293493777732720221130222392420420727071273773440473227359807943458453821656825828378052005463528245854820249829682693303158599297662089444406228755038165424504608820351832926306550757517312325272451079541164816311589634615675394683499760872039851336315146883629242941059808910077335277050917965168275928687075416161663592338597886167446139633553595433305542127836983717943594551343288129407887539313720835410366497179720299972134296158298066356001282904637641852252334541929341264544486760414746993206960956958043405194756883265288667583163870787316203099658009922469105731972189649492441684662834862088396598538708177613371727027305633054274419710203245456951327750442803028263855966881657211846822865343693074616169049260361879813170073915787179109440566588591576211822493739491123185518137897717900715284199310187153470208374520097321113973059388183769353173853459054376628209980092372169915680146269986296983140430978709602658424045602937992835615526123720609491587644115866250600188998903326002049788404924369107892833423613248142190931099219212525330934894671482699787874772207715544032850444608092965724823037234506932372546925430109870051074031925270395601329092531469922400589297255680417886892997850251042182052804611616769428289675592788022350438235131787307848262308443503796211039644558050712314693576296910288138816125751757620319633678835801301662910180472598226161506341377090429236327879591063187539395122249721101041792031319872796588909828889413817535489690432029352623090354618657493207040269538133304239166793642281312405435989137690740797385813036024529784303396903142727159814529673838675663230323180652715353422415575667168937238434159095324971956920610876216555871289785871999023630597853277361066746880296303701926199519192581327447113236436551790886034114379987139466373220337011302617520012873052909304051518690802966546744883731906254364697915446061718421921858317360552098958994340099228318613330243795714741720066322406210362314449730044728321747118253338607194209662348447649743708694580552566046781021333449914816165487524499317694418479074142795908424558474951757340303478965029058108198401588843997128957675070553567991118112893987943735092596904051824497668903885456592473780743092601974286256533808920408092992490811213500790085496648707475231270021168187098234197897300700122801652350242751124006690011181257690378772486139205231021409381862312319317859433425367172804455632659845996118619756508539092834694327619293208464813845014626231015851457523551923238111915336677094225626641912808810780082992451497463130947574466037622581083184458823438443827528986073588363838181485652380551562143409496501746187026910308152765212072692430138124035618038339521537800130181312643497061561868629292458725838575303979695881913079376335047286981651125161383058947674096580992708445088791943478161563631255878604008991410369789671275193955697101008870832457752384899178177082987081437484077728800167513577471291492262543447020700473602381473555648705059246016975770075653577974449913600352557088929213456279423791710412678390629743813051037230168413124733720177348297694430884427770126868630553285221700337516971830841154225876901566264051077234864743375198468818908858703383844500274086048041900613906111977138657535870937795801563111311090095424285520172522144264418776528116419183230496935470058567993558787934000606581053187057145263189704233933359732791821943963120070340911561229665426063657426675184901760075061390113875381808179254653362332753123366765896042131036457340050322645126992395672428056216915505242438793362313563665291987470700055389019442356388233652737376524151887017784258936101595602924453829895484650300433470555832186212251646177559943295363153153532851269758199361256071850982344738608349588895192487244910906941217021353606101369203636589616895538244890587541196797039586540988313550663165695761279145638098671770863645159062121245934070579059043069109321148818036798879798330907431295249124903390256922435234680557946258396862342327774033256847017006883775874171535502081567021485699934238902371389589952382858501189384076472530006683406953872283758502178022266645200421717868476010190378134896692319947053436550836782873621500776888303014689689163561702602531923638172827243074982520948566128175301856810841201594226872845761786935444437463014293228849331613358265365617862670142878113280558154367359755081455174471846496257635926443405139509784937313063413415472639106005821681729914740416007046181378886594744318773896862017685543393989136925815638604375413802056085096463470110935776595684124516045606718883511644646389741118513094802423162441657256999646598125700547726376901514801369648398696641522312570456435910178859417547255479509403738466776655896382566586453521595147462408896836533352258176130523884700689261868577690223090817763031960203400336047524934614215681576074846501487788514971409531261715410225895530092140880698037001358203487728810020812608773791922520459228818345258764601580697790682341493746044261073349769270531787203360940339092046891955978649655152261193531306032341840080405680946944682357682254795080232227964396527333736036321825919121871052019250522603961217577799613058437997031833818140439487171384028101546606565085777390502620882377421922089112776162928810844818905175207994179496839401847611876467789177897708964881366793073936812054976566852433134136968834161651846148857944764333274718222351905612632284522535014094917751704461662582372019116232662511883516256968024089645398236416422110054453800057400410697915030154994983585192721793135990341046675045681916189781077709407545605972256150439597143919964258673966963864723478742015473630438247075358224014046709380665742945137200520834936012729043400500386118917718426469725306754378522825671399313291625250996492428332842414973986776621429427469389882560682990818067458293394591369345449893656521332865704502874367017548887536176430712159097009004852907373259431982428718350030583185908815824987048635479627303652577918793984292142704218291873245997577334803222979328907345788993892902625150181491047507475541234146898857208700945159872154299035103691165941947350779076366136288770953864576771462917940160685335645368426883422017112734494510750206447272942620005980750110325473571082049359082690169846027543551550225575577185566126526163207683445768188201907257937251362383320328307825703914367747448624216209443980092904136818419759973284501106329309516933153145701162557942608307073795792787896215304590386715603072656382442330416275317526472365085726130400565997228535479545124364397709600840824167276086877942233976100289794401947365394252490735349965231482998604240202088811028503630649038746563021143327467671684047123249530484660347313782164371844166076234793577321448203984951650783319263059544057973621868169532275528784814949291760624803794405702157627313962385607507389394499886264966988894253775427520586822722277283929693857615266580308487008606117628332335010727724332793282521096400957496821842370785387830594675064043272326130035724676069948629131714850696935300189359993993657338790756187035333052832042401053655250585068782936742071099115240666956872167913077150309904483021366723117091016091917090107761304527119435029321498013046511064976920090904746936315190516816458554003379952094314019390784523741879405084182513269629948896303711201051438162432102210007369361495492172686012821714553876115162566769932834223113839986390270896899261322182750493877272135475065320461509651980743906212211628859084258992500773022228439937973088798632712093839748557082547908236903919496606714597651138934907944863519613786045292074936788708127616955966506495969498526787792061136293155839360313467427953604611190069955660891145254959056171417927060249453793005430459849988200454434034356954440543601049539366645736591620507543035913615296379898233281031332695889683036126221545822642922494058306528453973005752383646954596949187166738321220118566705269790452536855943791652412488654106732271322065999627557636081108595509306719363277706145329760789692116717905518034563763158805043047399041329844299209513681058939345674619830392148604164987241239475494405813984484444665544459091360350667450523575805036438477355823755598709010134363217564371907365888772805026086977824739943071174945780949960101751691887673011372930658828124910406570172324885906477852358280409487684421391559238700965634810562370614193583385605591509968721916872246159689934100948417930459157841980066348807456795164511443804451944365575558945284776480180580636060840898990606517071955897556899716193007779519894201652395347125009251598087618107604703906759178198187170493309976247543622303020510146774997621377608937965107718024994208490037224625643740191469678286464294513029500141156849239848013889453255683713501790492884342791679125505649526823592516478081207145633676102983874652377006221775984743372347940491198432756900660440372781672199871341060149862890846236914885469870444517862424403572170857917218872954141678721423572302714791870872789655318720138233002165954769511762513897017617393453681085729452329599984233975303131477936033732877644950091187153528092430740080427041415882120238733973165531712996764634331794598080840448906556329217059887708890702494095812290338575083532584669592245522784104712664803712098982923888157888619251490274042311832506593311510549754394047391731735936154533900703124254205062385875547236776700464914892347324440424536951630230923995871865151652953770469635884432467344312254808610036654439783557761015264714348669458813602608493715542953137948898834727060908328355940677438473055680518793699077178785290784428618710098202823087622556022512282753625162842527515668328852546143329388501465809762591919939716502236175878756808141714204931598758539702460357695991145200116623670869385004465968279621507112037695245141624575624296894437715396566419040903788265305570693639342811692621076985031552931293062600695635566893538397797898153921327382686808191618179153238437661754741184227277688158704506162482893152853883646396090298199080157246936330130596170624045310950337761623830916955279900582364596798303648156706702826312032983264353824711874540983849281100949428952012417978224806520527626134312486790983597565624988756359746071239974815990481809348796502572896747964655546445926982224972906858756292270253987252165133253993795488763738518254390219079044867556413823859881683569511948093465361855163432023191065780551535558298164089278355624436330925794853436392216855830919933657741666634966650330944443686882550950885433256405322605658215591562174596017744828574420310703134015367368938928310962784754133077221602395853045133465548173598296826502075534708090970912901595287454816752087111789205602552173527803763190544747084172544354491140203803340229159629157578409403983990006685682548983802169096272113955888249549793621144547148873499218351326512172648654322493534247087425173095815724110699405606254385402667193051453194610369671374807225911895603507120172688057398706335506526206197066371922001379590188332938820227360451396314782420080022199034695757887741275143253463518914074582007760336213938728267923209040871080218700790093485029934175858969021690008805944454522302283147124600608017993937170627280198684787201616949641745181126652404700168820033053084397145055305272179136716349403618275868382308175377595084177380620549419157323848383109184409984409931170844593645800262798518686015767510778501916836418996666209581693474502382380722651757205944085406109868157426314305027645580552978752559132710142472480368683851534931226650480978811279009141459552743087345707043017474224437770725211567656342576407298569711103807686121485184346554318381900039534059222844703785524122868266168206687639497388853123007195560636810028046783994891230805583097529356615401076211484896286527464320984668576412412120951796831756898256691348769358038932716297524197090311141189114891504182942406271489142123143600461758106967678650108390850940020218255280143161058608348072084233491968208507136396960483628042464477294879593776181054260207491700550011971544766803888487260215335193636330230295251978284754780122391801467509503048405105548205731117948485217953037021365607561300754274955440184987782181473619826412874865614429115727447152925379795759965771358286273467703316745955682359942613379614706526091390777621019054920019990269560456264714966955040457638740800147771690779879375762580024492802674401350088013415840579669193363157825968459799026465345015117107039557444401366760713036297403390928133978207013490327370469046419494488289998971621359705777580489265579204528832016146348280306830612874172499163482304635952897655168535904443602339969361652710408436110475340514715623179924490209815103312996722327478111053219766615765645907977537153247747279253143180493222524805410646925074378954333982713182900344558989071263527911316021568485700287123062443834626274456947260067179502256885174389157027374124394260404699403447608765508913269239525249276975671994011468493072306833552743005044190128040607478536670271291969652251848289572007531245243255974202156268479531277761921763530335541796196865973133042099455328932781700019883922192075656346840481398575316424913999841358760002431184229878536395618826967880166103503215694295994373273309150821157225552734620521692460495657738545296632484546094113047560190978858949279200388776618395950795220056694372817702172340676388391653466827646479057483574337787956512524544378456567290730992537953720394794935479565817930191951891911026171388812346424791629309377674770499722826145154801717692922157013111585075981906576011649722993467133423583108721621576690410690201926042537519496229250623724597826286416440252319663502448125436343515505821746937846524870947048019447644156957113680706491108108910635959610254100650502229081453015428229036733867272671502777779965223410588297018827612528329335219706435639776849481260856994146907799503216643067100826157717679955650432633806469843854778845844804493123169026456691176219015243933774700230290114345969982929930134163709425047778142133355901538886603979345390818429049571451201421702065096733330415624217810609275969149073109360714193677680521477857281721697335237648661473141250521256392562649667714802209437678532259900794174664154718417544604273467420930732072144774471908534800440101292914075071838071376029140117362019806181127259022876907223505805957316612904089413964825022574611189141034292159524085695425868406088490010182072394700937480578763177914125045230901796411793476598474260953415455284764294032422026615511686867699912379646899656679799912182922737191980237340023161324607034500435673476588291298027834156724659934400277717828261085964944342999280065185716870919398453943588848925066601708285140989222890946645709078350008737310538439396536267485169716255818390355306704878308344164561367362488720471857596088229634771591130185856233160617862348827303863817065579747556889925567742047098430067280408868131364403694221876027745987387512891987562481249319952884494637153560697934968764014159793848800559273917519344197314682451808396611050911351637164604353015669732146608213418987157692556323865650418195669243872009921700965681989268780182169770848936327632801549153088781051022477999761520538271265776158335749048396321662972955787724717935100725705805570071792025350519214230694701312401964552225397847632860662022732363265749239755648842270950911900108166114400096300391892207530758598546328067825154150006513837068661520665892854002322765272842350939995648034400282340510922503034064580013462454368243001510539630794844266614794965099978613934915516539246011828126225629706439383351278269958965544093473950453425824993864965738918831226363307454305398297547331807094549016281196346175354536954527249960540953258319227781270415451167033318061152908343029632180035097815190954449460349645116835893254260382614295293871472807301422436425354998105403357099707049317698832941105635655862547215776244164961280101892410102430382557435083454658954129052967067374055200406808155522602243734327836358694383890610173376901923904806499620478747901859741586365240058555346555361407126285314630936044431609551250972914005132746366664821531953659510627724220186346793078465406839340493357492312779386572254906219711323235971611688289070120814133189673513698501371002860278618626710608904439801799656186596127273034429830031623498222690428065193658376665385655859682059638799152214220666161854042649009195440385053701969667279280627431412615619208348941467797405047743228100422712765099539029138536894237660553313957372026212915173938806223422970339218355291105133600887507428723563112997301929533319013131786307956617459469369372568651202067411724042178717187172570066976998399407079106685963472559881712049399947081091848201267500372528969823342080668498583442223323390276593813478874863544738013995273736252803912829591905048750804679219821021277660361853796170951193639388851625186334468781108628198002817701170700517681297249891854609034359184446703102686442443939967786010023451298501328206514257027571064762985061967818085567624043804471638073805650827102452774922547278195353121524870470497751005706977237350653948672677015332895062198042562193238810495825071932148428790113127566648436069189527260761456003857280690332653756174457614192900702889103771632597240964416695033201441271095268844901927401015997599082104478314318397501998954881951176647642244252051449899625756990608557640272561170633796395945908743326094145859078375052300176388845054774534179082768594541419697791918872265537358476754460185863711982398245599131564667630748739537861007642408429416772850495317016147850177962185636424808665134650971338963473993319030217561942503031051914837560437535934153897544102925275833361569968929869223638288730325577559470491628877638379980230611066758978345197150307543114998065896089948993156941486081085381725677762655969513286904186813409417153673278360448169946302919160074977559400013346816174704724308206720185918204403121600490820311808202675976845527285235923459014112840542578810181029952313129387848914979890222075926996954947608316438346066141388311400892530597338649876638864896651254752620459298326738589787125259272061964640133986799244073896561431729178275032160215421859824579471292864193490472391592068877829039743905722435334885345329818752317975701263992819161812695817322226376898226932929533543822630863425937153300157816989365164592854121723970125927037334820509975566984054167890138321312304961847483655704549999678003891059603411696522743311943567087194480001245637405801386505931512445494219040389115869414377209011991728202672545579292763411218668386517812751552470131091277630585628293975017324882759739974482139733057269877067185145575484724332041294504059419423712112088813937903185888207710781304953331628807714852582494283366984209345115385317529689758417586716415281741714257285157054366841331930266294993031487569108667253822376071236644266339251272035011681367892870451788029412020296658232873875594397467615106864455122098767753780628107623195357693540330009567278632875697940984269014216490674894566927695612523233330987856542477947823363382749996446891721873150294843669083410860728400831770079424275712891562782028410804838649825988590622085438827666657157003378158045114952856359587928832565735110715121469138896931172348573552848615439861535805952731561158932493989809732857855706441873391317944915672593082571609564690699344398872749973582927190274008575029593785055059212048507409033726029278168639727482648609552005802325163479511779869796905689118333362289359984138525566697445607108008585983078230570552751145895292476747914242213899375295280056517298403318924572210590981489996141599573594926496137203466098930463042423836063839710565713758129835208063877303619532715604459205761339554083316614981645817908962874714393679095118206391113861458713254729051306531398836671936889671959597656231163714290019071657005044655083590140662071960108164613123115734007618337254535856894091974928918169136589486971505803067236556138369208824547954370585458098762652863784274830193521162918730670280641701640801128933064533948222345533525309513826924640270812976555425981999967427543404651224333709834315357241665241465156129716082783612738086503052770324493987369513760947827841956930072438335338070847552936875776806046525247178975207603200226806430962107949419948011402824083873852015066930768284165484746179193302058167783739179885848273782265507820861008340748516995811729815064274799673478317861532182006567541052853448742287797984756998819507274741847219413520202495474225304671471701384822032603146325952379128367368237874499099403963201490136866830728430241724615019786528226688180563371514219315814721666794805670909342686050904939225792809542191935497826443406481012764785480145152224326455607197069814870486766829670116367246697815959989929084309356746572954286829645154507870439410745111995263513080140501462100919468493898751655540379208185340681165427405195661604631596289628770574490312162079085248222871668178282866923893868534633947261252362791548472134764909357241710820227778858219906042884979176459126645076208218425666408057948102480052573739716223070877250232705515325474593048432054047842999163441292303332686365558635505531397054448275146735744341418010882444534314303662026965080577216011206877108753058569720897617869779764156136216647126529075750637052959949643886456107724391403367059743611877017115226805224791636998381191347938179675177665720910719129445666465172377410957282657666042820742217234646984738840630434558906332910337785473189515970268007427708595989355544539705711398154703516646310648801117223002595834819196640126955858460003301692576086656721290941685462282753830633436442501434268874651914370042171427940587171812117991464883749133015803884801484931833782792008581326422540404287461859044159640606439184952009622908460105131091470881507890349427621492086652792234331727542945708142001557696116276300187226128091758569693571028731548379858117841816266638062850646925807425096738790832230290134247537251881419639059009008590740869379814837887120770791901368031842381911820276574087782883003085018994406815332114194641129726075050559051904049739089886058770916274957561117617557860785448743689019613478011680854156153186920752118540311253155463155789608564018312276243852110368970821784409281172217361780671852542795839013372162339902699893106520328004059298448614027020135207917631978240573780776380828192082820591064099222066604373546735023050866013659288345250796146849372482340357222057183266869903013333363793414626014403769699953001783417637993024221325696311252806588828836653038921559604695667931447242135999151829930579604058399219207370234100521338931117093685495773452808643025151951980092435867557557038208515745035912692676898004036424785370698882072517088020966824171543402018777051002227504904258541584206152892377504029678140655430846667417013750070849744326616250849646146871183910879249854255547350741218345792427168508033676018639265833549577570836158402257228471162544332159774890200995042739284259303895568748283561293481831487153136912325436987639103921190069132174563279231787409537806934618083302733602608586000549727704372993526379481921463728335254429962956029840927498678764859369750948295221561182789489590625839728747135945604927904832036992989269902756214467958622669141843496045434839248601795515044425817621856913557583308655649512287876353771389108752797867144717042460988756247103446125113881373983160074972650178016479763013958465564883916844875066720807833546280616205718392797485590995439543104530115519341348965653476224380003873434600124764219946482217671010940685325831580280688622656442955861196193627777175393246685754852371857519118568314586891499295131493647700715843532782535096146545000204220025838705422919122087538888760698470887808948954269973813843543266632694763254207487490775667177889260592282955905189780010217167250169779136039479260738756970006383803002883855871811310613220036048878681913421889236952356017924238884485579880924538712724226717324800847094210167918529942733593930073775353347363872069520278076116244904744098028304535541098965171481047618470138873812615811096011163618474364968122235588803756721784897428087558597725474821140439277970858214062505666912242953360445002081862821460419908854097913462847597523653232764564249090566855315680111049531084737543245416673043144887542289323865749363263270057518965489294806546708463634408799642060590346836836441814936682527347445229390651560917295223020324238914619869208987490101701293916511768931627052460052003096679770513274778672245765288356127509165209797232001682914707400604815315863507915223880040389994094342838710775002915006389897095847696489135412557079992043538592451361052246416013824565899908787079108576585612867452732087239036721714410578299491884149261988917314637231790557050637650596073201774976671692692964279157534164301652728137204395665378132252228150901737606196704886300851228201865163305680222349392643312606058132392793808410230292967558420208527574623565005504801474942760781052350288384600827633527458285647718858257854612695710465267413901766909868382857448930394862034871199788173843337258926981146465102120162078162917696779705239782755056327979843075052045155893044846407878391552033640340574716000331965442919658659412052480826437126358847727805338391955730857653732364809707665026610000053034376207860865229727702968115288903748958031854574842242180731439048891208931625959590622464626231516217182951774303885208640317354468170450680786072080640377439497814318985611671866023403695219970218180027542914684524668115996047714317443099413601803785519994191176695175142316970270496009048626274410777289385659226081572839767986229302447307091350109354977070981876514889344495268096861859202043582625914271762463050423827270524872612005802631748727187076057045304547730715744671093048321414974817024566808365990808460673997681267066537913384609228126078599481795631371049494746724752433385952048341964367911869636353747155920566856106626801301649652520358126978713493669873767312589230744113398330503869393178872012419358065818671649753414076587625714523545926589625133687605606551688669769170671287968907566041456935811523068917365399218899534737853018642767997444599723127935543189765025583628993082130261254283042572851894437310182717212922750546104963134587121576657637431104998299080629546063146935030774727949033966613911005740477895498833401278306848568219186355855730756665018360884845194337876228842207347980070031643601040716112551637213385634030307582357961079073927298043893753535318572869773637570323765116497133948997501614539024416597510527581737748001890622484230898408308764370518891869459308222693646087349268864198662976942555286324711246561626274251646642031861435452283023241927383868716691966523290930959363094574845780321252677324352131022310726452705386003385150789758762037881398882935799148132209063551758260802290420485138997803139575939367817463678453029365904982953355655710420036352038869452999949795422860914319045745975449835133417836222296786609470322363023904971835017176712660298620156349008471680077878415036053616424412099884200439034394253516957523887260519890987130363327498472805109926417315276673533670592238451036163514692298619262564662040089081297614189547316389596515660386725120365462939635220350216501384579239400889569438039122793462386925863795945889440622497250456881810008808929984459523867446761295950564635934248959236940799340108693010369227720471518319455347468875188413648380838752477339171140123509984064530053779151466130282280623758534545704345300052870871930610782262953972192301326735025528383313328503045818112218779519714262423905930735148620918988534968660432744839169379199265319673829641701355162157855975990548090939494361540532401142502321220918934293187116258529184683897965560834828813208776002659403669581188007465299300717487517330770864432239454972072477197765873162285634350121166565368009700541941295985410143471484116239932999697888746716057925086486963066143023310238306407945843370005210891990229050326855509988764216014130405027163966412697764392315181506569077239676821968267080541269850588353108351270127647859341024505849718652873717365047224923056243837217298323839926515833677736117772527173502777311123668323286176908926735194568707104850615084741898852100540580828310801735848352018577608192502247524452357026962891096002164797618341709984316959997397773566938968492143029356409025821097393981054343005463150138131672832817732590265961978040976976832941599610395152900591398703363352375682137143471714246971748065756095248057014193477496057405038237426609708608126578725579689618657084645189211030556872526174900847166611858420597886063894729555292881818396523556070347703752176212590072441378068775504499991838758218018381080412872090476868355288342703167778840786559352487243569004041607162539849019321447944032062711936153871487749784518937232825837042179871199079816293383992275056425240857171346967968961635602295684359412254243754076523090183105387231567975196285306140603665614891124108908192242841841211464062526864131161409134984737058132239631785196136591606036921151282290916514679827324938206244671679611453649351695816404756716052132325784020605055854067734913327904122873010117879375548587372322217148169800469388164740263419976169225431177416250718995114993288401440803384802420600976350372261285152902430070509532115992966947174049501125579286500336292257982943566850710645552558152543315590044618689394053786924476566200305965579843033408161357659255933285379408157705682703494142947709802657539458684162267699691896184924279101763271719313156334234666744528126868635840345951190500290245049016180734324345066596266104120884548094419964400752615005814393508152302664596811024582458649253604404601765037436591166173252379567921846617057861836958312584276993702916386832901470154158696324024225603289271402621751627241984299799966433353061589695669999145998731448729125710847720732663297179822551516539222693119265806498183699193278161366780042147038622703141101816236991924071451762738606249682027202579014363999033229766197934659626365386100136511633082746032317769490388163702598963493783700912900376269784172806354400358229084927984288354136857199504952953836929745406569873625841299797892744537531847757794865353901786695918379557935827139185888169417835750810204454048419219367845953324027336400456662320606101468030156903177532867289479309770791614904997687655775609981174961474904295830528078622140656580689415540492025871096664833419247077253953374973210198834264323367752244667965052474472685028555053349703757141879567347402045078873608758891851177784357714187675240321918135640317150314294381621190034143177038537202685033733917800730068655935401702189932574310566614717665111933450298578780000916082143958045627838895482128763344196366338680103297815886689163572604855559271690069654174927760949021938051676730002647298953760253680069552895832325487925752252184099616454906757728872007987784563606918563143584003873026581201511064594641058676573930770501928792746157434446889618320798098149918047168615692602096841461191592325797779013731924329404729575535458303950167416376577262846108143806508898845000732748950028042352817085250152553884566185677954265621980253767589901863211288289808376964480670176973101087660011805659794331793232064043461554164741187893165901694897977663426704971154949394490477484754762312826570147344048379370298765801254244102959214607386050730897989620338603899630268706145664620137336362113203625193620767809359626053543036700924449268637108764805305749351809917996542253994040497783952869988476254211843112354255731326210360004621941365694334762166925434742198292636464928719613808195720983675695061813261105479493263970936796196833994778738600186825395417172782498059834984667424256160484252385579871182182471891575059192374161706248869723411953218954680037171449188536515500512143682451333533641026122234470883674399504335916442044322801863039871674454559793451741765260775536057620031626235663577548922860497567867133944632910092393736438713600125763466940417457200651549976064037999738500866063322699580206056587155206168258597806799207969738182176764170795353821359229147249059674878625775211864917022176866753133268714198983463629847480272313958370388243968054505922204941621067592391814335711371671222840273769729871808852823121498748929541853840349360186111929721610895042684384607545514640648160733252492195362152578856478596513346407165954023522819127137181784402093499989814473355601630558807337811295240478200071639255201680628552810602924395519163889883578028205642170098166222316309043221245968504845356976782063789371107138159794602976896726870008531484186283525001435523957822829612942220058097585294126584673634744573907443914493207076702471180629015098010229209031961777213029238180840066179331451670684172595267210008483796321664626608320125445270111091945757353911226049353328009369522452861282767875312809520645722479359846000074371139286170544143813036320080011735431263250635564685497624362922198012528121550938458270950280350450512908825172014230853609353171455269508411200387496756384849480504091953154143462179772849133573586936775131422819542389794906723353632219500834934221830085551056390055493336035898228848632538062218125778322890982285137474773941364742298170559315070613162494805751221862800303732937674936552416567482654173908614287886432874261909041999423691800340574891693038467169190783733548321707109244439934942554911737122971066576190413235273504926914018642251261439778455035698727983624104685040458765214698516075822744786265232834886843384773766071359259316990322132184153421659197191064124245761749246897654597145953053323534519646126813622268260140123061291241659864764436542712870708531942996085799569384694994794395883461426369311184062323126687617747875616782834790791062982387822162815427157273558368878586920729724734250428740513341997429835752565438113662055789442353338702257621304925131247166962762876569871267717460209721792863737622020793009848351776494753908232653621906882190883506155513589830932779388577350567378338543676923534038530740414045413063756176130430579350009772491727700309439445441379573555587388003839332050735764539763082280421233781126439594493787318034692661421342437671358187267374236900836862192853876427647528428852782366072650826519664286778959880134235566853512138968244345816016914689979085154078707998492672765958799352883747920568867082153082233181237435992376810246516413624681737453478917985796794889101540834033607877243650897297955655166890377539991804771653821426717910418212699223532876654702555527904021126578747978840229571609079569116926014320657216551079843782329099600001628867347818010159051919865138292103546916043268245848424937144135394773562164040567816417805546878323030455070370585648856563034533280367752169352819085886054303911203222464337173789576032764060938686233982064128832534673421281588325281020259883152052217509140212144175905149966730211676144677316110104435940292630575261357091510754374988455902026644073869913298843039686536175470772097311935612612806549705469823963122020879990043378016204988810090310844078378191541095333997236418202392127771322773609297962146951451804294069330982053892585919773924157185470504547562570765666412411127291447958865958529632988725591665811290677087511966807329314721273664716693991013241374892910742892507742685337792692222984664214752667906857802929913853212612064556291462563079811919382617245123600175120996663768748128174539002659832611874933007148414759571171096545524706782391145516422298148115949861990792612366323316562386635505768289500785694002025429635948633525327807036065060417182012292286302217098158266474125188688414937227240735707030877755302527462282935596867096588132807479909319921715838762071654703931553205113509193342156600687122245109338014205061297439786994529383076485616397135666982293191393804982194805026066679787868047936162967102967892241688034654186663024412433581518479606546362012263538246864179574559460441484848868937387368976727827097317628278985749193809676359569718380975894647822305246439373494327768520641290425749696582605035620122581549823186626466693695326184858791833464052684575765753958390835548387079567247147006429399453678270706360009283743517447557728982904494403581551149245666327420086986178064836065791570563674972350062226864657521394215477439435139615323846468944542873243944341054762588466023820498319626499329552743515681630164843250144253145492043391331265853588570031437061822889356899741348902393079766242744059998023873359339113038863924722468655228694822332099534815335955128857642668152043534575821049003225289768951407957845765247325499184248224179100894531940960181265398569369457889373027487877508019985086848268494083881438000449786809751746888563908513243627935291004446353037666106550247869902995177436392878302925820511644041527496338744019457869005006198791845471371382077526823303401540979433953627126483557669164956123723607222312341915206475003802781742251470352526038941120128117733270878572209954509276323240044855173865921986368168622705095435882417408886392441808824886674363137656738123668046902713727820070816067799706547588439319767054869341326302689363730465874245702357193840917552397256073105695805358023182180618193624429787697192886425077313027560874460611867582206880606992710297822428245206671786817070624156032158583036644577063300887651714367613208111506639601996121042148751098819863062727742010300703933188748301950818668544110368877432639312915890287677098976279851866231876032096233298057397879259874872247276564051657986940540671839524438537231979893625811027518999142273701912182036381398421349851687142535471917370977662210617600401965925332447162042429894991564190138762354692518128263193904796299572456209626419964159873425113956107028755532483321881090487662630873938124087510190811187260325144045073851097933071710202903467401617555207885858817537071308591587702416841127138312892274008110579610570935912224813333422763157668771467045121689106024859846239513581635679678129369181201129040126111113636739526436956728329189568381017825999591773444415071795474580453867096292704137595052662229628716036708440558389036055874932937396217930227329120449197486391296448377135946451349209234969767689351803094035002897602659800299493125656683270417064137910076290266062562283763144161979922070386085009780843764703864667756289553199782621437254368247365802584499186330231168721607856128389787496649385848993776860575370865176335084923559914480300493504443925512394649962149616195929224100938635928145673567433814254978952863061941510443598492710802293621699383102474930934502856073368078853471229421326444449258709190847910419300472326036856351150811923055267982556557125671271501003219953565177980386192547689921782737624156561326988189788552256655065909421804333526167224195747045095524437334355254288512471572592250507762412363086592918097372297183906862571127793509464560487106880131809243227536833504521242725476790464718640562464104131048455506443920676065237235227446713638026250855638565337170475723533200014164032936824942499533830527705242878571728090205056854995677214706390718122278089959216118743700392162667673707990080036500676130265801783176943456595071767448657019541600944674093337976143720979793628103023236372892145991926666043718913170325680762819384960942607698394544376908902565963934599138736479480581836212094828259258815009008084305213016314968194710218438354354637504295228941051840718654595639399658083235889886404012136551884073107932799466671002459061361057438622417780680053410542678768658838570130837100449782889043841582391593669200781576616466969921313030158505128528502773686212805107230782319107544340269449892452015443412622383641878460446404995813480120013034859972950670833335604323023100170937509935811135322628857067379477621051165931734488003904857716930039661024184156685650888693920426865513013949257726573689627618335447818412004051546785782911964887092869689058869997092134646405928508782628268055455440785454752662837152212177239757792766731630632612886590544526590878782735700722077070007570864314706982537044398579405823950077921560085502524800342150547147183347671103587472403883852809243577156080873480068753119133675736209847190150299691907797410108113290627347822377529119105605609709251657576622600792458879703974473718450916046080596837649754276019737698061893911559574008544501074328635218288750044449597117281012078980699230753736062699127081918102729766257319593955500968272172666980895948174740342913397580858730936745167424026295735404983387663796515966000972669504546104392677046072447407171870319205971149072046114195295537431241898573192282726149925576285352557269432951772703382622268324183154510675848942455619171616412076199891509870382196257445942876365046793536127624719779979842551310810458985343197263797521574215552359639707643317471750368490715257148070286029980279162092113760578849731326519444590996180665616683593032218487705568875083731257123421523436910382847058681921690608108906854338985126375882780819353650097737352254525876482342064003137078624699819050018844327599668113865408820032087925265737138171598001915073277203154226019606508714635894144724944835661507648654074984363245185631851173107999715346401546364008858504311912600396726086804105998460009337750316176049436614696954029258907047296618308543182210506260618446210616631405754611512862584651931558034464834299530783334441434968396482685958858139560481937818025012426565681646535154061973684001384752425408209078074020753399114381113417569557357615995696863350390218457989504794985608585215777670344321333753522230816627031252153900180518112947829108342709023571871734783758358519027513203855698493140115720490132103578557977945369398723645342808671489062434302572862099660206286548564264362798968711454322833683348196742511899397247784606734072727161846091248624336328523665044562714072609706218785268832425649591141371119813674062449854752351833006664439708765403401946754096845908703929528250888421655300212343690148311304151991817590546768270314536246957856361193130758912449985454147872741085113656106947882596354915281933665809751299891579487797188612903631280997408846717344323532405834742053892675757170298656807245465604249734667408273680132276118661401237064040791089186662876447201224125140790014907364202357356484170126008325838860860394622060929773103934215092321197590548159152440219773147727394543916136789286176425751432792925132507534404510626556415143679833594839393755542185133013244731918199754701653141181420272791972016711561072315822315510917363115338457456152007910237917893898718252271264480004015648078205671210859221143728985969125312564699135330862421316407149880968951837060047560817106975014545876242061721509075237997191846636634154938162918180024782405363198759684370724670123553414785732000808901374814179014612120728291535961436190469203376906308272273641607442029657676666157286170511017179472489472483479578122067762691464722002004302078635208257401089041214539508852452720490843114470883137844841815346644852387381400392952470285802391724087626143213660735528641442077554683816907591061438157322706083617440615469976763840636851669327985504352722787658390209890482881079085455320378227346959655266323294969073333240288093980547774160020642536350704210306725566494421037477064740370938509904121745519770664987084328143262274969195678566974156848502879557824771117021029501953676115354190299799615538467253616130377492862073552303056452130904318059029225591113710336261975588607964984233634765392510514853734549732692222932475557497632409617602890131166044009377105282375909913073778477241601105184419313214816166157712871578223618230014317543626614479960531283619285918236140824274457156282858704159832444818539304635910577012848280724452937839850585125948100642273224641731233992036160326479419949989889432774180526620097167712353555530915912135865080414469106864778097260785190998198030678001356164252830551406958763598101907474578533887094835563652732986803705727708447012642476538561970357662924771594852244939324801414905998748557823151586831171514282018180401431221902877116956815965858692845187051499928538929985759654479289893030849049460839785525910369457031805188210089374936283221591087142492502184894242312223211711835295921006647537551340786128827099781905884777203717227820702287785322104425630414020534428914698818765480864663269064565213249672753256411460330927296625631579680555185878377432556016963007868095397238274185228717695910356397661292165845028747022368525563099248971920290413644335205315489110302748497763049394545291481533405658730119922390660622124123892280006857061157661550164767817608037951704140313151020346525719787152407185443362923203096463936632059789459638900831223511164088493040321678442702110810977678863840458625845847759616248750028439102107656866138965021616529818088328898766358956997238611400157232303792091364119981962781881428259524611696951896516381581946802473910836656928198257419033016081955494942128207842554810352281401602990445484015290595041393729041457398678346995264661462441971215500176092630726229615370923339380167234719145822858159452473450640981277822186775291192203850324202900264326959465429126804429635376226635630839813237771361086756774011973744695553839309744966706809595529188556735223182235347760807094733461186193796841798831624928663838939648837931961448954286648094958983944197776649685726471642148633008065155755643309666570384126774086041587884847101375278178413880059794916604860024879589043118160315878028409100998151939911448976602964018911472903664802598225028097728416391975964355364379180164779109495476647563170450675944304647940580061431867130945203702619099841951382609610972053380720609971625274714818702221705228379965185629040998750128468121189885154694318869670915060186962783771271635447691748272150066157703630471347268793184491649306157707889729015900898022184586360867459573906103664443291776507818508885833924316261763685031244257551466015690793235884760124356595397097146906930186965733929451415827092729467188955540901845782316823989977514731659176340479833686203308051049077708692252505231054017050745645650598458403401147559835932189674288141071681155675674162559694199280112050175459213643971972862439293483351356731737049138782292766701519976283742132036418049881642713053683795334886112195231115609079849924460263635774095474981256940183694474358484115412508976197360747328255702911113587115936619574990466261943735079161036670033930814464758500339127053255062214293057302951067893298021875334877935606389362914302777647618870276377433085219791584063499386642266172916799313742916905534251383906111972561697445013202829854599745426144408665290514847492433522189292353621536493360038639146706007221677850626866961115145213862129851175201347567621941260523900091885669546642588024848928442601948280612391960612388479761105377717968854550368738062667110851596012093342561894450573100771131192611555934450220070158957029592802740748578993477832291553865409897914064513584508540244443262509887143200398505211017480894834414184223175918850419118081339095907921763861186347763054581442340412127093050185126849700253005474588447066289160466536885300082451117626930011377571166984465195166461813989059203256871966400846056135038304912906578314772970997550394715586363944835461258044585132912543637620165724399156925883299927574952133916087886894081182081826791293339502341788218687832017100478464537291370223703340169638935487431147752081411767542541989890870818013082843179514769349978651001062341048344450446172695693094758761462034497071196241790996035757578155032033819369184653902796796017249175758924282227383521407544253838114001138070088280482327507709445232807854655695453371402821621528967502912974911204421047853293111083898323239420418416607395224471829517176412726855242585845376818764513209916476281097439098770712253415480903790372107676182656347487590272405057306946023836609115772912734702713190487303759548919214474244765721921567206358844244902003940678304160999207536180203840902279499283866635000206709806253788450263587171064675741657025755214349797245260388390842900556005653810262772537630810363045741320276930893156173780473192019460668529107113167092337342939650180959725997262883550767535503686908625471446536418512234098892771881068701510918577437371989526384643913721083406000465084804130811057480369102797907796642100200793055734804157706939313179652310462370492549197318622382866605256129018535101321441217695649094190842343196943678789232335971029859606990362514121714919570328056159218350610880915887798705433290406628820180422433005141366222791849531100996457728872121448101024066628346556936092197971293228674459392126959891828201722546403196199385963492972952750480668528377149583993769750404292977299844677549479613814012589242633263943358399243217545604447313852298991073480044444580706641131984436351611262512174013239636384565226317543923579940761012928610805121697989440226907140426911286536926521742547931289230970830992017377433204069113354276208027762493988265316660787757623778553369412319585778886922675533166191318342811968997025154890991204334308982660937659314707709514782585623001935294793692585959941072990443864919387538925577101423499081418172833593386668167632932234943630784594542242751142886387344415200927998021547524780471141321742683234645313939232492245673205225215867376072751082237384944997663692115107629071426794794538654705192523912105272259229725350384077902570335697370976642166247617881066950377855291276206776199603834220742337618873570995259311131494689546678875720902054521156459878026651249803943600669090233911336044609286833232644801353994469917521098253698984022983411672289419004731060654321470664063753570683970931727492866739994703125664247262383413973663722615628524811817299875683980744318929465432910976138589254441351007195436160211537315065186774022298493799035599660129400317543716615004054298440421122605687560056798402663990782946178287037063641874324161702305817481346810952164198140537710870761953570090226627499321314049623771726649679500003209863832992696820092575749162901794001837253724682012856202515307635973498956483815123554996773335912102571685533684731478843347857993453767637668182028433012616065052091781675034024999144224600632841431046520670345283337776972917262230679250247124420016797248491598731723875347865020501603469960875090560452544307464289030743074813848314465981204911092061052877055903455223936677243138728046405068551525178453391431008764242593848730239180485776338200116610845930742235164886795864932314979351610281157855659361886808102863781685151370312080511854746038255784332215350069757051623022555613978368586835029062664762731305745647594227726428665632489289096107773321088000856663699975357028196293690263762724224701754678408461047702745504366420885689634582416342858539081929396321606010598634121605003363311013579119616062679865939693998468709142238924660111127917801218688429126677994115636796731947985750684498461908041743790133828440464529631909847036462895836633090122534831309914447196459424091283729404694395152768111763000425491563810507625869670848277196953419055919770797979657632367266053034681838503867100179004106308190539214146860496917761246588902249604463331888305575529355266846350089250683131073783021054747452957039448986392122844209582460772964310185115278128294944859347397353322601658184954232800555200616229459098035197217881575689476951894846415600971416038476094018100181822862702991046080161106626803877606899299383815991983726903888338872672181778148899280353473444024999234920820706552141670408014864016933991975773113606334069640724997406451055143743067548066787610805668910595817464488470258065019394647457670854502493130117019316045282479281063795846474898000628706279249192191202609906305963836530566985035750341676254405266530283711235041103463131521602576092448599457525532253663624971540321019512128205562511386447634413567899256379177315168934968701180661877762749097288400734550433406490720050108710917109841045609019151011757929720912566785380875147214845821822638257436072558834003766074523913053759620908132080332380260843904048422221766953571912797388517277626386941283717699629935711324025966057142764189931800175594057122057330649145873002772172586810767872649208080825757303519362148490181782109014530274827442176357132643276898589171694879151254558669342469531298104933440869127134706108303123179052491441455695570862040353064428131498684402644827058474245290353460007340203698765732836504129413105304380250461253313836599321713380334412957052189518381595534001644666230438054048679533251740979029177997736910924852269607574955043329879707305871349574111741260401660332591246992790967780704174724476436571532435184935532844606511927171187521688871514903197123013763943084319003259897894888651616437738765325247014110124286879483942118353113646374225290959086586272319121325691221713848854204416607674875163980343746647069899133715070523680638026946683236760622855484480134299090183674302857137863222906983552311710284076651200553794552239261186690056014318454071520325336315500302843664727113083251535071275248708497677122305861989072160729106272099757971293166362904159253133250711115804544716309859303464179780165873330124199047257722139466183585574734959198728039244872412823398856680432069399808610367176262875469875740956475990738598640084895995371492123303211740135889291058362649079655571704605193076520577230143305863523513304978952636858250653917547745817627750268543090381088989558642442935913390298914027428262880705939402427828632620209111755652079073897031687993233841260679300733994891774190120592158064903492774370882060860434883933737338721126278781462380200074504277317481200000249111135572304255201326835593473747620483241946466702069947558451209549163776794910125436659487854904040311640686377959049210366258880644699629578002720729798247720172674365719107049872095648567305362578602754665332754924132302484051897742361298680284014101303797280783218450564492941411605886632136647562009577665938698608095195633869878643676897458473019438952411965142660749117158754689049975566956130764263275529870477956302122300162692010278265400588143274470932331703699915795449338672131949677040262439537826701301632341404526801842607407027776325383654078301470700312545689315082710058296515981194809155492437337123653607971509491650436694613009730401703882283348679384449176495231546928383225805186572441579293384653350616775039213375421077794079393766645461765564067919995071109067174976961887086927821332253347902986816781058566308445848675722724095024931327913337403773922556262896233042521660586636550597685853114722213866864986037205689900828901989312629303303525663665404105788446233424107373344135294071423671525874745281161477492031344003479387676469378752914176751933006141101715639547393370839494173382141868208335427900903831631678252579902673544577348886668975197194573740353090580833423451991418960142304387981035558862243249172012718605471655977411242796781152042546683203405108395137482453948899630203484513318188288447438070192936108084452472199111172043127667961855720049621573207166917489804199312403270341381008914885317429460062444863729358417016910160829605872806216567186538101241048133339636569244338663748277616491552993961694341544925903629966901434956429769472607260017813522132180389515904247875220430779075468783653406593433653723751759122060236314209986018119309482802702827419596945835442959204441715607282619179166131478027933146819562831848243123897790284749713729436164061352362811742363417659870415139243708889411404766142889561584313421431009968660152564073906228527156273077085723057365256193411783862866338079542338996492723586108373164498756259418065675769492471167933653622691139532247644702836238483216413765907730539589764207434522704645866372366604060989338552888061521016641943183880418211584576064871701321020794105484638884890132220842048124740819113362131225417443835637132595889904372210047427679069463546194506189201008772517314593318341363303633794580489801159799421028244429103958547000805310039441640800357269253606880417886481544339923343909366205158993434959681515718698566708785446740850605791283462680789273676848856485009623304823820687138545112169041689020785500638774171848604509409184331296755455394218196484410432567861211289258053756320217176598322015427201292520505218662102677516645975389559105071016557200941009204204135238746562159174104399912009697897668255619913875005912562396644429200684590951476378113767032858891234997965736749653767039974605167607218764822214817922078459381005760615110846091769465795852553989170287068717813145869912403713091695375204109285225592710275425520253696447248908058880404117909331513306067271751459046329254131893938503337339257725498937308019196498775899474932026761836561208708364731840662239886247986382804730664008532266424978630928818453176692950608097600184485698521005374996763867623405190217202710763807513627621505203093154582603223123473419959071612224503430968754327364570784836835793996659786438058349974420497325874566126404087354700256592908301241206397738709109553372929326697716516235258354275768334363882342955689300831625253845333613398726789268282838248828981929873116553115671505003861493255845410112527296335566158923947632196313136558785476982416993146865760427665366275249807877288733956761312295322978783246261378087735946858962815578260230642912409331898416285414165544790111900330722022091252372616935179075827491915005269481280351795463171915207461761822052581165242368572228640080812422342224966822647751126689215121420459819808779163175254406383413707159630995131661185163139790292133027186948295294979674708230603226480754581242708196628860608894856294536030219774106147535716633291852165211153582584534597071658149472634134099438705769503755081509884618137793733573922020897451824551579489404369761367194397505571381732716261655131854497410428440619970022388733303275216550628575236902610581985196183910244610883556585850438288522137809728493025813115165498735643529835679129871482266349704818549314796163622847851298018311900438478056742714819494819440688970428388601013030466636335234736049945777442267906316613679729241652552374201172390322478567852179655789897102213439195148257756307370513660948811415959628625494691115516691584533730884799648130763917177427482457860873133056187159828425122922653749433430891406892733622864082929784628002483328354041378375693201264132111289370703880664025160157060252621174913252769706744777456648807634668690387069339858871663390524163567255894670350736381650401007502826999725773646836637798537009266816905775782559403214643867687990285405155444842968799215929278418584333742270505196796957480376563365382451821331310926193459122009076985430462072953744806375405634517433579847732497196289393776819970190693925498875324333115311191293376110177254687044455374036432266026462142438292355110257162574628445639929423597502320678557148655436140890281041926068552156074473617410965338038640437609165799282762269883023326313280409642238599457794709158686257282096702467583421749995547734729639566206698353984891738370719039748810791890636312231404840511487492025663878032512917238127258628148743831465090601735261322998023973452908646902433383094490530739320316023598070190892692396991012687400102306864670338267153757313537564356444689347053527419128488974532085647832881604439372170436923026486323647068750199422844887870297049130744310181787918039265331780856271471569187970479237768615586066740523962220950316541930717202726572796153850923731258932109511109518169237983120421411390390483120935927072010038451699903923916085203054249284833334545900613829933806863422664571902402060248992039324320131391509617051196366307013868841856099229274538405563177952770556012980961951505895569653154982542004778178069337638471772036334833571760504154056105387534980957474370174409276345226489272697559880702399891852304482506671359502668966559444621771624910403893926701569526207835536367926526500465191365426928321544582491409868644717802344572073880483682670075335285828687183805051096737814268631442024761588720667073451519582967760006657268962282710795670005507053611268096676707120331403202054299573965862636713554731730259649868206401213658775810579406868267030150181081081497234956879459709081979323442959558876360994157412788151716640719951485965482978736300225769345640290525324311926849887250476999045493108640071707197767710501715384943772032547774597431508417829318481739662108867260342095978903650891899647329157544057871317447360056231253132610169926570629889657322210681928695826799294921536649510617187816725434197317362351284668312652930831140767006845004924291396826186898317638989419319803975901599041730998069718510849967844780243529048118313998352611517520225825494445006184899959156234933583560618314549294984110190025248421235780710486097113704929314573065564769350191092900070070796364059822679712659284666267936065979478902025856917657041142962482293544328238557936873308167151768014782809558881306493946590349339604428486451109361184362076548830299227556509828368877994190669149294973085276304901773426451473473371593431781491153588196778704367171918304879096091546055473871107269471280594315778269284933444029858485412053058910450165702467924334482196444304480548779101058487649146527185124756819356233636691247406138481468936317065206398969922126607405618961276385542673627906717786948275751977653316581126293943227038320260962115293491074075364504090442059287402697294531267800855586236647078662352401858955427303396099279895856656212147067183646338285806996711224143983183507537743669542042674559641153775106464526909397383774473743221431701748495182109254681735748136211714403092757532454113994475089839223989839508849297536312858822793982503923665988858910383557248368510430591635210739112353112279974329692863953619575041424343121832743607422945546352509335528072986562383445723397240999072463048259308444485685798361506430322661820873423191526596221181812744568676363367975120534667997617078198695823874088728610673910069765555530063474876796241108787731154814160594010241958896891890935932192183546205552025115412934886606799346264531954404966320547735614880062598264798767217089127454896022434956423108567299869679635875085964745352260758152790508837969840598719865460246919920469169735311266864718195518173188316623184991608737832737016785545142825897510835115968149068505893492031008367355658115297725140348120194920060911234035150511080113948303823096028720249921210842340546814371333170615715743162216934302626341901764743462462253433813000321911309437956050068454114132675021745865282701458934506784493178106849778440951949231627392690118402131768388528049623449205916323799116860207439609406975633277799890926003826894719718443004820345848878606888598939115072051534551367991214267320547484639459730006183699266142061759913836437189361096555927355954724359973648138122485525836903565060979044537631360543492446380401018248774049890435981747498938875212282379453579143721202211867082543708060652612437429459011200649940069671164453857798076646731197541419138657856557820027901693189579033767882688592747047360126513128721970960856714392168492341284515085150440996043160698137043394247389859117732463864636714230373127828730221875339970623095201734398377611531132315215019626808042240085410457745670421754428461746836490101952477004101145114687762215542243295001883524186220086503891320385867105333720549399127960383706985703884330887531970137111775565998648516157918290902413917128464095426875733178192814779413271335457492862860605562176126892801519021783846938446426211251999540032787684981735121457318780226742118051396358969222004604020930304333970867182395109209029238978292798395319323787762103363055436259724814586485468773930225659730038314730470153952750268098841214883916002511379585483998356289626383298211478746546044079275113046002353800845443868415035937769462467753889961096444575640936166302322809874333400074033078206830339259016331777673716852959366447403036218226432738571418814350330322741626461255986210969370491440060802176319848011499126217437294280911648177252906371115949102196616809016817845752757980689839947049849954866297867716291374619955507490852073016466016470104917907419417620342280395109812643919871424057676355432317337875902537937651256505843779328031261406572852525769008274533341216090726381702088830762233713059956565519818852447618694387340264974866024523641770083334987909004620348352654608386454106698939149064833132801976945019191127952405135150116136488894205788573106893858462835659323279953186974865567066957748898612928307740600564299308258709632582975312377061988263552147125148798762671223631881174868725739963430884615805005191363935977552966834791025002438315227215154299603592956266659802730202845352135776218109311538155922900495580958778400330365658641664893499491694967745907652916826437239380042821524430259348360457685274566124599434693965420375351794158043671928907096205466958211235150450734500685675800107817413461404057051460626794029201798036354718349710301943975078940221920072831590196778134585130605174759206797962708976589170119338404430102788326881902975718964831596495379624671307683424490664180891876537606219641711084890600619123145937905948755160200312772648655040060046913568712774692945189737953646340528795068894978154842085554760448738422725796531888944641152880948424327300112738766559139967533816515647023863559332336025702443776195084607942018782191442994015460991724215258054391564017829820625149500769396770692648178601071473748395844527762190710581782494604383393921025458014011567902208031756549718023326802680875762887493122636016131702264469430368191910953366425376570159372534410585122258071887130885504099297221339900641072914461348129440108219776464486162232879489967972975239567696712402423421149423559051248324732625251784207922577599611306858664999980047157664761242776172479140575275246977074589837620571944801746189260732287166764299988358595002027886240716084345572071377063326409573618805418218157856848912473595324212819669779159181049836351757918260384602709601742209505243703474317515353100459742392956063269874874786310146358345602582470590759443389371082835161192821365091135669297900609275855004457712138846639318699633009378885014526041459592412489867300437724287311993073949024310587306263395232263320228621778107548377791407251595266824562569558286834032496783730864196506576134296585081107228936541744321547731222135588457972186709441361535161809621125358612140488783192746438552867531307068910687701822695086702279544795865270118967676267901963360593910512158694966555925020403617095279064255845311583361914491959299325798981088257986795613979103925509135472795918417757689039247557570555088661760830637558107506056779180488111740897286011419864207387915316868250695736814504305191267581077618051687400571345114306596208557645270679762376847478123213366212516586186999005815979584534562549156987448933871599681386910837331974196018500359825403155906859526203222453288961040556751418122855691205332138497492911868798927257540143067564506740030748988533409600895909334124429498363152516460185464140062590994410312453510927694402512581200501323217404345278983083266446773560519061237482882212222899500556019690742843129863824843705467644460321095499891651513278093453418120508388417932782917209903156185471763878719081790887826219472349752785207819245484030416947964476943097448034906935326004832561726928733799048801460303100099625828845606707515875001362110963969370018611623941163911917500185101888774388677788493471054550460575241913506456519849250137194581928128865164352109150053302170915105302537961243001712229631019048006738442862481813587432533990074061589363015215045159512835221761816575212547900009307464868001901621438845118502791113568369646815340149840550299870325421391303930011629199631696342059113555222832377908181626133762686529462363775844573062121944447290878453808816424140191529110529974583148014063194313097425981835419866456519154199798098521272574265882292320477300302969181138019809416869822965357084600547222912315219453935517549167757514015853814106515610974315667832823802862765465548840533146556248249414074016707777395693706151630420775850736451044493532735645510883991055306592681150939829346266616518881220778900944367681140316504398989192680946716652899240605180815444148180419996627841019835840191550473545620832029246062897232016103792858186075292700816340525662780050821586326990459153508292548738620051581814291067592732081100318593671266288990764414540366518841963868120357168060860942479124002039157387441342098066149779213509004791997407605996190545264271121863810544941784463672673517205811765407980341333685533701591263214288060195967354844290770257166388753989899872723511603529999839310570737368520429819081945627684696234977519844333599075941812822183730575368796576742714057226081525645425855131226185951562396639793313207214371108710878417905262113148028434073866806520786363704470193738412947426896096191688601116278218071801112566047150324448151519824154603259973771463971242132694812315379478286634913019215602477781704921783972237241674177079573334425438961830436331668041372343073354091744461043993669974152107302776166032433857503966381451378299594848846390095740635144919429855371639665951174892700085563489865643531378172889359805283678671184378311462424367917096247474191655916330810779704813410337642808770102294945954663407190612944040781538307853160359149992975892545877672340853585970112046862675418690101572189351132566407751885925813912816078735370468444455364801958133302066848129807178963064272148829696367707383238115096465041002482778119226535262014385825533950020483824528638377651151735704175733243510097231329845120180674399228714439033633515687446343811536199638674018700717007886565974120747009378756591207949858596447716158478055754341114019087970490187862262933606995012079958891307119634351061021647372970417012827867403239888967778317164685986712394312514663188376360534847767193147535401625845119329146870291214072529030005624361773613216739087799677001674313149694916161961838239038314260049091899154413064986332981095010150275435794729247794472649176565708376146165973695456751613399816872126499869016775991118030949454689172247554938913766848314035952381053045812890218077932095726962004441791544769180075801158455776516659206493198270108425114114260272327921893177224963917372740180569016628708964977833894559222254006426154914516914286783094921124941206275827837496570957969499100789683052526305380826946932335906868153025272748174144890229974894820203031027425799327565924605935165430265879578250365073613012230204973597308847834307194208075435326868931904835274961981884850811975754212529155153059812299395814627595102417775427552733078212567876742314645983578029399982209312330468142860242685050427476638794517281028247302863468582019128138940747751631652288828954375342102990439782061891506575063364460880713521342290572723984254957283244880525953667263544894962089450025433034721653074138505222009374580029590107359414236063196143173232490343190238519841410467442730784118943410807560550857955179680163856209910697761034858325413736705876388473231851043486985992617744054831043597054702005164134224835422025621959150980971134657771917484797986514204454237631197405389908166283369543275850066708420971633673457628632257993148001535549504814489318370208130862365253401582988135469775741435096596866009838369343903724936886852683530678931900863906204333680790242505123036684436312692527780247317385980164692537834052451630921930435173563156044377470532394798799464390645847748149742944447182995814187614510608595852883487470218730000144128154913764448580112403978950510914727744626554873561954457359065840242707391162622910939867558715116646680610233673118729103689249410269517326326022320188235308375811402180458423778170945806271319344656463741269398981700395896935490262442674186358166358607582420284274123934745415168472370790704605725668777857782690175929092485873230732083394048833977448934719502796353027395556899175879249604933602034276297006996235130933869915484062672584613411019383593485870715032026404621372324819824206869480177593460894248901994010129963559586096138546812623486258106317512933769465833536963284896392040053306711636731573980587493747796451567073486879445015423998176373155897382512946552610013197814920872399668728389434678753948431690387392008487687991283950923334140680520600797895612675119299518560016931425837963918217776187516502263987019027972217905794504198763545293704712700292262548639766567077174906320567802919030773584820971122472365314671288385348688603323041857005890016758646044969763125054086474202238471937171166211274645179553682634393462736454386668613272534600258572282306502817360537367953330207039499494018509085633396233813699552081691004501288079022758494959204534551357063503449091171016562896233549320767177998744254977995828477706477950546152098951919482075800406972638997189008404439777683056857977922218519835543620949978837549833509827698215504871192348926255532224416533786834803515233334837584594511766046557239335174607416241167988374699281071725563521876283968286545010404922867888648377780975337257871195445745872773557943189278385126437071355854696321942880215916297611098116706642824112965112444758967606667443118104744300148743844056334343441770966129003893637271562746670458058516739166352676084411531246254278795385214705435644486348968434465238468093125732121412049169566842361985876470973223577535421749199729408478559952552962454387707385621218688916062845368686683266698918649334169486700372623355925997063269002351917189331450863922982315180276231213394036824539813789966713803174381066833972418297435579925061477164751555346639802114597862239990369535203909410437048459246926802315611767755562570942503682915130070304493995090040404169564616344218575164453154142133083059389809501199163176566812991863460264817058261348125986946873759630878254366171510300344510099995725089089035696493088972783499754245754055914954147813573871941278594271085709010565030115142679492632552897061535333077005238344891120514262641227874943862896249055037875607147580742159269614822793584727008306610128277126310672149220253672882841954620740870158224086629049592434199002493108994683427104743712509043219654024737791556934612626142667010838257202512806698451812099494742600401809366325716483103724026187723185743086465107554069311764830849629238878464225337902112567234804730399674910633875128423245817643557555140956760929869584379786134073873639730725502688611415908105731895588321170615582467794748470282223949585767705626795523325939129095706836695434924362773012361417969464235325973579596283561284567514501187837471479953793704077673960721782803849113545493941492764999838061242831377861886859985703154632686079209590757265170026994642190327551186621449060727176457026728606368894204701774463109519209992142982084354721539714141749189531710427228155515585764666150441106735858161041619835703967089758906142316384935260191191856843189500364580047126015282521442433615204710428825096698280572702440962500529638242810274750407554046000200311850487359293105214648759218490068386999343908649134464461319403503890707224434976662035720023749606803592125567407503716495484883340493893606195009823472227716098323797484026094455006894499639084584081893617754957685326939460532936611564017897449389295703480734678830442881270150682540195246977491213007536041972741528676651108985587837089779497601994088525300620552657011365456221736646144197907119503654048973084214265902413362025389884350251093207720379582396484232936153136348825535722300270363955245323081700241255328127269013173409829283398393167623488256797837976337177096508839953514992803867664733532484772950631237099320115416502603911507717525708230587722956295220464830660122032052196734699944110527353969819110704891281474288214333239122235242857722772446998768204111323160887643292983400005717621837071236427723318306987800455519757923322163388198035547118151734634066433904196764686056102640277544385996780467531996343629069653989939903840603693779194207815808736218909458185016140890124945395384188168402677157297912190915965227800167087500111187219856756400949837928225833497238923365129120614030201008337236030500133649903411679665076550970412957723411140959898369596207998823457440343390087872514212428196247166672811584232758201596145804848415076895592445792128702971957645596372909062727689714649408695791828633896945026656951512791864099805824940727073598803315729805225479375976198139525117887615098428283480278159009830468264407801777792618072538492119094210977334504660785765436125059695975961538788827267650771106129233105797241741115658875254172158391541995429414976034538456298148407821868701441401921897707719003227985550421881171897248865304083911472508807730840334556927381337091485366681005701478385938639780661038216348100306400574215771760107500473739131884936693213150359267495559799775292025973117924792896520971037869109045940078144371629044327176611875106873448478473353199271272527311741171710960306618190148872205865500546120014249205242293354508426635641747075302697333205173103626825923484136303817989506483951667731444539865759654685808494748444536130512808258650898848882250011435013388691677024373835658518491309906326801068929966411132320745133525887172074054961746272989189629888022009715432302978003707728740484770651664932706022162727152948509077742676910962624380474179212038833759846728631297770331131012278196952587278701703944256379672415830230575885004048289292236182885012720895768084299549461229161688542433246947705174136094317996923856483054244090984364783576441706182054490538038514734637408200950784391157046551111854995513293202035373403646899788097050306903406765018144495759827781949572077631612726287288794909833853341297949011725136333458303013816642570491355217129814122476571592441039316297146715612893320407544840858840368475598425998409936045158389452836445918078312974572253958309799745621382146883448517499537962415344249417129992827346135938112060222352557249020562384069579556495635212563240624496309759250933165227459633270448589060650253044495774952067483827267190140705731827763348562720549981105531953587595541961796240614759836418248424494893111401908181987832426146099632278931013067515203068332896660464418254199008308893901589135428371294336279205899458463223861596097474286282829616006656013312860314064122294416186782963881982850714402698858452751768038995936328488805698166088976945263658707926212305020925326183003424104413301911788911988171129191949845375430445078455446516322430751191355415807406026084333230025524733868242208390800526203030177670540632029359096544047267904147452646134494435663018728766198446792755187743179039233965331671987687164048629539460058740527015080693726647715077026418786077171366501992622124896721762671700014223746420123105005579666530935072743040677746749130969581069693022921385633664997988510372638162824227870700466179735423258240236902968543347808506890414342409266743266151125439529233813979428263096353540994449790385679129537933761432019098442210425336683719701512013345161965632410837800911097222171340218268599735188900797914675254314032109277997912187582372926119879233747743359802176662201508104812764029651104130042194003452796806623302692946578259999849538254981652771282281445695459195008510043878577858111219370919761409939816265171469626667774774912358455838941292249271411743761762123654661939707787008426569783169697896931419574245489076077010638068278830494197546288386773941211618207413802260891852136878498761220337111910070403327118442428693020050128179058319372316630629477557339130689289336395218336899196452307351789262322199544139234667475617410290225614287570486066177327679368522502972331697111270904428418649678346951912248287768094928508882238363076945521681054083660703546995621658667679012876239068028251655778518935392093218724921739627083097416947565858291191846489521434471024591093096989441138541023298039751376289759479554294371757934121825794270482661598203023472621339846160038360062457730942523933276176340899638785441969234570873547609418888515913316037616707119058019515140788807929369444126471341670646430317606198737971389033412985908591295625601138693543692502543188995314654875230300123018999635643289085698094347682442086511640698674135785317587308933636023094847282358213614591645656061704604575936747732910421998392659402045254255523629935396212656316358770181031522106619049648656258880616355182784437959872187859157548754564650153130036732984372082905958869685693117996364187261007910412388608814061359140180277408578934763527723242836246978302163451719003872599168841976114314348799015194968612312573968095949276383844664354122432760933561382071729911502945693949834379581851367099104443343946177498042054319932847943028513863106375567669323431246572299457313218742792228289924421974116086315944709674953591829015210468805166487329966193629060577085402669535825554385470750906393111228686652937288728839924619641194195015713323198025136366318825539217533614098076990834478943112470364063615148572104509094687250667295313419531685512106110204829255584460221738519551679319337345616552517089074541524671217153818587021658041875465356755993720763954648711567516018752108065703994861185576123148380102433576322783611911071995244891047146522094001673647828091587477090223527050867726006459768751694780636267728323373601111676850746479499440699790098017694809337989148772297620487322695413400095977535217076123176714457151164024052529862877448638119587558468817377720137573931307325063692450333026798043407249655432604422601296517397163813360316460873062901565572104130390397556300232830952446860094165947548993450747228883385272834789386741009604059676240105934678714928079469069251687109866408980787500896694271837428320687803902961729919579137168293174448890727516243975785671854270359947965534492819132670774773046991967019847664225119063665511784062278186695570547234261232711252724910004523164541824847222020880371730295793289472449495717143353834643301009403775380986811027511785229301843752192122945440382478629492734893032937449600821371412942438696066570515437951468688950587617354138764277650018750885265635139746949050380842040243938825480679272377923139316688841228987148773911589858234925903229187020730497999769302772085853877859157492291429442612929135868135022049036840495681178142797919596658326869944170056005049327656489904918092014824316791714599650842645179495317333864734720973536581936461429922492741113878678889586870415618167486452557403993875988315497565211206689227039688041850207613191338497496220284188968778407064683215729935022578477268502385715433903154490137438759448464998387586153543605676285709784638218458019314113712259842835059524708302934031491876643396621915467032545600116210111773901666423242774822892182119150470228232239553359519428222714441143533865752664327295299416135942751314526495291277997593942031726781353271948540304217349630983067499544795703039123270483942064166552311461432825017869937097886141641856713671200247508105229449817139923347155831676510878911298404048809171474458107257915478556766640070682944421559803466056758785069459344612825995940227463218781050222468134737693349296137261670958603033678545916260418251430526072698762498821078133758212321679030666715320807523331779925422240497344034928824769607589863126529653008024375527599527542823614533922240501426297125096859051896197721938365205689703780083798263607683134123752974033901292579724143419912670867615260855396416929007803995557542511477811659933642057154287994577600727266503115823696078940755794200997163406332354331269340879783315657934665529730904578043336633280372222854939461997504272633131522721856564855330767766632946130220181901891778265664740093174015387715242695210417698645460838682876325065475501370986614575865368364253054218847971291770928868886811242409462274396182169279979823106008462714817598894532042026993713278947426527217819620601485061899044361716627735943631355006731345764823884000874484247469312753831799300315488074427271135279421819316862799501600546039770940382477876224945526887655144854839352523351467973999798886569642922155000744893871731597117140197607412043473040638572581664074210580098877141066059128695082948719730870795434925380634739260267963839319540611791879998266212078670247110596051701769608305847326021393446449615355402817884975327886332841605943698423617140874251897471857620906967209504244001391206888884985250195365546921966243248295285498803903909875236111435291990436436268345342912298299228340568283334302343632808611847225413606593836852348843395114270458108466154860882048745371315710057106665515902769126778906386619230249360250518310218870452087685099346624506646280230712166745947822655268138236496105146284952226038283870432612992359657245751889830239430778216218455551366457885426184997417654078836471539273320132788526448453883626016618756171754911142579300586014788305853907798922317637269329767517100810989381280070263854402022985769707491163521890193062879257267711195144834372560345345531684616797430909831927560017942842239328197071944391805106342753505958970746698523015884211126242392631823936314662846902543345941348119125322487534077731831691503310177947322791267697570528156477558315305183429389352280160484908830183891217536888879756849384405951811895745023058684988867363274202583716035509697065496180283934629233069699489359865881851868327103658137442490676553769130560646158374258419312789327279376528520876103267798162679216030103185766861510181190648260126111168975612916572626276438275398964266455492727286855469090853318511074851366693268585299863685447062810884400314990546597821427499185170057029785846228347206323139883839063142610110370956765441131652267275402589888571386633577928327301939459074612331905589649119705218039905060554417202811146612112016735568192511710774656324404557972902101609418252405936191859574898745089181399431808402578240195900629545501224871910109080690049893278505040583385541227421686970117378508967803208215714489917532108269693250629002295517563572205915238877628362467569992466108409556477544922333752057462468760074654804022444302437289239198649195204076934462516904013295904662901214675111970403967212820383221453366613614377113640805820136355513797920022205866549893370277401929464886270951374534668287904890784107980247467073152682975958460962107767251062442877569828350030306267339181942675174668843946736247540182037792535438371505894635089800787871962721024863410563241129871969905692825603592020617883656523063382776699543910984614051273612967405299831780321179849038627621054965769367487150177668562492594003720696142905838946173639034114568054997163085002458848643659296802250429340941888369081578578860635205211974386947288049765161858892560994520814977805193904502694978624998169839057588290313966525482591273026434796553469234451603081325400610880479283415965295067582074850799216463436848333756068486913101570544450906764684157637743744633270450467671690560345763265152607105352322665646544603044402600345723314426446570043286457815100577871188255629794465160101841430736331402466343672006560881192664244052326582007573494945165831629670903812519207443802343696814714120823415491911165010374461057886587080377907519934520542186745024852865767131760699706371479496952581889837368109381233978893493336889990708388591853615676377740589043335073439853993918862237666620776857960758225727896827185888638995687322757000706194474004559962767877441784451684579470576761682887322529235384956983031855884447663146431400016856140506131243616431404497323876637375550512324583169223727697647976963520641792085325270759345311510879745772044474244970055027110510818799087998196382803162129646791626234718703600248773076265372602145933894479926281112625664848806903450650774570411894211629963507799350104804446145389492094603298331876444512107896812569921739753180688466125000025135974505636547155144604006682150627169678987149588983596683906210245706527869282842705916624954518378853435087907108957202916263800842591470489225116494626337912096909857334981383750185206110399418197325606931465784491447839317701622703076662612903859982564382567487465920514066985467913225500554006863070120773126047043322854250913432720080097893369853594779783179570062276742914480990510623229303378309859717217302946133008098140249769321717397503821087120901074342606637453701977346398625883828862222100047101994703589022622126370408588145164256887908809346044789771504277616744285862534833272393707915593053447422792810589626099961540372379211030504451543872529320542894948169158388424023169417693506764478371351465303460585610763258547191868997420197606901220814010157965479055863628163417120719062379267062008806539004035089604835272227191438329524507285741881232034617938913329007737623905166906088370738878943256429131970682564501452318494787844832830414751564323513578415585365105943546527796315729781291878903028788445704265213243958355649113011768592194720734444474055316988382421406025441304692487742864411728841549391800056202065034696916586034404155329782970861948954209582505553320720217258952548139641921962515552421134190238602679253399547645314670259232357260213863443891130199857254570360133693668396239241819606526633974597445473661074743936667165364356755860330147016233090337945469094309163026495622582681307947090457546487174499583842639846529570612325857287584811748326881435618367186944602386617732609161806963137350095526680430379032310837925814857258048363413454116785395876712973805591933888999990460602991330627036460046173970890199551435000001795148763994147799230879691241024437390764508750090526722722776917185211943165227206437633674286496871833000209746806772033184661962742329762676664661622226214040525923796829836590328965552644960540227496236379123920879546443901200503850827913931083300610665865660859856089763892507629945826809155287083382750706174239278150362326626315477765716368562338278572431838793793490699852441460794036579034844309338258743272603302850296622999149953708867499314903312124166878344250422094414565815533654925458009382013800788906270764037934014966477387525434913467794757717001994986194424387750705062255070607666918314267940225282881745961680772738917073128512947846473522073812152839788041833738472213261116766405673943909590124070911863999032460762649657461684444078189723443873951087529705153862160860957447705881876682917850891889512873153314219536533889479323581511048333563619233204450476186161564392418054822687618099025973522026834904613191306094191207905646183095286359550367914488286106181549526556387465746084789449646108067533739224543336041848207348901088501661753430340940576237757945977724837522592391242220055566049633718315492218867468886722571556902017498557835693910908835936700345653673189137156937127169623759423186635937366178941752461244555252665552219888768006039528474154824441184172427487158476010419961600599508094119856244935864288783887154709113423915268378189735232912566325885400441721990772309553528540527361504341691164473861991028642571276466403552830179187238812764388994657532215189733696273902651316310375112646753984862329798900476379100059055343350480704321999200148834468927811369650806114839419872563675647600534896780034602521994210414031739787615507810944982108313053274448155602337822861097090447217643020785045237488311026037131257515575551067088386255516148740853113804463662289858999180027758333565754445802997571688309125445515682866509728264362562828227186148304166767767774862945876181142148544162261669518480896717077261137304391732410249379876851432308510891670365793227496066584554704088374679635618247669922449808111935903604670056605608185710016544683371379578680181315219971653138242189768141534202877126248804168727717187510249204443993436549859252501642140652331523085108802725975104692514515225097597030957730295437666625064309321615090794606346571591673531981631434671148307225618568231427625838901690502524714080919825071710726193043350779195669831359264978198517623516191554345480267491372259648140884595096266441685230737551826405455512515002886293524746128474650208661786624595865433656082329487743732472517016644943397468494526664288328517246150385354492329428663229968855480501626873132822957256024475929975137344586969034269905897303517976382121526827944958472052246370357334758908400962325265413252265450026236833888755649585307669768090904429230755311755206445421997039105123088088425445002637874293301226103355508626084360916199139480444165727552903367449275718497643294837028327284539712663212041548111750123102715457602130676677815432030330201626172540430888161430137140677705958169209387044730466336606421471152057098483758198918045340924994184535513613243716045956048475688888587210507194434044487335745791013062677635531400625720913396501608237282111222167823029167393118305461157944265845940622988161827900386960095320126574895880002944254854963337838923732261713673742973946367543225662922482309555585161318482178163681390181015088200734026894870063035134826681262773385315899185531228894601910878349143909793872841120922128248171507816444708109250508684061435689400489107050330798123402115805449703945709350676202424011753966008835783032231088415648376818848874983589779274611136868046022592945428908514903397894239757927502829367958186382382393394475443911392551010844899238923981015781225773334045843136174737779677157885785720306019147390479053338455378613407608809101207021682708611735360549470976593110571399020031848017669706077358341838557543458515413418011699631390434406371046447840715613233731268194470363725303183806980956136119458495458083937963695767014866129795887471361367059699841287774995045913545949567836678212471767824394256113551470566288804300106430655811816795384950034674168196684070302405610375771661520647920270064463113751516535242978682635784765583475274417787381164444464598798313385530953247433638321699625468146844414629800066249343616128845533405765872046489967724141393834875966396847713337840206063653496628125617425450944450660428487077936087983447918461949889652342322904662274011508870682855411275677530186886981837557900446376382103767383356599529026447660355931954494000676057623325739571235364970805834197674902904191760741113663693964603251180712365013068751725726943475155476505854216806261318997382777642836831884164973346488411016121066313230828906061719262160855208469113686881540278279692149985293703764586423472466172840932607283093710526107698792154106715927832298672625354459096602554915699196054094025875404996628608360667736188872628546755190340931775704455307624066780636797322395980279865196206696372756249022506973601835225772435596957615743262828050875879896593178466955221819781808251360718900363830120697375341858766449853987215683959787826491823759016878938690200893661998994981659536366284081999374238412945756156312049328756504487014740415668293907110433438928538875649892439074090599944857329719611640997938647810704399210028492021946899868417454804469980613808281547267922404913674691725249891655836176687376244480729115733433878211542796402780166086772591423697718534272565602855664797944492325746084238040176597046057693813126235245350889241481153675992476027041275601111282303386649707687352674306867348842065025790867676182222292968891613017427967258512567340016975285495668660664997904741349773301186870077032167646818075866134548314452000000820798068452098131341885683017269996194151000811143456274452314013600669201007807901895895359788835686898818911948981196472002233796970739087241467582656042934383761543289987872786650558675437191966413207337646317099927368878709535086335410519536596387727329112568448815933077702142895947478437526509487047754318057065454134113051820538042635317497617573032137678852854260630892444705314152423163341025859751869462388161692517026943238402649709381119545367915177460899269829276853347411814612961516233056155590710795356114373937517360953740062630854945323115496385563009381928894861596038325968308970476210749707595918576228587297934963516686963967046970965572830532917251197084049522476093478333595706316107178911492895249883554512608467550215109738985868711348147845416148516372451615101378890624932755603812674570091105928857168460978744445570774047629321720485129290769797957637765400580218816166741906036985343143885983244411815257976972312310488403946724164391571316730868789942068301024513501659625899354852817991246795687108918236904286767581101419237676292825957298150776012133470973339882133456079098215668520362975238611773100300363798203887483334128593071917928661284541165793086593732244084829986735945493270128432078649145919727293019153534478291204236912945302310738598727551586617548843110682761905811956167862775015697854568187301875758577976799810432544434621054446631952360079640336043370504524335010577817294820475335582534581844082172303005287432749573940258121969641758973052473987818181909708315380785921625815895532157131471611554166813341409648786768979423371224154939340169960506010798973693648966840608746875561826720227894525219017485440816985212383932121097736301099395736146842300007332192074030947157961313484829889119000471965474631273571619001850606786162145792356058275408782103354513160979987309764903165680798396984055304454523646318372983316304025970377819524322485039457331986731885575624681990169434058201212472039685501522887164473112627798587034945530241191753414190559203877224941625960962202773700814582699082110506003966711235001732014781840644772690813736266473217303630228605976639948823350158821282299846018383810768198995833290645423007132970497967883470844338763623593103290985954712675671114662888675604040884737863435331276357445254264702314126702454483762251814718397357300403571782164307860368546989578510362775466744395027352082855137620919749274564719561880860558015344355451519432942709974894619616005085251892104058074866046379665310238821546871305094701356237948174942850774479694185409145029060289284695674800465415317083903303839839409462381901868122580658616122912329389353862689591629425609299888005489718375422760062782337152885200689028738914112727790555712079854723825168097590154163188896323919088053960441062625932537213848086474880739223223276217609571038618925902085041479810844955032030292456220053536818528428151170373310123515209259139343133195339496901763569144562883478414723463116199246734424038384059668886251997343312638898878713294408516679971733323785596101460721121650454525234475663438704626436465234089136637050687959729320774530779743504418905751140927673633621075234778662243359856083645512417560538337953241793247049392281923156115295270234451743067823318416697244403739442476655901630138979947136290775946057014542228841039697736466660048770589880985021399120240755339148383199986918282408030476458425333437219991024972552746363888312307557204811853906854191119428616718344297785589283573765483951518619172821091477545081370986283549543058210603328177781889028049269703758155634787850582792617318342055717988707430887469280378217194117324469904755350570358126999766077797253179874848978800555586636154724645929017907912062535154468711527991768596096148826679579620050457706085647392423419607171225107792367457557699020724978927439507774581942715191998911015439333596570361236068668496478772192585843904124927474509287117416623599293993335220616814014798367383902308471054471156497487695140210513586889955367936849564791930740679737601852426366843522666270970419748467634650336759396172419078601651031074631016913806261848988627896280672003243192992569383884325456473594611699679450375277767423051782397025530872997467299329290738146811483546348917985074413000195195136566767112073884896815351518330976198251800619071678126313535086686826394513269059135082119045133783362156094096305725864111148964138697072189563590829684442107770049970222001647658370532278794764078457885784359458212841127338625825244830564257892190219739430988359854860844280530600940076116407757330639808415648601597871031203162071517605994234624542254714172482806909597672085883765000458784749811750220948909557137345950587300088200002033164104276949107183231849840944242202908481354449555115316087768904924704194760366410978137529546694217411114997110766672993798401667275870103708405208808596758101887797220653900358060986307541966613280581816595478879063130961911967800118991166335769077726007192942499022634709526394672615310200554940240414254804055422697203624377446880992429408780711431109041325477733702569250050126718666113284126040480720525400371717914874356779104111290922666324584718900332733504179644134667588879875091451976205041802016828402198895175397659321419825523625051199383464668601421630197593791556494485373686393581614189749250422383784616584894273268898258860993784779317846740618039717356660407475237185921430904059050679190068495206448690858940983163344141505613004712339206488836472820964061845865826228339833810880271311767167397946507829328300030147842554797421020867998166324280731615362888501853555222946006418207353189014436402318622028725856601298384398459303297286378909648737722638893611870438184598672311901595932407282456193115816279987547246205680548088500177502944717050379678855014056868634158375225196723271590392183954337162895619780463642341532900799601694937742935467067602794657293075685196185571844180759726238240796797243025049707498226637458693640784158168664938467595030935208397276698332118162965782841706324846170574443413271704128620641047884960981356216846756431844469715848688442278721410318961112708664962076132495775981720446378359590802842044038593871949810006794307284106012272170804437994035841320106756144193622533489110936988409757058557287638577133803148386852280030508586384687745856767763167433288504460613206973164814083925381351023792414912869339926337356418773505356490283737181141909690059204677592542003242189551428740578782775111524999575716959030618989336694594029118327340530268926512862408052712071505002488987821251453551745111626747271107663456966406836101504932532843334907106379947758142826011328995609956410125330000749806474817091777448504368424764591377051366786694936567192847056830705748629923332338854417253928382596594303254402838008915869645853660824906227498323601966907935596670653210817947515913004516379794201174467852304218778983998077113496063746748413152000911716359047932410823270871626894663352303838080834257227043518607374294232735472325493755000288470429639880415048155394349994725109080284953376347796239137221154324354752190120511359854783155768974489354691363378782336230583966752131558500708291696903491875420694686798043068056465496856275992177384275923676027232692174594530269305681881206978605699354585565671601090985411054234859664822095918877250281442110867798589056634290448352226522158052134134695986351217555023076170578188776285891417822532222596155357580606395428490084583531991815579301903949703466042905231675653148605912530733899010200698893001009744179714774594992977430487376288443534085622986728720141615754865136675693834509330606346328356294919536406480480379903666691309391970471777944612489079900700046153132176168186580030302619167933934245376804597507465934011304870934208738398791905099764732706009259957381159160967428833677841653504572052036667264855834535380326936850316638531405085243163195726879746146606183067558712998928503783388229557387638066176812613363387869773409758610690160073400373522194748591634564017326028455024523471585224849224716361393518514912567674290460848889895960564931741407416490816989705974259567551576617720513310638075358035895598318334769432846247866124535182991076685110341136778418718939864573455075777826087105100319275267953237888390857412498791775385710172650897518976895079328482341514025532416457447279770059480248410725693686971772071380154310796614522861289139176164526458915093629888149655990794870167405738178442700391765120497189906202940558687130281147493682211102432892215558541906159531891775042918846032536235135312100738156859993065264252184685961320463154640371951108918278544620942215026701320310649943893633023087762196529040121401171541768418446737301517637709109893174576924558116449108196407211478294422350779048878735840997316112905468914434584439090808294396287251045138445199444536718341483954898268211713593836786808722706607887013786103829140181837931747735257052718084866055966138874909256194183333939738777893811951769866987110764654012259930465138233146923382112554353789602051012962973382983974555088198632550260265443119737923075825649905309111506185593474600941128942342008174208110911394039330221791560781494967094386201304044258306129181474618234967977885666653451499380419345835943965985793988271329766335736946373725844405360408144839103359546600791215546509461044326039378639209503085059727857304234183909720916969855541856421241680847836883225062228741274306259527012198116878836547490121823627765519186229750390494389464672424929789464991148676000058879681387836065504918314762733372450410077609586432889291285660437548126880623209284012106126379640690643304982818453909673338171864991692245921400892303231441433280942148735335191461840974938639917356790853439121828608284505115418624602855937256365529820812921775508102140041336760061065361809285054617513224563359335214630535660649666538663492327291805907625374249800520091044689861776490632790585339011059214317487618369019442710920737757502116638591107230171502688939487296657138264446445781396905149312359932780664232716968941749234097640415440154826383249869432880665980207030565335359755908501562054636276416872168240851665703498997044043385001725593307675704169738748418887099112341761972377832121183720856933270253227653551525321465277918882504445653132033989205031386142174969625575214256400027672853106838090825708784753264212094571715964093670855720109137467737629485489668785045708910621730799364192137897477183792240511129477958000244442527610907077293840239897531010779597803572417534099937454074150697574438750293170297267233123291699290032506023810339453364912992822971377979832084025127030164344074072905948806748680462687508852166609175943785902922074202216690078533030130286731143635045966359406633600381691161630785960405515109962029501638480066099959847523610331475178200195408718761429303555336505710023829384980376028322178630916884654903829045787581958817581989414432740252088537343279054963737940375258297411134505794616037250899421810582557818814996817794122908316606812634478332828214578638744252148947464061921732829611633677381431998166189727925307913372257307343076684378243866008682139085069243316344163477778225064342679375239871781355013429099032752535916723418801436869357159919139619225348827452101744975863895519571544044402376794047487850856499371553561577699391277408000043715370460211111361338076568914997711559037243453219368522819074024919868707955273006347312143829233918637334609586663969435168094165879932080534050975550819452512853722796185357359372085960252284314647525485308298527313725956344730839984805665040609097813486561074483785059204365211297297191006932670022742834796867391946869746723363436330206752057031222470165112744409374927935971356645646962055329808907047356163691039766133101082565321406493072382463637544634583250381141418538312773229421715566883822850877914004509856971843696778297410507871819027296432326081898714143588719676552848044911244302481255571166811503384523193043054629559940403477482390414692684849963497670271975197064268063581394166554135998763459696041736647894960485847994070673237747762656628682455125241838824938639281977330635065822423202558845600590089143425457799199837799228354083277693291117779925336804889966698679520286321635421650138834342503868699267691146051585298399515123924430896087609009235999934160823182288523895405355995711119502220208333015411902775693178353630115752772566336069008515441705877802478436732410470659957954471211318236207552189931485027544892794251933673505083180488085696971857526781567999495221030076958597803680980933531158030884328684999866334470612648702511188493273871044556864119592787832552360671496308706584747017618106511901078490656546246956872992521413434891532771341847989640564034359659952539616087286717413417014124538933591763994989531232166189408847119358988468731603176042656594607084778383016230790833903521580312866402729664209893285041156595878266322774658300311256519606631477127030027438485565376479308955846565820973234733210391690484282328034126966778986857939248787516941334895318994052357171820365859633208829530485211926345313619728777106104647626501652977809066497661884452474128606231573989031083254604438549893512162222070496926378450397702852767992433158352083603069998059553881065891256699770409289540994078211179866122575768205442062433960549777410394002556689366206292421506707966140540730463265284257649426702787669096790333231084325356313512442990727932376067826931357050419500127986194793595530017811964307098149046841522082797615136802939158946761087365283198574518982979199774809548801625774920261626899199180711685128575847179095669907739112782996305144468672770964505285003441873365373837798412351881227712182915318624578022265448917777011045445805528897805678265212558543075845919779561309559013453500731198767798693411613768595731429310399552799197859524742823196184650327223702469913419576273683442226411696491176067878987426853627081136719609117165518398362535708422672587583601050999679751672475106782439827509144590863566470956516991193585817095863473155841591256169636092694086200302799691873063400717251651200241398238341833507274762272755316136348650177035845087639468064255807651253664257451551506526647085595645060704869043057838259784082389540872859325838952184930806761675193371867969668937921529074559920428717291318984420701060459542540317034394204193960058693904428896924156509042197282712556014635322417756808690207686800954447679102513229951370589236771564471319913414027355291212811054847981976055275188127306954038259547272347510545315800943074617483875885459312926152685999595085749868503697170836199475153293816058334256992405212510233236552124071534326682837918394934474907515052220073100066851367109479885109734494739275819142898226337827706752944029855941459973215590639488855060683518256194004497911534113785030996096209919445043291544179881020455861669353097265376695724090585032994782628556488227714782626679679638319802095338928481407410038255736912988677992456391037700663315642909477766689733142861028732772245515827948798105210149257763529297735606259292369768853166797943081893236073372538148496653838602666310089979735357744478528865001714995258348427166557379426006687773036030775901363538842463560699922110571611381368206106987015205570846061705492855839583594296143615542021151185867410337175757059313533031980819772380569087663635891378309786764242205736155119103658428186279090362069073573275637606536968534652011051874463158586667071006873325490921852900367991687390686742189291048162367707063087172094539294283095827080990783080821482328735440173686849443030153445019375090098833362632357771260389444341869426765423089877286287369684934318715849185825257746358419215433185723644898630823748350050803333361674659461685103249475323842971661145124370639308260677950471728908445916323987479230586899585663528368582310117217123070017192547550214187580296949034118385773864875988394001716904946844053791774617153380845476601341049038112925824148447203996338467940192125444548685177509176290175955895662249521650833804044578670225384353952450793629358773349186221310560101429846607027571132554737140124777473412135920143243559046957881581202367938205958131252586952627794610232885098516298541354528542433171923229313529879158567030710231605397055046473746995831926662865504100482619997604300403368435534998291222204052739731482299208749409149788396934428184826206558420413928566764634169357997944267002617921200587440295226796650650437319872854737838401883989904146459759653452700897343608584537487303219047309051092444619310932128791576727302373797619140807171633464675049493427452644125840331008505041322943292333386921574425724886162967019981340734173659451713397427094162204966764343762300910218781084835788148296598967838062791726158901096188705618194864940355757997538949564905357648288679325624650405279362800660826682196181462868344639877528201063508275086320378054400155387559854406769057992861226325406428347664900077104575628997918326937310130365471362987158502433403140156356270634797400732636704271934294024994095105287915191692885167224015540882536776760679664160628275940523303099649956761913698327041185693640902859794021278169623598893534813909270121271174887746137316458021299723930140171399192862967261114163474201731557296208840410352837115534157831645074184716344822997916810738681221079091911250701324334838056535108004068933341016972158896155523782789390072559355121997467147566261702142149735142483056984366315666903198616036215566851758315860399087985942175936743682865875516549819993409454695358883300501600518289300079375348790684037494883694446745322139510777297797095847997949029871834804993711107454898560028048459231890411665748154454035759156813507944847732348777887454701983412352028296996242926929117214411600299419173023943618281281721903902194086008613131358757215844185288003390906960798533808180073605000063847478320631216668967799582158395659490527716870857144315923309330430775351693883091440403013209179043008274883136123165220832366375686895728547983493618120023019964909867061962519129350115874784807981644405885215103127303339113998614281371719010194649557177564476039500843694499647887831866135918574951269469710585933859414893396786501198395117518463031107274865508857115648282952991046751322816834019937229292219762972917072585653618277253843595335200533852312162365127230813289159451668941128952115351222474358054652136340194576291481402872403460380228203014898749447082301406279307628819418222802375851858544533924536325526035191818412853758585334166651609644481025942339776271122146751871608344608546456783660293521544409820182700681684478199597223659852506155062382273405919019324865346269455044801100394004587801229524396598758691418261482210628945255748347155176737212141394192240421627144741943452228605533133819501010811088586244610052315650012426247473385473369350285692713377598044273310184818981070643166639825533856827412126308839923132626218136073555445585511282159949565297639118538892494161430890359498709014461953330437496256536017059984227504821672049873251610373374968504653868298987895517613544910641930581198993441946713832919649186933139504632530086506605287121654204221574306607157244109132545587661910421140248973972225383637026618526013282670733466740077812977204338703203824387718788553220740351046461901657440171764011822382897738932997724063540551140442863170872537498087406610876756775768104728956899884004353041505409197181069747006149102138838549752868988626062621911254812526713920123788073431628351791930890659339581746814719324912679175047400657886333021302172044950845566157545823767282379978714685724863748784009669454306638757329631304712961208653326521590061010011534417578413195340838042071984146882454367703664845418985799147035696750390461631589441499447546514615640223831746332052833805525562493584548595389457229321423856592339356790952595022121309626043621471950591290730281952366271366264460568519690656818863672325940678363823244680981187574822122030822443779980518058176207852528001387359826293729781583710046653901678288028614668781227349890533844359108830984279433849851650037526107579219046113077885949519457269318383448786539732890495218299753723250851507246382677960325732527777992732710516640117000569252015152071576572590009356346662576732320657578604820020715399699417032158025403540016523873931270535102623048922782993987107286166367736478043834864760944778769080611829613517830341120963798255354396070457938287685848315570655633926969627583227439051512845622734607809675325499322311080541863869045148128115417382712513240857000322604905815274269920401345471990079884205435365166849496725697765327790620657310191255361446781487691224888387602229242905236489616989327870244643773754402942186314683882229172647400763908451371376733585557999878623380981737792251808142331021483958506242980790798878006654042985926337668892273676908520107030686088495310548126413844800120427641495080079522165476475076665105667956337395328752019925402707011427292893588499448411576876988425214289449316144407896008522815922598268199192428218432735137419440495435846902616320815848641877971070779677504889287507912757276342142665348946790828308475230045287590123404023114084819477424794063412045429971417932249622230111598847393539721884095358615760438831228545149358854449140544147588514534095497611227294012049632210165651194514797603342702038737318799820001842107613943056859181159189458174891159542175199251943032253055199557578845644576935085461583903790014811021520073528700116429663718157309327172251440549346915710626320101652178389545334789747063027686948484717899773495842738646373442205395420445877770965095106844198075663630359096800333042052659118741598619343793818328652761011818376564469504302497266353817141762925343770201154217154503960214109057905630983792696923636367252236395494190738210093705470757556383350602591799036234486529528467432133813735453176009726832298194962271768464860098075697766380301202055111520485450920258730312511317183427135771163970766830391220184486323317873725228726886290813130173758608450979415756690993326232731700195737526779911314725473277382137383170666491752197249504333935775754074520757144405236191188253456258703108339473545782747713435686672564253099185529458019877911260515005433002680392659104218008873950833065396961633633071441612346328433088399848533426956553380328856353842013070360288417106003951630664644056070474226053964295287087937213972765906532392874018925257481105999310913784037527005462497753795486298341097809968765235917687307134813237706866678097329169751813892080858709863882524960291095347029695385479767194626842279400872495966453965234957635703850198270134475670400829658548286823542648723790811505554894091654620116417936175736400096100270298991087923836197910149005653971903036641817423459089755690830962956782925157120221723401427595591848758575917611917211302235542477866879024346855972440297390166339550044647688136610146221105370831631324393388548556317430149402876067971526591731861542841008371840597867294827822464489961070505451813632702400435327472822931834857313842651307857274400279470496605820442255853390451963263939451011296086373378154007643504914609674666365554685628116540204540639664864720010894473491673015625905082623038275401967203968184019558503175428612801736585656101983563382063083998945254155422711762093687526767058813028698771362543346121449552152769965608818613495548236971882665710458710729113763989195755583717964205782425580199271292999313750373353625816048316470027075096667031339228635092199925699512807131682708296788774333225229498518520748404358735465280159198914857485696871738609005064593614139854842503814043229137912706618852205160969326741789350817393557287049034656950465771048944911874264593911132715348534706691491871349360392551774987506857339695874899005584679757072968194901346684120252257595121019119856075932359470024844760047576602396207231768267050666053162530720119710791337379513850028517104073896141302572830362893948664837466811582691961620481302207328507811725805658313048448591628565619365233657519385002844677593943017734304206563668303956574350128280641197886135294099422113656753154811560987770626438877333908720807523252875340263208226862671543568727301790832439843813162973000383052950052026154475882440459398364012689054428164172084519105368750101370119768721108876477885406852859803605555925841866885816695583038027449790874665181959991541028997239763752059298985074389093816249373320835625073094642644258390704286940013683456583671806872667816999455781288461439928950114425215595880059064593192332776627301417101569559176261424106022283052401459287116380986670516138007856030812362133163012387006117049520522401241541850916918457442090114895791245745344645130379221109938894637391947789209615650240263560315024516555765773662111563754959020949670778939269750262426081192974903718152471758386821821313093025583577595712289680508651258316530589748761974750492902281784142827424394864610828548644124303674862793424799414833733530318440422416673557892555768986047800513123319525775555834899729650727930099796066695684987033024623288659123642420259973673607771324444752516990776692585510087975843662257275174316935746250066274510448153636326718724610707857032927327119335736200458237851248932514207367960307573164441683609477040200308927999882034011260632237852385201149737694408936085483038337743841349377108767567525279207746808389035492051278615044299845112118221957273753853222335366916162621333859808902126939045190224394557895811135773868153851345060224642994233364172907755284608587650839202741701085365760184108916988062822964784538461827050372526452927200818374983385495212631372817263250870610593148121782897964656242818962006212850530719149047563409603850743592629689495838694041107631430900974112066215048539306126802528661705309462298489933560665297695895537532526655897831456281427522859583831925376482680975638255690821277249681718650228433731912366021304771305312299076448369422850993225437227401213956257540779471817075630802160967323536545481627742749053070496347260551294605085079490952700144527259488369167271350159517164431739027838161325185441139668371121503355596201902961317502154961900199687770158150786244556189773264846145632825010212794276014175274534788875672304130877560485244744719263559610603606964064058207034398356715932790148685302997837065572637179147821583863506366774538008928239305981615825627309852014591739357256056152360048065600477210365787448858165124678218808112966146119534282174631962756832460680017278759090355716717380775223468159575956407162848172837830593704938281649045492673712501882599059281471410247922269205744507688902404554437670127507787735947742638228982479586015053214437494378044712583658252515922998508607843230232559952331478442493040670088025218473798177268920599147917626832533893892197176436366639968090388260784613640348296519409062143268222364984878000076173403004607059547535447190560039493129325319656762979464457823268085839387483466924043226458078397817876594901672561985109182706273220576600707857593648272929959516471399228010587291214989377284306184358116167503617697616241585556423112854568964406305599958890639894713813990666344194705189937176402778252475480726175000050718719193849250145821554983133006495331734649751762616474080357737176921645661474204547928838305707888072583224977955764537798964514738745720687241941291032419549180681883072861559806328988041612491431578432134869740117506573055129559154560925889458225597195144173665591305242204698988505612362614259056335495583190425455271916850989806073573906389704804154192600963849828276740191702351188765753832361656085292607637480576200540591577983157505869151063635305048056411953427114538365077246794083953276552893356928679775917082603656407036360896201000755559340041165933889826728345481340008503026880600976119484569649757787311286042278274253923091343014894221184451482508698747445830452284826903393231932756118939189976874230600404790610844717070316236064207646429535075821942738915737856421222237992427391312297469926352936127272811463284149449344349267123219027413049653641387183448223012655812087035570066368909651917778746552092859554911818454355774734818430776668967410301600155509818190469077618489369287874547507105639800432784473212654109565332765826118546340013550788756082829207178721981414349661827366929553061298003605309572820848689247138071166727425693621179518341132951907400041129460999914548249976482336836992216308684387248411774023992946778499354999191254560883611411889611545705233261026104261662045671600665075634031669517561329409669496697034986666949571686209529878424536057433385718006168936239447602399161842827556430050411874068071463776980070933621236319927627935885769897069883229886555034218086947969719492129313305183153609145527269341243325678823131062291499491174841260217808300218908426974746075770213401370490609375835849537410402172952104055709888526105501198032701658288743497156918042562808054332355424227198798661154311162259751030382158803065200460432181531204780937092033392587000141927315190363643440672083124106180770970364865641640989103998194175059416793809972140891687361149809200831680378894299590215528654865569937391783789705776989006605212435192966304157317608825750111256726915208918050408346544873137161795686146724912272625501084618037531248869248424387371372979278055700970800881152177843684025004391464687436764229770776426084314470495166634308497315637896620305871341332864648908538436219273310661788347594412928190029992507812192114906663686911417489507490742565793409216378772029951130734212869025738966971236334472613216718237825023040945267078649944763298832849383401480441863631758181718506214063722149895193697003017926921635178821140369560530597211658252739300425495519144039617714109011580633975179730104101128205577937394806096911581878706664812705805742255309755874462683487563467168522205338200099414010117947076560303561093132377688562606150868510799266494995060036364489643643321389427568337929926587594592328118703610093125511078534083485658844404571821486396171392074774535449897869493556176065487279376499582968148544944052414330202885045304429802853515660371654109379601766857662053087985516694736886732912506442478137557888699056838324514929697866652515963199785975690709010250204315660975759208236034214758546063815841626724784731441908071109625203118630218930243711782914291525800487700501642647487510954563186628270952103838519539496654999795427895924732285422133626010635903835771124581584294195381109521162379329879404184713964861569970418074999361866756583682368922992788558141463435266183709843998024766769535522455162112375120478771264834625786086443687904596100275334801422934090346438373039027487957916777908558328761377369457392425573086294403294784624692936990553581831329465615560176495334325396567320848613184150873438719978057865832052473275485981217847108956451136943815883515436936393338954117736098289025850188927479478531584385426309361380463942892432551425130207366868302038216367356766819278295662210012052603961286794768099838630379794418495704176447529416413542139905193634919794875331752592738277694971928282691465510281107738256595564956850482528267889655661971914561275671947578599156058963361704190334731312445983094354487344438299395432768184078720621290266822979744416630861961482216009654591607321351807482182081173856802633062959965191978022737880835051253304203957354550048241607715104717415349860540613974902705222367783979061599192629618407982959936037239444878651908457752102518237923274307412317273685075675942056653539341578263075642072176950994440984736319550474846469140076265599323721570232358604033339983197733649100801491108949031974272275981706853183774563365988072922929512940328749523888203225477686517887552995827553809092689059332982685156006070704201940712042825962919489801960953510641639710923227759067697702605024147941516676401036791745773542952600069395782495479061659239481826171389534738035868825852191385154568733956317379091898244748899034298567889660005637909300101674666896356854296956036956203398775725416699810836200822998475589651978165434902907985944538001086741047974910556295017970792034544408845787634191353802887553005751939242095040627067779470863161952482610175752488335805137541271213170295700073849119265783333857186219755161315084507592224272701551058140825481189509994119735365371980316024879909396577000361159659424707971564799382227045030741699942699998343249752354634518692295234794638708211509416909021684807609518345881784962540326679649449622747256051492848266918802652928342798692328821149860081876370223671922746801604852000936786785435248732137643697065804006145451888734646787417428961943256501814605868135078479520502233429722845123992583075233604465964057793203702554377009434474883820874953029931300643673493890846339051119414535371273510038148937963206339119192027330362656646129619423634657832068803596728363496998643474448893987200344988232473000975305338057600918393538429639767998209274062709841521099870305365524083218880415730328414731196989613867771915995395030570468982705184621668655336951687083600522715149297588646209366720145034377847511603391504671140735057652923932939943746973553818935310686799325484051370724290531208296602092471244487572187582070798621975446135476613153727575731528772120248659953999233508432465520469848135436731904420391554284347170302539334552639517886324308779756747827654331039455259712634565863522000217898891712996743197815105215127662646476871444121227016313350938871059706070472837081065515240111545299406619052877625371896873902898115739229145161793552393307656924998145646183586996416564686787860971865029227730018137154473129410122071109041218859290665270973669865612183997279897924309028485010319840433466110203364259994373660982227458803049997523108112776102275446461348733356098344096617046685002260877825910933182600580615496008272779499831737515510310870317080265100204196143445358266496356321405058358782723090648697231154213979592941888408750420461126199148673628442916374918206757519601958400032104645210468955250576530607362716660653431080883667702649948465836134948437180855431568103075200922302965183391855149128792357381938792279368042061023891003353951800052283398206900291073536952379669289358702504923440528122976851454191209949700634873616713334072017187478713174968554648806318944806055866281183421382265905635922204842447818159666187916480190501037380863320034407833343727882228052652956265717264101471976618476880151001185318856566590364213932801241277835445377108249504992672452439519677652883172332650898189034863633312435702272208587809954718449892751419777583368605007069856078410720561704690452136492269563172588868588462625098826714002581186089933065330781721316333712048993333593774080732834091765016233880444645475184948325834172616075591460246155526436740464720876923145206767302467776179939258199010276525678739653564898595000009407969842636009828769113809635395862641277995514091552612376664920015923522929779983212004082849957650367738756863219898026987077706007140363522992528895095749501848406950225640733686396534338698745258119204965624049042123625036443909425850307322323363512380981114052221280071600828726939058214562375656405066038420850886482584828427461868492738662190261921557057039203094044142980002293777472302431009727919418046653257559447899776439064033618588730848079905787254211559795184955499598881887451245539387402261057701602409633348615944260650351496671680006341559102726317007829678890418525035424963163952781329690032504853733983461620196013252871716553465273587692438658478297411983192260356971478551045244357293060697443614175467582072896389675392020950001231067319771611511749502449442623721990771408226676871910446399774971860967379065495080537280099969523417868952606896877423707553822002729178623494092901917858466997264586597580029975202617685354323089918639514649102621524807286060947366448070346851548028881619855908030872483589045640652422206234360983571684810789079605846148474220271432595999986956415334156017077461333357019852015311333758747548831363102364528087485272786111611004821436473871565489659875682487013535040447745485695228147239735761006759714259321228537643130581643346922513650702873382593495226433397221101644968830971339320427350566355446280646448540611545373544411854082587291760358559638783462583363374517390244194959433128012730108148702688141673379725606954306964408078763387704786801419367853959495400880153940147564617182515644726520257908363726855132072531756103392774279161505072008782041203227735480875207056012948013446688961556648890370380831594254826487079909896482071935144626811731825958806619771365443297229211599285596623361843406910734952852771330187779928500295982115423458935578719072680352407498466477399752538474270396249249923824405055423262890460338034234130611420272949990338937474581234591104475433058127960910533886075811942371778142372037252386754483517156078937783415807292177385456653524510030680115849961670513570588316647306237849790716527060449164011762585277106449927976717185564054901425435067514621394937881344985768758632859825912511218457741655398961641050685607893190913616661921772739175976169593827495657096186854912170070821662393603631094612219067744322307478146387888323458122194370730901812499955559429230240035893910827551161076781734197316459517462003052241282166990301638992557528305671470195853070374258574106102275528602868520127513186065226531399181135558906816416921933181664467607950540266592461906429437044754843565967049671668360977259199748106840134421578899221126231391385708527245621408220053426802557830414696377770106318857299946030813781046697831647633067062228607684743042887614017732116157224454074377503961721627629394813052353242735174390538993192800244573484789352395382328308767355353557435346616786170181832391265266762629574632069431388925713063824227554339260889192393049434031249041549953791568088298054492683490380501545617552538060225698873883597136262556988527541727542251850757137257343528155096706590756545041471304464160152348443233038633122025306229255663917590397140565072706847059035485818932611047999455891487158129710036676096370782042921020706735477261458795313028486403498444739078438551270513799864557074209499955604905856474345777180796486045792829162838105308356292336872267295713720566474735660965236406415154561912114452416645838686930096044669448966405551215168493635481636837721937150018972780022937590593012917348505012824462911422194666657460652543386782831628796824622339666350805578027324320142925053128274009508527453413791197730763804816094189520437608676206762663324213730204180964368140602444474246571045767030442118479555087338752524252573525981279831574776771735722535559944287540929281199213201541355233202944743444931013232070714419485923906492269507690113061495846558182068894797842354056164651215806007157380668254202339138082733419863183344385533133954851838012646250306708194345919305818239846945455009832899774020673430034981957591092765683761376961418521932475502247191832369384676488740361463319724828656456056370496517076850792654387083808835212045793954804970618904265425360932206198263273811727968868550020147693221137684486103760723510690276242511429065859801782445075098705524317235461892627380448083533415384571891220452576873647976945027211479232703780059696621747529063532746876372288197106309128317763398095289724266321325811189738592795592333656204745370801030071408194571428867570785489971596256959701822773113278146178074673020155656644399619840166233869195715388869142163728871360799858820390816797830712860017549948187274722279934248365796864245483247407779580673012962201627448820871813575630196955069460500559397654891276810678216903555778389328639472594082871655540105389801997230568607104003393374845295113354355128427126464316117106009218016204315219076257795190823039632477740471246022586821073215730409138465155101129183036261580435821451758506361545986285035574337500781966310247970374470677805327298430697059198425106312710704051833874982046401662096800111218570498819130480206458188427143335207207226947486045622422103196202076058584691804851451918895216965990766737223738297695006949180579012327227183685526241395358503988366625464590336431266914600515164826018526477771543107849870008116319453809804735998675387040063539501977553603195183195114880318189661439944413889861895132818895548572973999101773841121491703022764256148055734441076177915984451920847773576437390613120180621252361733490772075268612535685904640448505132205964421271166308345100910075773540747991645956976057827093500403494953700798465434773163528227747914947470752028990777282465188635094005454887172637261017176630481725471971744175051779587489968909878205210461574732115117843936528620891762329880203822519712474159004266512631732899139918089590661394683472043354992663384127532095977844946887753573458586572003709480152248878769492085553938043258805642057499290130712352325369110397218094129906280706626831542078363807082026963680474924824473469576954778343000974172203542729967372064799554380718016221547894949351416500789396287206327684814949049454274807455355960623637815134899195469026077044415533221546673332570937200781713000789802039697907694479867404446660938405702046499579003847634682655688397273767643988399474170634743256390724539478753808077075010660023571242611784595800452688284839194906831048909051210298684659838270243133322606020401580131343228118158380424699029170906486638301094826396700764365367200770442863941702667835497007709025122454891564827131706397088791510813810282925867040767200065114011095226434800843586775847489026226258667806381929389992391939256146995575329022322290934866439529206394998542134370780695830852009366370192653912457304103390112364628345794174735897650413580169572741478938707794277333358985331060140881860872219952179865173942412145373209859509439619156573081230820282653712740349827589280535648996496285667089813722552114077100511045084412818453447510680684138304084617966697611151597830469216395209831088710653528113107591562350844785830254599737873215522947169940743652665593278261621076788798184281901681794320519550201727520671727615574978598523997842289743779728632867883117951766562092340692606102308127001799184289599209847370029267287776016303743346705346513315023886405979680632759468889265628371906572679956060658457878841239027764986603461312839423119842560518677566230885193785823851340849051401165980634693424473778561252010277509670591781870240435871186108812601470094515373318721174305867218341312647989217558830141045102300981426143167876156667992198827127265439624022723767243284538302620753693836626460321489950812022296943276360373813129323889716592742642712191803080438508414385756114530937235301356503530460599626148582887377675110456919060943272678404124125069658903679696041958926381039475908992932914670713972614045915651729024444567119106216875267730409725607895289989942405778159715681251996331911755063282082153718332199181850273187011108043769493771666386705881458437478437938728251609361334042906691485463596717489699600283125929879425230237848768047025688873297580875352792673272391878072301649306747178327306488155896075768595232916149844765178224937343989651387949814339740279211914744732013038840773232969619705366809319980622464153890514925939595424538173451286300277983173599977621642423290722784384857069735976048328810215970667747175373545442060254883184968712519905482058455746715182347695814041861734577598670321783590604593110802496879578442531521472007121559416798497002749586814311963663965338903394345993792555162795179073017873024262178067638549747073610667334527263588449423518014282226375022162083260009349202027163196069259509888665707366900758430956989210718282611524498263196978298736718042624172481657361910132166573299458206183320655491685109519820013475558522694752715220616094236386987351262178083490918098227486553962356552508395203493411708420338478247273238615997354457514819340579186358857013318680382429939854093841377265935044881769642432401663723616625706277011919936342619469589090256099739599195260991154881762469805413469879913565854048379680502443535547581252011672532717241806819399350120279454776990173051225618594591491539597785011600778697084732370950018442469155787489244029331282516275650720773249787700059632817956744163023061821305489462775458634508836397386561283651480746587517603984471029555479042666781459547243830794206281847282046168784772959171377651296381248402848395914332953081004620484139350008564341366894128061471859100560708241866269487651909792662014505032349010176765612297521122004165470590755295294617262825929890893925735937063548413221586572492700779279144776444732531497663874597676782575590001350363462349697924333709850635588970054257850242016995413201475520386712179064796914661161174213053270009585581006747746978924783722471917040445494801437237999496718280000153130563542660231996017463175697430278494126377230631549414687712225720557707499204910817062556922161908606243127247184554279977534479477966385070664447607022856151306471148863670465170223678960785453331844806215500727656002304687502605927206277538846573724839661856608698077451280730075639991535774934807227309547031842387664155801218847063280484354064570652576241191767781915315364832536452304785957058590523324555602998384034738033172159133379640760755053597716248844022588749597999794852960897150582787000880237943762197812666726453481537302122592966697154682714571437040112902556622990144915094134184631681731353485563447480761773453522009820173013229029886372809588305644446947868615008261403554975988601077801185719153632122953154755760853363532689210970667387881806041695646616021878432083739125191855031331631775728724129507424222883328989121879057382061334950452531984090666534109918008569540031894137074564989652826680239519215948256466577388445052369595635220934766079762385098173920696704958486617209198694388757654723679607808305728866133606013658172031781652831736241445242200887560813519354069341400652196310285126310983018478782598230889373302383919129781003176729382343290099546183477846828382012998997144527064608737350029627329911040043078439028715256006724519929121414612336381770631466139654289792207592097524788830681416984582290262993793822388939768399160036976981250109582184024982134276085412951374218775121856229792421026725742604690139544354156534908605592249843947787677185190380864755004717086784853468720811510698756413381776320464909639495807167627292336883984699906184943715928647130392257979679008931601067672438229226291370113734348830110280584331245178101190804859552404372791463892031916340762655414532876198088156579337776450179110749818120907778260112682127149446912439747112053921175160457169337392110354488778314137920613415277719093911396556931112554726913973977229250211300219573204655273185434578074089795310156144792781028829904208396417858019481670091294881974221171888728919583157969473988463634124882437838222369165467452346481631356756251383485356325498821769826935762888749921515417550416303182907684736186633082956939957454466512820822882099833816969048568283368924340122408032658952468921091051188227442534281624073875636817705257873428049125019494022809044485222666611931488173920662737974308306401140912281459009945531147536083397779715995668113328810630167554095867982110988063010959877474650849463840442599671205577175538889381514073735663053512525918097381532939854184170962911123861910401440022973972719355764406084593801396975545475069834528596706930917247548484798167218158794078093713170110965497338760494420956690258690506287501894194163151065960942002559211589811127555193776640086205198911953605107401787651934639036318750764941226708166729473192674407294516390782120120232478249774983660272312835690870230092890095542272924691603966213032042949789035361178570488523422997669695126513333645060099241437385109192268085095810853933693201294072582640641655837859982950829570812191632618162450873406446380810716597132005842278453253864685855722963574666847784867890609864754498381128800399143261364545930630286966652778161282982600675015844083396751757577237909816511610133238009973062336487611367190411082885233326481294796874829465109431898240999795349598373507792895522414354545594831536542378771780793060524730928423796849397645816982710925104367187566403414564848440667994327668760349548305361245219554043869658149014546931175134937666873826927193592324082615686968102353101061962832119381147950327226884974792174904830907537980293182536432845251783853258177633776712226374328150365980893855185888400646640718940908710763543997729070435473347653650671945321510137033027927670947828829351946909075371427436328041179804399150528038668926012162735166483684438416726475722313870889450091633333867889651510896472386247011969703782689463809387639750781627548706606808312681286132096640179724940593118353071214058130471649573358797366931897301378509280903970012394250003213397430076221551017803454090374652391049106550427313687669267467753309445201855960160841933496620829248588662790800545538277477674527325568850294753380258090772327407092522781663467877599470788586074802601687308446214421453640642611203747086335302931250565614076082775423125132493962119277762622363162255120390070358189359548786090133893453471249110812736639827266794028057824915865781828950410574414091493932968892855416557106732100620334070558844800116445364523332061943498554236894181477601199078617426467906064307123047563379838530419210940794051462227969428855156915031643272957965277590653222708634614915265653318524576855940546707884324142234348932760874511237311439869197079816508104633523047756524052521701245407405637906427840057823615193270933837976407774050129484292835774143218565903963008700287306811664373757659362996413258010581747341752888348977732154179324703893273220841146962099933038733840773194401164558129271345161022533488107074961064638951541227270204156660525227571258520406775663755361225726496592163239556633812330552289989172101548337042159235156882385951422519761710835787593837522953848708035475178579834703240018098365840733617285587668422468861125275255066360830332504202494202897732081857889690163065014954882937083415984416705389174080090472099860793190802425201678256452418598299987734441732741064954815668997166428568650519835852993464417064866819047161583445038335451524968891349729879963972504402626301479712566718595896434018231600392592501940690679912100741258135240209448636865189137102623519435883151166498626332452537265180596815808533793849747993672928932683634030176840689026986844268519455674542541727170977920525797218148407223145282481121910449055397643470389944636083313235616103767662909728943554978569863686791159209485246596275074306708020470011769169696547551027712294782258195937084288241418451740963682489433121227347360909032697258395480392347671565637030858635242836769545495414152515387816332584424798960742064523464452258070944539377947803852711220407879937138155059472311506783783150040874824850367881538279110249285837516571328561269041200803691601365186481692177815021321917441884064450926893277962232438756687921021440968398213461005939501725996055940102641093194832951079179956351507391234483160779768415427188083555122975754672766424021782737148629221865799553860087407587734844672943197547454128279267470489327973068577710757099445551282127854482358736655161323823364551511826629194981673638647032709558931024934115070157978515643350579244802201781154733383549584041650118091331026557470046026971009334460729241452940080147346893660805772494489774896681792393680656282146116089418196811532659906587010689007069464365850550502549670925775569775317444034102751479455755258604224006807539942488364055262954019998650038050157494546624110696569970432904202113754539196676654319958121169589458406958028409359538285830050524190097151244144981607441621871673795851148152369252432065188254775879833798369218040360507249612177952795430400592233672306367230674747285076118843301659759871305183369446641548524872056876271716900007482031894020091183325618218459224059828686730299550170068500697789646383778243642690129330768169051293693347209236894709046286644170745731946867838959532109065135434438602258415852002607369778543909091736177187048088848437041063962758486765226698552834054239620108418631526358368197173946739231398428491786232002448639732279131483465803085348268685462297184260845289083269678511222488693293330179132473210642848879086151828970360726159723501888203623785567424819438418511090917539089765397887977527692601215274832585240615020552436786408423614153449467551151755655182660352065443985111061258308435476599587075612372094473744990039783719300973658540050901297059674330105385091039762164114153434603351297663780173311261296265430561882097841669199806161835411785063292360601076062323371952291181485153001130621363543577647741594631582003451102459403836159131632978520384187864611466053888907766554177458211605896135947232307596000885537875474878697771515737385854171993452843604485881359900497253384462804660804523519225965632924391225728301852185639550972364431889655004259044366592211997984502114641965849344888622570409045060270585784917837729176486964304856353930540593259785630563003403379327629992245257019314950756099317723767735792198116465875140637281202070096324855910976794395108213556637719207901713881077872265569243903877791942673661241549900957483637135927803856777507958887439387391825797942563151952045074708921375001021336922014190984720814623447475763585334948658030588091556528261077874652474579298696683450350126311013930967198385200406812985774749979269271599467564917561712758624917170953164554135585766791560483777107442332069423262112628152034594415066840316306871967264759785366566267787686899575861846986633682271122309542968905239675067980183592314871508061034513232377740639843227768145227947502905620611325188011343113877172394299629071235863806515510561252927795967384585485551664378397214379867896285856677449914876591126400927130670747696834843719045547630530335027735753825415037885240530291392428965604017292679247901786220858373851774419628247306059631077704254296536807118308433741220729472437139526020829331726458121709304740119608839535233517257283731126920320913616043070304496069485247305622357800354661078228227380578382907368808653919709836241709983764360818513871052669662448379290821536706957585329204128457707172554315515704816926995526379686045847435300011377177333300309897999338622477787950462264574547139070992467810192781688214865335400964784610549840220866462730007991320409030133292206677539169345910095621697108227312445129602590785325120625737445262389063018868711301413591017329395382628125710440937942165301816604021542101707055258022391859364541326587135568607520490654406330929090343885084484739372708084668399252932617568126447755206985395237072013120507475243084885431149542429580877834042733369608993423019777756858241208820154336869188229884633498415534665080379266259818810490007490863758375301212192326655058932086374237460012208461680359137703523874158145055789424060976878339715121797714021912417432842152859582610352575027988218175675400353910091731246216984362046041176910961988074848157262603814819818201313257924116536354983444652074410280806782639423467249917145393149668300062162433023754772658650023923714615573106357040239921263794481860625670414946905891263302420056144881506260780592653932687932805734072311176111730728263031247779612258702864547775311224055581086470866562465635770405167403097562844923919274400368719423073874061649968030799851100721327987300652790696786926578784788992488587744520708064940576458352562464125894186380833549922791894945873304769868685322999895541958176474499572213185563129945935627898043607270386862064427085549154513588432836072889233871901663153617228317334324974383629686156250752275179227676966551354065873500619861318198365222806822857039465834805928009921294466098648232854274585936071379518041587250977176068159385285503018028077649049028679802391406103091048178851399774718741136482506384808338669143901341267257978853214800380074966871986214163965848554282182943485100444254452883366780137564588095237383297835281107468821599897178849801155159987154593820515651572753404968345869100644478693056105182623276107515039671601901896858790758215992936699969039403188093647134990533923395274293244149868987469015209159315053313293948615885945380384374503098998402375124291008796885039239296843828998391724058202898788492437570435024244405416466220236135119827594225407242140858720984942876918239379640649302812984186383874046332873828114293436931197050756330282398788697369542916640176372438578582623797856820625036068244709135856797127173153479607162680092883462368141638738955093546829170417113266214807579794859202838317713859628947540640672148441128543622238329565625374879686094848571353971937113614950223466211837941031886602516317335336552951868822955228751697369086346772095108018087518299957620046133720888648634076293196857249301793345891729431297131490745818823223478465319990042142345537822697282683500155942222929280771209913682614523987211665784099727510442044682580974538039577865906693128468329696299900385333559553831367067185136921783111623238157936858561741085299936665191513361255249094548586640380133874036297628007518002025745658921929326538392116186035630039976754471985583673795629554650944751438648373773861352685543570763875427219032728076859205230511653571572093432666105080404836950357873696202702899308031816984031255981029051114656337190246556103231957790983117707225895692205998089817522225147790285493458727442208602039084682827694655899957099280709617492915878542221490581092120864218310929999156833221247555621766214692274155387416793173290633181852724360074547023355987475731241923664019104949902283655432358740038082846662798926846762787701528445449320539446752781352547465306668360704072037269203866927674905916267288067255527913246443690243671432326110555641174317070211222289289537148990701039659127329686552675657718181025067882778027629695353763964730650872527194648172302063908318812568319310834909218310144244374348833518363722375079795857168121215200585832588572594130081554317615569638889681726348908357433820229400988925558117991495039188975058746019450983625733457337311301448742592632328854236820678459440600512531645874331888127217975446500898591065771941341716228339714045314246532883576732103178611733037637271656479159405976916819328540785015666426676898662789979435713167757362437808125472256705181796782478417001146648313421714438602918556496654792871934066455408974208219463298170668797518956409412409817403219257189570170407791279566608693091032080959852325888526242028725091576112076350272858160568386740307869696781031160486598842346830967600189444640366182379684836248237455010253567713328532807278170682519607703665745223045754810867558836156267755716215679254271872617951408112182592144824561745439746732226673385528949893615549513016136503030412702388673091982813708042465402752103318813555930067812128280802300215676228450738463779372202420931174721995093423994303510954856500237207334083998382477500230822527854014293450373156934535010309909065560220267938743242468623631306946149638052827413437240142231820210593615616712703501074641641404492324534143508105550362244440786387436068488774497399624582326956579787137314252536818926215125649790562997375859214322846876302690312791664013662615823503375829087292647465438956320502026123290073860916112371611131555237985453917723300204533321834184267413126334398421369065078660333429214254521053881604379099858142575882328088367447791457270388316211443215757782487436445416704147704771280453488602303581828744876394478085043873489525887364386375898713745310462519698490210743327532135412890233607046874667910452823751523016271999744048686586964277668418857905087131954318178940947802841161436896052512615543431438770745026382495543503850297724862202868708792862852745222586952553780294048867978394754162381364839033503972438848528008233504038107301838691812557857645617396842076854226835609711599547420632716107727077372377243146197168085684589675837946364585659714983652922774449814745713112231173828051691007026254413933496755232671131919134173710447992468586277745290017917074732206681092672213952313446552872550390907988210788171427673318452368775042682846258139854183254710494470039588937447007953317047318309274268442364919527532227727370323624764449202722795084838211893316522448567689507747384304456847991755537806714033266526849481510051184222281155806636807188140170169869244485168754009647613785818161995387939525410745317452954358887826527813600080665232533396999826406121833335004071456976268611493988581566994001077878816297762143067683721402203135552420648922703528387082711686285943236523707419385427100397266552869326221107205868346915848592284733092634419583831845785216109328760267007367327782063989395492467639945570736918586488235917079939304140517512722340898485593025374787311066140306098662402577440258748616546258981535779908012962691951614389602556516707465068017578215955397041149031789215511572208632217629649850905784421470005860165861464807300973297422613194638654181761716962794481572239254490629941592910444786306682899602246706379431818362490243077413605948388250875055661066201957533833047548086586515909064378331606060692515257854129228106081471870121748339302978925471838260913650363278252537854248608826084252277915202638652267952650611167570060333317762960167136802275018284671677722999867754453742937907917696761667839381681762903994992148482466570059208301269413073669866744951534193305282122414170850316337175243638578877483435813965209555374486353047085873217426812166433652541639164967377096324477793151502216849799128679640584592604191263227792937943966238834706635466754504170474465677048121707451516901936045232319646040153565689017768426731187614775174481942787597899075021246874004615196141679844206645768524813111944031424948249200718325697000893744034520824550178536516489779981494129274648758533863483997642143720723523011623693967172170958185229885150022535479037009036013041231642779860394872739311520770771697964621973179316133342382338305166634929976102791092168919938036572053285412008771969609823335186275044984420341510334367114560693751046822137754026858223416167626059439130699785714743784783537372768972339474228458549595589492725693165327491567538648026585808811710919066591753980040390751773589284926886701865815659603350602409767577191725163402602193708791058134641667211842220050282998049377129671512197439242588324216075372340635700625557459141743996723547705535432614816297291947400672540308324031680426223000217157652940625316785901586598375389783799005546210887864011439033761803715716824355694065536180127876048741572056353499831667326254085121457775951669539784073387027105469079699693936111189821517489354636341645210801202122792475220417409021519886670383914506269978874166049260293788030412499948817068267786656846538565181881546854973825579254694290152719112295209088173559283254573197964994496838857838195568621617502799014777930549775970247658841748027146037350702185692731246094014646325975238138006780758553098789658613410790918451232239889066645712127832543560504283271983555577481207075552057600725780691924406782736848156554105295903976559729171201462230638042822098259146949049850296908069535177981956924030621295712962112738473430140598480835039168764870928350165268015371541685387786418356311595143278748342204893659639652016094763901003888900692631251401149149834552144240767456944359640891692374712089233535865912776799463283061354908134412461781095234050551580826200835779432199300564528905431713157306176687209771608918996891422969114609938997446453586186581131712922171214789900948799338529269720040673898993793577067030458251199786095002159757717905227794647307728552021438108317853101230881841801750128449102575543877537481389406832034454082806595311831035633273293237204032279803727448186823643628938063067675534711948168030791238783660049854843095993831624107121813737710730939151214807692438327913384812750852330857208291763684728640416242376340354261944161829642591189710286518129242797848594809088766207901412935574323071345207640087089864569762803268058395653334289272581936408630164362000538888956337913935742843023442777272376564059333450306745987708630622204365228070895710665950870793921167118928240679272172387044635685604812589649122941953062941460076358716893334140594891356569211366833382713232756772489894539679725586584324534843030379376373606464952727859497109969757232966521336635360477635904822324898762629894084493390243768492263151727891645456503694116759633523415520394197912850561895151541807983132738681532859323335391250583576706270510164980724929984766000667990168621847765830573236184041376784158781066369645947759785439586608660471156594798589938757220799368035351919542356253895470099614793469489480358382485720668077598848521423459143739946299204931015175848373074812395367608869401048640246600239372386537608302071577428304205552927641587859837572616947613794675582948356387756109323809770564188939782662239947779654761500875692111666795968766718262061449277153751924988201353998012306213427680516780562500349421541613477385412946423272302076374592835469771171511392235746660062420182723864801692068611045039007822915594311761214379612195047992495318572545129743115648204843478739775096690595120141219534636670353083087826479312920177944048507299720035576688658274353515384709980510762647196399850452959227366197371488255061921846421465741660420870604107320898268410250150489999391044717426657706882803991975215964571823657082737824575982793639886559785579056138946852048471114187496443085626605215147932626044369075115682050215133433750053878858866984989245397013119931644048411724431362422767861248289496089532465309817768253973046721912040530702686187349159047311282948855216192499856268313829456851049927123069822835458592219737412187151285692990151949949697794057983133884667396685060902730420368332824636740769991131635980011497430697950493870017453340883347035636130272067988764117689263167835802890610268070644537027978143604748328412148692116746685143387008764587662506605303247984750920952735355657772975350652408931872809524875053908041609121223943642799471511763136117346714848360778937889657871910952534282741644926797161714047089323892582868000522486351207878032620111230241781063350501274792477058251641078958823969929881407054078884637058879203442046544279901989010186088301718766027416298719883427579634601117522226856036567199195366826013607359889315782945935872073095080295699635342153334607356233929355207358368869317082339029178603343278726507516196247608901132375022674353635362664348213044802217063518537216996446793878041889227385721432372665126256891897365838567710919580067710392983369026502624332895793668287290515144093198231457744759219196300391836756728062217469700742554786774909816285441660541819723362913399381753012163458420244877457325177735881234430409523690194055926118700362121119166897557981915850714211376411351261172501155446019322725916141128055827485176638797686124796732997906838086609491854738444796566980754605092835470125710031520176649315675178646309323483512006608652977939623680966693018806927008276603034656524530100772805519462895911544102740251128293601297133116011845232511669691005108050765945153137723829526960569286674528337009156989286023927425201598803605587812467113053238103785391125734419244920454733595737115414765578230834466297336510324966475294907857794496442293168718802107427430467592847652213655027484592927726000251895898713472788053595317496716720425039437892778272349158812945556876589136045586422516511472574450420162557419032523000655219953422880331970374144693056683757432184488248103178581786562096960397861199887485130479583115179410118712309834709212555479007618268444262029095786608178594196333787420058243822604556503571633656026615898874949959206511888321976537946273375159296264222920147142586785478182454631339432363813372979705230726388611163576330225268436742099087548466018290629586499205812842838268031955060099043290646146885477304446527030866176108134684380805541190640072413932736756222133752922424567393080909078232209670019396876962154201308713993980467946327882396111155645262080418248621380902979468882812415112376275117000397352970619801350230830422721341713869113517517303379081817450705403818770432465536054037443997633308850841860418481285772500385941438981322115276745608933334008904183194783442498336352034816391131640202853116625756459386841567135634591776026941038492623166623714190387000654916742988345111250001890107879544553573758653532583533201162012853507930306827439403649979529971108429820996868888603517246930360611046175699067888197135571011384145745698320327386922251144991176232018841373986686041001243572573522917815326041897360334529435390559942804085123694239382827147957605505478362976448839259225973590401201872598991734692412531090713840055039258635524651230464331324952579716608242363222472291933839054296517293859419962348314138881281804296022882807616266062810085253555793643113554302835419083091182935209566052692348332214287901862479490958224893840751512141603332408133347290124552102294289232601118860286322952401484052767589287740848566836875336011347505772039829821204620596038375509086754006013767879756914918368771126389865149825059917179741578232066157037853572408318200626651915087651788614930846381574139584080211384310946650111004254448878287159834760868240879276702605426282981793478428628483206186899087305971106366865180947278843013926481796005955079641807570838307128983119374713467010630897649870684750787474954603681454800837214099191952846151499199605150829595496917513703703818155004093094204575727416212095839861352703575857514498154320880713194589470428030550685867623764328892603241100980549440696759612377186421768110371399385771848633414043329599229514206883630642519420949739283185659708887404297387738471929938167584115453577683584008737593871471020879231826601073854065400552469087423861810769750320179248301170186116829692646125902437322695777183782788387355477073030191855739945777455257263650791958231345066201054819469413532902661510893064925643588490883086143761228006202512751659538083931672618089608766483099611402961969321599081864863506521074853650909007797865160330935911672538297046461062808417423143873806847036261502649611147613388465823527543629769337072739370008285615184311836129180223571630069472513214551970768412872812735946423156211541944326926000361687231813352353223528841613963022362391140355970563299440029831456937863829403459156909030616051763884374696475308378089837387532710755539692029580938306833797361232458172526132398023868293584820928050861325610689786859954689913483060149794758678666963397604098671646677952254560563828852181935245264301622995464223438532718441296055435483891813766997704842123169460716211451796380321075087025749825811666063796958815118265583758592229677870436795330251744391322973224260665967574407409200469774838267113256310895597386424358158874489795817457411901516888021309491560148789629519681223562496775033910587301025461813614328264504067230393135909482508632617686667406412176250469472014346488209342980392350505589452083030093452514533624173516098866379021215184275627142911441292141730880999122423056130936567341714255059465865906140136348187123980978147904120801383609906371495671495616919541195375173649514708616997211849525631707764566629391296891013613707120706026398705239783929265431292115088451389166724919331146208305908234987490240493980702585604512710194771399964395915222466473972082222909546433008136688633358205058752738339335929763520894273991231946323601094169262116840530089062561719739397489565580872944306003499464662658180750075303503101901607042352710453977265344623964121223017876099139675996878938065842363820155556039976709177103700323181879645963316356351933643754985516921494799196004809955328211035516963643619968246670579966991626022563848714357970636691082113266395396779849397338372927393919140488621139353611985371858013149830340776066230176470203080174996662049050864166464359491195765741791084611562438853053939392386679109841868808089315965099637015162189158011984397228545833629729838562610523926156462088979950824942255502630530386493765167201650993338853755150452499387434021322232791009834453527812592201326933061171169512051083819386903547516337614695532593075342545451238962610798964637971247556650833352855470422129200452719707960101047234556115709262228607690358181872304878128231934045643397720840023210930954744032658365405068080243262420352125143339136556574242253209176226911793499408883064753618798238163740065202006464205616906870953817391736189329383958295587937648335513249605413878540828771035675314707334243155641138046304274791375604326513725641124888680733392051578773131387112149391679036439922258620210179272433526994888501874953207057067700588753430907327473575837682830507835583577638724583582014483997227277696020957080229192853707669809858983853035311467014101704481887542203765680495938868421866479774522340540527396823175036055493575014093643252822301211700763288461680883798239467145936926810161771354975067853354511272225781405229106045535338079878898569570541920163023976873872295183505367677537674503160429021093596114712670263655702118690387471356420525703260385138529852750842536693964686051568283278425664348755397379627750919131938962375306235838186005587060901983649149621315494895030065321336600940364682584804492006457905425146718504168080343484771016840612525614908526224758448455453840741352221984199205173770547367240863438061921264038594313460966370467946974817693180346042282588905556149837818259352100913754117096292642728395717537658298722348139147037443735569279465241818526613027183773925837846387008114923238701458221178670050593628437332514008572185669915463547996319560923040331429262977329264960446679526094332490030576285831271090422533310338248648760654804234809455103889182364668060433426870998371421738906766315104050065055685120003520423076505186142416582045077223071659245257049893390056346739380258536571449278750453689098628140348446495057355686165704142876197616862314893355559943044494665198879929667344515022804281636391465724500470908752918313175263448366890369553426704796418303581107383917063214803683892160689819595255694784631993062212420672673782351550590627082925588772395009229537712300017129790512797506495957058313108574338067920616259618735882711240062897444426398604075179143972737235964526150414119211127469863320986785367237548729898374663872945899277212933523937532644751292544200829903491210629362393428087017227798876306209903805809991976329666116828815517258583123266417609977040544737398054269198879520435556521658674595400637749094993469829568108464319682784091327683379133010613750053238162463500703386362449447805013602099123361094830463138718726560150131012892002666240672403801604319525302170480680001431174404656515989465411230051087604659052421272216143595788603627856754615081620810013381754238367246080254989745006299035602208500128329248223202865774224947527956400856932313940453909658557253160127731813232432367859837164431481392489256953962165493949583426389322940318124974298818679720802271221488630875844396093635954324704422371390314772047640213613470796208829177002300817686175479810631402471488899691796297842394012094199305558641445590711035446985004091154925804310794053356248518809612928830537037243692805058514143017913746618045158394776053254484714040196474531833003279501769328198307097784654343393216844204927084649445439470937030169042325326857109532737882903242932661183867223332520194103569915258241188610137488335753066672850374176468426118800353341120706688065765879273238565021087781952474960347465677624728143413540118489057437890183671243930169901252333518116428040775432337130007485537352510728884654405817459148864883380604415328861768357608758977999561270646482209109649870785258553269395292016268167357572376170566264863413824567020237670676695801446919776416201014734242383282399628810484090873648570759853647255118850839452170975359739563373404961443302800671382517172861914645930281178067120843352895912713984294721269671351156811460477979685510400616093250314087431100105900950226005510123473729360056429917270787313344509066191313841386613215431277431874470327405168354485971731921125292210562870387366497655889298095277421020195230414127218546822580506393949812279442906172087884077246146675544434974109485463183224857127072340547220340991791497109689520307774697875359842537326262609719086877539019938154252158221855319747893641030219051985128121646728919135586752723370213937284504500531949112393587430098038948151022479332138220306142590303968704808719460219422663934935327838989986281270015967126291323353707933592006511652313509454582394973069050008645398063947185865673528009703806546621451116634639520484403306094239111015372050505151711056030984347781726196349609331409455201468937157827487968318853161587616756184469602033155032126100157651967859161923389601022739690479361089458287768705814106737557727936709722196430100497866707091509921054264934223851055908251196063652210095890095288366056194673447647386557423316340455828413387640437652618399965775995467758903522789590201606010970134679802116020410888461469696207214796393971737594366290211492583845935079883416310804178391597666428752682014192529524012304624646073207083644488130757812389475690630876015075912728620544280122394593406175785656303375584096194708930217328992258248548772812945003860547924940290578268607088327644921455613733101559678020892882114225527776457208784402726458233680165706474641482348135113011253850118594013131482850253130436393449022921032514580231610389775147335019144238995407581880056056017537047647004338776730475380670302082750044307361755285156014274699698121247882907607741363595139192634068702572704429827598068602197435996505151471316531018501095694552940082913241908233875487899204922021713762038311058819211612197327437695141423265673544846328843381881314606882858854950385148408069347539190992602798512930879805072272687947913801567830932261992932990676016164056629142303258245821819947876814496970510672763797426646030982582719616396572914335737261653943467374133493163687635532921245692702376318676480292309480793337868249310842525670717165122805286422896657599451077782558643151937848464951097272014214788229898657941772445466774353701301591253888203803975255556607641067590860453816313686276000498563366177624642027213132886728728978949186180659187296630860130140823240922425624143242770953847486927287863354669452151266416253430140734056863248148622820332703171122990408061765213288592601078967114717146987329289975051022309297406984501830111205779431948023618354055834170125843021935046499408180886750284856514065946734867220458372626955877894706095653411252021451989111738668235920340683620119939158383654794926293963678298240149892908825012508610218152153808840747682225743873504722772443851672591800082333992709909401750722045408184586365469307036485065066612335194264177848020981506903347663700228270488560080506047736763078072760157019697560235761142060400307076494555912460276966127489564294023935015299544115013795522675484531729939414018542172985199476071982159085694222898635443989619217259135956448356612546386403953299551201106427599554522429674656804124690200202273725791380199111376487935838643776358504964273996137720692683370922506317312815078739073416255575744911003017738425330666085246638236660562811162132134340319523779466408372063971440045077194227472891260831090704544319345894245412721252876888195776536961244021542074235735452025981115675996686300173558315016342681884618259825954302313292303818580957046910370651756492030657683383380325644514071780807619018412783710799691682073615709400805007446881829581847386236812224179204759077616948522411154756264436917798097192549473827017385505422270435297239612274991644278307797297125255638744069363466259170672312846189010965821461749241107883842061398392029751629792648214415666486427957498805220811711155764871204728294124128263270846550610606482577129500450791182833220003505968832289221259981929128794774613921518025004692803499279368118555846312655737517513350371295816943440489033161690557342673200026885138911152710943166850951515192566453008400469172118334287744735592279734917086315418483923025433607464723232581316706237760797417943438032590799104872367181137698394614695390872740445445623912604713603882480859775352491950639745211920000968587575058205431572469071804164397984874498836074858762370502509554499190294702516826709016623490576585709462524066723614807623305169653456467976056336528321491602050536389251837422254794362809467168753430978612396050058942274255702821052721966962363945665284035065840059459123135703516202163876782256930367194186698218322944903768885547229850892158712977799587594038608702211793877975118563023980609298187847695624727134638233274380612633937111497665591846887698727628066859589259684742719442748705985651318018590524017938267366541590034795330700737943968301798050230302404237317058659669898001462219488076962570612644524940485856716691645265665166621163509299054263461166134945392205924948985223416880863373258352984202917800088092291850139730817137387511654216322124155729563168963313895984428633751004020337278796075723255684509064809250941844530268690612897028884527282290646374268776692940809079321488882392263204490620495895330547123165889807746065205828592438681105009926997006959721783994331890826136369791313812647911638739305654234069990288758784666623323747999441073324042262245496614924464127167010517712595521419977673202362896684662809328381290566848292593440848765686879450205855699393783474256913839324534674590764914866065706723320749334179469577995799032755616357895443701591908808406130887410464615256100797969995432603048621089533760969555463244754835971172058386473777972088298988333405106311947264893533637163682081126834964089401923940054032145341065341747749305044673970396955733726576088571438827584733003671589639937487875558297489065370584047885046899936798476785902304890955393703379477077528570595211338123758419083205989219964349610894196653804333996928683427109651517289478136552293218136567738683410319666919576129077968009516188284526775282331667209731496149053742016980555570485115992692131125749810047134073180302264001548571648289938525298600343841044364418274917088562172114110796791459428226459605393874417026200123410652508741098952129021466851782351548185090346797660050272412456659781144832171478796552450760215795597412874465885237190364219371630927375653531525768995177302364658194949756975900016377913568717780631893926540033136718334530776511994159105060160489229055951669741759592273691178505284759552512288281723191014208700531127377991874571147619022625760158707019396185643864889240249120883244571679413230901953230878547848778936889860527023176107588772025355433553293064245898305309188654493835311657894193343046615040545859687374612985316042350682806239828018771178202545959510983846231884831853331417283788602827389723742241832974968325303300034413234499095534694376684240251179205480491931117622325803412518796845498776122812931989017986559507027963711647800722134907276893351154185824550440939437681457917847437267172257563667247348543618992352044376800919553295134123083529652768801303827422340162030350031364211754017814997397783360034453391752024831625784432356163684636383274093526206336133452581783855860894878474505775476000810885692595391256236925856185971604120104757494785999771034183044360142355545688225289362800432617217415685115277545397617814626454899885797717519895594529461702231902347060763099840084522455983550188018121130579195489451548670273069962490268799144116134734017033027712160120725439906458927732240106781977357031935706595601371786253189806060352092772056996738933629370894013198008622108227629662905922760797772448430269175825317188445470559771882510696997985062885896957077447107222448946873569142532391782914909990073610644763991271234750585513061622130420380499448874051275999917383871057554758104959752979640952336874111398866704732317543188099657747489841286598003750696586170393960681527422914069216889414107497494168812087506318345815183440665529197900466194475151809442761485912681118762386419055698528480032640020241096300989752249873908751039218250874617935244557922298647261722295307792666545559205381637646249378575268994762688356406302873946731971070986856977511004276590422175401331391621714588921138596748450517860484019370325334335737669345008220273481598676253266893518274158610430655818727969180234958666160960614653499564944142546375843608772226707198042968157341648542600360136819414299824025110939305563046361274594915686660274867291417942179480237609063738646416368596291521934913359582971441951953759706406875339059075490769409571924353373249582370627485097258370395271288569498012573631850770152996559713214643807406377947107997540394710299796109328174403635995997104328471510967297698557007513642936212018160179138650070176310469048014971522356100791648411427756409124581063841520332236462286566989568884503864867959339014304077898307463119899047003596781813754063449500798803501572941888702192423357375284459721109011032081733677046975644529827107031662949168421790142918364387349595589213757661935277549565033560232283999041575995062377937756011711836992878604442230482600688181683148199766354470251428012203873965977763152765232067274073970943119993142967279913974408235506462852510142380781916017208880408077765744827947533057948245655983785517754769869380277328831643719091831451917162251880983968736207743188055174216497304180311287196458762051853830881683364397135874373173736899142179332084570317514226619405462603081429099669780553563065362485793458246761344614150682096862372545729441815289448734241856465255291099915452849461363884375679123382511643131547925013279049405161817385978714394381419590259815274018788043289103173158790967972330689157751945582322250569502148446658457477976152882494566416416413244066745667843825791372508314737946756565763436036685298733707804299305205904432144480140790151009017856014057619007225585522335666155158305438490490431775108210221474848842847094888441353498900358569589860653456284848718066509845043186231289214668180533998174205716102198362718691740992313021383950981212382926847059607055857480947877246366277644120410056523683771605671195521067754008643159073818310823180026252114411017585292354022073704967490956778784118731782641165996724734444416746122714642106631746724047282422493987365314646183318664147096415217267700474062382094859208209669219595531013460078855651302491183835218538844864974173753209689640373925553451640170315850680798706330364218314451312162680315811163780081109412763548300316351057143457587310034730095472317151622729393667727772283958148100906537059560251463411653308126886857555718790820107971933247985790976631936992596814667286828687252331928466420965728585375711765426120908978523572615312162210645289741075558600070849320278618920414563459075964205358799355234256036863763146888215103322845483472921746154212301811716350853529811633125523579379951779682805393965599987007347229458413416442995082116602649320105042678501040911846290837049062948970083661561200957755296119438762402104042056975780086696091350592935704556466919285902633032620895543045067654530278445174047208796521061115194847141382811812183537380236502487373754747109262545783805678976587597126301763431694649308197346853844075766999487569600731148707967273291174837685109874355009445667630989078677763433198313612800778643296043726734280814131431906600764841283196452697983172450471572566182249357713988603210363552926584768452853010677572352127990611167281941770323390224793925804340329338458588548867609411721159656797926180736583255907280355063259197804878773979032107107331973400364573973923526528331343379686461065562178358896074506948932740396298602172308608750703832085265001672467251431187784969137544159843545594759100643659612347903606921936523815690558887039329872781093899094100775355438981035890352228940958421216570582719537000571599983490743301886565189314085082205029315242713463355464754034167409195565309036594340746765020319906621689304753798573450518625475167490024297437597172736592463639708358772694434355171635480676917001745985471293232999235281085042058852454132141735924658751361008265027001007093467910547981131990726058751845049109304112149313766003857448814774670546436172682882208994509824892815175295098460404750473028698307772055035114914531400068049220805986074946427293137681077370808963762218316095694278939816728981901324786157521688301238204823655934463297119957381851893277297086410298092294459480550300729145259261716780350812207091234060291106141631308736643264916013010912262838921181588199505027795803187160284472336058194069609910351896352203540017745559871827073394566287705466837273116299366857857964467359159686216120717759463013014012501816132425087533332463177820873159870930562518644546496011618713631181611593941118034188437269208117936492100506467826157639070342660693809075969155995361768561525824940402771274390997680485038329972495733599289797965909458472249271250141781218251241566689067689073081977893983225445941523586828653198613793861330134051358221262129479521521815235598900889249680601198536606291183457859824453027062913056495874906671706834950167719600564472740518054462129933157705404407505328072643353507744046450884091606552542186018515048406416983371294094711634055246559562076080915736356292339939820315210669757086181776844438097746496018659892450307182310614108664010317514759669323053429432345775766779778790176313165416125109826508499845723865838323053213239902024397314591561819376879702570707035821730895840339838173855053710678354820956041796488540038230613701478718242079586803018442154087918961288230376919373128508963469216354824066228136575289901362272032956358105249823551670383319389495810484172733621240209062855238867532512866900878139565389574493770834377496340116405082475443746735733901733537288733901328622514896310259858762412884274597376755151571432739620914438274173682188922789382940961222908305719711681318745733755162315892794605549074903211371929346661726815793838618506240896893936972002493241389936999439088030286789415858993096722737375839189424120819518567750134005935170470734455219058865928570427181476651290000009465432048175118073674471824055778810121299909510863074887301679418747380696699199232487036451474865873557990365604949545948824275074168656477260352185007695411313994244580783270697219653345372651288125812193577036075397704264390870095417481873481244288617630369998844396557535811348232085760269455613753741739140630981622346513261445595279250399956918711970417491431362867844587846691027333186474576247499939724594756578951076547440064170079318549914090927730022110754459888865168195468673189192141400164575241840668329504369419366468178170383225558980912893931827407776417556342301593183586167703731004881797473879763314923928017218211772899869683888590414790824590532566331388665927633146968439986966808929216053302454940543045361267359387048054620425828958294579139355343619978985963473984296437779816374596461474280606966942702658974120760229102073895520929821945859496509498459200455753293285572682679537432959085035222092086377126007691518018055222719673859314205383908839875259188486676528944586091477380630544197686485439878988373781964247323482978945865724722680345728729982963755207752218306748996395935149988498559131981378103083531736140032182696424530045057568946458907935838108500579214062315109700458353523450293956018141784585489360598619962556747808160666254028052016038149347514255225980026251476793774790267694584603986434541903260739106590575194665311698998499482856080068460312231284141341611072432195555483238299420679602554979555370888496050950879735631196975048472187452789383079053919344429913722242052608687350710284564561414025235242463912272013592824747396124595704173695742137161258523569362889044640181868931421222819495160886037918984726389429421883500798521511404046327013422974271114097905408438360435436538678286585770350432923725415690517744270769400655356316408294616404550658153805548511156719677075699814860880738299691691909975020841942053743998771858526858716813198004973766044566434822330865445721929137490118435129679882815933904310373032319196448450844570434551710817920095370259191259058402289556321901489116522149705334090189066408519500238169134479446659567718140184608231977095223185063154750715738041862790033115630530457792297893544734301200938948701913475103952015503979497131880922447054284312888002961558253335641447289601374810572971100713091201390828574590745610854595577062218285890824017357824241274158225535691590046552688117145619377587229654370954674946384798399729758723682929729053151961025329467833089160071080578748451836366689117685984861704196893762631457737993603639553976640363103962376022531166628248108122727547116925325575772895145285536518295592955925892962766579702090570743685914070914725184186474782843625312463445409338480144861021304072421893588648887527862415180543269393533950644645135972419475913297781396451122841718271966245038363153285974587699459642430983494343917533445116847116258190268099896386788622524532069708687968010943131203417995419655079056559472738081821916454323707700891968721995630673111365599357646278842298815889450312826286380914050184049383299739683623637904136759106540821829087283707223166250112529102924630248421507375091924300101890714385240467117495131911819939892583254989403069808861006522717411366304207610623816349043366781766616175489196706859557172103796657276451937115119008541689710121077139042934109465904675708608263248253936595787785813913686766021195454617739431847344598140096275938344257198048766503950117332240719522333427636235656270854224265809160301907438673623673372718713623717623491460111724852501020130530066847007553563861749566765621308202907196618895482283291823994787137580946301330751829108162094604024760760387471045403149671027493427696526582330197417189193754267645735762664110435128195914968777451054047108744285493208905335101026764512749927730923459152655674971715017056406962114508260195442694413630612968567762912511719501210217773020277286371253880984564934062488371487537209379168910054874860785675967405908291233833951252111365280988560570314315178467418484098031643307672054719635514867299388915421470113223711705496975038081118468490188916711876928331199455067894428711370890443475807641459415724668732448643796152959523899959680899212562472304359409089890042854989754949804151222131248499801649135904583594421130103206556338433956465867663481164954942201208262822677337233846203392369912876503336583246084283471315004255044514115826324302763068834666593053066551205783294837535531581120012848076044671003940541576870137841578019122740988716611819789883684118872431336873148185075671882940663859188726090412380478706565428009998299286647206138878241500474380857786350050368835173994562269946795211322146842053884786041925026398157483568574709108829048807961540007869064751203673898688021941942064003218708303362744300544880099257263180536707444876112039231880585269312444723014789132788662337854490979843859325275613288811740289295352108034688627504921862865504012188851378912177720635212207574681374570605273838740422866415815990255076892709060223349210380201169540133900205846966542204593176483540384534238338947052221594525264711081174834638032092317904460914282623512378381834384384271803539342955123750282540118608018023508373437946853226026840615372265716928464479634192236136988304051107349755754182697791722904013991453924300278731984406043795095140300529038543866660749200263088512822094080628527778102183767070628077286311291898733344592836325131888572303243017044727854056898871894461278484381144168035180761044952021197815516266070451839692868672544751803053363868763666643604713913840185905088523955379632321628152836005781320552465553766350546161236117766059251912156134651110654699419258461775644702613069094854611994591212792820864361334052546882717825470905674216155274708866651937298469536431811939167739569065784147557688090115334917712062161870078220553232862483543332276384741466282344756416291971817440764203408503059528216303319496072573387167943350847827141391214598652276463888462566452855842873025452004543866515994385674184237704349438333481195905812551171691995381108924786895691809705456193202708550983475462667308807768810352406747468438785558570307763577309535681264119061745590747840498961742813678638165716770175656119164375381389511257217898015443694925103855736727586921251343941195573109849532715059442445117935343513442069881469463691892135269573663778701813380764513966833378909198899871945988884432238212484221674207805192244794496871392605936127726119220318821497938144021294410253334353674833518725815773090303231571092037886144617807339905031645799939084236180274768273169798269644377854148177780870289298393463586281156224404265184337897683071591651457884904446232172584653454039501015644063512862778134556204842963363708171917914414123380955747193830445656197846571740622222808815024991100532457902885698763756502917244978651681208024799012979535126654434695083900482938349077988271327369740803571157331455242698736313900044182551863884031361572699945693672320349326891250983688735245774342896076216071756844886084125948811422075999475793031822620595277916592530575549449627051062172405592293450220899143088862592202664062832383666170237323468499606908909636301518738849372245956394178711657427085990881675873749699541143251814484486310612598654809236985844613422793745564034325381531020562482325618957224513648273278867197387980950546520026235685288075091090319940154469546578052434328598509867306956780148735599946953460698132500347062944048892867817462570726455057128082178116496495107973019696710319732914360946684062868861577917625607104311686846015357139988253735864783418357343607031260492108002978619918418297819009714670610509140898148104614377778116771301597274654498806796764573962344414453412838962861083922216442232639338604175243237696970631663868120439208927896625433879655897310484274024471497484488751733454264637908545058620409337219501729184360932433130985262925866257548930921833448610810727562922863129463440940762211787117143083407911343742327192444908588452534432543141334299205388385208480447147114328938652704261999579787914118788937540348516209678488094719346439233762993623932322100996050987475700557914658201265195766585456746997341747891691229660385459675669922578809531592041097788613151529102456659754357605991219112534171268223854570316007171390248138800821552288205689243997740525569587342925363670319446440352581538061080909548734113222518749562214511297197175037178182414278734381981866266951036364747600443891105132174521459712015421049617537245494646150808541941256505711582205792581599303463124882706284807341452533351989830279493459444362878881516714177615859404786955677988614388884869939169571312635816395770732047910374009023331261513081695212140905214664379799292505785387425336673703308151125707698350526779434922180151972803267794849644442269352721596704376550509226767946758523423823693276170547839779716959553364777599097749885299847883333392125205221613632241511373464529775845142684105413983547427166897522269287655948351745050602840128966331910498824415158969719985101152613363472162136726998990771532101886232631805494793247060707595021354564134331045988468727977215957091378588990674547984069908877433350751227788643095248039245980073765377625869567635884458551391334057073735311725904559094574225482937206928061384186927635979613622095975405887325591113771972749964311162384409281028632483440556850898879702317433620738896938043311758661175551762112259834226807371284187750242860945801411746393312008263698114818723074158145601062512011503039907784128556957087297538561439990709923553327081189124751098237323265448915485861743151615073485552565991705708242930466866699466167673532950014368540666669138187983258199912459196754415580451481831820237932680984985641624773239281872709149246103546297438778896543725247016564305872725131255448174197491411316605114643401903648587811955819163149356762014835090294919531103020399610844400116705962540920733632273137917769591192609379781629220024319290254768338903103807099359933855452253306346359836831866132724131684561686259413024161054916642710827871611534425758726684026864028996145604347898742823123972684721091899172262099008902154733220635829529275008515054671323510327829795588307074994847647546558367745268545959262033122812218342950234780223805631819415371413309587527229999558145791628931299265429084566040653407883153311321721802944799294008278462580339276265442590060212439913606090008999326849529082495105626696759509751890179210478938883530478535033672149748021008062693084561317315397606954166934178414321444997051716853364125971256574515245145645465793131278068726062218588592799212988769515633078540521149087866655920708767741722998252576314496268709002876229760857628623097215399526815765122922743976157932992539318234714132877547083336715411286601804400713726938801929494432861227328642243073257334654641481588998235966733180753426011675602390738280693448569636982201747910145625016501260281114166250354338335553753798182715438254629840193649613850688891688833391496215049488968794263039535996842372932329807757865545566952771692811183484919040480401552537974197470594780954118773606238603049572731488443528779680847987212108169698605862908572251055740215658534591096040225417087980333864532107057214057749118980370092967955484932098098160422793307661051263473083000094799054477730470977497581086386408831276827459301508168101511738078207968502983208511626612802879494580342178190097321656008328650196363842258981753589788893935648858302236027501063733530108653322581273416181317640452412037579236450189042615126233734117446975828866838463295487374615971928712335277550972854186514751733815156779862557407879715069650862834524290013155039264060832170259813752156744850902963937681853818860322056042480664251905231632949037580547958894662791124789241745975479037584830111073716770156550588351013088493535166656720434796117524841171215358307681315589930099554649255225970606391907059146606824367121407104127299917351508442813048725591401111106321426826814026205040937916215174347725847542388064428367010173286076880984793353989198934516296523414647958928873722659207459184177374035083882224115096546272931091369472229568783525323138676696689355981942124889531842442017796396676879547015076504036414163517493205984478258574076950781294170431959756356941601246387667839167393194613009179120904869580357023052884325635659244505014951919512523842664174262675743630612506979947945278612002043520979165979838533175421490007223114682998793150570052976645607937385241925106283179856155154790809511165371950885050202734757745108641604859326307484387436245702707883908472799599763041630235317909522708524307064486495880100210299096648261459103529074471856936966875830445700130960543791624742614479284867439475541660981284166719792868146111245135443737348416800612274022024868582222095102794038016440960374766461599520312359270548922212299230154243639897421156662772858152207634130864896551836900211923225717284607568948182171704133348507629333646355690508100789717557310574695381595615799304775314505324173644947993085630752721580610369471351976896239061001537168143139334824651416352243089814919623175248355060391516656598105426683813768266929740310336942903193770623178346916133259233840779176026836691839915431171823142525157570499063607849642904822153797753754920346144362879810800013224268805096266056490939469249112440197742830822769378395507384321383692345655078535245133021574732530901283394404377159020809467286231394805683590984611100648276220355661626148349046986966851253246441961926808401221123077322110955927316744494788203922467156650052171469367443323906688552177389615648624880171109146426194268086986052797369397832864016890420597960705092895795473239905758013437761641368921933757985343531869899628139645624313843321798414103550057686205515361358404211393147226166179806567022257050032769299489673101871506966632390753712228283185689811960483953015923253169936219866002039416103850217252346915782510299092778450039772476472865563166472486953882505698508187777601761505849911035253609889922495406428265946142931590883551574992281038441266537832801035638842657050979786836458669540779016345454873164350857425739537219724992218334001293484273256197868179494561806661720572795623678005756181365262841749291735748407505203531491125743633867682503434895361454151356002713050599502153098998751171063995639328164842184767845247996023922738379670994368428320913445449385930771802827507285047164586236240726106733841253067580701744358660757644704873145530996131111970013076563706699564197809327919661343485109435049391691778069952779819640191019779883794655183967301155954732262238997698715359859046997166631495198904996416482157736010685880721975067949156856756014655159715834919330703289680562886466218652787992054565821056758093392366453471908316213704534686695384447611184517987575915221776051207506938277934350180026813210025392052020286473650366570667627817862758377240306961000600683814277841904959179455619265014799300573493311392209153801640720310077781605344378065408818187017724608877382922639144090128955316291591491258261993567313150452882265796522626160286454184812580553928604914141738721289045881586949730855653513383479019130731251740297685323003682894635607885643632674069261392509840906785733799694413443193941663207602753486632143099882735045471743771013935359988191182830353154567899677614418712384592852900293618773233498290829259363434844409993929210563897066906217117173992033238771877490289626745669740439191534486699309859917726044884298143913208514451753403598323876396386919358859536500137430675476865345034163853236948808587797777061225636890910970396045706857106374740707889676317380460894125209441499990534093139745782511489468114590455227562557703263124190668462879392030475534969457432298860888778900786619093433839084063710942964730061720735900850027712384992347227019646462831896048789912697918835728298167356509468875038617310384754472183720419833092581850621389452395499200415981201811168132303843185232077166420287912559056285395173960130632599060718209770118533090015611887924265925938382727180852616893682273837079541597498797084031915713925448874404743160912581084512358809659175734041881020564607295779982794688448076561450317798932382011954690926975982114433931225381476546102035961707585492772085147043835465466076047824753690969784450352399990918946007057168408993632036326032987851902459474931215553843607328940206071000488153815861689095633481198957085308583102718307105178725866369853570839842008460593369063615629127270991694073214063539109461958860475890357477908797580056871158147683967512837950756330705186065416094427187389045938721419018293557713858618874014130656410486807446803875075705891542956690624847389001987346990942055310042535272268228654545885508265424892428420928017577048576116118205405046545057629487213701373469087695358098679001236100718927638995846081585496392123494527337980746721280511523784860418431290139773610481537923137325454898776591525010319797162130598902529106901481775526328120941706640900640333324249820008199614287791842414500037531512003765988755397052474034701968727030166091597650928571189131397027313317831165216911430478706212776986255569000079326055796322353015292122595938135054383787207216871119697586779012858770732315383991697663026623162660533393565930977684199512708524399130223002576234478836844062460731483675183486046148117285214036312998146871247417285714186010421191959144840017594471905874366732884041313243615290196848459065923530636969979222935802017848245305123268713908021480718423272060460113405917605159581519952257049643616618553236898523540593504458136724113646003767561567275835900597181928439000244696002102740958341954639594810229482094064110652632697812662618744583243395207325707110849785361485893346357514314229518743529490699102202965594152232159984382262599964289658513844160200210452884589807954324487455380733798093740144336617906966141641060835283339106478075628764025035167946381109255193541510249252124118317711663258755584088689642872909435573548992199884011280130531647421297534629984056876457297956043777540758086400126849016629489834056931604663381666189119397091341944676001334821687226694654220815914490566373262318748133563856587951671817455569031628380984954443219742735331992778877130284304960110085932284185352449491457292440650507332155507792756384946632065545357428699460506997948878939938714557365797211954002809692955149522656191889764079717819612615475977553330125922950875300783569076165655991471191595968939154687747102700854923235256714701431843486023240421901144099179576248122730491000621309656071717626055174701713847687269573745232965678778356169230806533398012544267677168424278680944038471699197039252259509861639456100128176549243925081918415533160429575452609414956136104696830653304337650440700557134167186102426925368799027770394852815849716548190502076734848448727725711110690670455993493709401397360674095614332204792965259794863810675757292976020630013736255660679821007534148548232749571213919723771271988903559993039890010013869472701522777882761628118828140989393412089776316087495329607878821553748096398459074876990425825643538742531489022438289194743938679867358950817723535894584762690808996785289958886317286004661867955686344924794324113755142190527076127418583330225346772766677499031658549731042006111262793646798051425746639118444337532492925461262758619083418930445374341336105562970347100162768739755400791649094599316676572542163462722360507226843824489919518729982266463066048376096117452683813938645846217716543349529086028531147902502868964695084579923696303830458325905013951144248005166094564621778990812422816952195988357485277137149840281381229689864998188474132076345102720264801405214103720212295261736709664482566671255913141054469499245118674245591397739375842976415813937324531306468685975746847118668848254797044259263691547488873206898495794960504561784851395019178944486574107567892325755401374493063581656979874022487402856383347572630226862685085158800690535653180729232443860524835324890492650384576518932738005394077449461519103189969707173525899411572657536487834342246609494576701583565176567316535850589847148586196758271472087360662202792975829264889044162680188431331955132388523295400708413903625582976624199698897652166707859122051111413688018292916417081591484517948123246737572608156283282731171444928461869331668887910383358127746951131968503687712306100196374637426759274426302507893008574951389056942719053043730331270895663021041140673622400225317949412199978365867417327813247816098844385115286517028636826209760259590949137480851001020523696709812540414439765430069486917524820676533731145723593577693864986591010822705674043426410549804169622556268541768500974695894355829709816838315217393262015450077690019665541910341165427400942354553153280507938068500014223271916962298526391018830519804441635170227978823136010887645298164840117870531277847182611527609415278077635372333012969614765392850623978102757892255740230321882339230784256981132328717054138713073342922376384634771741561064288605911657789094809390298995581659276226674758707926404987137226502496181379408763292240398710564882715289709050568580275708768454677429722257593904006442627313712690908928914838118478037603279579105281082115166139683466367717686078280788914580204924657080808399695596850173214244170721446813034199455800799475980344123635698459006793313579976164521241572314618070069225563801036860513539025330367661640765739792814704509356749962038514846864214516065877562151142636331291679152660085981918748983727975059572185477463015525629048552600337208119142141718415956534795408673059040836164629015094396887719349392171162494346866321256333544471294039239022764295548080617090990031294116548930049045190913414079049148612955176411206868760837725866414036339253196406809683966242679101567532534243968905216041220305059111994243123477482944061808655942643386658274822030560429065037965682604891169012169015565888193441513780333984113438246454928877280346741315790742778940218392860855620209421024414096881777431196945731925769022645774103109165335916003716982728294431743234252306183689636850253667017437707179650003866590994402023552182247136747963710442611905393494011479648032848185389273649035093728720922210977698824497583638415130810288010566042441316232754817736301953381841733075080676758238314971823623238603854589356289451363375116701720194696946147668145487724041627708615529184844720577669044930047957310900955731083628652260724761814206414869710236612340351572871480829029060763640342023080419024766974009887451428918909838283226284223319576104667353355689107173356235609589159849133734486474633083912045945161482910752896905990705239193031160686858638307703897814770836027176567013111581707676636967894498061377880005638675766768456993553789679471884212077378142363608624558901220014171059326349694031134858136477735703778962031109878506430436669008103226369722420421330101167691216562971618151086345355473861101961436602836372084332547026877545783675896614425418203810592757730680956024392386611907185601313763007581353507590144565215619673929856114947927911445132938320437690644557863012207335108142422914562383671986861878858425065278318385421895723936894609626212078066284504990387252540099056820631312514569645270034656099261011410114493083791564882353112818884043036140906173573163247411531279156342285868534413175417743822250434776783161656525892762616611274646368321199278442761694030230317976415011298837707220109571809266712933229837799279204534369827201923827676025431139442375036504545186896193148781070944754367038230297041738260706423564550599774124561321152303206196611886854370104771352458960484582585772639801213335523746203827195923506487210701081880726012252380969596695047910020899487152933142373459388457991852338823344379532644132111362045958290914700358172903038283162322887535552610399660963236358729128569560187611510313328365102218489203367211679168563773255870690608938943441734033964703201962568792615837295836436186168620327957541857655576146343587981526668316864308602938213732991713756612786116937062305118696927448448846292631020697575079839610363000885504470030367533867319077754060440750879612417297817960465799657121201444068198415045099287578415260320031790640994645603794498167990749141511717438983639119865301790045634436409432274219847543057062545029660147446840794681688726098269478357668562377968317054743451253839252899032040534295057668863279917848905875401023879206461397793080177601034777819575982272854240457143281957646472155989261166187923068839503521985302193278485787352011119923243875186187502780172467566725420721828278813642150370623501386693085288077917360167867591208402977615290726990615438352316322894505010163616657648180029958403005205042734087098821238538438362160995916907166661982700772121958498990981853700588371049398597190037651072486560493139325076633782032987194429856750174946208447679572256162597962270598355227057640339522969343981018886557399442274863012130681190471551839308691555818639229894276382743319567731021788648952713934846937235555139653486717590731324851692223622119656943733646570138494538258297984139706780408198865810682325390420993111344753486143243308426718490525834845156991763130554288645450852097730369476942930458862746649821941210599269266343658096409638052077213681186128727340575156036019877418708004233482892739986770919044065283743123784254781000244748512591592731611498916894935350898551554522775415858701905015711871796318876955622068463770239448394832622031336767482769318711979978598579541304772451755363951350144992107912934319722701430250759333351995891052418911863561337857180658580585756875407164520423887116570507521761980893553171758765286548875369470762264034575364417872304299060603172605064569082623474176578306908264974516977770558203772677344735327566020342167354136804750982314583565643372644172094472039805057549729367839162763427319576258466529704711494058825076193497935943682426186438286595008684724310436168542579513737333413393467112611537937989054277925474311684217106473193940156619842974368811021616185236555813037320290513281255812809336250120291108349245134821876492408828671754719811248216300105433990438012239227099561252133690316151746421560625277785160724292109705115550323387437876361404855985273675945867026397399675477531177434606659096009284837061354418664963194722684194890756907745432333218190095281686497683961864210709276296724643595732461440198181270477416605004936061859946152103263802739002501221526344075456567455992799954605949659566835138732905865382226152599035489300393941140687732814437168537481565387640384445950202026919706349362036769090181926556046467550011279661545275568815747709292631462346270813628700342824634317128134889006009437622661009646665246186465222690830273788391045648570996153879693384405711953215101125053549433240164479656436619225952420777726399425136199840047072227743826445695633912476621720638672961517395769856212273171709859788528374178662850389260429131256861868843747556041320914517559373192653807409462124170781188602180135508674456725889843303103003314386944137187392830136296745231378001748647381276488182323677779862021007457283523212937389526357845788169039098691800848304217507001504994853424584202335313087652082639389070013440738282236615938358143203083899290086021115119778602891286156456985951930387777334873996356035218609825598169562598119674902750547385835571706660877784928009460017594955059198623637175276128081413000742722854580593875428595380977340233507557809250899598146886431715614215188567178174252206395009880588310865256518333072546391235300348460509354242965319648459899391691657595835643563433776198643676371436414335107924500665021984630547851679174393078843497552042566409893352016176910691863941959787801841129041401399247185217860968061150228806706385593990664945695618652569415174048624714304284410360585181702353061696266490624492252988323908941845685465415644306225829397808345677866768817359800067432709434078071910881131872473290785730480212066375356962887302246504259782104763865073110648074849361153308128164982924646901899791196978702259175767555649073826027495207862040956457468940347886528820237775919792618652144742764990232536654230275498064873179433797027836777892544887204560061274120037815275548164292652585098423580596230178762286638500542660744806563853751704741595877884358902263962046585481773179830129985211969537741609486943297230863367151263679314624483347381600616693655099820920578897142844822827719977089966042738650935555699089753111058724594479987524225605853209008177081695363706316025755956800118679851334475480882251229052328839635729943493061304569393929028817619219968706094476670641068437175509736366879786014753908270250390288592995332006360381069177342643032690730270914978591228126853641260938320034966856910058918562712069026715743646841409990909199546085826331281028369142843325346135172385088709398350358867646545915900130318475185577526272401018706542705180350233555308387765368052585237102508384792904580999577605571445889662441198262333467167033180912302115686254649939479959569196458325008659985646173341076287391586139140503114223981000096882944477772056940202063910183793076838729090426109287241015435331236279967530204011579036542808577753258289597501861026048469696697888487132634502159264062214704997550332751427823474800321547217942086048705528890442773048050719595063794273667879963209948114575905754281608096495246803705998019951327265581839057298831417578320743242942761158448156812839733678336526825994685569980293371578074278268800417732049257420891238700848530248377216077356053918071964098499969958859543225986299900812547744042790836141635368877984698279512078822129673927067464929227045472743474030086158958049281304831950990347253902191877147791819524285500977776837757694559812622335429986479978503571151286425754688333375525754383417455378488276657700866395505374306720198513288282129076718533368068007804419512249509477669655488902378840985859742865732327919721803282772309265007000583478987275102941489039369808358822558116381114521659987519632781757753977008914745945281240519737235069483070638500951166632915420436146702556007760031436178292446935327036363531088512130001861855150725486666099449210033709523898544984024707286595278176589189715555000950846636368903487883527772304213990039145159580815175141685586211741136237443924869842787416315713986089890106829610029901496772703334701673828134509695818882318023854025439904635598596510128042268591643189538939570583594792175550214801393629554958062069864580210042783174282063836944997620987117851045128799591452828763748469512213306272217252024570006748865530326470223348834404547361965356399490413736151108561722931171616845830405199452526007294630460984171143885399091197023236857124044361581428317230782832455108395631078650770581702853124579876449962949885951646848625903701903606819298294129251103366094962769870861415214415477142044303229522197332721362671348863736416615509260920256245857508204790470990677813333287209317805287743837889328427962693080404066822403896745121322697747011584695500026027461938217232622165126681932600907377935805772623842234600225278235115167908192332646702862024993822282506423110557704037342267492998202991651419242208458868499429624041327369870992464896604723634764278115054390627767298829099719963275968191503452170148812533804061751740000795860323679840667902931488953981074908415340636959314546300029234666231800248092701192703403371643543811925338243048656026404879935643224361218816700399713998906947644393997144598643046625457627448003678406772623767923302367786631967278404740710050190449257751359774751949943579954727707036640609176823324368330922200813653747529783917693667696370197696754687417174619352072903900096462198474582920303523284042249675635850344975770976490023431186654027150478388896747311589509098861431880433422956763390266065453339094976514082361442432380758667796428492108119924270763689876472257513676149439161471154189032811647934544168223545675259979167613699107740920825445516784400531446921576975051353536990611528359923564327030127813590629431196511318513578800914215988064994685916143583707200445149074306536109117111097945366088499502375530610199464596981042288328063705667621402504322097575398008774900293755529942910143518474651451942519394026134918347725903307691287293329014039949676670212769344624294029991719440218572063392963882287665671806893231603712096943909349783723880545052435129164487361356277661768677166664980659982087424302357693780841517893365147097780749654936560986853531325101976579434060192204793124369275183181021611513252316237130255943051688432590393391125662186008853032790454407562193025136852683553446714751571827972010537989888453676838748664495613838011856025439823032305674003104710925206875355669566721146883632737287894258258294324506039438658177415471383999005138588828961866185794202820628239079279360293728456669282245326378051145690550305621055443066728780230297762266720005971833262045313938621262519662042112777533001804788608688153096707700157455815020372457161659062230039950787960463956793667340223957093496103527079788245297792115824707653742825344407989531725756639597784776494964787264670136209576843953262358927001045377221181377128433738714174655824652236812929802134850428543713476898511162439032270469530228844961715263883242184634500839072221061832411198456672047947083172404007449005382354331493298901856727392686602348559404216486033889487921489372560360677072152987822561934404799832105721604621309722471721741354800661249363998911189177694054309765388504139848279712896741179366028472093933168293917179459594797715883436666017319176795759390367222520242601183706429050778519111583467433301140457134641552316235823395613662580687536827226276731461765013719526559001749277598848463419146849081522874095000229968457174331307998082757824489482424418558263711809447695676427863822622603539025211655685588090849230742201826914614620177581119546148629954526432926424383404710826133945745241848644468428905679259823968441167502513552213675835191599967623326285233073933512937356153602885837364048270954319536810234177192480443009601985062350784053993833028324550872024517694368521417792425100599179014356786550642079440088096380166863192659927546160044199730520424212698826634162636728832443883595817674820707077518781842912141635485614787840066297666339878955810770871380129437524933767490731772191186329683100045757263452692136303876444028599806594861726449648503491669862148531108042577254642920178594873802713953288763986583543553258494992587536222952540283566603531688852561709575565987983105300351517492551121172855618704169505511884327229750435142221914887536311272246337645070132237332603129970809862726286685470618372148282589467574436632028977907584162785580808278964604659760365808743212267747860031733807159749905661111710830448248842283162325891750820639809654619459218186584853495587737680067657606413308653974890238612014062999718778678824582365802442831251504298766850285207617018866632533197946964841392431264367987575215478594629098811233283502310881771557783119044669313808416414261055733101361010323996952821088203557947497950014745736049809416844150539951484751267180241242513744514233588042587099743755058657158225504331514759756361754366726041063796735053331860124956155154071492206152821217552097812787853014787440719680242482764417339807255516729521220889014800348472603804800299264135361911186073123096238229981670449262096974132152517197111309749805158185717660326765022049968102890612013365685764187286473931878647370687105928862517158656242092500607509489758149279304137999788411470715629539105814997863555067214485163930629761990217903420542621531206261383043947287891232874108718010431490234538822304621780863522183300117106106959194549277596276451872464127665958177139844950168855954701401099855640754364868364593646405941209145463661153675298751497762832442607469689022208422852659844300928492468131628088191195636028097095274323703375564852223811802836173575719085319616402312082827676416001327300971079455454183270037473059670352087779594270444788120216829452041073523223426456597593065677225184135112278452294569727587166317336702255453925194978170876150787682839703176078794410124456815667683646163278794026335704776767315114510203100204681653731507194675696976566048498462392994325769599257621344596389973242160055095046006748367965778336896858583812247705115131493981167705714317487310045605706446303950528015790972327475354974399024101746618398440334463781402975047205838543356989882600419998410851277966050333740246902308788174203422136889497914373471305764241996043481939908802358774548766402452158355102271225586913863027067547251734716064333126287924019158826974758023509709210125475735153168303856056192234124349960853721990675650962850861757614016484921529882945988988653943249092952788854439830867406063567136309864807158604107188095231850962602163598699889279815163582896439916167963720912317132984442618929554305806196202970671727178213956771072130826633879740402596968292739910047750094835901160993978572949462507899098909833838340686756196476936044903395770617481357471563845739690762095717286181426920099168769543955117424933698042747607140777049390141359513001116337517089791592184934656112709865241554747293110276581499023581334889946277881298552310422676676433271006638834178122285515464023458988981943504089724225694333799752983399947267702094592572525917532754833439971777790531118504585581392778322842371248104793715944757936197769810652568101823627601507136788038656882698638454251500577526217444450506992765525769190058488967714211773054180956211625846830337437883485865389439331794492639862711728207046446476154122115487529277881984084476625389132758919238302266364925660113317484972357892826787272618200318883126731655946412848201655701042101882269334574524379094440270618880454343217530264518957592475521184223713531981643219444417618121529263770121678963146522469679528375675994024047780188582774613543150976062531384751847403192436985107961933115150937965558396130169678217072542574437817948464319926910248090305387232912239293671992345906377384374266750446323959481596171924394707926780506727238044770281056375721283498745845043495616240815771506733864949554504331335485242702289720823252817591358529117817475233477457381834788994171827842659372358925592497492348130705409702339299263754173344630434685769067501695145685583289557278112332907355875380550161904240152291094435809170203603032165152393672477064972242239093098512588978617083477427086224614384577424534171420830187798163819266579816430584314982281642573650198943518165856153596808823987725825612927295681837179619885488220605202255939556313363303169557660809465082222708678598546593632383767494793548844724986492125958845645292744209683586141857245010753492817052881660508673171683642466255614760020309955245141571432883342200489692513911534808843879460059647223010657443874765505777009741998678710429956635757425609526994338268965868047964018285467788146499517061893483183627624479087457924269207597126052161696769304780806283896433043177781983343220190068605048030397053145811510145580442531724915091243578247862233407917818024686154017009900997471668386790981987487189183863950668056341460788979858452498414212535371616354940112493695665002045031505795224757446805427674987141598587543505092221676805453421328488384229789019385065330979363409218008816154590815801525786382233356343272526377531284601791254522675998017434294127857672869490598429013265238482924613191687929927531833959152406822215842815724932452025006135745356300695809050225364630934694261298626530031836582324847827937025260130097849980191272223917182703097480638577904111775551689228071699494054391163059179327132926225082137528392715360639509353705947960103977609698828169691222290054504502793271377576007343978909441309977348631362601749330792152873132562516741118653666826687085874071058554123603556775075323779846367290064604653090987289543713754905372894176540856246120932351024046086941390023059123733050394899300986516900809149212614709662387685794939638033691801589429178398981162396433585504467713165217483209424291770951906128120321599469742715443333744645616612059888089036208421487932945660138551311673277912515186808180690308396694230907570900428282644081569720258794110611925599641593407836747886720842368721187346814700663107370483925882707065067975870442595926329015558859858543530702056025134284790350861550134443029309598635467442648640256305099074199207957456356850864516948225182900272236173862798679187438852078559601607753777319513410404157117368202069935735449345774895541697466361453922046237104127809838989821266319078904847428525298491280244256694376633363007780089596183583572201253403951000762019057918140049438461631413470590624724661427411370816325150192594285951264244966629298251131701555771326791929608579278323718893736007984828821935753798771639816528786221113488738392369160147673237692262892742451595826762857879873635230461196613049147668929950321678390149813991735495955386714594557650118814312171446747786165663314344997216405704507096902319043483916497342875097513228645533051438595889539946464196246557374773697801325707063720358406376920205407103675043465909994952910122909651323189024710231904299748370684430310605090980151739127636683171263399072662155709310097360984565574159134887053857793341328727554110222232060303528851261851391974573757443752730739343762476035305859909732530996872168547884204523883071450437900746711716618388191581902446547132118449122544133793383421301031400073580591272778011154163615513939525727020404234823463245586611009418070368493138837421644501018760001889897841386005700236282857926414588038824738750248312658800336460481401198682499058825329554406236947254303364339905228946103562990391592151226456722774733875834615818229671306012337601337649677748659914113917754163258262411995863424212140564076394953958976873916618042065799514405018058591097783570588723771371051712319940660590501362669049230632707759864956463847327332189873286210789067732107629449971551321947136567757133745374923760534739588940088254964943946095048207741529607776563847037882703352192838235339101728144830076038506567097026312350469054678890774848324544702490613266463894516837769713832150584101498250431783353780300116345452229623030236921315749522337787931167575585576776253473103525391043881407994824258796713296234212517259299871962543171615190802180981336634844796057964068637212979383067704141993004830056901883826289246387434107990154172320760774387509435527143429849885264025512164824422748694236459827112189543385922726643781579596050918485217093108609757641038231160635696773794149147423249888148767443173091864547957670433788633897774602136152977950662121255593285063474311246003192992530153065627273446641445613774484504333647852404815215912984420678296514733883137872836055561262084918422127379149697283704352712520568733192469072796121714956540882327007543630176536772102479464872756123030096130814010153515740526449862579020201126860950614991578420313591935660897266047769288924698575351177475786854840181973213503715954803471616011309160228122588087559164639432522269928291257491940779623200898971612170719936766864697927691457701291879176148530051760453812818370837233524613512575954461874080015368438850404684354876265989852636605935444447429393171041341573553787251479837553449853975973440603878899714017820917849656726040871549035677442058111118549774313482901123043586049378810715038104207139056440910127166439916940355489238945609484605919763499945381603532312835886731902906585855606652575222462315327306295046179844155596712447366069868184188701915470269777873021389380300773214926939329382347268792724435188608191380349786986127368894271986316596686821276443554222337232596456236190559377371388333316470536419140192767391903701593408504474564745738697402904924556761072558390368507985875804523085070217811559210818545543185036417728392122167021890456429429236931456166611629703512285464869528833761597240918625349603311596798954929802863003319771004715352290389731304552667267872720376446212601954475798927522497697065549126582085752211584612206751617222115684894656941088868688066831481105020452859625043501974733546973813762072345135746887314712544997787853585029220948951816164564961143279715387469158957986592032259291140206668402903023192304022633221003125119262450265444662669640813411974432938801267499951204532432278506510210231310638550334595748934136987521663941998765457520204097385549270012370827321963956583435213985127469276739581098177716425933957653271202976886009916997995870132116499049243892402961348595952693591982475268777752601438427325515627074303076155958511895078986844846058153528774085297556925460602241784438401276445498147399684382892845921136814874582339935223134424189616859549727462185418833368365737690042550264415001630920419799741087633989488115628675459129993878098040720813099765530820761093525630102901610206305024919569474589732156059363595464358948867729121834294757422124085421724344098940369184772926036326927663798348314121604413723112006121660451680458173896172314083048772116889319240817511384322688733001201300188723041697827493862770032140158083332253148943426764259361322226040506336225980493259315925712299831983828041157464215363336288848939182825629768094220872531230791623192795025834570893840799698988786789568486717663197449920551960650525966088460496166754756707065991357107224973465438683133808649243021223910332817538169104990304299394622194096017467704507529115523456674119881276417479802013792709894593471495144776590206299945959233033268048412646356064089758004862178289651232006435000653413015220006173859559408170210075921114589547527653104841175857214381530124882886325865442270289516417046766058370518000978988252397666773347997314050278120081301756381957308791569388665603897782739176554318209407452824733050363472253082488681711174606041311038532902160609537612975072890952074102336207563228594264734764546544035733286221917196172291410114375044025647448205188254380921264608077302195227834982541991828450868268842676293817931094499477252021598065789587231905530836843295753013228936069139335370184320073384255053468144233182568884383886125917853754681660526423552866097404346962445736913742092314299833103022463634989217288610993737190459606962653052833403930123483161913084950537492446573774307552301157678417607500571761966098666775376240335630059600766921036631434270922485981723826606822789093293557317694195652219786993434903145113842614413998063965161193272732754763299401662122821834917590133464519207728428819696254082108033930082340051789246795442655399235553674039120727668243421985178610493459593521314830627743796381108214807731749834567061437670541893729371563059122681087356103413914722562320744465163019977762326803002131082177405347659810616663868463915262195536862108899799046602928998413824497644386791965382039867999402435898233477848551931118999916362736388064561675173930526996887418568360733546752978805308127672433375482704054317630188120061460726498895163498932368845115234871925053991485971151097992116559298517739105316866965280129749402844970781702892414564199579990778975627492016984459952389631168920915731468638240985215206725399158893136825899850910114833529539190742411151492827038680707067309075184578330920937862635398573163469454358413959544638607343725194580783122109553477878272759578788820895952795297674594938933731326480930711037034827235114800172084960649756322928972943596683640432065702616657286193190941094590426234944308958674395357755701059202636823622417223476276259908025924659907745566323331171317199614015096350959332776601724507816387756320983098702186504934566846777895869303996004517787292583192209628401072952063580394288261180397003570796145683565204491718600692718084456159099517907313626846351428422822131240680961354429848669388496892066470294493107383640485146774277927686591759497846767150805157328168117153273328863247433469231343820626837270606585309009852950049645683675670911461753190976683631126009362418046145128804727490225880168170187102153924569688277441637913669192225450561033378884664910594836055326805800612359984410009716346766938251926508473652960592191394280880729322826034109580314596192080275946129935319954122414977736263071845135855988521820275782701347004647660820444735233358474777656948890849490467155742218224417252211068651411236777267184342740545718142079760001633915160011269100029043522256528314828266254632188092767917147413102468894398824889649986816662639974688642756324475747288220816413833044242329903108821324856460429387660252170755498279485615433482432733789808128726264935757035600923249626941464657308288248909733755151018269748085287081736553162869705691142484688169857713808290332720577033276308243623156821295966390177841133162601437494717046606514848336485195704399072192679121083614406390861964988327046883749729588578358607993011282533984413708594489419213302150639293733309064440913890867499210887252383001829942402781950803421945661316401490354412346530210207197984468815450103514201340253462204992234031423622323211590550028102811002327388050307968038667696016758867493181542629717186887839940722056790914980274994507852897777043215059129639054743074402541519654160889523704713821728787658409171728885233141759833613935158376429970547067531625487381395603973695950859279077279926492336155167078018920685785858105103245647736299361671373796907172556187558761858917777151027171171823772080652998083411940029292587650731580976558175613334151653145979125997102797141470958812730399502734038999363628704699891883015043976848563083102200101290467116214443245046693025063096575098405436059238970856509457764624567643809578636590886291297285194526420159420360110508931099202625526054008313074382243300963780286941293094318096198502700923619617721703127185645119775258609269127581393149790535934805883355619905517687740622740453991795117453273450670540973781912182595446784787759503791081909475973386160094681714390202349901909075192279355605715556865004185814336683682221003778260948532307207532576939100351972247925875720848978612938870719443070578039964497195077585984063455259160067368825427058910869781641097639724987768633116721030828209826608378421517369321577961587313134607071473819467732614838711801679099158177530027906611803086459572009960238335511582460234109248138571715441967049415618952886609484219711008308972168081066230109143582628965714115053065439526119897268564184241056613757263343187370372436913551306966171352921882292963616353430853700016449547719040244920551717507782102367401461821943802084950280757816795512874523665180862157293755268132051054608169858826454742115836045943215423054611198886896447234572685821623355168430568741963265751107407772534654402966605247157413102859574569901476616644662503225050368404165598348256052004776912705333959638419938497862030137239756409835891654761435134249905634209520877518273274708487201976505222108705987854422504799352684481892659548954284864199997459940477521922744808382009814775778419247011606711755281997575451583552699269320110456066366295423378443865208503092725801935908011753134945424486132467626898330540263417385704143756640874004914818336885509783127698260635884357189712708418795164283496291464033148635442994707182259950351446636214176044225076045688573832790965341655622039195219687001683983798325785034170306175375036586654109769231054238556907107497720281052569487454462385220025214564008795020771249598570755471413823896830803607764314420122024872611623190800833911974462324151228962563319830702684004076277706693486580864964111286128727257665287232542565021460484564131235482184692238152850422454317773712957610359097163006516464287154374550765337163323820696645943003934271256414509380128276592780914795320921699080301199985861888842402476490400850829038613832466928706000961610075959982634267269844928268416445013159695034253584817705903878040461144511045804876737816840875300804457074054840090536344583433504458571492183050879862893194723891185112676543626597263330576001003868434981547479047407166038277939472196654607992920238581149305029256953284773582432502080077463701147974911894008869286816506714157952951517593452822463978054339247280773412688355799949818665635094022151602490682116757538191934746138178797809859835590180233649639873801172209456347821812075390943498574455243196828587338383570398368188303800888440126808820278548107269566722858081046925101297135344489551627312495384543759810698538236923031329574983135028996009625154470321307087440333960213616573225282666531008049423933615579441739428654237063548695818735066906111630483618928573421287579668001610997292428158992057097847486141257722675744895701144174694243314553998764926024840540624081491745992583147333208994765658796854540346172027999390472008199295488768497757278948078693212802004589469518005519399788174394941147247135565967551551812793446715683878593520392626836617650125955021593552349725680780434416981110646502765677706435316030153786617057201088106408474093220724389312704415419540517701710832778815552100279910164099746752370873636899496004244123088774712480205841363349751252102857029620035402094427860746665049360855002874318869418647823526591818896345536501898132433553542909728356723586651735849618522900792502863767107780260913731984691424619795824417891785660273075630461289311365144976045784036283467405917894351537155969002558702586860322801570342867339954139252001004108922681522435151813364139990651499853024060375966273271030599555937111163670168955592539161900657030575556890231743044025790096631455408707678339783708940385154746581194017121546445869342296708729875629030486067121064447660757569620326602672673041908997491922211872606573179772145996931498487950338416548230889613381228887459903726257953205952377005350386529800312919824592834792423724198012460716429962108095128734018244628150224049400350195486616327753623455103608066977591352322750465158225586948322801535669475445024136490590977481616862496096633797278758393339075246528396082832229638937468265139180485596035055201706414363437701014655453280106720360280200735939399756810315550937423473443097147653871576536620089233811789556516005777718038596043585287774064747694349759076114294836271877890466999950615280210241400032199110952622175031825780378577226804237630781718269207190288351971627453794901857735842169249586569382060142263236642940881188664423154944018493677612526959200110914412707320884950715445553764114069614994275245613236896108495160179392482746053517918335322722208024293181932916342778514770744446474492895952296082814191774679831526844391228841589529513674331590145485479684217370401032657447734947363503659610467974062995877711233897588547733581229739131672043154387372506316631035442397286673200959335719819900249447094465314313773235515046170642606098508336899578403697448190186450175296546683973854690232920714625765390254188810928420210946940726756806031337035979681105625577649411003990423615558771310337830031060573319714576893024234967013051084852804156343871156199336268082066651157610581466511839048673808943110717614189372926323357699610496048854424768801436749965089135512336618119311046025224863268839092822834038227190314350853648700212044853386109252297236427385180878539528062922113841520560823478188147535474828204703268726577544847106821340027884853832722179212912214289519132882050891761093303416126718112307005429776754218850418743375960775543016434224120875218834950417569362947974420522716919742391811949224157587085250786340351297017529544958960903067910090677745414417833679740049083833184061236332127889916392492227028845052377222448760101210867445417503908169996154328320732894772935049329079027151075183115159719116994532440619916193850125201588958944170136367065976563381118019540102887112325665776183839072130793764592369740342153103399290010412516934670492554353536222078261228243980254861261787232845792736018217564638103794505636575469572274839085519147479154482590944824756606864654477306692634411758324176874544595613364036967012990984140137554847462455089570689448897324046430801350899460079354589324738238448498077266332273484736274907495462029842763024177582248164999204917510689272582129557277604705755386736354934477526304718552364673696748773913377425548771373997750481928749370208072369392603967339142925490932162858400595227378148413403461303932220472750594054904901937838658740338476838278538838745825433946960228542710529427503681632001870995649451196265521543726095229707554770386118473971305343741012247896568801116321374859978378518894259650848665023105760516570642126127920989524755175073450026175883175220759654337463004986999552472845368196789587438534612422467661018577740972412891519229330975905274508442942139288291357456842758704948359815565454320025253084087989131976672559997380011773301484659673279974356205081247172227430441686462217048404705678012316328018810805500143889952785850186973675988684195205837129304428303986857849194866665959632305864105509871715236446654755795531080462981575728069830238594140569208775069970644414920887694897610453349948090619407341688168398527093006403253032565317249407577278270879172350895579041698015509554842257409593928780239740366714960007799099803083812425806288854569037604221498766590840310903840828687862590942613503825041010529075264258440643394992782084459284833669408074589121953535706186285373233585447883860584618322709119480707117782222371395091375458681698297379490704711061455634825114261426472733528651234997290134159691959041202837115375439633156557410238263541802411283559594195003313510466598369951639429138220103515666993092140711624656569848467967162084750498801258444311696069899174927267468299944965059039461934117658434191509779118850044126917298292842169692746959603019101673219875697793290423871978573481366935207655999997394016260974735640198987742938678144909845428431301089803666030232238566834370625120244682087032009002677892426366342610351334885025603483253998242994776223843607398950720492961255033517269872263352428120679297461638501041180821308649054615904167720396720802526565964509363004211929320249049992927541763258953435264089938308586992458946200891395369004206979672862929424496693974274480972624613499510350564971434981784252205116857693456383137883775343901423247416231455212760843074403056650157100415615154913189920314389383760737579145704080480860458126911616815961192474424623990203462023894788298618004004009445542854598085271780677223830264230661273538924158787210304931745237518820115333339444223629514009516023108498283305635053547360938124928565907276886263455071979401437533586676470533205139347413335439665256038429105869614922581490604535705638080642922330759402160430783241918498467749824492362720160283414372712495452203648213204891266127504200996537813339138681855717239024875394183627359987413249750440240585230974150386132149191757648783301989294718414410429496415546154686716118208703815689358595142021469571622207723105811471679696154069731056660025554436837076954065387055630557124606325078652010950540120904908297128062954596898757417268763191551596193706644201821360630094085247492792256884780242925367489003463074356314262215474332651684774644966848022565054907151617388704110908037139661208684070337381427753081430321868685251312081538304392730842790137720655621826664480946179846411151849636483130814859948072342487204712167084362427527884183558605994185980496355075518418333200027179119872444029047190035682111935145068930512222871186748836592318863309601360911863063198343454345090986415909536603258365610783113778698726230443211077946387549585880005702423857891256535508093236510322249867042605798688932493610759716273567690754100336482878818346872159626935898428793332941200236820424799743444893858120938796775745797559002322307348996154835110136994284233196447258819342195110171384461045843799092003568533031187046468771943866243001070058336389815493441710560608980796157701671090854738215153428798245885644264822412244348175554186057411775028346010488697576080503940874003243055823679776167543733105803078287399470021290326660985958368890723627829554056428614401557441159335869877084454501766718258568348369199617296329920787947036288543914619857286101715102215590577257160561082208886141611572964620391573810367149396155823704836904996967775302721173049646283123142572026197538838139775708613746367372524480777875609652106577324405447965324794825768797164380547741752222041133234408229969344388085676318747773490411675476040825926582012123224502569929984844742656182808128598437657045420640738386616991143525137786796850556834665610588914931419078614452900808364627511722240356861776965524333193849473878592944305197495966223024317344437882489513107138834932613033300994281276851145836372549006966065750570411948584908588026059640199420585301852590914821991956645530944596702874164534387739695338357065776129836448441180539279498679980210461403120139137054002181727379223262202122881994336310495603601539466098976313777001860052459148332984354251995200395886296235777528602234944471497196875081107708490755332018532051978960354014404052895193536092998019988605750159364162716979113066952496226292650912871476467516354905627076741479987605376629793367569542869498060530120172728819207092420496831768469778936173956305625135963689295070937768775354974608188506513521383209362643269833710567912816829818621379113236754604283788443149971047507912546583894855997225550213360259968389367933896649220009887518736673001730906387703476412622818699015916638211039541568057833937234926801796447182649568135061600613707774619494706787831050320157090053080806124801836989637593937999289950243858977711000012822736211453992746678852675513374316935365646241072707595846755886205411634063773358165884926351614388711224680300344418123125409061501584951534919991974092353856738737056617126148866242183407307541022996553900258413966129034473659953168448515881512033859778241230666933760335041592548291347379827600953912564996489233516078353436664174204010860009836852146084769660318502674845344824117850762639499340338741250077079908959801939816595670977920458195680263356056175272859499044727048349421922467171813477317935592176120549669577595806886717251522113646332454864172693757167984180307641480081203537316823242064038382225930431425102633074171239628421485104388083702958402533028560390358163358356469773316552132510150438691068837115660044966974394037635422858270807643647772286840927004438541506006891910542848695417643326528467337623557043414246751208318281641810162148138132314775910600069404418177964463810484312999317182692200664869049702505471925026193522894113767723683512758737374953174438561448611590564699424229818335157636389039826250967994736517869866353139602811823409904721176302559927800898965042046877175234762164496066307738987912090004853515032345845408885301686279077256270204734848071542562205959854909703186567933499577611660810430498339822441607905495387635515359148472401261578718453675056173180395891455274150311567310154359503466669873212474985090363666574736727061313809208078604583289596194410046347339224329617709503284298253805466068957764149466376353675456009090818084332117702505082486184578184313247452687697452147134827225498674820147232160229217657550093031739433963045765109614993139430375900290025792365685145793931448393696237510119091754366481426821876647678827492322976613145924374439670959029361804094189248565778712937650472909996176343757387545234831877947922439347687417049744242210489010679417545828013636086934348031212307964457457216102815992894458975566170496979500728045591756545572929207397379125867228003884859750276547442496800017685939645181071755111454892940852860090041992327559975561625776235914260495567956181438026101362186771708897404363302541298144388863839029994004222578147007601496929758884094511498665886869124002378104108989169319943964102208495521080655293072190349893765984776304842667468359651289709289972986475201102190893082942463495854858981443472332474275762753114376498610083516370395084708007146611078926189616658274042679122380498575416343926703268244271233413376137605201699878539724910122446853688222524065864905962443146401360446186029025194188353566944862541151496095150558135136366711025008452769259422730202315792320911626678312959510992454875186350642434988368861401001648807549335926976337842721236686961288676984802955271397548153581441268687653185603010376761885082985559183568840848218640794421184318751854694496552187126449911741555710170020876523409270635603923957327237743244078860852338865861564640523752695339205289305535418780185235674020411025335788889677075516618152964908517988202119343414154917318343099514439440631928266746676395756813855960397107481823566353124384308530823583135886775384785734767402778717866088183532790725470499849850532065994181122174587685690367285649719120229892578833674698176404902488305716820139309230453918690511456641717912750615421301415443078621366578619748643069132747470901127877225380269255419035568478716864285756992107009643936653518479064923010236749453653632157098922302783848769044357798619380510129687018469810510317820972989096325876753896583519146351322111495919167627068903392522873656446343405903653109419005252194943178275056757316504711364097275730186842041018077498002902038614617460882541954837055539280139488557434776047872840531299279106644037637233545664330944161166397687628836975843628996724429849851541154059687816843450462850236806210168406041244154571529371260432958133675360650705641793938337291359956308472779119147139754379383129660998032052820602847332847847557743758160354150228560106399067426290598496806750533892223998748175081320872786686720252409124505333988028941816076118158968093215876972163214258870645763137695413990797270495182523170465668355832854204278830687748967990094354096175580729493644003970108684932283507536470039596627535244468164690475326034530726287752683186459349106740557249587101782672854149611415691902353561896604368194669622115321086488270699752229734560097164674995822479910965447193395435688811449583317490916909104772341193433556548108365668899746507705327187540713016264761294081436987061799463156897292456587952212568143850747081239673230990404298906260187408624141453085445451015000221067044811601345464140906129455215746176819202388460827327102730658629486289936903172994740202257674173278257754808690877188189682250818101056128911228170907013664804964021875167153245527814376652407026240983653388670690920050187942645601495071696226285764244534673064043861421331975754320620415684381497592617571904410962239826023179082784596423448074930441247102678260955991703047358146271534157089550265392517657733348114308819693077494314116709405684232828159350531015108389108255443801394408180366368396080255792303053558952791630922416354005930832682364931634082391655548391534099741095994743461512460294743379418832672389366280149148429934186152618423020389036311764256800689941707369312709623803061027374705899630073217266209741897860807672829074806950087438042305546736767553643848335343852568851470487115982704942640662172507448958595197285969316763689650573725135350411577147748573037253415679052815905624453021841717222643561700871435126804947514959145703268892289417303381456284782703465931124978392886375716267614161607726198028015318800784119933237283147037083508853191987896521603338871937528212170464492962169404110222168173049177889310998517740542872307327167767351519957786593515269220342554164889698565616323427031899803412281771730622527054639748770500108004238825359857645450592011590093360084647655812952232692948909985619008073271536064737816414426780608215786149420318878545806018008265440207865669902070805003392151086558422151838654585992764826385738877036720226899297792579671278590453036351310175925406294649933957211478022430743990426669522467733582692802902826054092739035849530590187445616702035897432627129926947350407613098514054616638329841052483521428414030762080788923464458529816480906387676312094760475578230933731081247926771117467672233190826701478283894807265209042176239067204208734001047247466136926974802505652500211243213294339967959651067131139906745505011595226335468301268179715197293907279480223298319286586063369861966425188578659777169303955598793305736904835909202619115265944670464317045798028211471994149684462582681256973447437737631307413026876096076601768343754415991648193300801441322762745315863371593989779720564199855798845478446403637745362205112918289365738414275336674627261206759810543495800209981371939067328008858484192794752632938180901100940307876853283412803014195994055211700304845061061449968702979173494648760149567902794576710497954017653017207598772335941445648585815021765112349066291576228335178787557642961254869958031296002426823489091729756660564428976335791395630507049045635477115723206958914722070325677819970228544015270710439197679074887813490308044784620260088408870532010240598560706676028395363712883021641332603860312262968098125662615740771537501880510879607047413636052136875969879386543871804038222544611856763114253325192723887261003221053309958043670994746957418255146276211493608528196738242567844379212103728633282304489001825331800173817843077147977735833047811360194619057395592709837932587169656466165518350958427072105266919089263526534928039462422497774977970319519782016199122467361873751363730138860862691862263309839360999092519685103082074159351772020799427417597978780715440697145755395799019408705531593058284905736221790387997407334186955330401111674934626784529699699812470038012109390136045067919597347277704161770556166002251951682021227925537630568279776311449327168932251168054189834263759254625492755550279151711598709795520452315153148984483433320623861135421253515083508972746251346674096401689076791922258930676388513706043507157746626736227940487712977243699308815721629592824792518841027636173996213219742919949608612761915831897447930291468704043310720213442128937231015852344245185552525940179762199837855274798151505531605237151440432449721557241956568870811524607998172341211785854860692530859709498953479125775925678869466008062239739969368822220659443601115291114547162035240301450997496801442030907872896600450131502102239102320325658837954948839112188641944978571790543175172712977302336803982173880184558486545488576244469250691065643662220884811868814531767150587599516209928378863061455977708790541623193287363096899843436060909781127941349979391671156010828021131595890968119841056777078941900828345206161733564244937371451215223387543347637911979242802624053862079393871358450490932833890520428586263981347702921377697806090269218490305745914929811731449239246897761233017563754696431975166177047864301087049482895917208114495893854043338064844935419607471122012995609166257513960310925461259077900844166994432783194650651788358030219699261543249862741155867186506921342707335159621848912521746045038254384012281479370916244858059091290461792249065939684544972230651723712914140639492912594856331440783183668272511355327118935222847924857268184264705256470192959736468461960466404623083503745268790676688620398381752007808956601252729064419941191369880883517485298885265712734809898129776003182585464941646103334346014562743194864669678811441388469668176867932376474010753626981107664405483856550048949278843111834885040392230488715917534105997213913232927355096340082505855184200521798460142544191726977307614839567531950453908426744659702280099552403680694632413231849633462030156062481009769942577409490576587985496723765441125309657153957385073313130659108034919775162726868641825963248587621218457003761136507538981166985472490558205572122715461503161490253260436382107419173996041326106390683700759422104201004275635006281635307144596103962639349864462701123978976131036889476822050555883770787988600900447857508320270898885869140733168076193850317720923193782678453052894302018560455271724933681407522041086354773311661968454910098208623233746590789309916147392620299023362823629364223999714417635419359484810560772012748295742764350811476248232694648778904390912950034430341217611793781656851632751224770504588023218624546053321098385401199024758352162306485961523285950007831372793830326863735293058922915011118626058181106195547275833614917126105127640684831278819303592321259798281144100423752443614089645448471626324693972841727702422096870872329973092807337399006908948464160844655139975218257236690228353467053921444557453514856550708623904242234048049690626158492288738298559451737267084638853029299357093837216340377051910340431180970138804061670935139973600258688663207508510651313904219534504547847880511339497079819410530572132120045620933272772729932925114903836360858874828516911269556035497982300316602422853672981323985835274264296743979891390278271314779168744230131195820037966083748279203419558633977797846067692649047911938404879744843071295789592241234985683438913955978290939526467653116227580821667585723638114967588750297036113288960639350527107515553646172703069532815429469106123037864447020240038601367467856041867423203970553759772602190514332985592523500579004760929619836342990330842042534349914178336021842529200159248219924438226957372849792491392025616187661554848667378136376488140673791551682826929200168857618560460084043780585673410218182701245879331648870537839631295347891084660739776697394171602735080002126646505005399203209420199957161752009382846485049766497661375551825046917022504500257993994041636800803523284463333916538480045448211796813093453619986282005985541418474322043886488066646428894154329043939066806081574552120646441953659494158771452787921266411666566989595635374214138501306099094736496126392026705367586494670872990698696230553655662693678228209053626326965627443486895158031390352969894006043474968511530394545269064436605980125790650771110491276299889952184918180361620332545273257425311937503826166651082773589670736590660018746836958683884226865920034325131898456570466025166884014428014221747995314346921081880080303086156787806467147073113496162479149388908916545566697232426743816345693376203052207387310422589725007714198327838477521602274188023637586973929003344359426180113269264064382366483603735477914189732826559911047990600901862898074099333187440557744563648140408349425819929254911913956170348793761013262321183336417798235163821282357862665676370685772452747709133278254540861837438396975099951414298206896939013637146033028289822270082366943418615902093008606877436779321104903487294285542813738603645506959880660743790567387642944017746307169283791852593477902190194713058824626626254915584445230874994087458585374828382214873218971159173735461487837308672427051823287502235889150164175084355408946895983601050553263637808142962816790941052271955108022340136869552722509864756424003064371215723951958765058517565771331326535932564521715498705075583457340421725632669113930103598650319045382993118347691982318967400671857380392806401062626391331147551829610525323350945706761846733405277053184086490997020473902893179308918570464794791558998529984058951541652072767382982675028097870515051575476335776427058547652077707575171907189091288655262414626197722060207815669560271325724409032374645830870832099094462540417541847238832302301451091147983413091692875611020090351611668987571413539878427378726774711159656838207245682974680494919570874894874861251803971858642812117888742250240162303747852654560575488376462880472705184981080780868029514306098948283246598914749117439129731980967820194977780998508688792254452429866671895370862287404139104288644327183777791423696128622444951131004897705964952770571409919906441178588730980704799941525959154444032467036517732626061377652431307260479255127652283925193100697369868407938654419635938413270728460931332175562546395443970467358999366692321316594808770752588624671906277817131808336745830789835933600741154969865781523456889292042105715745805504338368195896805783379928073636293799139185426632554072355289556965716387295013712797637764174101262121263484349128138005215914948233450670098710897282742247627719297262283567333926104437596370220893165826538374154968148715430827881665441651620001810346711132250984042089080087984815161398255572998418274528559903972385712427056092429563975833937178515906622706398099179780414272768414950469709003628459703914650409531318437237772763367463865597448284645579062421736719289822192674513617994381160044397600035486493918776360940145283513277575896671537909796535421973923630742250288830018405188548199401774584579285454093778155678847481613239012883585029380858140850193533407335345375977797427400532801608881567182718456220229886171837716684976897850243993176251715237969552190637320788271539335507716063059892452834362435497959273000138317818740064162213483001227818232993806454509091239923734646028851359463182543475429598211147156331281494745848869351062019115166632438265976266244676752112663720888645575409553411464371142863964749581243843609309341365487864698872526394470536711599046004209314174237804101248495086739609399103316409030312331029707509954395727543268418998547965090124695915521264936998213954582845752056817630871003529456922288483683289858961908231956727048712995670989435791230968570645428517296791124743847579175949114156979407050427406570383227583120575041521290252785266217550102560373995374114194701233267060809159741355870371087607597298023244039154854451998326490297174029425140314113297631495905268819657315146068173332248412066921828050400509434929225146495725193381461015826627354014725156693193539237216739458546915228836264471004259195967709346379187858998939651564484845326777231959836527531269574107086255385627787397953162154826816941740837803095409607632578236504645224993131386337215166422180496805848499391377121208935240638834464661010022982350286278619691211513353222319955915201366714714780517989759786149984207131128477994843712573234491039049803828802619497900660925760837829503897040079935858354866574259751503577588877432053410082390084291526076572033709148216426747170306231761037979171170972778929398709144734231503995619306051805618579714567379222456261640549145076014195275084476338818388558604373740873491638021104543313263085302235011411347223292636506703789270973952862242556270513848154227940018387535033164498002966286562270324840324349341836032152654092114734309321524289271369435120585708942289403170675743848027628206320028699482717998676061179750792322738395311321180745574056663906441656674437674469499649881783472987981774186006986126468399199985422796450819324914425917051278811610773121234558571446923298484175106679849688291865919646876651823326940050114182481592574510966123927785945873851327241749142950172397949913721927958345008085145734678885454032456112655046256351353397342527889858617460535531178166645094036059271437144097517895419240593449169571907507566886181861107774303007071965385704366759057290964203307143243864569623647031080335488902870375663780907165373859134818921882872614759541305822078037827466644384224489027927968521408837891040188168492103928873565326530066224767337264807591843618526047285516927519322525294270487902001079071396869509667301786951078991793135309782812417129299624788172370741062376022383133300889240144544086126903841332690544838322794470169207386206804150618386958309557775979155288679551475459441698672373142668186017472471355574182460284400043115400785055413436852183803181436627886183676348206287209003617955821058052922585124412162857091413052465038903708515367612610711529273545299768943902797570584267240656508365637752485649022289686094602864743771362392548847013974369854387792457906003363699956786742946084002494876485806461881833470991759149250088901969445718555523689352791097952151917008708530586642888610947182770664658594015549210011671116067842724494736248132456755887743888225491837889385322703927852489292870217437813618607224620146173607704729929454689128006923927095215428864686748024978678608504673013144500612518621112206819900352469294327145629211114303740908861111079359941124507971182686131221773322068993428422336478344833579459256980975233812184622992933046200309353221375478243499426040190744699232251083713026093953352185355667668484897063809521501200464123580096241497203910638606697300013108170159998564688119137210555158370286532128725192349946735487270441043857964598922296340272910749021844686085100640837555126870570078135872499879461688395581049079549100169634826320789272752015934955715209660706128661739689432107011206337843891677952141710695841182862623907435678630170013945077621823163734364288474805354142608280881272731721451133303511837568739500884326565644445729773364052316306054415684917594725744183712987746084978664523680605622520968973123598172368745972426419247742690720143099705943671547685393945759291282587705370998312814266497018184499233691237247089446663594759060684224749941723770871408392140910283480544275099530719663008243145427980081265965613876903981151747381107634270566764998249582505826562920665191877799219823367480832333765456333007741922019153562202045502075257177840323480986087439906961071487593997887869238108064977935744896876995790412412710604055211743636560092228146617087003243780034553691002767147371682031242656316124288266186545392152775705299079312678515541141318555917770284180394446983842256480634940171574682003437002929477424686104865616341376143148766905579543715620769656246398490762495772610132463708617139950872076395146861407915108610522499300425777832715458860349129481824064399703121656880752379618182021803810279122432542895269258509601057532980380032506508250416010147162327107155968809995685386638714725462113113311538877710245500532122640144100416136063915902526045797256728407400690856049411285190590593400223014367827465837802660256129402006051846825659321324318150886650561576299764205201969793585042015397019287410299707315485497369604909353225853502356436891485993114077308854538838715496792645608992712175398503739453962816884117114034536843407645735482878760544647769055704671050753585720379674128344712837387891451428766971367440410588843017535199503767629310622384105530315286156206344268247742255178912729529138270653220139853239838833837564052033334309588233861477164689869388285524762430764672741975994855560265156702841988090948614183003357289445979989851566990459123818048914169741126084329567917196199547192660711615909164891471958284443972092448033136458742587494510014079765794236793601576112853790720169721938984519606191029115414044030098883393997827939722483315786942373865634526464699240570833447017614779506028428264782545852611683092457408644501536981908387255417117307008903529393215562385223527619138642435177947206354582854839619625376627951096846854684748300831626615141253823578804961521741631710150816152712355684140934103305082815405527007664339363515885754860544137538536130236494337628177643847282056687299659574269842825232175764151098525463321986482956707506381497082470871489181447144274909029771455138631764380772227688206496512655791108027975009421414829113620730021852263271547073818249589726142178039322379660478854239810133691687530443746473069275638079336394506124900572739582015415663245398141390746552157167069097528012958120326473993291158988229836184936296858611352356078379274227259170137394393164240178090206542604725112311487887022836937504830545275850286791728809907291617260015301493493280049282878198281757235939434512469096871298860124189112919635951124145614311282114758079681294916180301674519922414989871854048000705642187171908294967460481823869589848046430879545911569077291325520585512794475269746416232779392383275716888089956197252261956328746844325396998439026099707057012471263201617468979936764045649206449408735560219433203260419251730548296271249586249564194929464206433046119309998535914290405979872890319425802669117404499745406606173057368398435572590582934875073038586294877083104281488844656915567981144918215113016182226710698210819553348866689640282697717280625519576102864970115471299356914111551794280748306082046693047815485100735616958734111858351546539353201657142498013147242412674970130726270801753710705602046888104115851951917753662665963936380222034421758025833061245360356074726781926562414457828194281951167121205979559392594027079259559406106611341052970829852138981855270800316970144814727731117114880655355583086489506782843235237209655007954133364349375297002704943732666262088355410296612710733145252367097855661498271285810609070673419302530680480744241724879535918016925497198876658681890999404650727746849976898411852195832107200192204031094916099385941833886689839603591202574405030358715356378689534179830567748616492877654336590336857282499240401043540069362643787359814309222735114788106468472484507883196420234284128310962086187459734554038694970070770607804747142032150184543921989226888326413757023454065624944319715630736906119494169152437770863662743968754707385968542498853026217053067561101744119262855449784796551505286241686238137776500957717289556970387851800662958867328571147413795120507475109905763458301434537461849509047110969054755721446865047352443666098434084405187433309658577810794618115981156924740186237703113184920258954349309311151684224001257114638235844614347053393936926744235031613009480667106475311626785129076736484838620140761950936102472186751420403063576585019973649224080701424682171477161855930653683886003045309103140421851364688518493609536472089003422041119419230494593231119332085572050451558278991034385099845200135502537555642628216858714897457729829382113326980743627842334356981404526685167175799770919439066582806120926972453645780419534761230430435908471255244871279832005170647047552652816298601810524339046060432070192147483626734800779935321925442208499306037724575011352247484134436965746643419813326648141272317186170565020903757331174604570917199310431098170379822138926820297904562260105512637879159108941309394725964217131250405063441253229977633114214249729654505984377219023667295174900460439071872750880321978136798407222266735308960920319923607176197997415976676017483898671943417226846576661253820065344944336354506466059246622792067588178318488529940233219494032202931199180610900625137214394947572402741542705752918037666019392867654304989153391647227116681715580845389108247758883673785017653711360286898713478405611650802367518657327710888993837767332964459487707738071199807107040481982298380533203394899587095267488261008799051114844064698165821932730036684248421300870086385580993391837027032083028931985735607523269449344633393017862390680465576137189485495782763520953616901157384023853849016558842591100029613347228990542782959316348634108424288754762617503028117161577555519597772052614993048487721795426865815136692010989563350304490582067388317864241935285982520637920413950426524055131748199875964714001176514646134693478387837763000461985677903701863693590579419251827219741314087334867240267940018712276182201250522987755204390415585459347230666194750591388198072356906192813454385803626371130855003147578149117312848665040168191017588860507039178963957037566392272524324942818325945863184122954615186950747272269215563902041666296753164705253272892022618378700945912130571259030992961482013484292641251686644306425239067673493388429201917691495399681295526068880023452710130994643041108200049942909883514635802062018455534959535095872892003617527180937996364589985120513058298717794700096225489990830807876428724788570720817826528226811985585316457042046168813902215928462108310739437740544733778196519881691322421056666358143717497496947784554201401801181530686663620449205460275977263267604990045985349718165298391608011090017396163333350691329261143504995329308709097586703944614421544698343155442388450014724656301606996381659055585976401120926388124322712220414543379611026928290001069187731607543883682428932132256034645873245463967140569335606159938466028611140179107992070533187271667271081915020305734623521119075555039894686022095439755623597036611946502058364346132702042321097847176583928657140151194527456734983688807693190033643112483734216780099296741461608370385029183059114040329080434115574074834447584495552319771023069368675246415080638840347610520481749374023626414919052852945546121725984250084366418041902415354302188472488030978480106705590610377858643987243825821259403565823595115527941885757475353618982108175379767847093072764723274796061631871306760950500253170367411231586817194921833981047770412271539563532253813067965478695710169470185534193570039718918390995248143437987445489344075429751943693190060026155959108087926470408559776720316478150809148762233572397169241981893465330502137884756044931917298019750129241670113452472750068632127868492409838930253947517215729223295464329891071368016043628137880849143954357787117960671066353423354416163883089808351640449908157930894674172383569741518019448881546698198493771193305912084749269780279955766231190827366079389596116314355075876062037609541292556313952379763090724926987359358493397011901229983980065112240351872580719225375239985013550438303794090419993138062384085526939414396027068439012965229789574660540777680851201552891896323069747871059719698836300868482063888705378096300848123847207673190030188918844671371300432367950374606158651420217348410577223900815676166679884339586080352257709012451888965833003326400116801942327041750960922611681634558913575273051035900349165027783954887928429478837236910221828147917343812564450226879688932116515928599619461421029119491399663428747381559826980500998668945343916715085793994432532327124102819965560706074722331742698542640277618566593816828822662775711753751216438085302080839884356910440094304180056832008032710169884438997356296782061954950917341398962763487581399460013223119759757424611320509203524191244668340174053215790127798953190930070751038765837650368954782264996098129604943788091647393233642441980613430252940614765140907172387249691873836962391682789061735208074499585848306665276557637065122814229427342467314925015881784375657267194845031749859839547709409745697347033438263164166180831907267180465792219078301844456125055567378364564818563952600949701856573828986914467047091622831864709715951931563888689113766067323990318837420648793701942172188611052713625128978695542237852415762990492272885861687414426777901931976391648029564244738372187837206807424322415137528383113689751345238332416937155745324731140896089747396948936868724318472090013185390561929088350308276869453065760251597091971829051289885477584278712616815038351618528064449750614691323613871675020020156774948363369784337113292132701555874859523377172079387287206202476955009091206915921558034310281926105567909083348472685247818743899143291514092362328067551582807008432962645009832427965821047406401231313703240157878531684194295820694784083335329652503499092103307818636059165906020978994374312069923597876395832339585271763251263131002074645527359245741465204315647155455576114520393010022124307621566128964474160934687230241065994909756791779078671496591547071744298579151096097161263853438250246629888072293753024874776953965796153369726934858673663127433948645388385020261277972286275215886574392710438003310194604313413783025752465912316621210833010346713956156953409251784949618684913088949876554585614218386487725854079033431432299838385793575706002141742186920915827085065341415790856562136500449068084729675663579602650235274758167959533545718590264952770932644418400163118204316205296153101856821364898668595198882787947967593979593879938903326032795760618038243353552474201200370143745253166211193104328513820682045785724639381335159585055917817610180435999474510636378720118613983136648943178944782035538203446040990435620676496063076454143606198644876002616851054938213613759891839336440474105886678158179518871817947327726484850460349317365681220803837746746829123263062647594019044236853698033100645770239915182789259201052123179041063963364852255590334492600660381689477659968403178062611181240658746873235107091335950908395177326749447726646823284879007504919119917016732900855037802631913265239126525088104636308217188839262863823018826785194985805202074010157592403783500361720772489516172817436925164969964447290332489729689659944889533576763114236464128584509545791764861039143923038676804651043590564342740336563461259399499887866890842036139003025239198456820857113511332803847775895074623524033870964686453565353213825228865849597546548248851673672630532754217273402730604528555769881711906362818995332241884345350620707241784913872736225789764562357393144076812519951666645389664129705814960128266418251951725787425553973126220662869526362160705376517519127314049083738454973225697119746032109233313816839755636139907931291368066405193822679547426636578839174639140929688909848960423819326170252835705094023473666393227819984248409040038495899746822621017503876876659908460248830609496936672347568770430556869691159001507716011292118074148954766091465710911948037052992061232378060730682373847389331457231717221691623706642665499138215233374416883706130241991035461867186025914798816845874976450435138740285673310657240328318882964086513576435769072291865811127209735273600135680317093186883036104672541964081251014421067225126968332877174700462718437022095991965675551087553382561473241367112520208257356613905902022745309911735065566237184644285523356314881321000571480789010963109523523991988042026566053602919203364941487341515186001017155986321061692697187561912783984938578762173188459800240698472123074270294784814137308444329535777543646492324342763169655420527095435912795941434351848269203193334131825806603984189878504340480979164058485341356626067886468213914435594189618229779923517959799703958462514549984292192483899813057832392237022670592467317495141475701621790195976078558278481886285002576369756302929233405541920401658087585411166429379166719073658264639373487045166856790230998107475711377940027309840614109652354146089771611455237075795306948166248172537569977515393427288303545060197350740209971236174490747217207377726517276067130100315983804948876268572591647126273300504460498667945760712240779946571492019044435986516347542358157371966829478116682663693508472982427340366638244336049880091965962148579268804568583265057187363441755803213458355753243564215059368248283579208832272470737261458311027628889983691636641160321639362233927360717936989727462047478096415804162167586225893468385885621983901855078407774108062178531005036205691802928906733020000709191377067510367436528051737736157545389524754491110306215887888460825345983520697968493063328467145525959224550555581749482160323955944035545727174422627095082972436966568594628387182826535290727825276629584944901922680720303432189056949939342777839319147187876281940752155019824475824143598974298314600604080068789866724470387184129729129628985647531030459624900410962192291268111182075343478021812455506423253880588824835453606604320588576262366383751988687392657915630874374182726880657870888942778589559514055172266789068246393083398489004399853164206952954442866891335332773015863151537940565043201371965354972029908453650915201104207760376020960472258180739762622396447286275601677046878177462888880784776741848141075668174121429738943131421318579039072482321092099606456181175568390375244987924925155709008587624131160885275765105958436466618438928024726338906091010175008012877291875547567560647429190394207207517649710068287111946292167609700372367672580008044727098347376833565663251375268545538644406647639165251362439294858413769429061881637193322570155645436552852125892699173540842213494407096422744018533446236677208741135266226523712186170681144451061990014920886777571868303254685764423157391510074445566121622965631675610884127263278941643337982804462285483743885360113816364133918543280315011148440695008716890583229453418745526775425700062532362814676052724014587967307037031679293164983556225152350820507508652857927730988676824906065226620932558035519116884471604360589996681091321917779840709460483902365660951612015634405466204177296166267338641902790761829415738626708388145942209318822097811453582766309090693225359052643310791389108498163884292292154157593495941746732241151866403054093020195941051641967397496838112340378380350899192584187618266857018306924646562919398019877364496302732861871412141857434321528111765983980818419512369114948536063161070405386947921333389739243265830433944185837870713685379904609253551951679558242308213405426137806391041469300268412200903635193005274493589823716334523748582396598176696550776407290903166616896258979617139582442004601915652315926827985548812822981477491197107348965255387863042002205236349940311310788584509009146765799953694086405286858397454456546094290855896705398070613334770971149677725528867651096238186998128018997496177708389769062329899803136356739164477265100281760511147468989260586614489720784385842828197379493620148953834826169835916045488084178929406346000966637834854065730034504728980170298446413440932223054006922315276574642962307312458544358299965190491553852947777230789920395454339705049877395420118876820445303210045061646758275914108237146739526001913300543576280273937655789674201585266191760281304564994482312830512722877587945256681627467791617163650900657298196456927339647727271539187322557978607223896701671626594855126455457653442816228677296435776889030649237945232987329201730255658101303988455975767587718010978744293978641179784226776157940227844886696848781382991479454439480962330195554891265675328686262942073668671539953538706088010168079619823005958334421240020673896933756236467761524041562418156415492672434102236748657107408324570462712810680937648859371066905263293494529591317473266945665159603992284567638387975391247806743510376270031230192256528989309741799976482348898994207308180338247509837873712773670079372600112726181646239183170754587535103809942475900859009533763228388199635971413118639992045890382227787556672059715475333016507140980322864358652412310662513526478235415287980108324841588863737538687198399761821609310956084508746402642436892859342397085561516497584370498809803515321558638881189932648470103677039602201973768773362403404821018902442644947649724400938868846374654453805799139055057313995094651176142564399551096446834311231974983076170189352580681851562481577292895778060173200019807110393602537983038352219103766863205531190748743827233325533660939588968491807778986363777904790946344046845941573232433259873872447861277544038481689407164649639725155353665071208376912452735648241608764471730411037619773811424308612111577732105039743374545474391435093530063956584058304932371695532843922784462234847705375992475008016461723146012736492370601081227375831998871919686783834954862975760703214554456073229538331829410090416517102273034948999285851631063486048467992082353828284503962601649178156566936310069204887575327127530078320522154586594241747519888042637874601143939531175081396673232954902105656561055157528642161222251232027921355594228925113563222209511733313197550445304456545329616976248032928495874605799704222060126687775482480243739769550688750567773061698265807773318872993262227338326218451999503151847493906164291039757967989248945456977858507842448125504363115965151354515574583436917580677089876520532279355574292329557589984784635768251825516695673233884932077725055779458717874547056089865599290039182602270389577993055337857450064187247038374983177712272387847834147020731865562154140104489894087015215744079858346487865225155606160300180994782730528421835470502433028587304771023534497135795809184999106165278600677846208703466158127097758252990901352803342070313241560854600496258864795661693138156973528310907751081065313245899449955656908871927949613737442956376909963773054256778145196508032096762611005122562866836005889605564162066874014976217373441755291317471043732484084057817723883653953360883199188547901752707533999436318685035555739993432303368489624922365830516128059682490615707451045653553349763525334359475713588193354874818855739664835162661674096477880860365593851053152514340727949118223464184323029573238716571542025745217206940308226341870736300967645138057338375444351937987063761891567598646420416017167817709573642596871460743553136980661390744781197544813731743865896876325645130419101136426219337017523654603843719890996552773674873402187707876681726559917218493368352304984532667929898435591638081712456216345655199835132454440697214417833652179359598702133875340115726931283700054686480727424847212272699107185630129090225673098063473282762094201136182563714650560516683507103353663560245510888714075598468136201001786518929575073730570208339155008391474783956396099908653948541490133792889153629377486076596177926799266715770898780880063770660365053506321879245579516338419723806019097962768942782491581907377788480146423172178315272523136278064053385283418110345715660844239471122252242467854775016239663992969451008056395335510155507600821220731091159327914044400336667166569334041172710407155924006931810585669171972657355488054303886930236015428405648319097421314296272675264532405394788761306644512013724315321254946594447298470350925550266309545020622332096061552792942608337492821050955079094837929963519237286349366676099773102800153032055041779491289280322433589933544723786723091234235487641054149579829552458238200817918157767348920171007292853208030138535850101729344211611670064717638834613073534982424654995481949281514566935079969612865993852185419872066165870828728165477828729014109935230207321183579032149414915307766894398903215296026388062944384373685255079403157178228594411896884941599814013378659538607642371042078788572729402981742031402715631327445945128982703980751305043484326835691576032502289878685790695691469059786312342563607847810803465181980202783726172796914021581768198577608297609473738027357909080499692472309013024101005215457788606009605040745282034539445287839177193874299578965568380672023938130379171878943860777364220474593486991886316563233219271416880237212928008626001131159505500116930270045154312903769252790283158713357617488865603303962519178493259518750275109660513222721844677320639121464805464879102769538486194978621252003252210097020224805030227628049555246018255661026474026012671621467588398429645237226066681842721567932373504995384045077057216674694612086381323436649101806404504727981834393811666569242463109338683067715027658905694880749586464717487721440649927850136607649554305463937960245073447959632308228204556899095839258219541243892615065952648563411839221305396039076580508066677171555526608978970701455820411617429265685588860471672873117278532872292814152672344474748842108574650970134693778161418342776424116647941558353486383138350582566747406026418088829723215920778541047043569224000872795572606110027992140515048483598952538664130456417900002951849204282129995468933788529628755696900488660348869507189355461807879157511034268784693627341958869328737902735836241908943509731035659111515333563905614135936237413503846627462111869569154203042191823319369285246307170026738847742950501957720111652500474417118603696070366953806635116642138017903591953708683171935821820272341354935729558572024264305402685441850719321896404339392748636334724821116574576169831161785551505846363966157638974231229847811687476211846376522108773745561941626556201992780859502751723103194695486011201631828243297472833585664254610742861381880842132154025846043178428954388797034250818682091218642842615151315249259464047387035388181305611259576700141376535571941835419747444742006477526453733358286989653666384138319738713183601003555301186370008559076556672690261726529931362964124368773172582744945028585987199809813769750574197976133835318441618660181333233879952416139478447937380973419075076525412995973949408715739602108108409071824976899582688002707952429459811913262056723014163504267213969429272228613317656018688171191248917423898083749013640695706489743281436182782376249113083546942870002537830772983706879071321802750922067606745706533246163102529474270910259994028100263117532882630776281803297475124112330337985767144901757013144889432632523123527776144969172783193227426054740583095405956948407453812916175687990347439414131776567267587490408182352313894368191876462198763120774237667962554661511345034811986759533852216324563970324673197159846446493801179697379575854265700048766728757086658913562359737406643667108458989828364209036407235402901270201154105794143608551207002197651341800980118816889122877236910143852057640234585128532617091674787838726781170864585308934595743980557848738221947561482844234555729940140978656007097422554178348812741045810947263974704903303567284244286786972484345777396161176528274294327355830903122607069671425182710945165337243466646879738056015305609853524204891250972878763884371095545147260685596043737826691907553071741570354776678974643389918414408530815118150566062064618757911350186202581555177211237278113759160349976877518650796471471836289524442234122582705965010704646521196813632265766737415964478357761449151370999305054569802970018018530841648737033566092636952500694879406184955121096455676838680315958499461933169601393523415679786545081191680409025006011428130318974912027119731723618157539304654437596355793584319711427742767216671345814753149297277781081163722628154566012007077138053337271547834071063258016813881359191930647442762374639135561431275731451819858811518006491959364642997058042899349649488352707483706187902199078624793299702810546186939493450443988175908587645410157339780677239171283780412451166598681742843625024198031775557213910325142554724983129723703119676999735775339678534926307717725104157295736484201079899488056484456508625558997861722336650786134773553636008812585035480377859649622617529268367344532280078760845920334378252291129991286633336343189523445305810705424121796888647502451214548573796454229224025570210883065783995997951141999895796991980066895971096225074031763876360550586066746894437590138869018693770652438236673386321298817781640938214208522251304794820509398726188405319252846816032856939620487303059602990732541861652584869582130902209911995564192883359622179736696192255402527390023726202009335337794744540515684545664421276755203202062243278254992388128378477124545250216519816828245759724314236940080674268198579289559356284229731808442941630163942205987506548343575155751146797080115707144869234130771390893691219136289224073478032930177549253722711139571979138247071552142785628808583336668062461627013979299580942867811397815936595702027765262262646138076504127773180316946390667721125102611564211959164052729536311673750310379578416205366220298771296772330136827654045863459749110857291099767366333036723422040148441652001111762222526122930488088267290448650446711410993210210999533736493513812304798046374286533276405302249713816897583312393741017227657453723952766295548746661695418912198442168258977204073216951640621565705927023283842164031618262817021856105887073362388647317408078707621385911151538584284591519037060159504737072943235373834432342771486482613736541939681273933292007369543167631245671105112167126092791661034789936706398752590495740983848271142315633350806381053783636633714177623512752426063189037001451435648997453795748279729833216166319156453871065570276787619334653469780816012501038898224939984628407526864846868027797060375163555241810771426314881835834129856455725036611631748881518437491902964525951888488795472846465013962026591218782640782178520457625902615727674797986529475646358527089230426174903510901931059795766506930881445432652412102133339628721400681149818695117411137299647052260923688863060870896897494998732092028774524345456005597114598301488536215930937698001189401422674990720720302688694683749689441821365727561231142516837043024318009564158525131454301401336136950388028832913447920560987342032391026423453915244588115275961876371331253453778587677104766170437382223148529704473252581474848585922854991925401115827038289632073725701956504165091682802063098542051869247042033714038716039662740957344462371720290636788077333599228632005954687431208741740297086988219470695747906372245566893666226920009045428719966889633406208852592249425969264816720865667173460787976466149660194647387348088540274951213001562228318115039401824490052857444507838567039319621589045244393735122398389688147049138456738914020929700461068195245346280162729008050878254332539585529823903857791646179881988626582925228967927527348653790345386593664121036394889774290840599224809486241110402077158406580835438586559055787438541291371252236172179792833179659719164744572670974998616198524684051071397472239681123221416709996562032275452668694623561611560043699334189962776756358585580041610070660913553340910002689371343745842410365673708351054414167000755913161281216223706057136598846917797517498519835302844271016266339567014410870642265755715316235210448051858393950865330677730891392407044015865010305155921198941545948739097227631320483518708554458022030670330263763814668981874714191412682251717907923219121136968210960886664366085562459436784513709756988777796294635134506591968348433939934141435333517677509349806919326702267130135828160357392752688110470642993751305457504090035208044396780694731948721945688469223532825413338881096427562131329485681292502783246019615637719237842941075735763776124489275563822293907594111752493233653753748386162660925259998139752663623288191050596589399925813065844204698048644589196856854798608761584848705959258208249963571629388367124443384236092137745094753461357410740683443149758519602000230887045228082707916341827889075971538479417204899127607421974713386929206269174602950469898462930903801645273956778556257285147214820302416587750973273717894709168701093917270124665870047872563797403732461236295435211139439994917085238781650995445254697425993522552125340104547934657078360489100172194666466417808965110462405334042170569025910010303328264074427768894611932741364676061788119900566500155883405644267835028314420684218732888546316386896908003414354708151084170113423900803110916131828446221022555997180394637306401015705909457479014661041144017229574949171517610018657903455567663950060323593638378802447008532469660215732196389807943105024099865418671040452665718251701383538641585327564395218828944405922381840255152901470607109860072018613881930014571578253653921216690377544847579557327691778776871869873091069267465340463443379010845240938516782016611033968083113504306732872538064091911865640616094154484443100256754445304878788461655380414349781619228236785720721741785801399351238574073678808224893273304128541476671922506470499504665335367336474478419710596164968078050114165131243560561802898961441326886750314630934103132942360640532882728365499516231927531711015993026365898899107558224519937153716307373480692430733906677033904946233360537467465244639392172215410484452605932222194121436011248261103963602535916632840567295408316041760080121250249445398622583328278968507052103698317211830375265304649747940911204368705111940828095306946442914801524286517475859447719413025445457610627971884531043203848341250689376419426712521811795751961059696240036510678951684709341317668742073693427832619510508302898946304380010742678803418318358787704701400749836898097261161325704449861095098660052857278530574793676268959662665498618906941069780371576567228079409804406625500669714335561272128347447198352243100895733782500165408934386819329157212856991753127323004700369220978685723829223479148251482359569511586590722049821529811812165362270812159851761614457327551156250952039434420682161489952611570370146046656746942733306402744246385728333473623833387489176821666027481451864804351024519448915254895122488559413801078324683663900925356001899533284260647776806424964910320771566889188022368922657100324266969791117783531371701076102818549222574746104631653275731278767667895444724094969769371103571000601537953860793573818325959212025765730643086527035625583420387341661623639045974591997302099313263658261240048660546126107734796989126650778420276242231231614212625551648600159526348050146969166798134754981600976022535539615116457082432877311505760229294195692563672216001068067199785277797162979420317195120793190864649574912356116896805694469317956535701609054804799625880976775314804856226489552142958228625383799121750349400937371697663276334624804177965854331907811318318389245965077062520667402853947054674637793147061488822697771823787600137355139904945600379249885154188020226071173548701025915461032823287705436129690152259221816902365387498594773015850211655779651587315726649407454550337531270186690081730492165587061181422057738184266368917778399919157768676645840796722744722886493592281315400268313761776773064404713853950309494176224735534504907932018147714315563226660415347853496936487115461006773184633437010297874131568623442535080785501424745670548226702164061806525046252563284633086859883962322640776491760916241458539178047216636523402001768251710051629998190603674994513796521715228932837308197694123082459633763638036283932605116145996227256608815869443393947376908104995181001989798918269051757131777446716891656396601921990138825882043175968063982082783655721727998231786425437871332236524332740305529588666951675589160717628978111765461932116416826921098324924257467313667224843994302714068999630754388679549257114770052735045643228490879674409231057686578867109706125028946168848407401893308037014101696119027792388731889056483848191777182947740354061680419292922685388276255116761779597378345078992907923779234717824822042545724100736342208094422939369192354218130309885562877426573649066216685950054014114064499629421464039493046834315902224801794319897089578024164531296328471396618261118127333669984778887527914429524263883064410302395933939095791424291497079006934089545458682221532902780682797422332600379555717180612229280252795017037969473574311455834291153898096240862212171246414990533401214308029287059227761111538296595718244089680214220969971273827638286643140800706414028640240302620914141495749838501655015621689445712955232635512744981918236244179041057253515739288858049097541450012433935437054229786379960057501806761877889434800837630875372125438856292444413044848755930104689284657527933856039936016383332179869943480549279894635614515345550693867072891148059473674855775246545680570626566513863963882408512940827299025747464471287859852422647373467951559075454967890401836281991051200162142287229616341427765631740830312215513009677045664174367842931278935624435963266555851405859961732604757602657136191631107491829570741625392097966235061056963175782983418113101185650677262318250566314550929113087236692717195096481586264858152723367436310076732507905947647844996881958779679038192134342819433238879453704128988462628222356642790018843135027737747483831835792157987394770802599247685747489640040022044544482347196740612394733942960090908241498886007077838287252943255410264850172229999710133806038884720424655583936409199568870277144190998061758270042435095910605728071311040024530083716754873940999350266104625329303049742711233555582433857970061587958453630197869586328494971276047928791608385125817219574162211964021953325837002701955341852952230970887275622302378886200707200874045445748125943911032785578064171185888841111274285974627932639513766907790477779818267045805263638511636183743526931498314647165099195637772474100494948802664413626439277521244206387710199453526094051805977526342587463322099458098768949413130192311828620833623407363369790609837625894201214953400636936912869725558690388259913314888330804420231600181523364154094187988114456314287988274908998434776421978611715281495263657464828520470029950025087481817653670782256318510904278189665216581540293835922523352479052561971203099481123286930434881407460955482755067265446077906717772700579124322906664166013530504011811914852610493309916195600300585873331151952596054265026244075342642316144307449913802085433052873386463913376493784667873156971028746302651261275134084372892659640992905145691130813358674497279162494943476616039696186504159137894706459632624443018702611959160434138428059974095572348371220430999657694838707185240828344309982675972341953251098126815001982803013622597384020426912489430233151372169929349868503518511128993297319785095459765941794370651843482449738941459463538420794809230030755117744300538998634315427061241101865359008971732115811554694774319307255231682206993903708740545993844161846967345753827080468825894960537992547788183922748985174077187336528708697138207748945595944499328516633944499031394314689262345129074755073992038143532525890609147840439953847058942941695885448654164685361428576151439722550334961955892763193969046758669051140117134095798425008420267943597673474502511042972795776977850659414141057573872639924887489145801910770010706874470038394274248156050620748024555032672820707443348895656730314461515802667476623941105414292574079190927068399939687016402577037070672768340758259390556875381965832094716789712785931172386268125685767059384073487778736818575976595188938246257852868787161199349099874328014314268334501558189944256384735030542215210088776214979666311422625278563474004969991072292435779685454374829871636292247625585262564012969101067840155606458008421276395898915848964509986508650777937468320681566635028469964029680730385762534065240388873549972437856337835871989977218651824084231532571262263323752972181374565398321229395638288622422530974386314352506411693868070730005209665744746215158442073143957401329171654213013112166802444731469484240358378033230138509839412354702078229627848659222143864149234373649901778333148115369581325738201395616533507859357291324747395229533977741363884867872378788725682025802606864535528110910318264192264465342191375649107624063908510996475826639927346641703680922684637606874730158136695957579807096423143415976398114644775728443223394150819924051444797434674744073739434462080068298123344863536379387787575077379805149985506325401034468027915194208305086453882761875398581095738001102373642751495135937138484509705091054178029654937201075300808943092036066939597013180802700985264560119743821138864029525742994849435662338413649620106319033546522015786354651441675608930379583185712774076862846219635658417498677571443899840535925252407253178953663310068778266955414141233542360749659603044091303808769530090921521809009844369062645924670256274217124682429629025833944543325652163594105477971444404936756032085478039702861101967457507853111077979840691649881140260969029994212960286794498372128639957005857698533339124706682537940991671086746198914889679493658913745268167329677546380585877827432866483647652559031578349611752027414365078574700682244456583658364724089986421736724826210804994383808441937848332673156164096762023913949060029429063936502157110061024024522464157323844069679586552689520789393440205341012480138376374924093268278086495754272736391099413743154253146780578882142302425059079045018054656959255564095337890591033948714255809723670611481210519782439365148310768918478702356101425979438094107647755149803686571945323132868524568024144605786230138777408628592458120194131572265124562045712260979407277282945159936209483701828326598330764426786130509840851103008856926131522259735429049891750966207671579045960446821239090333887278880419577976923803416479738285247024505764146892025351099547709787253733998609350189933240493211176364822978832260582422078305879367468398941416452801216280198657503083811521021086187989743380083024726237016113471658515878684590901045450018980806014413453697178059328610788248819829325896824908009419081857357884787591799159703036254830602559519549413247871782372814608595239135127308787960252960796997231295688770281950511066855361997253638130179368673922988003089398609487960175476680136475335869898496181545076444023152720018404985659797231577009615745900343025172125313912830473347626279983706015047839524921213733235156544793241667996804356195189401259079442029898222663934038890484542099155240166215209571368215611247627408369673971301020466815123743080262760567089920970841229984234369691575437363205996981194479226103758958732217487487346391662673782697959569803435182043009322942770224235259105118678991234655303068846376607305157355840127895847828171346425731402634508604012476659259237461017400701021773473069738542913726597856621362379956250292840835257652613850439432266686469145036695690501256918415486362420328796703172079034849109743829323919539231653606888305249486992896888619901409097907771149983000059609065343865495484891069055085614508196043796961015023280645739966833678246188371722019961305481465227702692157467504977628343778398918597252846725985743521730997303355425157642615902355715862550370483156106649844110635698448485428339045287682643470045643000774438921228778108898194206237628053625869612494623297135251184023753694166767106799222132079361584224983954414861700902779067511118589835414715107280806996568247821089842827896503495564777058243381307970144726247372634268465747680658469039263162514215836899982904082070533920933963680966565019653697329969859900017977162881681480381926349359159033003644133320812313551958186733566302127120902539566347530357967605279033709692083502449798077571695295866277270875212648805164214381363654345185637803598294475957675920837874421317656343391256420558618330630042668479742316476290145494410876090964428007985527958111494456008724865676659845654041429141037189875246357701645292293236851308275501179307773861897538888737150216037276812844822549125571710112914880719408730363162588715433975773137523717288567014954681890947291816543422550525383901468228250241294669538178123669336734564867820374489318206932005234240887225800443032446475517888615041379522196609887595453797076955411063664346993417937036529190278168095498111662537600361934712146498637166542319226348390683336349942242333761481429319337551551732610688118958793332879645036487270372237230831401572062204475154932511954851316799613075715258942864789291416254077768685320599638570254396865481057409548026972038199872803942630877912066982342315295102659754502263247907666184404399772874888385015932322633529342398859274220782326387251873673171191777869214868913685467080955378030245976359107563058108657722714516260661449170007443236911774483846510527735173527912644311916241697475728784183448739390343219857624539928751629776142884049634600782935662917212833331765834785033620166925136600961034269454026395539505535416012656734202134913372113123312799452861373676543711726395116152723548469661628262359815294852555151133749376914082959768340326776635987977240341401528617112952060613642514342057702983078630105240372476178335539029622511501293269294865722895122116600167965400091342104934084069274143221404292340221647206521339470111915950648979129129810526287154292406461837860562222297318845235256632169085047405994411854594394001879669159472070106518850907500894358325780296290385469585467952878160529460836488901259974443342635353155155659554606303692941877619848152988824384343769052712270349297969652790821712304390677499337561440736391535671134307263839307240335479799892132035109088464908428918031735501367406735637056717173077678554066718108876786475322523897090651364756977455810132826901309127126391973473330086037674962105897998216964933707053208960095626018759206412459408892065645381715259436665813151381291996288856745089064110308712815479944890502119418935402328155631952022032864001069836209002591274032263303754353950245853928823796390931899009889721223830686104975624279727860617500179493944097658590859000354328474616666827486284102889717126167092515573819267697670010617559421303332837295990870078138583573264683137886914443292253067235792990286218154046295221732663734016464040837964495278672834394461475796008305784875532721557958996408949596417223438414461339605753782335343918957610961668809584881328406254058206035804867731601865971774568505565998022809863664179221148478132025474131280540719556839940724313753426026701656153698400352714991179610509390924130038440041686796984225834951496572313430552261526770166386744481989835349971214480085646173244121918780668844658981172359996535842960215335358506399160097903183496000124431489770447242669484963644736912864279060488211292862728600212281483439272903838519781723996699501975289007787724660959284272481714594500272781622172322294734022960005700902631600100502276322288786262993664324096556763377567085351507589912177177750118438428633577268539167521179185700368146041490191904972968513043381398796073787498879684511902628288490330876452158402790569980776688078984073977766134574992575403910102050107919004393721977618269506520380441176900907503984453876324554956201267607311501814762159062893221150990249117295798648787502715573879126362856668360177638393269417301140675562249911380545869388588998054654667175245452811195661230742566117557375795853193430930150199302834856479550068971424827892747894941365071900736628620844927556254093089284558439270643707418079117302560757425882606330773214670482711532499055009647057656585831287852603400326912681083850617794947838546514748465857619884254564109911584646165875758705547370871674114339636403329435494588571221128976568475023266087416011703949630870341016899276550118499496195877243842655258951091408681189819436058870203041603895787496139369239463917832214068884287184189492864886331132310111824600648068636566440320977555375588190550115964734338751977218866866610645698305643741125077096630110938044487175476329168853940139296312633905334670887874363772902691340919604825817769522986036789286745280341946950001461389032430702704783483975880469626729482037899591346101031339019363635227069133369515032171663246133546016949684425887155058980711710666875146734428071145501121376595278689206161980221627707508849912178489972476763858186908341689965726730144520572512297502293689764388111190683403837181548254470705311038084853311779213945135864746856400505774758611156445837723852852540006241617504501950639174934135863684512775499798811157483595413758366047313011356588009187407090022394005524988875768380649971322227102964112867088868665353403335704923794327901562045277351129689447427708356372124120428712791000880519901408177524132589882052381186993170333750962813797752017322534354433574188104438798975332974299027936906760451297530618688914052096459759762620441014185837694421071432536268688316366546150575618656713337511596424985153235005060207502924192962871761128690462239191210632322230602000626992501566737991515149791884712143249936903621733205369531256253752542301165853057035895136542821321257573523181593662894919876784181784841523823690355225518012515939169285716475084855021832551427810104953125053066183753618806429329988969434262673398098757316526028601359553322938065299893430812789898371732879089495119815094184174152097907085729183786492815603026179076191003955830761001424992202775036165486764330800376391427141834956851838124930748486125933946418676347052277016707600474416062674982180766730686760151080626875557969553153930591006210193261637523830117452072143952113827107866005967898199486495772584587092241817892312314389689796491005599905224184871289890239054048183663747135761685122999720079845233190915427371047947933008790705958167538843790520695958796309833154382613704258654693944608244917430670338556670006257337049340171759159961163566007990960858122910801499025903750983934327680173545384238428042870087737922769452907145361296217654837593516487453001947571091275501600626457187733227966452403175355749675812538135394752668792304206107363615353711588179376996853890740980527684205991622808774098196238423251232553381766850465390441980200164596909032179164306827655211561624207346232325273687807080067913304895048625587252531922801532773742791206414323715702395543944765411268662474762040007709323064701498172335358600155589917165154336485786717723765565651939136702468078682333212032020352379013599372813319201444908822884241333568556204283314653515999897190200025185473411666713007983107603936695330611357342695999864166850608421813969340699890066205879490528206399168776748859540082247486196784964746009765042249384017221012389984896443499579628101396409122519041052525658813528779830240993092857393827134895551713833433650790145312193718839694628321564018696995426807935322183127047113948862766072881371589701971039009451144254456304317682465422003386854628137106991888623759746094604249710037381934704649543465517166536949458732824982404216723338751539246864300314256613177438684943376423238249313813881819910820467079677454990522281944299613728427340195239945900010360024857003124372287824192431523962643877870134499251375326076126559743746743692072432150400512957255676123914682763802111646635683457484032253053038323193354583208623423014907969919525871525722856758412373904854224828969388671071994624264489743190735447452026971826889255332869644704900202225368689657478297472115615909623120256473086362981353398085784864489958680986157872954262344344077317001066438043096201791303863492278320607272971820843846580435959146127042891256105883698840518048537371160678652314681933719060283984814664171060268568510324318293242871563190706527709353132551213508909166742760575171949282507744698590147688973008127679574744346813859469869701385350830077966738989384141082135132622774564519158439852553363460231249905628434731418735714851722057366844532543050111016742757491741645712523553210922812772819976888618314853934485931458340751472305257154557589189267043212925464112152254428649126489340779639590771325961287364424671608095447828239758358049246889853379748682386107596945210926635971830569676071612711613287505752574822742721221184210412711993023059036585285546207086162843350216365575331496524772516845322786855869531620408313488995235898439520760986875813843167422616500980763782028049205452079089734562569174318851582414405298660714373062335354424149338128547865075665900812130892457239749212096810669373712476601287900006660953535829807941527279560782615780209546155995239647655546368061496688255317075787043168841696657508415502047781371275633679677827100161463118187282360772886053638903541942987915260548373773347345715420615008623970814909995220651492533761715366684486914469039701685180815263310811578692457155083982266066481915891192231436579124460882005054557470147508898172464429236426000057293441893901111582271408683421448626262880571913678538216065867133933852226874839099994621613215646314508238280054909009296632876836741075134766438251010873295789776211725550697135077555666774088865060218000693980483389508827882372776455552608427123474131123519385738937893737505559279318974284567888796436936820642528617248602895234100748389103447612780183013382770020138171118339485605054950544678676532926974249806217225260317829578773968475954020654144012591181135611090767271944277897982336329770777496880136924098678200165722310830327747690007647237626952682632721203849988149271376462609245643087191977061422290606027473821441453380595235705622336450450322699006590481860965701913492445613887899610469755125291178461438149726743417518200424735101163760302207104396339440435044359356862940695232405219321261128715106584845687363823324710961973988296247752333544123744978235463630731306742202146007267291885925604402151601551734769220883677138880140132253854558060879222727639684703177995440676762661532943172123339975344698557010195788230134014981999509908594728399787538164329325996807818714100041787859864694726605151408606080196047246907606703265923722341579639068401030510636201656724419899575573187818779460652081542430339362821261958193036330028167407188832562504878467995347018184903156505964076532540292486394787064648736309887308677305113885986467073895290747150426366267339089216957092870270522295439011519332991400217726278369654367486230070390462161315825326723127573680622728290653759211587198214589809057840915480341672912922667296228376723952022485307966040946781586434291107913331396865008038329432100042456050112629693006101243637330563212368377249694806712753164336499074109874589582236702157982604927510154280329591889629663082904056974745412029964860281146781152947461790910929924160640294071160200084742916419635417146822540136991747586637151268450332642063205453310078798797139875088675821357723985507912879076365393494084340995610460153679247109580310355323121336793264345304446944485704338198455877920629112323452734344539411529604845771521417699266100923713829209826971745603432201366945083065136917822050798540841724234732263069045159202835959049818068739302665193167587311278334494572535285282292838914673424210642709566043550268136530483385377415535127727056791935511125999293435737252358191606477595704667223501298583785314441891513221545546866821212299380834688584524650665799360801200575825378637188801645931192712428566733418040165982231363049806053299236466829855438172767568901765886533832181603606772866559718315643652790362757126652127816347600924501155874883399687635313998923047601768165072090111014304988135134837343191646217527453392657170314781538554416840246875578548346981929777408519392940649346276942774650248086288362819740241029641115468651472477615416382705328862261995397917795243350988590807320827459317196433581798710544579104662207589988824943384808890139043310276003612400285189062682750047944442169303327509289436947425248622977285481551679158351311051268027142335734710560739642714838147976196571789249911827411734838641633247431926822621530433773125934188572284912305341188311222392719289401312881376816523953977765480258026234095341579703843908946537475994704283777826406687669106673091484086318404820639759074001337900509383830143894349724418925485016364619355451382119760245918079964123578497954251382826010482031315089615457570802835145438997869427467252789904828778871577256237163565461008782615881513365977074645387207864156314732447331750040786074045544236151128627814852162876095408942013123168499658312471003376050006871327063572022753912139046067015398462919970631329127244190494503699661111589933810620443512213163231300229893896630345615081875407670493213395233052963976423573945431813097319313522491347865541769309926576706211866016089144591326885121593761180608914898327153999695025694964219985185576778796059527843921736308091087490130766210649153465787660341621874972535473575131192352879292795761164185441312018226876428950865443932454013355779404776236525529560439107744984335297080605972898508603847546118593762296269877068848381438508919501311389831137680704960022102668830355972521788562188807961714425708048298720175734761446651704020837136000052291682644446615120174947659918456853422613625192368871408045524636290291342007824790321442332540633540210036501290005951035807767466317700415359367597927638233873950305246759520837001331824359889126752975125020667591297783036723933678318329368880937708674737190954005546257104862577313190951687714787880417083258694707052420441872243872945146089702820777962345637595541896088816315642692199418915606239000154161693381696848153232231424461861741342492122311961109976633701965342425882594589985085696650427113124174494040806376815924008320721148825462140343590997984227406914408796599482744282890896564692012726817620501244786544981702199721689755297885476589728995548099865839389082546447706270878260259699656658527156248512966111897026168315596304443446998620612453476884423294787928162071528720832806316657389028175663101092683757621677101113178375042774961989991915355144394968765321508743356135191869162014138325630747310581920959562848029551221851362759241046158784058169110127819990843041955605961696826001306039079297636485878376120411847428868685579404190503261263900191976885808903907076739506595569187271494475170541447510354066606860775687648942710714451040138372483724831889411030183636806620342717132317426693296434102319389259676768899672029957888568078036019262474314364790965961758352325890375540717105708715910636254058672804193475303314240074339994125949708174899150191341285732940225980889444191615591558875110253318943994596626840118909591928227754571266979431837877880923920847494362899756776451203637767260973946594256447357822790640279773701867545733078110714938594358331113543036507244803095628296569728979145564772763265171440163160991264900341737555445785040874501812830854375476139303824649907236598805167173818620685424296791443896996515250013728783803750252284505578926778950513042398993666742349140465185034021409293239618569046175948336504406121102395576057762855200629503216431026486678261099055297965497411175910366109901095213158877724682128754625215852503329024167973400984467608078408504097525616469588400175312491050768790963617378334440694410688437433843735391419892533973236214513015142169595161327232873511193767436794755826298780994183297764599188609705415867943017200854092741451795855139620463493951554905463322585735645641286603311088677619433192968796077446048257131930363502429225815435192644310973722636238272124954866867665906557034230517751171356178749990984409078436045786026053421460021102115576144960387291847068366007637726853043981150988285179788655408488058685916600086887667196061769224416373486876665314742749124639419484460783206253592068621025039349547191657530905297808527534946464114061027569598261735974106259140067979558750851850643546052397698146228795344868926050339586473803420788581257814251282168530924525130434868958500332496263343258514627370035185174275689476378546431508199685003252780388509147349958277778034745926774059813681454577385885751702800622950025898168746300847570581034216918460395258696417890091649507954120060117117554854744841428306241480473990312738016102017816235385736661634111076625814100357470991062212561130940683308552017555951032366736132756977925122314182525813474870618082161228210819252182644225459524556994942587096009872784578725988302542943397887445173818325918447180338038064066586601865692469535467843691025613561781458517862411100269062871384216019586025029654484372143917378267089510655923730093300212285926241895703653984996198829111744727555848639674957073818214902596071255458459955823340052458284629984032138796730510273194370048610580122252840281384119245710607870271417814573130749454260028584776702110146966288773005906199177935859674134802611368487295603084535785650091960962154118377581494691736978577998466360050117209273631278263593916073610960345567530531312198542833091812798156951462837767473168634466413124405896753938029380226424277314981794412032171642252018722017979391566631060594886291163261161540237035172244840022694872695805660666231432504984712665503812744072326393033084308153989967616713669005789593541345679550327508357478833984153194892153002671638994805823838578919848439001218247579622809150815935079429605178330105749561107946825294919845551991348944883175506320473640674219583165907172297135442763834427632087170608995539860610094148497782054662065656983821925998669306228397714907415408716790879851058232401345044034735205053786102861052601616254061913675731612418458437754620565266157256416281057546942088488356820906385178553675522119315001563072120835406920351554206013753411527703776690426583431351119697546744577478643789165347122121637363309349830580520222013179299854901689837492640411426520264687793593732467812055898499200070131167181147326786377058039146506990108751253418989003764046778045322487781005291374485910083251429208284344719976007998448827996326352272007152863496244987902353826188223758140934489490789829731777122163141716312695704468079138010977217628005547247348137757068951938131047725003362095307093139788829878197789474208866678854957623852752137821348889148391667026794157590975501373295978295216816803180994628999127952170818665608321399663918470881763704134945680412678774721453121341607052908475424178950712004682361704547389964294767226761549083049198653597824687258924224982210257230826713415085528852077977164797563448532059662842153691566883739605581173670689781448131328808241264441163943835169016307483493014905588004836972698693809378096635861206267402132727752079492900567144539359043618417020677170253940557318265530553570329562007288570048965963717990201532658714218646892356109519853253168134744986850336609670435782842209931459372753481080833044254203760788206876946493352781010259767889336009413020368022081640718688480656570715237596651056819205377983115688107124469910542000307546731937072560474973083784414589885536260216189819852059163451102095960755048370502267200556499654733626124871745881390439477121999549244647791367404281540988786326911135670555169152845915110455505121654327466734343991421649447148550715792309846308085652273667599452397655146013282073034929556870589331002579523553279404188756416904185530016431613056494268232014727447282005142835098699225022191871615705369803100629527760620889627240710831826736797754890615855903003342265982011564438197245189657535335266166398596198740537236162297983815096406848983232140386606510091449751419722513337334559131628490032302988457343462411564680715813699073049048886448464117486533829142973038089391255655778817090341859826622949406055245490166239509555396864737593492795275901913321982808875646279537306420790410560344121447569874222888761385052814388060934520054876472335351332198348660756313781022288952596809699701106800522737362969740851445708382083236058479968826150224156063443424109600470437071708320854521368175356590187716259582188182522155672402436014594198648058213546160318990344527849181934110956536723169896035241303690889472155139590482246393600365714941474812198805875801278756042661459683837279488978936373035675786609649447185449444196097607380071442153186904241269424999827581038528242769688692499754108860459701357175312573111839704111536600299825536892089856086939749867848375751370314654788477967061545174004669367263552161395253879787665978248062073237815115204344852577546214628380002494720422730690886579969290947483207779120928303858156520901542760889794486327387827164274043344333783415533372740419282105507200770483039393462692860055206357915657025576754225627969320463492348523019486528793783367986358965935742127619466950088743064271665870487820905344932952336284439667074644915781936853401491256815882064048530940888753049124401560569857237706083441108076685910833652069161554891807476485896226047577301975825012952959876343149610448062944324051515345210313090138964118903847644582056954354454890371452548535563719001842421962496127228600477716091346967627781138984889959304118582779377318030398687584536595463905008292652871737553128063849075862190351090385664741630262341255665692825807209697324736512791739521277382071614236281930204043864157143542440489678883460120128716557758693523191918658640992135093811236500904131055333714950442234884491880802540378197372368101278124826820944282980742716582655974576554605897607434235595452382104207569461241309875094539606223429601988390372911705361183563088237871714285186331455829384910757120617314198821264849470761053902406286237811010169589859379619983642003142356035994293687958518735836988443535279306740435314309901877119622760948005424258195434320572522076950357478556505008437855915668270393413662580740662681447971978074068640520901464950543242674583229332059794982976462477949972400543763601068081721756157889194512145183813495604891531345570496274948474365612021583284625715807323769444572531225784771873235665393499652027589769430678298088529045934986271078069937580325863123182128190633475675433955326596984806708694526077667676168680859045656850118393002426582435811030970340845998246047076115558004724031197274277650875522945776928960625683446489635332023866187768655000758800904966425747195513521802055767240752867778705986773321130095119629013318395091553835441335522431725083401055955550513744394554302146679237331314473395472152498905334574745592918716704888420155927752016052326098367213611890441340135680489416484797351009104585559319787211461492409670035230376589727188178149899290031689750311694391626218299726687038370502816847320427007722229545878655531173421573736881091031002652478749864577039877460822973453946263212804269322645656259637021117258527224238684838748266386478313032784176950185323774143354180823931621945275806191520811860416346805741225661944343226150206565850697598992527376821246114532039586646240406278963594446917549521699698544566420064873258111474375945154570444437230524014140768710974385246653454772100685335924676201977292445282366544635608578725307200302430714811604554973892495727504747952297624976106081984223265608632011681027783440910362757779356657150050675412201220973187181469692679755711742352581922847295704431029154853601461646296770905624273107601050455990981669531238956513897316604976762521390136540964849868988953617332216835207291004697795786598490602865311276631369466243534464077246019978329208405062038900121133562674173225953949920313964699960037775831806724489402155513979834679550057251304509320976456414387120484646226061612173209753247631840841684081579051675966312365973554335746777353899489294169554712021935268554271871749624496228330016498471577422133284695182667606123321197763071317384642259569792383551761032570537788696146087939158922477632256784777101820029154761848128929385845659390357804945750492739446669098470081037851420228419815716067825556403039034239706978971591587924788590215650812931963576074126571810491392410185503810948817438517788273290619524554863274971179794374135219902091141292241224078889788623397409448098212699832247984796126701498959174259839607230176863169241166673467333796546544859786838601495195236206017170780071044209133901966105424495091701765308040950934493282618003235616605824065516665150670545481881081286045052156733938444049719601169221416907583846158535407162655617497856434755608170213630169225696434645298488899902325679486315830069443991384557027192300460236556809106473129918366003152971021224637811629827981789017886502270105390265361034571283378754823990030657152525383603010652534709520398510948279855466856244054268964651648887359294640052865355054602919512600319859414895646254104218984383950326780347386774778549936181120183306586336704959051574850918159222805842917119950578647681237695024038536346234300433538226710994635146647311201625001257305982067421303928688062351118624131299914748024975226978687732782669092436814404931697951370695019485367763567943064030395747569307116218621035107697622535368494160252424950064430406024375737667259336179651037676828926666616868696470824828548112574280168609858373515909671703969187306231923433284603323932077660720148537763602689891063604128387877011672509314832541382492638069705175799889779228816399292193573636850661719111779706310401582136451097146090795131890320139223482135190341603337411647954658467584942207151046121383966270432604315815576411967504897134199646678099088075675579548794369435221729056152933141355730517843924039800318080762343226829577225482911618687353350723919348484359891944733401931855114443205189458056894760188494220555686473931895362482616259386308797162357650765771253151536380170932068012160839853472254310587201957394984511009437469853962312468128755165491149117050241128001916547259463274539784404815909833739397223973011595110449630253192359864475117660332933518710394527211948519016711425826215915696204171907649626199898702454796328655652078094271738642733862837980537792604917501683194135173101471597447295123211249053663298601120805702698669838213806468323105950945472831585258193484769708051587137549311310197138382336917144825122929730048844068539611415506906146527671743824340889529475927119515635751743926075403559414091325429902033617491544330497097306830965881703377099414874195603868501877004544806062342790423520322370364125464409982094103581576496889209526316487240734353334910487291681042016364197085132788725020480793514665137924143795999227775634101590293220298759739927464228291674776980086154934453705356206985594896906835988705383034113373641085591995808570910688798140356740690187183887016529243908902997300667094731040330482951573947407637222345783169062173265438752790307317679383032408474508681330632363386684686225025317244264515837164128734796064605148117617137112725183725646035024403310810448080836342890543719191965365522700845584678049636656753080382856226727886809125837090287176236544609659831530144916698609482111087479516744811758486655835837741573240219410333803787565995767148020831120100589099977423631705658738555026136074399558684652303475086562146143708871567451390114862549570511214680674072590796219937122227231434417162901773859597486884866285947067582163872238742951748494866984691921139161782164984638670428446196398666523560588634804785407953660431614045192177292158537811179698602923998302712955013321054766682812187659521324022521642368344134278633095043465110709750005871803557590071977527658757686359584681680686346739601682500643037341849735093158892405566107856515272843157096333726232727179786432548788345054967903635987397690330650604436844749666879850428802143503608004701363612337127377447233528395605584303311134455127429477481462644969199862196991550683731956052043113394008609991233727476739040734528515757281859336610719715699695122352384797203921853727325940950759019369000356973762135180853637358878877323634841021639000092302602797485502899896754341446441357960671428517684753566980445705862621638977444873713257437142486548583306985825856002253630743583437070682515959044252902570836988319147670110748899207247785284025961199005929371137611324196556776802691564531186020213758891398624837169395486282991443008308235911198580245993641570121031587833043246701678331063918315373052828571530036546492892147077876550901573813987433540106558180697053538359303670944275142658144950355144311525743869848156507136424322489955949908091301115347333499708635545972909234255452392163786612671155778138785390926844127593951464948901265723207477578369846836156151006058485446491202756944768975058971992155077760013134867665200899615499162759864017733899540035136454862172342416833484438678109530205490439731077730813419853448193074242498382291111294598976986017262471940314295964599805133399312331351373956183356171881208299394528360178110052463832226194550226279002291082755752739227857019582911583862793446841620634781394521933955373292345925640653845450144254662995874812362212818303317441430849965697158664290033355735207940190402359434881559803586467728378638894422783247784229784729517723353195253027258650372487821417360022959521581660472620185476852588323813974019752806447282900496158924966906822356049437198945321732457897881001613224147857645449337628547453331233272567607439689935786424668668156058113431903258615078899300416743573688510272638310513746513567098402525661725204105459835777031880099883846230946954633361474896815677620544068337924158219094343743279754136881450375511155885262462808782378654803623588495582076862402392736975604489966194443341030241991208688678835776828353068806501276227159369506699964091250181238833233921984071439866022273568147357884174994298304274436135018392631291460096203141459661394694428943926367277365789919840743204079185881107210918941885646808912648777204678433504247914682734889028027625824984843368453728798149499252820424523128604841959579095658941142489574785979727284306247336543308221318359533887395471749753650962024254803066837976517526472875486710187170058670307274839007258307613279673082530714495310088861396611056292184515459795750563743357809168887710407662733271797498626068772515783378825749409340397433199591948300740011706264231377154456710251603640779130148833034277271799293318191774285625692842823255506670014899623120142847286491701176600867590658001971503373295462373817404803252750285403349409556545950189836851659901045553545076520976013186216958796025027037534646146778131642220651065395462577400494732729423459789271515248537556346670188253948869876247030016257606803753363347607049988227049912514087157624804960412359710855831131549682706807472792621771847194794141184388343388833526320596574561277923246278045082418115034261591986975208933363779001536362221148895989637813325389948912044927524047034273604709500712009152999817887886341136882549586012029332641482679866219131924780570915561206805484331046223264727308798731276849824532627257640007976200888216284999954727601229982145030580840606962501896693926989580647424738402782115657622507052002435543633083236906302441606741529197338818265814051868919200620750173323971434145242390278006394825167645383740060327692747490503101573105031257890309532315704058136668481960639214984777143243126842071492401260430350036173794964871806028947172682247645614019494111176558026470426434892454221892477556369900920776856165277604158808254461777159818597993767488031064591122415536154418711332645808027232849151344381366981651435482381140689890646017752686086761712790509511143872104223406178066481480906335375174995563661242201720112578947175609044180635106390385279987041237558864836626025171904303025567155073526395862963079738164940015351963423544687659243001893507066416189199478292679406728537855324461093653210353456057867114414541126954301155010620917526766656668333974877083600266043475122868944037262497603504289574124013870360377390032421124364828524710294810616162272250436962651014572318306813539314633978641135807758005207686498402327485216584801200987390905057398937146086228303584274977901034295490805703524404364508251287669361646133089726835848902424859749681367565735161136632818473007656484690261855018388953909790541562438284232143246223063352386902411608685567271899366344175674562568199705704588042802833607641745974139628516385388467364078448561787994436245979537627477604104702405388775692334650362589314354936254440436829757932406348806117674667723259374179444493227268731644846032969885953432481771152574448954421256947737890729935286805917314284878538500557738249194195607598329657993895886763066249121239078192511439602943060865974003806748865365614099989937351228254899715707942170010773269578592075257395320060432991217419999856293325123597507068161523042438106428149753881915936024193819153180850631191164333276778189401635357773506659488712072825217903737029305912860775794884455346728233068512935347810919755225327997551994586437942071783545882582071669109848559233900732425504643176090945828314546242209581308371635260342884736141773535824242539727125297410272252565475751572477497308591866922879506941300688129300137128111635810684602184408264255975254985546978427943399517660168348945820451723992758321285084229755978519735713318734996501007953595012620542236185225837206903482225715588883374396267457697761357298354492921809640546965070082946400441500917175192125730325770766917191978674551673003325126531781764395833365671168787609442774074505208867279003818612140752138666780421477358019799768187918261533001836476723114726483779289282853271666907936730326525804469961134408181159529356490914769921582029250106037842242824660519996309148142396343559731978537173533564914768530739405033707322390742495821380692251797902848719416668099472845000129280040827419680754582921036415036581423273266511147825223214750739326137006943911173774093788927047333140385352423550500596329461625804397793165304942235829452562174671911113886221894376733545516766629111527978301370515721345048340689510522834563842634030093768843459995343838699498110837559122100239286498605940653491313482659700865194839400016775496686933361012892732019495478786345464347285237105028110874532723379355893031306639398393959710419993011297714055693983341992115270439392994347855762974979586121388695089563738709003700886304528861151365098845512510526903250795284980450320757199424954345664754116806582873166419279878660057025335725413625461638428942100116432690375767335204023737586714727309263373113564340981190457632572346643648011795050437830746024487584040334895989008665829462271310012129905130545350011885835993499903576757723071724681322688181042429153996537916580571979580461132931293705035871465207094838712498538869930244808788236490301916563580359752033800049748409990414957673774336594455325815279961097157129381542863279688400767910948205589170541005531969462078387617700206890037074946333710029269819074218560419352460358164260349588842478098091976722009953781813873658398802047188932429026145056034782519365114063053907249476588303913854418944896013396217861038452735486066378630152369388669729276452690469256581505368230021592223501096897563451922718574804524209983834560333205870743917856613093997227506450145598173937948418634730173807078231945592031796770623800627130233104410481783461326757940323459501882396806604419325348944268051216911211232078873703469736184387259823391694148041311661290486806535846281746624720544640499191845870916063593351499380842823225016511971700122320415825639612749836488192452587150145051489098399666492509374778365793209877542796522726985704726822173630805730488236944358512653236463490695069700734785932810410539415092360547721189409020106601070084859003401304456363195155669884106755131117089529567795511637864864038928337923379499440109451979135346290641135391688832704399011966436515500488722795519503668378108709117950392382096801911286808915049130544241838171277301549269186141437923046908525068549301107006625447596486805532050980855559922311782609789372698324960851119749898237635138404129358775380308013503965014273188964273613470069769093368296607413846858979112148797472332668687069785942010824679576685970815956460185365530602796859518197723889046818925755213407055227738907828889673983302940966499179083346733643413303664424130012511167778361729031024666430621738850486146018227096962388677305902417030536474235359997339879527715100662827160346734379927777996072872217386468584648091829653114303927074360187239659440720703482854596069869797538774599930705208859747918484577655438293424414528577785474425155868218120771740343666396526671071451127194549162340387806275402145460788226120157958650066130684174646215318828009973589647335861666285062302870350448149000316706092871129586344667610409493033470442403281681227325905272347814622985886123456220481234275394722758893123551041677028875173367258980820986023042049520120809811024838558909192449196865918852107713241623919465146209733083115345468208777644002456074342918164390205693772884582782707808465679144721855428406167551369556058199514385919385659291643907655681539425235901310829518134516679972056868699321902514946826974594734127909263983190001817068415334409516292673498280911949823452469963443585416696799339115477925524573682696217192928050121051890348940605819412625556397440725247347646060664061562951204812667896109995591240799220509126021438088889562011498292766417628160738078321880434709039749332013222724005641896444752711777857804794611995526444722109880409815507230506709840795978496772779687889851419996708348267467942097537165801917834590764717091092752227982137114626037620476155736692283372495815766513353283329006232611870268096094140518666677769735767124907006164884435333301417843510496763324837129974059961647550849342177705454613371937290880662761637308848646332493627269441534315081668689289808583387427682982524757855062564084926575888818738813015338040720808455417580933557236716763797360153924163159227608412468830941851539173590840707096352172331408202428779697896289932388461003648694608213994140877341144033834091283282141741230726104447848709667775415421213007486223726667551733661790935813823598351585705844642377529198548965856493474124411909736618459416784890008218861970591462129318301926981638255295552542116170393130760954727784629429980785263813780600853368301489681246096077269810113234996725515171707669781691666818657492337399317309234585040219489288512269874913707250778082904685463272612063737129901791430238595253282579010121505206939345764885488970849614567615479953175150266257942307130260190845487826239890703822581233661968196853932898423256240317333897434450062915418185303892924397211564202348568374983059065133985894400978259567368434380409659330005224402986257785316298014888550992360448976772091359489562202179670388749685211504141341818321469362811574592624425546624937499271234202868181823760126734609054366824215521047314691309218126957214241493055418853309983707644223105016883941700642993046377555421751427015698224414519016183041233944069423943117248649619227080741759887081280003706304450318080132747648296474195061702927945762453884620723416884670247139033080740520212237717006069374738228147989865908959546378673794372969210028749525163989946377306038761728821129023186273065775545848898255470027850263920515660209680078527448738366979971586249721510802719458530492602315783472946557018845613959904196329637426030256564400166109961413772119878667907145311954815224223049440526180680555280403120994544863133978223312946965864058296042065194700246715539981667523574846649933858431775509526779357675218984215210568260564008351128091408641302898501559825007950093537675546747669237293657087988977948437718337813138657620183281240439881882897456361833685259067480417211074580575691698447010129036876273468292386139568378382141299523225068840182529002421689067646853173755845300680696576049588612775564758873431586443676002313734329841119774351617864550535014113130201348016179058417070248507338666391662332656593533147901482300556800018048134522639527446796078937225014930508354273297836957792876176116093844148544238812875006693941912101249863082237282654579576505777569612659765139004110838439202858798704687093393066601990691753092204898449987576384284575551785833404848636769894076518050736318122732802000712017210092058224296561595693578303822231460953125709834944599200380054821262718149087628121184581511905043779224466580688994166942804137375506266613252332682482184405333095550149189325240747895953564445289164754959388464283407897802229572075266425912880256386309675033510408709656116007450022379527072572371394852194852359627255796139381949457301006584797648344876570380701926168673433092366126167156699577731646377314826381783243075100097344661816305690419210495649446055882645100860790089041087047732020282228952009969679478447371737430004494535118256026309566022424819140011476761637347647378860831611669966058516950077549657862512398355479806467985734476476267944044705702115946368153210977258812651321271748928891517918739146015289693918546180176953438689064436057831697477200517541605189068865765622983781965847224446217227130958492397779658849256597669182248938378486313217675317566645980412596134952972797869466666964857585692047018030257809736850021325551604694952971182039829372377721751202806658360223127060498200861474948870319749242375257473762135783205096422980643155449308924689791127110230469543465884755779242233468258679447208195984659367882486845462991899391299241305433741870054883339607230811882291468134248406409498439335618999960860134776499072290071421625708450955868951473304579247076030208635849772886941624813969647890574422431316288892654601154575536945009813297002975357717835463532119934105974920431879932449031447441065805393323004327091512868586637307018241264422505002232016091799659537565371054145762138242313440025127543864653054425610324386656769753981277601278469957003322274791157773016314054946072234873489559123096652405520888516644802580294293653901969060132369233433587540511747133144737336798671732419952577952326547312154875176253965715468395401265921807690576302536845100435686698740136121801435859060742901773948179318792725001175936130764667447815489082001439842311552165495136821089810621729136908641301285426960939252240818334807995161783466291600886123912750135657913990798107083167821939770962079541479073457628439462059442444014604569853537958709759203162542123310669080115555543126876814374676154943485585893287280902485226856075286457525214403688018558355957761173196973904549907167159648944206821896497175330933126021544300146983520255045858127876581031379560418591320936403604648871913837078169377429255657529529488330735521433513828206819064497877761277741097326312102776423247567905977096810476374009530243599172003937943547006919127887777181766023668939084919343308726538826014315564186270166317410017707533364889552789008292992262826438740935711918314385470606681707617618624307625173037590665681798881775847486752019051867648537551560048430538070730609245915915766144531562635587824326678946623981731876232505010886063381813175927142660771167218571440070733271697871747873840490263836456967310989513823757485410155494581332838779597956581523967610445704073827772066957226922885688988659299718697781778078896580304966786051061907457552227210120863457438505999419976139469179214085787897405275017703635246219284570635203204798592628891495626428527215820998300985751802142402251436779954547737363875345831300697288537287530183870473866772215259961948960428521938833135729435081904088302487935431933793502597694151560325388741301509797486627204808130132362548326560561437005488573696782919618651970926588676525257887841854770870408928591144535257730329545240221410327842890517229532166188803538161458785698548302779065364669706787502836645311824516022997661322145703487422162571003079244585787681546271875293278777635753676832294703879912062808519221263266872608770042507571859921828730621004105819942293526404205580741383565142607755988360323342279295219155714258807419333685384916307198536091794893405701707769388989546333363937233038331614557935014710944568167265348612479177471943955202827581220591634037932968131610187201754919768015410206126529343348322300818581362322838771983188460529799903046453535315657683729554360251391176679510905180559054877129580573004482235524623723105883087893913289708490004168338249677814179179923009084783146836151124344684998863875909952151209288695659106541764926139420685976813996864074285963813105191623559367609797062771002533991759569182371656760823516495297464809748463941604976910380139304234388941962756373964667043861513755023611926915677788642864200411433728244062169820955204591271142567144224169947985131596072140561113240205704654794419926555172899031084534695771722301946900867151140559892665744817862470563677038484304016480450171263465767874442439184643078249657214926591939015389784296910866131715063313525111660381296561158447234603787779123140802996677110049667523852625816204073509191893900232803550328280122894822420402291003579752480994442632388154161604729470188195874706909878408325461079205663253597072225825943450370073123975208919537070439014812710100529636945618570354271300544047983308876487626933555267221381662295061154750214537137919584572777703545310935102524414208388783401126904710110799408052191765342078691491278608509039181222717265778829480067988064594303548817775168598877198095816618797760409550840486017139118670041917942523268840671864250359374460920767916059041164393529748420901965539195789921565145760853108969208989764494156306251686386046558009801317615389488662898424464868142555077144168886934863342892873105688663313138903626933615316740981656581458779028937686514243166912250820373733111027757299037676332418509231413645561103109675034878681146223027213998748470722263348866684870288792725267014427333220274084208166660172783656506068652166382639144655943133354418695042531670473540241090115316961603493219065248092510971288743320218204457758857616991245803150869728198875221013491926549401992108237865647328438845838162032402755776157980664166719985820173972570298392470936253531540840216016779637812695552608306717482010408163970976243734538902813332739060882845663913516481352208965019541621608562169230914602492827754774431999108919458925056344878894581961426864755035903714009408587554601495426303059529345575891036796725959475648023559037455139396098825863913388627912514208705383156259220992472259302062222822401973274371103520837431985080153852809076361761453691929181838515956974303948843011136583836432754749180278298898276699984173338905588169449435804368838194239046978523219990887351257908105225874965038366800393945686344792797713814091044626420879133449641191991160304828684986946561482478151363876189226374428922122952759353705848485853650139847364734065475693495032499427566598409274080303604758880445823921166081060307058714770735141079145407009791743683147183724705598038046726230139306821934193336934475839498248011067489208566000687944275421877855480489692323201489669459537226109549776990416513895128084429676220837081058349938134931253426849263055652818893617804402053797626393298859931795349634452485192184618012315274409965497426053105484895936425803502314311489885776465766264472064484613883517704947154553743440471482676165719049326552354492112897112674026313740577471923113576185932327979442117371294154140543019524505623914952261403676024520379669103718174086206712272881721270535974757719110540037195617612914646275684479600557078586584440072209024266215277343931363902891260416498800475665486181185181429478902297539255176949979924279270326736991472464933878746999487110619788056884597668166434302836720878571096914326862500187977986234080918599330579424477290223470504755268401412239491684681590096003315508181435813257649076772095388666830683262908244943296522471718180709089254704004458882249025976047090427360065698991121478434307260151227632480597944988017579320509817521380283044080327219670359991015902738734157276849578888045940629192154071404840240939735132362874319707921342596820493282644778833559167700876573485776801783369242722106542471456269373883877334487128083600750320604968951161829075804479741089028661603728760387418164480644920220393390447499485643071208199995407765107377400724085539965443158782272440344435742837343469893711245168991952736982455325804010521246903316359903574209833299901858432356991495612331653392250607241741812681911928236652921886254391462326443603161957749644630565389339781467613046637325693862674757432911917893123216998586776077067160005412271280208537467314919431399957441586518089765054643535747940334391388083880770699832335784767521134360177414589112997607244114001388269436287374785479806973533585533051337449231673991210359267488008822913604024541006931902243416339529536828895582702751099821484485477710244816367377040293547745875202363107158792344948453049378811100770820905230160722929517642595470939450535927273873531063177802027281613421988723135493992863103112187855028607948536524421558065373446664769688025957753650198880429858387016346871264814740853642951576261484020605572294943135779047293562877601504436721626076024261188976980662343030245244278250750404248375322843157032815365042217078603189155544513211421300757290288667026821350314535531781335952890971302116316897175372818217293908598413278678053203349287277422733738108553875868622608970303182417797967645121397738089251790637758351717779223152601519804306562883576265970877249131724427550703462746731752670382754901766663439665469047158553301719402177246460418349321808770522187813755572287799545008887634234355484129916171456408160327027645409114801738647441592618222180506870586811049720438896138170012582870201707087212976847635939748045169790005182968152024521373970010179244766540132276875295450083564016511131031428316867361822702945245168363925465290957319286083875031489229807315444937564014199270139511608389693171075084310932553972596476235305122747678964930500434862113395691368133186583161613780265155907237785917247814515169874515934696392006847981940733770622608417924776688283834459675810223271163409167788035253134179488273728475492488075994271094091670081451350722054494556361680727016025795159843438979542157456774998041332332919093781270249988446290815868866612451382824578242404291629599719194750078409391061908924212386342358195271078410154079337223733168568657408448044632967256368607881784940577749721952877827297465921779121911204513081287849136878635092179872198359757786223067154935411223120188152618923122919728061803147130307065027082303898376906918961226584187179297405228286267100662631817184726628984412446188001417915362847550417965110046237607260142857992411038672560671836816635464677911431344675592501674313270269379137091108040397182905548493545095430984942344883892741771475389962441822725088363149530724441934419196994538490280779362152743185037653841911629158005726000216316316816245980648290619015709307885283223406890395161837221613583870397063867214414070706182375324289596919895060649857912121930207675022927477938284869911691103786781995834108508898763726816273131529139749758879079496356053051702354382218613372181804120829384063115849692413335417853021190295033846572706664771383538638688308254462394845312373088109862526691089286820498220570089071963288336136260028997396725593088072837080450019965348323974438812409714550822644232624286860253767219114491340066292379124522511974631116743804229748117148632776403182446969972803783537729560117314611631340143623100233335702070122619279837098193849183528287813647592683279122703480678567732401040748407799752640725805769449122089433800689818312564321464276327365238993037049456774536680125175310937608610295672704372155555760826791763715083183732951747089998023084690386924895205921777396778553335345268502419408710963191716630548160554235687498305898984722890410800684441558690421391816863668757464163071132285012279959240192895132136306056303033724975035489236902399447210507251584946636505749051772155066895662195435171137273735911216353561346304118643801324496792605043103889634766829483806062348790130915816461224898429137253286324323027185370252304519342881090362370406172166008712865148907739660501639613609131616296196346345613342729411382910755367728421581777546324750496000793327740519280156019146137531660896904380410957800884228188111399474997918895060268279959233129837457633950983077641381061328336825697635337089926004228690813944345387448137790061719779429518721854302395845861285714071838075607342798830248930755400515114540288431845453025354243203188340981336393024191146154539369256608304273111534421359289295701352605937242013614915802480100583167198711861028675652494539811511416146624675671151555481302445451908234526894336106113453360492427799674707505832780132752904480704278415476421576286796952355358507372566456612122596207097601481219123919862407696317754545608565781385088381567162131799142753218017023565072499116449865655942176585488430663409479424045959337847968736555065476623467413015345854280422097626409823401031740035976270860187038637625406749609183997148463596362798359321811848742274044797084112894754137055840131515290148709825849873728765157059569666773577929090012620916144888131672110107777575389410526313235690116731380834608334208250759713622194306833842721520938061872083167612525609810982509389921730518187018676460801555569446796332867907005335461324426461793476934397149193478793997296106898196319739165359810931509948219130018299902770821911540628428937579794598816457657233929955379475408963565704222644094912918695444983402730230329647391554422759380204139997189720358983977518334670332076307255852048201055803000496230525537456418153986925419306557047913867894649394089665508818493053455073970370189406713231485114293645808243965315061451407664708480558411876722650433581644970778784959154997323832093391243086687469841771429707597610706428733131095163105556939590972170470111452783283364986528610522575045961826375830144179392133702262347406129937674458044530423748971551115807298978217107995002104561068279250883985514117643767238673058546031884537076131764871395815111569679618847842775896515930018579267716415959607407853314675619209054798021341320603855478019880084181300821732848557379832335554043626302333308864480503936462488790204735148145813107760984782381247749731411555099643736203622390369856722747936175100202147112888512668093861362113648826339323305452063381728766578745798560734916208022577846331456754048575652542968453673657500150941429882762271513072035956180084981840926854645878713840162078430701575874190835387836605990566779294286151289641644693516073525973069108387066794709756487489293189043056297405505389363650312540953741003399485072238745286079232720024720985201967328771519139198181684695181928483822103583344469645066429173131809632371251380510117565881792161577658473167053276881896703703272078593346811958349651178253474478149084364562916639648038950356572530209856362749789744464346614914877891667198771661059000316187212496403679543479794351043800415036422357988580669025227515256956117958440428981066872036022304706880793931812978659466070099333805176577452001039682435804681458829499175642342042867174318834072411543404818819362365808328637885849542962637632458164003528251300935412790663183410981344886344584066266213304088568781124832891312680925694490375152598015865681471223479508927306940511228912832326075998824828125049274121707233011322322927185584245653463673196854064487172662292418011982619066783337071048379524466147760874135836105451710155866688388054089113290528680003758152211600522841180104855074934766897255629140840658345691708791741179215419913861141980507941724274930376959177867941606139282405960364216787194295827160568901127152541680270886265595341304073739649654437012613950177496011004092239425718419967687643199036065658708428191679284722275922071068754915506863699845383388299234767700434941862879319316299396765764434285029496152520357692905539975795438034766189356864907745051677340970849515636927152645758651456469923840685668568496783395663640788921458638996625859487183709887492889921091658837720496760110837422464480653902995247791822725303529570264058437933600274074614670602088588604094275847514995893355700877469979284862371576243592369279076564367549592179307035687663736469501482964664507546249713068830983288239835019101118548283379402668397965599000802020240097828836158795752775969683783100477275851805595273053349152160612535206119072430036942652085359536375597171740271269912038376229999997481439828074356974031317541581800489596587946906068028709691504773649942234230805504056446974031188841784220421036303738163404693476499719523374051060240865178480753335766741294342776712639800239129300983163258499037113023524520862829872046173159241825026166474041324580194009671218153984574940539366831352143557742954794020604200464895055423029258011724878018937170982800513562609121694222600497496118028484672212893203806294453342283857370919017736781635084737514169371464016827093686027193483098724545587195103130064918508586380599344184149831749002232204398392794673220067114040577158738643945195424158484554708445229929316774232587733860005880668704022543620969474775730496247656332685165409598449675054844389295578504636308877269949298708247863449758558865389955266264130209225865210213784517823552781818877847923895812926682156162628799682200402955155476162543446001009114248017597116714129357745964261132441273655021513788503844515091834705879861579413550524190476567382764966472704479035211758779690018576020806894663879791532419746018415040430372078368119229120081378364833392381288468256458865718909083215861076023452128540243262407007442968292310036766808078265494253339075628998127395584022246794593656315997447373531702449056540504629591788554919510325061448143890463164463368153062431151561273515802370071119255650403883443471654590839828110432811707736410871494292217586161452305092773506128713381261381645426076793717837419137219904086497341806488392731411879839181643512237689476691162178679188009179188046109305204281801254035192395419109947352827518086942460700877605306997548821267207150838428864209710083942100434149146290617076210538732793417500422879495476120797650373494900397429464576722754129452701447126264935265739077015270316443342900649359100910094080415646343545201198261319556657878778511014473002841576211316766458637043026843882475026712321216660496172150404192418502918946094539698868992674732432942983719309619839773592426001049681047479785792280122905609108192973761234636199536216506544433327012910724048975075142979781978117432488417703793986647783782541002429497029513873009857013964672805843903787251752674305710870642544196035839926921246853706022336112232604565880665943174540088663836251999627737146745536888956570748062965456546710472401586431707704090058583936033628394572298199233079573848847310501093818117101134914778663538223684041866989050969628449347488572700121592734538087804598950424812696901308328383455368386533692183504137844081047201901992028266393022083843077423220598630318006324703024102755445741697905445256222607677928319780162026484631799824081102792511571037272925505349932690692079481047888202186146953040496696490640490547768180603146758705048951212434648484964728221883384754483457810604023807088924566873230634458921978829267764667216294394505392679347723045421388943606704170220270858578164486549464757700157004111223641914225891459237437830528165744715404320426278325217818667322358842574807609975307282429234020454444685820433112080330101163635465446176597586068293415450825207086668628465454055244343635972151995944528842601466710055209352897134642996177031462045139544981410133480538646896594118551915226481648533194220100014808639228574792169407107585167076531172742612884746767600550107964537115106763726626772991346167253106035647097895055449072720322353083130921960675785419004972123133568862465741623897978571599229883718748730145068350828551579401236836321472662882635900737519420857273102476458098734960304778835272296912328197086790099550014175550950037262045720114417308153584049423093112977711056951511237848330888625239933140582206003811738606020919654287036939189747538614767265562076325720486517055610923913189713869920235074874480812288934871522058698050290814115880831390282396379900400005577685591584944563474259095846578108328430549154519337263211861089959453349483611996636230448087438523728070608971725013170894161676615124385082979385944429280719779574311216612948338187698798571890302923306718944455891521421862326478654113735769977347324994226934258737014235103000611201081872237451637808525896414804559810111386810078899122836483437671152793264139423491013217327779049200070508753719753952191225131024904520066532110683124796200820711215145734882686157965075903468060421649569132532436827112925970338342921772515381246267358823502521325410640881890936646749643055748889109191291087831233391469017885141439609036908407611145027081805727792990762106066565479027198315987564438939582100709806625419526764396365860834510737099992120609070560090708811549063599535220601119765900238814049940654691307898288414240069328280662747570258319779647763518212337776545992344234703277743440376639741068746806546694181177407777061988983258034194583260760373257055145351428272375124860819584120082359245514684457960776385673749624020309446269371661081742658109812668292783714895401403050617532874267991900626778823867999541034217648127080208187431093174121987535843059136930933071263021454342118397778733102796733509124497905862149893282404138244009610377509340434542741851243331352720982379664934882672196181251257187899309072741976224410243080610885998398337149753049965981827463797943546073065264531502946200513477712626051580806748916655099793100962024644312774719087260732138865629506284774900943568587969675819638878892450160992131641832432562483901117092589430678611731743840776019336695024762852653373972335731510277431883547823286624345704057833148882322502358834404484867515554229806087569708933046024557327757434986718849623434693171809258565220820720944355798023851444196793265840140573285498242105296273506875131605132124022001662023562096802563417267977955650554369790667233014140807930532526064313024999567920772567945736892624167553833988308022210618920988357468344681036023420828279102103496530597469407928561903627151247242907967234927488195305779422640306233474472329476533597205843012320053344725053390785292013659737069376473078603554753775656035893822104721434442175367800302521182882165530079187945717442097652553007194652958347802113972559655019090061249623825573223184165490335434981366857446233211803104015361180660695083127107871522621560160237577845584169646846713564950805706833331980933619094813850641896928203517480078691246029671180797677362427200392673533097984255029324260081725111753273428471778231946341139171247045893785667408221114223548693577143303972985259572851449510258790137270865093439843995461291116835236137220885548283571215567542294159833677946701152399404252498778444882023614465012484305181443163701345665647582542207381609447091245870670274916359194009846381484564994118383239059850248074074676814875398115129206278407938557080625189881055786482124734915643381678053184148649792946026593353156429244713209767883520779134677140328513105780945248465293053697928982636490264273010535559659867669900779755972266533628653389899475764569672800995146768016914939270522467584802472124108812685026218633029983236738403852893394751890423490785395378949206116060132757805659648314578145995320455020853419286851707915080629554217761067451348900242217036957800758865467504823729853622978864859097443751654738335158526102825080555606161971280493609246124154549406335311851755067107058402829400895084464733079030452797789540881455797139578042594772783586947124865231764308273673258777567113902595546474765114523159780164194583967718152424324922105693803397230573698607830018378616283240684188123915963087043040997897275157201902468174131295634133207211442228545587605665030686163188714569573027168682945434417418133141875634512373215260600921553676845503541928968134708708066558586890991421955284077153109410785801766174799334493549526368720844382606992459159535635378713696702015275153010943172255693112711727493146772625305869798998634238427238313606165527086782186447581010628431309329220118116063406208654311745650250746959051188808134481463248066045039757975692486959559999187823731921159340183844205799974997548889480964614838814528829215591880877087570568293204464565390957676436020002997787847664114544793178962481240410630821961883414807543420858151860389592714543146607669152205407769557506010706790020632134488951607734554884797215301029764302033742861036509506672641125257235729869971031667420216692124987520319806992235608174521557486895426721485739296100151423764449216562702914998710985638688133369744730248181328387630110260706006834076627714404666812798199168724350014593773231684435895626237297351079985973560407479047868112671363074727246085962230711053532787687018572221942646356822974119383079629643898405353769387624436918294546813845387003562779144062183830010848862641714113299574545301946643754304609157610907485247164943466850564063163245686801989754890121551996071118055294966865846840173153672132427952210685938212490337706571876194032180591239301913430803523052178952070558946170259662840399655926479832714220132539597367474716138542736252947635293302531312036993378508596743643503835845737582856998177622190718881951712496180672506991599903781207433459436624617266768228065194773377474498087325576189113806286694853189833509199695146492009815789313869935879051858110396325339880716318623916569163910306573018619918748889273686245631370977799813641513956979538371872707005620576666654760577739489213112730724480810209843232150588972071605784198511264833828016989334487249921229316761034216921754994799281687970847944397526066214949335884057867206622745210135943481098886862213010227037266401154597596392371979239927936386368187904368417442340777846831444770500762138240091542875966508755699633882485574086239167293140348379435468582426702955780738217098684726064652277542999821040909444486656908993237817128003577241389933463167053422177666197225082892297159019567623331411470217866029318609137854415859249030939469650654671223364731072792258618756110202586189749107104202743470979455462377927267958143667923799504610256918335693721057622364869789277039600000461060314229955029704523101104162783034899206789119281566451726100783570147046356375681213697436115634318918850939423668988586634363573494549366606717626525779372069378281060606268557795074773356770065035042275807670964606767738965831271533646356746745871805005000524920171539777295381662452852424702126935852087333000724715175541949795544476119760852618251452298419471780931761369823088735981799957795333630895062503207588634965145930583499299262626896839807823204364905814419570214082144749789651335937585849861256465614563474217493787185180113277082496977136755642634497309019238347791585117082732527386484952283264792532886382725467126840219553569615780181993132696375914894125993073304042208068016970133581525297943552156898721875862623682297260835193352280017291850730793306788967432232264096410784453318645970002960490313954391613907612856574826552000226431040940777912883507120792466607424006095392857014544242101361227766734886542711154373387979489341089466621015841425540329990846950799414938140352060098883897918987616615169203808917699202412307472263087279912227400303777496316474194681996460097270405722323412740866877172417117470273096676055558945934344287008152433778986923189901461342276715816108612135383139760532802942421244606219034091188498695404250282927339899161102144508358373555616147628797191937402446681276414224336906011693810434039218127207089531263890275986414400756453174949024621665712946932071985394092065214176847170533498918546375051821612152122723087982854857288757240670249231012314183467540437115967840935664157989362818937852216460590901889311456790120480161530479315281265330570211252646249308912006220311338442752547710567894246096790965223973971276493511809892843725148161829913580293958748104622813975513443047623791867414085648934477396723385554742626527098121738153243138647742316932558102080902636524132152410895912284782102540432067472376753149239530020391555458637454118834435250266420832396646106607259753551294451385224108358353015548408963926640484725877237429692507145452597502063796333964260727389439743637988851931379885805233464902663895320740113338802201657200419545005056999654805247804155812666232328434591268362228037201959548069935446163494654137813253367357516988510843084265354880448110557895477728163572857871964082891480495740230517094380069691726485414557014274624790432249663960884792337667354058953201784181009518748441643267005604077979173240572922976748706091983383045839318843548714398393848960912095610394963380512213189285867146155343411935738385319243652057479792987590440806727738315356048763169307961641551485002035278879434142041281169053331287535226164679346843897390227009025230171138804274960110028744001205380762096602874767800795180633249411504087012656332634470397194584272484848554699114333991123558477309361152476658212898959079490808505499280500155314445570512433423786047995991415020584499909605441708228898546152297340150627379040215024892362054499540648441254078854892315068619639622414958714711157957906764121231903365805644366938226382194436225205210536052765345759180177829773886675911319772995838312605046305788940370986810389326255957689155393955990068222418076504993920601754083451949630055411886232309723068515189075984191111110581549064100908928069032169536984899627251998161081407356926339650752705212437483615549261941312946912992195781094623765616799539956366678355454688396179894297887324183118890891494298051338178803308998300999497054976359524498484688448302516585693445094269990141890906067983856747210524738921930526684732071652663199091049748296284703673491733933702122262767020374216114450994714311925534639183465920851380652180316120578227787981125524764103037465398352130906265245925945221269921499646166620324777174651054759581400512063697966230040336767459932989564828733615614220672672632106525988141538456595913917730118330489669533121509094757219712803812051125060373064774870046906640935081427556514339313128678166168011748777034160527728003160280920612906165793800619276291696718509124046299635767368808247257768781553947076722939764508432227028904788698497878002528017831320689672991025904414289526773268027321164882414406549746474508280612924253556174968250363243862041923957182288807355730174652170077030304055586109456642147142568423853539067875123248185424099046103782697326040268706076826996509393023100125390213829790902146325529823444598791697885078859580761890030738901280172430456205770280423673856740347661138145966320417987876215865730205507916964160945685037175943308522620847182748759352172780545800019057345471271956366811172028556484584426779672100168870519013026690717940606911515545206883253394622583777667696248753249694077037798998802285285256968318584642783488846082653243545307462880976941455834159770435638179376930491811028860627707897387806361818138285227077230738933601411460389330276137877878841665017685950831730793708135994753641471314091120917781522655826713568512846172554565855787756714525363204247333713726186261122918775444967732200273809108596348159268953990178462485617573277901162215397033612136039656447661329295186990340219899133196310009554341212382052908893166023945751457171494115097839011974991231311306801195726537359270868442560286000231450054996215403455969744913568468825703614858797892520186314862688444438689500862517268350124205202220008948656494070100175503209125746369059943985379281588598820007417017779358416371601654980048943553471186767819805542054705178806166402390466803607000368286915697496689640882104508509866019542826572032425016862315868709417043238202087532757287169289157169301369500555110320466883095498565617679176232507203387864602547199507979783779547931203104602585832618515199699575061730732227724463684091937639107416089827352520450726492157108664826284030015271246946403075010757916294902299794924674337820230339979112948967173163840969849633553963698289101519186968249224459709972774783296116674171791748460505316017675054087201961657710994887238404351694388453933552069962166922479265572022313832496150875716436914641297993164148634079586978657811625752176576472012631923477912272652593435147904720461785882106585411505289335083608917226300765372263790774041649593832128687538426268813900433162367108811680385336833305079890290176437990496316675847232146495353980076633086041968865159260057910410116731458043158241475652094770711252556739689759068405771268596903893670474054282455884852781805729383481521155143690389436780021981923830579641871974480836601064533340160019361044412831488320631196606645472088063506792949125158372598844813694318655538201032388339494238691523606722316868966474539211886922986863992064902375431230314512995262406823503567753259242068220266616080999747474620601439949717910060295062627256782114207069033741715510843973222677180482614089291700757786667788384043767474391168986731929474880213889948908257170538895504623339247849161932476348144888001568926580049355652426541715184957412560890978503186157855691523310592998502335425053552368925976557417197057312587817123622117408580859321250493644697756913103616730155861233157694990575610076987435381264526481395020399487486913407494782981073137805000743039779934367563264937467231418405618707514980416795530441102747990229649250994024773706043684293600095624041464071699065057933798431246140124823095251491994936694207947700413920302820250068818383790941921242203137621545619177702762978594329042442256396591950414978322036568556050841629994731732671608793310765992657619448603331428118332831513815023661874222844072967759914982851980676509955019698874721590129022831150311999035287981195186603581517119986611712466186514973468901409658093400099336827794440616991438593789717434210486636715551899560643079319527960339103350280540841919147276648815745125655786985336213319460095928182493661980435890066643565117696841575751354101491666474371898727205320749218853359370193185478042061328950645573004726947645828722125967891901338806315552459584953314312665503178352690513335081554177585720991257448581563600658192468825941305235575235588202044586014518771353426202953795259251068200957093256001388537693834164881847939210656843998889761715662440253155691789263486436160285922356579688300253032231874690772884590165005975674730118910071277953590172521950742870269433868494604419044030161660068443052875373929417838336286201647952931660096101410712638105428449927486069154912632006425706414657969741229652529389297460293681737171437526065469743657787885231217526952905201559364978152053092605279539129929137631211151069190594289618343561382869039754336892936287922238967326665063382162480676333174643291853969870897793898728000073014483152062354087861259495377270262682108476047266987449627273466697987786089197995326550927370373425999223375050099812808332272508918006966436552580551170965564186512166625970865409192366357680840136594056692955412288088630621597073412687346059120368410894164681840646446703735518592934986247012631099324713845602537382570569383972100213140139679863522594852813949540026895765867784513525504820564230897166368491821573475028833126174481641179103114109705901656046431525792087785525977214054226431289399609418709998552840360849740644654751199819803836472443231577988096338087216412141205433617969200786095501565108620998300667589925785384352676905621763397981550130164648907865733988512925877723289078587794169847683610715024411236516127383506870219533278737936147121355779308606497142590030994302407232191785326082751505370219943121949727296786619023621311409617238454055600077011711950599580394450297440718454363751207745616749377099348364554443664509029807081213491743352043183417558293647364522632330838917940095129331449423760684422084922881431707787743740339846966137925245799120979223300599983359292152187599063221978401433757212346021545550268621221030816807721753123262676208919532236178031488430570168674545963945912316939062114065839277734119309869313369678415173554457997570480263423038361124225831987578694727467959548288081916033908964920249676300056322379680935910225733375838105491081749741762805568048350626670463703751871661879359767168225527717114665707880018106511421328639094412720629143816667366936687974425869600730814855012479863293874414351912640728488442491950931082303845094763490438313217291837651782061439151998088755203034421893869850199176396041394488659311100592247629609570333949333616162142641092241005457190914433465776371836811027577163095340568016714403802453911038284220135812450555434600977818831702789242250999235285345022863637035403519335503794104381459213122727933290970910075968399575128284957577046897845809589078552900965828462433274970914958232366897764509870334210350491804500129019035233613463773479650233558234980183090751605752587831366873223560968279358467655601332138575601251724330424395048498291540805703404739613733684221924312096916279433286170694486925517045747168101800333974002528869054071287001417912850807650277290523893971298835799947194584193509647349686102620679249116179484814607565363087859360729831582606445693874242124025021044108554908767846538348738728046309826180396742460988609662558039482895042169297891421386525095236056124399683692439525169918927937875129721290623734428552467559666477697815792346625198812893478939875073562380966253270818097574612442201262027722946936014059306985732637622918667675346847779353305263688902398562998628078016880543885537249737586696669503568389511312160678151748478358976597607995604572727358826693380405772048474723895221214798291467718938784470884305792979192375247966118274471604995770378401803581422587833788496447649439322086527436472549043399689809210594072121949458243924525447103322816309258170837994891492651370026446894883453341842316032389581158094576169854626995615385055675685643004733021946947768525295027407239256986127017505238976317827794506338810980203733146703071482816750294733066384259071849680634434702887863484935921572272012144102040196975045904501798627507857280302353280105586548190092174114043516284751568453048553995782569319615481108611572124968983395506995391048586679095113709055610484989621576487265587463171517682531442817097884969032241600536219004236529919435850539601467505321702831247558307793025007150085684291394921537086114968590811774322858081740905998099066084857483206633676449803385927248073961607723458383867413885369185616829280461360109167172566632904869481753503855006688394065893827348952382245580668108283993615726676774864638871650146288768636688381097208570388520814696708133479116984657012293799881844079455658958516297768779098757245608554957558830827427306408993076705376906951043479402361226239410196371281229336013156679129545341238019058568025620767307896195376124980679118326130200470369900790040250656482638044542412208793888608062442957058416846197331180895729367024389021885847565880307330968587768342721197324424398228625753115078552618031573893649170127774809607459924241494041408276000514023901162842765390228633717471971683913879480904452697230850366489205013449843891653953369770585705900218222425356396763936287699505713264994245257243333047522577067905102484076838372867995157069014289483621614384520219739735280203840658499460576904309083710379820703028998244920838117712614771490431022785919457124871065791023227938633679668421695968200766932243162089308040806321268069061852490385708111507320534572774591032808869799085760336564813094608551063240806363050835004566563765390046413509543142038471650910619100300497419033781053209625268997049130164269426236629236976711022229411916395928507167816434884941070092119975660846526020166266043481590797453801929414945655200884774126798933751201265564452038988881867362479186144394565566123843496851408859785169940763097173955511555757606033716998123146206219793637867999743693548281863337366459175044743353290143997565065791077868199448057982488088020743511199699457705331605680092678703244179578757181006839734983597370342993632723998932349881676447539870313880036486855730266464377214593449620903546246857904776404625555603186472609930302834816939041113405058318478416171251893333955884033871419601439210766082314208840394234300511261583645133442867698883780427354092965369602783382452063564759608303421113252421660945183143013321147373359118546659280452322346975891375391668807566027609989512490461174776424662979209561141236842371524051281371742363432198283447427060296955272903296552911579123025523320726750487484312844431579631653961303220864313990631080991719689730611748355593714595197370697876167464800512735620278947895281893231487727663650411388974875634715550392663765612689397641771253719253709637305826252081316535809172827679962200086767017062483862392036936294590138985988897198522533040021265823587630620772960140776237747736929859273662208556630080500146183986598073359965972647835619004991216029104375124315328960635275053669643257575052775912098553263327891828682209550018433316143761323927829435239957467007582427433132029165561695146798748156068360308124508751386822848933981939359355498925520667406377287838350366296538821953928359836908728054965101411825438390435066859918251999094094052080082776353757625984892331147338664727133181742031157715586281296806019162257473774838292210666234914875376023406053885624865174903049157637150037992350247547479791991829415123985719503851452598454675670348194615277625257185538965787311878005033673505296314072268133749571669668100700177812347005283071955671495065021085676499151059023740290826585495413465004413485591720705381087503519891445835054683962938395209487567287617434627209003758138475064395051496879346661047991373273140635772157419014293124708903726255504654780319481119774716205627461378599080057602484055880592622233226369801321268956187253042217766127920931142715852857450613276193724414728934341097226753317840873652493785696187686874580172540572773350725428412087138132033623309247414221925992771106576965807405690885070140961619471839760054572774581112266413422286685164973025334176156152621446269080949064450872858601378148363824944345022845039167404301302935954756115798486320925308828015974345260477303817264772347448458408649078644661949079523717158976229657216659706844004283137812851367847939044815049813769399329555009960888881429992072185143473096338850694064578340486732251144615097006969087656856343986159688214864012382141335408733349405742882746244864410967761531597046596924832318775754916743002850205180398225035352323404892478661254376389246962608309041346924910413217420294378091341885180518589412969280854916875822685409341796804919273637243233560140893131207933329548142617522706662041880710068553881466193728037951975272526005190459189988867778391563762556801637867862928493198682644717851557663767021735464079981437310058614741799079426702601637010848854911471545499268621834808216049916771771801672645037558927781527595525358371879155386395336151019088871650352299907484258055663565304103809344767712625265668500588038304999980182741472253807152881880673572520451267304857260528847566558480265653020789498270499371697109479288121639032654906658170396138709900735993965096283416858571853548773713731632800307241457426694411266320803409886344405321245167809609995967967175948768529304131554353733604308609681648653068164435665680557635953212407627070815489148307763693969986350340667164875400634019681702372681617596271900512403467548511301660139848631464788133810153614005116697029525058030401819497822803371489516807203475151378903227802746404766150175158215601923077424237529861668980306538907246470161271497139235718186936004665616651059293808823599649354422245286476612182660844338410211071994186130136457826728010772204598035850330002554507381795565112750058421494984762744487734094456382823444044182658161993546840418146464691738033364620552745670611601653404085797563478997148215535078106608540058093310380479563323385210392964380976228888404768899479239249012011407965428719868892572682168209610584161831840062081823191348829598315715177951368216904009040786035070308479754474997755958729938188942132948029072235997983022644497582862675461697547370038637023510323366924386003773775752535106935887720993371666919962274725100814799705601198882076378982039527435715688969856451720299104927844444348379504530445622245313631429135689624273299326980879213966574877417466288455953388927136401251225079646390140810340060376673745396682180846488990682266843562146825932628744238039032212442507573643599924649763536563632205952726873463293308860749719757666635153935404476875257463908009699777574898178004795740652248231423605868432548650882893666962493233957776293279997059372738226221839456839682359633209459091063093234753127903678585334640980318544969359902935648675349691224813531025956655250140218688591435279990392677269456556134966961790884077356465465130358012609148081796364793339412694207461582997364589907964755767486714059081119045554189894916944252128988748424555913092034878607734089362831829249946394314169987619327644015767184696290000002663949012649272729194956071665706776438233831981319345741755987993490696778912458627197542717956481114226757900993938739353063817892954197237141014262025968738675066886772082460091177113312141915314107279765689754464765854963856738046921075752506380100031899565667554968559097135487134987782791699196910022787388265022932354879217531693892297667555926064152881048181143208472118987122527322374141636744747735984806783616184915499491965289852697891774713731219630343278106342572254514353361467653708321470373626772862681950570931295082700931486446860104098675183291273303528867016774183036994595763722519004849961934452417518664353139164193303520398079457034831941360574313470543965622777352759504964285398912264137942022010540575175259269430877537709582748980203782714951380767692376580766258578626680454025089043193610919144841665964235975049003772794398936989252905381443832048345885609411534579265756550410728451887750580687624927150823382216159680247977095380379550920799671244660090317102366967684139431182350767817247485412993854787993917556266519056376205279932147614097026362883332026867790228738667371178047394368849928138269524662593053729336984598562308867815175235139447186987280628511867633672865621215983727166540511040491297591203754458054200773781615574069583893280796107230340150725020744832242315436794703200480968613141503985335823690273196551061864072040109634527806477682566184374819644737584825229986608943331926733358687657846075215379239634014080660956453491597563974207238492042815791755910600680836832097933169236270528351242940133028911313731831756740236983217607890141898771693666972132998698755243783079409734409805083669354683596328340725339133907215035349104782286248346971044417472968597595432507025620090322902791065230327585987395145096674249737055621349427424685701744212882518333900115038028636280878428670100498836851211877887285370646228997904646910842952246703855909210697121810664848990339756324944059876871548252923055194989919842800691344773652672776258327062814147459233777475119289932188859166143784453083971333146364211765975246963656929416993866471518544794844087799882351832335300434474252034500783401360740200724925463604101429775731000542503400319234622652028838640671801532628032116653494039121236746849790086416803085945222694727484682078905888395059405562268286243127264780062629937800107490253818141941991135594584770237925109962422284483754508972654691136329168731202039499277703124222740659847797618268967947951194556925725984719855181974475949454365952698998488120057001593465916936552418529911414666454575491410849102195054995115650483417345059837854053226373373291098893374735026192239378606338509333079656648233651008700403116757288155103405682759278347524332635026122744262535002202860101389309797256530366674414880714436983295336683087154541797931774906995315705570625630057867204004390630329922829504605278267100799373978592561805840342250151744330752899321182332618925318524475232099163208840390229266299981404558058254166789547750472376653079712149907102202830573319159275619062365061440491540976115023655514736240266728886753396335880879388780651498358811922092034514432405065105946761752996367452464781630276357874366014753504114928236963255172706042445207101840724025639016831035761408729176991333777206050084309052408166385048487340670962127969905266416357760051270714143844231902918990601339716270377789976729795212656908375169109311996720657596996105955355102396908515890407878350231413860790051153487758351710376279261305305340888648966208172807595414848810926285847110687086705801280673220455057456600381320875408109591616445507510644610777319014514449520448612136547776638802879589315774771186219941556189356274707031832200172321092728745503938069889433483679529318549002428027427724437259740125878366254285137542319142598325792926489420059428066907084716261326547433337756388273733578599966562659881650975348225319410224320931371744604262868613773590065483196717894295714448514486138278898971749783292412392660365243103110139615618084511880328249429315915001819210360325650440926820937327540528813539736819570636491095454264352793379217239961064265194966312387980343858637537712914749995232061867948445783472678893147943467067447674058475244802852630135268128577519603447939838357269587542955653226240355338732543975660943639275483921214296676249666132913993798495390429468929295672224378344618506931898287671854574141513662484542329123385734736945725757928601451005313514555735596463649949026574713964597078297564319881731997334512118553112484897554520555556358547184656659738129619335912923269639371781633242752643848212318935321044997348475279074985179324278548489459729647174919372226051715533823572630212004471606470827465231721974597003423640986281990132445571900043849513071660775547473889987585494114973504044756946892401205382208510976699284630331363994801760066354423162625433271932143887959872169258412844546311164638863940280656562467450100454215413384816417135829109928148506989024951274817694664590285773822466442297737200366942864305140254432326488080281581044837234532693940679564409841215483601030769778434774040729081910045076320324740170510294818195555144887635057502122495069007557033674147815092428383935831066034803516485465116437832764105027434298031344623663238595219501072856204086519400325315748497612349035189804572502970293158704140254447511438651945136301899251640258303896512998982803481510824617981019030301507014621434192873191774945537101170337041445298714809660485263174259176797354082275194953124789925856310662324260536000013089066931806018249503073953720365461618162472568271519495817156234472355310595916111172214947953582066020544994616808184654717912633686806594077245126689987370253397620468401109957320289475600786304031394668847678821092242446481973731583021995282974572972561485530869830728150035368267302805405830397982349018765068334008000824891373435681507851937674224955862025489240240699438846900906132677478195987619659081708870593147454439958234931140838636869807870394219019408551020702660916476244059389553113926511678535080892709491459590244351167784184326956145633196649041744156242339475686046456234899757072344806309423331629940017295747467532229986156208628699920673052639429593551764785673707447938642780743131017018047765678593340811787915628562907171414350818609218477338793441278670955211587543620512569998169048761870871377748254610250764789934392587016947709013190621808194556574888367575862353160611458332266395092119505595089907857178085414739512020634667497454050263833572516866352303021422667992080506992790907731968298805689538240631512681248112306866184012367157882020313337471746408357583077638726424213230833304086216478695814735118312193666230728987342867770162937748670167312818786741291539922728930670759168816798854432886414417991100774013950739503215836485125072209035474730163468367634485204170772608308179284533917481066304877334191356193835751457121457960901556845655728478977775443757963574141677131117895184796500425409598524570167717632692637925928700842273130603264281873354510186659750888964287307906566402887501958165446031742701037274088588825434886581225503902070874853341924920075976066585853680123296749300452284564280151533708118256142262894899813187520735363595526857675583224054793704855131388757857349097032150748324414757818342260625115710407091230615657013602595220228489326900485898292966184784070659652802125007836358382985861758775466053223097689227484035381462262550861941848330947184140697507315574796663426584966383846319111007036316224537697285376302679590317453617982843697237091748334592419633054991414245450736830091370102013935693932210570190716355591895324524806685921319139029909978669290080884156095838629973702021620978158165831763853676382153642893844432784456102014610776230658598624203459982252694268321428128234199882137286115148706735578547360732031697496337198279849219584438582160234284739289673509951725777909722424108535811010889655927342606994823004784648808359110205174085802685907979976613945087702809332260919814529121709537854479604001084136242746305551661355033110990035032625409153964983252205760338664475546769454491078437994750879632895502497138315933455070227507476271791292659442753292787561021988218633244275957442700418891800107206974437815539349645990069285361973428513405980923340309908005481989388265328958691085666192164125259553670600834930012960620471130601219084802569067358797283744740399251575304276292888804177103028790801913127144128044056957705707341089568894333749242182258730466410116239597209063059834049420098272380226226756333574567466128619701959521837167707920311214443344340228036025285321352433697495957148415578623366894262759496430864404013564044636730188213314049003508809250375261967133029000263859026095781983980274586477528203684007138318120484993152101262453868944274322420299020951754740892140356013849377233843694728768053535402252752325720573947103130796706081123793500126095845432608203528421688066470479300107397115214161455292000992909490967786774900756556205123004503392819453033417700230776124328826173535432153930090468195339465356597740747594652233946923368312245490586169962355141210171944809515617435114607833226925685421010861393933982522859011033336127640752139447744756439794817171477260209943285369084177307243214569397734363155118801323748420296056596309080640280155202937681200379929385273151217132389133696692546659948238390071067247503394119622316833269236312956567776492697344679925424426624738440325980260823395288918103065476115230520356988669153744474197823464037185291534943532626034311683684560583386030948708593663097214768092868834802608008756624420133063804863303837672921221722795264543273138870251034122799364309496339290580215536821494063798147554449418938848569321010920001654769676479393845252567306824202765745964595350479276089924495382549297206561204704404170242424179621903983723881011533689878555548284885676937604588102171063669725458440865097826826084551003265684226185597116128228752425266005227488970655717332835667823944164756150214182347804531114654999702862983171308420203609579857142530854784728841727448435042809238149988131192116086377146283422924329852487405499953484878788196256484426555812786087299535711745236242081058940585498118386172571639641153122324998049392892245614779584118774096680425973553242148608982499398868201038927129288254060233198936821731715822288299043406371314025544588679742762020540408854693273816512665312696024364668838461650680003210297717722132526556292526901464242431904740502606136186311961774022555336862917231051202429064408290151895084210130056357840222952347623422155553653569515084038321685013048802672704198279305454632805429619465326569535226739705759578641034490513657679899039883153298020855956086797888202165344162587852136258277539161987749714877584072210929806290005287144747243750003397695726344062969599305244716969813982242684172951652412757190874145797472382088432030504614593310617560752246352716519733114254768118991818997576792028755345985961004652312970297560881632152447595185494817094260777825110994868032760643650268021250388021664334371390192093170372486807947072985988597385628889182886508483271362723434397691390197247841158074483324883061739659306040118998444717840877720347117898427775279445007273080451245916349222908222542072138375469457768085840528795465094367026743540761181154152381657959287910985559060567616577861352114114316824457408664721307064760003980481777811983715189416632035670512065299315653126807746592506336671394352176460961081878514804133114615773793246197196824786807496631133638343389077294032840049154183436799989682239804008393762689358097342064512605365049269661272426343961404777917584800360491006838271001121608559613996392968730713693251849678673735403910770041421469708659588871534825585468079621591948495530312157116887490546676476902480430371336993146018306454147750616084467882398929152081141152326949689281279336654705804792080962515670936034607187547215359552847547070803002932798520382287905873012705722192343885462729897564527580130683810515935880173637039298140943997455929941030829067743632354999012403200146459257597636862937443401796459485896913373111542648758573958230279420833015932667484845927096768982400611644940157463123928433361028054823481041720227406025502219698561200815717057980387171820014560114677796647036326039933553648110321353128411193604672384908031995403020760492478549429176032743516912734594297417232909034005191698504873147173738965693517338797119408094766660525009579613128027628722405237845861835514355767918193171360350073572805846910047529964479291849581880139248468213521374055242168782076321319653836858108539565788020901744013519035840314928763061573778754661707785301718398074692269940112348014715094175138999762801236648942277506996329477620225937043705605311818356387286185213008991858590875584403676150469515100096999236636566229537308417491536807273624329536230227487992336772564389232201168922879975245562495540813343230818643780996704043778909222750874854623957910803920456384493432417874482430747568179746038078390270946153496959064186503184811992564587120689056210518844995187592146458172073516807570500977330108675508365468858536640825577152524546798772694187826459417480694228743557366188129444140721326960289630414739752041976233848367930605047688973032648433684091619582026199457864084765728139423459868772701753888726091961633267062762976925062169808053410460347755234140328316528583941815611027659568156625106379594581168759397472923017022746606511426318235650445371451574226362124817739686281900762487099490623268160373291018169061940971071924647450832366322724253837626511434900560059995286865479113471814114705485343297661954230153177274972498127669829982935637214666839770513211481702695906251688275425536942700721074230135069519504004339849524245297970544522767725174070507192283726239623273651006552033684301276565310831003701931614675775902809042123417068005559057888205222252837191035001857133620762168765357177410335900970763659610275481374635144167502901406026061603118544954154213119045767948774650263889342663209390363212141526578381806622728375269031979228056085609075411935085699987247291297570307256115974155937602049376211427046912591272308289457705499962427522497313758068387637840252766334902650958845256419172869028584399858056901692987119387955479981561337413574996394130071510077193444992855606453075064841433577787366667678234484265445668024534193315232634190420624281647829033504783884419184951925044030778183634754376047755796508719635358617897305053823227062538138295731531456926787250841192256983980523083003282022977680535020979043620171436589335726939067399679584630501110461803914448454209614318259655901980736528587017599064455894840487879614057877139712243239975818355309688691794017216652431710418387554595641356900812205268576864419768067138308339422611672339356518381016318522361735206985376787069767864480059178946833204792258827005818065204528946853093190195968921315536377780387374348422282248830426244440701193455223653613357401868704177294125108588690917207641644656776440745710198266297318544899371346353820278867113580867139830640314504219373907108027379411741427774066551628193975105121463128757514550930730264852286954382701848039476849888570697994849239822561739835953420209882926947519685024446918089636076976417110591751231572539668871188403339089364638128694913140566635888378443946593789773482457174733351277986544892667286126751577592106954277443513152205622390633064858043677462726976784035514388467124204808588377201866090367957080465769870867324009048665471084563102075215611580106383947278849658310166669479452761017139665422463239921896474603530367268419948687330869673633283490822525418729773395628231211027336583167706946012971812052343945363295034110343522965973186707657231606097358920347467818173534281389402344254952601620702337006486544526875699170402934908651977594890736514028949886974269432431635292086508811600609345451445040467528508827131558839215580612239714057993892261887852634071528310826452179787880505427572972202761589228166945912964763272824648080242269761496963623339887147888233973160163828876095128196309469510930335472790640046271487191323833376572071701258177673596700842916750900590042641527014504522295984332891328840732095060064247775339417128351453676517402332072424969581053082133573501935649088248261229652415809516775516191858819218440195392194293052828296036653820527671894021412917586133703560611747380542956271338514840889470178655682707876102675639899493472730915643535011313265049956365903511151165503348730210504288646104369184106074967110120785888099439859886743918016822991367840632630627089179030684699992915297699369715478886968298180434439287499765102381181820518175504162263581528130990868054464386287563168656730068688206978150856617068741127272910412154022556426752750487853557261776160453706230182254038214840996338647213670599422456070588370440827017754856971994050103032740922466625939233368902554240686922188592095642835428672247387614037806072368883744121387418251524090760620405189342201871054098654871150450270655571991668903213790393083579158404619012038022993019645109600728589912934690466958149785702297424012511988421628726664453889727647353795498400402220754893917221202636144225587115761627329016376241377139746306786616653812483489134756164675117819319401374715745571039666273645121801491777584247158935971442270114151458338389301374809132297433211950107545646501432265341419630362284947959140917966005335763401915561487985889969580040031133765137159633164744287227706809574378967066717591129078983834758163054243235928412602254792442356984138085489603371230380537983238834167820769818156986281082742962704971836667518003370515188268841423386501120600849951496126309450710698892787398460118533333509075286580681859594003787257136831393492042748354344527948003459557754640405998278684562011014005279626732941841682645864032287509667868538037301637754746774957510497311004233966004653611879706844204121953831903256537390155350785633070685824651386638892303945021195797347440125802792959472169117387580525950992674693230446226883086406017443828239784503696013433093874560401293694812639623050481622258008215103289724535387022399058191554482162468465303505575089290010878013235941591108461074593704171517826203753176473127392878379694377498277450111989996827687398386900101348773852691665575504772133866256003653884477384089979950467504775198420559210968147219804036476658865141847887321047163072949533619321063624336894870171643333048957392790426252319175697310943572655858946436564951554596731132568578971362742342044880504736598820584977353376391598290881555591297274653303008671004883766996004172028241811084066928470193842675202308985123913667437688545164357063275525346095787434251512365757246255712193383827497854453431864837899567861962083785473489937923008489645158625370054957862382877447654086061435707564128784740204928366995275079068984120044058420839111061939714110242737437043397928673620125599299989662065949007131285907165332050187690399666906323740505997515725139215257911837780278978523163361664025735134276190267535671174339184642567062634660052925296229644326165362254773212007811445702275270268725540616353563530130316357240616128561760198163373626724354684211802050809729538375478899031151618887583106758389521222158175432000803709484022654757300701761490768887304781870775890824031111568182466154898251707335029512175427799254353230731031051878572551731740504688400041522166343965278243744648908419483432965396362583726263630363795308580639078661717638303735198723837600340122559344010843928940117807415672534607094495959967137089657494237647744501244410401031757954577139454687453753352580501158648853711748927751387515840090077367151310066888773458680415100988832735359564159317765329105102946937299756079952926943696280919084507385099679733548053666986779793266739953874694111074698368178226231390281729106574704923702251422101599605512930999096577452492054075903565015466044162861949265124342369424909941932876529795696863780903264340150266375970942654845012526511995832039249736922274908204074916678385170430910072074726561130755180639391413969537419771867496820993815871353018129301236405435622007044062282494774629726326750498147481875809449023007999862708842881927126885308080632189213179346204489166637837605821173477178265306276995292510931760870353785875960108233995327850690962721568669930757866773581425242982811551687753768580339909331898426156112701848675138833475343496932358755998412952135127458801286433769006418519867475062515213930968942205330832951566279596159571020996168417394720380045042887276340179493072633107801051561565567427727357103461520675518646230960287244499704705538035252407231621110677692356047764359187964426912931122390924521620243735335223708045853078006617031726774880431116827901788482279680276491647546536845965464530124200163654218833566755699637616787582483119667197991545979789894747976755222789857494968383999462908358239578254438218722444631742513969061047451244125604860926500302137976425274259264977260014134981969833423829550178862238854783346788370146092778613585330566893021059750904067847378665816281658663264847523057259973337428696306330055606234468292285832896505245377602456548771891350318536645523286289387481593620003881903145753789450225126183276371854910430268496129778162678335833301309820380579009195138759380825967488033595950899598409349724338853300453262330793248258363509878923169250493065907601536784949837167803414598012088616803690510756059335465575610482713153225119524552070919810570573617602313429904996108207965906115355693292202502655334839751119169341962035324491167101008184036683455054489187661448434068495851976001744999733889850382823047258640392770912652360988661399965538593885080560062667493782120971628930458897563006994275659380389560911251576909184296728881091625892699018271736847899547279316395454721103262851082319512805918300901144350452937536746442215223655215996672719934574808664449492405090020416865530963289860065455673785919716597291187505801384534827720130375928961258891178994430228085753568183100688111211997119564605367176965996369348619631549894158250427161123283265797583256565401419989237241997416521892857519280642764096379999256343348740900010795748336787603547886381117340276371632101114597577834646236984513279366798008043430994047500465187340398222431145329159934027811410855682730218489151198259022872541521076758562582598618745247528299399005088466217820204039935690502501414777918075376354763241338521004150905518607938410084290522325155005602768738063415361849037245087542780859043317451033943590398863030374785331996056458116489508988992603876836437266022674146499723713035649194509616188060446674326676160616808748216837560973713340794567806740032890063652394329802951003467512036005161426100644339076643659373113929174804309877036748592523640301454741089723836968058896098608662615286040963374553933326302433208168358744095199599221075486869096906158824787666610506168558447140763564377545973401404285251242731399659978330829669301464120831035571016573406705022538985455987591402772116198742918213764010140674832838712379818852353683395069852574602697426245665702658963432826789663768137458538428459903517700666900236761065952056456287585985835739541421413999612681953948073244443084758926355514461735362558219233764774158340322962747064335024645876709840928287431639454403189818296826418386052017373562698894256945747234149213684593474455658740021174616695310994847371172636676475377157767368389454569871707161081886040211015190146650902319149437930090607105376935227843786289944354716171887718864778858652693372362340959447029781887798793563606403142995165500969029078882888771422153959945772343278226506244628272610371485141135939943401223995896103896824553217640511298605365780108601105159764959412680189209304436055230301159489958966275855153467583389527972360658305933156584428144113315280935271734871729579225374596702787161605797023076652621900302893839115979217688007153687494413511520833902795401272764122396946609625064800594808339348312760997194022749048570477087720588909408760521706190441411370956343162044711933699376601024278038447792261558817589622620071288292759371743955190251538540827903068273586018667596516192679235454362633938306582292806382836475162530157919889737523566781401991099277610534575549149035109263390368734634038350032261767216996487408125399393889468550799476659119501838417135159622512064277299203354751288631767628032183585135654544770279659356030687678449587285992037538515794026204204086305745196666326020770802885619047936447771368223390330870396373472852314182522806259728290526824403117573690871200917273560286409405706016322133822236099416170023635122681659012850105019021513115030750616017571203191014284378200382004728242507827693559229966353062144143263101574788331715062043793096657629116164772847699200101881779539309459675404770952192111361520360391220380082562537963037654858810278893719165619052589829959511520777991274077891924164827465853318735333342654491254642755820524773458228324324232566216356766005767031370078356100734697711204089760798677814581226865049540238136151422633770931539299649132235486277365435766361377218589688421028536677107031794170434363050100837956226397426507371716304224592278246694552560525292339812683357005859616913883401380238951349634300835289736553326321872649448743448367251780685232681039677454875953425688274667427765482546299512079065214604023771707375845194610988248401300060858091773544770665135989290154763078883283000408789613025088629279233512924591092781455133902504109390262575407294140492078594410889963384502950268380808484714097867786274186820499923397045885361187361364076100472179108512762900396905445236776802163626626681667130267354359258250335512267422750533792566631084307236417833243927697340157398260660092249947570967373659814353925288752830756588880592992920145284393712855090536967341693245001389961808446435805569946082146560874116900907956044932617914260411652554859406913154671175377892129284280997180249617775360221239869707021545473191126887139958241502368006945063545269507911289768525053261422543259068564363522123001939160224562212582624544956785984557571079952144158089596865080752194727942990891036192696835224817935268903861376347464864440212207078719473028576734132007372581593394052402502991134829625808598147656141977838324670928799013133369839697907349473070697167814932799029831438783535906786122324987816013353332565643185635038507683827968842580151110626296268916681652892516155690359898211069075471400237007443453223355740722248287710637623618690500544895919519874183464111901649780275926765125213072202574054178570059769509875432521678446207224549617071166462496083196361609168704640843680299170475567793385337712403891466789081822410100071756246701015237636463868646691478131170388692942993426696813190482509961700563482199460147610739990507043191332856208430961582404517575100925306535657361319699604198021744182382382019760716852113440822054118236428842187514436975824853636996453498859420373748054255166676943963912112011121434938202054274634131866913058698733736206348337251978075084914851828803457978092822517136119627258290974610071136305802727863153832595251915303448615909605836447298954832528501708492340364129075856953048116513518432541037068443768456339527625101261128547764324170210164287070933411109802484886263462090433864168653063702264919189895196170011950687742512476630810131319741919708058561799718733424813098781065889553381952416055171780719821228332480670450446256090629218397745201246178658146801455250985897349485376811219857149476096502602828036412239411041515828294424231497502744150676652748780539616970654158069280427797945695453886724646659703380530527125018389524866520406781205925582291590339829230414201848728062230762586495544728247255452081403298607632025648903717964180414251682163704334879325579456690506903866454335506031507914064260067669426553082478435961161034993418205042983981590985885795255526808172238080216418713020567718984595267943138627030787533295119064862115887453034608686012901087494230476944728632944394951459912167416973098485912369364747753925559907718122404130474386267090009797922228565269829247945996401255516676099872212390530613733398339949312623726127792331611583442747640121556504120730266880096287221003276642916296432485226581714301935350073753488384935861219238230998022386149781614206963151055821621272735174950072418314769018909968859057155318690612123361592738252585543435926823564676968573234263982058464284062090287816347264013057976549834698013037151361163558220617209743789167556870496457035139311875910518016655578298299207086188201754121579522830734752302197702778468102002714726795743656890347351699737676529713178293890609195769928781877400623833171227481285576618799405933788856201341733671059925533525096386680680976296931183614833951168796345191075379610751694792599781579267927388064411717350952971374968146502719622990541120604015527176423079044068672716134472125293800460822199035559402365743317168411491087801575275050677280179230241950551682050771801636578302797306349668247404704433428133829032961225340974977575585433216358724558945336105564732762319697821844935278935405313712865684882277645932059544151091707750755342440873388312565441878419688840136731757767552059506740944757126696943296048508340796517522175284956491492937975919283355719330006967734662131662702598536719520464995817073580650223154234550710097019028388476784707318834089735776645359602746072539525680604759070467630540310449123445562188738395063193070463763242520478365944766445300723840642770893116011626224301765152588181187317514547638738718993756353222863685050310129738214498713373250176079733728045283814625301734659833087197041405396875430707147007597461582154191027037169043698527101521122135242745669546847746211364182742053809788381187191221851143684308604536832927080026764492793233501249546648498267688295863492381535598092581471054573936075466151057655667470361250862875143385306632724217833100795567312927644744543735320309307768519043644968860362424357768007754897790842404923842128406542249379067741637122833546022073971060487351229332228777022279021196338645811427906730646708851676169461358269658515806070847735661062620817768654608496747400302169522394316770483276232472756322433915850591407076691395452255286423789498412772413950981869709922402067521372662517650691608232680115020890589185473850625222655827495248839130504311021857609667522126653232139334551819776367564948485329486916934196860472023978689855999406001462880084945151784079132155987347328522988442880393045557659948600637728463627683627474294255626776069165349340913376032314804736060939552179552937252457888798519194471760800629889747050118147479443518441672054068233270777550457016524627081270276434910977518014120247983486827581576495023104090900792670921065774186244236957144870547826409860411197771971766306504543740643602375511130925504594368601599933788138170249537121797181682500900348722318449919913963735097532771106136783434421370608990350902698926118334616387228853778910244967361322154493876957816994961073905437938494983347155871818651102310366500591229343427313413485790611835562759641401144849904673400090365299901840514462280291117322656531632807901102342561727682653019739810539897762836204183233543140059144448616748325981076898243383147331386204571455214884070178450998591580569821695104243004403276273848005254598014448258727778328141885567146129710101912896192793443101955679708409033244285155765907966847176972045689978849651329348312527079193847960282734887035411637710273783711965669518321130162525306016505964846037191534925976382636000721693334455488912449095633572603861434490026356957434451680456338862292302713727624545164295949166137466416145971942589434510453546616974868723822379215236686941617658258070854571246459712734663819718988913823581067708177165848169913797521952626244928257139504639115407531079120793797627433994816425632033670686159642307617117015407714691775908627804879272768033876225020654264999586147647767473421443725457757394197562813321638049355865370067730106689578539648399324483186660496367043810905797998240821301623666311913977696936719403531633867123419036674874273659844370868368640214417411546007494800809327459590479272749682786041160526793155598327152021039993859760070365175543200201385165027312708162376747653144261205233813812283858698245998708104941869263619010337342782885688935562107279463400292265390643872574158408160410448342452091534072965508715041431979654052548099298458478173759326447125311750213327189930962024430894428481075530287562761856386050604349173472834939933878512008582110344697875465990234235069097082235171588116304884291769558656577131339947256248193424683735299472076934327768773179514434801813237910432425488464327477820013133985670048327222184154722526625966902415282273249328191807415847779344586326562673705936446064194088128749853859190065808692032347353484857763004335248457041754982451371941146258822180669163714684044639250776397556551642435875059580034065449062997953284289361729435715254276419731601619132711373799435059918547373928517803681993853176422337813437239455156770183014210815339173738825659735658881175101836798738857993412718640743473958100708269102464902239158729966147228749527396797321648066890821493455435658796132751887796541707473514694128633612260911079349203120519958335807086727310009306646079669861651824151209620060130603985412857206114715895679159799048965317019042814386618563224623964352047317635924743701111307277527908719108913253581213720392590782446284199709744001406581060452744290986797651780923960795806481428277246666222445541927888754721934740803814349482551782478286706611360663667900044800352981692362471773379435518919669867145781371097239240267855826886242321928663903585387853775780114305615365792875838761701074259964930636499667504324060802922714766569943626487120655023953708038139418269570828969934540123771344686584998803323771306311363891670259568554343457012917132568560311317695880181457212245379719978852681644352777865719350221051753403565178267301161950000749074760642740795819356638740516224408955207285648980379584964446932950894184360069499777133238321330297303379890575184916798303319823256677365613312528395423403862754130305237255840794469077010818517507240933350720856155229350207815248731321266525186285349727166886575633859244534767246940317112089340234070564347516875508304156685593952764969191169603530265223477608959899449812565415334404319112926085808193881661601330901555640336981335342505718936032708104206263733388362105166394543241633353337901986095383682664845224022999579210468020553714410566352670622770404422539817621326309194423041832229832204350632176035998228879479179375115736505961669357059586062518865001867412941249333506766408503700921021958015746293957519218945270786932581520620036244511214638646360970261558210437869485500924927418642399617328075301760654641498513170146141829743061061625663923061146422670456813378625101546814446673997059332607112462331315953490656329116447900216380587843453419023056629227699385408141056124869964466527860055932477614394774520992981499971645247047362407636779483405245341706091638818930780123149791955049976731507718929771155694654449346004637270467218914428326478690596100054772667990997797169012515307303301982203820671508450213476555808234686568841071067157084392071972192250467645508300991109533492390252140153955040809199056518224922404044319483279062135469882219066473749105941199723521625862088632977188387290413270444562617079791763266832040037303607131804555074278192557491979507227030454545233528867335300279031883176228633382320948386188920657470953800255133142135994280181267498339103968127901500646053426333370063917619648502763988962941509302483172786755233255945080277410103567946437930101240367020119098122230901034740899129381312199868954062339829210324570189883637299567229098945877355598849889449543120901149725880737138439830313174280893287643464607604476806062859835995798693456468918401235067005258317269415305805531000420271392291707122059096430556466003806412388995326371175919060396494431429286644387828749793940488254474388550933326839171967553944109350379600327244514866455194775382240414948189495378766810923262657933577306561793645714468735050944867625706867503561603717889720924701550578402027879097232280512208086934733940122163089469077687055043217241119231125437336444924731940003944558620635406145645815472268560276690833896347009538838785731050401296389922160647752381312003320502859980598690207687515945266493332174889908377666792505806659427618638421486259825070686415130940947318988123834861714409040317505610840433369937299222855056946044411689509141785768648519139284788691149977404832872417540253491749098157023654374122453042331891335103827819819688455448453618115293474959454930582606678033736062486544335545275674485749458816648913946577099186827245456052621107897852842368699481918952859713765783143666469431456313885842551012686272505982756561848633105683208289681090726431525209635321599011388098391069708176435490394486526246203175097683813390637507109663573285534696884861735165168327516326788924611390375072887946012749764171817914924942884075962779808846529793955768788441388878959301857402500729818544952023557318274064765990513130836204120377262129622311735049397169462001130150558392266051065218976880329959082995658193245991660878264387320962911127570659228918317249382353322450231164279084497099285647457629974535500415711051403381098483711377921676011863654821773580540406609003536098940635779941119012052913351218628899952022418472475748749493843320871706633813462764721491910950255746676390821856622465069713825931231343920351893079056255064216632754131834580413411335844827168761371687565854127372149937130156621058344203597186141625189329598926143305398015945112570427938436205314093079990998976942736936899770601457699049013827050685869612847059148565208380214552283197745020026257598753303396963059096189992780330576407146536568901891688682558032720338662029124458978769011563167698468215825729404661830187626219678416647008156129046654178506925533332501433464143600295686746022740896333179248072229125755572413501061021487353319729208276726404488900608541041641117510555850699694953152487092045238308819429243166563475261220955022175801399876138722554429462642389745522040277050667387484248208087848521057941440325634593727332597319751114808205631363071861118293825086182148715461746797957209933343415968314940590325402122718893385824158570481753442536441396774581862750162403357103504505557103723061055968749154899017703565925047907522598822426454230544986709123258930336048285618472917201780377945893260336651757698065630732511291902477160960451992104724044758190385860466248547701248375855165760058278521243572818423807803766774718413327362767058988779992451956479028631243438261420753614423088179249552222521475657980031899151923485339578339765468953898799476592186282809351643920995308850805138276927531684853902339055283992347092196270800664058369553690889407631463831859173865642519871045113460423060563440290089736181772320645196522234533499494230138172900301629487690174599628920238523494681211483909244971595098819459243467119917243179382285970558579240273002393379993507335165765453126072838200229034546659863030941225510216154047699598490898065786136926420822564112565655057753717225137462655741754641650860294902664939040302486757830491619523799588290977753042783341245633068660927513510234797047565696729077799205581649296407367788271140168922376329493889021732785781062846444530330815398316717987027245404450307926849193177280532039162238061363975030719290494843226394518050425386271168894332813933997327369219932151470639475392424915380137569425297053524538786794536795984749884736212962185770260614317714788215574817583002631775481646730061531866160481641301228371063227931011850862768797613038520450770358988478365843911899814578976939053846576935774193714173505959122172191125946444836395509022765755700837813856627196244688696635718747046786047874565938951496471382738481095433060571086333669171835288451856370465870493491582824651834306292706040068832431027948515326766687748233439891106252850003021211339858904562938922851132526619333230701572017527607731363271079255411384797870158341731670120512316420185839535597972868634550673497957601269709924178700837311559539860858813962495109644845033736140000763325965870373688956640322678054330166720481029213481197727273424994554019103427432520981907752268263413604253375534883230241904695890706483336619953107465036113231393853207627328544373054393729930611987450663171655901955979450882449401174471106805515692598416767161154576536027247391197309519685685969141047285901186914690085416837479733372823873263730398901832854148801119628793199999390538118748285437313832847210154998398880055239508434038966320565481747573274208719566229781713411846110789521617226766071776112585424116253018320085290844138668635559465710583441478578644949430759611763802048156956691472438818189166354007966389864732532257593307628306441353147985791170477548709626228192481049117027929464317027167336676236134160831611924593594524847439459669464925881504352877476715625898858990306925445437264140313217417219331466295464613518073508453194831265098054332881496921261359855323683322416627381902037530293547901586440823948719070409796161475581620526483086434049527692001495910339641646491256483195846913701731355261773625609535808902954246682226037997551229656240326594838185600698562881297631174632093981764788288612622500369298390163753128788234517081184679129390410821250162063325536405284915358677199947642080431125348551663888948237134321889805392984794021996497613867294948623276535418310580495903625174333592208149797715831409523400830117140584741194471452116381877660196945291300667393610994758588141811412184532557895863534401686595012397515040109588668850770890732301518972414553457075590305182426381569686294036410079476202587354694491455627256925371228316932223859116020100365859628917492619364058190736757137131803352610245966838277711611924734318800717606544394146639302205589509843622822666558827843988428892776404410850168331102587871828678387780767779964098200018699115445709045880439129625385095442011016916646527344358213112338120554130754126886885529293138857444226045236363976107076781148227907853742056486341731358438529496218573306927847629849373114763195543831923958803035644706417783364547140286069939019292702592530637615414270800781687724588593117597630702950356952490811890773920169969470797043249615719187592095170876718525371302838476660364959644756411388863697878452589108480595619584053143889215640844719391406630711284877577766742067764462064342782286265191854966723295631744612368636592609638847289371919702489270124030827171317821056797464395211408619365916505177127996679023588268276897097088896120199934553929022571395303335978541015840053903044065307672581876388823000474602435012060928512240598678702486030946518787479033564102146492190239983874504699877580832888272137150688347543378522917070700638185403094992455109937022224929750223609802565085392334034858631419318564777356242870860308799717510598493018996110832763751304747579897388641922692448144246302235104524233895133192586167992848251476532341837964915618015597292097211765296467742858339065987426246123515023395899317972711061877481087937860684701753106806205255137567543592259716744041976930875757303774872091937633473979234120828144896746569887701341344674336293624956304787253688957383461120621973099889830865159489069846804829221290522102230681114293108684650893023129008024993520989260013093938296954974599927431393458730831392252435399361985365062727497080877637261660711670920559912772152305705273491909096747527527016249018186956943173819219776692384699829875995556009160804257546597182524518838427583946967147275288968872740833634293143450464969714144524274496558853475688831260201682046934826713855111437190677181678216763333600169653007967017792929822149484059512157027021738176222214851924054073028688571972713809678938455223556732247471816969917399990721528642759640481400108014256033104490227161379395962027586601919351933949109667373409720902228617714281291562298789958308704497239350743345120373029192994246991948396514780557083566055745259341331606206906803900885223136988552686915521915980053136473382981257308202521037467191496764766134899503833755117241967610341995817300052808179409911222607479678848082482299838313605731613646071076431118733444518676390632223613650856211972863364300103290211377888544315900819958417841399743895383758574649320616177742234197825483998306200899028940397833379251174185818563125060846612110178775931770985381291896275105157621657303388590852028081316885187979528931136897360584579811163906471283999998325480227396063904044966741199082139257824081442000852959648467256224172255977917346809881715180167900603421985432019554740702931758051619795035835363533405214024071336806852048223003803809408314241550214938442639557956319632001645576556384403884761975843136985262023689887539075313710827134115518466762923909952143614736431930356169892981855780999720339002542725777223647753245934514562274969397591132798842086822667938800249898076358968302296930753696169050917568414054138495904862766812024997538291638908980387899426252336591270524372658376343846151154761683167128793697594269758625186777323279231166440274158299702327059505853817345002190557295097023113630995379656063009384018602234243785338948092663535294725774921053329042683148215124694205892558855113844055018101660554833069368536561706473264548719735425379841618915005581114401615474178658192017863305556841699184471386381224238133348125049768283277857215641502578726631423335938483294193158294091345165966089335640961957553375386553192623965290707110849736731198511725602484402739189621141666872142079999488136057357671684997140567431694801835780947589546264994106517112477965345284603224170903577521220248645913233195039713201192097606673430326732220363704921439138549378739777755732779916733990854788387628568282428586656178663863777717084200619436312154200794386255402618891755518050695231327589282997802482027754710589778057639157441094945724453125480085469430388829062736117605795590630799751340510399132999622302124037689258899062559110146230357236929918249978782396037981281720678603117100140306183133480121488002005970035360779118372992371682112182255215158714648571543584771481919986814758556564148031328501182739417394516227737599612948049104645783247800805711669313824859685678406567017674443899234989689231278623128940790292130845168540137155601817894424696359473155615973195203515310799208848280023595226016919530684906823386237409814804342994397617703975754697792313168856091136141040020103063778861436491432023811254156998881384821999446406429810288504942351033166224796804064766001975285632783957960872307868231792789525408252704852737121105029972638673112151212597132856236887442326676903084917107898664254127483910578411888375449982643651799462970710587059273657216087025435063441224046996292028436576283497522259066429148691717990731850590466031368138616807151552477611922357972148640774030433028295045607419320638678002595836602787888161498425828136525248889011295774460047473062438532209679015396970472005124736537317574439843634839048320830565976051055885205380753825141474841568628880595312242073539272357537704625936064793278124227050796823302457377916252912368043661623686994594550398227515063789009604265065341412861354318583911832569651951664787617299586935931645499971441465778554699588314767453428631229970188155185727353477314166312260694269014963463743980245705722311072686680454011772462584759331318711277606353908237058951557245895275489029944414654312964581996587010749384997333897190540421862006084441786876106914554504592176718464607361658793955524522928188824340556245798732545341158540197468773981297707300673204402809725187484782264640838587977889433322816830044304975843360823302811114692028063597249466505195261829520763979610463889580524722294911325494983267987273795794838975244519089825852436760211387154308953710447008452441353447011901189196078601766453979008638951033798981348470315314440467853626873188942915534220490300824190712785843816447533340132003247424570647156042943466484541950335868193821063710930504166998710036860985780205255546610356599048861471696772302559215996356535492675647050149040430180225758014898757147749383993464739060403406565733558521156833228754178386880292707441283565684756879061700432945048135414673929908835680278878099829685123966457806813999953546326073401614552749412023001015901882398232414884245997149489234972709516660482836291165567674561600926790665845723737030120781459334856394580867349782586938304690989954667582706502926402098065919153823768736405447269177350607610429384610297843218528013552937289498621244884787883576772511246736498082531660308959614283342638772037681881740656467764528939834348477756831841431643164784907416322403559034555037607173175926233171351048893343670530945964549548052370101374603755798629722481198521823562549854778207980742002371539708459566864943133185592540493340069947427338047268109102575267615086373755894848534439568259178005741908833359877075430459389236093898052571160958744717530144379422492520273278003358165534339921412380461891212595852994800202093188252976073099209390039982597483412779390755233800259945409403051022482238789116765323572639521040116087169681544380335409167736524137783916086081466981518826045090559302183285139050949747777164766762087728876326185659011086628365136240016803530427149567092940929169951130396442865685044698501977476685044724529556144254030517304709202353451187395144130891947535267337603258249423902822774886440953998439723066446988494751875155592516601523317360314782507590409567631503783064109712391430834322528444132385412517189490776167886731240774686915248069492366972629339383831507395566783062853855601569348203736084428593803110846807275568059091072886117531860217730842264365071240068683097533630622904377087569862562697138265865650149032931498248533448520924099784860591926428702408541355952909963624443461926239405638670195735333392424411854567464993238999952364405759082679020215233281531298530347989601065225645006453588819214294594947766909923204334634198733650581299722000234953947403593126759671504668603987367949911030585525970501738204419011910323639945380097195581440503551637439699386426578150421073785071708699869558393216287536842039463451724905811891517581482759078477494016332654793471551765530801329719410588684717263116468844548253119989880406337538186382483279429815330114552458872694440961007556179772386494919378376960806907581965471309147846014038037297345611279786570519299782591209529133843349100021009306446332957827992778565402191747454219037275189027402542812790800080692101085885629432992731311300521901215884861588407096328475731339312252715596330031668525443622917929069223502197686672159609441149326685420793307212717407683423829175159019431778173271743333076713970540028732961221130818910878685809341507582534519601310481553260334188140753149547194935026486043988346831118892730311610988616026202286812212952276632916466634584731130785636603476067701140546533470320098996719076807489880668396305636070335073005624884026555293685559270044482683395937004486832462316615331431674173508779402355468673892190467954594057392985076027774073586158317338314086154507886396586092795528664438319736345995826154397083619092836868087649256847832332324733524521687882969497115697413749784327163167736769258738261732089002286932372115573435292461185200022419498996254849652911717177453744262332789534084989091575059429814763655460930321214610111471104618998963089233207562853362731439947282358776935532271873252096236968721988727815256041584545560745120626287179256154496441421463336289104038847118739428553781483482052925400905163847678950336985211442667297720924327540214154394530567328881884402432306054627037783424983651052095099508070449829914880167996426791155732526792338509642586859220784997029429717343673604539471607235586087558963792753279503683255919229095163101163009342473611597679285536352379255878233266319150624377290336976426248700398539316270231961026375475629237831740326343785802831732958239999793317134413960305421303338869422528521450516796868792856951889815797800260114187528223810845930929407735941004837522336694627595803667057792093553537424863428834587317460193201206128671065287766984854949340536009999911248394592109436235252330183261100953013436998138993389261420956126330743221526640118517479338030356050994019836768189324432604453153886340426999621623200430441526737832468287970527495605238641253256159459479740103482334719884066717254465587038903269307595076205749321377957665377647250618439244138452655498210420052275634591323852337892907592876581719718449247607113162027475634848673966606739472429329746805951612870844456656212975683582386309520093781013261706301763117368358318995044943686426048288541184421212563143657521201311672350604313750840339706873241624295990777843018133962597724049777074488645016359096518799145982884966835564243439037941312438839924136983941803983780662616135836650334208053201394024506474163901933824658636677822797334146121943752370524092115376083147056556940500378271030856457503837584745839548055449524751601400639829648087214008722211805071290928696684973032418848167941775309639362726205554889917467036755800062198278913133882606577192891112356577547561236665138031711893379719857484543457500626215215803570735213463801362498530312020272252285264939583492082950074015656343509194041975510632501831101860090053412122060959879359431201625201377391346009170500432835200175569277719040165411083972649970803803286890812495427539931122452181906529607547122807716846982619728047060118018163696604773075183090428504414599455018769027061363141448154309390824797157405813669970135693434258512754780271186738258153737930531172622603330962908765059448165312376047600134008466000239749948156133776850528317622264251333927087843367192516931820889715542489835852923809233282267304297891073415790225240092861124978460856520821110888206183548873537303136720619563469675843967759679978403453346574019744994970086811228496168893609951257696694072148703494054691525357587539325431280211623061814446714009076988279814615156296926462454381959265375612172619866014024067190499040386893466174527236594478523509921792980133775515092960046087025018458606633553323230513466675186003392038518650413872257318195349596556050222777597057352862109952698084497359157860223829543117310845657946082152330539600039371344392592937166810260352962074205684035640494061265263373801967423747978485171709557033130711567568830149060340815260439080813749624931204797884191633662643536376069357800887405854726595076123725614794444827191483102072802736632170688760919148858793937731321395799462420118602747747832731824349315359597308088206242003099633807803015527222773647521249866904164600520859518315137323478338186062267828927870181461334013412500129412496928626287499070720329612996466281982244147624383695560182803397832408336071863954969918357574679208745860863674950760108692332605016154996660667689453943220317144324586865666420427753842767210389119727709352887237754833010409630010539732133407709425429817127135822623418449389007427290134149812102502795315549720390363670015358349515115627074328439893279325772750683486595376816904874477439342141813120008274361754979671136400193463400523693645219414392348190596375626812666952565313186524469095747991578856275280469525520791215820298511743903933515038616941647991603128216537468961608578397606367538604746567071275863295179042982702571167294327910492268778598751693220577562235348273735668347658268109026664611357205113855148879734699683024705556543608373908242408666423031442848857431480612224454850072289662299049427969992732815268249440477055018998150259614456623965430781675321272269475508398177234155807792531532898954438125015732448861107727844768651494307931180522885311751668244218647447788889844625747502102035287175604034455228968472450216739884924171008518523577396806184590134908167782995794265990679039551459306007620606645268781380465976020245166300315082400029537617827016225801497173279970596068450220485591008319255295839129072562812741547291763933452417535878751782514322755740168292729813247643132576736718795588099073097335126716382768837166392589110911917839962487351002392391197703589360246545276302228846676275338967752597722010000816816624683652292411298438128482190080180018872957636837325382760328513414522654505896738386381014898656369757834914499334570934004803271143565266103068681781912990600544993276449751005372091671102435401160641577120732389381439246654678888952538976076939471839053395850266910667633772119163199899347106278549303129452320562395332770144265696415174929263446917727732720697713074480427505108347575013050180798115143281099978182924607201467167165969704034372265879427141244972646742855153792568091641202748919274193380817675113468248305427844819793252506362014351287956174338346350047595003785394326126777893112966637847126668666462448306267783198455152351288245631593083323251534894536659691370019544728980670784980742449171122445588951500079522417178332304115180526009738530505474538045998040031910005688599136226941571179582151219837135749373588306127130873192221531878689945879854989162461802419144201148113167553931889714800600083122932473708772663130806971714709463363423112708509417984154725402421777689361550738115508190995155940073778805075457357868103303580857218288888807990428467935671336663829540446842340021827608341211912012138310248085106505855917688337722272487364480467650779836832603659433007363353452674177870907577281910307103733922951531867938246913431313877552085261668663270652052579209754875157954813053831202609192365146353592477439874128541726493721654057235278489645423358253865047351641437814712991531728875471050127610221833582921740064719110750439356702599299430511627379418548233786892224324638327224551321541267561141754832373989203726575294610320456757603163744397797440224988855867816057327259094995932247501783025593841941328611557173665858865812298699819364843985610962647586022094059692283778237733179546997787058813551756333739044640656320521003311223278232858855750696758005448019397781356078093957502149695604550357329317602479977641149600109409756313364415305988751671709028560567362624854413637869810940436818627614648563119834610538149624773607890109108776334510928290437431553691931035573770455398359703634803804538389101981687149059748596329566311274603728496356709555877308042324365971867629904941795489657128266494966014733309534423504480084196445851236896132883938833629059964993848862190101265862349445360059554572557695397660998527682657580990748251921906590418748269145490905116351938026357434774981744772685899392209731608628865758590225619179380497804179899756092760392821756895168111675581946064905588471180435850401325022740344066993348938138437468508518470077273804876400312659807286887615368347848173593214097078525171248411542255099480966863863528478928645204685098250974710729967137430224021333653247980925862950352831594421419236643159328378571707371884349095021919033007327865370147126639894502515694327808405766639241728409922185584361717836068458457978188952830127208318317625758330618575043821524093728161162647651924176808228106274473618037651859467224916573924379356281756301410547968898418418276357205213960643171047123993372921138008078834748681859471069422928414302449515234920441899937348021960548651070636927266773697254838560281012214157000158919110560592356994134562440537544696215040446354284507066401947409458439183643500290247928014679271101373928540547959515474491518948003832665410073362188385874102630674649940978901565540140557038978621014416981234444647010969487370238546242690160581705116345077263519055898142467576719418857136624558329886227849073492691145071051635750442913206964793108538306135007266629217614276150137711721608675658197204161747409817071490837865820768270982276092473340346639154314866164891696407909891690415235047429804724425156297109241362820488743189172116512742976109374185051598274371523673469863882230461517200966518057620894239725709520854626300167606199197863794063451255061036755778979212205701924749981095163746117686565835259399236090604647872904151876825887542972617270139792465721452851295463227852924466055933538242444489105242452952921458476195207706249120726261580078768667380987882773699589300499042500566476716658285004956840287038243855743707677036403071742278023183419371641284922280492037165853806554338147041317863734802787208865937425139558437820741634042763649609788552225644769774726912800236489920677631748055346254522749998236798183634739357426454139065039654046609366262796946528380774488133771331155723536962113668524714453605711092981373291771866015843242609733766001630597437144294393033742510751409249990529572321708653612986529098084254282029747584164346740088341933550513733522587279260081511071546588040598743399939521675960091759468794283629802414783118164031947227022613757429812590846716214100251712436213384875817008792791841118893993626830660872654393580118773702044363527131984411731573278182576858174901585547874798715385271957497725182364205824732304598148254448179622947788455975997305467052677658690839378342667598675580299339461446868770350506785570949290823683207058961465882934037898299765367378355491672285487734316508678314142436039539096786251074867640898741044140572733538058824027845656986753331740654800792016144636155328133873706085686846451612830895398888474412290383821668591096255584350284787377554278164085716471496898617123436373505698724658879433019679399374021118136971035356925785528999571817649929678317760328203369241231230549330520478226532696817170234356952110224788416829040876270504831086193817084316199351482983696414652765549927000127020628283697254303472198475022811487954040953717386972254490824492219830400024252309506275875089076331183629950401604022255896867208086416336928457048339332581190461069727578038769955254840995964568392875731532274305882700874300994501048551675269288954298738524672400825782529438161084932291439714909746037686953775814157334900664206985777415231433236223632074034212549903414313316703111875292458971470402382487671011212758573318387534953384067805779100516967144957422341673252624877573781055212761520248364197813867795847616860572865907460708568666452955045371161260868683475599574199731931637290861905883114896654183372662560946906048262495655800394298175337834102747648475483285231746434760146414783590827330937503207431532605269191645400695522868668766229060617198420531867901110549619988844851693319168529446175665563408748006331138525754754240718067782953585112409782749658364465270859092057219847357933410366500414322095634742463620623903051255084927884734659840873990658429475187678821453878150398779418845061866666653048941923083463101735448873659446977769591825158698261489597506336315798052205306300046695560879788051170707624382192583252211290227051919539267848304963841353206230881000615074703575709293206707425367734833104163832201828112705195974739037207491877821501265286936708379832414623506896582646087392982545165257868206498436691361582389399672509740941464220854307673436399381502569685676326170797281069596403965862472320360138328943333966695440134609841039469688303275387489861860084626746806355665805136524301515673993721557952448458492712380555095508996057448707037697540360517642706141739270337077131181416896781471129960756958903328254807827148137503564577032551927815225701452522478515571841038930672655857064567478580999669899979470255030693086133905001955357183443237922648887865658423206895861508769833460702269179720568629307726684235718190501780302179052784154186819305777446308199851379457018630491056149712386891965180884594246151540575341536161526364709820457523457988108207474681979111375474706745789895363375365492710929784732654851677550242281776368889716468411645461498573846666385105930845116860743722886198329539075894005068664864515119431620175898791723332046408970325132579396097034659805609135868780045001754847365856985591680951438925588805803827126020987368147554874983862818139807336259965083758589652630270721802001110156577580784060099397436751587356480630005522730581254196129263324359689546445367739387184199961152081035613507467152343539175299161783948139873378847538389624556260240876881548782499569900901936608772653015878824057105916479463394469998646246312219737748251387897505059525222288834985946460776621393530726740673535401486184102650282650642046189905082121420495130361040503917384089560706069330893023168830734493556871798021640411134505191319104924232717173292461879510343761402618761217361424291114720178255673657021225866220747821427815741841990213126924254127862607490833728768057722325133388011007152224061063459269930882897954386202756157542558933508892766840591537727246207890405726875080025663649877980916016377144728723462222109573409709623738443474214828908794829368336640876742331236768960730803961739531329120095152564121478676640731839120878965008261564209487208007312163289384909498212268417919659336584990246887508576271600612881677503939340432619124045048085698721940385188395706633676267331394745735831254489583208389545738300760828645791103244847994396386972121966053852455992249384961560835480419972381854485218162093300008916218552807735864368722433087483042620846530462354962936918461725670972195083870833321836137180979054023970991497972145875892652543871038605389560525810228749453448364445554642607947804012878304953518977806959709474917359854393739968802372331515445733458244116218262602483507382159432434534193903106826920893450753368971315595735415035867432113020280405542503871178995418368373573415706905242872175054181909084951822532139852413359384372851979079751784200542302258311382989794860388691475493632691836384800295117748349191384229131276240928970562885524740515363312253719793003472404453171427175054364961147173249056245664362117050546739731043325976601962943031469591838149040391784366751615960223924948965863924693114357400523019057006717903581883273401504060790584417127899092634289457767976455517439212675450604753230103160146414005332635386801197311226753446639886465330458897064860570836257398345103320159889521371347129444006717232590457212455288468642130754776807484803422796866885092009092446529690381642404529569523767658457479136403145292516169384275083489132820901475800635398828479799958838932508977936951108712540994629996630398878259601662090070365797257270241435395036185503958964294992566165668881657668942231311172648024177888344397161752516439855502864241662733921014099113723665327793233634536650327856783437197384542303988696942901767531154318983408547816906109656467050807276746509462012200253299547915608195823890814376503645040595481475160423935143598085029216480127427817261066543462203361052430324708091738074692093095611389630270104954565786696523252747503089805753835689210282484863387639091626651863854066840271577456507058388984016904693251454522600817520358719239155024814688884864501720676999527662361869784081220428291484969280349166412760510046758652625574360567151310305787149163573263535377361642254590074564144941046764825489835340348049570252193105358909153072815993746100879346290077958461603799970423929085366024948770053682834331310263875820617796094922338542970200364570563569781423512446882307857871308792736295465277117395852239000260670268032458744215435699084811427930686704098139131766566631600594134965792650912883712730293876081992632904777911006245602767066335165857113796498310604411877464114893821696730463134043435330479701225861800632794572229886588631900768529602676525091050862377790929438747726711298949030792559715184733420906031724964671778377697224200869952498430394118788717395660158615100281369892403912100848180380287002630769324991749640694909134110296949301557463206347801557000068424314852306078507215329413899832497250410220729241389355438163833652291394518001020218223782564144147793884897501622752998551696202982580252414482115348168957467080370410432034261933155585259359712857020630955023865880394179243186204214215943606200815521823444383197743855893487815580291886035610785777379339939692207648049169159999219612024503541095851119398939067293230807974703492541817001689350910968211867608383138023772927938457543702810053145085797419754790340471137139546678442092634238111697994466604621829868756037889144629162806664958731591108457972460234501967167295502294861296710283494180013798807913268536143207048420333070551686985820158964922012205058682912922953166128697530745853830687286180577716327200912357756219793922185956200201943619645213777854615412268841898943018743308062215042961052541457482855961822289905849825671475912521378310771595736133483967069944434103144820004646017684480027194433771441504225726676358828347092205355848538075099595120191168815641864178007501133110600165446507977143353932957877692780119425272664020113030093604842684588788688830617802430246824802070301869188543650330692093150101856421746589233231115613929693477555657347255189686984471662489727821033452657281456190205571781216925827084805985129221177853920092108023697214681424767250857260267790145619224114073768312586700561163546237547997268206258155993573327210782374410507762333703011625909077785572255480154301581043343225930167956993069808459955357876417154638587019376634244086921695390019881179284521460937994363047814337378963417221902066128872655600148815990312199979561936939675975274396675161651278429574717830875365739375807838119808243836760635468238208511488899299194760422060353225099188545092184361973302074891415688318543187179926490088835895142264856074082156630082474667081719829123650925357540579761294407252637834286495511556018495950154462985575140203865445154009272855010920918221740207455297447357195965476573350829891737202682524585817445325550681921568259988539796439913079358558279819925441257791786028922432299209001289129332967522040675755961670248791481090559536410848990417810985628853741813685762045799500651738293344243376025061448208452045681669711197582989924282654797720866802910386395547017982808850344178705707127475985803996699850650762635770040312398130182038821458424851740103398513597651164321895884687976203944416548041629041532418785658393513486791051068239402845907780493770871031626103822491041994200501232095942077191657297449125866046005103245916647261634036015313278342085912464162060233748284870466510122373977572886249480244515193599994517295421283836212680048284662500002839222058641344650699339845263331674878617603002925104426267569247219289735939252587626983572065135812355950992708864699687832360932513697500039944501497665506291824025890746688826408798910675453434230934454912174147516063454063551341420921036989290259185146221805289041193089925931915856014213381003059052395063378397065332150162350379442939001151008097585912039916627820672218235847365431501791835681784712461067525976808328407223323118914005919589692308520098553795276485129555572044046353172745675445024675956279933724067341465685106734101030394922442440001419981167598920054167744078204266358072727823953869930294889372007716525656243300976492782192807185592970607789086425103236562437386200306246962434339302000693246234052535038604941888284296174982787846052495633444137759591251796358648807415610022674543155934872811078547097996759531682801300575144486233207108253366860638143592124463933532806641329780979791618683886288425195790754183858798381483673524087422873510681243281326311113307667165415001320257289607534782567363595422412201863740160353681494075715029515721025998497760174286545935642241874655634541742587804694596501363438707910545335948079858133519560882320795958848722250784946443726028321674702192753626414338186334595676953780748960110787098977369136585249297942653736242346082845996863436023393760914558216498141621038296730960820188375746130481094478694507608045015342828169688321218902911333575913707096278830712429381456103440144637194911823978245260469430690352386866778761116077741759915712760623607285964498770748377305906435827337417048082733104291291328598754583737151689168835977473717544269478491438639535658465276859117688306052272160769430900417451136800370775088706547240796145164531808939163509971527603490696977205612558073319701742927139460586120947888576170327719037692484920384985737585314548440889590820690578579690687494410758406030748707032283619717307274722071334880179342720609018750633136317341075395296185309936573645795311947378690488990402794724321640477001974313668409314623213501637768612687991770866386466734648745173872791493301419663522474617637461079991973033578131385231756102234904712569758417839591566301521737921208971476718023526919758260653371233007476659562612069918782592774172422486943476124990945771794828527130315883333803127148310377429320916556686086946922417994918206427757185901292077494247292211745186875067749967466547459430334240641064653212281568304062854958772185883387950272436480995080676508958124682649192768434608544112496163733532371737615751425432605665695120809293258746149059733058600914078672551058779377374811453667125289251836617609585880733646212670332457287507245806058328045721588646187713588215680707528990177758724341814954979272256192108590407987418300073749323941811321715255901738485287946350487469637315303135024173251016620680182518930528989933858538718330071136578365609300738916648041720410388038294331916808001891273661360648363268429974570202586019136971111238191146103796096331631105893181910991207239105454100248936557159320230486672905131173281836680098069098670704774452936350611683470718124483717647722417675367586421502056212464383121052472345270225302835470707736748273502072750305782720153854887949142823142776881599129194897786541727556699068966134617357303174712988778137287995267276894324685427067582290946918998888705821598064667714469326256755127046735435299106620123762953664813253138480992718458509577540189320856705773795401472010687399090307718683828470239324319617079474339791661573574267277667885173694300310725624732481496563512118304708844829572592390333108841039000309461079928927982581993572489717060361077724488062867875162483944987729443536392137716319871121544304703074433911955096318086464818050644923843833532794067236734951691487569145088283068711608926111220113733824382614382558017025774310348973755544261924788667471293352791510056518944456096506171827362265353385631237915495239701395531554893243936223848015543419367829661506350741739291883638752073104123652870105804637661367374003231448746588884645610564567071212976408743079424283504339242467799097241017788708366712735660429594874097774872886772745511185948803387871627642082598639013328192707861172294018298023562367795132905722738943850776159197177509550763679671212917935274589482517195322219873780323984203218270301454957921545822828027359691224223670096203115900811683369645283453893037965598851131769420793627276988732431635956848000081260850436367734267506514621494830522211258864688601468962598404111193411057863313855192550293381308382988143494627039726362727556674016331300325974809060553136857670626280565702192633600378774133990547839770452577893921610025249584944570002553994578899580219269386628899890331447323653277832498652059511476408011474319364205942040774176490453676258214031938549734833840114880146960016707114683534744932760038983820556785345537493350368757999856698395803999391569759843913969541925427834481114383314613479846903150821796191228130412507350898599351404275321576852542104819352641769023181743333064455124656921185189711467458529011247904391483941865266565338281826095137495061430161101613738816097436398353036649198553866229482506519213199065374508810948171535238688698290477831965278337259958367895274539210701454277411206488203973383547635075650776311117454783838245835411158435272111760376722130082252881124571619998701634411228596358616350065701162568449426500655200444810167230428755006061207969092595142951720744542118054254634207998079977928049421146847424294668197278898055348643238886644229101278814430259743865764979702889870949523147917634307020505994455552350802383947603618552296319159426894397176370523344495120988821535592095518429874926851891833582767629090437139848148389060715494116266241850885525576311809235737489208337600862177641303913672688523194256487004155026159550983274302891826200803086084495822762734953302236288341106673907853672293932915867054271257569374059438228176670131523401841067429134355836756282852910751072920130065977366188220460492294420589870412485686199730038101003596309974529614452362791718370827352456281185549581666428767937452136132289044947240745121587930632699883289613833339937480339621491175111074379114576780215660291797835768696655776525187237639074534093150484812806388843663173407236965563549462917399988191793267250118649346689078207534841006674827692255325580587710293602673301215431765965563294934194578877449277054180327672389145125039698970711279402649100901164987972198117868589636975236505216490771005910864844091314263277536024271911463757457627909771583883778188479384306753550103293302605023240468224441381527334580994668650219145097481279846285667673270437895412851536676067827394276791367096125876645673350393139000855857196729695769853628961416124032046910973259230776139612325924477498851415387459936823774299843308533570148971373622129153596088790376130324536347864372279535806987591997741844573145767446237703504681921134187206086199035462611070313075857800507439169002394219858935700869839516114696238397808821151274654442078807414799463760787857887092126104021394749685807254471864860251626659898339011613388238624274537602703739010286036465153619668656977643176755080837273596699522091007423212692442942005154270509212040289212068043018042456406938679057368186418962361000050645576273540069331955810587313482318691986337009306180324646923661852840905015182360749940059021709297134678095643604008527066088915705737213624939012402493229113133304795166335221916620294996931204321785649407106105527505886213092683337400307238580082629487204806380778369271728054993222030195989429283781627798022062189602744607882520212135593346566257360812969384069884064105294649091548023317958110739173808922990071615476657346618044121437279521886072861067024142093520258161876182688118047843722199253188562323820330979727216514266124630680816098686883037673166466336234853163001627078382522378681702710867907678337873184726833307055748171432413636956828909739344905598943034001839720889760620097188988175955292940162291131141053973689972358462306874850160423740663262511589259385969065751265477241224723664502315760805083562266052739822966933029934956273497660135876577781679265665375115772055135430334978094362763912280888032891889260559241492293548130272538303849929080607252971929341192409221294891838953960910747219800826345062165833646256910697393193772933964665691904159915850683769325260313619764767134299830116906916147681907091493867945985388757256027622299239614937949329478193738203351379214967577042650397767563991606390106051116660358617275582034652874362481719087420675617612192473035212323961338882904132462018491846689910811857442729452364731086511344850354326461128262435112150175534821979307648260274816886048726600896873102697769647380334568936679052239376215248866228625330216654553992353393102232224041332094974559244559530392555703688114999630168270542577893001306286458661873212316974335613190974630502790104193228166996850819381950678786761058791098333478554857024937492940270804378228775786291896853514687968867659402039466425344730515537982898777216698772690771558362239446112423240899759883973134687520702626134992786770920914793390668077743666273292691547325351314268390258030209003157909494787084123563223980211403561981874536878103526222012922273757269245919312987069123521175270725646076880790431772202012078299002570722413319174143744169576995065772337330212111410334518824789199597140411682218581383502866156978666116690385021911375928199767921892120821718142955359112865501595261034654625025994217903080882490082957166051196907553596642438115319545153420903403962999171776569549278676571876029245094997408804875000434771214132790410294507149237552848789111163756317220030182299478247487988096067029800586054941892588641796927674741113649646178180153998937941843638584010114527142911205630010970235791450042966686682163250091228149780706562907032116321601914234396034381139325754517379698069325242198505533295847172291924935248681021611393707146813403335284376863887462993823661070859842029164662054321316625800363313972698067536856467519499560165669380949489466632702944414053231564620724184310485954811139536456188399011922759188546012588435157285452884543542633701002112074450379556297249305356647542597658566952781382395629695130415911872167553072478516194440421431653614656471900208571313069714726591307271328294965496939849833115040895058883140400710185966357152969969451576880302013095916981516413576998745668075998859748206591285484227839469680678732388898108262945438565209591847079111624530516364519649646959466200904425622349528741586234806766411548875274281950774361581589470867195066497554065234904215705829553629621453446787552923265987523880167406570602201668368892033870305599674075959009267372973099516532856696746126308181875808631049251870185056859279794069836765063904770597428020042957674042108626342973803970796523758231329481928707682720588287336399528480681245661050461757102161190603270019042805764524036761949412227651683509867674096179980887424517398317787866547570209952121774030999178228087490825588944863296851004151974420092608376282707111759683162902620462117340404472487300842901492247623056652151516845233077115991561153507923032511916884551440439113586901849846701122388461942859815457323798810196423250330542207634127440946509324682298206128020807978075330578660501056398547449883923880609995361211211393571847544807563840608553555872470783237615356348556360274902794797545775450688517080424518940136423777929294641871986153201939701303677308500938869764835802309261087290192785878197260898071916324473678567519079174866077218336355350417748374595644070911774109673086967511305291840399156087195293955590684994380270467394711568058093170038214329591816648579404015678162815310398899396806855227218497312322022302164050782457945152428560699888678053040147153654346578855733917964980741297506505712785241791310540769610450901499298667783278118367813042311797303468917741768583959971296102993225892870934602048960673921367819938413224705422051566365313351915752159337367621575855141892608159748371161473781332585359234655696574689925459510666977580146326628578781693113979679241248173093498639482496608460058965156977197973010572313576570787541522471712787867179466879698493334437887487281211348352991401069584321866571050092096540002734633770467996649141591764819943374552941732078318311223564809236275531516375007306515031106586702293651869095809572473637137410349717179477406766017207588839540511443529771913752515943439011081672976384755769636187560178089393843403615020682248599179963832888363229870825692103837330135021721796392936139322635216596208748266525348410625180256494183642149135324191284945003513166187900794927397272952106669206492533466702315477307245975313944489899013210699120144150626837979760343564293920245169354537311208036565245512257604039950403583208452865984489487301377897671423519201463881257021003973063808844055949351918848521184203292176450551090581754731144357834495969902385944960829155263051333654731764286493514154868347545745722167861581867573986696686177288705688969989912785684859781945199056637223561511907339793071158793808258057134303584452600400248709258768575688528299647286148412902866476780438101143151998956590083298649749619667218681116918343799718628361433851167620665316149937647178289538370021296606726439102511604408680109358580420817847561524037164631156009872790507264326262668051394643582947661345354514922032877053923237373643982787635040191444208175508558604539220786668863068735714505016823432361793783567615559739145150028351429613852012131032066609335379950136694712020647561037949298295774929254516457389827486587920830154825374718013586709681139732026413757512417645418209696198622747631225908563167914715933774288484043325389668460050231838064165073457996338297295007834158390455606637593708596106003670473464700385459800195444470270139306820769985253547866438360731032756221902083791554019695820384121261309185519109621755823025743565484646999702110615292431677056078706389753003777250677036501672335190126526017238407000408449475191651341724324965002033614892433883952995859290306064639978182322081115461671350947915238230805033904548016081504691496551235571264345369840505466440533603897456785437277652095151450942623200555748714266357367532612672816466695415903899819460642852571208086855831948706617116362170438921616499631885310270004521742799760270200141553892709808577742016272121814193450754254786865088873397795172409290014216555320408538260399909957370893949133935586350683252741884131091082550650343176287724507556883247702937044124895503023496710282824483672467617590695125679427775468105116792747929379578634078359227031552630414386291497412366270128822918729545979485631387421691589963482544049235403797816786526561513031028631125389790418555178218941999880183306517928795208772542648864720846325258285257396129259492778950714447635185857984007844006483987749760081584256677539369868274753257251354560131366129848783397521647818413165802021869807592512259660419847948501985715468291647078220076758663130867263790070485634741888847882490035199614193892352445959632933029382521381079378868744444497637864149621515466578309125548982647332300305260542713741504749833120617387535460553230359879949518122944360925139979445698095249765869835825301870202853345249397352042357714425116917736462936518218858542619459557823672532501284570713732201341972735039393963717672375202874335082426198295705832096371903199834015297478272843193853187568111811682726436829436928120819366215223589474239592173486907473056722746388057207351415800601158979660070020425603622015813237897413624520205172179588866187573769430420649246950618420563353993644683961646155666942566152317849730037394237670939198800482644350839018821529641962638047299360040893934661640251252692360112362533724833974243513094910573887124261951480781554169218834522987996620149894002948759580548454207319040071749167785903103932086271552294842547748022623303979194980461707380399839272072680418976681965789467691531443155870122126706404804182882426395516831459818728629424119005388531495842292879477406441234201777639778008522513799758449738695322787074288745577752437745789453804598825246936422757573336552359046135599520824231200668275310712746349574916438063524478912610111311746543527006226087318458030847086690214867360568313038524728789794276899546961271317076938661869531392889748252629259959895231907167394320366491307397794914740382013676129472655609655190998271170461713548845223170246359619348633670403149314446497979020732152608505194810024383571874518224234684097527362807488031033171415678983694625868778791280776751724729856028491248955410663532210528277097138685465319613123950789959950834001349055276909259315604143539134404803027731199385092141270849711641799648456452819178732186699950143886480443959126010674168600203719832553939650442041603880729796274504704614075788627367353425414858701619498552607239353186196343631110808487729536123652181204260463293685529355194616476428788320821404337734781403881196378409425924977866550938412587880054425099250691757552276607236779157077305790400260725197841456892934855705907003650470359025610036986412085768834271108027317130532034150819614153999921189735446917186667291782748201713950888972753683812431652053070570939503337630136817252348423476321541363743838963082193600211051413165289467568786957633711146305486241097708499319578761659687735540653325957638115433863969025796053630132491947252623138395742506678426757664956940177289100726111131858637607250005779958282928334492636610543680098226229705631623268738056079530206756334305366028058682364784577958561675768106569619483701993666668452371994787061240707296449122854336762670646585021389313080657541687743553014276294320526634147691385781702281200362278896500341200394204992214944059870547182792606601704481756378929138700000580946819022778419863580534811644712737634287500104256482669010061777966992219919206246603043967664378010455825311786911249424741235385558028563339009148014768818705967726205894796705614066730448122979067011109432367677532042019898845078122808878804393136756186645693941008348011679642167841319967623944368265354908719064567639461854574928294038749326994115195549589760643036187178733833062746702738821052715168379443942234418703793380764139971823558492520114067096537284951913595916428018910050221258314903900297129694436526491439072116401155268352960232832172841218661419385505331528059877382137056307820137610139083377517838067604657085234306693761279589098006889677988474943946745949467260933660701153253470045232322966722284703304324975882258989177369171475256934665273913890632748637697292424036797150306467523241635113403874747906543302329394344183981574647165664541405504008863721327099376917304284667618108003734538938069216856830649618759510104311797935532179976761446303318598957212238348903810460532919218707305821570267403473619796807637019277389463834185377089011871271704241328839330717571920201888795329655334008110133356417476915013184831189822010048432699303254767453307092387394682867393927680320380873397415362529419631464981619451613962822478049816889194092739271557536715070507492396108589042750348515543242691769407275286850220321006934371627233887316879665458339865399863134493204315965477992442121048430194521034099437401638644878001537786650569153425517818563050412617875940475662755737060679378802611077198039886349168278021042846852206587001632358847926460301253425330930104529407278552199968204553315497547156746756950794539934066771738409553091508830400451922081758946641434323303132480289292217664019915482650766824350600621456118897184762359322426031694807002419314532249751423971344063233129725178424813994843590566230347433997976087585603050661922844064317536817747156776876968629678146791749476413220721251866761452069728359492764585488775760354455733378667764570171482780883731851410258005049534162042728121377341673752892442410869071453966641158887841723983953585258032939343454790657465494445546817648526215369421023345491690046150514854265856545012757829625844138801740858278672097734443145486071501608079538760684766390669278517679514944035583346766461238592645796070141604323148698604802767915436978104296200452044558840849155598570041019698198637711541108343193498405623569718834883039398452513662189931352088188511133387070683825911489918054522358303776355154289839928160061359534659064299633498295622271459879857529911322459993300377064267745922017296045063055876488935481557328115672714277347025109636634341709464215543550179314316855957527642387474462034418241480438728520777178541320605748860341672789889094552131263097417865745720744686814107106544489084078587550194208387773039586872877036354820587821207298912521093312247337172526741577335530925525270153809580392882365881731657161165022784320137927835325173665592625615672824383353150894974962863689537144952855586997397358768666698864016076259454097670130911604726365179947906970735827589888375207814310121167950175749902746284079082882107573374315174713274240036643273658255635019257315731672919763327041720450895031079883621122534184055737244525861313914380012340940840128758461560975777455439877742832498898807661463144033510274935292780041226015668579931638633027030067776803641449628938081026116510097638603765632313651578230227744481948615178199895273463226163494006069226814095674917967011720038000729045895492750152635595351048488757110620996948788236965549017218966809297059156228577459395806235112185584253557211839022429124160887867521476794017079688372758544810350607619613149173240874945201242077368987623360715603379276393858005295452533726154436834357421799508043065214363159762580641567704967657406484054811629765081334439192392966267364232340369414028440854479719150441974964283966377714951822184654335043604974834869473504988818908425915259582039753512633429513700988121985482693573275679747441458530828688634845645740037833895213935530426643441072259075951713227472784996398416398503576111401422799054742860449541079031875708451617184258759347364665547675533745744814271275707190051534618261496471342193051946417547956366807264244759035120914282847927724413090219133310150753093152865713356827073413027931672392699544013036597972610457240437852675220023306815713158967448185629552642743717056503934096434403135431200963354007185520798126600026708533446373974912637896778495192102026462431169917928523198988096492330549909061518037247521593723282166199521818772334756042241994678274452097504157008942682446084635842468088879540324876855162810410868140493536857970776176735290763216589598875577858552297902737117617845970363779951650810233015913338478859926701088726914697700643142823284014202673777577791898863593454904843809307812607344651123392596097593924130279777160722050602747765823762667813459002944874642008669305728692699462782476691388080845115902821098132275934299548995206985093765939338217128781637444673969922990649477382971220319965213675503034144206158140310629237242331237735625556226730775385354631548129123664491677550839863007686553446204850577671316676401773947396123709278933424418327289373602269232277812924750130533620703638504369565134349018230445565929519124973942565780737213353734072408340390310296958965456447432703809776147479325633790341488657758775679374341440723265939807598192666719286664571438541000783563605097412304933228308125588918623327971937867645683075286963515431014456621298642156714465871214172457487215276403374405793081101093296657522580801707393022476247802383557997949991936799063467804078851721323191898803303175105881275538027291624053409411482613747766649156730821102140987592869754477453181543561472994143162714340848004794294755064109181663149308771447885703237910825897458638522922666015856506014935254265535020759060557538183173478033737095243730829987602118755380837857759334045052551592196758120964355069236996136411702895620587338274471831467860409237633272145072301762139059125888573782243192694546428513363360253731322659543801024361132263204132673929927265223069088919349282858914293999369633619692416965225258323046511764974809804976699496934183330279634238223116459670566624608244128436036710534609945470608928912892204900050934283966739190598722915625197496331735391517577094680284833716398194104217245525667006986956889050350314099515133878101391679005678813517789094270308131176173075338629662275632482355127559214318227440922788573991341675177605677892117005836750674810482775107276910164757113214499342134020652975394595664795595598827914906385433595745178602887134482510229716995780531135599801812308872919588251433486339029713517523802181631118850350349166202636696306026383626423553552751853132811954789718869059226341983774527349811599176032984257094897512783049432449472774006902375249050734239500635988577110721000392245268491443953257915886933029241503105201825864082036377757360644661648194876673535105824038705843972282037686222050990650637370203155614413397700506716530011914987785392416537464426598822249254042739236376876907971171057810294879699842140591448011627879657730491037076804426169970476642627146060697130580028456937157673786812621749524563262159437410336952557294134310335387370413538405931271022524859104391907194217852280709772933412675779488140338249974085604363956930241141464183383250384966048407246071936263262885117536960467949476496019110608778437712458659870160826227812041729996703106791380847022730851714111603818025326005148244764090898053996646622511630578410583186546422663046645541641117304025160995687988263814171695209904865886775090512951950262808765113644892048016012148233665741398982981183100016639151885488732693456063020487363514028821938913718612418078801807167267453676597851785106370223662986964973725981987364012942452652990559701402633734633128536497467650671872998673682396190821174523326554720287686698194971263343077274795994405999335419087426356864972015879220056077899676896384716885751083996127465635766189774105172660809060817335114429369946955308776129932717971815719440382922098853947707444854720475394747702066832013698873290087323166496394995071497464902988785599158365122727613458752308428935950201624412033844413826732164307587767039432690107811187780415317433655953587507216168938975348528883967826128428658587176146597194942088293841793171530891219924281199547032257916325381679000450828965179772729761277070789164991089298387080364923166389002772919068367560224530296911655812281935663799756122475880065633279409679863361449755680020613209261102941851687961719119562383205347357034751442893203402707563015828785494310841703244614836622464926536602196931127843556754078930890481845932810097798571811855134287487587324362196298313287434112090856117205201841913521283136114080700110801264303930386828164927824602216617951411579570552111089469701983122486335854942920710752946411663265809314513017807100609254235021054104719573575842638269054223948061744602383578092473360983131348963598459886385320303045725568457328096679330406519864775242800391115802447768724320795911221695063636447828896604218843271712250173839845879318427822032975345522864767390798576162545995658206887652491455527477249860941047184991840556787298160311950935742044450377816662059475859678763234827552006700797940954333724892921052425238786791103426421888440121729820899710543895338133439257707536312880208720719506158759859979728913717055431585947619597158752850216658369354925119181579379124076606162898556031955310596436165022007263717274009386610406866341817262784068503351121945314850769069922101589408027382200287932908074926780700969506709975306485162551356906536187712709245974792401211408480419601666563714807753507471899084948094016642076976581688925835613591604238054107437699833062582916767026315383844081344428784073298418161177197134806076209517571174814866089770034113997264409766683203242830905998870959824231782235121306159743810980350153570485288059029216984066686573819219438206565309254004467100535026657726909385873832585247518489208387906968336088000700571761766722105766497728926797602570037544290775800410234077284001394373579791476630154575392389681113453398463826901166560976938473113033476193079192263903719624248369006021837165314263015892964023978634083795653152942718157605933046844954013378707296274763358764857791784652357114241462719343230090280922176035977715925407802790167578623621525929266996743923952225775518280264503233197161952826934808513101806832081306322998597322456208624836727121184949134248755386709829516887582652483159344229254287463780869614636905738841579751463794459420211131725529051072441542324815060088337492143176390447986041014128514180077144812139434695308576963193229100395061804132567263635040169987574545613744381996501861538566691016824117895204187818914253321140873199156557173830363942997748539603233616435297698634215898226611858533091850408051474304375562809850827214217945005649562508157540788768697211927436309353038540209041187842114263296273836915829875840201542787401909078513653215998010529345466458784555329641747222268987474571756487071870855669758684557160324462133058406002504102994831487996567799711803838106921588001406925035498261835720197007867182739376037960757468215843218364304789803708656516980395719997134819143952591518481410828733127353842295775014574128065433774922119895987254547058861603359711986053986667415565375702478663418226084024076148199143482023622547897597202015194014352754280982415183676418937132345042988653136779519953529406167341568898155809118053518830298565295656517361626654881863469096180853071226597633277063943352841621319241383783361255582005377642937823284478478056936355080542906187377023566064567420337979659511102239158333080405152601367358782260565400535739586638011392563180101893319438355757159688010608569814909194340674891787717991404549489078707359002591213036766209959298490564758750277773815338446276505136383912356095214819604056634968933814903889823743605075575722541502421970981521898370988765792131316101726950050679666606755055153976313078483452356630200791441758684733806692886895488990265651728135685237233718155595749947350321047681890073886697572015245200577406892847649394467969338824667856003299942635331796175124671051999530708124876311450857221191628063697867546646838988598141624701225387276463426393667781910482917065919049900631564597152316033338804045717308335105069007875827666217946837643069145990916875677193858420745153687597580507436704863777773346936043445883839641045953327842182007011504598370520378712096787445316831738160053493874054430711618918350735655634483841272879642550272584906249001236114307001551673117129766794251630645750958475156041367369451869257671667235081782645171877319093519711015493208423007160227916705667887807448147099614905337365839577020439430524757871887926397827445434255107154069657731195841874169882529220932317250485384568699763392905832667948944348408677401008910609480817193413178048470696462229985553399917668767297961557863513157928197100969828377165241248224959912877044638093500065967803035524628876055411775020144057188985849972450080029614186591937785171696648744435118975586415540588273536645145392030452609033345122957113492117665295476387545516737445099891224652065535465316558782919103662475775419982988141669744617745186147375240871764399389118197209168202021302010527968198080685229350395847677348198184549157751275846343574839596299643000879046705875565522294225534534996355188560509040390270506731638180308638518480732390507935488498785709872517210888515919832251112693846190079838236935132686294522625542347566375934772297235086132097804284928455294766431362735514940128524984758027352596954611829845068919640976533440172368521673636389258082888130513988228313489676332063390301635184054391173033852173481239896525039616906580340957623858012112512277903852092013698176053637570705018718578131220666370016064426808771219309585534440379424537264146823019739127701592536993184228251534806072232249401275327029710936646203976830876696594295058845651610022115509534128365062120836745692044732950805699706026661881521889894442539700670020094531257038661165149587531467853450469374931620424020735951907011174918555725002314047007914647594546190717374440542924706888350356323664167730145001690575009573015502168392351728233631363757922331561726149065076965619880058659761771623931671294685443478142973924546651959960443238870946533581324978265690606361718748990982918534244729757437011842407118045496931528829624739535848729238215682239445301278287927094090210912190411291785721198489344648946573559151330926113185828194116226316905003117194738401123594066190943919779924747653133887271642560736289288267780829054146054914281708655091536158465569753842269450069212529149740175789372401917755100607498725949512145582192555739231836882149187419474474511617189295398950307164120703469910491065413480595180409905891458612259060513484741407627577295701940042600187401434267799870168085425674057182040630192726179329747996059212816735098158191953105034911580659207113012287313485243659329732291242451162745445033141453231587234996389500778641155917483092274569618443231804135318327378261390859840615833530597233769087527625569592807113885615059968610120527388065774901295280181772476047604209809615307815245916620553447578431822260859540167363504360690511987132194194256403421863113004186167140601207647733196144205804354877441212864122340848179336100227185242524346317202913005773342204722829411358248750382350478530679533238992030979446835256549278286738925217993209259569656844421944454357844980983896569202191477353288584980779082084847319906946536217187227443738758614592457813568503927242212579065528837061588757083691278084364699785680423723326980477834459108859583962613934793345863682136777992233790640220282089360013004717780935029571453310465986538790173614159782998297899660025576485593861485001567353307624154154986034886618632888299987668316349439004503744373386768928201250748957425847838318055585487458319668845524359257629348346775979852905849661638827188495148431236025138470256965104813843323372207680639136758171209718989607556909847461307334517997950140076331611877042259091545820007478543768947268102170723960892213119397615215936645170674051755975727912118929090460149670593807682475938281687480158133972478286930227166854854449689536751058574752462937800458086611001286253632670108202157881056207419373439455117362775458595938615474330882847998503517868821497025525566002108180945901945338486480087085482294988500037079662336870920000180786882968949134646377628037979608651476655077435393766239041716751562047854870657531128314362560158883789446386295818947463436402393752194978546416064156613878599861627085009353598195153764196697205771459344259820221442186024534702125315161968215879342712715720813232524234233572410907676432219377222354558472673479245035880582764148116229607306873268106565638965995442052588405950153051107160387070579288568027810237325936082545253101923570617486447984791822706671999663384297647240301793934872366000405269445411964115049863603434818659363669261373376594397200995138601059719452665801865464779863518899568328320203427792962780340485842376642883051466511620052191633200062002241108888931038679633947201890249539827177659377218718917977151184655292681997761967850195694444216419309567919576229854439796781547614634694531741974446176553898221886953498339264912372220978647658527667533201585238439396644805007824710143260588520135810690815957575691257772721342039107223660389163119106629816134269084013268592469077186088790494656414263271292755016949194734941423311142565345685837010876525705449442489598544420150583282351908747299593767322424601219507731537027543247917128740120903979459819927819838765011023498081314523784762488474138810708727943206238779223452673750168684964281417590972062987083807807869858835770003968704084942464805883092188038271653541379432221028580040432530601918905170592406345201425016527560679039844714697351364790334434889361721884844062718667874767899398962143694283355229909981323764060766601792604416609530249456887926842040671895748004356343546844384200472503222785517056384004615822771618389417944477557354304227926704900167299897574762048337119555514274063610814501117513152619621108164581953698273321845720411946641315174684296199444161769202479710389432548338373493479669110956059811630546081993984560564965815848255056290637511478279384811991869462808777709896895690721574479273375478372214857610174406178593858371284310838396301963028539001626779578015811994572020613005945085223136619588571921460886867457387321347888046575236763843038314384232695323529047270790898393375946641036460290039442715087753383347188684635191613998143122268522181933267212266544799772200474115391027653256788550306439823622081927082042651601589913713526072268067521260509843499036003655367356142045803751427707504460475706356340374973532394147376484883117549242084254810460187946697393243550209667166110001768085139977653086910142357619772152324131021785150934867051439272909512706007383041483209895410952957865238592180479787024740549198583179283193669244173293573549968343389264019370447899455368153305433460751813762809117584098360444768121760161983367744502420133971141756220943584014176989715395366410138169506142071774168521920301561847734004867159727464196619406680451267522926763683307091151764728257570568704597726316508778095727635026585855306198618585216665344179678668203323069578510409292393593071244650920701808354769748640682452969994137986597302059883239060829780505163842935007358902790559661274659796420713816520382502779179656612432460014036690739788735479111564009293910793525362002329062027558693215721069096611590168071424611791853409792892836904460792386105574070878097051905234602843271162018821787688187004350331958691572319880034810558681750874947183607835397780317059090692816999204991233425680156612494884499961773646398328725550477901758483175521120742166919436983806942974432763416860079196873168814586126633619878720107134906225822537231496023612572980831233879996838558501649744292914891461092505813224939089737045965640101415916587547015837071086581899489357843525584077588486645707641902214890000186987045131682833856766330537192937264970537264425406242555336631164277763430396827257260784154578733573449057782350027439124038268288721544966524138895977013950790599596607100449006719880083537211182812171144966850148340776604692236818309153118463021734449108200023888217640571678090098294961328948410621054542103774550640992572557380532083079237821970315596241806086352091111219784628780322311641623066298836245797123703104405641451720224369652347971934660088848983945764407662871143745975154240305572624086660833543071195207024474885229908943567051164700769467885180551817212597206668294572914075268554974885776610379603233087011041535760645426268640385826820296222886396743422669757431604582664323375083726057623011217231715075689897107240018509240361160151301269225327109785270618451395130514760719728079408286526361703419128263883957758289292771526331447822666601197981895909979757415094845933643897493218820466896885225751274312513429973570073896554413249620670548203167276799708394578002318482574006673790033394774295655341740575259186535299467601216668843851643023327377475862907236171867570725456556724623662504130017744279032466158332915456606139456845326431891881094289792253747628127656873063976335914579951660082083016945825545085092102366459072541050122782639582301125664127348775817633592122257772461466812649290414755690551404798723633842169307137494165866804121694116613980363131824369908954696102746320925679844068658352435052979726027878241275035945200377317015881993072191682762759021493476468949162639259466163528124977011379685775768369710712053908168846325817393451822949759260969098706093983621314305558435791896682858636596274730460627156319153252939701961733816101171665111482178816680077398073932015462256761483886920296911866164241041508358643487545021745062647551667422620392691592133748892286657849475994805593458943103146070794341793966085432038325758053874226664831879609888389009339169087282946857964693201371677831949483937402014601633889002775007383421971375126124464463594905623163703749142256952075603011617927701757729714786787689491616519328661792726810503942932502695745426386821167973605916003717020199229004517572191264557212490527902411440603498952755970723818342347072261470134721695604106188740512103643986299254036795826258443949163842825121408000977847346370439633479678068050696782967938485482060180341697905197808392625660988551300956427482432111394469599529150614869397128808791025047068330828652899293754609623208787844557896088232794383685298315970183992827602283706179059865563085810390459498030117187759399038696603450746253920304912858872549693551250067244192774891834990625190617008762359480092151388283457714490807951586305285277315976571759487287608117829470743476088237983230919034888341836356564760167796281727940374992082549021020817072678956989406765253326250011679241235720179309657516499764064262993229344005150802618573053243532876808416555484201683574412628687193526320356551231724516579485931532964378580322320893166682312820300364252056629083071664515565826861330685697667051063359589418289589367082672267097044898632093408858868935722334154027218831709164577191654549615347986549758549759890768539438450576121094591431912655083125553979518962410558383496794630774741195798491348229884905362813644317840496092252391931889414193452688400091850999961489209100141784762042295194816900953560162367517087879172422945114694237366947594557019499090289119941402555621246624077379784098523761014092245002204120074106996620035885673642135125042369927115501933954585854085042654549633310564097970648617751601307168575979562657536752133894075353381030689931388587875381065963947665840820917112143207774418339984689573204129586270126365069396828323641815164233183435219908131847592743414364280651685906539887435734773373952274552204032969071884150273077141146940906890021450137141599595207508628321214689348473893002582756777659689253847523787396538102606656193057228355784269726016634144784145383160324776700771498444855413778325430568062932985808010868744779475369106629317623164105548219415155437277793051790494292645959444170452372251223097136074415865356970897534848034704001060812603997867766847768922331467182627301933547552030985450123532029237775282124074148408351076040368749499394806299247121632875591471763781652986092831298340609544067930445801265368710174780283724332412315214329369731567928342614356802625432507629610788944102230775152844403569035927384030412629016996536104689230644277772702759746953003139243678230142701086393532571621275706928863955998852201286629412180554166145574935232810760686597898018216701458634749939898763630951947800833463416309276598946225512998761699894064866739857622337827717943278712188035464196655767678196275087735310575354929998389498203153439441962824499912646634620362238435208121869843007481276671510579997538410553970200753360222566344621996328462975460891972725015835407295844134345751938674194922677211511567951809068324275898696098230896699076294744449380332193960041767300300009650641397895556212085531833676456813376351477851706537835108154955493360934897533217378508689604621965134753385434313188198813822963796197722249347525957821171218036977907035392310722554470524746176140173391393121888929488463285629100971193256961320896340290222197908304283719917876081549089677107993812309038311964469021841499403860967129670348599578703285639915579230564083291501824163479954967938226859028343159854437277313657967321405868203454114695866849374357286497011718480610841187563370272612286131444424090029578824113988994308892117810059402482122233343137457714816212622453602786912489253655083620600188343214236878172345446923327141117482242204675790621023343421842322684074980828776733124379877370114600081596361689890079117264504448315678517969224051162302361626537174423539516149439188408967236141746217498536465893514029279794180085277555647435927930828701431399756508638856302527479877976935192470528419045108883345989889464112280020590796602311718924892243497751267041814988237944278178393456499857181547666743004152473491847650256058139482644072031796632140148495340741615374244878944345128147284111569390675861059684129736065476252861024331567598744200990574577517338240488751399714238697438097368823825818737471291906690724455608256548913961434881573176784292343528387607292092448251283789299710221859934754478423980757417464842656873529145630254834807735573981345099347543174616026252242896132704336515530410074643387912256806168382486952540060135584974697928722635076862399780954613290730567928013089082780175098821692001922091688519373804815699588165447148477104999659331109022986830011221215353435788981408725067587341562280744990730728641483484786255229886098138502831796204856890808035636567344037691954744213812008793539723512725439198355017146472344079176205096966439763389163840548822531677373390196691972676588026181424745316213102914306777728894938839524744728146851158878513917611026211475837471550970168545263901303265598471529585679875074117231761715443643028191608979940429458381796371376941716850529498265942869098952173910623240663313446632149997396423794782597810104090630997926228032516707068513265267115524856394063954645822908098540209444781924520431740087827835326618948236451225643648545289676606046520340384886761450777091059888400511747739004174441611387691425885087597646198722088469821231716114134987527288346310367385267610691056523593411292738063678844385275790235885284875653241439305657523862147098439638119413951774983648346817754163588180512238684621532470884242039001993778811956882951750640243756963298676855151595462458096801822668697374104344803058127937245817804931475580088505148500732282824445597249049098993837477532565483141129596591271868264387743090831315572273428471515880996806518002257334610324230285264705555173844645724447522046680194337503634184767332780727938893873588858180469713760899489755026952366773111633348333707424456256735105998423227930050250134073823505515116740346125957850844885724128953697620812750324165110908126959619161880299963478858825417429337840244166126195172947374802217088647644191917760065731077857148459759017096900009508227298591815383438002854167566585478533849960068588354841750707815893420070143558396267028286648242262420744261611994589924065228396664515799652142758424777195598652435883083606722990739477045751672640410844113404256982534764937558720321430484525387066034993626872093854430397555120572742680191768711003476400068541043617985221021755148375615579015646274525510603674767449764523741983129812495500501229269528969616321156423982589493490033452382675630801287834536759763055500275684545774059468336849418656167930268564508297334743945937145203375874944030330853585200565544520928714311471377744822318416526336476760789409963252695839219019398239064361824350180098880688339533409075084193091925866929445595082055683313807311560479892553185292478491305410725711559836295050333770206498807098686285879586739233836688558958584241183385701481655453260728498675253588290273388891696333356249573995249924407482855680402840488466088527954213410825683134593810450775650960433814918362150107635837860474642052570772278821503176161257668022590864900650279698654652846393459674189945739037964719229257799319465396643852853638727336182018434513481939891829950806077339442032401658459578963036288101682595933545381393012697727073703257973833652126568530919495177170163416570107468814332422698929182566801667930679444284579069194050985764235335269215194647645664508037805870923778824364737408755612437713641928497782119731483766032814240755976710714854550556764077609746648053957698329251264135851322865331869542075005271094274400892516346585287872594783392071392227239853719334578644438725255375468282626385294472973805901412115041231234966047948403625894895418243419318647064605791775918654224520123544693732824830193596376085273259002416856014294432305199309806027655015448630802829589470846034471574721876551313533451879872749911442700122480298859710355769893728130851641965900258104319524711629073750975810436509521195786239258181553624710267829519798089221557683474423046682463617328987438195455215150259722830040369278296369560695753963262671453957850848111050462668322199709971770946040599497362699766259258662135631686632531124892292557693656509559493348636448689994300805099535858359757579017117650503179134643206886482035754079337180458355974821917900849438418076634644576360607235218906809346062025724695523042856757983070193244437012541139511823313286211744430485034449995107846805444822796525812102960449664447097829791148484330750560974203782375039311141003277004197419745984954462055298736554969867094277288395427426303296787825618947023130633705163697930740805275006630655871092237703821343317719809063476909572381970217431009120463718848051157307347795863545744291803337314481560489946205436591615149662971529637782985140242936788022135583207500380047206572590176366040676013007711274824366328014872656670041118866582846910541264046218617967910098201280745453837955646489047677806799919513940949536871549382293141298825213878913868095217324600701128311017499169633754472581971588187853184688454927593976158990794929022181061549076922933659284965310118112804419160060952497079013932388744072667461463534184924220305801592547410253224697070648331951395444147719279225142804536055096833648013281534668015646383921474542267830086502233865048649414812428407819696481374544574667438693473774778124397184674301697482658158692348211094849703072003198045967098462799747870260419600191113521352454075720907949190164643434059396300147723264699895389897701832535615840121610720414917315136494345621982159212288047764668792692960607101363755076092254494071976334236164682990376363457652104181331763080402234725079174262571960448728970647228570397095761306491292366927066336253099858307371308546967425997700477499656998763667115147722896364022590697118688846879886199777365495278519470816332068887558404803591638388485482322256100601712949196453202542821572062324704740632769372689198985571097246471791832315201741280356251946281542490988321347332454411655577895857267068483502354298017250392966199108548143931353085325738457450855000656839008975795933116873358283383313181376519704747100830565161472571557444070032432020851605195614387729701502323170207713580404699058903234468054932545867881935855762772657817512786933047140626987588165787123241363902549817342254311795837925542067330491751557711933915117813739128748109101715912548745982241047870540982102697668459934243513889920314261187258311056864335768441052090135692075562739153115466009239763178914399479004983800736006512867876873338812625367882557182534708476676499478042708905849388722257184184079006111837562914731600900647188595169446217533121559413247941496793080938988341213526176687069415205760069271931014887935493112391309504863664086875684279530522776031463891733020072306545132167043422584142008435027714427176290168133194547002004693830664861704267535255278417943264133522892015372202867718240699881792395614162634963375133427829984073039998572226874926242495274673934226871203963800776398704477079668308971774450683586828624751865493246504750757739531701449838713466635727867674190577001466914677149734603759218753791691334265144436626223372226325081894176204173524667739942608042453708746527907062157539519146641138303041256301719191837629315500653905653362411747941452636547671229978867114208698714285899968106014245866615740962299504449560278882628183280199257804060471799632817108284084672080747427633248673731213989397275792847732700365506979839118462063800520190647003946691476463171208009744942089035293014582800044347327849597470927595488259490760584930655681275857362587655921285718354141164647234683769686643540982171298705694476855177464044033920035527961092149755812532969441850397309324826820505870092982293423920733362743748954921063813405813416381499793702291140272253589833949857163981920725552225553637323953033280201927539052411714373121397975440324042526120370412518381713797434878447775961376930269563154677064958196543101685225287865087394501375054102014536614379135759192998448339817473969794810176436200939687769053867088676099321331339287223874893279022209555287149185821701254838925806152417529995781870709350467958161237285019892244375567039141474369594195969892223865078824742301485571633593761185524763928009365805461878979544362221203133145826803279288459845451139744189759025281516122880525741769102607407008157327114534998107854670558077704481267583117037808573742669026455711919168539026539416670903302174996651758749370155119846147787955622867108284880898720666334688782878852426036052724234806007925589426023113085690563140283372686440617706182924899134822157154853364583881484567049834284069747688344466769085162458739393051656942025024189681586819197766647939725697927876815951907205817174890697518094261044140691825928393707244113118949212248879167948075169444188275428820421585375010502806996191632962769023217671407018348155251585310768242655403153579355946510102895787171794347071298963564836754194553715884097069794899536785888724074193979472429961017876582021396008324666030002008929012620606584516510395691991633334293605728993117102460956142108131567061078681615357407039031043171215381050540090335837582319848956674851173630623681972678383160351200545597326213497725729624024994688598305773179867858286051557100228997525324748195939325501325864091439128637540956519047688807874386793557636056946179986632478457898892600286727699707877969479427514447226795163029581521230194462874163357745864027143982988404811290090867960896074775362050498491587178501749057976504063843042425177481600800775269084487533500556863917316649581766109851188130571724219960365142330064171453707576143498419528719073589846760581076598690375838164314943161982138427537156112798561032777788828346373578707379319393539137649978709154838680958164473811241489215278004094271410020977428006562471660789972373534389175061766634010881261000047226146746654895371809931748351084891889045218849667198531989510955860439168747523402416033401775354663459129666001429053683278925953795866586029276235131003106086563853758466234416966221246062266531868901707046230451026706517194451184890562022603951018586164682071744368147675805095627995436032836241152655341802249723910765643033548051678077205217492819342361176818464600938991974463479736677303935275039415075157334600421278354506012792900513630473674383803301287208881017219923775691085160154755803162530037038827859368623615462312893627474238967454871082931287664204679836627312215117003741343629427728725126626617961946792564059040956833026857963720773862864425227022456889642131485133791950498399093351597181174263233674606747066908674768852735354036674175418081317589168859289040696473470541346247044490017898640897795509872877575504085826831496645546345131887273604828476845241525967761807623722104189109114903446449272822366395050488504526964383389997925878827429499637064482110739208905695255019672450811716365047995209906653995961151486251372268319476931002161454651227517070915380089286072099919518540346975622813900665081058750337728174948919638268326447388547858911160718214895011276975286628348147121356518823034177713079457512838854292986976086179590827530473712595340835383283575859360066694088818739123807059389368409320333090240225170779289989864075995208012999870422643361487093030796985271995826181816021694361193733844065529674648005806447994133490502639750027579286834192613870512278923025125608676954502985211449952663452182410006111695816865060750881548095636941006696502607916367276610497327527437011243189851961645572825817632269929993961500072394521158884604087066451858299513214150806587500298217698264562691738860632940655654951021128531866214633180941570386207029337584151711937735085349884893938923472490694376794239645805916286041931750898919427538983476906511111268680066014956907657912754754111019382103898823688759201824738679318806649576607781876381661405548781245409918439034438990593468606854557997217951550957027573330933021803389854062240066929593465275270117922176527087421519150896754449040687059345786402393008011515516946637339085473725253454824640806084010361956671293184718166272378667393574371706064940798534166251943754867381778919638249711040555018548319449171810199823779537838912005458629222789044076897962543342585064027195375734147526817360946944818825220614930509057237158169616330237004172243052527555479096004029485415878821821000895965991520788820628429518325561639986134476915061884705045210674705046029815916219498059632528932896876416505016451425312254170871309967840186975903655185316056265902424063647203884122941358609667184172327538134213976849026427841656174263434947258925185220814249405876759190867011408038751045082656419207549834449921826790193774429042627433031081724198909120140001138146246065043709363348697205445329292385267103396439816825848862942808149637591473798163044802028271305418696162317630904326651429888601500467744256821724028829445251835117128824142853765808048511564557135983497318947169869559553019132171440351577771561064405053516379239200610782309388038997445919130468412881335380475579283834547454749003434217296160025457244361570398600015427893321927615914700940526395736478750123441855980236207231234730213129925070367154681774033384973534639115059969660213145372763948406255639667424963756381813049463478397627504382210390910143905898896058042737820203612888598701078148344560614530504084359141400112433689563811456298620841189265165692703114447974364444959297273108389103877063217348873057734661515280549784047311519267536151520072264206743372401323898863392344512884357349205918842099251799825269100743793655707151181592000166659180820907495206572447233892250056336160913448668617051717716426262585958355802075272942901927730025147749373814635402983089680990399847351621561624956208980549001991839990428865195919970057486252668658502755636791486235829346894078267058086975379302569848708025815719862135369823088589707790018390832687669028646943519331726319596406042104889915855608944964582819306527402169026567980910892132452253177622764292918569096312314928690764602431817670840131658346763776964466220485322485203088280533158805281559537355369692493561839003198170124574295435332935385009568014669002324083423294613253969595604685496424899207020351946403224121539487754620900896791604229013723738113970862699999777433267508884781163672752723973563927819681101369669255479100326798250230341449524592984661687687147301273402450430428201429527794650135654243177634161576433088823394365181563840243858140493427255308594430523354095447284719862557953843072313167630328639483703367834052810986382685224700671869077339276301021908161002264405431822666676120439334441045162074197424041490308604401571420050385588845067991566729745229017216566983350764929073470022380199818885529600309972821428861815161952077417101000914821202025443916358209809582815769397192948915241095990671293671317511124985679586577006944918746719061718815573611715725953069311069036518588168814739202203422940358320678079287475327074805958479607636086294499971674656877786213541486442233191597128135744767790568013312624876926605318146041835818459344281121658440870789650373489770804577151281626736786582216350093975454395591796024971947470342515790260257212687673670690009006924868873645228556417676996522945962407672881335810290578817679667901391518436050334078127864033934646960155951350832458205274466922922255858397372122112038960502549757103334939309190946759295161794881099509690634756867520855107148191433357550096242088865916134391081127718692359696064235917071036231309042952208556995985516822179370085607187573363155723677854257868399243176549233134675499182416046455960449193735444795171336595565615596484386366215190058072087034155599487009491498260079732645809284391145318388123646313972430188187536545386429828729137251138523562345836090063566563886142722229391488624560927125282915540597075802099369341163574438698451159988879253617690281409564842804490246279561932124716471393750196851020683512101359514964326706538923384202782984939444891320252313398660402380043772228115036674771746604556577215295397412650115090584787902585883574036122788156157742876434486828972058577487190629044721583059956933018055541846704791400205950798906334305281323835627450487024134027119190319411314462538666708023657149712128860568601532920479368862629733878745550588014754176521342443759879787894634818278358697193660450618888508171917321679146724547538301330173887247652853085119591565295219608523037606706877967918195052281193176603617575611689798701092843009681886018464853754426258151951341153507855640817542614983634140976579763465543158414185540240706061529729595720911886502043391851494546033613346660412613526717692734791621329814734736451292747405419506954641244902992539312432749290509187112399081527758936953828383569393962067627517366871708430973597013333530493231789068286805342283891429646208724099650832460015281696832326424058911903154325268505001055755989143179760513314496500698090751540322175754540882315465722052009963085030972414494174880821784374983870550309668089024051344567084942246763842844448400864420699163618522056457501681860207851970450624426766523778200405937096553392509055875965905542563435156133228400911249046240152798869577405792552902774217319958858177546726831822191786951354109315493669946488701522501318898419653397610937342927513243508218408761069643715622306165289026316758149965201620698848260746692892333287864791519700885641606835031173017526087057220429618033354899512234444038528573912017976537931901949029454065515339086033328448744457941241654491641294073079151352456341048698848792209054678601796032261472796843500022261868001743018681893556497411754523214583196456824957453441687982222960593462355726472021877278093387295116501739412433053013998334693267543777102515478017967591897291088436235613456763976275324446367550995506884457522441926276550418616570890019483281071650752950855729027692806254016963850411520927678555810873269293519801541138737195779298575941074776841006685063268647372553674493066966153972693696004354357606293455557111686488138520155976837689884263813764225391273292712394404631205565045936367297737176163026422568860015865936363725331322513302751473172159959350220885653695525350664457551082458957415886818064273210516228103576912965099004753086372267802335383445130315018016877171597830016198615521337822794606919274551397363624714071768071103746463386153086955814612806276365093123484352985920142407379020768224719384210343933369770356718193613634369831223242370129580371005671137051555313816540554761274679124687656232842038444477231638474022104155402473860125676094559291293355312733850021360200987045911565240266894685075427222244219802135063792374149176081368135722850086563249916501123224548568180881690896421920183515235011265258716217537743003393230161683946888358513339192461248645736270939660739611470445621493627986402519843293137289358115367515775765902615466614447226456321383466052517080678985982883478299258297722202824939652795367396965248894601764390400103596627718115927760934071050348273969608472329754184447734135637618506300512633693893110004948156657159053365398693803848974850868927234959957441454974284024297195766750252172712107224000492835927709783057352005594993292888156652104805432452204999439737294256460267677007183789913204981098276796503258810987199265383180988076439592950616260587238308293825820143594069861832855106200722379342797827537301075085348253005288633648574699085670946440791109127757106717568862445248483976075125848852145426657469477062423609177073932378809957176220465737822780165443595522175964298467736222071460723450896344983081164460807177053175615443520739811203014733018556499211903133834057262069100946641756330299639604182881021638120211934691961499053817322083100200731728814811613401088116995598909779609933256072343023711354522569546854587714228717324415014803262161393935095813865658588831630433013379381614430851200730414195271410109342162242605575471481200971824637091669724725745742147023145822421858702336711759964525502667037840936278221158158873386152051068181771965243994832831360605126196035985535794572862037537177093184334969743748662173820539062286609766931193214773877984386344126748678428066345382985731697731519165751553846675374015970719863442270336818049820838298693206841170004126538022158209238150564266123142879526801970153698584246847655366737299775710218416999503371401308063465077939872361869848115624315152982870967819388217937822664278902642194760615439204248801822823112223692043154164390494861597167885740592225680582717446056629407692788229731407737446867460058837223613053591727200300257795136501855881834527634675748045891347583381482138529734776776539524607834843829343754446700165503704789291432640295731343027120961949182733849780096627328780722575629511004474059518124109914219593263061824795023761122645337836508925922884845837636126479730233797079916259071049273280462467004333508731303224508402086457947543670082546284307482362667288850268304051946203531255116473963457300365051657110386782606287844928873264935283937578440866232902053309329489741961952355042576630224607567571163075354987525218310794083407992776364398471797142029172556746140099490835711495147672120282674326316013194682203697977693036594074817526291913119464787102501511672633364521602419825034446350934663726612201064112705077727500467050583374339393660982331840546147674794062497508301081506811159607742721153406185266071723343081701549179793139547359910904918159994881118346620264931688961116010370514245797795231161468807963329696930585198621158570416567463420236648585818017088934264465902568977604022654108368988922657100556625667222493010544890010996027828719204774588722079936756533413233456870702138843576996489075033376710163337586296900361941765618022719152116543008745351403411761014499887749104717548324353029709717391089680644039787489928318662423380045785999207272449827957672324158324490577981030734316768479244798783635188968159452792433346718669955306768071685252224532269250427103423217454010634705210763479023723860149412151626902773958539896920150942638244908858409946560833084969663524256811210404522902550455681472239030880787026504992638049541916693017239634032756902780548737223329885514699018263222243850931563925693684819434564712381913411708440005918485145395920605465544532286454489529513571720095498320919227861299801478885445844080785960100998205095943674684193907733209986379495371154026795040496894827062276674260913594717673740916220902702268202934440541026668359085098527381015172506301738673160833162892147280001607034960360069210829951965860331683059857648670407643812619246277890106124438066805142250403002328684906188774315923529661184171237287437067700816603010245913634348335675836126022905861610056501662401105173919416350552387872784359674315282500706108751291006290787767118345358956147088079726329492651262775644556974135732072629824577003919899429918243267481379204763729849274790713742953466619773935439162713560989156972452744230923391597310537299202782546631068769055970797553354410752230013034528045201835707327359599003301352141191047242836338553684768319937310177290822390833915575193623425094472362686952895160719123180310739123156229974248729172659915558545011424013892897291944942485241536259321781233541450338664311457426574807956402565686631321135056658190718939641110651473183978980203559495115937373987160466930376390818392946255960224554890169643179477484358254400429962140649812476486507972540073236437078370616642074418169109145834538626296836674179185733236475013181693275391227461415378842277371731732242933428671217369316622590868136605564323073215956977571171917204071106912828529058472717887457714717010132162454057900280055646888541439963373971644437902562326139780189008295768984098363514760438913638380970571074512435488004979338473176488340954284352666690676625109030903116251714019645683978453534457309684508669713162416109131774058983247498684364086617961058420088127242540730433452458004946240185537370156024237156068757855097647402274074185945584234281719737246486613365570878302924300349175341182923376868781741549712133742325018299384650851012374972313878940851658996140973194538918381035984983272041459131189068516079881260432268230813044089561857240609572764192130629230705118153746560843111620016043444861641718728199904385426512087125128878080699355565437049579775405220644664255589025982190045569557566104912581035389984962413931922668285275362681954320966115534065692213301504314726587279910272772557354380995686857992050822841860564410385503033559789445157233433083896047286207645816948673076283454304391213655156836119757028744502236929578910288989916278812804358789262980481638271348680288241976020530442273189067463916942141765022327787973622080135553437101771747725549943635433553333773169326116932279093641505418184986006437459835317621484252395208139380872715180319929585218167081542955562863724644875231075187349702177215612618470584705528465227807772424861310305010853013665419675737674696557650627186274280537703426615110981885146434513863125932013133153561538928126631629739592335909923388325738955379182908063841223187321333493804782845246660214527337585589458241089451802834268012603133912820873698914346482126988154714547628636396502369525413346091111396081942269114236656344322044351033049952497646190947870817310332633375097402802008309098425293837702671641701348069482165817957991982067143129782777407916161019696195978317092015805075073472951343796095180923243681260101276737544458641220215230884391313941865194318327940403537634017000708596594112339683283449926716568860853979647137850100138572165836972433698937225684032117414848949360438398631045071903284152833027505384836263359303131789761650932260833447621909865063979536120261079341578103700352257914355847480185773775830884631039113357822326364089438933350926672944654564296647540323569178878985879333519248214148115094785255049484258310734108638586037207746111527241577978953107581191796525731903970207133024246305937088164195212171363916574528413725940644630733162351902101646583715558836069149122709967416388280969923207181980484185879191657612940872106149822950060527047374477762113296228321735605719504392109510808090547774899967500681091432739014077605555540121340837674373832769459400226989501542273518832814188983323377975384653499408934441844307350966361482935526592356300126949623326936563553116850578401636620715998742708565942484446480222703369498785319898591073759407446036820444250217342633359013255239465002029563457330423685181582306492172186345655180950444150154233567329541196341664405918385665023877510321731917527338048710200518638746536726216246844662693415236268148224529908177743804306754698757475262405649780246117568867416985535007210515420657690529680045723665387461836729534776173806696070058342707791940969045489794526573583533333931038657007046725930814228427544575859510920212257848502683343003131222191957468222621850075215585200123547382795074882828834357274233525181922139877470685291401032585428214301520278027031456613254901779186560659497826314464893960383784743197437179652054731970404083429969180722757927120315515739164626426843873904913569223265324322575052622689279146133162909579717378526726019585104591318857367894548351917989513231403083616665566065563052998185591933893831826084377742630734134613029892826316871329740957097625779304503513678196550453287807220016162801359353068994443372678258446541153064543589799385424623450283144476181160453230548715563094214775495762357488408965289489512007278855903547150554692625320014586015326493774939249525261190058454816759450437892244038126432752101068617270177923100404236339813320650610707229098334856372427890288931627066140141760085788623117184531504719454145276115863321968651968903190241392635663731955711756054770308466608658166849943984738303780454144865765632768752783656848647378932383752393628882562319095182265156572679048779910626551316900024791103902298771976086320770614313774762148057132826884624507847267714887369052274652938176308655042478466094420915428658319083956315147693153301933391843736558271610339622801328844257662500682947698405552511291928324611143940021770847221880149030503286447379321663641557779635721270861152614206650493497879414589406192055087338076663586985103441123393728005735147565619425033604257428535898043995902942789037965382595896355958181854426955434629676334610418988470225166329615401204650119672239873615281776125663953783099942041781285387974927333299707387573192585475029273435429467488394708058430748690377441166212153424896162712260310516457637936953016034326015913330146940447847854528699791100624057748352588170304108246088932013042462856535093972512565637110831855656437913686203862752386803221162390480933954047891319570607745727105168315416336900761538485260212295840805659104536015319867318586680889054449904558566958364983715714428049003607598502702386461324844506496865308374119738328451895417871532747672084916070993043116326194777366861583724127497131331157278704519133836754376585768366327928113500218888771166755667314839526257913017534123588246390086467068509425776052456917154024320352625125836916288807167902372863971276190632955514259431466049635668660653932144732900014691414719126391355750857007070998026064549120924588384872724678174592417325160504232643023346493662654773859879528254683061447943317447269944926776098493829499132477124202883438574799596201034923310593048719637506833322252444358814668042912723139555395803108709653619872085038948688184081596338700164698025960110609600802289099293011894058375350802807206389102883722816183819683372730091676772278321061142178776780806346448653398212745816063036392150517311338032943180530531076846945757195500435613655298561662197697778505894022176359355520432839397611534652498265092055196378677239472905674538545417452336834692679466731254328376699306172018889248402401632213922868761507203314868896487283987438697592712613786184384568393373326689409769500100121366850218390052740907219093361700179798990352347699482976121233816552105821219933284043543551060970329359871047771065739469794147698785792494325059450503316881216742753039364387935659486252602629414447724258442999151752425439747714977346464335782940240690732995311361974695007171400779569314397528120111968298984179485750044108938600003779708711271144041082828637920953438286414913078261080141998982620064108009505565382755333331963907420421050444914115318908032473977995939393217780043551936608816826850987600218207279745330228048235975525502897448912608140374840782865955205046324557489021990671427489064880258070764054942145420622836753978355594216210216044710449950115641278475036294731386822326253107460831149815167620436234539963308751218571944440899990551221296034824159295969089766237456556182877640231195933881760265908954726462483512556787903004729305645251289705387715874807605319567121054970238647114987886460802257847124800246824674319120749224996339062780874075923504963209590134376989017632423069030037776566408080786479358095216629711417312964657368362440308731932056400156449897087608185454268057805871780638540429997660769680414140155254908028258042718478740242768028564533111624928084297727819758383617770807907672338940032679895595241578583460067459777977263648421559056056201160753409127361125280503022173312310881694413077724716631262379838397618977418323242906770287714949804050353182432815072316682556849034738012928361049330271179564178307016192105550644833326032339965580040168709627962154192285166548719670871385183050403413585773516712331502796530237904858372662892334222485978655752804453302196911837050403764682147445545121628550191260103608303730985072192041097157198259353430235720750925892936370836516945002786833219842347717019048163716051139336085442003822027033908109966851570018733578754095732684962978615724473700318666646547360616042560842482085126019800302203049139094149868225721150651739275045885507051970839888215113619107239098835617597401814434045505592983633772441045424886829393222559275245351844774503186263790979126608764656305307680617117029913373666501123439435562787376870635127330759535129434741913785485381677906430964578840601328302521984469599101431909166996055879135813248044993176097865426377525914783342537804771095929254307788871569960994186076193609493392960505117302396141351415223294229533626458859536728890856299580821003820024291007456392057592644963913284814530810931931808238843522898297562043332918511202751214433633498309413254287972061117444221101415992294282533682166013202380992414487244216182968816499094575652116210324621805321519842781250070005836446690985393963686770007729197536176504307648126328722697255288218548174903417144808876551264884563405224965633923020555446974811470010042511196575988122032845114329177147140008249987458970764532231326644589940816812517466894033065091652381541323028375149901164821028864538996213450389818271806254989669411437098574276168584709364283429611515189597421881489147297776285588341037074613539834448825086729362534244759818113325386626850319890436935192239975400848386200954417168822324745531594483512816188063102572232998020544569672527021657700171040104091362266852709459938519487537481380224731557357449062482411928536515223638336075952138214526310884540817753215976658569808016310922441989347310966059329407074869354928904224989375912904776680056135279342423517326543233376232888086917999718650943660563004310212807263686916560131635305633897172682270585481588603133607213351646895611362624649564568986061973544900437662538018159475527031219439283207331542153098119888737649701326759041927420809987746196743916066883614337830237756915779889571970041287791311740271280223040046834329247259534895297798543945234175449413851931101993762283993488087917115489604526634580332869766928713097871295997894936430612290792748431720109263987392295767065044973762330040097652379536390467242532326549475214045663991617881203663962907758175561995231306792462914842988877545448732113785910156116551828156525010190211734168965924576387002536978006152097853061684440403666364256826118996309778632162819490689765007839062888450355908404933033404252118229001296470891796008931147153836477430395312738848828875452006391303441197670286246381991064088937184706517750016754408454846087352636604950429020117676444822842201557787632809090871618886379457735141834781097184826837626758363904548583200329543278606651084674779872398825469694049929862233794641656807299327018230425857129821762625922141385487591396212878476687521662121644110178154230380207228001615222977113941466619794932102749002964360322997375221041945994673170162524211855065018228910034926691644179089081504189370248750207171401935886972301077548600220116801669971349699766806661914866937840349885930377189492286123773873464853051040273951250771614700540459165931774219970758185006939189790197586907668600967263873759702573523672296143594828675942854360711572840848710660819088782772199183583048443502350786413880922358031201058528954752294225522757207474130816938074227481050178958935213267511456808142616318957017951325478931440744857789159077464362303688647468246730267495444644697012944047732355642398062807037784243768166895997098734334649853597896703903007089065216409245430133616932755302889390256783165166837468767008052687562452194391746626959734426026451388452987653179420313819581929366221779538685823501954090496073034380361034041911365353734791324489545384954265278213468142558431138051861718641448411932569607605459438638030129160153763154153600211127790932888043910243255300488221811602406968737506238239036987277423884455121047735635238929920244529508107798062035595965797883345509156183567823847258137476867605453293318593984522723666757512973792599532680115145704482543382548318533577943958080370977978603077457247205255150026794399644181951572894831326294151408567378308859735236984369281361460128839020197694914479487606883037941469833946435650031820472359467114750613292751511274039489719978131895277132299771433160076421251062335896717712488475188838689590340135614421197517953040372547017645643203455965626651446496017684350175480970255402151312045474922342134255500434772351301655441509775086215017100954168162490546581220232544929390721894759926217757133448923756525131412975917745764475287010958368574938207794832416123047584155189161177282057571330873328770057287782918538532301729354997909426262193154843412029053279566733696990749096991809591265223892261648176281840061518171358989155060734371858173381927169222995121283668853823989813923324589235165514297935419576114914982319318487581937852240888179217255444897661778618442300992341543906201048390077108783633199413008811508749424091362293937107851518853463202144737092275008467590350683669763042913466110370975246051556337896680390837343993139376406142350094507153809391366441192704766609202778993216450306570720715846093726710708212829967917149935483105701563501126815961049421850755241566226166070747314948631806373829292436206912246606338213229232713205822893807114795001030926780566163876103206708416895796693298847410936758725931821087149110199699955591122291464644893328800478463578171520074827670696932539232710949575416999383749754833888667353023585071608105719247217886405862799809560251269120624458046173604542787731260236098413545998513184091802460612736565025279090920014507158965652764605182362284589133929787573717867826038978402633184359175727294332119985344685960491182587028985397836268946762200385332757280472567059142242345812578177041992667273746073619933449520349850049013986892653921616465880605086741018950815207692949900680967304852100912444293206090279825635420524175988284614857438263259932210692172251948491357522252809760483442563342548824700759946457672579664341953039062673960424824307779303243149794503045050952969298513989022055146446497675560669547265205110488932933203455170003803372533972678224782487881953773323361608977511995063862853668258822225499136309153560364347591765432267817731490259542463075376440462933181905929190100792152004910339564748549087650786881155996571336385182976007744624938595189942300283284618459733948579675346268699134351377268957031753475144325855666722124485507570357156454970838745427207081276344954607396532701955430817664916748947281327740933860049169300070061396367329191374945425724910542060293365921192461180513644970844526602587424964258324351590776084533537582231493210331440503023079480794048621140313721911874224531169781614086369506527889373470765097596350750408916193728249029607866530561447377254667513975852423498546835897407456324364783476609014643147474023186935359453941444628354147367296335562147689269532967458305135952127801871852198673189913691510962383080955976573457207323144461543755151757092794643783450413377095590330473132286776550989890512036469800434761096444229724677190446336370651648170872510581542576393844660890956169011425434968303139042040593098233071335410613429990526507796544251173069989323555705176162997735547363227010573242771280567904164184951877594776705253075674280232732499742183939622501295411716884320536962692754219953816542021038303659237164342784335296881822090487341836853903014979061421441232107846748065505043507571932676749637540509079765112281963616681640800538046756399653490653380192398707036397549173270466835262156340120162887963277135652386938350103375204591800449450510922310716390776965679008275586495394480414404305038895132168401058932997225991347148329506726737391523347539925655083698025303020396609404654633883948783703145613483576664693430285759609461873169990203265199060885488183888482731244611434349451300893779077629140431478296672951572700863526429472344604354899582762276665874554946154793514519759750371358591413583338543195532779135708138434344965759869534836776564787082110902248090266588067415742655017004827743634004986276877218336427641910481826964373976647097973872496508419039615309877248695720915849696614143646325521698712863037352743414440450693542367569932375297304436672286541453009338199113225645399903885328452281559061248436643627614410841811977377500399211685662661177367530355900579931825037581506327802820327542065693342076725152795632878020402945660849407465910802404095487235227639484974285134083620735326398865413449955275664194845448654035539892280652990054299629991779060719548771400323921878442287815602543498919019648559754508215379309584516916111048164016019062674745146677410162863804450177387666742846251876813939056783161894234073187131847363046932592740441779345735912384690908394348813657703175980463684221069248183402812842090709400313475158516451534356734428824584689222990163832985570509852989229395040613534734286003790736592739815126053081140510590549189090473343689891776299210311104335149281807744655167813204687249170679078431712032360864892440094045277782495505763841576430926821646511248254948809317089779579521293674003794786646958602663596900353024378045970575342040701621434659436571526281248579903245334532105707175604057397893162785156001415627413049992882881795612614242281863598190658022113365272068119463007032681047351469837441949159745853228982382925428014043592971573514270986018944736967940107776834671363867871179819654833196866159979631713806382006948963238679519106114784735332859101189864656153387267120591590099587666839595414138739278004718390300049217295411943550308145184144199995075866494744611582262842335008171558078904868397431759870208451916920729273221644233769504155393449695703459010687559037328883124640077385107641457870444937289348864161766577885081343773369215941974778617401313593445096206725668358324199065059285955314286835108056144040501258423996119285791957842690263078428817016345174920318845182052695049280712633690274804230587060904650903804128023838120639856602748019664374711685876778343836146453222375671262135398220156463766950589674765054037284188080853518181389581394717752472398111356038464690102529235108656150755702744200714736648646022894437855592615819328081183714363790792759453915602070137821447766912272513202635214572924668402070570200031084083224290546129936514639555093773279564481039803819944699550225928914498084214152338303396743590674085590095833246031736916235855008310177185006516495784525058910051748255825857494885556316675471185896610927477523444210394733592932934646212717654435469411161278914000828357681853918045396088961014496052611242616060707631709852866363991311822206369196453642517082113369126484859618373192563282133279758319884906683165240812902330429669243081907687382871778157955683250451117170176450905648940247579318684359557497874241221756360352965776771229679430257274046585983674570577840927549310409902726050484050480559402756469885669801709036578329662391764389364691288901333352504160095952841102424738350243160729318870697697694166418069261272574553753808336151712262011962390057493866635585115034668241819408515598580143513154988877780902676903003527298326257529013155300101929825385149346696634318811326959075834634468796007851884459873231818496871460287817859184900292606793006799796551791352193597263522392318450266866015524961909827589065270247683613366369765668958824170304026665386995208488892541005420043444603902907922854596601792320338236773634474930064032411856457675276792126806919543989627211405075310714188103714331410487724415095619279392601064811064652198582062176834371721411394924301069780657974091860906870774202545040148452937447032010175323634147757498413830721685194251895174545935621156470939882215419680984015444615512778851845612362027391908375723777813448904768947475315920216369850549335161036685784931340789799911276430748548285866999906660520047668152643259448727681081982489259709784883474121145418234044002905018978913369832455371413275762886381045247147483332050223226498370774377340084898383838341975026021582747522068822341847513327981533665076222286380432131165318426434239858034879278681491564487953178726343188288097738050718591375780472581020675285145359408716900120897447179125133848601710517143123097743681598357802958252231527552730399858364763694622173927710529978290620977599747189092642858862928564839477953864968596857278336307271661559248375979958363916514350358371201496295461374839970886325402241425534303654844992081739864259274838948211346117268379889457907133752576086554919270332338074949420877251715851728527162297725099840938996069132880639226307936922517974426537622207088707795658842207675602229676484583847007446925502206307450399389794807261009475981276335034375535560081325190770052308354489720917333758180437284562492291176753381365677936753086280268639310068057374608707350719020988242215248985588062423356841890950858083793356577986384765329042182773239089655887077694917140245563409785979858712660300473980846845692276956544902723543367485033407002024192216702526873524224026399008292796911140637842754067798146178706945515250834589959910488190495300919319342100329509073496674365046440137617516454512423568274674410024504577916465120648701713187883449880504618806387595128881540548821180878601900279763066767331885646056792176438411328634404634767771279940579118889049463142793792855667135599271709544423376014802903525223842152452334354811114747870270177937962997178812398315691902178735017337728432811136160439536548586539765503319890351652899677098880625228192558833371230300880274086733265543344581027476525363469427017307626550886507636234318771260089018267640335173566863722497817560176325984257855686459977428594591222795754055350741210021247685907014619956170709821460668553374917987117714665492789689182681758070931175862440699909657755497284560562171071847881185744730439325304346857167910057268717505791124583340126114026686690878297480629141485128812213377375973661791376672843605409856014262024666916132255532629903984493357149327210172091930830944125854944148841764185172525934468029862001207646215321011217401054604179225253023742343446289192852731744793005308634454226350191792495713649286795562817496790767187687625453196751069829961145000905930237289864301236257083556940767986168763161389491283769381709449764411000831800462953876765917177982381866629561385234046548062339202110616561953776906513329077320784415136896191173725264510662677318563179849433449748779289713141395370130710611885258010335116264716120008567634624182188794710886640229209014863023998523581365013343846791211437480358913028634599690414381450766431255972841475205901084645351954930322750791777355292031498204790124460466321394919122321545495379979298588477276553493977169897670646507174574657835050142802988159542808884059082979262541244654779875360571918371486903860728854412663383368823501463513262916828306852087045877746434253296366593426683223554510972924643875844631326048891708980935453856525443740794756078196839622262793377451867841641933290180263108072645681959268912203587893528026264827387683482240313518905509007553220762853763767277164883727300841922273437546830965227736959275633688587838071232535236558251302650267795904142698049790312001924101653470943066441172890639668981187350005910784138531684147950954274881867879482510000365094648363238496863837925237179291570790322645436220761759138034323332898459763239239879912208816457033227403645550735377337093191763771763911987920710113141397708862661561929391922265041849095163452027317850146881765361266169997414109132561049764555560196738516889797512655669459095850551306956848517849742626510605363685641773498802165153730978459499588648075085257421360580813131512884177152152646765912334925231841182609744242487987542857016570909456092438957634306803756280964552072749595419462790952004390444658326143862398183950882136296999785595148648373276965034425320739207226374890232169407791243230660324493395885291279124633951114022840683180761448774539525515759189292108325815467103468602597359232922868003705335474635599447471082950401799360779300826578589036421004149293671345255587972857365642586374525204139075755521733498234222712843445097208460558176588833858296572626786284889804619553685103214575486281099017782761933076948523197881886077069230451859363102019486775886052329147883367132238258383110718945614130825543120492841483472302826536562883096807047772962654573704914724864191034282291378075182377554584196041133930271218534935787200628994950473625470026716602492831228969953811664187699516522209788861310117208488347559311169349673470868225148731586445155228423250371658708522706042336913597090542840623470867090405771607929211996676510809527092627237837977332021378100695494292763048580421350727147315135054713905242165387290577127996611084717619456360810810868353558233197639511495213131095742964463311595047349450154843095671663705700168497078181950221473060139309224177813016273718314241468697840733163468619690157244128158555349714800414535421524071324144984943120863781035483522973515202029920401408530324056883996228662680923304037738437218637808548769996695011161784100900979664018381831070177103229019881028916008519695524614396724657807379739843559796141959460139354875698145928867815886535795265613319760473704108531770615658339293804898830491449610596717430987268546340386461207608555254625942730551374987573486545189538503662262034192088191221915918205812993086374935864039719985604386372685146055774879581097584746228207581854634962911930377910264312393833627207009755595561751704470100783658243332814406157670427914023599168425904461531531222306815676091614148084552412313545278665840578568295415592453849670438013945417089326385610522931007047588951739875646684303634332359943481238257795945369078849068139421097108764792211517169960279826851138278895272688102111690767177059835846677251859559503169126482139551750717859573248571512617524651749652415663566150162114194336985845728545080538226481777683308542495496636506822100409713018225220486929599736346913952251410055954938973869090893012894144028915219674584227138322988400471813478295953659487119186396397746195224152081791598158627211553770234828396266079310243380852390864501624048145809623720812707922482301977472496453785632823188844623289107927865750198156313874089806711635481099984978124197370532218812061605567849786565550958588172072082522425128285984230371310915587668522656387983295546602438753437770069826015618591934147169772203437932363932419713629528290185547146133005951103825898339813191304769745079374654158362137451173629843797483331448546363385348448843364794223761061522888354511239742276357029433712002218676081334967433158580283849723585137277968237787404053696777537046147574923773563427319501080994514211902909873110992762423197675301933859737483671209855786796936942289264391823610602272983623522320445943769998673511676735777270482657981680000832432554605539849701174911101271499335339317885544813300859369222168613055986373303944691966960644750560897587455778222660511389548412016839311882066343266017910191174707956528995027777789819778944700019205332474719931428786825849384417077071321563206596964962662277787952762412930424217474734155742261682773754822245285627260114513186326371247397515554112270993522712607283721771953174544171571336949646580240014125825598614594289060661278542503462730250453099101485229587661908337192878350657493541764922628869502340178411751734811965501831226817088471118400810353612363785850301595228609481389831245653956691725896967071162681647831022674412341260447523230365104115458627820441817559854845387031182101502720766002539182451867278847629959210816622144599240556554756593898971445631457315629537509636807928420896928926707560754587601724645318545934123422648400727253309280368835354233050042193112596024518628646605668929701207162426070170534769782051070367827935810012017971180066662706395519297378901595159418558559505430033449183771590436190242199248946765051912153275269074954689876079991514273591972721079649941627073056949036449585013742060376875813855697819589371982152164846799388026227676702305485982718841494113676650504987119474655335005273442361103878596610528359518810225804998299292195951851566892874136896856862141205507180662258021735775297411809727832631754679415973380964206094689134028907607786251962635172642606656056777978467942700180712710453473282635530395993153274087442803908044634774087948303716205185039268960364784385642692855741349168773280726924771703378798004379693157702828148105987294837505984148727076675140789106966069824140461030812945628014361690167734979982078319556590235591404025743265785198569639990631688669403982888263381854671103112897562175438066639174811890145956949063932810980311274481683429900486876085644896196189943730812510504172970038998618892309786089879156697720885461772175073627995259068188437892532147566145149099887851650062482097168530102026109985753086837405936779526168570085310212625977048701810694158136228493726382932760448696720888949457509427293672932774062866304344316416626455125922685663973734195665901557169628130376706028490527775134949322309004181424876933091831691638887155185524688872859053035854491580043621891798625636664311785543245289971579386674115897604872338425113771784984332817219140212012855285669945132431145027082483089668031368323477519056339286704351972981818534657544949914245868821461276161655604198939154910983861389452863699749722216618165691275577723806399471474652764950309267431086954043987032094534144904955515733698402241483910229115391741697419172988405813650896570807022561020370875028077719875448402117689688610796813817529323427170551226910403442505585062798133215523220484207011155405683311446135367882256224332810173976463515293896918839535879310941896321258756312559049872386803595688475805051468497648181290348712866121918816168655644379448848762042127945243659434637188311859642446954595734279532668251580098988488461099400520755495701667254242728405267649313412753445940424187282391559518338753075500641220758910007699037117894304809297084412373142375035863820030219912280025813426823462733639076229585542809968719695140742319917998906300848812257656175359050061128676529990663315266721244595737416386413702319265532468446934765925426153811319593523155440827199846994654787569780314242215932292912322883642096144536946077273322748187189211267875203704681790363657775216316742965307986837874109057253400996963148520193577322705902214392370615862640355776107649951788603787245962782927906426716057897537047380033053285130603630768187209267234874133163741848637092037400899329989540277956645977378363715990653200173193240762805599911071640138467635630243921932016884813781614625957202111926851268852429756944302371034836648853795196391000504727483845465503074857941007530198584020664491398796689230028243446107025061250483991926743838649671636946476005185639635953369538428050373362756723092558901833388404956758788312954526466688619400282381059221937426453054486885357461974203280660698214470814275406337244397493952716786768376190430856415092343697066856269011092628798447632176308358854163124349211989392891621495314569024899281938888124076631754239896111054073945763368131168632995740320691712543707429126883940736497494789021997599831059469113437587436764701426292328087934785203749853307618253724079087786750915311125264054323578704275547557188044367537724415037695665119418846776530132530823630240805277380683768829733685784524446206756923126427532055487217973339924612102711755804931390743043501600386281639626886386136673969930447509790273351775119879310494393316371689106153057827809829260852902554245069981894470780607546947159193078990852653824966532106941999743330837487383234949384719369362748010881726781825652188148987560811086976436116335984946819300097222916387027094340535854963657578935914216942151340224945206171731590968428614750421992888108257334700837525964291132066806931315938996451911268498587826838726860534718563877988104803744192216962406488511506242913589496539253809965449954265595876339740626350129433420021295038842988481154533216564181113277812341643636734099018130446224045747952055721306382130909071385086771758234354246224798796033345533011487998996183113436340486688709887438291199980685175430937097591867672317155375672021425205676484923545387241215271265377151121989857659440421731572600360559193091460324602302029450702235162963458884179700969059807926330121095209262324907853412042886472699983476394770511447030651886675381049421631389820574991839348944568853942921929120610476488131560859851947322177185070469857486569090459276260581008471305165029865693919076242378790483733589442465202684611374256516790351215839013796319249677732801449435384137215486968144454594738326701172668013829137903170590053664229941552890322602200145934529454571180975759185109232308993673227205836061525285532917608351386514960055797167623534399138773306913677166049585202976876264592297707488982378086667197872823250279477665113052016843598493286917096044656852654411490191151811091787960760074936825620987240732714770536674709451299481754492655065349851862069069589241988118951284197105089100262178832920436126369734012794879588070479353758874092171956809014501344757928037311330434813126032037656846565056058050882965794843877811431207895897153036667047071253825940155276850268387908676754212884578758280166109980596337678877658829405470321139614987230838698479905798894436470421826846589659407891640164237599253513295925198353438848814980283093028857885600446085699597547627218957877870087065030408246089465159859234225012940986829152106751734815533892993103855236878263750801463327272352154422478627738655801326051688712271042093943080962073007272747511612288868112155792873100679728939297580757178739377638581929816132795420023370244690114757593832527774582004568664736983220680879499996036416454955054781946536259092583391135372980986170380144167741253537610686954182640842131695025378908620382343838895467655535986647502437137028338191913223663083933395933715859843521612398723986506932983158644060087954673951860848113447801051571002832147453222899084842130734083122739822507064383093217141553207345775325210058041603858571416490104616972952759796051881772302378451864762249245441945624280454161539510567830724033668424441950216033369375548827367307764398278357255183643793437443261419188278812116829337168521238849584114914230701297841019913651255955819039168269504941262635034479404020958445288111779318559540270173888870910849100218123096448375492356614540770912891645464996649633123137150546484073139154099305567281693874165124396619788410508842353959828001347563921533162112800233971298442146351522561135432386741826616809656058520674464243918826121837251104757232306138946022753781549615376639967927088448598520993520110174458363213483912212478667210005542086831286834537787036095667043731352255431508971590086981315084941152281864863101167420938600290068882730972161949888150821127111401126683023280826451127912665484127644613212313124037147972732079104548198763849787998018879393527295770103869166526488445521854376908740283947755766523700414306336408582387948157588655829472625946995140090611148694568879530659472040189250653993404613040239017679092759426448025895700050159620959040927102370339325394233725189957664969838563070950269710538103147423331098300001549718904662236070151575082778875058021106759520925884039449629954915960941231746135467482982053185827452499422201975685450354868366459483794084222086613530689476403275191293726914430843332168579068562512228180118502107965891635427555238005587007903468364514223086326568838088299673766369747186740649100165695418122720563617600192949978039849416196532512224149631815049993749644652592664249625428453824694225500704845987168700431433441973193597634423187519760417432810915610529911532541632739455591048444751026196088261141887824754629688218188755760118128264097045807911534754180769180740858212711186607312610572759452406651867925464241854297683254248319967486644354124430483336865271609475515535400529428431616401455450408412297879776497656828193300845880601437668956435220853260672673106633985636803968070089503889309615185896604942305515334977804526307376193562420583564434343304709633209627326688859796739159281215226101649748739124909096153968238553038260357011855477032527138611042647006416945427700927523723217795422963247214578184253282894516934428815129940232022384850397548033939347093347670660507766378055609943645191473768091166037867225777406567104000283867327636585058020226883431213244841102842400891022167324348803382392955209020831457894903970454732982829956484308081112387276864958029286262561013267131423515638949961235656013764702640510755498852225618793177401700796557071033989074240966501545465523797948094029341810851891507013773124283397586274630190961896734971392219481627215551377567687945524594446469577085816539324015441149788189633226276741830567100547004213043700140241858595997676015789207427573814605746911924424096314200375745994618708255866019185933715146741716119245692864981196071361859733691169936398261756911293784798287168891128052491986110118348032154319298945105809732566734016767818495215873639556908976418216890788039623217011665744823594081440659701895478578744101332829801000758499778337274862329260318007781777539310721834005530768892095971209012021355929281140241675408156765777811483340629489821178041046275985314869520448608462159337244803653994082687756564399818374471587401031518151849021607431516658486843122156461507070652808257499848840743074584695128764814277741320539986751041773792648989060273812773893941295258217613541035658209395311403330893999201186408505947233759385406363916398798031896448494936377313286827654605766128397451245306811620461108889394685915987871658795567524288624415680969365641968112997451293150963506796049637508038356216230462095540328507598390046709682907187392493381020027535661205803984539784767168938451887923562489071601384290383920858658862518058985382219603645824309555005482840806532163437333676709168001537499334189751502002745247163710346425819215424964483641911345824235200545186866692597974358560600543582502668742935810234722629126852464824140170189600247498209327906163568391559204050118786257049833851277636174467745447236130784058292709598390552615492418805210949940719129424565775971848904026031110217976197738276800868709155862032215541402276336779666137524023367238369681439277592904472782772435491226419660649938818069665546289535771313711615487699174853167944499262415360881149559661895821555754294477156589985640876849234775725292815475649403609675941626592959282773176626704378832882218639665640778692848348309656373447009426917128877057976444571743656825967626626814195668026181532372832682956893832107618638949214272584999665393600049315720767533624517688107578338068362024045813964862014204202694920557124600683431494145924280366865653762103760497108896206082291364725681459120681016367521218812759413404989944918313156662197099466056325038306062694896713708098469307851786146816293644986073405218286215520048893830440303435102766374073695171896502108731717576901265805645899901350668230843395876114327166901455707558162033026724082152611684033027837444091130180679506233904534297389225862327970803679834687636423297709861234773048115787768944659238299687755099674290020277103050966665033002159241883694538024491045083213531985874978567308608996734308891700556551631860092357291815326380563202400752672783309051563825520427720209661137066545697202038128068395305046622601557476851363026788595507200204366199298057112928266839699821591762655374603979804405422056126878616908020545518657533795351726091713691375805749505757199480372353769045055430852088118281705284096400040467395782164287275865151353121499709931009050417709653367388010246037637985419809034176295779866651159111038791300534740728806386831801894550800318911175198105600360781371171300005717669004187383130770618089146176351701935279609971698056068329667693321753525911554023105580328512995028180515373951445534825864101715715738572823355556504173895896655169952955157915212473800354417842020289628121283053526331810804808631493236824680393489608080474058354421203811159580971211784373596332342505927361440063150524704163999967659353860258978005506411492328093005406445617864157320505916228824726360468095877004859142783722320060081212396865655176937289010491475397164224072533625716329184003912692579988613932994128185276702634084682518913166191315784450715600671251579896474184785992311492126695355012390242401653389302876029152378440880145793710349498976288197768344642266249329906955991052184330093311175739568970498041027616203999112277001179015798312827190916359808198334225997389348171202089833397021770181044248476290148231254554298076251057109258227010233083979739909385054777560185278435969266099235369723620710593779247766979950072309026033398687252494521987386278967251462664175588376779785253344714486430589749212997864314540149589281198815957333499865410093103302903302664487748952438395591964874631448571340393325824702568305400137144005111503412930785359691420719207895773805403127318293942383073024536181034364812137585014716166851000135531253524010102548136913660733690137070770715169302920690520250764811258964800721733336495567496636122062370608965371611997723035742598049244803277826232041294866842880286042672559963857983618653197259393644813228849076875486875278519319571962637655807802363953560545484296314918314305996857547860426383392432398009242700670130066197973313984380129861449088220375454049286648413505669523990685083287393523847012750555805434323605910992208293008394278951635722976596356519239755309046045801876415015079787719840269762381618266109214043217933243404926925143952463278857028986837283220496971157791973065372172475235035750963950483105851405167296347592039555683756327881309440442927694162026384894562349993879965186071952565318830116175946465506568428899836853358374528176794828155598800793241233259132098369750850142662766379514512077142426048173362376553303818233957802758195738854764693876856574942122152945723522193884386425870257106045335757318886392242629995411069726575275964112491803867032018711161776490852695389423549430847402296598656940742703883055948299321228960526825023583303136442241364073987998998148538371442527798417541310145572827691983710571057420563199262119862207065258266558794227785552508386473105656014379859767413532799573998345627978602514172795325685660908722340853173819011423801600161799070604293710194733954931446793571359162940635577381404032015003979514163909657158871487370269344496981455738528093295872425159515711027620569582941356945632722539971660838137916998128836238499778232510963782871155739579107350060125393027580573080013971453554714076967853117338091617547359982655913200706852871158980948898515756891813207348164075634274937864312415062789813114948874922803929633712739348515018111434519437053243666549797886983721660689243237852320826304929225797259919974234948151289276050568889484356661071079465913693350800026764879753749306376949985531984847035725367096201532609902720582767235277533266807966826790985332145649306806667696552127167798710596551323174899480205748018908565469063456497521529756712164672929121300281147728212102361352267229642349365942601706152548613850903686406143567155566658722422193044235868851893598634881991057960319454118835022550804008465773627993002833355923204311162781132078020428813089066164204763857557739185733750353381585266123503062909300113239961287370198820619202803990280430163558751787950891508151256918743126310585331130753201231510131563660682560973431083014357677907367263947331715455717901333195201547086957553446465219008588176517875009847503322657098967599018371007318333903860893012703556909570142235947816328526261698901320539311059602288495643403589100129141920958243826165708494222647644264704797817018786526781886218626649685829603297721470255894787977546246126208991399088906511689099412954853318114740314274770900066491448395938288603839194645428546457990803302767714646616054475597882876612907959323837945897215452175299289670175074295346527109789328100904274475608834060948307605560729113049159549462821793911817194667809874295907600483420145534625376537498736778980825045669965944580031736444704739913899707642989020579125696800824087997555004209363117180128957672947406781980098224400605782170364195490210699196259303836261096069844875376830586551910451363803629633703218212075011386685240331000787242137086973818772390800076155586849490183025585158438220754675234508628874128606071806548367589716870412053999825357773495103115806525893786585959313905946411450139853096973405897766115955357425938189852370547285609057857024034750869740955373931510760309738920017919016993082928559086500331098852485317830943724701707368487626820467064706127102315348178917264770231818481481831466327397324877371046608650056718951978610206248534861785724686352051383925162481927394103940340930913367498496538815996478103195562380564268826560793106897071179200270924809073991694618934135335479508806288782117370043942429952426675214111375147271664405200423646051498528234773354257923625973281657651385024895885556028922170896820257486874405244523628426747037080108826903324745536228717976119565483524081888770727326688712237642112623959578377616262132382459459281923332224128852366425405166072415742833986270931152488564063537237239700029778030928582372403190772578254699379547070492918886133353703137261732338496916277556033524226377490234923745066975238839661573361372173494413831631305988434881641803693513421743787494113144717907287190272979933502458757032231444340687774824489766955191647710282940341873829860559726963182537584818232297001543787019898329586676464287426689111975207679788586726529070623530152212060295096181993628744695743002435705987655472420121735271995534569489263114584639591897572528059161155671379781275650606977423193852148287496574557222827623298834892532869567572573183523452569329186535736361394229716392301800539067894360787519404054989381513647552838520513455508021632571420102866568624322924614515665098291020330355499655141385660566530567660679140954017389180157267065113664892219392241710974424791611907651628390670022379812233895481070155743389720326145494792723347847907117125575259798544269865400095725606435486667852521849380524893524393000854277292749360806724542641728803367796399997956985796919635026102982191082076830675561398163856127789848341022039908547143251775079709049104955055330478650642094185247133131117389027600827841545479757528739711667392807237667442768249947414753520631659265931601325609817976245201011268740786880324372861040810981992526762162944556669265372813969580965586354405071249415390586028842003634450275202547032797639669968591490685995737315961282925529713278013180635842929944137637881461304644127038644926538543888854014563793676829949180024247824390455107304329483604940603162948947626508765110175199467063797211222631035899515552454073118503702373785130616468992292081824124088076529704529416693340783252590969096223938295623589741274245437451928816743043023751361611109557874871229046321054221650390635833710035716075912004104208238038562241596249231272871493971292869439518745840776103221797550108629544304499457268690593816082693700854871065809310447054117630925810552086384700493755181204161191859878094228382078570933336366970700713675600735443100198983646804487517271026703136523845399532119305977646942056810604129269375301216162227086769535134390110432617028986195443831415956189464764854055481596016702830421475947038954637783960793329067360458112676840781219999212522538851060942196705330391082334994168785694152782221551886466148410111326983795270012748976604311189958911908291237316656363370921407626708930676532600876549468279982802155002685395404099850018333396133646335116964073676863238292112637781310297318505421681273335327208076775158804805025041316202736291136231738663767042615141100782017712750939385793726042815405499116159872837124541544213355049394181004042068016374240317499748532655045234639465802587299528093333593034770693421138273134235281368856735866807885023077339677568503013226523432074162766680477151644206797783655219200469229465668193423689032565188428682078019432014280231500928078389046825586420356002143133449788568315083196957911876454214706982365090865725441326443438000058424029484959908326127550498942112317740344273135941126209873775489977401918595002983602639058022715299971557628474633495765848761323035582357308994459862392565880815010354005495875039398776810878438564810408372021584186447604277349495022745513297319460413814297803640162654218893200399177937667807525202939765482794614284814105619640921820783166723542576792335631666018066524424872420418082313140218916475695453102942304998723960470544879639800371612604845307648579281096457109356150243668536952653398127569272821745282595113365201464001164307736673099586269447250649420461939317135593702299934428246067512401917437390271637045257890755015665254621701875190440867854082245405878076203389569334120959285142826893128735092310530460348140605224544801651949176723020775304114532345965488626021306029649448225337542668508109650315029304070165964742185327555117262895101162508381074787428659745507879519208087265078288067683797191728070955472269016334836455910098534273194643709782767093057259330269042188058038534396702097149743887320697601881466935274480238663850365614410868492719915065117790407482494201615075052212113066236684295527516111179044624076518942681782901945028655527958278692282627755974290109943897106655185409699126938473414830506990922214346594369762098091049840034394033116536017581600747032270251631561121429820395848257716488952548709415325998477256100636961766505633563233329076969396540919892492957151582020620417959235489593857920059502931551813022071223261895796708158533789706941289858825529241015491634242576128900349792063627596503216552382145089006918282648758554584999486484437311980106241749547291241944979189525169475204134540256533610083016056601091639665386861558194897504238558253965221573426642015415901840762535212476731712193190056802676225407485588533987083418421226211112602468005433600871709854209406819048155169788805038241315825124259483042178755487629221222793313921003374035608632338069322217275889447149509615228581827366848378849051540386286935975475844423165580101725591115164909754053350132227093465245990909647367752323265635099170233619368911288641958776282077700115701068822633563329897791024801888304032035789624497055243359577261304434915984477816559054144020808714863782807685823469671446057663834378508330365575578288123372701535695451253806331287099196542472505846331410029277007980897103344364967593962353997737005917616614526292939826909878048256213707075133688615248893240537877166931545391710949429679994644585743163093067423619521728469585716174337145286323282950968686147489181650025249637888255513037080524419515032015595070787118991526456094317233683722614392604501599100841034310331347741206821450483560129162653018577629679244221125723308968474315549753763698665911985391029961996403695226809227793890921370869778839564002813347966756074825346355663077330736078821156138223048117352747187050152538361504214068101945199622413868919653725443661601015221860986015567498949162784804451240430792444631893806971262273808732216854458546259603740863945636874362098045811749786056512102727412122325193089625915488645547417374388734635150420519164238018410249847856770856359908387029847427442157221394101089830513268466343672966324062813008306943407020454401198479764494763472484713666431985696103988924636065013628483224825670193426694395806390407184463120433878817189833697700401726386357109221771570076142708120029560344834850926781223015818776874583046426391858608369749158018003321912104564710494067792437004986721666379721169511120048082983440717597170079609050783472113349025317118911977510635217585076941417855590409271708683876796622800764564944639068244651959843252798213107599174697014504887852242527412604022937945003406531943007598230375462759883041146593331438995137302629300979275483901823890520637724900658731822683316210854145020833431669862559270272578022517522206415304540784552131624595480541883445111204226694282126725604789761562784147176380957537405290950094389379575946012472553983530573197451430771169116320967226945220624580067335238186248155082177851211178653118884765966861047731451883983509322096853287084846212491585139919841508464687087961934443550662376832155040333723685070757952152787312042766312563282861582416433130059174200442121793444795736425838987739083453773647462674237299421449327913879375457719351269441771499437817676203773015052800551698244779680340210846426481044360650845250510650503085497591522094955181544201734971182749861610487236942825636276159615846044946190194424286169518681985322819874022357669203197334318230720751519788840089072950632253885424756377192780212104774500650628068233628501305409076918549326286088532179579146445595049578838571258564263116119885063250293414566906164814200748915186617371757239992892026949981944227268777282249928464574725251073356201679217157275861953696805381895295875951981855701583970385249531099360051874101473880780149389138636645201137748597403875127173965217028908565272541394495703876865313163203626870673708338136899143792565173340526197760947857194797014447333107811094912035542513042785356409514236939613382257733749970382526424347012419166714579336250213189147888697350232151303956009153399534235557200359534407813590582355909525284029752144878892600241729396580206766510815094919064436532082721640295677046345405124089263420248715213467401531194083111662323242801931837649336719202859891351660941365036290686868745718086276734758536471080667058733174788478655091301710457024135971508999289740756957703350325585904675613563307494215730914972542842408046167756790977225814565156003096891966126899999343746354984794628636294916674154721358920278314527006404873182329223349426986532983160281159104848261241109996021299148377133672406467405568960797956804102876725200863201412619455668076179174599797720994177835977278955829621865237639633520298349176142506588547199061073844196777333154549072411606326171236161632097170096631911545788153451102573655855642918379379379275635493997498810901113603849846623222844003194762477841699539960069162837192409372808818782924659583301466326058719201287448365266376217700373245581888531055417590280330814154305036203972765114987585157371989450175106406872103578045476351681033697269577271855982492898551299820389351208783807418933470830292021358775736352204112416770475770471232507234352510806127049199390224960317431830959850810366113529918501008745580045605059255741741912329246820953769455523782136893280122325315416306869515865857815279622794190257923811263657337704251730402636111808910276933825072069907881131829261316656137764486890758623045019647826145423672895992305275243258736960792310347541233817461953136673211715067394133843381595916105480742390658186140101536335762153299930859200165587622302445917019618598330007042111409464241642400654971582157952878358672146772512989843619307382296637285920968284055457447410530073406698076651627070512648205696391681521547729891338780435324511975597928609740179661458316033461460334710759188118731673700903384833721549829880906117295425467260571725924978684716941030718653528651643377464447878821040952346429602630666220556638642345060816427236193035234514394345257083092386658372309051172596114443128111642174920636320360847313062789944830044675896073121384730529127985800142522237800553371316258594306814041079664828517614874606135723560428015473989590531217384745459383104007267401229895879461557253729423355242522440372540890291453711441540125306274794840080785514305918416905942497023701218175097788629100409846850605719179308639181910949004358966232959232458509100712873714296923402116609703704516122638056123916034319607292202767115555354886653295408770494180462650630401127242149279610907695521026922755619234846282878589835307034698798479333939468943215715512373245622054353176698942416591611678213376978852529215535829444748927054251007398957606918800603590865131090288660877999818310784293273649558136013673166802252980659090192749057363491809044687975928660498048104913388627091357648477110556070136956868464089769206473473704787847433157082907759417120045997276422332170330041986645603250481052775299817922057159060614787933666304722408661226384265350907523353194756720844312424536736032003308280161858978432103554124568669587212423563049478390122344645177517090703451835028941304004726664099721621720074314950094705143487009199055929019463352518428913960465854349988059118233758952280802639575191690163336142006877660171938411447460933096151957328840639296181380447960782666671233049296388835540677552789245692480207452525056338882695843511881888139415058664902356486616652103778816799179206171888148564839899342197149076885789264355597101133020264750238828484722229051231992771188781658961004780040461568342451605342786916265215635290300985874197038314127870539252795490109647704192910433878950046047023413456839882654107466565103115291861815855619466542010825402178207890574762365161577534308560391910451791219827789071815127150021698981218147912570488153922158939312507480548492506338336612617875020570706512618109692410516387618547901909125863087033317000878605161051313877010528598353611338802296070964575379897692811411839314292704955209624095565238695250148339846410054472853230186734145323493390318747752002510401915349769921922291324811069114798574847473175410322972594721716998436531040575737144128948311430092669977422306209459485527527399337245272554029112510869881694766430465562806327845000139025750129997381044719322295742129381503939232272962601318554592433764209041905511022707134653386453177871730353969258236171553345404854737304436844869256082462983069999987899583509860559690153081228063342774907697823122420046592655460874538831145662638110235699227403618973123809182918055853082772488172516911901637664971670639650017602483031972509165146631244355711855492328470430584272299126578785482553122363373633588229573724610016156598922376613986496181319176047492088687615472094606449008993298977480647086840074753577799306973631332301716860269069675733546667694785554356836290818590562270355181309429648058951471792562878194875000052262560695435250710501697319515233949429750095399763937980789311878241978443090353014536569450215183095078972095115889279575421054536969365078148754904108793012064009897302399372486578776806943744705574267037452419183619991767529425386481587005335704771659539616377792257146877621270410324010577260911906002148675199100564696316397703129405841095593049757954583464227644523414810926577477917626016677044195909414803747397489530173067097314781622908043608318675629916495313431714671149473271817729378201459937924994787667761570421372368251071607621283744915333920005888692621252217297252619170776412435910552590156236758480012136530600142064912219429404683168400080889046391466450673607698314580454212150381935070606085600148791464268805179239651613577194906512307025275902195983701112362477765132525400042944940210965325638474461394639849368406073490986317331579650520810884374567888824152848667439646055302545794503614965394201966326525160981746264201895758879033360771045276613409472006746390829838896122212498402415836303480422309734363137445051893461085545319165790218839984962085849945456328889185673015275721315091136697084503753808608022253145287831466184515971871451487346802952432711515230206287682257299557388812482206890427505076210104974748743268863964388304883505545696994962099318566275063529625637118121640150712161738737867051764153436708687241014116273683573805091468509532899221099614511805049065604146221130185040960694323638481987224567115544328593018770529117512923220430333316852626023631295216796261146108981323874734946258662499094342087518158855889507988512539292547229619955417058525016802330814569354076260076532701488999469707098124526255175601309000237972564853827802786570379542481972953441986681620232142192065664530818488574885251973931358852097809402069472021964102716813518212554974235377838376800701546668052188056945774296444284721342234576186314548471104234774851872642969224720411969398016079447003433826505805845633929009797472638249984918552658301928593370442218351349996929578400093542327979218811646639703750390512465668558645944864447215482100240235577394298145934738643187601392854716009763663652064083503856415111426399251729606909374087267914952465825901905492511529626644909207029193801152563387300626657929033317034933868246892972729150112840668621926718879596558480697037049483663831317043795277113078406462646943118950509341103540282140127485188883888582530393856440236728685318858338112885943401523702517128925945700151981306716021161767054714479931291351222619412081520838948763938626393815748612451351418451953351320369601587521480664888227753151598086375089069427311249509323826960852234618326538774523874774107581995481690875433561392555754792519569289105338184534910147898940292674878732313476102450226789560580666427150652911393744191920622324953064771303544180706117885291736174667208580775053636589875050186181175404766083575038621374109397138823222218472363029261258944682859283124214823526854989668580860365253809954130218543366362448291248099476958415682818759760526088526972270426851454803578595418759934173349966838033317103053901675736307884619937836215427219606687526752052211488042687763152589654539177318597498669790328877312315975013505247847520228654654823773796255745680854185025601714320531979029077414299224100428319753308647317820232314508327141689551008082099936561222531076074792858761902123897313539549509754580631518990570109475441733787689906243195857673563042694348402279788772775786477944416247320816113687329907225222671124553674087548974750023707856636688609335819603124708789885978327271817350046761983142667789523465489267400057706364390474198209675044605766835964245295087502496622144100941976333789422891170244337776189386648294585665615837955425823857976628741482770177089255359226291536884635983358992946284383792568979166173451624512152359395464258863188460548127649626468588611992889980404846207231923785119827285886851468429921579972358741193774119141573199502531442185745745852545770007218976779457397501827359452639656906220734908290171159331398382296978481067227074013236550356943070999687739891868876418042645743255751214199324985422629002948042155185801647500077608430846455613405144536895148110727627444629245944778240492730930338669921411878926498489585776574739272026413028301698234753861962168083856675809106625286743481807194527044593184394897487326466584106422122411865458635321472338437200906966401707435752182159648231434711683917421372750799831261301171600273509638552281549594465541084628019873302482017938011911869291709743257428920187338092749570594174180862350827384568208997024526768356035946791025008319845842018506471674471644111107768972579168060981905835495313384458358168554037082880519815796179298056712733148913177105558677046059186867033401952380850731111296460682908656361962563971846479461578753113736277164985087025857650309854044522369044534433378427209971895143788194387946041806065196226819483943341030894168869972116478177859784348696141419144546943082558193583885496496508107221506445820748350563037143331726802485136216923174514897929368351564281292686267243471065009358018703250819619777683237809516473739844399090078354385356688389707931512703596416426325155428431508262900404431086611640227336019409812064074928580725494315516079096262968379939448015115584687339865046786088196756214928686426980431963961239091185255460780241370199144654901837161865302221219816444402100511666135933585564157290229005939805388557564291204507416777930011849055617038850732145900888335373451795919077688080132712140504979917260622321184835936254654956984711705423443397621413406995048241241575549735273836415318528575991381329942372694013126089320361976424797069137883393708418738591881842725882581347317191980433818374539683257255339461127843682703720153283568197606120352623008453008498869745850014723236362538066912147015779727829641881175184480376132276238248812597847909057457116302316826713126210852798952014245432216899749642547642412861887460250374508866256907801871526770093065162976647297699416217504083087812211638276187549027456050599860194509508985419769350142093166294355876429744772487324457138229229505809209281660236499478479036332810867776809441562278478194567136833971344518915607394901879406684072281395612999537083902148975374712023247698059077321287061383612480484453246024295385816797432995743759645238308701940756601692680777826437059579288820321402537267644832198136279950217329809213221223686384403164865258617906255676777979031649021138611029958130535523220099287571110170291781855353324831758307854320174748392837135460892206453169919583217354146414080049513646334336608167497444163022620357068035341208015561257362811188935416360591726386386871132390803064210395037203003477260671693444208182338358102207514149848222977403728149938456310744219052887623692396537789957486241831541158863214017882185806384399608326331990643711284002525630566313560185318970814722707722801169930335492165207970212301140453468222765676804146122447990259751310996114586833480945981603898833639565283594139806827034974585992173389512747514725585583838767466690707957982638933349040966004433517899591518219980874124504644410952824131826022305677497373913634900286722868214480964830178633070530686170326413781518988887439392933723836430506981599304135684834841618127832273174717215546136520144014880635151025552854040461997376228947661719614184509842152015907823815531379371783245336438908295803122508184688164018303547128597251334056589273739603767467349164393969690543722202226651361042334927898240383413225908080439069870953656533482863489451737787931317600903281087996208759628187714181466950261056085946332414746497669038951002872061389712802327202004286327993796519933710265479559220184107432135220345837005370068660006328282959186625043016673842777568117194077266565058224713454692483525678294836796664971609005136434703361123654181858862289360366931201199911850020315951969191015852863045145298496480894425627751125693365792045481481629692403660465245132032951666370186881346280420016810355257461026156900219585269740092226581123530452162053178117530828373759675450478043972715772729693946040209854910362346046123500900922298122740571635266217103904618573436932241296424995744717776494306844968454110813349211021974557672774499849474327842140111927096364184335417117274345169691516449200448161839031924333378769655163670569845102213471567889014147484057542649166370866263026525977790007042014106455384729018381147578332739462504640851505261551963368682148953038906380080441755105145432061037906296120949755054877692235148833214018784988761852714743989177467745271200906844193555341201333250724237989144109502984326986745445697419366268862446750472475344549763695546941786546627750093232044318751355644447449253667237769483811653141386359560498528485348799137023077076613377827255844136892137046499990285754671176053978464688634500043319584749524282919262897707399937952923144981035586693566146401807209565480706147245546173218747867802359571485591882684199081410146086604215102924757527104940624164117553592495991271657378573636271144384147599935607762182397998463086593875148468983772791397599571613268495082897108094494636726692463074649092959841515589478596264414502323186154178452042231454759594255127676307145748792317294254611179707213709724460524417484170778856218427304796738122015822417766044399029164762062316442254131607330982769586387484793452590076999888555071689717985597574366653344021996756088782271267276882343777268443512935798161264373569439169032057181438909193994533929375730670587379850199930357615637153880514112876884972963956093416310438553585695841853136878581309088289627389918412472331858702642400538640892361538872482899730921046967998119781595427899400876045092184741210908399095957701606625533919649097921005969173466646705200659811443005995227907899657280836381398650726295500808042050063752887613634911272376489890789120433795314211107794449950587959024634238796824389371972333148849278565560387954751767222686573947821731000812681744112805591526259518067979576737332514497618820452137972112044409347651366769916119363733760920937683582480657261712341181884906047174449113391584480987069982966421618547483915896424109102369218091094500891690068705313095781163418394076495247290656045819662399840230844666753855126646376610155504272329730232484736204882038084811827432025863657776079370215842618163192764282408269565019017911270672164772358585492564728872437075872338862334110497042904538487882419715814891316534402311604856544405084085022239888403297126387071043236285982556934210195706475951379591758186526695723938883678539668587678757096976367094969956427396241573676620953962793246976786644811314373936458613906773748661666891344217039775440807460598921987476875094190155328521203432981184643385781682988802275525967890695604836209195630440367768357772012405108316494428476829926781392634866040336939293453774649209158798192181035926170835898216165807034242540363215090362618114272742057006923762598433454115620754116486785329281283461844028711744652282749904616528717988368615874468831648018731803324803222042030011679017684156874522435237970438696305716127997439576379341131953497189970748652931783778089099050487141523722448925027838710488122037314018383311199910580880976536284054824435434221090161979697955884229740820477687196979218000910144015929118988971110449228618626202586106525093386028172084501638438824524575753905202489853999246504176947009589135808046886620599919703700086195805728682293064280436845914303672848947939789531589256780972133087825333662473678258876591534176586695809219976975009089695016966484530763278394728018215678470492192600194656612774760686197530836449733875819531746604658577008077054793709966237747837208075131934808683786589858722517118769567398962786938891723408156917727596960499359215837869812360838502072355361782590605407216392377463899050763014447528323661729172889412141481644723770532268198025530371381362971482480111294282664412320291020236829011057543788970869589815510880419026840720946886113783050287914787209859086587977607241428569920576329392307227148448700438861909785417310734794814148426633388206102095453384221327372006166068222683525016813280145857954537636197230138869603901443473766719927006136027453164192744036167628292736010896169608309729405534223748403063156514820730122972191623639717368861465220319619906917284619608294697862304562767656946699122944705111919718461445615020310421092481954215887364519321231732332453798152529197094536099474847614780083116051611118159159769184536288940669848786365455018008482780964464673429783548332836214831107763513686033723959081476470053921198206012597353990239186116622036022891102059222742743998940749801832357781227030064970681259251577514096181207452763963307580633489652972933142592192216649874995028213001150015918220221980731119729034133450070928517999422621969895432043128728453159911143825334232888738007438797351624433406706811808154157704644001452599393799068299612057391218360201379568083305234328952775870756983999342784030521262298084598227875993407359701160097406952064705367855957770725999904718573262269624731291607880727919570080187680701841528388500596552052739874372790897449760487211661027223470776272832420609597019942470201447469825418032329133361752428006206430611083374817743307775703117200338904101895671301303996538931694215339540271356495677763950223280493076093821441752085523414998395070224490215976155617375855957134089456768942812501980540359239029577063127942677113659714417154938541591559067475049774146581672180272170109182480948507752947998749697108774306307843838294851053404334118309654985326738490446894170552753603937983830318496234842877212557043683726665558440851254743329908013059640038649141429731257741108050791739597785747121414142240761718829034116968968641620809091565958786500645695902584837548196320042322133002451134764588810225572738196430290624706407041446376286677580945781502194167624604683700420818797037900739849757850642518557287635878934827061993099920624431124402528115183777317478623476429137947899433872828242610659109049363072147917624801569105448698395887186190194488567578652468762603001452285886058588661283468919355204469797144018021027172991238343192444812765570736996065175514298745469757388577334673942089832044663928384135791363400121841201513697456497488735639780243894936480617005008163107945204238426356616336259995803949392520178582977566064998536973783434957732974842379125512979663844946393435556319460200822246446830595248107591174074005722489834988677793281475851063291266042588342331095538034178300860085506936534947932985247677364536818017337667017985851145435758276216699982684688985491585181181074374499485927260233491315554525928486846328513544069478283330983508775452822620785841411875628357634732219830167940486254014892361324361507888915643413980479980858960661060521069684130282536861065898246997633654329857006330325523427814580453686760846926283379018078555955967045157930844769966178335800962212532662818991636915053534159402260937628103728499816475697624883456905091057380568583438864039391152986455816253975503852116523389689389909642121267956601489903984261342989539600434929396734535378828853273218744629762828883349329767839077838898599059350966826369161726613555141179504602868329480284598837775747926399948653646230321900552667122492790718124200052140480365222299329062245738827590161105378228254743353829540457499037686133728281310729518880728542883570358996890097961104230001242959696007223408384748005150663579436977097442785093581741360724151546287156570657581549521398877393316649503124695270065473982290726693501513044185134388884569930317712080358957900753543245853726558928233518651113714002002424621199633987255240471152795558419671164909313089583682854195401685895642497431396065619340103594180494910115462825151237369835122183687677327992005872816161996883653243979016832253522708857836756994774070620233887717911174857862602091063349584417863985474249673335770369238588447773126098501526309220709606713342609840407134816908422620860971806048688218561846563538549445357462043694335350950393061540357517459108094269744019664288803593002330580996564291240762605784603183365302730491650761969603724974057805717960507195772513080394257530950238731576719539888358607335011529886746119661809834504561776176820836408680749707996983715487892773055287192584174619492969629044262991588545196756811126812102292572338968089598124559262852653074324521948782859394883922053318219569359036541806131140082999506470077558894809891853152036276950744794317940450867998510867206947351927232398945805770411379710039146528894715031432957628771487510376236824160361506044136505313873812331968175179566880030703394626636251022165663091038731148431221910675398803845192444086009911971610349182191471884827838870705753766477373599062202013966551151645012803464118870732035334940065967743258673883704886945683479178295573548083351944937000597512444373054439778210676539288053573316006996412137433809763174111403659386432183459701776475385310855964582776082455816280459651023066376427840686311998867804494537727008485387998579295810466276329707269799716644738687861472303653186303749797876941229565569362017884413643046682489666546188871992905234734719712121790073217062316897150365230762722522868311225174508291354551271666470308409544949293305451150264554571467658546038779728883240013902129886293981267339817540119950602197769881255678833199501950781976471268874478963012831521518080886556909673311132454451303161653356953043826899098954194588596784865095820388469951090351693174360273415137557936741278389962158415509597952822082958058164244600823587993052224168052970648642160066982564365725453342442272412963629908275450362309619115323926882195927328827693381429346273758795099094992474849283941493859483766430547237967114530965727526732490611806966546240351444597146765599398594289666220508284177693689440970015775556627954728839758368866952654236716765574916613422463722483304682190740434432736560690608223699151033589553488050818628091123782327356947729881037614238618123808389383694502070180018042211876526443696943799791404883693647238390793623809073072532664087628450991201595431142471177772633950361772736629640232697459893679665579636577166084885510189210458119287435192281690916929916686840323678451856878024054273931753026720174401972468691202636753696246223358440207940744811597910464569470297137704486831943966473665978629607494708954596891281875837613018733200389564074440346816965740197507158410813347354283848265881582287855732673934365334546460311868254851355575277788933142733216644926046708677358785318442457821020102452673079126571592209224059582962357731368086424457832833818622561788174793173873111150212273921557270308306596957706220731251386219079212050045256400744178759666778734979097747772926756478610300235035246950302595631133370637453765180046893863627605404895168727092352765660634347173641460855090237297277060269093598893681785623463322038179873174612788344526738119423943025810848514037631816772122707797379264615747945213211648901848521661193089802621920328941239669776310337682099746398218564532381787818276850948164021775657840127813631988788262542087386519474841918400846217951167894790502081786857632922926378678408633318764774496475049468851784623873796855021493195610307651637664962743849807117336383770103130535296085159014399920524655376148017227499921411247484705125479606273746510413031781187155830529603547551304751068201274567246841989442339694180710869900650239496165056464084341096661089294595010079195385355643501476275746025260850790295071000742304323456674582227260602880098169230776109422178342615479051476561848401459827187062415234537017661126671389736154870073019628657492234006963291111781995493677943572178480767047170613309444915204545568816544157683373423670137015199065922693570335237486722569547141862197781755559027255921894441998754678796495801832116160539766579879256092139747275419899366571345880066278723028491575248929794713963561710093167078415919937356446852435938308443118558194612399222166068041892551559415455504907557679469076253944527802704461256213364275518352622598502757312076751647641679546309618619539018751787232618017127388584903888533922971419847857318199945624825396249667746886930064936184255706785977959544014965392385393875941059882038503970822033740299628710029465722385743516412176625046001552882390726970456273271856511766451468999673718230349766362263056624705281720604323870975199714298583341853766615116479280834768573216120043510699283942814014349079164403214828965232784996860254591615479680498740013123944836258766221096133089177766488827504443558275608876818463948003087843205714703168494500388969128578187587262919818705845708166140366342147265281372030873947471997841848145514172801267093770751579027438068783869498694231008570589696153336799035759729952459417970146651642705586931336810014400679129038277016865438191340429479181842144589996231458202120260409321510869979420153508457165912363545065458423881950081542563279319497157638055693773052538492638090203959189735234687156023094817307877893493904553891318783319088642604320026491393021297952102775893174133702769324112029100347466085397177380186806867485118227609382482491354447313113156954184043073506261051481823529112842755007127624025055187522670558185187923156815822274595937511249841536284256674542903056487005959702186537863798060153332916012592939687080272853320014200204298172707259802452515236816892174033818425487672366423832363567728452816139147662741831298828432670185233458057335822978525533602007619661451410973047878484598782898390055172291108761298613991853574460008961365209787393161125278118521314950167297697827174963220247496858837634197833121410658542959274630922728296542615023269741220606051432385379863721890404107914489684654418589969797580291054512106838819263327684310441966289665340947973686704707358362410769995590658261127364997257559000922245096340694477333604650784876363115972193880574932414967801592599057635415467483307832992494868662749461907380317478233084063738411704669019884330068142932422258794027749631930029622866936252081824551201064582494512125851709682336534836097685780867070968302179708196739450725430876352008682375895751776788950648583144953043297951029823656065812241018112358704013395463408948546336775284299711265221526479184101957235254573150356018122865849363305126088439762841637896164773949666666492262950900149644967315105675597864310776096691103076568279372432579415329542434550382795906492904820045519906340071449718997531222402247563794084842794264413047436025143977338333585772210462919597308470601225092014416487525047133381993683821226244120866920369994732265810102811381378993155162923454731911674521803452542954848222535004063176632864492089922840287688645105641121984387239314449308794370629175357389836460882103111836558598122531865278358734305026582305045759203085873479718373576816078574871542739769048199415219476513906367500918109730758971231312074320323605562647670978873908014052634787366650134007494606420030520998654139820078388377843079848441160813172444718991116917172365337041734738002398610007362221858493708433576689341969132313343349945466449825423700020529465125603550372356216925572266866230235837146101895505670785426991241103274902682875947956728673720749099523944739361425865356037464927365262486992161129107441667158331169095073229213863974531795230666336372826248790723504835069954891485821381061616727771684682324769693700847126227934551026709157861371470297602442577309826311678482058911924730183537699402046417797103904670982000620012073286124404167094296380691465331141950198477587137296954681969516003783589316002431978659040745255552922512656498095804595613447410363506499944846210237090994666186759098579719368837058268872231986350984462268984303072702461503833359499168179910660719831733425138624872796131982231193306328221306940171949541297929840910532581426409559337493832952098527583035884564010692015007241017121782963783745220728205268690569071713737715190006401818190626327524055207024025268226792583426426075028727088599767420529727891962883165366437407859959563568652821694120110728210631077412747653352379709475689705925726020811582708592280326713084832445731338844940658891359413582706633869310230909000287067181597985491275245203299886798453845511473840895568337477726560315213506688225033327948157023331496109202274527072090079638836387075192876712059353961063942660407465408824766406471717726872758914267463882350539971044733990915895514189230205545288198351100602366559234543267741468220954468993155228780915684206618926974349267083226140813907327565406591356878816059702062007482024905061703384079000295395633139126018223235685803262069494451963480752410617378567297934803732279929149602996266189409804770112910415610890935735087323827807893529240928463116240326457439372890218996035965270333572270983691442127056193767313030733930052031640387006063430471357174370301688855840297299348157395144646248633587273228336971409620196804631892704391338448465228859689229478786191269154842846954962242261971253981803365293746337294994154376294115426471665037195965181395595110606726633457463885071915216330417355641124943619099281922046781140695857402081577724984115541588417950751973244976087649956571496563429223351686820520752374775881153469834476234616917064598911314841275481230912198968731774745082523474572270257001192454409669859121380464481613785423929099863730150266600144018381509167582492529410382234582114602989291288900711888669948595700864252843988100282088666078920742691312952864525288761016950176742746136734275623290567186985232528850756708580795082491211295733181460662854223398995082236187082476096416312473149116639166656163803255462780094013041583745726210539544001811495359546655722639657199302609068719465984078183627693227294487985627650858666160277949330704945485461990230658362602912148627344895970476509727186932799946726774661425216553583206130054260066704157458126203943690230140835976938505286786906407810973828196504637052215852949339321737476740174901611950181847626752488432991856528506180986750639310235145681314618964681286896218043719072241412998280224279365883604013875370166700575716732703523564607845947322811764016050652103167553004230547567155104247842992376212883757365854513118858898235099250964040488670675292699303837971596280681657194953276395527750025112267951971729292139026999740410095766003611448457261631737381911105133359865629867755244106853172802846147928767262676717947512743805534804283756375420969878638672943206589468932888234020908976689639244437837193272430529695628138838046720864995339071918902230957906531566859528273344388894296409894929603583744176170137465175496569368550762822897051075010386684364057333595080663472228955979211670542476931237452853904234705683675083921933531083762115293259693328468183004388210619163868398587904928326324082512859663010653787592807581277236919549396811773704192057412751599978655163750227766938209553926647826465412699681866299943436757887863377568830136269836831122318557221728502832357882967417431018458301246998665505277602129305056535217858619801346540888956088182051995064449484298379762066341940637068163299687271701666024275769082880811055204633025178247291278822830154804621581650103854447446694259525717422499620576606553650316975586081722465713644502343700927977674476076195099919674079916947290811865908132832752895160764866241190599781644371950851903620619257691017981783467374982922607182757879149069303279942507559902319278705485355095873734949336539768809615593555752007417692518563890609215659307118989888814152204662487265877054504728065259841233432217436611730852224642528810939303624725954171494218632434829078415309357383749929860840467678987670001740491663796296782073711062018690208912081099142001560118939060607123186452951351860971873962412654935125857801942781032159385759014349318224539494614493261742679305833649461828816765208549558883419639201897944746031850310867195185905783091540852107157630831572336992744859379972350424670489732671179440687994104186079878137098923868127639014234577135967444283974899634423438008593570390228431789795248969601831303042894295702949518144095302402400825811083389902146129284752612402364270440002101145776314971244961459035903483015056704591915333443537579385973800841964446625885196952097769082364943928110101027343889794791410354143690572006391076704602827285493068718364721116807390326610668524100109445773508271184021873685820497753635673008389622860909279958247254887493274236325034426384293643907499875580688465392632511936813662870100453563703366958905306556064708138984451106449379726934579299197720377164897447207713770897540214315338699406831039690952429166259555738459903857043594504398226107957624047783821006101730407536448435120783041029705798574991834647948822047282233184949543579963224885004154930322866324624290761274194541971371079286688573781500340036213049941970423330914935395563596876326407258184613058996400274784560201097605036389584487396051963927418921641679545483924486694875807111721500738151962515187825783764493114267221222857433622845080472229675139426559394030378625799038233263851083738030206284013337136523832218564775469624752208631533944146242433147997592887584436074572055925655456843226575298517568809178982654335799138715240873779841244949212028684864646039343538281936035767342625814263425695069298318820340214811743241208075277091903716773211869410491683261693037791486139658249894969228856768146403380447922180765257553435908836562626430452008925808974776833413342604617109162496660595346316324312996411954917105497617089952115343497867917141315167018433268814464738895154589581935019376449468910455295027440322852237022548828390650322767450201469812013307299937019716836812748604285529563190444322890792395725095850362656247331361898994513870867535409017155750171219764908139032083609743883190592550528318774063204270947650268537578849648905738758005593450133530008909813253484070416649899355039875511953835469669061579117727786563492648111661524775969234711557689445809328424045995387340117703988863538141573508943201024006683180112317627412453860948866070579166085103765676556926573585206428199155399985374252528745590136045109326149533246677681511821688025684322050886120399924190965163604765244225314204791891751650200039160627944471971593392507416384641513270164915700135646203000536340608554766081723080516893768438539486114880067157935938293410043740888789556778346516820556754457965845693248632577008878350283578188731533381541941843752524918785831135260821793247141975621020737848824654803911628829814120560320126327883214404424587665904596246807089990022290055838352745129627125236811476382108227819502601977953285007926928201130781168960781341804894030872015583820451188212567198061360022543611085332800650170494403288627264025049781304358722640491852534033544271652795795811550505289989345422665510519354374964562335708404853176318719207950552415918694889735413734731970750088192730574523880935537470506960979448373007019069140435902438559540348698105142613015450269949489088959113293930708322740523278122397362640530458735269140223222168620421594510484248161526311711464792537748657973482944672617274815563882951191955378634744257858151148294263696865255846961214217027043315361359522024465044821264418532924478603385282263107040866020044807318877253349786806395261114970000288137336987782808214985879361067104021242164901814275336577258143311323366758940829478796704432506126311010916106928247462853272737094727903001266033181677289733159942048457503805800899837919692235216116285868828266229722133658520462897160591664102961793982495611142858126275157621687574417547768676459115696327870077086313413058283059771562624041694004077378981156480212943425913683096550436012961167418746244764603642468160625299580816637342940707549801695378958065708215994381026783769918603455575372606052712178737735652338130861549484948338458026985467844070602013784392581427933508352116480363832489206421369434960407813788330345074937230143186191139836567309479679816716349178131867998485122956428599031320577153076317611484417518980347671625821177120787440719970445391496293321716516861205458712048156221140935677074976423034042515166970268225161912733681539829643461609640937893776228139132051929962106724620112788477020282309790196677434782228135974059640711038255821585205882408421397497568854993080640524598938595028577450963355652910187095552796160476159146430063878452482878362154547899291022442897957381114393077925078913075120122843831339658096367606267740575715623723679256315257272516771534307182896034241110961296577271480490321582665324844644606205450798206090251815959921896207515055504889109543984640500377329011864964668251667375460485768059497321250934241686649235462659450382462944200643083188800629841424303493702420534008548086203195439038460385480634470468026877966551432243323399834558531363255662999337898272020268575083749192274946240250110470193780153959642210250529909046988361097733361232075627183090379050391221027471733100306588265710933063463658394711452860210517182351875118303852440699545498891090635196437422506911203153495270872055682259913234575138927910376879368021395666774363629846833667992467993497902384741711696418438806147468603970973462705484201025907423422078548345975474955025947129525701020781244634455758978000837767265881583180289484667181499984328959210941527942802854314763897898380635270748298653865427071081276317492839095536911430062054616059021110107842623055955996825934156178344121206904573741019699856027271345612309144332829185890560142467114543560492155466897830860574583282288760050542782411755014314819790522894755269102353575850916331726417872892326360426412874269979783326653931992604286774075650514565097329731668838161721880669690372445415199662904270089645906838795117070324081159018665637253868521208716717491210963974120061784032628250486092146087843286529805040483483307486846202731807667397716296474350274156981675950555159267738842730905958010305780223459654397940637495429001118952514323983629227303584102109110462867908169049979696715082315942818076987676208301624233603612604707054882935921170014935744557385116932390058173107553001415690636803784526575983282398139552005521843432227057986016529014295046559205610703438995115959843875720605801263106483728901738350460812618448020536684974155950409855649995590187248102164673223954364205590667613103144349442230005221661255455382302786007940824551712280938801555964736035928448079243361369154746068565991049463397249614797253695965117230174600141347445184392740801837586361476486323239016764495946942178883794291135365091624011973212073951958373503816896196052475588106753047216607601173304996734055917096961026162422707282149479643416927672473580871962549710021806412244667331206053088050551098064319015514275542556318133355242219921494391118942799371205305497286865668748701119438577119573635140095387591305464335445105078288146558978091101750201443840519765289650248758119926370184293396659595579010723270049986330928973991252140046725149558200997887070728360450345033773358432189838814692871460841074696150442900420163098521525801583084555014313227435573568029362205192876947185305812636821750495024323544047446877852998943105716092168287428106035791919057401143575303076690629753430387834156983022406163107785006043755866100096671461358341080721299884331114162052570694760992780415124413031840455868689595102802319276384153573205043176372381501540518889666874311240184890031546490402621284215210058453082854866454237922298832436107659337077164673924506273603772757320572861047641279994436455120281226743202711179595564965120438311194310728865329709061321731342363072188826287440965490850891501930442088166245884168522103720022220196022451516130502069549264635131379776148748558039687873223544382346039452771641841112939109986800170281437864652441381931702234561210447545132601363272824376852026737586347074230548184239371013399772684684108111245409097918127213705998226285752309060073028285704347561338749533548929128454428179455404396516430818110322322338061125203002330835491123889814626036291445136738386563689163046277211876982848231520994961079371850506788849126718375134447744446820671497454964792391857833046680463304289338450136646713575201177066467665156605114206507655111506374816579657145402435822686123802994068039739187249994788095900403006058931121189463748452606935613069812719545039889592165377323717498784099936901150563604158005910867436528493430341758100655027219359528994956848328122697329110306679016826258182716358807144658274685674986228856520591545251522255433290906992206559233193399514723051963954877115413014874325795135918492262913021255748031516558820888464574790315520169087660925884359091284028503141898515691998500768050858975856138388106720499469640540924059253477010521456904181578257976922594918773479555971621081455100755397257493019250417473771908830216968817957821361670244554202884714668958336271676302805765814506968336127904244623699510477793004221932440892338800194426456954274836971196935746828099820354923100458542607515528535697861257589519197290540349521373927651945133867221610174073187042589570189456350416632827599130350080835208623988846366541724800896974110283400471268623887980770411332951893899661630389763148073226357319319167701963591760359866186517835694424783794932956407462989811421771461469720464658682975935467913119363106699700549371240644939640286581092118439290397081949368725132575939120513208386983723534998626116365806716784555137710947327493525231838496511024310877927447320277148668289241088302198691653143321432517471962195999782294013791868461921201651608903529458867398283531676192632595954337180086084096261980987388048296479673968960571564288158140513391426267503730028072097456948348167351857661647815648067129517191404693110516906337402984124343349268951074192749263890304697920259235086396978501371789260425587767804870062048209245018649381425576707955535935902844073360183061951544996940646650809266629650209320740171193073856360361794018666325659242126514515904500552659862091583425068739835823344564573648742842020131072128129808713221319974994522013754359583497254379545887617805886064573391342817382335615726774685674188614022723362014303065033593830637262052460978419559522057664828805438047495178694469081421700500317491738310690770635891604967583321943875479322876008729660558168926093265180104337195023582348539236668027446831851188149661044636309816555272283075367500832855461184648154085088796188213840956362440297296233442266469449974982548410850073727318865619744533394117546411361540449790061292628632487375862080867678976410243714895925703097395860474394257058148291385001878888583833646938244283922412092665649086690638536162509835427625204297270996873966341551097230871789428495806304718895902805886649425254152073110898526657194500046965423406100049217322219878433682891466563315422617618846778923615425898053558274057327205863425443516977089923361510756200542480858164822495156241863497565379992785540904560443916118677077550955102830003153130974564383330574017686494987516609601458173087018832896071881450419793977497707816286198325251894395849918263272432864453690898915786393627312491684520523138040013210176228198690790009436918811353145448559720477855294999297871004879942796039555858753584817563494658904585395089886834431374961447285780492186935135247070182090146896798304767423167371776227685323233891078232487718811299210604151484297100906416846387500579177281500740462639521839057905399079895718994601209222324784369385872193617079650484432941648081060876216954041963288207941765385609361460185403472317045029289920021761972715799814563478752548521365582493108155196023019837704897667954186536695521518370166179040559897293766708171155057423777253133919708815483169821621247075437297701536521293847360358341116367614355253736878428430091864933424521721309500368382697176619104708156211621758498429038520652508642136044092419453757076282362618204960960486925496413127436781471793133963008102597661325443634396883979595131071215970980263421493566934720976511855001001881576180649679368142937793382129787285855787822151210564954808282634063785871618934180585361372312389048254328391819229604461498253077566041371733903534793746168285638936082980718257393231584087449872596937778137762195506136246235268275873640716775609039935833901454105505697529347844377176081425917120461832450934299325828185282541305833405390352063532874209278069870619034946833067501472776275910986009831415770299478862889884796888133663496764842631323515324103899048926821662478293139578968419839918202077536272457065332149608927714431729011359307246032565327377992752805010807557764050052513614288875511565292868740649779644110352876930188704294154379217921836641482895973504845014011509521401093446685203948682469462519967156285632278214182566500293441476525466366318672601324377916013908008308153311024127413685259648765052586848582511597913164751406824095765933923960812328557947661100759218093315169048162375200108076998189768174690260226186013661902920947873819528562903265376650861023604458901385852150288665159165198435233994481212146257341858446570833663021316061113955486592228023417614720372064088497764308171537465835100448408065933394753781077879751903960873478226669713981241155156888392276756497981732168909756954710241282240046353079742068135231958425651546543222500000768322891806771930627404397291812418690542313467504912243016902983783480676967969195834438714357703339151776566749214927041903496996402005473754496894934510121992812771418610185961947914775847065386685294143678084752036809470567382188277606000021297099726271012865904786245683185982360747670171777464695162260316981507209158446041693588617371051801406953298777536359452842146122291012925242053198187130999710051594304062186423256088129468445991156716642033060236094235442183725131547901655342901794454315851206040954603553378235322962264506414718208941276082681915565429719135835312601789624023704370701782980743141487908846465489840590290673963221279819729128414904387649117818652417566582854358143792860276018663677336030014692402004903501149746156830290839933416695551665181628205870575232374573240624187603014481341707330451239886736796301335787788498381140238004575781461806877828732953462207621062724679507604981769016640665272637616212162968394255776854795144965418671068828512574737737966006735806423763769880453841680259284762505931277540132386628888006178086310113186148251122621272492843457309762079269268817090278848514992665059920254958557831757241403887982598767530314821128770028682659238142409669079045422810499874744601912448379059700258120618312906356358958481313846316262025864031254002980089744019244450666302553252405691759193941690715421441580150964410039157620477045106788516020765336159064188825673075468268259958053351676839420519882430215443771178030806253438443419689670399799960696406738561420174965137915703352267173302175695323710751736112020871526642262560541465434852844398237491653142667931024407054989954810426824223515441359188049450534032361749860149639813111345279555583868176418924945079059172550552469344741706241613472716292568405008268232836381368399687143132784367453991780780588214014278928967399465359850472468591748205811574496915058250347430117527534548478905694442562677208160877322936532828197726337167657134033066939285485435578979574712090273303449830591507708166724978228425064879002064530982254804774810629105008491117822711039845299782345092415693839540407923546210300974259600460325756793365565096460753303828866306907240540405174344222517888046015679094319950019691314296378595374568147319779702132098255448042569224273843025580444796401437252979007363454690437986026819489809898995488882787722389749662553868297550313244539572731392176756557981805956964819453153181305964329123760618023695790194456168714778596339742647413637641079469281856882503544042847838418914012185160851047504847271516733015157471348390278599212224979627937766202693832636164628042858956236350341125264055752416022312304579453404401743650787564466675546210740831717348128305104595427413311311401253253248428160443711136250694258703681150165954178791804717918699277684826506977031092424192871824602926376709277448200328563268642961120009235518626023773019125706078312751921543313878972994782757827079207430524195673049731624938080971030376331545806352206662643296809424292399118710511486150832925781633338972158319951698775982355931159900695265351825172848734147985823654620174657853531169177187544966458971955645795661915180814779540372471078986733090926128253422838896882359598988857877250858245349591204553845262555626111283962278034295975338950797275296591296616998102059492233925437472048312569472359030339999672957382401303767624150587464698948010296528270614191518425512020709330720641213705693408987001595387629615483842485882606998700933063702239595910769414788341244227054756167884778559314900204756596084515352328035142653313058439238746939319400169176857032415197379415626338169136562166473974725493425302988956887620158427525353940545350090308304760799799175224171080415611193329670879774168661474540840517430118203458376016423462423638496379778682795591385985972013685424351113867743012454659199463110381708523364976530518923254953699596201491269023193581774793588790695044726208962115122528948400025054936794075951259938583142552291820593481052221220292929345483755380787342478894688821868317835492816362611395105182568728161966354093002305985363024954387340100172476569779359653476797221672295765119555055812283624640933196114928180048921029171301368718125911602192938776492726020600361060799566644604587506707335749728579652907623170867996358807341735030389015396952183291142179736577076626094102069642435143019875139655446202496658712966687437195529700403162122863883186568376555987043057848294127625326740664531880777712199040349029209468115465474490785797296248558916544228386188839266264314639672698056914386598407370884435595992972696121661105233801693909910873992055770359527861926637955068718121234096456633594009047947522283566375075575130597901762881137520607496349837966521436494284850244764882868444694744871660333476501985068589000867234710602479042334621322671867530812585643490483021027972340585721136425122375790461753371860768215191371447956178184784665818691001341814086784869306569352045990923793921186708182466828503839096150636466242112017645546065313972782700906299474511599810967988536166929861687875379970809737489241688715481480650807601365038455381226638658152508959001075963767594077811457075763956050771363426657574671971804934123310639523925156538583876120807923340281349329482828746048262869632481738441830616535818307752146624809665704281839189145793992433974961627725063511752444981527308865741423474650039035764748041143633159421870750528198732420352775790435627767680804243820824017343798912654100414735371448029725336803765110181215153482782193552812889918084141460163878145092547421856870667092723777024118916105864360586925294633615374270687140204407857301776545335450384323856387565691079094375040572652097037747044670656140268758233418065555324897413368348920957014500420814323971611663225852498154063343159657731943725188828693055148492963006222294138712615280670882671991382908411416917090401654713286231775455651962566314468726100496806033680554219893082987691442951169883364717377865718564727478826935688603824081873869094211177569143063643866994380934353090769919272897165541359947585860237229003907518725632754793555621437795420567242255753331922088419542383143180591760545019450979347436527660191831554705846225509880957234804576982694902197068583949905845709020784582586984432038444533904608901592127500135589128587155319450534847189921451247081473121750574865940190527131914819584524045464122668972869194092162983555863739934060889889695387016814016280127428636172858523029426005230102941403239327455784875585681104879769136314143698308970066154492880748361645719598117548011935731130279567339610433019215850621776074939271113866624686077022478443770944840937263388840510505599416935600616981807459491888950845413029946056529463978255298243717933468972193547561256895562040631648950724216531225872886655538283543582002600557388553198371715236973083572729203434954885965909820882199760402728893346632753447479379923545107483529654462953246803697150823437068070215006731885099416272726891340240740081629111743214455372555632797832737593247770901968517519801184298941663891381238661557477605927180578909671084139436724609747552761929833615150083778194432584053557313438197409514720597772755443197750829326422349840176624974887435640835993066427846930784372629475984239402726933304523851155566689453406108284394146253938552588774971594237557365554045183353893409466917911472518775877648823739491362008699254199643004267721419376949106587516759427524740563889072342835125952953639998022038411235081661753903525438149752678554776222822671267662983441169194269098539212181409738343316685083417216679209787285731141146411176161171343505667269976552922061987963240529492110371943886629580169255180937559139625869461889275316748452528301833231626173392540662227859754319682157510396555219353276552061106226857218360518389534925750483810735322145288078690257322032564412315741751385071940193457205544945175362127555763266806125250039844797423686506751736116961457840844005654266618441555356567978884396207830286734724931244819529186351147697856986781023619825881737369143712645700270514811999340095267674820766291774105034427307430821230946767220712909218087360524151352768301379611698418474232553068247494004465576643843225222238780725615337486812828600041911466244820814839978576491513874586061511489197796677802498230904560552383813647327800445792446968418594955610421459647698993165743565736767704749779401304801526740791391851502680796475329228371025394166869570055246526410531136826704816117692557737403098445570587548594262318202247442058812000159137939941038620931078337751927944357828497808835653894579613969414618877989536335405639399385114891868732037719533269438716845101421160106451853135697940346795853997829227595547005736886779664115032953479478490790526345681122053083994978310397969763156662997711881288053771965369900369205272033867056208367295330004920401104861685511800216129705410990687794943055788730302879404563097053373844325081652282392671790289683574358815866373879777043442498427430945855063533494931577258330727724223928728486081993936065138436773200183918419192451978927425448612256513124843989841290386098038478254981586811423088796381525934102299475574959963401152905911897019771917876208271671341313196493797610093775321315742011765263502804356186886286433223731718494964916405631387566080264055760708283874606861154572023974639353787984529985698394260624987745159298201689562203598399608847603662929252152481211501535340515442447474397042730952428890910374260817723490276530990145922144131750340688182514336301515859122395912464088662366257083507647363050089322078131782720902497361230287542437487820776214982503276168302385981812058609945432510052976671247081622358950041446443214894472231170521275292773765641537741279373185195214397285297441098170386660412598956942094970234493188975177288188760133049796199804963329725359948949554752107851685805653144186022519789414644790624103802470983103413034193609841075490958333347274929646531175167208822324156470199170172498877189971094796200112238758031823145479474722422743191163072507980134449037241051611122904052671086693160250768481381046882041346868270542183814832737695493055217058410377524465991882057848729848342294901304553222926309953533261186201608775697776826071382169168656006285703240287890788013850157194371195383086147450906098057201134321334327735706434247068185301004459747329819439042781212635134559958782288913504889848191548630223367234297815127366428804698020675599184060577224535781041366793965023117449065702554573916052273845857346016369765103824627595987547888987200257289632485596428729296877242472252566066010986588037010294116858414345556093372710442210579061509505584101962907306862717448852559075643161365890304240418719815484841130381303200338607221553021308240288875733970541568543966757599618474598808092478931910145064697622648151629122823610402767712804041278861442345050946616778330273084864148686139432766369835251536995386072160078207105355393587110543074315544840832756074287308049132325548816194988803653499006104743937663467635235331636520730005409624324721918979396627538519752043891636625572860380501075834294557278687401900379317583302910922060527943759857900545453131758204397531764023764199661633794189700282681321421418157505747927494059609829491480599159297654266539801695508456275187180096967071385932338988048456224820186592402200124975381485258903434462288441313157513654207119851305011255234302947234658762813475756054041181334121659642433468542929355050232358958665668453193240616438145924222225175928314337307393298505913383160203689047342789490431905804622721691321877049743805260457622666262328981847336495895192943275906634848948933855722625095304604794320767245950207689808870278541716637992152561696920271740113447705681057126805299124968461425477618498233399530853569793320796970671166116029668627270308113690246714297497870115378487319005149013304033040971010436176598942495652056966645649564457570707945402633051206464032073718148934262917089603660088796309806843254924452577515953260004879274316232782316325472191427253159449423986727223264982308253188645779512915255260705836940983486701059897955401648853981804383171580852828868055634663451526531016602759455077844421219727786243164387183220787834102416362720238067953122558996072062840455285185813770912275331971203137736049413352564124351260552959453658209751251952322033574948748986862541713607072881608205541051619185180884921165453044032167559997011567082423446957708933412982608502323743926086953397304039549123927024208470742897837476573210946512109694195814482200644758731157111019641710572653393481941913465442100790081112225546522390057615802098044253981246202410411867833490397570009398116651474330097546054212362135318475833521471595911471398010310694340699890856497607614603369467694785510207738075485143520270234050319201789471343681784568527667904564098298462353903358105399065970457886794283278686095485660223473366069553076383713735872227617228839500098735802340545339024342176030699054667213549286828988009073474753189425956224186286511915410042527582461592656785190805334459276604009712963893250096669734198836130683928617173503230461810725311758213998199675439826029912156407646221261999745788911348315599950073740398599242679811190607797083463642942712319302516402224900418227299870753890096354643813981984886474719497668902427770789965282912829967567500324793480945953090028724260407288524210209263929882299417508626104650006332021736598760214154023409621162433336078156663814690875173739249192142499844888880705297743655335985075924853328314135379942771777297308084410526651480669841888677259067113245131493236349003179306974239599937333428927194062943392986218339656329477379222157230621773071788406787015545705737975665032152838057768497391649515146471077418392025863028938715013874117613780583526900038467554223162874373684768252270197988127647748012028323494637207008300541759232779864767652106720102691511239845270541603386415701193496906111678512606864599730961760971017373111978425561447527214422616623439691167919483239552585735421879266225190054821416250547321974666796927930217651381095511280127338936508654798300195709894574107066924611665302772655373367287248896256548444934019376492054460021699931479890124610242585223213267346313476002595175304130044789986427373830976290556540202433680637240041346261217070978027961547434768333376794965602612747024870683502265614062981991787300587181006001396817271276245205414310073722026653664498104636574652050398554759739411737678009598394135903082507041968988339506097389490383677801981638711310050727693993527796776533718487366107529255726822061541902660959389820696782307677914975468452143507879424975862941530019470804097275359449198497662257343666321596912188363850250761382311808417314239325778869694375931138524113292727543632142947738865164478678507439003791474255677399434942719466767771770359707554855839401843857891189745746068933890122604189145923660405224444470927386866292989355221639078970333712375458582385353349654383382662842924676667621895801400484443547710201135051053972492977413914226920430510256742166819122141983468268363230302870686343109732721951286555151925179890305541942952894686973060883415803536136196146401155521387640806805676806387519357360838240558507236004558711982820522312173042033446774157696206617541758811318191866735054922993433050677120310047630594089167333188931554254996606672249804942263352666317150429760420448238502935517580294753082915563686631992097878304601968971152881987454718123857798376148319498014796884693212978050869981505324960941031885172721489504371782170472532915347972741556689904094585587651223831989231999832907394169430488519681110837267824837065749645604850862156946575641174107633862081511803802929385012930250176431113008579826489174649052037154872059019737957457391078982366488540263772548416465450114206785801394200550713703575622006694892967407811268309659084974499650948849551012535918928713315147144308726444921478008695913237518896735168473438742873462766745685098176321532203380930438613722400765468705162602227373293673943663041887231221700047515996860310965363610018465578978134584141513550179505454499016844974703656342853905992245808959544783830514593705963219951294275496261536606336156725706976391824598974256725542310166012644743933334816126325157754341986187509712269319962128532726773546278749721573115973705880317153499853419862116832842948508236317962554598553641201048922824212232517736154350043712590594203244892268889751294305558396487954615568946431927213825008853746948123135626219247285252737155062345424152734048494282518794408360253283107507990242500427582858623773523021937592341354475874651731202021706464636939368506241426777839227429777025907318877218760435088795300469316038255603830811738557068317937535903219960680922795764040336534586302992938158682315538129548039493877077782899933284570310936597104784428164908728944180225682753791477616314467349735735777538153899849033803542979531275189576580904547949278132160888710309852432457799311422882712938030114915275494086412726229685372454878310649015796721085315428627182909956419194223718679468378040847678972320639381671552345163720340662713114034251615014823690119216736203084347352232585488959787224845447852631616233026330947419646753079456357901677126662356790002457020414405445234799296609829236952771251169382890745068920316224725018074732391725291410567446931471446142846360960153706922252044936339144176698301711617814780231630335035297013520813173646682446712999869247554887954828152478215587248398384869816626623789022290505243388040683422820198101610018458208371918983937440498512044149253039602847916240494083098022508119020763637194751282854353245519631704951085685943665830317193204794418551411875666813335131803409570295661744169778789708331406944319900555832345957545096884573495084964619372192805632265784075479265178437035804496562762333214032595781658374909695888554394850313164847387066442028561494160420954437472040683065403839836150835779885735909402395997751590845329404816488904551069418641332964582063843021665537375540759655929843934216380724455546937397045122709020219635029916439838701314119451261639570139385797451763800925857025134590000966141123920606247876193243643590139053162944544193441103870280606806252451262099703162505791666544823172453728369888931860440912437461622983473365893722645222796792652463322274234874850935735690551143971268693487361952064180103033068163267395942537240936254193593719433479520831138979663728873805635855837279575084953507426422769320169822490330656007883036952590013010918262032109564981574737548865294229386256292536569104117175019917701341327985601603776548247681848624996455377464835707311966208422072316429190198502551146358647143973825937733480438285849999835140004274908579407384017062670086613423696732755707457355205597849886198407551659190672795118121556592447531957519733043716509591995031411055380680416754418502585745710762250700320460856288881194283778586406675700135484964305522532077909977953803055879888594211158086977548320148966434048316096587102212524549969156457591292003867735392417205358155193736813282570621462516171362903604868429179335052010995125345012752685980521977941512526380086924102973600998803426120471288846511757414583973628453190161359869358686803753270909848190154972048486250754696823639182102276793167288858722461468115836230678341087814492329618170281067729007515002992465484100228696462117201761774472539354498365817021926129653669211552031765789760130863583462654753334957468941390251639840479565803088723771993167763682811822976562127219886822745113730230222460384808723225420412157052914619258306992637345318085783257909959440214063104066022806609011265393818248979577467007111118680209961972550070118696850703249942880273908333690915541800293172189456452980709889656824397504040445624968146364465933203035703359737608551930581842024958690424799791324639604698454769130058625547489894119592947406413890419360550408283727177827429744446797806064385310514303980033640585923686070730119661521506812174200039548783471912867637751110443835434349366434337598688507258960649048474319983217682477144296622878009398009459394029566196997592361339642829257761215377465635365802058933254210984723187531346189780688228953058805084851917895147094128683627592834998081422339740924438383245426345880475942591363703808724238763843028294051271735892631793870694189124056374730594651722733879773390051092231646418942010969360919013206211586124002558719472325061285474765442526373082926197029670464421113175004031878582745226808952748886429479608711719488667830490841434571232175612203791553936039022660835906482586526502410338205723597207293843296301245272926502382626569481034025220088055307422680086669600407445743718831744097544679422248659246052266469541011544406349327867686062632511644005441113423669765132179313233886214830991344823791267563140434375978081491913329434139604266174350583022996478138626350634281949714446878466799829717457610898928115746615726014773229116747967219012313000130173388563340036784319506126135848313574141137819654417662676303964692178750070878714169551624437239884187130113094755548123360134970576930820630736206132291847337871571755088295285107807198141998041843876234782369749877051691519011461225491207810947679916589470025493170857694811403895816993880383820470109588946254390740769077886299324292136784854476161998111390477583493649495699621827768407061688237238917804122556321778825568204539334157064691160719927568027104051092590833001468921846705212389642565039231825255422319980264201162637091795051966236108161662899130477059945179073947635777742524203703292636731698050684840103419179724400966318186404981549989770105259243495818342064951110540798173373175258203637513375082229828233665828851570165531617076895611610703322701052446727355353869559562308827134887237791541021248733996276497107203327356036226639575886012453616687730022361168692003470112505248855366303390337226053902428706300207386365986687503277859455840084361251620859133914560852597428471887001887718882488705867072578150122160116307333963822833277669574250635387238231375336286987609287632042061671108594788729242867574645202624493476463032247678737391436716911656775257013059525395111023991331402161859494320813765280872000895812771793397814785707065908539091757674336174976707380451145540532992811127904673214006729686554759716271226163727668255006665699932696902468353827466438916805956421876525892265725745208501066748881279094109089447208147705783388569317011026185485840157795842524378565181653008312824112251228101061158812448854439826187098514296332160062120604585737925044079056616707237334774818262804514361072315608286670659881188804285647079069712037094067244113047605200671425943516602175452349625294352948116361126338685800503839824480442623732424074103607406973164686163776661935757190937019596671306416554137547853659187058173029150693734536493063814390608891508534500316181034695040381639260356188065709333056325670840524120937704492503725359854181919910628315758204994289958894150429562316869604405331505784736676313136665093267172607621496975397675586356524703182502831244468338164976888372426250528487333129213421493236957337353848691088888756828670398084641093134273313915223127154142279742384026182260077179933934741395046651696648283768463552991500464709249430744687889377986870676066926276308564239889504999953734356823825652334307569580081009125905402142448495510234016393067233643896996806818451407046886419898289690366061537827811603147136036536834661359621223969796162334167120056823359176584469603403432523444721889458794995205026165664737167840070363552636225861075359068782932181334010019811438657613192568675245588182770417625243241675229132365740111724185444379967878869821114883476082170012465549204419860804159674352963071561842383512058191189564909450318399720611401191400379005397866045107782864473776628588975074950533942895919858003263835386215421303205062362530626657199541192595674410760138885127120132355164289283584132997539818178628803617360062150435570757745868881392201544945075326798493166777708338167461594760493573954391215687197269033556247290363006784109252051905774843736008514799943942458925556671252066738042567356645488919849598264532087761866342281139508628426555306148366092709207320546376932295387833702192693226383008226065277035706892738877059718507992695694471744060158804214641549451842841197292227888943952561787670060762799874567373331411686599591526506447282029588767998842131403515337540875260095238824530962474981784231678319629627820846111086352318330129407003139388352359389492125494933204892838085324209038626294413019958343921533728899366711040779030020744418538260875778527735816973405532476332110106434366643557633566824712586012210574813125024409463928009536864161822439530311814919023649942816037257751117216109664179812346699233518381281190844227986885692363033188690908709121449974860817522428568172385328601521886370074596769986649013982023939306081259384762859319698523011850843068943623523927873015774378519349980922246790939427311449862964926295827368675028414570396485099061001402484001100972308422777786966652063238667423486793042529415073207973813274388970421921295814023423770342821735660166704206539889941923435515999284696291289859143395653074424763309402540441280675939362424566460290012113998095000888915385671751006545406230296161189353549219988415134488626128784825045345339711095164486760163340068661913431409073795805148499594219541983208545927641017329634457637344587322251715789003512026755176123779800119241088298032486210386331065771640456967624825458568222691060149465595633830980519171470856682394359372434553762519667840644414232540977489253783157033347592091106161725462697813349191634646789293423229506188214303216948207030711786230221860587651612799774572738087148464739896567374234488074166702721817690581281128349074719466332096225239161392987746497539805840856681790566615701797431091499210197282435075721324961926985300783787494069340811553086873079691802280922978918048210432816445406456648001660868727845186916247232736971567814506012683813469168908954237632344458079984197820241063682834977083056266680676066436750094130652288081016738096946408052599727067818737812824619080880982765028488171210144952594343232565201279149673833618270891184820859993525374783603040238516828586423382278740660890695510002752425145882503480959766564639979644050611358946236096889303087455994083220886368565904982151415246600051040523595117565668968545264573729087108474413255783133017550613825765639926315057456328188044571913565254067359229251445499057820461275389911456447936939784845189943771379438128973382252430416059379723066646029087827149331807122271558039402229725994737653969048983587493268587081507039720300363241373279251957333116002993880972196907564166445905391742354809201949637365965919247615963993308735259442415852878017696220104728681590659272836249357062518252192050693381458608529281183912575905652279852042042137370516219631211834611389044926786674750415073702862293210547175293389414590364912539857211790519481201429265131260721258330590534949467561982436807691244089015812945453498477141533055101039925352860202715160977958473393177295015770501154989357683233172046140555357832686708698032607759804539160833132118422832402693485963588548559703387758949321695204902658698896574355920498040968673626352722668967214402287736224638538878101154960374609750979783177484307854768304469154307348441181245320781092537139271157197475740939326993334915483159467405240220430981384784479297641165188884521376146525851153349248576333130626829372282081947762056507942148139493867945551693972838776044759041602689464849843247357905107563132921785311177094298235613854108683470707998762941406535221363138759970851481177680926593529806772309348975471898640673206415749156944859242761461042781558461256808326914363483571111038352632617726974959932616113349271841171262032117387908860092763580601721048461703856933969947539694584042159131423444089109962897632999309379590597237317454418764192789461228774917680619400366226460539543966115220251871433029019569965797794509052237053968791577207236095183811310376678538123610428876797286277316359791863994267607555971086744534264930387531667561251641211948794922210912523736378411938674291500030542939417871960070954150929694830338794845228768624576884607001261870282577767507617579779272342502657426879155210801164990991296966134219288947817353447134285462996639828469062332356602017883321565321973397999317623088460179125500153540878590553755093020132221823880105047373439768178729185491379585918546401602352424750432153641975636412246123670974061339710366189730590184904803393465126820687534249711529189161430542757049192748076116282600393937674343900793968215219115858822122988051478967595874295748999801659369980716270672635852543886419821153539537696022405940925399727479480950825164526642480781668181776917705929840449468142181240998738337035961963784213800023080053807126734121120959823717484960380641360569418589561683996759801963303668873681080709390962146399514376871187323023951949742178732010631417650252816484335408167286761196418957203831746608280006666074871235090879720643318037369165001498245252657511489893166937478336004206223145826096779036590869082439566053420424003183574625617066274015736200663617849074095603401107387187078788002790030326803423701902867172471361996835277843880890035011205995174206786505070834325275373555935950320435834979882089322575297612127199642478759665444970201712235773647955471052630130864658405866997972629911255439740499174077786285880702945177513890142984041476588745097070901099329029878108340455259976293852451722471662414379111603359626207838336199205038264764752859851961162059320480591665244769590856228684094659483659497365011867247645257686638153286575620446414077742208945316493919127214405900483640549868396000059075090494596267102243479058128337241747996764362708899416795487659382934133357081915171224019660439089093016611079789820675027275147515075448136735463333459156932591114984858266014335362640653555229021138573265025353560079484850409857584327619342471633287123016254970442549502593548331207889876077686649182260193800985041300570096357945852340981433547210517738485605689932408271198429453396134272915586760515865537551328673117914870574562339643685852282465411642095114832738628548421183674737436310568022565450234935202159882673372018654533479644575760678855224291995216280447244976878461950524717519532877082124153945593980774107713093128345617198496297739086181175762707951736385887122712234896244307253530852445022202352402347119597480706155855551766873407831719418598136520101653197454026518894555792572549938524665820049578561286134190835183166702892563539198574906298584645372800975906319104534767001111215568624945502537010844091794430329295491475715827689228318032435490582083012337199160950786532239270855723402294879411821323428222750993604541782333353412392259501411423355588263405271055438802688973413643766785964280786581587246260730686838621758242023843808802977421987609932925632352657368930137560744906047928175568658124014040417970629199032068959946059290333227360462067772376158671519483352286490902972973720897121010977062703880393272629156581638674819882992159158138110498884303927136056030117370074648125938355463410009922648966777121493372105701217674285446780252026044198941922463094704588965327458200160603398910491080762123033862620954472742992807859634483250334958533565069237836392104154261191857871229242213842734398027865068501432345002973737986387636445660155464370178974556428995941853620813592629188082051346195561250496765759309091814286417787447693507343773212673273430189195241123459399119472089181459442255177944956917471963321577593134570016051294599405607981555474803741300345798514050691408044188154356717416401862363371887527477969771199449432311429265521808234108723471589337146692466275680994894667892592016846564161675268049334341717735830543869562097535401240855878704889866672659244428569660240024273463184114036219847866487102233909508225694892323068504408539181532825496658640526636996518453426505042123317937624000443786032771256367037435254298999954371337179199030557253200298778988414559545431854118261619439290325666380103897487268551355082330451945343526550129196449994918945705719837231875660660355391154181098578189499687638005888946633413973400822617643539129762518705855697924927633012859720398535744084163762816113090350953731298350043381716951598396771122545358254987159647931090946747528460370380025095133997033821597990491315269658230470001803080314249654873427260779443022044146869541276428935573306803379800795516362751637471726003694070153858738593399877150184117633654738250763841758938043006702770592479561355364083923213473801567271859991275653518192577252525156862076415855137813820916052044940536839525945867085960581625252806294740816567675365588588660828685636556106443880180670115189866443527791726860370101628773827070664017162561350755664846376568940608025556297966693770012084867342967725532899809754506180875026320253868063776310321603910389064749925573751945354393868094117830278461528712234468422639081922679476402198621284734700355166186373190639370373638951509408741994715338370085683710984751091211278863655469792338748705485634307968763713520508651386019662820938265312828312841150903962123873222210543852963699098628230846580246688365557159577101779763369354026000159966396609592337434369004763473952156633043334366004893937450564782046525809292053460946916860366961618141138765373593295891639802928156614493140409023109994594042907656798714425916046029115250424133851486543387788361075898080499540851782109852657612138217765038261529785168075751452122485834679914266572552765772123218278957827880841377532587160108386166655966196003918752360339607682889380477789128598526385885267006746627358130386520403899319246912404479773915109346523020533920340224176911998682423402817127982703309563350299984674066463637949134704595167897917393020871508456028519254724014294470542970505526100173197135254242407406523813466115095874863212944537074368107777918088411953205655548066797057312186918305012282718976417825397289179571358889879492047172330747869353379323821176664227742994028312293444112433730187099803784545623427096377450788400041964998817499866604493060381428038949384141676974010643790769377010975119161714479804650296447732915458462355072582713258520966584184400942154906508661752038368064803518931687083586750858564326742750626284797332805310654575676531592214113229979115078724867656523005926333686940861202486741686355036167895171125885630442532209645715222870651042330675668081728161409724240569618880489974214254412446843699237398475540735060955936025105980935929571835195141970353294193775831791642000282636515281561458092465887945044473642623678158329886492998600757879989374203417615292888183691756084237978668160265798902955926824867337524351436336112375292893483005507286548564173708432118361169463737990419842128259825155209332617833220238728064131305099312146678105336158819423985274802317256350104864221820626043354486238663379192211595475659461867887426532037942342207329107757839801450028369629694251825630270947488430391905575864138489214183196114604109625691687742501704421018793237199061412315144510247542116858442871555372791791455173862343274746391958889661689668869405276973113277644533090091613503207626465820038919264209947608799073644501092573315917104925269077416464764210707690237578120822145960274959247407406549110297956654210386427220044148896190172352265127847256927388159304200166750373332502697810886925914607759036846740888899294458255211216585973184335033787242118919644823714621138388179690380074577564934717142884912160737261472941113846567364030693768623125651221552315187227608939654384901915134999889958993559657837085009804324732250715280681060565264616814270569757453904843538420304960799258472453544932969640130822714163999361670012643649176314163513814731334862270794304266045333020536333189217058196059679688667241713908997744534554922275419619819210697243820241897973369173439725455133336537317909185126433312488299083897360441999417507081932841674248792186488841571587697209609677677797060541429776254059354081352788522775043837714824742235842895114861333731282148008124275888567599475459454537906015178060576004980510501030773437335078456003420643180260114078205463775639002648703093518801407196198458549928365519439482633961029353228765293907305422982116515390052763413958492456546361414688101497673459342138845284451658618119306608618771027995665873894126446023991509799358972152399232701770953266148904138395285090857003586121256535059302801532708084534151032655341388345837764130341268284565069561492288967680579135615406818324562754696717651434781489015969917798944882973928693671460681796326927744086102415814806015957437305850617492450147739476086967601256332910111361076913568424673865674276623947097053142914216310069089570351098584027538164473294068230366745012306822116810748014587463663757858667761723761975465106597398395607452614401949645749047588842874355428363508941971001359542984066748961202172814989297899978928852065381828321888195830838572726068178964239412145686186367113322864042000153576020891757775233181025878177884542925548438162010350710495626468753967549883097955879953171711364887440626213467397308935508855984094822690391376399635148308282492279884236607554865928182898372004111126591505710866356615760255014898284945360329748352849734581627435159335708317403549227501469536552071251012893448103987686111923190557379486914114324479435114951720898476602016316978675536800836207030655396162543992523418752299221116917857215548963599324658882389856297133376642749002229092340716469129169125952931540494199152460433948937751191305646149798564540449729460027373451974733191595805697785135508200196975267553448158160139568756602148108392380094152447367719573068410439393896638358820703570249547292991605391822160154545853285477957863624187707765181877501352452307019654274943874628327483928630185455951782615674226175322724203758470521107086287357725257286747813430759991066121771969524013325806759311371320228956961357930864353861722743640569374114165469188909818865862022425002135139753321917614653451647205810220576870939505853624480548271314644839108856949035028686277943669209784945623994717708725719420441007836591376060276465083060110929763369902384325250700608457828280741778329534455928011938874618461270474499003742250201384530522982161773531525800210407892787198168034626876300296242335479553908249200217088089305924767887806284948195193222683950359702727202482256174408090387602107278979850424976915554801961205745235809619210497278808799532033158057679284956784779395023403573908411896564607235946214769397165898525656195216244501627041254974397594061957305763440746713814450996336343882021912940195717881051465167326546383792798892180870040707969386195937048098831485099108400994284885024831217412441557339025476300514927165061570282972503033287232039029166403008591613879977017963163246518109521484271372992868937395087613206171158871238364760436605988285395318487423318774136475651531709304215292516193836106229348080841426377322672530024322359532068055461131614560647764885310925754683425345618317894375297489479131221697331449761136402795752504819771898217124789250018992503416794002356117054155842645995995021500834815790517226829832660930785856269230308838265371794099455432272704880705873910376093367267585077720279429392183127117361149157688577806012491923276827153729459348906644113168049861255728293973054116439523804339010309655731063677411765024007720606577896174501491029481420953270125839401968166061975065513632689752868956568171491602816986530563472414185263732692356336362390997638828415641498600235839864899732064875291159040996708079559045057880872048367146919998583163756358157748981083930114996142616359521939042402921393847759977510180397169620925434254331880843136012612376558279392456606512609090565610130294496950714640581809829516026792774212292866843564986932126494399351114571929806218222135571931285240195339167615904231324749839029534446793389470670956795771129028176341876220584439359387825925929924509025232291040251407243359533300375765288626557167535599950908320826933788695142862675414682562777231817359144040141723852910459763694252521854689030919485724559914031973866561735431683735902049662782267748419849208080031178149036394805795429451474004671991858785361904126598264154014685573387129065201625354646420882873969522835378340428211918736685444602147339569165601105977080691252583342958611400130680330466375782929692336390442709226430726627367896308621237004393314498701023037705968035838677125596316818375918101713897918576822897630195041556723463963517848761665994223481341764541084989030090998690860280057137640328896841404207650916053002245083072241046612606007157534014969009738750951363579751813469273921041820606565199573958239478389950165098976055358418558493949697021862813932740088230009639076394199441457790607525276372003871147725352702807868821664889144140364123551246446084988379392910471095653853587784541378727589746277481574204825099696802159797961893237166091052669680220124281505444122291045099660451195324671005121804630745196254758811471740843988441535228360735091167479732962604157169452746038399108255650287909407197325755072666130831224939374158587187643464889506756299430042437070493492981151871233655150403822110311270140333172698097871322975320165122907455523594760236930015019850014498403436564704656362223081677719983257658714238902840213309890865290496477869309176569472045214345493309099481855210922662462317707051109186382477383700617810245996232172233362997754035489710440366627823374622022113640596395280850905329420038700205847707428807002038359469825778124820469866368989086115365862736091505584262463556692414497498537771301769659712312256013761760828348910576841628383859481622181552300979011787433773140454881633651425442027304500473399707169589850520743315462187061066312160244596060356781587666168994260516060062847766823285986074590725826420489355271724153474409360758158482401104920368412272083666679981736960550011939844981491192307983888275633129837251838648259292609481957054082349238736688575910969236523152526553899464460860794064285265489265372595759047347129073956619540941751723584040888835899025889694558324286771956278116718907063412598340621760840020934440748404402705326898351372186023084183068902407640401318675657700573843185933130425991329422582919662667034566129777312434139337165086370221186861573096432421541493883964668121729366712255871030965009944574478639996269018539315897165719304671001829913124517563160029015892522557066985548950676217006605446925547665671529388602639507807405292783765554818382757696505371469928659927097662164904315283202460709472035204200714139400858002216750182507298337162896197990261314345408855660438862939687133151266079668244156861599689905492988656431356235364341313100073243037376703139665244379839292160317464071480172841847756758292135312738795873427889022842781010090474969847272041385885885132794156775791341532665444098292941585456506672151613342662033691974092171845094000094431899943403517145464269695296688459581797737540024658298051351013602249501304120330172764252456967620362152626990762667870558260990432217380669354168709284648318528717243999264933486811729296749212527889123774818093400980854424047359745809650147820231748689452807395381882098561130377842811538497287654988668255431144412978163404677658796265382601469700013490377655027036838587901868995614527282350072485419124189572903190403489362825820827966698719621304235991071403517714960556913559878796124073359036372403153253988008837134693124164066406598623735066016639307339926915175161256651910587600105973824260758262408482490491835993621225418756722629168220179041510562469054375550035055802702942952782142106163098299963006986977848144334373609937714497675406543388466379557756787712719173962256878700594114394798959349622658802383156568842510512890321786145688084515060116788467600756913394597127722477993962044942207723080541205456316194063890163098736260925814858480433478826155277454868291854244702683260157229040621425356594704307706663322057470323529684910973537167385017663332659230811335236191131638363484151845081319688082855598419771295882441768992306358468856893290660694789120444021613459135849825692057082353689306042564839752886603642196887800021719457637886695618021995220464521419183253326604032504266599757958181429249777170539008410421819568676078601823321147169633900971425419834661232795483495614036516026901020418199240889452362950577634097831235657482513813603582867026724424019228850441888353113587059501134363734546173399788684226232569967027579727545144859247736734635781569246589975616915811825320469891270136377969831547652840708461897187628678208120237707009102542407441459197693496207249008447307837820262528461446685941724005211539273881837692564168680184516308579222360695760945825289438233655861345433510501423251941128989453664509295811359933776580381489570787435662208236689790246380022081513676615691591435724245307006014081215129728741260599305705041197223920966746361574374132248926581854525698888081897134772426693224234708621962547734468699792686867373691065061725856526961553269061096571275516833140799505745255504041863705852183889323240500887166293106967584382729084830101844699463071452623538714636568893292923754081302397964701869853614607822891368535670990156950874377109518867952158887226340543706622188087374160792440737151370230026842958441324222193334659933214132241260096291104465539002468620517807024118713688995087082796316936867281289147412361745978569769150159873725864719515672283805446352598762995685752651202991345389155153209159292923807179597139405218253212601129364135251548019497894208668187063501093329060989526924502692842884532364841239881813220772480800548347006936630904865700840962715205397035301761175424234328014015648978440061470871715961310108752228832576430139425780450070861476917329841784666207010664809093810106052045294040090848162068281827540295163307161102702431414986490326404270535974453889900541791849715877891599125667703479763793271262159353672715255962146171680118795873111056542262406318553132273406724506336232661660145192519560061468625378287419935883528448841491869673650191393387429031072279900616936566470213049047604542964953500344207609236169529723032862372478512034128384913463736489014423078999748066179657874371430394561803696962716943419920251242272773100677472026633952768657940054617330100178646356576904949988114675373882618810156830109428212235728565179994589101433926929149398028508821453287038218886490441370867507277509831506255264410533879891015987637462391074627996137656904192186999865192647098288560463172850311353764069265479900998556098415708352929772312455888402372837911339842887833551281850967468765987877354169778752468494821098176401633867758050528677806201641655280952155754330229438966474171347843737199555269544121487306991187099361033684308065514537139450391352046540853102387696160780142318939110621980313438865941329167053319850176311431607159324379988763445818210106637410958487832577511972443513356565716804739047155706350380635178031550525376374077753590270983698977243595872205591973059821503039776584357719771049046930463132083622646408426349386932408222610660667813667413105907055178005059735021510780992675340852287757369343273616187917266549948516065941123824981495834368778451364091123885199073901614669762242023201911424265590535003776731219135755721808322048555086431692457601055900698233479471060580679903610386724640654377071415752375477350948666126498443566256047191751033317124030132776533832195260338763322105793700352026963250551086234218591728626193890322191846735319856808784840036989084134987774658548729779253837344669153539711775528281350941397359006790728969104155064965963919354575543693727474878997824924742819751368927954051526178508202441549046618630033524570376120978424104168522944787477486494182230247101144049772607840035049839576405074981370639391435479356889833682506922585182800367750459484154987078830266283831308443845046632090887351759602910187370081472649062045568370529695209997084192575190675336966714864332410508084386806718226593688734694032777618572729651399762303939964583760539947312666218061095210947586096731069079815890604630742818783821994461632073002431925525443936986255779947894392818194670863163896943862445483195096457208850302907440388495562769441044724742063059816287521915618612758510606041323199711292818172693991352664771425320432577151803536592213270680203895703668613358086468161992352062536654719269121219809501922335448579357146092569482906889108220573640891551663401069108401184200479941252278448620625989530097771382864319787191050393227533107477964659804661663974379298878962669064024613790409836617388186357612127729158422896554487819588281170524665872211550857651364538985111944131497926889580297350741610157454151677201849765918764488002903499449112906340917087209240537033582574569151231938910720140639998006922260448180051517348336400342250568686472786885641917434841830942196713837429948824845561352810453775996762246491966764876304715847304086574772792732850973937687851329980449674325166689079255954425721481060747621106694867645233366668623901429790770844523573058576426688323458951152289397339521254482255211147005926313155043860743514013025009335758080844581415662676371145443432976042446098977036936490924210264349353035549809291888844296109683889019035448635375578240451676684591298002799492793900382340310833992355289601284181134540018530058975669280381502127936139624178593526652581626574779898602090546739993180099604568072697066088561699440252885413732747647225431858080804029567604409286902111036220065833899557578318328894615391962629991789896123304967347344394294212425551930245978735122770941377106427968522416544312467960839697873011316871249735736368801963127286977568669288087306846012225823823142152215922343874181825887961699652446220321511240577867303418753804228751834035532846052693732013630313846341154812007241962700571540117636871702271459008594686915741028603571358024371581910211831656889430546697922426454788964441909315725152498656018048001403265042777112995438988490921472840017355207477643919266883229862978396218177522809791155867357186991198869160748543481168921502459436825415894311629078045369431008279453497703712357185573536006362494374402471203616554525036239933422663998957901727687694415277311215556428898139918639221823639113313657220930782729194430544797023026506418900594962334124066912738697314442263209041991336828006859909097373163983299448145365661862663781650019873637478847367314628865406977339921736474261447488342086980043524859948596417088123939939051090911736881966790442355707716759448783722966041307122126923241844601423210795652607582495490138258117844622623548104754237508960842803910854549199449701566853242900375143494755180302960199133129623698040648347282455223176875328988502093269293963928882740990637438318056258512784254220886936294549589728787746439917360284008180448860913373772710765725305929987584425099895486227794590244847809248739989787988952165320000260229047046988316450892608714752135693308090004661349957588470427356647858923965416235226691531288569307459174992200182500932113720381580204671232046408913098241758064007832689359973446411120227961905952294167071349825666509955491100395997208262999122142264987054514313470453324803045865650197014664548377599380780664598927467869448936841936685304443999232740859571761484718757253781347298657215400264205402160324969328900861615466903138259823936480099905447636026701984342630929812227792179572387443237794859081707080494285147531876396639645620460281632360028167386137918383947004584915836264562467389605932157940875572541463202450835691161012702079073158980441783456247692891236751158615844646482040290669403277302258088913852036331122896863032827560312277699662304854133127360676397120463988185480981347942123292260548394490401588529521256240443517654200098837087277039599459029413304056333787550203839898956532840656054602528947713663640671598273769881119275530496263234164070366919223111585582811886982674140776323382705005527132289148374391326632302225158784116888147710606374173232608938131286328681863538572966248825693583208718599377200812137182761490055334725878076177972013345773367309041576155513593285657795384126429942632237002291100373637675535182666596571745573501452098388194868190333889411697803181397285206858146704500763440679189651000566277020134508578110871526625697106968507193683666016032444680791092023781622709057886078403561356171251547257565844306375675772957679107231004619807697753577008951977394120840157428880587269688734915527761815688852190263060877482230081684017019151545392104880754372525015891103161084180351844370587876287787620584508814737311579462012560876375274820852815426354907736724814315647004619741903294433779138740320045341004802965524212098271689980433745182865502868870704406426014537645650162874730311237793618799551568563316602540560197497180090954607591340989313655399822191727729050053480127366481279821970274831581768131341042156039616062089622187691427054803280413365977780681825337795287259471685165132033360453146289761273255422382392850118898690742334107918616309735934008799921943522500299849266619746412227880395656560682627613277432069358526484732522119803576729873974682131416401535293417001575763583124921902675752166246043669423942222553768007137224564002199851372267593681209462979087793110208335650304900904549662885134795634895376648918696477196993405104679280894210012033704271572427207717591078669997881509378177532120571501174551440584269233450555796873676543135740275700575685760651542420021095069710509415677034299903683348731712424983239148766489190863095362552677927215447025249934757249633825853720316478933802844936972418600603770170869427425666382019456659993160169402305145381755840831789729121195587528422276611817949780919286860399021088889541475752873057301956824812105186934094917953833476345581349749994316093963263119833519258181221882510848652123670199405484400466809567472381065879700596962109870347392230431430848786462818440900084755533511494971947723715856310546446810560640350910484827274985289207739875246637987625587038886849594385533194745986702579793400380697635755454579659195219933012444917521309528928187794253968105082229243802447094013150195798552306682161023831533590804655953449284839323076733515701605160804989415459829542567807285239518438252873876343759043529234495506366811242050666232917720774854643037760786233850233685655546857801136981393467958321239907563794085983549351834485856395090516440851129517479692347693572474165224314466395010089898216834452276463583466105129441120133818760575659250992704996293057558983865927965560255469924734180578397584304643952869980637655543719178307085486407874732886881617600650955836807113810424827229322077976142969428753700871963161322296222609813731675932203414804123947460823092437818602965455102173972895173015010895526351545185654572617201095762465080943910387204852235938896692586171029790828081929843531370867860178394588732545747762799891344675212574584496025053022926902502468217290584660600487613955505078038915427894467493469097516174593094017781026130857951902736971124732493833681514730546895710479759600806833838813549776269689241404002860875644401255876427489953033838856393990670613053912029845850400175395163098968314133737930211594393396412952156995255961020014375220817260239002457025491697046699026569081306714038322371871879300110433251779475424136401800402551210160386196527962083370758237442516467413325849412249409489447188576697134419134155527382903014959177779683467923258879524184795101952867662930506609449679237033159622327742025200826022591406357603530360125740939919334099671135064704445206174715553013812318210459700542009671914637720742732047579243541965088366028054858353807602370772074110179839240570157130235803483576083775675234905617465327052486443302634669919021126813204778307852859050391027627342054589730652956509301886808113595574171394705352671524605583103083975407728487439379715001543863734916802282167591650222950873877864163840457097364741686253747901375620467052707943171388095485200975402471972422340226148202824519844334116690289512805102209345313002022914152182643499388294236499553837495809222706543105324395712961141105558294175269981141761923503765269388477671165666211076793589901647501779710872086869210685923195771104291156173507925032609580634375493954776920621989859788793065368011798428823627426753250976209379776229936815305059789652398437090124004305032882224324235209839804232329755787447966951395655933132575784822692145156815869382236539325801093089672069813874221410897076931355819251917708686241698001547495638699990155455273761022404003218203660210751187062206105862313903322297280524728531759497935569858736474871754306774066870944344789077407525963272486670191561968629838473874185784409935855077022035785747945163170304981520498386034739617716187619087546432622508928266497720093649622954435132983480136802684766638054454042811674534163773522743308601932816834207068768597466997733659622683288699762779749345668080908151919300077889864986477874065463491894237224617211780420487376285156201965333566711640580242039944915853958776627824995417573192862303731902213685428475359750470539491663990091460430268325722847015192481806128703207688522649622884346840608851835470651080317787660275105465568622926313584898139929292075652617470334028548544535521376088547658890925577040162733995529574585840069386441656356432331621482724148211771972124735191230770241002120418174525354709259941540761624678692826633889853238351947921887466035374610550622419762666776973791416999996004753372003841930710750513234352529151587357054054255526536297153365405462005257594343687449582143646950328370688337522528165760628685371510589632620131163816698661843159072343712352312323488006148204045237287747775468168115519588284252883186858810384271716820594666747084217597484043226950641368049390836226987366354488996996921564988304592452851539119503619625109075658682304914142872083834711463814472452447429712857227116305922411925888738285570441258652930589357189533574298437138191370588963684887248447005148846496383454938848776699899337049890325372521005199200488827639327289197167652759595400809698863560893735043042951885327044515303738434726977474497326608750719879103360488000789662379560834015463409595131374348121850838195045156317256316362640302170142852533834787306553435620103409733883138337252756977172540673153561531222859478503733156082751575896621599796410114640653025650123931789382593934083205150761892376168875830489850903818769847095768865879191748231267573270128678256866539493775309223333047097457242022426553875417887846540604594687936264680931666379967847587460561887429524480009199186264497246506594716721432128343312813433232270518953245944215693177679892091026693528750945506138645858802472892373994089960532156128791619150543654184322479984111368345305227444989838995008705033390607786420595410280533059742242827775165123897392264206253786007989885204527797072530239008393472952426250497826935672469958619212112094110022981997382822296318821140211213006233797237404856168611289059018182792556390401920736675011022149424101955253533457456539219336993818285882192259493747156666297325729937566539099352528498349733408132129078456488822872684650240467692837816583111214294739402424716019786157791791184941926533946267665102043977385405318499198629280056607497903246024782646158234325194437755572815862422247490220306174790557253560117439837644632452673206315180645852314220887404869574049429012883502026907159973991325171442213671492589004936094027892786293735324282752843456577834078378527738265206640318497836674696116649970425097870331492942378333932308782121003474720518483372252752480035937951532038787782232634364914226814347944603435046236256883273211536540227499747085351118278406929137843174352397113966873488959897319789856975178088001238936181174474898176887482756741328108842107987447125627894812202503748278037623193666838482245220555504486932867927667673289255811354597307199661805665018265141294296755708877462903127370428121862438528357596428951543370890239909503419788402172590125606349489436234078919793034426380539295847343498043193086259563738788033238102940405541525199957086230023450990595206201057438019102814407631563132877852390383005321306725528676818016695037050621536265940788512139510421633858953453919258222007839009005659887971188746495816613586868622386047413001536623737370075139723495616715743454707477686000175109711125566906927723560700254418184070968601168902856499655459302349995637229588942088401103547872537646902736392112974300053416705979216287099216276119607266394791264397225319426434539600197676170927636443927689659931651535415021743126885768926082158125431075023279059447916520874593260407958489846779610910430779552071741120433256195780489717546247670380154620508450922311802425870854178542502625537621460038686703586560824094421758382396389796687737199160424169993832374155971633806128325299956742861253801878543594428851052392215220849439509596194968408134071261923246442562702972526798923775088728933865840752147419375155974994756399814902087533386220387991014213604773326747173690856584985564284776385935665987499140676199134228491521616024604342251708031725321426679236263620484299906030205481297001503178455711347969801625927758006054784547077425791879837056339572156397357003447898188856921724887149049815158186288236159079845533794068129763541984869990110075665450106575377885687089461586594403668653421123230205669695588303654703487169524594290470979791454224719025638932303843383545666419091905178820617826723405522375262347748348685692725306731693691109656093432999580812359909683294066751468019987958962533338015668937787839448437550307450497685820131599496127827141203068915227293191154146971514688068351518512105197294936098588865245087511285850929344981820053307754137148914173569596267415199428793925752739768566024834996628645197999049689310731124863222318733181072025600755205845898994503983034089878705229522872488251880015239620013356074863715222792254304444233902416769365231460958626203739042841086893916097346760099270692491896027458705682792063852671235010610640188590039076370795578739679573993827192205550029813024553684642534269157557745608392360774376121777199311016923304785568301635900259704307689653075590490268430561067595338526085519859726774467990829085394608153546871443245790671392172952868557653589008580514534873618816851779546316347025445309278106630493851709820338046195432949607423286752528777920470956656893386942781816124537532275392807525526386953426167491026516808225117589096737544432984258025224966029772041679342543074343596770651194934303794465482741512181317562526183613907778044117438924786173332037782945537986576145869606544626281277232304322092996817651002193331678649127341830894350635222739457899417219235117812606196715790966260014382586332722745109711774936315658589794381489478588327637465674535573582706130243149486700616910715204344172556612687789290761539811866262702062440610849601556605868069828610745797516220327503523920510089144063971117206991304912045465066426183272209036145868429400276151405531847156366656977817797781681716713589485320448100110673381789229838722194202065317229999686188105744586777274018326247832792293570615304688344536073400256173556058305899220124199333076548608594388037376425665761192275552907470973766292931352962693423456535742586146951027188796921540456970114024746411763075772090402691815502577398118696542553490857762534283641240292381119401698253482444249286777321770139668293735601525972156691215833429986694692047833621795981886423780950573531762982089141815690580968759867254975482921589513779257828882245301924521181955281913496772547613865776854574086473312349648329383203010102590742405289764769377292250501005831447457417389827578121358885520848286796731023321575582121965476581132129289216291000840855261344312922989442216811165011970224931824830766993211492347526650647592191076615908075014001455102521468881850325016488447365300477173488460002225031195106056378519597799491546642754057414026923638732622249934872514053322050726932140852400889970158285144538330956623554669993035261020277543434500004720337305830521745832200817596272746494851892250646788204884103169091548491121336425492822494196050245398866084429249528101325934836319171581625908242627758527865334426353814361229180988099680266257223938133448034613659217409891750434671326445664162386327420631635330551437788655474569398455511014557687238349065036763132233914670121547960374004335781965724372431307093323124537433125010562653490758096762114927472151689006384797925935332648524557255543601620334322653631517585016433957278313894887092095134609459323983819381035342785788422235137070253643664515641392925600028843218293234361783637420478418983910175718339038263782976938264143879778877968454657277366408385496233299247319415792624180244588562494677544668034740850306260666236798417988174220823531020781219999199082421398938554051637088894835126071177206192657732255064167783525960007487142502624049037471962925472952483426084615343747275880206057289874922589068592330997341880086690911502239931420169920374439214922152616490309877978814418672129606052003476789473267666594780744459037828395852125716483150011679046280372278449450496798490788951482795547196600268275412123488192475306748038438358144545667560396027924171646104187787085411026545345837314764165801562035953041442512712462421167987843148442737223389744245876857369438956662417003193372404304164952804164671776407808332387397131357233312209552226940371662516627741999415973285220072350604036716318966892712296185531284586929183381934730393157584289822634714446365829999758316476488303386925614000917621949868531393171032596192265253740005433206948336108058771148517211053006072755289481661269370652568693717077141842747883276681322170567541808665208074800938765996908534107179192836389760085801947371972745082658299384305691941044741237208159315801192221165272120996703604924996389044316133418702836342191094421673310269878460680907691050975561006589233564343926204626205781213660514680788419724011671559672051215697182256076873469101017305906554179305479616014943746057321547226538577662114468310926377372962612396821817677445127766958820079032575181960857768110220351964268158037008720393226267867981041237895064141923086918457450096625926549674545900907464410176874472914350607891782273031523621804078740647664830848245055888650170543036119162518643631531833462288345365162086589678911218835456235270194314136590059670632583432992950989688910524619574127207647220574958810535989204828046444264068703678410454730771389423701226135325038675202446156495998524870252539624372827665943769613062376548321897299113667877666174015121497355569088112685982583119985719739725603577838831863141166413543874382335914660812434131826035702303850408122320618771853091505994381494637755505986607153338698664357550287532216958490558210363930905613025929526757089859051666772213269290824394705070217945895956116894128867833935325875868375316842867597712852674205161609244302239409621290455484789268929167789828793963190738794704699352145371656496805062436808098967316325886993740203237720330735776112041165184906378912401355231054746163083804346949921740368910471836374561679433703446463349646677751216205704221690203643709411460253656090686447621433102195989930856092014837363107084974495604173177046892069376611111475355237364624955887580521471599932120550476147903686710777086748304489194909924480602724978578497020993842982412914283802272918571878473570390513978388850130332445757072992783325541784373670576734483460895323295447334767586850847585633330369953652509785155923845600400424705206409751290156546229982023578617898157972225835606106343798418795417444190401022913235719280226397739848228886564497982422320505758199893196897528183640461488437639299826975601863134819402260234269875865278349750218822936910189185127777911769405516625114854936864860534565127639047614689112171467000273273251158637353194300117977338252828521233204356268871516249362035633323593398714421455137477008075855680293206073085678909085131578172438882321282762601471224106905937536521266762101789852809090319064297221384428161879303040888674611820707268472965551517212861335498382837905133454983252684877923554792405721483564449881949571394699681985817380899955425383788510241550573568691293518617053931723533627935964306605468710010132605701037880663607725077108915351916284211283690492895803280415382445895710399985222454263180830090995634338531500733237700990937169998499198278941681548410411632778188355936244996606272967416603604844444200207275185698093636614374097034410401659459576966175294679689341262533152129738600336430075559012412783055969954112340308020540918365565389503414824755358991993444948091241278840045377880620026419323690257255766274254774472916227375642738481210393875045721126723211621371430766938344004866957345501903366559883870531223558490787965441442545675411861940315211475468608621789566075311752176260718469024437918135721502653405382842387671847969084100895641267667212669167975928490683856726584961306555363451304150504039328789956112924733248936118072016392826786392694389954527567536988361693058980466144289202699971636926597926301651137524217227306638963327944958708109056392583620360071832897657981696288684926810666096372206395235483067776546542522081454831008018210922615627026699039507158305005426142027468234167013865742292228210069323120743949026210089627602711085039098034363207732683422502824284204546876552362586215225202780799419262424374521468291571515912403069695709979397830494169102128302197767159284391922701718554780198007825481765780455044619698996186695721619979674697705260917490630866800825756664972559177559007800159267555001655248930817929021321320727808133857453206976258102479746468278678065835472388036140304471327532779918867894595158073926142194958854705502286491637065010597944025531109886219523053986613276013649602732246909271871195356536413058889505620004147138292921826800065081456436944922043296920958323580313593983736743142140433992882412115615281533265758345568996333630257639086368227313011668306331395239107350257943538479595855071870811746120699678580702203026968517706653988531991749251199711237655140301869454345144629986760856592449544952388901100509536039337812073097772698958360366738138171021236753939448969839908884618607502012323546302416703619895884248564126671894556898116785776779299420798085972117948015687573693207930280063258477197186426379344408829411193528530589039750926900005933458146796507703440739915886303837476771106227100736465657807661661827657524174068319467895972530575395283910645744396293591083789047386921196382283735039551100285652271433223385108901945646595971763270454542015034833325991169813326696594956274463233118743666479410620727990507312622609600022248202862358834607346118626266407973116772125348576424457550607863250940588525176276657811133261585442054063689312650630335159286757549854991697130955438195459992518799742011624679494848441769614939217955345255431089457236698555327200515327885745544198282764430045662863257210841765870961933970162107698868478890470983142694447828530227481363094967852890893138545083554266033067652937065289129679749271027163576445470172876321205573032539850905556480215371510933359080740741490276475120103165410489270198799700543316416619740297360893548505559525390253094762655361355831594642342940945401847074144033391692362803249835469495363621690619970906232637573833622202568665403284190764402304702931404869158698423242735511341327133299157309812045316011696254002223313820856366735693548805412168369517935076188194947797556899347835486175052232231839558046717903935421338506582999657257715143664305514209831269790912717822169549835001286328096257276379303856201919019646630688856431725862921627257898319088058040393459801593132542017005739020510910819444277362045954541005480839387244322573697955256122855117025110512300853560904270837155477199616397777539101495478872620587465944001334378740670151962686015882519534058194271408184433641972807737429957481926627198623016117708661776465306105375167970782590464598166697339375079351839320045417915388050379262530980768452029690621309365016691433599183922104996400741717293313182043603890573969886028403868054943617979104548401029648202408718824702125365069611543771649671756433566133872927114240744454490723102381093477625360252672452999638236351374921609205471952132347440428832453437396230877477212204312719105559858744389458098721049739288363514262625973498191736823854114017216197861381272733969992843905481113728379725738965251311409252164359603789762100507264507004173145225186460598880764140694911099011569116730965468045609378906319332376637384639513515785302526893349148978619252760569828999593350410103677683311256602722197545963218965247446122048004482962153690538488359316928621551681123761054842020420451938563577578027902211334358156944346843466211685198174262312297230389288724718177887207773917530119719014975368605120997578898264458547258388462209583885158693473369772258382492330293590516619975834791851595896490298365599690182046004410935335423416964929698370727790740087105362423539363014371086419864389282943112722860614708290106529208717369076454200067497048130359067091863202262486111060134438700492126804479569663553440645768241919605238667260310976639058833201565539064099440799126796491220947901621700861402990953063739011205663305758364999525594076508989460078389901884316729682107461308127121174976660572773954859426974325857490243270611810249300729113659556336170646692598215927243738295005344015274235780121605982639499955393980781131016600388615113171670421988156848082780351256649205174677754888775215223320514410356471112073488066125740554994935207441227015200642296130954193171263457951695562144917645367715410939100251338122402627674216980186999322504701253802507598489426653420860568722765639084671055105660712203990208149979915818523525535065388791194281931136229320321860356565910876956031154040751386156849124514618866918936572949751596876437072166431237164328673395293158786739190822969845089638447192106378859433063221385670578293562415411649722244513286603215604430180109778091072607961729650044959323012131759901201379939071649799788550850506857319283833257993452530265027401103532413098906689219294234340645993942457743504465230116889790520392703399926033077011186180294730983096698508603881196639788260818738932381431451722516182419431730185128776500752100090053772481892755995091495485491556347083365584976772793417277533410023267293215370103862664056610180867614708248249173000513328588745844822921131716408666189032140677539417095987366180657402819415894787955750202316202732477932271472824341243314822758322481144582200872429851496092592628098483309877695991247272904478028399384667784854085554974061651854957059068556182228933978182200898615412222264096396110603958564943301222649920479854808687600930319667727588791290300769806285323508756024824422574754729388233946818888571905187828604169426364432437628812777294892593957097920779337209841137190474461711949014272581872379803187408265919671434825115613907424112284996052324765784104688983463591352887855537996149813323478471090275898953703721547179053187727445003753838310985660461554399459491255268929701211504319007002869887749570415643628886420082089595895148796239117370383208567019571533408350464938224803742780204118730724120928777770458639148204989255060765925212701739389184986134268368539037560902315375598543857119841338114945279192796140008742184333292662555447551705983664103235554480780863570522058758086909969086742873632759631143558344272829070692601270258557382630261947727738033271465567367579676962967872800302135338738859347664486311790502262414435781938053958407974774827635369672493527049644208169299420303336535050958829828332535373390546311693163724005623581939127523441399796011367355962726055498553683499401837093514848567246888477380614500120028404300154594290094051297885968794136419925988829631100540944502992479844016022552478031799051701703012557650964072274633893515995482781006402965057356564683597177776563172654771656021663673867074220289703393154895658224933653358706882616675574599882807539222468726204051719627651786711547123118954995484213996750142912813837617939799362125801259152616871682625509109937320370650679253459576586412873848026033876198867019146652364684265490641334602511687336816653955959661038501523444768304242607476331822852542596549563232117216143856705880683856074091236639490632238182845846635164160556401608764038573377482722196029565412860091251567863923207480537981553489507896652943351122341916643815633439996130031989878709978147049940852064530410613132062105674518635992411418600899831960828126383117433774480218195455919083045824078403486553787311615004560874503177508752257366306441305100311208147081507921051815102418180905109523106838189911206727203423110259877073586146468977741523836029483900923610179095309250558397054005688679501565104213553363190124821865855038905802285672401497556016436425414798826755776606650654546654382519014163580862597186721956142232205725087846229338589815478433932494187308386325250681476212824251569728737841314634314893008925332639308262830558531148609552251278456971484927975301584035597174738852118041653869360310907710979607747039913073043390803085408215799237083790853886616953199961347478271761658625920201473074468448718122329911153130347884774448154617778673562957245068877951812556444834908213465860135386599682499997980025904338100521650091954460998479328973398418953602680168075817998323704719208639753067192718647649307511061305210082886836491721142214865374657435572305534258489321235441177335994561539058190723868945954010852325785375396150734390402995593589626448687567127247992649305202008872812897894119762997140765782533344249202644803322703755762340425592413454029031784026794117978461197288083209488245291222162750483309656858067101499038847295443989147172048307069146809473720248858326443026775361302862648964645420815918462391587391778688767076624577828867559861159902027355211103906434913305480919566168949308081396709904006393422114759524310728249342268549185723440241048185646457346916439761746426731191444103281218719487848572145793305315068162060338896386774393622234597611895997754239489974756875220330377314853457102116475795295139800991188116731652798400500876905658111621995110077697683492523159235099676440328173771961968576152080601754668419536896922326467033308053415609472410096717240824821926141153961949474221229986717436197996546871923267700097093378404231928612309867487795783410354288645535129379707719089027074339260610430431915603514172757932890100646878686912853221593966468159463292366396813161195888551550256603488063268705066522567684705500912682204637507049085888048020182245722871757990683260618801644252160397431369925839766531014177526601653026214232817395617980355230707833600870121810478095860147172906925204904177820951236194903406526497122332978565702204230765636228184227019634766394835382953228048884991129811848310671490922038678470785050246355820903553797916919783089836841273028249771109790410380457513781719787757104225109002305616200343735792382702471184825961324027299374444611001342745929858877301068073988225001561531020936859776648225764091638758037624093001840715639215715332970688325303308349744263856918769279720430873346815878823249382104097908984339858649123970339006527036262457712440580386040172283901435255502378553368178307814824953788411397608008050562415201448149668165788558048635640653821440996296193712159884074924462412229833456205546687847312203562376997709966445508876040823917904941067814336487756236207710015316667772615007611306585564766122677450847268556132198283436684886126436808282352219080727921095870778866550539752618347360206555713544817775446306871526336434726681952401531351115997660252186809483406630365384499296569209828735274952793097398601010901862901742255082660991636885429857215658513989304740259183501733684147795103695286294304285287249435317610143815784313359180968462547140564048480223108637076555189571317969397557421109505459583498153141431773889662843824787742763150906999233009658801309670025002028929391769965354603176921106432373676181292943968155497448925924508455079436606690140009312831596317394416513221283634614925340802244647122170696565817980874444516802666512423522133168697186801682738127526771737975900981375611302268030687153151547187262613866819220183037505487624396241915629845769396788837389170145685516196552548327921070522490045083451989275711434231453881007152543465583089576472938582946592234337544147026816786382557862125522211822037270074589909594189127758304421742637797822756075275088874073954147869668831896141225788358679379019720844344245237226290208449396530129904525699413433555236515932783162903770065417691216655079588591343138345891122543524344606544883296559098078329395390223658893245878844718980096574777538536390735114664100725033879486720551941985211698464142198611808093695815282668002839260721617223847922196386891636652017370497286091155369725781053378182381159789790554466432939661065021210229808844015163124472392120348773493887261992476369557443831405025133823934756564549112907267613337637721464355987748177076156992096397352766126892442509814063727899398446062874267148480712870979546021999602927550137521055485709256682642379705767535364554743616046374695446805723720429237685395741207241806173491793278445994612346777632782531389977159604660318219810695523010162348010004211686361749833670030752207760518635857170335067962582531070073977203909972878189794642388183647936020202691468469875164807476030752300032992156181587026734547821259952554798845694530231450416839417696238606761958719554055357205522207714257363465502896153170970880149061529778805706714641873918742890750780891729822433171535027785057099514205221288719174535990758918207326682940546225623654527620646200056022659621943065459457597914499777746280537919830555528568346732317175251269964365695273490592633953588307516231987906404514767300054601960281760608754994735551957494438412774094108619388888864985911417380344380003507029830245049958211206107797238959189323472344720546410916073973422809602107858652389027585180193960464248367173072118331621911856843006002772163700264602306489220010429916520425778423336026364447833268702629545482380107041867186097915791529815607498028909646269073914827168835602473472798104723552521643125127670799749603486626132096530900358732673473761855246310006903453995929791641639491590198877526541483690465235919075636189758853082366672939584614175254062920121348709883689558884520581277478819670637672000904633017601637414914364948495048273184334004099271881579625123353976590122459639841992414675972469236983655926277275385946350046269397857165369373266076630208579287429384910295164187441290612733060768074854040330374154422267811539709172257653798340946133874794080440025817490463485015368223524852335275871610253565078467751942722567053191233855000443969061603166396073432719916814134529984412249499971624825694224934400590100681053806402242993097149806638710799996043240712201891778058341439571776750924038933838675776487508465812923603069593702299577020539318969358051134737764878530552751081489328316764664317830090280875458930268461472542234728939066630179249297834545450269791431460153958306814579908727323792968481748241641269504917547615377192260218047192269129075589446035338921463444292730498588762322299508997352691544715308507472351332048664645507526656446612046089824496673001952275210456794855386207561799265361965777790213208988469105651694546727329110729971787802925634631906654653283533259698623098320410807675135585249142706163188088033005260333761018016975551021569306972326081193707493552962639632434899757203652982495160700420983114133187088191801745354779965917790707125827203401543835505648162002763496159512604615710599591261465686919830363713953983409909094236104842345330805234482537938883498837415401798339040749399902593658228153046642411413655326883003390838560801558831821626674679579423708838967575041486561706560239762036835998160613642149208972201995263183748977670999331953276062164735155342415514053549733780201351578865427653683600687850858292002729049005227684739187579144766848605487082738583034583992019851022701494694008476252920728041004949117002981950404984048687824552100973966358597320033507347739258679118693231967971901462271554024953086236727793762199715851818987407810287517553422916209117502313086069030613130287005172399889231484798941482374855312310774967018643222336452802606241951376498952940276810575322034010268383369652898978731201648116701040085707960660844317123653958942257515611231854406313374687958367551313996991732638730833885681616772805636841040088376742071501024643204127993428485049968145552625579377000322293426931223469066997050901557286645570851037949698105076186004804327178260417726017319239307261541505117943348015106070354271083425677411756874625317587841812700556001496855847765283162438188573285148594175697526265685850034656739065975916793178840768949940172588625450503671019578847850834880089801200619887210490945654456200572824824938195145430418952367106522858604681673236792265715012672918804539804866206103392148871910572945624648638668570395812749408182015078495311767462200924343862749730540050882534993127485378161374423868223104046678835292448032180367771301261441392415210170303881059523283483418686811937239461758814981050244015348928687639851985693311904106273856855470935702355335007128208752722107494863730983829412577097161704050232686225333863063602428150839848369725883897423131705605345024303304514624732842562443711955807450893351608710147238705364719921632144806145899736788691844063677300974700728920552444972330474893832484491794930083460402024150528618989386418846737899998222871780804230905591163615554273184524793086097890105045598306724536922545615538095501623976921321417574449630908113604360831658518318804512249518201686557856891025039511606591249637632854896238793612556470356529776075755227386474813644469517186398592335724476549907034512721555536969287768563319422328845438659179836615632134084566430082644337966638953218135978539300196033633622878525140450328519464090685249165685093740423860980364795884474724359528516117541717467984321423486710283551951784776930482727333756269042967771020893620305816069910891474693617718257963974868334430726686745205276684927986589197026133193797314223143830822311840795769912244533952779045597751713851371562517267516442236088979066143130365866099963125448196534751543903255785927041038463545214201357779785760715890879416947658998597607776914349504792192557012753371573338812649253270225855644981603973573791500531802172425412509773049708405939881035221972464247916916552801706657054877388543172046726390623058959123897300174843319017410117307156923003670172971662277580034236040340277847208448222381084758674542197669177961322571656887250851774926941947023332601318996395800312556132967010248747147481203601495559268938124868118951093103704591531285550457557284626394027928112951908875865717855748298133527374223470784719786333893071309693755488465399477383358684918104471008303657257191396969306050218239129613548654169279107399970861745514817094820412474459529559247946326548447303953461181421205511022323343263738649124469978198911653019515511764466822801595811589706504515921390752159403049039637995753048920902756612091302608609549216648682677953412191357541265678951175622011034403239709926181310236073285874024637531309824897513234815239778249667993379530295481272953468887344755845711989649959390294880512346653073539407773361283802250606407687890420433075552823589820665095058905860797554056777841827050115858216541439655821046361438315933180646614202363410761909314123330536267502369218791958553933662611526593415944360773737744623237365606753890134048536612008886442629947864717944775333580465179260918247437487925529949996634288348285026479195601247544445164036231779469019496382961743472269026870326524923285029010186195428803895080162669838761106359100620300595201303759456523237687041077268043808781956352468411161140001099480241299443523809732495056371723106525064991827314367608267889986709506531050139767005486532626819454142602377593984810718988504883546531472829082775631908967951780688209453817916460517715423743158214134771882712611952102805023823682575774720017574586714738802352533014824771633644667948337628094093651054927484930443180290682836221532019889978417991599707885025847723452523755922777880860179104400796065798454239108649084595224502634979370510053947786291151870992491339358378985562982821841134003701725868422066080717367324559270443834968370624475142431471685410590261222934783906766270192813215090682797980375302668050820839698817361935995621503971256692785802971520580262584073373565600168783105102415401425328206932868393161899466326487222364131178940061867459382146696853038539492110970834218563902088995381789840788010276512280781739343567494821014051261541606687039831210255024084411631605793604417411979513374918472645800164445809960977204627205218190001771674655003206281465304656273272043479290569258116427668619390035837773191572967909970540005954335540711483176945032639701941608636731550743540448135282986826422673196762278462650867874970817146898264308498068818530295040105549189825007135314783129162543565569230347304868834275949734754749304915748581932739082346413015122142793197277358244557131059947912047290087758235531748814199730316782923631219100418166160209087058640164687331063599705608369435417431232687720120812520487241390344654264222488983558047449538243371876938397740361770113856586356458679801295606011443238001124686345827679847863041332227726639001697149478720953193651052133135094770061792745403285670443411879912742665780255794362003991626084429140220968870251412766312431652789491787278682516763029116370632406570631589233353391556435667910279132454442604875564260370999683098711663778403371192543135731548427159567972964960912517859934574537646962216336476311564086915056132157723008903211767181110931684359119797462993593368867232937414676666678794726812280760236425711753326590923940902961508169330339431119589525106468201314727034078587075698465111831285294444795502978484664075242395396077990670456568041988941300942323174015783178779311898887322898409621747331499326316986401737789360275093746806099249780693794612117150224099757688874219874115124970770371139565406413557311127599378535919666229573535249872667787755702499725682556134461102711690273744942943638684250001764615973662746534934376378564952641090370269670970003003181559705276539505888507436063570990980169185656796813164167984904281565101991175660560545205870984685195091960087713236102996670639464783417426765301866419946401450795048900297173388452971163230990221718457381716707476851602111531328463189591677424174170949163601943239460340341584447100579731291510980389038244855030291560931548328396412422986960002447594103994577496908424940171012058594600905078118189772857365231967903527844092550506709275214790939332828160736549028401831180333435093050804035549362496667388307974211572157518982948330354613056633524970663135153104233262717422893814363288244855712241591802944675607921959397038356349941826201869573312209149662137585779373856114152452356147836194930925490016193125045398800662869503888944246306127779252650404768655864921710721058124354416088883022035594754436224327172163586854844555953948508296888719424140651415439927480920108994488605594122623480595773779294076751087783760394746579595611541812521064130440992306801900515799220460602918756732461227652588964866972027994550347566708403428350697898131190501210263662937840069608088590723839621038136057605536533061606396810584141284440761116843995835501661945884559576318312136842923394783405916893336954417955854187598049712388866218004721835637429521296725282667515727129881837570021362183379712741814335422620429442598331238865273376415253958143750821350887022580869156077691236700235034609652643388138401282821631796262618985452848540039892509790930807159684559468427334173797293946654617737322244142448431619637264344373046222984945318193567047898559597910220048259571378374250447848988208642471498337768734815905720999339600094677577578549197312578406987926880147547768365990557419112661686045811669217778223767965231590786249664960972178022492109748481223792579636435566703048356472682704001561889637129456872859721717826321191951553893383745971603379679651128247733367470176844560768896089359628328904700813243296849287581164951658523463808858497011782519576243952177655168842307087718957598461612002755764966783569111413424793350370369224128324898692606361272691872086352030592055354388226374071607725614758796953072395711546264263843430081685719586235234678511233066333167300136723448267841452949943863589399812212370089191169587723508360993344524949867082712388602685753623732941182366617841077587596587866424462701017571863100225483747718843030493350341411044121173915359618131417992175944282026978068218246581135384233384559728674277149417795607542619091544824470376761251573735877142981223727887970020650989718156662337843812741224552029479849261593227335713668111884797475797408652692319577786261359046084792670650399264433825513452430096951147744546058297370264424828570105109013713291035546757754311410319079467263385218855958075004274870592783516446422897988631899953693360387864592483636358646829081510151687466820335550102407501260211188186716681688821459178227989800167619415975765461775884385029176082416170124607395687941672390683735819919273398511694806197090363239171855659751065527589562389935860059271159604935582369714892532909154540065423247573265890532524751233665947488934550094511439640459745873990201242109280750363861089931427184956788877723300494179063707480257316442332515605782493760485785137655175416240666449928230763884666984214472458964305753566795186747948904925951541081505713218169891214248811142158652839100851668170280111046975520757559814343827259140049683796987523136518666710771373136261341654501240654883254488633179051639590197722250590100566064439138454068119164644738280285242843155857807579864280172817400539700278235606652098294285320445663102034157913423013206114021898572840714741017299304324201438534277996180354453163464232373296864644734363627266367432585029803448453735944351220561371464620888489780665607468161186578985648259651377820971738270879863400875648892886756613327728698313021426561856271635632040732581559994468339825327134900043013916732495165042763152075962845649491643993007252205992114106051187898353192507973103779204434973264293836285241392054658509425536339913061175908813348277879710124483903379724693568219994335773779661582161439757185393562196394796273000082623330767896472292494970093576550675312622907883475456329284887873905947108204271663914742212231500463675125426568536538213509748402173301395453843312224586595513188845075852931303554346589065411180149712093568023251352865704847026768758348990697576767162688961978335408217032270043508803535678295231234215959550389476988474854144423852939455586677361122561601368267866322779964944079271414791199755239038824953039878931135506951804626070531669341099433655291392816969466664344435474577959790732364383517476613147373365864906129412977695239605512642789514551006516107281230250837876526140908587008499014176353174328198438031611054025737141022207690726600205630893381829578114870516625403430271392530016380809970367988851761543720818891312887477292232198073213494513977565926963775781641829974754265639576030989350208389411178328008026777787926534977935590155146394083388446110115771976078562400548519995719050162871501334617216885588296377739415052126664836345769278654898031610281867173213468764786573520265258546866642012650938567650680598551454851677887763259861650258019090575560115101828262599409191228793717777936677083727261581738551787305043583685168774403467696836821764021777455627190177933364301868866932872265026942028992369778716447101226589922962528867017584393233453101671693297811728503433376437740159844654588067429589657755564499591758951988640994310551857275692515918422242769411812473315545746512941422322459492994085290728610787404612249594898900174906825142728667645460798153441731273577688251751193613951775115280700863647440510156172294343283280428221303856341515649381124369584240991520244507666236940808773872749841741057755807952273641634037392924586251332920778502259504123382339499348607803042915646100535819538483759646518385629178676779673430743410506003700857432676359356093869778717501724236373299662819879154148579887446721265510338657163425870807263191235016692052964523399392480872512324801615003131657755771284484191013232497165882769293180277212775987110335290123343102417111417991645884196139887998955250273710257010636312660919915026794659757506268434681704072372854256650034726713086331795312840773162656453117599740297531100430701281750731914273590012275867707240617788990986685434451892928109977832411272918249267309922034454405117004396212361708569065666608087732430026648849244736603101394074379457040508995503390895423636707987289688235091291698159959006500696362961697090182282514012913203788941036723601217354259412435639881666330980442263666593688321964297843214642540824711970529608131999698067914802110907486243702508742258553457801496451651042962112394961476653070390346805955193271490915573720894794988755804139389049880288682582910592660237422280137620873561300054009924727609356847616174563887217946896617073429429203961983044519978115304863505941592508235502000886911547749135083765769969886093038198203781943405606505072053184816061466165747494402087292393030715573064305369834975972061218655218687705303617361496792041577960707662220719957492144267888347242190386658854304761735709011826738001275609352851387601130224510723015712282956512567906596200189771394146212889054008038102116514541732466993289176767678043273579283118359116246928067266274681064180598916590790021620090309682124764494316260070507893209118245808283244541708493273867153236841572778178455916722914098697414818984161918405714185793021090750879877721283996817227899081079467777737059755569959862654974536714198967307991732409215873650280407253094772015885185963578616464174818533046650329029807099822776065871697109677821376962302182130220790464004823051184887189549942346713014922232337212320110251349609155201852702142942989604538815850621055785024558962469463600663890364285573329914486704312752991559501136263946785357756559463590811282668872007195224664050032869685304969129864861460992679113228915269819646571933609619364541183294468058033771023879763074586024647228993786749009258190194033188791179295624050862630678099423779478590052034801164787963135290735610951278870746751638952279448615793739249269112912408682211164995445119849644586133534832008185425493574894878466885224064799637435541511094415807000866804893226135284483703015129336596615763268593747667743791864118836475633767250675056214215420524444141057427298501921627667884990999177901840151433259725876129798770482232014168066818392832332421273100062927061991777789929313370691994463436231594888453579017405060376057889161236269533696932694971470703485067344892389344057399332153419060876949551593252864961510653877258273703513776248901238800213541309022277781059755467404380485171270254783842606859614968351258654086608728835728525797824784712218083603162327329132624638392509154054079518028477943251966125509441629125411001998846480139398457672749912205387812743859924836460059418132460472869792036791110746107940082026367644842578725571438122648187890787386003579735526156309265219658800584965340953359485354654211193730525160545705211811628209723054348973769177353818392903889641772159942848070818484755602264854876957024294193933596651465100159120124463778486160821999016370046879494645980041393700741271796429295325054948763025640361623466342516252800156152635454733115236110259552450108735902357340300623638972903147892710025891701289844878529011181101389598678680044277969414199901260204705985437590203778031972901791900530398784115658767482272734005419765766152411183007518025910727402418036824886358975004210098437070411265908938512480950099454065410818395569036471320446717666915055459699300911324105941884862121801917435810191244889027112679941651096742170808283813534822365499894046733617863056545373446485818432104913991933527486753663489190128081826258949035960160266195516647633885369679648087977540930017702692508726898614429381856361105500098021153173763947300055221433359247413974072980758493932933204453418323539921850353987603841547136731540359705736467021074917651382134858127287266742845915096359742959254462345081077340917603611862000211373384942927241889329277503512051219790671789783050900370631200936213026153947742071150673806183795900987844279990427588943483517046805541443685984651473300641482487520947378707487097439198345992843618068385238853682475723373076483890641671168256594829662413541875613833231152076114342158159058071061395179298787885966927426814591537009689746878670499513368813385366160391635775308057287325375574978983141994817087449371090395292051829374562759509595262026531782312153678140520332364113085182116038592682232288736467504519782519594563808613214025995314514576478576681385347925055386596441577905621319072734615711120188442576158450056072080807603964786413470825812867196465633699936496862170118286356745707916956488055201196165588705700691044169702936608800984829376291369869621481820062149481526344816588875452131100511903220217732008708423727745887860315171030784098186860264319091358969747742196820131549624274849924726863623950908663202221336137203694803279794513021223100505701335377510235497390819408995832964389325200426392750117807155349422247493011498843439716187102050710773753712746262626062462423365608881286638130809311256903361075685549834425826503791966187190767264099166094860618211931025371892397058712111985753715113025726709284007121479033029678506097119828694781385404037168223950801783975228750694685557827472697096838691580586471779263147902879630614035964642571559893328600945044361917251875278062935254224589630774302313735613469357236098598246701809799727093487743021098353562356969955946113342480563613327890192737108159240851414822398713132781651396484963297947747555603363252521996176178638297901820885529678409241552412201221660354578083439701435128109936424983801756614683382285317334300917781077382829954597910165613875715936426264467984292066436357030268933557470531850824890001622799096043990786047502418894853462084091977345752073185895190720984320671677071374169758437061442978725023369422154825673599547744718360056829029743427127873204041179095932413411255610427036746978322078671774417498357184434555464021108196943767721180988302406614479540394941415193159722029157760168902979393956555474299784750035046350278108093478145432745587519303963818909267706965076272307709331093569716872420734804557392170233428807552954746633048479562163069754686462162413097377854267971911331163235668780446959857451983526555123762779973881285620746852686186260175564012337795112666429279779663768434160190182851201752973186826449801537101677909371785148136209120240720254289860096238837582322743481567074333259338936377709019991709866591083450180644540227250273544700067531116406468767798821331577982314573657166721447243002914516030011439510765090090224002979578798325442103794195121997954401052888474288829313392592301599830369429713567551128400750844138773429754487587798660901534610557082942579078037711694346417659292047133081621430481039191158222963106460312858876165289594084794830639372739346819289837157534941595708258904712020180890220268072045227297172899526348613013294625714965430508279728136556307218562935664209929927349382469079521231544319256165526898196591781278348371763955984236970102931616449483827300920539510642707496906539386707153339477167624010478150691849971014967970114298300722816573849373155612935854801004507986356612454785026364716726183195149850873430899267777773822115101939994377706305520684528764645470916414749618337026895767704017822656297434369254399884040706058163233628824569432997514019016611560889862566624117450403478579767753192676395076597595219670650471905531882670687960439704130349109480195391844962453913275162484748321140106569753251816992552910532959165838676994520878002684775323104828012991802185715474246702670749900266377803055073779850695091385765363478983668533360995969742532598757407113314320882129324998318204897576613540475184172052602548547045507030664757515885822083886457360395782959711290572354889943318062725313487318518908083403660611733558290724464027922842814188606756879830555782066982646449267131859539616367938657114416763778025058200333534842619374296291530903405179750574592146591132642817537985005929092938056096390946361333306974921173292245699243616793833993807801062816797677344991388164333117115392944098054932040898159074591268690208659817433267639804528405171682329067311922676869253675521902018031012143849107559537631688239477971122251696924463968881413751997763143379740975687095280074506331445290096632271946205471803474236955803170023456458744292102955757050178057068059755868279597524820971493473519656337380850172870101822577618535323478891907012576281790029091814121439946865300983500402929169768013997453034293875131380739557715431769224722821942195316288856262122536963399520501561297022919870513538858233504222534524512803148100643103890497317070606922411464775220263545154159380772946449205518223143511394924503475383918493192505303464676056177144739574031509775105706942918131294790664591442660010903486645296512307055389614595580191475643495119519653550724908963040007486368990731400814857347178973697689462634722501219610891334077137273836982290843201389742679529690898409379914166335604117367876136298531950009985307022755461094959784099669361037566486959235365813541694459782998620614103160378715184366564847876955053728732810411221503776761032057280189249991897576667659818815370491512856032033485020593324885699166966225909260917192666247428330304118870802794070818038786303236165517019471109091054305380151714356181799718601823576602007623457831241899078760869581034057191241352934629219191314199390327385075903072482842863838407746138257238056436426661085757042235785252915744470531846278477916967534831750646983023968780248131846444080742437434271713427839368099098716477832232652582247122745007144277914353671490331083613201655523475855903200069555296606013716745084018954039565378043609630942939631895020871103082326018283628014620428881934786199449538708763901942165537433323837139489014691239200510056788367223486764592550546516828473480947977331247086740019041875204364474391498560327621970670007477931545845460113866985786673890223784870346477262097613520701937304269696992559106698720900492998135166458868505054236075976239475963986173766737371889782442968338404521133424410398783615976765616422431597574520977359011406065023705831491868938530033618222586704399427740192249980304684377935779333190031511624229340354721134878243820187814599613514086185186151157152248097476543037668358825266060549660639942949550555942618702398686933256068487572122693132156276059119322950689835559305915952357715989364252132142790185458238459130770480735933065417076683079760803278831758343212880546883317048767015855984989857694590273994932676788636590668190658989283608641016196582782947376306195549264200500637750732262768231495395315801996417262143189178445529472471684155329394830999057049722318162202244513874710979443367992563288906954775990433072790526936331474756408088047473538602836524808233267765427609545565459578996561118015588550309097964924200350142908129361023403656283955940869641995373336477865728321677640645825670982724415228655083091086184494252659861490632241521930714817435194118918221737638134697072059428836288229962675429433944196592650186875624870085635792737613093698184115264912714524514555107348658735047811161864734819793912803915120715656468976737563156070219169479827186427940952190485520568681819236688545584950398695419937918581055563263835943013166901346849536236307855199500740836584243792229616399650602660618821185479429075146617725090133705685070001909685531657858975963579425621063187383809071652307373874766718069954679359250891176252828408951579468310941339490553421333923119611152543152150440481573356390978497355521865138528237616628361985373983173809733255914031841460709176076824669284370826293950057821067333306551755066126562189977955073500939571695696601578568827852260363562526456697889729537876019038684368114563298231245192910252783801310304471599172091447656288795315464770558853596476962110050232635040560472072204121659229920895824465140383393593159745627810753792311847699610389994025356554571810535290377349271187034837773553057202644453984266409927099553799670036245704981489982746737552280320182458892017919386505743407384840963660333165549750202861938752342575204010572631985709550057599629516402896956169006903358313602331195120799542587828446759859274750365777105908650934917515136735120193510274211451506101589849150363708151392059109922534618610357893183039583838768364390691972954309927142883031808852257321369960192219054630054656117673685459340163393056920341236391493546159868429386458269615856907829599704562864540859769429515026030948429187274359096829999260861701705488891108441417646516711116066272576633520940003827058973580379302437808932873245871605242819705243729845319778199548737479346766712734200987291137852630787968112760443744917459894484117559341074795678062111442865641755022044776270061751005602042633238882143122639080815181199181893451977766142777219976027929540300475056774196963679232216975886742689719315292318104297159437293801168166947959177110938988064212143259647543513851252494642022670608073891158831247142521612543678123901871477867889882509984626348246668680833979027889528092608125662851212729512506926621349887661249741143753584283287938087960381010369830524552945062619325893158555721741440257109184387864933968290780847069841106706616027332455461313551124598786119113861933517907997615000511745209966510019594637197478468951297976463520155413036066805341947262967225896546202263304760774636549302631032370157566639303383467116815118687001148786404221158385476393301855469640529908569961176275865296334026946919213504086294165880253936273808084165994040134132376590235708828844836634817481166482376187854428786204566588737540791167301296204004679632297864695997258591302692135711082479692247565753184784879238850079669547803248539565372436829619894299974301994841206982785923449538916708957191498675721931047090014464346710321664552843729466115476993919043504906680063650107107498515188376277746395568508126223695452598204946769744347632896878247534687382274100763255291507903068932410043171722718494282123973620931045189215640497842850000411435633386834452907584661549554363153532278595312039897461327400767417914029443522408010258751721714579636470642689677576158051386225982802381379500807550495656294322975762442085269162124339155700958605188505176934752443571968013931516166394258065501318471171163723869178239668207651089967960465360763859375026453512286239915961242674811007860039337470276876108065059569922903239140900322811495724965050449734268990229969620816647894683083551865694268584197609927945158894707255999322515318866176774122007979448983481956603350837219162568332883337466810661664255499704020489769651461772266531492334436970285861440584986010169392269148743452893686947167733980635312335506098019564980384832129802898404204355325682839340617456478444983590661823400862424876941179484419797039928760910981249561921959932216691344904542455589430315885437180809932114144315451294889991647313104737772089359472856350701407287895125460806866278648482081050551496665985688304192143391221156133270672483188155807679314605541944320971707441886687025925906850128174058904914898608738913377311702352832503493157805100385552020625222260240712876134431098293649307576726800850834685664517535026939932744299438586892333665752152655137716634874032984675441373566127029764087597144133893069625973647657188669541440211556517581883438724999314268393855533551399209087151036907403651114987665280094192202137616501288548250257501425316774177698915793275336794093362653609372194170173299722961039743212197917462873891709629159232393605011364289107010140385495786800534046015166756271729046794025772264462646139453014594726712621265530751713044429474487531353471483994235939165945604184469135900130559964588516977199632619312438405981634708851213920836387524009468181369111852101776586785836146868059190324449462599926414090206935093555803146208795177813812232016750866050810549050828443566633617695623567155710485104012619563079798031788867150798368110740831874898830806849174270002968440535684588381510329466948760989471100925493978405301422631996115666402678991815420450518704989172088146533155758593478017969862570386900914527238349549094894546861607440221594154951276234851649501614538705585283276907606164584085617548904634019042701740659724018207357726342787137364726714442052020848559382718249719833950993701372216908426005294630556759997277531864227831298593562697990481617466778141584590949053424385090116933322677961601429659043114176333291177216519782993374300478982053055073654123028219082543648267997263223962261545867424724095135757461092244029424269768182463508298580873788996112308736213583754134736799989166174026089721827878990453276453763405492777636896575224266265884543892592931169377487019320901324049193844804065595916241037644451292119011426686939473426484298927848675915144903507763307522769982639568647206260964486100689253472369801227081774403836120242664882337402603346062787853643571031977990725360400210970467672042012169971840016025888219266200492893534184885508523193598425743398060148738504820516378230906704814514965904620641890845421333316055648905061421240585354852111085627816877920319912542454846731282492397198143031114897065879568626199069094746295560054816964575656733458038448832699642553584968573136734130805565265103090703816875461952675647613808443472448506411908724005231178902118415975043687560926624178707509025606381641562364249813563709549817112773481579452431678644204726145123396792288560872472711841442111893417599263371125617099835271886138937189673067098742801597422627775127909362908089450862527947071936308998290410612089299305563458082741688369581769639593886342969534929930576882631125978785918603157400121013252118384146523772419506415615670679679823567296095977291398763153198522129697500658289725113606164460427142048591186859315789765521247292138035497528548895833446326679937517352484301079870816076208619209833394602321092855358360571524471839011532385775540004794346297612763559749136773768031901832546030083884679772594758879909773229577478849052314447836675764778200030584104822157228669057144532187955284007200061038307041796577434759844838177534447660833556423275416934658115218781399550284884924903178460010089027078193163013161394693758364093621565007347888988543704066593348155951712598887005828900890746908812037209830963675102151366504077773955471073645319995984373637116617680085660181593847444505883983890873769531113109324666871896336983596674453155321150981496794189064552725268555790099002220883283253676100413373909944979530951090627035628276289975290258807109641418363167513134255416509183771540715711296699870096505382273077020474751142562555037453107835640266678638315988708662713319304156477165585279830151622572924534787333409404802004662438418173134014307942427516710254801301034908758482241877940577501676221445565387826054513870382781888368386498660997377424160345799347011433450183894797161179815779561954130785949803385281875192109902806108255884894173629755764701299731477400176349279254988593351847912270176302778744373785387288084760325466286062725766650568857538757370687418879936869543179900281941478920706279739701713835275628580975227230602051084025983325209055076139541867409751542209595003300848236572896201998732309262630805472670208996427071707840899240365418230328331518083036578788386626290804815120623326985977054908776757450131251978177250822086859720060492728177370149541326548857736111043382561855502833460240800901358341029907455351198185988381502680325186512451391020518358282369761497044383702335126460883138916025290573989736934538221422671532537047568818174559402663698641562965712472186931329069543712119012885137222065667979266852121358078497512189222110488774806190969313762884446995566004222947004003916594575271066247851943976518309484860178799416003295090354656075018726626393240965778372165699544522147827550369390791361927281445813528727524899662990112846040914287125236787275535668889573772485624141548133302456800091341723893670398843272380549876909820692906271318498056628004784813417916904880527505062879335542300131298339428986134513591530073056319249004426862668753194750888243224700351623621867039254176292649314709860707851521249166006960438415753594687078478264373450597402767326301324354263465517863491327730331173777468921597926412131012671421085588303234621520660270921892919008544589151097458703489925652648907908833713615070848086085497249666111636415119526345140246177627066878037099294842967621432740780481773398305999933967269354951174365762271205867934632430786866526591767701556050770542455772337180572743511691912170223039357416969847283858587456758846478354688451829940085449153052663115653342798741306030292426876651339583387992836687079910191476028117068767665878413668163591301390511011401456842307409472196401991026828313549911311348825174943790270380139851629900264118602853421667860939871687922743718941507561340228864060248872552039693376190469916571442019803451353877687186962772130124803131104328239588765188829049187489164143186142149769577642118273360970323787479922714238577022971066946935336829284942206039633971101808906879002292627448910046232296926812419301425104016019578653935715694024161849348059655042935292763333546251541298328075619996517504828487488831842089003659991621028500084616548727731543097703327577469748697293925142096824663366909845052718214672135186159106421690389415424173875344701518213016060963663498203172429504719161518207068246294900173330258179554980572523585798134384506077324363713320882858700356466528295383270599639650879010125112976550756780438964534596571564531802449035357530961263878416365621184989355967190501282740384907357645649319085620651577876107230891484552696034972721277316389663380093809497234213713177185888860910886227991194151743195165254955717666706147326306729793272117352206709810038167559742482273841445598124353495408750694008119322431769291896172444224763318061083662221234814136784431249224942081057268241092369163880441932483407754459729324263629814641738565643220137512146314154266878240154365420207747553802933448395694797250136797869060417640085443885960008736676219501104677744932498227272930020308277005244851175566108938918373407220032149453083549136463167301442277774881949402818868810930895288405718550611938979505125583913218005359584355707223514881935254866408925585523624827488646184101402025559469343762084637296839742420947882377294475671213507291757680916065800869237809064697190885925218389999354321228192350190364816473113299672989693853823262277203673548354292556930365193704875782965530238931292184561186127532207901690090872692391062843415872181400246211020315621185084330214022859127906920556379060377245585436388490670954264990936587688933473659620093126570969351588285633025514288333761063276724981782204353281860000489212157768498081699029241400487422209934975737621354027811080740766802108916211149295052411207888109685785354084921354113042292719541059100516511742137752018521398958094757432525873407648638450853559222773389500497303915466500405021542726820681405690323994536826520260484899133004884604013021042981882760358429329265192307912403038395010956710635977560119515878802360548929913126698188634037437832259862182316480353375955657320286680997956236168105796449331387770567699426018430637654223478446347003867141662951847066098267415100291906123007990140029248864725448543846611974958609291887835314219567288207431074167596375196472311895014376863628910784442798815466435712292782117516592703720414253665457288859313181546943043335815547352738703203512576255942523702865808407805900457291077513368721204583082736390772480388620859464202240962504319825875886719993763266810948221632610710338480955950696324672934392395981085910941356742379674007316959328894576665998845204513949679868749178175394665453805684671982840923181506774353644259137370106234292954170037179591396564171400050293346617422555696067229000054489330848814438266578030012409191244671330964366865998856199660085098158294729062717513630412188998329990584960149418209705920471800263515235794390931186227324372982152335281775422078667501933782350035231538767643624330217677864216518766194701928793453483874005109747951435504781793842695763722026673333765322735737451714233798075697236907764328831979824450284492892983846035846681439902677173620830727011158743972924704472013118001397368476255524969074443366317694150370852251124539935013705876367940603633101069768552202680082114042384464067920503494152082088305635242594159349979855085185296549735134357372385369877026116195946526559764047985187997523595479233275830439235173412942807158904047069460914133319135233014010667966867657346510993698461265665685442064393707020157105695508965019771399818609383577807006510151766482158445635261084114522660161454364936092605431086655481214623737092638538099366284687037559068777228687285826669832764042897795257657325631930759971911658887299063050316846115976932495505350105024284206260091464464748426168361645422512035918781990427068298752446322030225768953889838891462563827161849129138908708715032005916532714873087832238355339758566867935687250670767870407375369941811285071325618072789391547503522495794392848516132147747144991239202437499906497136979124456545072071498542548599742032673036199952432122887996277512831485573118326889306850415986662092680243653632197210341253566610076052455967766792427415105334096408007606095117499803756356592297567903179069594448887562040761842177734048726383946065982356901939618353208941645209401528351973280652824165811974906889889975674372804563025655584453327073827693866571237676072359697011532455979855456193026779820308616680692232481563246313315652558206254748792924054556738951107105553149985243074164115536244240689637194387691012235742838485119978947717746129301052493260113256788562133535910706064496683844122549760831243403258679730268220434201531234294198059971202195699636781317147329719339906296186519879535470322065148708043432885579936965031707534102898533600432118605648222131555253039747757360520751670209004221884765195097239693695868950077511879427526243975966242091709444722358673043937153816158034678007013236831951023468339788118135483932882685853301385699290874231872117931175383077556507097435237825926001348294681140544035008199841493078262770205742115836846885321361854122422093534630197364804828317881423918668937509848697949294797303735460202668523485217873769109535349744854124280893532623421244104035828627767636255462881082742824829475815938765425520339749803689148866077766739538275871883669051033198350292092454529051722561404389607910965023214603579220477739482627542164459186218650971638678193084173627904710969048643410072934592524133261260519694535839530407667111665231027964254220342306439705866496815207582207909904288307353777313432635639336459511640330444356441430389350798967988736939636053564781596981824230805008291433295219093351033794237976193841574845696563719695134327214499476264621676624428028972700616297320646885214707631133450464357282130896989080114660282848274573328767480848362046504890189264406090599681136966377022601866074873969965602457027131393045219092427720227849931252246886990647940407498356318873857790266707141445567808343272845616518389392428353599772332632104475462073675654657431710735244437198224897428885797883748433126496315112349250811174982202005032790359933940764761597671021835126447466733434730623194232767786391390100089186876950300990186885154365944518994042898383746207265419864411407516152804814623236267636498862359925240943926117280102345408111827127270985439333640520875778636762560768272753184500110695824999679937340094791465474471775617401849463107601687034446413000153112715815206555850436189762086024810473993162405290120400548966923387745075094664367981124081554672729148009547478115145958888877727548445056653566036484760455460360930000844772716664926104207406973454070262121529746815320999375014061443366665074304881390135631065994889374429057333931355816750615393503027723335273623087148940497688958981268874602644651074148747885517504909153781816669947264574852267045517810257023518327713838323060744896601293445864268375391664941316525725285784363129497074748182087312467714196016973534451630726232184092840616314632100513571138919389274596177707668412608373118250943194961614815740989974053712675219400122951220071976002308231261848397055682785700931626749099636447324041615632204578469191530181804311443978772707231996530095387774829125289569936977145809707047384211868931871376015705295627225073000008253877805593182370600690512379040399810874775507354811714107043686863849707230145563661500682259652301332792076026470044056413970410545140998215096414581769127890173282941000611540079858789269795982712686584031853481839768521168462741156010681430796330166506638870724683877294199940616727922856253003610666151584207070763422400732838030154284070827473895024290603577873103558935344547772528766658259085325120682485951725088717605915153442731970628585173065456601095168433865317775410225977596020853333810212874598716178780652879631347298502261961266908977893752500194077359445631623687700278428886143206508406924202299171190327760490223945193562090845159104315845746398302934668436746669723534516683540396285959766481037014692466532084924822690033807887143265319554113827613323562621045376706252881702672598014935321432362382491596264313680136988601596059489373055105942844020940885213119357148451974781076175458396680981264937023915349264545526327030939660292387715556634096839583138424045140579734787516026361088387532347409951612570171322895511877243049974007282782999210335794300637388639831783765933723454459424533692452066939585026123974599048725991360088588367051426940611336317489072260743427826199849395736720356322018603347975438461062765827231026265269074143312163552914735324876233283346306168348740553481913164972335078684299417646089084876312475351146237201971072368861521761225662149887850946697206758048821569221451124146501869068441260007176497676333004134343364022531944034462147564133882309174636949947680252908548272197139978154030060359991297221678491046842274617550062693183898992065876703634641858192746619347467375308757540212187039787432098981403323018443148966869990733615092620618137221051921894766122500803445036907195947068190344025258887094331370909188581318491060977315192015524817798925884262426514422062826470987302215908736020643503496585391524279732994676425508269540184497780283576931305779129224043866281111316923961100513440484510712381095900730752403296813940946995448992616719075068920222172388935256733357346289118234771018714085636426158215200928853604180666429191873568935052351939239701539578107014171921760153676471702727635843220771030762496227891719061160179569254403416720378980373583302539038735655650102483307689910664898242642884374631524847651686745235856205047123209980072364969407059688060037607183310778756762883328028612280722525974081458774225590454852888152154028902193345096198587590765716865003896732538003197557900651863287913932305835156257254528919045366478789826694819792125712426590275518419880721756577942637342710555214355588144090986896091505641165761245442623714736738566139897842153861744354180275321933657163851256537476203003291367023753044234845206374522646656825766241737921801450850202829733086513965629239620315614269118956080057375023604603680909481657829382826972007902936240590150980314052643476210904350288847747165680819760371438673635647515800311403865579713512892561923497010125674119455057804258967851044562996821179204597002855228421502186889964485103554127556375801878742964071135574642096988993700809755617986468293922260904295129948032347289104545252983241661904981509191587058066873553870346399151176661331454583437112239730498570797456822694677995018584670914254907933191292712525730372521185330536351032996283636734655240294861108437255309601559202033536615580681908583789641289318162338425121539505470529865086370398727131592927546405334651312859619054801100799188989471275037134091720461526062856953236857803122351062340540676864206197081616239484583927010665407596565350361445518703100549462950587081588344492525643149548029680569526952010131686481470336974277516354751204977355300919579626333027698719617599265046877563665118237112844621187452834250023849768313259914366737610554372917252413202611220845780449496127904614399436116813122612240885494558032287018036655476566007603481095516312481973422302341289954280557788180178961139658766652461241549525902287338271760600581853267306915090433906774451851519500386568681735196649408190377584288197573485937530520199800533142921885952297968089554120129285233150197653969415039256506197782548570023728158809531934971670401691643718170248254780212970037061783821007932830129928284075914793256460803495339798782300294148238834244927928278689958323809127850981215596523887942768945979453690035000491641987194704263702771470036543675591163837808358603875395756945116152649179227403628676353262931808755037486223047539096551586143402838686173156659744820677732735937035244752263043569599061428297142212197363079399247464846314158127952323142525053120471496019137013765109419943192655493828288192470548700973984699493400495458047127618520930825399894192322852712352566872818539534059412182859322224963159070785167919532566112763406167649258471054302075646009366569025167743621928320963542830373832792263746350892186659692167805599473256204832407519931755823231601390551070908578960084132952954558485315897552589274872775352573497107869868343275899417074785041236583712487105962127728648059362101246823441814263562163879140991159571954615220326123425900959344769619367403392887281343833701333798501827059116136853616349292996678913367921606807655191621208683931472733398959769254478876290427813103285899074414118472846807511687462579622732828021252178537908303348277241767975543378863740160300373004748663541291599971153933860500864308011119788932408583022674830790833693973161891811551360879432280565371465354821979927769508414010744797709275335653911636213758722381536578253714662256201169049605839306374269335208846039949953241416721987760834975865458966284055828289683384133199307564419582048610592615129490345851509978492859373164455619813566576143437161025060102865759957319202664415923062417366817779783093793896785026320567922173375887383583626951473623452167436546816631134337747159963568038042842535573025993588166214824298599255086022463108984796172701019921996056162651294549616636937737869538970973744578358339530493290384434738448154726848163759243096074038512554560497622997038870829267239796124917947826674575214269870177769140432782442906676597968711720184754137678449037244589482194958802400016510676135315309570151341217195969712961251616388506304175032110575432731721866328307478102803715888740486092367192928597004155196487376137105251477575572697106041857242011192077474594676602252623566419037905517215305705015602792961267862747801769533300733640383688671384275890951928528525521185639450456982297956620450924733419866461218086494550114016542204147284059851831267137888661240137420930093734217374885126093561753488178511919342173149154071675935257329191284800519267494601520304824420734776267151752247735758979004830679109950105743343751056617116644158353037579928917360525569042678880109149135581934463087494032406550037276322740363737215033021920696817343443760032013165821676651506507647754537166310681381167370424816306667251684023741824247889588308511936617198489550482669182959598331789721059107563763471024347569243938983369270525192199896137111141039373439516465139895681187485459969719699040100948918711648943867451955718279327054096970302946455492688433064365139807167511844279277403352462302126196199625517505820675135191797699282731524715219350095209514086765992684191048371001209848651752830725334006255709608505564771472599740839703573150176257369391922659138060513623344743440364577216361268431600146822171680990467287948266372586863265950355509605231124463142927231222259117196672481349686997853047913130865042550764180479890289825331730132389464668536081013134295998712738287714260145427673722321264840207366252547765822235216534829024554756803324781185177784119923521715289707179046130862358591479840106226588878914624253088956956009823721444540777498332764285155949658498035974563895922418729329891442191120247182581794600628094796025386619319030733223954367744210402200785325317552123829040360192476867863335898322938690356848622269075066488623564171670742042405880686125122225966713625461921110938857160489151286981904374566508501853468771067412918804853256565612123498330439440453767173640047365797290553800456160376143505390120155097795984007994709671367024807170958158578001102035091046326256114277276289420539089203423546546021670890982793152997328643681702084676131956500298822619197453054096793117161721964364831033577927125474745752154492288655884470320115219288515760761500739407699569568331536301283644907835324499564826637985641629368883522523416600725533738651866218187715887191801280053354733499301644243826057026691177634728507698513312866359342068065418879255994272253605532571246305279953367374800751395802485004417809212018378306330640325576948723678810598445256475200059930127222472742284954132788204762907504829295818512523662521220285257020696637687638559159240860995127397995790470844724789232985753343767069111775442155805524478961583263026666923014633445644717639714777580504759351746603253289315428130689449738968635399378276980230549040032031292550038979948821822938895950037759002361229525818890429818173241924521566821859117126512939962571622011388432093704277167996183498793752604033340696758171255197801751021840892749512784711758384600306481822785431345080699097461460439192802049419624437624974165470702492391902239516562989227429084937196302403245942284009230859810572567169541652826424247936626057819957529145055422942349581121174233990979665598409685571037259889379924494823066954768236280233849339702687034299324704459631636725180145392544685877005218828729457758553647021965599073366604330637294843010171328360872327063892927343496532359076784146382159018857267219016945275159183517085200023508542261979531542021932531719015514563697142549612704558520678786940009110040329159387210795572043588743918542102511351607792023383991343138648169913859523021639900876006531528218313776780636295884232530730435058033263097460025524535597922182191512195407338516513930906787352289506429014944629467682652574024068779996526848412554607265449248966699107666679355312101817722610604034819084020778836555227426113085684615723430567431066631906909566573728943458940837343575340483386636623337873597041121402809986953159450285716599912117470338213458153609551528174080734383675383298539458953371989425411175500536402534198161464881605337702814543031276662368731229250436629273360103287983782873471684773417292667941456252191515829527964371928924539566890286814711396183963475178499401189589026090909791232028754535508303472395106877949511872645396533693859363801891071541407599324198089965491970360199426466902927383316751377595889264408976655092681044197418646829443518862968974457264516376652873378732045724941600460182522033140993831575945241793960438232362080387678760912500700236381575847146795852091267081229362104730188683092704219275698620333620879386157800354385245134253935572947622159869935846806223402474487863507117616062775881838307507694743788472249678999759200708588237432292433340701687207264451786264394864108784169070200193876514044189076722948061097966654011250097007911732013072633650968035757100491604345181918965279897845649248740864174264184569441046964260680836838464129626205030928323888503620194687809585571010055309027176866366789363551695440915285608467502909732444820621437878172665411427624634973076280799874193967379601463517950709314532106257492273603513871921982331606291998289684984038122822608423749273067894314269416834893817869241657495190582858593836149382872484318737136497533614172986336369284010447091691891180233938983858896549036850793518993754048311650217306103996831261254784099359813462801985748753312042329838379694897868151474857925741230239662941678289159971377906983528488428512676895761445533153654468798266067245488446630994909318993869854387261338064327677731762270282749473917522119622373527008003250265614930967157549373536885596269997041705171138864464937867979300314105570267400505069814426033607252270310856520948207183468735657211035302050660861857506788237628958445688470684679627195264639683205699831445242319437165532356679400458719281036770805734752691264519041656601261579377857718729714287904148908577058612314970406673294723632925617990957969422362751979027035674431129412997579238710486993213571220046676095831914162463771237192083874953357000885366817478418211817938315070037411417915287746297502740347654076184828389903090415766678581028941350462713907022064977513251454443833475495065620634815991176309656396076583527270091317749929984071363421647151903556711074993145922121235460918121178859950769103441848298040937949351783467311982414951505637492952443151814699152290698592148249228394913169443463838833462812116048565790449723368481149067689679104287828127167390977843566934392191045681780924948901044109100861944715020769567784493090359171041972795849328292346309574960867278160622608245561870818035111218944869155040197680143578711582833701482672375582476861070037828689744649708269205288049103940469083870197139579568443479071138514870067970750503814422847026992990462911746172950726193498040963523758444787400138452388712691497378658085152244758044903323547297771944042664418014519130123842231464784537248040432217520120228301619640541658529809480283865113680877260409701923924014783276024949133340884346447614896820701759766717982401741431166774589526155062369667466388724543817022274833037678810777078249777059320168062366830632813214866402987720315388701907120999863295583262833424137131687178139247613223864257182173980439010557325264350088261649883251543457308581664462370600599297473971704527961465144450537359287638943577421839805490554553332179792252234662323659773473516584536546110807155128345377621497551489955978907864914687241045467434697046257989900338750109098362620648355757261288738033743512566778416606901213697511559656129674365230984008423669264772888253796453179912547288984486540804053252012514759677064552907811614668094731066466969142861923989502124349671307622468622093891674083458123872655161288852183039841867519558192151433176047402192416487681755799413759607962372425277883007018661344003602425764753223329573195258184079215414140571589833118893490413377672824996327427761971459669904357696986711964187179667497389937341721626110190740875427128895262529980774992435213874887228462866212729455412814178014709146008753337200988897577889631499039835919967265076358590948592162644180048247722482806329573677145025924822588048562272303591410062505461474629793468064578830420547711439608666991626585984383468102708602549805471420730672675235490902584162253804616827240986899858858273865622853326529700013166835472710276822143426098057552992004934919761718073396195693145411072281174515740515141225099653738282887779493282947499219023851396120653606164731833087075182568416037372392085103269535045360249325862449289261683790448940686785012047238906985806121985802910513698446784349229289124849471891364055949928574212220824503018949479154557062664476263024516414838745576495123769594758938788241883665475829524542479121660312064589471653770452653413322530436615969764418333451125299343256425610304747277816981825484215516124298732208715483370973769595477926139854762777682261425827970263451006824452213409173657078303828279325593674796340612229741232493115508622648708501571249101575475832870668266471834292519109435116074463672655879760719669522081342714671000560916120374488035152000282336607113700560821764506829051911519002963616364174286053602492689060144408950625605834678731646905479801689160194957870322321609282220120274316203468747136734538395996285739135110893113565596774036129241900418009635369179061489162244872973390874417482333561243205454181976710967078967327617158981044467248299662397229633822796135886305124362707926979895281449268452684130295048002776288631933898665345210906493248147474936224286067632970189948753082230099881543782662866239507008870031027283988250262491820320446143243876954431825068389451079109893572321493691342942802651505154990975959533622441126458820995371017289967259796906969993179211542877982273726695390706193971011598984041461281140111677137422106948578731663464282869222062821911198701436747950296102946252491398268200688749876765323357990429683662424427064112076966549754958946203646140969031722790399434398688750514609781012198294803628345408174191506561793890624854970883080508218903526205873749253507166344491736850427094609833301401995698068743872927001144835416183079048440477760620159875245554496939362787622226417999809009554906927951608509486255025691436226206103029383472164326047482763866560628540200457343602360320606152293471711744612765949646319159011532344876681285591019539118626243789814223523764185808600234447480621739764680199102783277521023695205800580255120858497148622694665693303324350426526995987345239702800991811635156089416257298213760168679771930446209335305890867926734411214690265861017799416715972723619559307979088008254411328558284084433590276348809906395043214309527960827945872919402894743307899783589474322815028275591216689188375257355747481235179602219668479968908900099773488969356837304812691139644630209017054083789697618380172728264476703329556139232221131240303486265366376711055788648758289606974440346947709612172237922064079464807667511204066373636064100343109005510108990166016923778297514678789169349365989231822201989744911742916873533906864810749433129081207936860478873541157826285083683938250943809963971636199211176088705716035497288767908145928465145350416152073699744239679052810942238363643547889923833853853935221277769334530830395054765155454565188599991578614706695398516448056108181066889640133484756892328226325855387059346524298340702267890177871203510080957641873894036143397278680440786332889920829377830823856909059341183763804787754262676968942117125364259552304768871689584044727805718904794792258377113013085362489843460655917845826634274667229056915561789993371592407730814157626643127518111976545289360897729072763394435656060673114375749239837429457138320441709488791622995995329356915496244396372092188045614557821806406245349763351560031155193357766118781137945588891285366737873172640134141060930792053305422715050482547438032884063421850895546786846245867233698440832149417268042658567032186993716116796741724247660006880810441838485204074717840084966985581991343149672879245194319425527055190424703654100254884773145830799950902146330712303620104826381630295142122267851732433822698523202385883377793044469989495450058505348702492057534065866883874989970771068720854955164121611211401919882553615078361089936632623859751584680519441525347500824911678054365716341483724269259708213998897033568427337542965674671982830012504737193366036734919148422629230253625101120335814361434565980648835427468066019689570071782242233128201781756677065974626668811041896490128282389594672683742060652930841874722899940158593957650185323975945957279015332574325010315714923332775193589940145794825313377205149090572488052180892840430640117014608661950440273438309691080972875143966151945175072581853970466404864033112550172337281753726185058966296902411317195806048023452269545129235944160420670060133113215456798058935713948530945916910364682511686004145279689221052202945412839825831811449775633040866515419984946741650377304557283570350825646119664634581166465843257615486441221896335256670659809402940926188456060806238572757712393403685729636676273001126961198778693058961989252742523495957187408617031338561482489745002258666000337782907438761306444857304668501919780792189359458870233703749676905864413197813267936029864433795643590801204247336714588124363365026844797143629383199126568563164296338538578963697005539046053179226967492458913367129427619185263489344941899511291719751715384111486673777192741484322713813690756067475618637910177265025264934117695763531353989591096898502097292164428229030498201378172540385991258958384065746914203861613805729640112968129610170084333234496724541778874110550484283443230201656410893728362534843728441042713185985680787689286397027268507922694128906200744420006699098755312238748157359764280933843924684422751811268319136408448309965618126799829826252759935269642485302693043478423941895465368823373211025454010452534858388944340728788096326139927524135818594662979260033160134433054800392493486849674300953586779728506813904500138278674608413452582339974404320061792795829403191579558289477747646780198173323332940435461129492471513189858680500679284952705770959289430759714289993175143052329154564970393223500166627722393949772069660677548621777976403785413724743183479999985393941006769759412353640908525753821309941212158643747617534349620626629280365602369266851896607515860638820911724620565385470927813251991344543465411007130734154603624905437266327130522712239045780642491010609737103611031983300654252674035774122338918943719233501758162371769039151290584417079369500733953082464761871623807753261813654374057460299478571131457690995382651918186841662773740014411959626475435871559260575800952350353205568168926656781539580475332483372096182428868332261377375901438352779308151855538513298445603278439293482869114678002650662776606280747225129784310654596101051507592174563157972281026142549030993069819518513908584632115349498433043547586878744256240905071345316370373525889215657776753765693202366685803831977846147249586534987043500500813524242746153719914922135425750487660970016852949935348657171425322426201001494787189277013870821994893552702129567989128571117919803161459208339865661133390131572985882009802154666484965298634176538615885976527170700939689484580677998063651717870431592791474340024144483083141128009663833432139318027870827477220901535481459767954169431332554568928866576290721365362884318409906861582088256437672800273149717361779828315462793313037568638227208481541102241924865401281115340567350095784598702349802550467635677653461457489912646687857526546849434503942548032358027604448708213649865748342424687195153090770913742543881015612055201932310278539065692928930438353298156623967320654247339449645613194165835549860019947492531936068748154061920842408409643625271084370080793093754489017761183285769610242069438251660407611593216826418650925150979278384632642610492096041599517239475191312671581154465988146247837634832488404135776340964492031470230176950057848999436819252115463007238104460221688720634484798801551587202564768750930805090812783862302006660909008194792743076001750845721560447905297175135119682267377660482931902998674745712715266845226051388286039810280260142508098529963520729107382455951150026320543387431142121737649466522291929991760948100980438921279103307272764407354837341161151239289607504283403103417561305765704448799530712176251882259190911718768853917867557753103836215591326194296565418390320166449681151652923659064587959784571625013196510386990539917082314843864824653575989412074347404891651861987508549639736047087394940566361099482837830850908320963956739742746108167835893124378385481801212091479365353181870665903780184682571516817878540400839553243188571143003305515215140722950138831323163456713343721910074165130590388596943931692673677092250188083167981641770590838473362867925525932011453975907788799851175825264398407266051354754823376600698138331591949423956586908396438981868000695889993429282929402116085208104313188738682611384923136007529645030504105979744995671663375629420485113036936377096653022689938498547590468893541459849136006214704067623908396198758216898148154439265133172484388423743649403063139063775091403519609528565370445869847885262135819657712311276578370817714255485822234453077877615058024059636378393339210859518561680779359340136741649229123832326915744435779843168140327642102595019306541718080970173242305982262575340330756521290644103905313663125189906090621531404447726797252236627209323835324976808461020167132698789490592549471418955506888011657026097208005096877656864986918718533597459467240982550626689364117526857201736093758812584302201449068890362290702518932381902998768100816337749949992427244301555349667035236431089039583679465702753713745042243321995894495721833476443659745509120801673053900844614424718435251641794964346887177913334857449735698178643336231540181314617920118193921737829855129415855198657983646499916967835829681189369483381056120815340123693911790255897454505423833852835907426146333375091520063947966509758950259215033192204073973762154806641560150528523689543029561273168548515866316488828447603987985730465591876310777832734765870720001333557009203096061951190039446991836684188168371755882282774133914566862111699706335638024265925687703408549645705043715529403640107921373968542199541177339148175854766593200976643680830204343935375468634605745924729695325573467072158542177800298557714400055211018801117335297377650353296011231860107557351298964272170270824024626128169697301037567105499350522362457891981619827920805456756822432738174306110769013691759011692590513810991902904917442628044050945217064871905577820311010246623240365741244707063987844785852147315688308491852026303393952436257135026478267963655199798887164803252157840210977553470405223817690421013698902508568749900952321895153456691248691721684755403192510103966835613725507651915900130255509358335136616944563607898236355325023498255170187891135695391121068495784735884333992257839374565159493641153199236486850603721749625757621520842852832574211738483801221658322147395903101834081296248070459106631948108409972510720573745044613998952571995515128065429807405376706127341413833450084097886656499371034629705497815254080674570760807663974500217561632620062168627911416435085549861062723055902396851923452147630687962586689340768435787795425210263392849615627797513110458275400233181177310825188806535100828096057871891886031995520582131911785639687700681975209193831922428548802914919229328884480785352080447152582152246687033270557682826228266027949887162264018523498644937952955019812447996414235044199371257582988009223401825231312149055237341179045707267537958187628145022938399194948114239032797588898601851903557579000601768533812663229426611816681662735255480962605158768454887989467761469021246589938522557359253412431405128481708464420406237614858713679567568976901781106903902573847854254441236228693986062151991226711905729318311272666838091810858853689196940398307597023833288757770337733257181094917674718516565688589047911057415607111323359106966630593342995023499550623159778708610769567422043781494744160521673849352126871402545022679523004788562982469280579664592232396423526773816439061737559172436184451163405353231114034834440630137267868386085612720254395106558232071559087220545940449906636493848709114097933385420880208325396046377247591769402794814650161790178032660301119517892873018746370135475261223914848420956547224736285140552256720130433799701076023516976370232825264478634437905682334024981816986000630357155286831098374199928631947440705935770705468546876304288921680894681682824680933936618803921896320926812218065850463345614628966921224123776642175286280722299144444493536305367560109326340069965914994697515104195268707092185490154423641189671075081570647798204288999077302764764244707559144164137389706365772942230686027494380917464982805728489625250748117428610347151636882519337423854339237799269486659553563567681716338352105745235964907600119520195532018839399262622210858782665174784759134480468826700052289044189345759279254165026953334201154052619973724003780220327945839838071786245757227209543893218489335858154831470027220048074469479227676305849928132086091475571964545430318537517850607971584686117305232166638583115151041536170709645128398267355112797230562285691897187749503748683574550072296661803067657688720105069384705241084303195542064123744892886554757475226247775151469517882794371574692206010835110172123637806528072691150578348022610474698978175989963682290966924792842679400798447528015421561348183461113870738334488027618259027745028290345573958551960569965995631171927282416046793322510202223217940685722737925996178717233271009241275735255617897296024134574319739521287831438558070124211332109093547730636661593477298721277725753734772998346683504397020767291725143702503392799977800850560129397394808047364813390838032727626828532063310024803687581563710174595796316462543847226720355532653716959518169750786697513356225038750344920852496096335683752238150802535598703923177078465980894092879381090423903785469985511757764996778776537152939769859702471255192420204024700023901947808820695850350870153986918714024111385900263658280903722418208978355712246850080964902888184643059313628986769239939952307643153144915175964116604823086545762905876479243280051363106937774221998617442884934988671828423420577510328237693575620367162934999961001112554301560624751731223445671302937958182451942710036920954369986438792237847081762972459192606254906322268008938818118736164193417344050294669711099464021078437231834575452005164736764559619691036351184574022025092639021296301685390963811656229843844018032757113687576761734532614664397425295224120277482856074823940659811040661262454175631321761392939592858435888224954704723320832108444243398904928852634982541206169611653959005107646450845053703630590781731394597437089443189707222293123872998230232734410907867875609714985800918786151360880509229246957910684892212445460369293887497446975898077641897947047148315672943218556236462506180354638947689732887229526614049722213634601683943752450317192950713046934035197518643061216203223441595021843508013721246264000258176371780769221367163377684645734177429742195620873097881502908730203063039792764320136172968227010265918982191142488017538166795043170183168412245532485731927161225037821239845992627479782250401062906805717283049118016616346893136660798722189609235484904335707700238434503758698003639959771417059160613309224367805853399426805410487425673433707969394998761314739276379621797431254034247208174826009330843073486712659578175621906863847145775587151759144633579666922607061109178558358256730301584730208730239618386609115847898374671324376477757201280790567065342616914481923951846874077072410258591903804353068172237578776671203971594517657034092717876660565223724515454459333569569900204011306486799319401335865879639277472354740443254709539442833816882909566498240786487453214260828081747588717891584927453074356368513821226187828729005434727813875942409967814489990044625940530069800416663231834001663134674504591154132384670439793414358900902111825283693656596335292523456037812218391096929769870002394661119779498554507610784921922878438566844640175292659646850017373067422850501800639566151637838070711739237463155483082736852848350008831978558301421533696138175569426767655755615768593558763623659033314023060331911485256727718945755119076179186903919939789836002476123608182363434155906501467218365699512065286548311706817952717318597638043227033277409430807833536672793503175358596197038142562938812101032823802959310324322266300310195987897268161946140108144055887170929116423870884333383068605360113602357962942607550768735629919485876286421997790087065731573466397061030001873122591610676951227415265633088395683958700467878088022496326117508795388281565032867736033545405223710603245274274420768714120207082201731836571609494320619208665420803640116556354497496815649904222935527743694637864502184394172237033012950516107298380643755133527760099119085393710391373218326258986594732835038815379097567200516469139857821410249910019307221004744199033701517777601084516139074179064611318531237873918189098980570295247778393433483281705719604639216264773121205557821115108427191122687226363882863099751316313985228068044163970672548710790610780370449612738703557744342610738732925447989421899280308309255811214840368419113314201770556356420889109072392547987269071244197866250043835512187964272275796444737617675394463296841772339273594137739140475915049109243267173975022309115872593013732337921043871662718588007912741429900933455783324954467720479542481572829551096326972782666657854070434151452478210067959315785800902288235041612931551841304742387884155930792919217887213799229908654252275057779616024190655099903526085274304823238017274481202704710606124784011200607249157556229244435545512061085947776166172740648152888693205529974275317305329730388722733294069475157799217503238466685242996750104474788699765361836849502503313254515416966099586272935685475271650692145224298769360577101446282630779127511103756490655347975956937262833442751452002543028660970713713467428164883887202614826045907883763039458581865614599381906660924157606929540431203704299429223779206717980695466112687965517386059019729172848974637936183586929407274722799241603795962731340129583802513642511917455402489962421743467610712506032688034687468988214701979441516811093921644918117529330594368222642164582310206336314757161683813056841716925790472607916198989225639416668256401541587984649047081455730630470258121359002025527668931991514237284951138248507023058141407415107101278624138288896991181214079500479823771508861752645269356293983412394652604007296549151627629360049152505707189889938181349668837985012588890691574251116771267611858225236079505147538904908523953858892104249772088338378772840592861619210952788215653912991811351509778402543524809235926585219867429470051687920531734058585786881522802176400664209348067474220979682548776236258637394994867970448859886277971287177724080826846399137074619700100907157307748885702511941746724680284712627477631828263381672156871970632416272571860309406916581303623828592943095509426915536306224958596633883645168196891990664046059707676723118045306152367554062866816603908394741198562722288019380333020357704896536546325122483152802198444960402054731888470272828977333409279319003123354859210574400338710330653128545875332611080798824368102373380079670428304481786229205825325391525896477820034007505642832585977226536142365326363644486348704015675243019578188217881800513609204826204918070777956511008196557939598382594841124863072390858178006904111997864693010073730012049244602632342680321543818269522081279079018321435798492724437082557069251654043607768675999554423358492108315786760137028456573940057238682036161783552067695739809832388688400541167408948765142548854389107282250903718912655808576264852399637079287021099242923423638077135818282383305535881715260241536125425445027543998941589381885519689000991770046965707591074952896479480142671067325948516915032692051679775120654074032528049873993531459652696338001792796859493579701440350866648168392462803638251641829039716804654333581650117371100774268945616081969435571923980900978731476954005912381947795055186805686663850461936772784351607004950929537996814178889096387080021360517738115118464971155264154006419046020516797701391587130764748027600310172158530430633842728497291789116743746621441628683304328285617284746725114640895213671823227636218962143713484642969027030634990350612374111779628663366969498207701612013885025376875652766757475982944598721144113376629671664117870536052492814033384123827545985479859035306312883685626067793160136321823140539055674317292367298676407161578929430851978611315296947822282802591722472304109106116416886084881372836081493244354904217878222674230883616573288195187300989796179314672115854002748512514894100895912868717451616927977772267760180160647308994545577288071338187650481126641396129624225822517173489529468079659186309924996168381931376593229077539683955944171202053438022874326104114255564477259842376464687700916838105840446667323648984520058626345681270870419468712519794639934332003119210136856551812561835300302155013516733643565188812902952883387039191176564072616769070867889396312175730687217476986455540649018513269686257357384057544057279660846909078875663800399004677803748441943237157970124927503041491983515989632513043140746658130948736534000781728530991271465153547176240503464611762665516381633950223289516843403828158864186272898615108749224511238143618453643855563665059161222000362654608540307258476307897385684316272275595310575729397202094412710458580244620258338595305727675682135247931425449731726892294643930542733594097503950375259338029528982442887494732345240329138846906152935520976446697215446333836083097765340549669933003140745242123755182460929179813521292655055215150622757813639849939873153334670493160190306721929375455956696187187100692725442677952238831020834524459344292522952450442634506066291389726854194074222038611935300595827299588342745255260472570088708224841686707615179056711461802600637051239777734814692899943327427371356213338329868080144623936314620560495617336479215169215287883241698595122556678085061424379559734162818224255504936572314144269596310680454065211367656201489265536256001182469196973701353974636394670117659039162926921860377863867446830095985463460772246024554259459788004575358915335397249455339648608046986490490900773954514688149676889564850253267394412041795666233022780639086483754406760318186957430839189613066044123075529723455306267715982485119922459612712829349058065945371896996801663733367009791696428387502353222575307297556363399455860606666796998251438696205228558293978848839522011874111823210670473100977198658020111847563889046279779910774289334072512886537613832579382967749770912971679648624344784025638498395159445101014833860981521085391224832202853962768444983614482680247281731053111595583977978308266791234905406708791862780789836065255704145530059500962347029591274834156868094867744747634559249143831040305757087118773665066334319060134127946918350953542576363439834340708676226984059250519276840005183508497357883584061258308085445077118280532755523147923498673462988795482488675956768380223626762736386510861410096551349508075492763298134502478637458295285290762189218296119660639283078363269705239544334535361212108491508322229699356082023821344105597694834366011346629534570310573771575012022493002344815751465634661189811142380787168865167210940163037810625429947507175083131771393495089918150035446204646225995929014720628888208917232547555668603079586400897508888696053255543595252356522074738907945656137161558331276787928736061768339183960401653959637630552822644323776481648528021478437174899031016885593501941622317992391467812439451678045361432923916176082499209049814687323384945685509298256757294952960873536513306596020976355230072907000792814309785260097010745518734131659611371605568967518706440020107681635250534635467900999020974054679052743715248555104162066568388022879604495897205391250560592397631008730881612243893414295309937535846987022209636158717075933262396330913984705838611588871572881908192031947917804746811739604215656601708859214174615634003442528833185598314597768054894882030858229023273447675073003955938836122296500856256274226570140228332264855202016141631370390748218724242686200449730091664398248911250624524287151113990547556278031577156755195588836125200614551335496163513372350471926629004073734928673540236595855440528862930239039810396956118464189895482579004638353809307473103485984483565655116288834845896149971633735333366572588021909354283683143307040421394524674459385263258972054435408678651705423354894904239173606700931332328330349114942930331936097368761656691336989660842493594985931046029862883144645126413761307591253119578892140627101110913876662966288969463977504551099112424328312725964671232661259863300852359263515018874345655134982343487360118629871617501036217678174081501623142590444214150199529506846006603477936067965778844364612289390599458384483110769149731711680476044192715593524832549743987883712927585418179012397567982729736017808711844392391343614986222323992673662712637106783290766343409023179288495160154294198012546187975812746632754688236325146642138111843770464458284390882479557349429546079132775913541362865157537451641754650122933684009319089357281085024653611878109905981774439424739377194436699658768963469645568927239738021023689207953215412278876488212986350040936456910126166145507653770701145629954834440744425304275786762507930515039760008473644933967784207811706702919681605621619219135091602110099917341181207153935004370938963068011495218582136497990796228290564882145892671206033763936461784538542533875906983149608149382099465785475886101559909744954830319076083033236200838235432907410998375092355405286899361410564887956891305979450043157670920671734785130356248017445323933256956281633028572928005074537446956754035282194473339352252643443525502047655080165465479586639347950835298844615259606914323355828326836539225508759299897759590509847213562403218892369542705290320321114328018234546716826633526467559873981595596155828997599442636882080677462117151276813700367734621583596386874877364071709265089422367027263064953306091282687982607986041265808091299601848799240055059324312891352066404931944653156098826179807193561796288714621446819216010495578086384802371144988819675604909630812872955646847854041945441680864175735944561782611004246171783684999924640165232042470820609924552721923577911717877655953084283651071760325952241724232793757334236631620004733166924603177875859774554427794262958571409800342118538019719184522703182595395029612920536290179291549444017591399207636957442058355259472992519278826654930622968488269627902308489502720165302501740357338008240196752628207793974176204389518711944589228421358446738556527018459544842309820950510837159259660422082391471965192920139732375783387508476300666730111702963128987057387183782143140461620322677829779337960743487353115009079432876481180589753419969134391249958113614797795770257272407457875532905194526258956168376423789637805336373544675843687880869946056431958469048089288291868009214791784189857862117476642436800957101428406972971070934128286534791802239452508815543796235489268795480731758023951829397005579681496648755558901717091660152392876946186360375413846433808082035280113950019112179418042955710181656218323317072157933679010038498074143154988560633219962627586588962152482434604859835752225052821444523865974006976498677312508921389507917638872770502780362979223291596232618263966104155431384893669223657040438075129834741377394639998685267159571328667457426225135242027885107037524185254702581820151808126960143701624745108573957703094780000981592113026647535796322094417828041916860731920401582331795346533338935438825425737773755597169980264197213553986197261798817017990292841608347196435309332113446392472580408252361960051464959068303411338413427215961465630977601891316435429311649946787272191781130275943625919268626914475152598688934941666594418720453094525402030920121594551985049450992032585833414083975180489095174809397602887862634616721215631796650154721433467870128705793132960966392208049959265206092494119995251392889874075861321053154174415892164500375070686639644563621993777429838784042213208398093524286558604972988504511741528821948613837359324915331212355617492122040778822799615796319252049923791432069482794845173553735454900935288633234246116811897748264126473390438443259537115699677405945039256509774299141888551510441123522523338694636263758910225941181852294752739169607236150763257776954394235532104636221573968678620621630829266830472410243000479736833345653208267352797516338483493311716692120414226492241378296753538750039230228062116417542426927652896659271599470570682790357180324482695419354290659471880898265326396718068615406653837840319377762196266002268566862085883627934968099312183220656261566606480055879862240410708649155893392757397233006593730239749235682796669152763440897425189633397865305127883812851520501771653742234258054652304803823440387149115355506331831244838887713218285503880581803347305238242537512327235202661517036884993774529733401624961157310875694030087392913238808255848873175949508550755385894586959356157472518837135043062570718589665387137005611357175142339631379621309392214068532138921515720014140706236440956057197688272810200093933472779819303012251704415700221030417363145170394633915323333266213519487127477965732232223643854931582800279930117956472970230074972682548860856353138309467868091435968414918132640847968867514496472595340962105294000500312769153044402590596014678973405453270364669095801907125866528234535359477576252719231895931649598041070164053735640195077549888163811530165217602180667433031619052425708642595257672399350802491770610808718630808276108834465027105849034927956843395748085038774663124692382982018960042222152359458997410885054121015822173811191482350956289469261733544187123700487904755311326835511244047427879608244987829579470664069466612562511788691183057580592937315031800642934641698515690605965866301637148328680440671558590605276139207059312877277592437987406695149613296702833152198061021372733412691950905614230016258425590898301133861567906631116676958524368769861124914722217812075443544882984519502189922115185813999740402264438896731086554087355869294213134008680361236714214463697908763450881050067128559419034528611375081821943878810578749343115963264084877475171599186566546458979243755154083395133042693603205075320061912871339598562305202751836829492189906744780595652794556371281062565140947046416487467584080440314898405880082971661012157492021147552360943291040822842718307560172526607940287438962817256779071505102143445961401977882694666557002825832210604754173893133659195848044914375209939379157362253414036028699860775092646599218039262040652071565049595806621507588336266030288451395086510795777245045003033907389723263590789161515013636876441656812410716270590684242914719478448423072529198685994114798540511958512862067488688625436697498985595155386478738245057115778409781930927819757839301878881640074440272059025655942134370619218502564334100995579460277945014997168966662099506377621875449455620782255765542846388874118891651299002518568168286129658330990760672953051937768210545899232351820433044203434177688743451895191629656539966473931407558756981095365324505636970150946594461485296222978867667176166408402224388494315954141106285846762950350041849726253622246446651886117861486131136538460565223849036427785584115914189276705371523302698322533139774516618281471697369305165975974111276807629485323017286232919991812624295508146883451541094035109025280385679081112699715650689501417308619161833055386741200075275020755612991539995851886300084853902259097954331523492351406630579751073828137299430888765150443423773910576984468133275742489295225006634451520699150816271649938270261276620400946613907194637560205857312842050421912533013356139628571732157950921543103740977216176516772058832520644194244077370794848558438461459789737556309935951270345303875195805546619767292693665228164190143643129972653658430513649923060062887685220447810333655607608732021158748317041775977732603637156168629810930765029738893115459841256511549936329227375344960542160627862145430061085220101608037404077368994633775987905779328948159876050826206315533739836453776131244040004827434116558874931913893305464197827679669677706088522537878451543966019031198690357592524449397727306764370636533592285996720069195025798468694210453425005998204221807155049731020453276159619263875559227722302953192699438232669572514846027076859260590904466887830915324051671497643013446579669728780976386771992224356322990439630038601081781307063319995093016091862455603020310115332924220205885089594627085579410061001546096487047061485063157969838531759438103768741524269444563842130969210038565142902465780309663874654988061884760668539961122608246896454210421919584199814157624745157434401439966047906660795743690934684821520014088933781634873495821151787271188948198671671119185473610810263370182202245699678487447715405723581772231781081431899914629873583767645192110431728235757434154542907099881120339173716801966380409936563003558336452086022620029865256753669364555981528410064379234052499599849942744069846255499578981704225809035744235660662420671202000529992406573098468230099117978120152612109907202929116602017004140579714851846314141585030497733150864034352836320814799750078518623427800678525468156659799872419444559965879963233781329365282895952835903713849364938245879354999849749090716306091825687885142450887502949484338913808788857818154309857608998760536119703287169543195776693463441178915577444129599688092168546638084672854873920291207329303922977801837723549469221287279260990583747110831633376982823196948444417095640906208961211600005911854774990770250045354485138589262648966904234957055678438935610908813709649658474019221952136199760136195448848272943739539912637670405392736744824134507898272723967834565631425472865463625941343516264770105802935515561500506231599007696871168355483517233361905117300478702705535123305380002782347032171670551586833198210821402642911157771861059405197599746380918851676226809670154705739571223692086430717800228360608045512669455201861959697299592346689848829050027629429565707586923755112634847430426353270037776683191260389970139129363204066786721166667260214855531065290527389183717032761697951680707983143728121117280682487140715013916870851760950452346939668703962517785821694830225904352656720421453066134597751480381080567036028405951905493049804194895081970957370545462399534472512387869008550673474504640269795083729237445718312623738837721098797434539786572823132010131152118753654331842628714964676546836156798208076664725796834956427959686704441402897478321666915789793362899714363107868304020999253725083969921542346240619674525699131499112854729108676439714276110480574900192878397208864529272610102376198969097503486698053715371136731814429395745975663928927246477405362988939488851543754729567645180989760133928582861403113146433652690220973437657564389452498631494953390523358959509004246290415824471666932674571071408423811906756520685678138457654532499850006134821884812861937441861008751783594826426237807125372618570363773715738613412133437284271301284324798533595719382165330664667250861751953873385236181584111821166882579123338278318545329742923933100977032663745826163297628530308600923209778769244716132320407912967017119593633835189633256591212307111671771995007383527222540531195619879558863175959863018552654743227160592117671729599141738137031620563366690052504679320058212694271579793670748581520725898047014115291428007223066437655511777515952605053252383514746089733425718051210226681174270555368294611713629354543522582720706810884146125824205558196841566696743176819750660675677890591126579610016480050902144576536222265085109227946439671668881718940896235422142840738747127845238068818150215818235898527631346556404090069408116719134918395705392863555559426899105730085989996441954765790793956994947455772115315972698665866787861777809229029277413830644434340140201951229179702512231873362174111245370014744515808986613582238721414036269296245726693331101108004517043244974852395286216729030908001741747305869462209384190068341839933207003569525969503459993517901576164089007269389336909853578489461569093616671940713725565666069900421815387834269217438628266378780767621931628742730601956745443389889770441475403989451645024544455125317852012287052848715806403547164223258835881719647484797221301270204096203935605298887352738432824341636279663361014589320108324848038937678897573685201103563385322373502216107782845837538919441533594642576569767457334809907866652535135719433554216515283494971685793104350226190184026700592367401093343143544701916754459736474520975662747053683424165694917704028431881436674553342147417076842341723554280233320425579790225363503155626314856563109365866825382702926194239979367639475880589220052157888974700275209036458824867372022260701108154516072074897773587525778428872943427251140701449961850935559862842023642046893306381692494551635757089089554062409655728202573635904325576650057021305407553229710256666615323786851953764009113843628358124254828173489624191396851540328327376389478722873986395962302653753266331951217460116228492718533118886361714603772035118143664802668663559048399199624519361108854287746331377063557429927534051501176905672150826095418209689047824722809946199174599179059592413550732965371057878616262008541644818114554535724599658678595643808239478285825673600757571073648072205826125737205143479341347424509468663207943282072040964355601895389322789767621505490821025784223586828108827086347648616270863733514439917252174008953572092084774640295116749080311125582023910271069128274285988451980598137475541128824216060032547884011293985492574653686431537112799500463194988127829306310826305720966830873289464365190947594514724349347517705559027941200059593910902614160132711956333837140823875833671325284342414697248409175418573880713292022999663960169137046297632537920277017821749791092773067675733058441099381729847781471750434377743212563686502878955855335960581941986614691071115168662925158574333576240068204683675210190655066261564236196516651871709551399796045638893941464927877176747613637908477614740656612517907845528691723325941213522073058266185473887245560630840630624772117474339352820511095877860676077305842896828688905694380620007306083386154351210652758600773587556347261405348436673653859835930055306540965344212490112332788924946729379351494079874573301188617791038122130932503105530074657572732943548464330952773302570289080362470536880461280847579737376064019615222860865407366269478481267953473634358657038321873291661978958779326031868506607105336276601257166990421566866229764206504641578228295728779433274560608106758599904705712821645584916679544155142193320062033320289985969505365313751724672679154832285622970090668161427386553220196461817978911463157821648707209589979221802927766907181817223134950912790648484655421104403608470003967766750119142811124241252012486639250937667595404604047157828566729867808949760122661123684775242329537180881258188607256747665199106791661411075359233688660933787621230205835276375103444678390283918349952201486173625616128888448957917164221038038323121540855112294585265306575410613429919228391148652665767672620460207651912392100103064446533000347255830606780824918769438857113142792611324198114012277348692125464948823425985671076875634395773113301961457344492662029727167213656894925960944698877320693212819662028733059076427394484548356825025163667590050402742713907355431069515820887011995433200443334021825221998224561124044656837214997106586207743486765413126942949823498254209453597387265997322187567915112747711618520595585594283095577038506286295523477052110860513666948394131173427332708265410145039390823602410818522119918164658182161915505840411872736273827747606215790902623456204203453455663301643216320524035454608072638046375579562596538810200474399820912076049200319890018103208698581018310178783453841881969956237156044888770357729820852748624993530611302520294813819862010332598602485251053470210623463371930266355222849116356345750872363009126084248365353351783472635076083629626304165274652670923235063167399973915927916688220023750589744195574220763611180521852893317800525562928774408443597182766428773241739315589974902962224968657345601503834183141810075124880027521223980078479633951049696345163221103131026968240288126392813866016871211306406366611632593085954937514890304070223452659482313649560501028451678052525048597873404781647422828175951713080326709539676927111684645844307419952250890897377579432897817354401792448838341871023946092624003436478608087229009463037729110352944662045559053062137382802066354812080830263117270463918616085669943131940841584284148507133707577014427857660021874497058180863256784771294694916084922873608795509080114583244444717453445044837585025329187717392203420270949136673525756428758408648373927416026171753740640562543897283892749546465807678530505743246877976907447708980817901140902282796093733259726601892029564027044387753762665036889536582527114047810377172017679130528646654914776629449897658550144053740637871823845072622827650516485602762924135207494516899816262694357931904198913377843136422123810845255913192197320527319436739909054984771902623064568454881628286051756086320852797056474996861948342360175060283820515486815878956865021454199552856661767778594631894337339585487681209570851104692482605011754632880034518982484163664658695228323959243937645482432290539491521677352703681805406543308656114860095828451635749879015335102395078079817309211104605905712842010052590031053415770266518192113320463217390767179522099027130068674654139183262800141998605504984351879199418844394281127744606082780993702583867919104471566236300707461146835009452483014010892220075032126159316663446626761058414376973786850246914149856865686325050140167257658172950738500578798996730342743867417273419601001080478461223924923496787874550564346623799378318062943357820817013988506240777831827236473868882878583498755499057766429938677671958336901077472559617356835488050394471233202329367618297949032760308843504271223907777022519516373839612878707528150577214446325584449851745169026044898272887244419600237713210763467018567927680860728233029732203939825885134929071271249350154495836581764336984521886255940232051182120209206975192408981046680641007910594715800839053158810886860876770704321709658029417994820831927146147174537618584177635712324902577867210543747981493805591332431916870609931413591719519727854264584437869903413509800984461077856102097822248834983639029903484360476528796842960677607593363448163124597588588020296554670477855330127810506145866144720066677491919164736175698878522841074237418356602061361285449142074729177053854241821798368948508761518263660465257902129865022228808707890272035546868636989115382757837638763234172345977017079932355552031702625714174193665051459886154455961932916131138263794630827973456779274213683751898446166106175939989827786505092659245452359474287509450468356695794974949831061196965297737255029648994407712440438923242819297462560747213090987242386078938885012800637106803114601952212693301414578795925400530414354669447497621255346834093313843435340984096475757729520373882626077179654561623134012988986080015819712798395309547812569075085337392812907777234935595507363148611164319399301479580792357679447354868562570789133696742051234706049200212092333485487006374320555913705302459563748033427316515961158160338920089362142181183695829607551572030465488454602244198198338014237340017681222698025919207764147177074097595861176291071474438957328610034735121297697486249579423961363915946538336613638979081365205848011460250982093710517783947673408485850632876741369719350117181964011782240146083609007434451562639463185068048710214104777787862801149458861561509687684910163443552799770579117188280552906927417483090397838713725613394056224572368088827230393462635137363402335508347034527511079304845004769646906713278782978659246685392437255071025242996069408910583646564138270592189412410889603557185802195893401838363004037689980180203412936695590162781955553498798737775681409470394473102609723305665192067354643063829326227058470611111322380310164371794834548724704697598848540611938131169397767435685006804889199194498927542470327925584611868866627252889899303851291461727672712475233552099691239203118779965740975131796012883820265340582995644307486541755007296855051529782465462500170487334137597685058243525103734984598575162722797539787956129090139788878504485441251841191298296070114234580102989909006987947324708140015333180703634745684070082215437835744250176920639812382958993665081229158694521876807997590424348851725777615740796038737056527401509306224885626894141283543609706686936991316643326111011114934285795123061075107193302455981591794582622739183947637447102861659955646563564304437550067161639873466990408481048436186687010793271470240652898670700213932694904433575370451770170192333282185121556295827759507228938710358377391393726637007149462649359471915166820068914705206681184943037829518852196405655205277338156428959859560251107309181913888623141954633299437970084415399858289906290484195553701184745983770434852068878595251847471806707226076539361711098168572994559668715619849042301140462312560831193409633308196404447594047556384839949704150067668951878621128695093596268611693277840532403498389765517249223277295198176102944458622134597816781160424030038661717477754325297730781819394075250416871959676364401287485034635820703324651726929354774611032449917029091941086753830200658785267769682887341385657423043856129123715329428977783423572938714593356920943093640027199195768631881131798467834569454689678700327628158850674426290832053141987333454241998660723678148474809113894119625538347611236718461426625640585243795715658519233409478062771740285374095327376603833893456965080757133050978680344762312458110296589965198216364357928366528927238620538355521071466521552918167839719501301264051278783560567726608932291817505841586468499704140423923951941848106937399541646128855825222039853365059575083071948912958590824365480185475874178116480128533544505951072522080963516368745583113398953349043655766867861609019457258206777369468814494244298489138129464423611115316903569219767231647065182785061946623089888022254153506589865881987673999158308255126354328173840556402717084787407821922748775949010878976775994883634249271351425480550559743641567587753776854732819426366234779351160309750764782787674782917252034679481718250161500654943617839065185072293734342927656183934104211666341058414532018570611966632205431193652412177240468218488759083810265233355584386427694411044816428139498313911864081588925546394229302459978323401962975707484617868259536105101180823370526439368377321826572328163076811583694629256478250503614891852130342707109662041427925061568117122137682556144546655510626919819202389851606079323533012742724964607216885126419424316188594304364986238466234037419624005172570620791523527296623957035780776026649053260579561698824738438078662540033946040554581909885684796404033715222861031155473237586609611642303348243879836427082393306229480532734137357539319298645837505039439157101765418178104878499011936950077898189221704572061186863651314678275067480941624104782634373645735927082771481210880204083565824942029091588903797006108330179030654109889311906326841925789031455734602199526645784325132187769388019161336250068224781218707869139596998046658750034003280700615267098356524276478607706694138843607912937862506041891814344136239209592665771202743227928380732242642802186076540903170217056736145084552549677728604460348459598216923082842230735100356752514482068014049723776642319281578220732220361946705904525847094229124523083088929511133748023001587205314192136629856199434355004094875701963527011299520113954634658763586495471761778998018890878187477669038083120657360627387748804437845058551755021968862597092862389845743799780165659376171546261780633868422763160068558649437774381742765454711733512118168887647644270247767488731300992009291491389442072183087991660742030622835370094415091179437670621142318541756949045050995877918210634724942378425718945228318667682132852768998281815885166867232090489893683617714354688915453775588058991374018724923827745053600330032346418556443823516985355087017133596140280597177957263628537720392914927302480274841788725845839517062054795480598172759115051136425545124726629181227447480073976384598028123113651498552162926332680151952827540157942358851477260953634612615271782184532274106557615000887452453361659226450858938476493675810281131423137008614756010169833507653831703807623051199292600478696549825602983520398361617081423863627449608661852348170161284470979932991614640096283696286062415085314894384345130880993765369597460754667655676470737066689840419495352195928349768668708101104187819284731039707048014111130340793291068398848158036879821471996397339536987651044447604758238212938380349476464170575510155223128483959503118046996914746734128113294704368742362366916650555399382806809888616269714073358862647344173270987933929561104987389937655752977621210566324770987752925336503603606940405570512918532276035461987786056969111771594587591884530430518093847353799732857241114117785732898113412944273105809301010097131872556402619855115001913617683923513231134428520986167631722349502350861458144140917328043100145710602850434297568262351953380721392895574572987439436025203978832561813895539306157726751245200078759953851803241299390296243905970424848963351286415934238544713173035007177830711368591725623036517805725938110623777742833497314963188506617092202243240504172646101082129599307235036672252012134431914155733213859078411022231670895363103435888230371681524915739855664408365337059032896898427525873916122877190529968072034963709723045478997453663341470658405864946114195957561124598736852925375723490500971010365563772243092284724232517764390320599525024697253853725832506714617404505451042905139560608200135814695349056703364498344699046185247488604295946401221027658920781107369927663013826398040690137420464216350847713681579707059902815896557472280750753235875022710087336275533676923893799827772996036501602333972971301321417226323390932539401394836297846447461178254213825524145728452333955593867283785252113336482028877502461903600652863504067944802439596071123946300793277109936106807106091558744447801330526502139759844413911790492805241359942888912090030054648774011501474802902497891562187337267108106735096173459073576669662404509801339598692025401986875712700360974461175955930308625927892077222382377762017579360463400751523616220513048125490040168254657313994987907686365416193879437090146049003841566692771165997361941653517139567176111288738690629743391793829094919148584034552053256335042479383383099307125303385133478693405817187095667941301357794908976528417971366658280611332345615236576214382482999250427181801636636414928323671545490340820688634551598785644927813158460645110251041458190227799956081264419583586154721659866445051409460453041510902310305502652717003853672501195414489669427465291741671465090147044653886365972318919380529854396396892557886966541465594650147711538757387068947063847720246288381796063028344828086448071003023847494446259565052519382085231186827838264378159442794648881731010898952164705560339975976308251336441860353345501807765643814340870101702567819781289756414752326633194727228396240291565643693245214373191513480715302575852062987077696136450916800590396780200153832516250369453247884841888870922309391466603724488901792965137393381103636565020623907433248779533557292532685625948452646156091262547064618020978761367540410327669163415398211139268326175127254776208949764124190005014067640019279744022790771743900580543744535786895946789343075852594802592434710877418540569896646341720270441859307126133028217239799899263470399513800830292512280537330717895480097891265510537656688246631278416545947158294696519578486391020641948258145771497893797461994153402573987029543764026849640873796561157849474240627176985688053159239579878880439593951714359862983675426203058174799472486729987795430298672406987345971610312271273201747724570452050395338884081957139842854013685158076618438746461762146958258008736362835770633884599249266516498096054425012954767755908088585258701575759594746988264447116924680850412989303641110050566401194463167596870145431342485302211974571521887473984354133495894927818721751711258794143616175570682884255541536557839814633455212880302861119304664729509504877470464229618429001325004002738899765778658938123493142398276665617985472117860970595032154074122334431613925958700896225106774658632075988948796418608835355110514809564942074858294047848541857534071630913364192815032573458817109314981197473567734092877726154594825483178989632171884948991206390335476480912644365095572191828055186476933851974122735809950172362248722940608746518408718896170586624076984216944855079959352855396936488330215856154161955513323456724887821776529461229971089821743459115654367857160700834728617931171167001070808123107950736099568444030286061010545219318154377796645234774789942899355832974827107807720801712446880336664241497935086717175199270278727744997666172700657627474852641179973077564441579488035293970017229733881817798796637110778849348808090737691733986777698094221187958375253336117694485490653603199056852957344334455031790843812559851862247841400040724112736832174419442962938925797112894954639280124441717131956114782615579426309756312700164287784565851511092919536522364132772505038175393207120121363308742060233170709389909426429139019703373387702530609967872691822428730771121049478149206127914745939292051299853553221024275041422677638643248193579933390711796868286743744921042735951862168261723510202288806180978954468622089502782503262381772063188533685336359788989006225951145195755016340798275878271481768701586546339957865295290371038502649820414248631197234093729230337624692648342902635214140196231799524870731066443778173455590933726429389964870125376935203383110532353681705897895129458050120466839035601437854019218427879959110460316445305138661549658345195360535730529669661063467022906693237100107499672541963172658065340552099827341743436483586973398176239002909362878777790507044973339659142563651015420336743840999704820750031166974806680922627526095106764853519658470550846374552843675071829570911924776306722583757574913051354881575451422802389562535190663984635483795897383698176882622575870604901503283431575237678228780779508830939025604008292084452122560174827030725557307547427527288728142738264463905023207611509726038309621697246498322287360504143289820062784280191478776872913381207156216140570752288322438270724208584449560361525727715752671029698293222163285928710220237505693481623983741864602990057963423862652577531371288458648202289376756274973504230906040550784755577980259151820930117370260398284428783571931015044667821689043661453325889675982788028206908132583024777137944681303570254762636523200807961261527216053755784270391352363003189537496347708003337039658084756384375782470128773836856020926667214963437071674159488768821455096754948755910953394434287080753906454775022968467742650780170377295810014463268888228740494954584616324783985328760213788167582059962701952072337089894794552869584883450317424959171817577905482052992377908772106805423051225229700607570778268036067896728077171219448003922924516720510930409857532207613634862667821760254369211891188202327653722412882439982457707426753982216626605890060152311584330068536858721748659011506945891095383159260935466138446696205095095500360557177878027392283643933948526980295583245142680284893711609514826280026040115092059725205390622549761653377177530146159781622066715885364199900032607644360533619615051970448637241639401438388262374932092592127307768932767368732165024332012072134952630266800127024743251716295115123089504870818721316900295150985460075462009253019751742408567700911461953910147120162203974002201649575920040832286644971754227598161148655255691108557329207317879749730314125309035112743926751326529833324460720484972684964471401019217792248393051630445877835400401075384061200884191038731394699341021986939407754987460977046973681933435987181085329114121323980522833518245000054986467184678218366835056131502155139951978423845347907779211121366224406149685450515855909271028737302958629458846182786716738817277684400653595881437719596312950755999806272812110893216033318964029259128182974204574665283718373926734810022211329232345500052942503122978078076150482935150218309842250468588971428448519158839060636598200198339476770481337632307310270472173564271687621570394839552841800217367434564662840779457670010458313831743094863187266220670815909390414791836727201737244581112892473066882348757922789881470713999502552495732563900739288790645427258644885200181431879290842462376268679874369752908336033883792591416081416373682341506628049774173995139503511567331111806506036016642634889414313679848173990898911174946351188833767275686767606559346707144994564732128792131811811216733832453092852860894251426124680768537585082893142732758996355747688966441958611869587759480456901974664942383387619206170629260576060369943341028752384966790035448160503971971352265693248778015884824091728585331206845406022541333879356381687114127242731453092192463184760225407538984379982491892852949234546448079926923342380951091120363131637559094386788806199759534563027367882855882998677210261011334984122152784579302366882255905705762904922270835190127623490785097665525633727615468528272313922417925273429655754898304288297374404167797171542434933074554023526376786505452390723844273955603333282761608962162378369463286845147989487047904982160689086142696252834537068485274680834099892430806731736534890906952570474969991752023770840231659026057886884821060067087914641909513477168858812986700369434261188001361221980045527113970836211218466563001443851615246108003078927409120791084517000553385381633320763583897247608954237451276981783880843382035642396686745615256452623604469097965443650979065269075181089927457472582094723190330700968382434229860602866596339438546525437953972213284675419369040325566897471037094398089289601785530849813309527019575443169103031004762794277464464899850657011320260538443357712551377755842335507158134667316767801420625653284068157345103944824985172289171812994046710366053560590512033354560058969488633044595646119538884596725693128614619959899643221223547380554570319165476223597499937822235912890912414973586291529212419726135734582199554338170841199630553027548570014407608897428932530193791745062776856602797296718421524158986059875431106374658674162086599101172637307157850158570699917871754382509754386362774569601493613847268943523269834319662064930185104840928570319458120954861019317572619424679921158764181102379011150241871211168964298447254819222494853563734324912935020266658598135117509428675435207702361681735057692528960868441438790782017427544695607709491764562187809203165197520046932078403153602198090090475861583019897414166894878759407857778303927080495942241676450600853689006923915450054046011248915636977357196372085525141514678362712412499925602497041236434559290196300552872558965766322833254050357064246150993511581372154483980572573069314363505982485628168978625854223101931262795233105888645646674535055415925215162954168847687950212067717758978102801314149521922124714514492190286213594989474003484331883212645586405399656274916415606622856883163379736322959898633822792370749834143385222463637292347430899386158324699806630463189157815286583234165421769459597260813671192866421885117389732931042990642969715010668453996681954233473812929559992496937214370493977249323964084912326907649049449855493125660725363172902945030811318430002174470990209384072074767652507312885196318519468550275592741713481680203683939299250393123789395411100185430194641349812764122198706943116822747237150861494462991903125261957947729831310140418574490585416569685428314337252431421808919888689475940998619639828858358219187946698592280359936719707653352080289329294553047096033828219106691062735728646502268370827805849508471575158683934535508149267009553439074940149686626192161906909888718133339771457464174327961987919235039892493822054192335644748425518028520078010225515436416246677451939250826610336695684663745755253734835723448226756837735737643232170435330211755409415531139442454702416669061534156584717791740178014385524930707696503927038268875402590592975150376364150601581908549519085956480146101206783107331976428999143232504363991454954652999063923371510358718770747305555142423426586128730018341739224522690970615626625888345591139257761469279441400366011119293836034786944110210560158884810588919839018784872971872681255605875778780389305316173156544075587363026196466896455803540851348128813230114629358594285542496957935328831107666447397572464312420153990688481280533511409765081443471207310446538149154759060905535876924786191879694954242693319181670833225841551284202528491245461510776790409345593338638742150528758424131208720351548257605298611379856490439493447484984701518536868443091275103342242437565104090056237229140214439133716603756723912367188808220974941945499164849907693365009053043444198905758771395922666668637214209286698316741943349890937106869777326464060735261990543552201967835577609561519051938019989111436769887682345761174855148725079640233817936491445694347589193002074926243436514308555264729537975624448413562241353701545681293305078239821273073126484254346455661100862665854715483319360271148762493876990453478093511402101487922210149993029551511587120542293552515394022853136401127562214032804723179587209146033271425385480580570125813811201372770253322648159773051592345932274247189860390358985312432849297882320061006191745322146226057525476618867493832094784591157876921267494244404439742288062835208145618972932268926015507781161715014450916241753001738119239667031799064891994627476121271908261445363915157612336500789065459121180032917625394257270606874415294345190399471300546577714263781531163230559227782226691648716055612222479324155748447061989661753070192533055715404341348370257636172653772374429299494560436417753624643656059951344384662454477649748353625735883887414288557537217754137008759646365236113270623161817280016397640990286920896601653924174513850716671589704098746034544074120296021862547927335058523776177239405788649038869695456289750273739342251247354312218010593151541973502145697556953463784612245245734189086469502377476707911275264364230857655017995675963330754983930213324733031737146039424481177802293247687745770876180378124693242112901121919711715987856557902251476276865271346894838069128912216287006395738100666266972395675530506850703500390993121075369354364006952085429874375010194082743082104900701249535872525506407226369628402819316431789583723553147881541820184011603734298656766081363348413844524687194266009250286959870301179600467701018907805774416995907890688732009134023314800020181675147033940312629786133422741646231883035025528177189793863591008733991628774194933620093494703556468080992496778047821546441702611191893886349448253102455708482712532490590013382837614045789383112160218715048447675091694600830078311440508459404161078653736872346631538377808394558024751625233820618648551673169176339527532459373997179790352999008320026524245608270301218674824080590385885446634773193767873167040967865629779623709479071000031639590780577578381565343271207675715142873818336636997477893833503793124926466995642822173717259381106264637500533113875838321462096515364885521629585359224295079286656093238608003738416607675167954235681443206915133677163285264335886327940760153853685972503816995600922475848439188479865716835058553667306733198090236074938554658319954663972168475879395957492455028742213531406785086334498524956563395826180034499693689450431276643351340728160253952590559896679790097850711105574312624298431718231420765024350891819497258952701982048104003160200782895009425124179817807074552463408917442858776274700988998007483455108732843639756001168512764933000721114452878418026722097020195047065095472207543777821062080458163949559297819139867968698504621391256918698388207367197182746472376254440898101832970476251288152444926842142661921877682187728868486244084764061274755182092317370691673145895845427398600142352053373868672765968783800532257138793445740476717005572953631291722142911714271163684231759873895565019682939381551615829372837586292946609393436014236089560619942473949208320097567936737382962386228305689967399646967194707595375646970206653650656560942493498249018358680349343279901867260938716441070186309091403209933714934077676070600696169208698742046454748296617301817489676421938708799174927009463456891246153649087754307763422011182619374762442220872213309048729289855014692756297319676305658913207239892023819139109645449717255715365877702130575529951416900509631966501760656592725008363181125707820779970691971435192022949809971461934570724548480427985188274221103449120950130898739646708234505033019431580479973643861623910519547971270615299387596158224913611278822346659376478587359013963800503613406769356180557195170689750168137995210114496161737725190307165009919801892876767174935846000024897932091962273224530641876073561546694769455479955288661989700345296401114354839153949497136322915285859418316136560272372613646391228344369587350254105410804452075687012361278187062725799981324818377403894037394534311783235188584112585146469368187336756356106806306922459898267143988857418571297630821280951537518150768592410053288636912645483453805962874213123830177759993973743397314620520990376119534353372687662089652350283822213496288837340514160502427696153714989304110371014680846064571217945911297400249334329876088890195268826994429342598676623717484932343566048880657723009568380374073613429252446508165799793605701925617137331243452236796642020123054650226534186890565057206376196692177781750089181497714140886989701933601379343622750379482113776590486153576788087683906350071616747260023698576426797874328366898921248850015596691066602309251278550225642165316607102481684378022478174895698781926087652069318886608854528949636984772506438503217876393093058819897965955458566037407034837222085662136177359924383832895457473237914576819023010590438806832771859448059104286369595805357758350548123920601240328725367749985476688658705317390211246588213616330425539887391653329810981382720900672597176139820059698726235800317841510357886663017360463661072817143749752963411102463497582235851095229944854831086965495465321735832059811453429147487021428909277679369071387571725677799453663476043292214965387528571227857652932825577708399311840617354956354181933134361118832146296344593095131016961293107632723426569844001590773756883074127988384396345471141664519439660154514172939648803550763179898277517198924890892391787283636512313942589264625929186684567484100366806884621717394975039800013499481875115631589766466834872877754430065097458542407504158659407749474352571348161031292834310639596166204178486355693303198020841860961785967371309090146216825866705896241414171743804779986367287217462372518689085664121203576709462166176562001412254849624734757394217031956759047852719759457168427471950563929554413647292723078399789510752815936481670467550316686559811624249035817392606575338165486009521876947907618699076652180912232195074243508632852732561906723505761935018003269726605534802472764809314569677719089455578856957799097981347275098252653716489657818706906723104109522231732596933265289839776054673597585175696835808192223353760003799092083414252909333830105457181401066999100794784188180840585550782793967910232148140534995723533905271373650060232161823191979831731800560651972445787701575415039343433741698769798749958761728209554707500112575738308681400070788734561895463536941458496840869314578504426564772877749257013494518400025962646660855859242039936976695676709152669980800828528406010058980355207320782496862846877704406043552180267235456484575884009633144775228835130157322727745586003741910160979665980634540067108698533920326285890504361934894670734791209406014875334251409297343867502353546233122197178772816330310747057244580345218081412144497050385867159310523848927588052859499334581023972827496458160732598071710588408818428614851799967785050971576951482181087865409909006619544910700776218161494610984066760503037659052763398472500163131044809817347866159732274817400105001466987173337786800578678899575244004058436631610428972722003844974485672931864965135260380032824772215114512244296832875840291561515452690652467973383123115649992304943972709377278161242314458404001446697137998893043050679295486621605159501882062077289107571521663340629492209062651672675694332882194603978005223280865470257125971788083245225132540713964096887624702287294057933592100236245415090501982423318430813836470321330180701239883411697471107682583600762313268870838881100453267597381054931954298533442263165548369073350387842952158316636845374330348989762027650194278830136716551599244208445602986840670417836887807610417033380137640839225119597400623351134761418143493227030701390534482773696355990441664167717805484116707211093787445275250598941043424200938900594040790482163903746599909881178437649991649210197861289112357203061309727861636538400721354226548832285075546038588607204526774373041162472826565846859834416901927902246706508655509817657885303262168762078821663156701080292292048274668109769764314951495337373554067580608244921184733450912312781262666786179669748552166642553589012800437104865342940015905231706147758248899270618555622518696616368491712400121203168319185312917039448005422584418986163059358785328206904776210663329547804924232507314179545483019572874387479815595075987041839394985360584927570496589096599234575379489700122204784261971279381601499082070454742664270544018010387419092445332672725602131116652968579992535414902169519302541139957940372111257649319907762527410293008418481012779129647221456169683242081174636144826365990766750783849822903183408308040321538106738494761659598627011181946426806394597548972737743701066447301278035109941225473995689542439314546552454832349428376740145671738488506571366776500932129209434676276422439638000635322135702397675240387005373272287468476397765166053834411158031860905596078209017971446442064357766091535107776557231519884316806790785060590523383286734416464008404159708990495157477535782761388469023580270192694104646581072966538098300268663690068976460710915915038301182017043785995960669527740225082487746440638937510095120627879829874484943073328816248530091720928471102636675877150457991654782774081678463187975937362240471944521239501475018829512091170300992612476418557695383289353530492501364763431209807017428781777861922406861247883299746209967752030687151250388803461274342453370370787577539091252959561746389296849658609571377974377966688070487952001823294229432134962116796865410982181030189074358085616996406135685782953370275252121280909693687064106812373945284999566599303375083805073859565659245450754694340923596234364210854202257292450386713311109383640214548849581523948247291381986094051628062802139042505015982743495991334049482708888330706871266060135748509847355100511850485418596641328066394609647287478175679900797757695137292429847915075375904797983538745971597046592384080256527600543508804294409856285941434838259079722250961801700583105580469123995791596859463264464787871004951090512329026920171797204563596716730069106203130312240007775187742715458059050134977811343475137687402859992782446750492112668749284807727442695820980434351453013835978236439970176952716181032351421836797935526506330237719410349212994465420816133058120027270985955851864710682231823216528825834066782115549557461800321905143231469781779393253122057334096710190165044318265864782932531582622268501975432126172279062448384520317857281930152769363820191805296349419184618347898969347029332363118001080524739518209220218266110508789805481551046293800539867775156664600894784692553515417332996097458690538195144117325424563700208469152814322486743182226396920564851772128911796475888828349662645717958084739483388352623021811062430408773602990541073029710334427667238069822907214189130841941807051459325720186352885561259890151624523729064023077704282381250590368462194327922275378826125551241899861270740501736212450361271880118149083535451272965555285368119424740244885606685687377117707077213101403741688108279947977618913330444566429943938811189865094184917399135227014490508664154539671536989744775225344234016639599759112919973634913825656090074346154828080903589393764521478364961819520624609023081598487421906070507901383180560757102762820661573882547983850810297431175856037642567239467361729991613278098930769916999386737576258275114971863223746916159027755193244915179501302029253879085316984724951612216565394464897763119850275087818367159756983259847551739392187197128765423116756928649595648128804584339008413425505634858744706320287472395838397809593295334067743650820838531694826805998041732831631288473555306756729038914850855401291450815658164701115026387830831489175925886307778811106747207565126525880038184889103217501930975123380428912464315822072596435110018989019149654679302597671694928295313155807774145748767253365211866319317521300002804630862145717589051006163079916823166332803071198079250307836349945172277689328829548949930543559016903023050135513694429176021521422689520473427110255804781884761949861264473107819562724258751300900202580925682844914152850788465387015125890252458178895793177866887899197371088766696623263497093608880252091459529076205125489460319581148611079151990197973582709892193027186811486249581698866253682586575479162328989645222866143531511835445124244643534072997726677900904939466208033567622984813274911140509830046432715367958378245182041813309811987637531937307694101304944792274906804674557899360464333625252422953324945227401150484985419512233905278864892621124054138072102250377345764516200106827701872143448284346458651346109098714967463883734706960382961371971570524289482591044727741031961273451691202937801218658594201684320852086499645151957766396785724144987739177832806413214817630361114580257438072448595227822721240277292578264345766131849971965585584304343842864109376827553575998604804952851672076348458285567601438508953804237138897591436306775851855153894666131065960830518827185376707647158608366430389113800660274926061345266419590365861308689510477393596511785400330890708287138197925148221378280724902389087563832165817024290118251713534342188051125076716465977606076093981569788129931110709780602634519575057555137823546075277528438236795333572891619312933360492169235854795156758066193526369045698161407535142379191838374637017807694423321913454830100147396799955820931350077903997294912441388057348169730797492933407928492067314999914463112083815550271225018351227084533399191047373057849372968310879784554306570909929201280955336213823654478239114628844830270599460402868067595905969256568134217149420468993351183632906791885034918753579005363659962616046519884552071600257272752115037435322518999087097805965792854248916176197957170707607275837835742811697405612488969845734186516768504499472891152537259371948394442516373298949101045260872657877318552710562056549572107358755116154159416529750700722320898371672947585728354276042387501734927400918954399056976712971070738526862579609250533267077419393030383248870431358895321598832223861077165638291996366693255251847889776768640015845671990306559930975517323003455325608418771216763346738393385373343805979290593344657059876303831695728093308673139505640033411788592052990814865885475127022421628755622711448445913433287843748248911854448022805924903802056600760250713324221299125452239440787894161600848518278965256193314931506655622076589777286315421815064941456292702776548601110038906095796749196216503299253851754522243199503635097996003389616685339551735415723553394668688860513365832510469259949226234037305084569067944447888224083893135977222776911435566557991798179144172441750038618726447494649646615657836605187297926113662534532284847630254140882597390599970910777244637766937564569722707518194517761931984569082629281474912036151464348253149962677411711638430967240529686489500457681064817820518696524182108486023848023255165878548659692203681298168619205083210374569715336198301751350224432034981658461286917260335802435593740416277177323518101289665973936082245522943465456567089046386624153667632679132972403580961927202462561491250069953504907842376569071986300653574710317496817766297270237933077943857676971950233932073468123388270470699364922777566225538604541687769439342645106151786958239501586722016695017141957793319251207644971026369098161990992733152684069074391823049046971640550024782032470833269439001039343207322351694231073495012675177638132127497314739511981437857514046552093074068430347883396315073218943105536962318260873672609636314228700626624692110484492926328261866090902031056720788249165798953971529640607993597116160080655536066041836645357003874260275315322214849682862343795183906288532585634896119695692492834420520369548856625242716288000494863528138940779062021394258733224557830819706421685999601261068636312192034622247233454756435452487008647431477350277568527116975875329063884079587712636717119519618874429630213015413133012659467618614915356485498974748903684842609681753533556386114219895643483919410425398832599212277430462720896055508240542209712515034297542343777905601237187154871045856825944491993640794692035100070068180589460696926279149802305213892442606222778115870435614759789521581898955880053473122547083566729937574205685719417912445277079416406911166378110014001565468905844679337738469843698102964708384647525701515302933913269473089005609365017724684677740766091637243127980271395427905655749053705836796793690257106840339689058156684539310405838207293266360470208802581483604389131880890246849355255452572886340667243048018502981739172343706569013084878386245117918107660950224430902370319179210733308024265683457065360403466437795201157033879989909911636079581578291616261834953386994684152546366349525294838233009561411368130542267766505203216468764986336638277319773171643785376456445640117517211054316574885875743187512545884018101115065218971511598006647560661566116187438368750218270679868678922855133874476802160744520851438035102724554800289316070835333196803084635021064088940886870072159860645813362772885433288038515492740585714142576097531119264442881096926961236633740762510901854581378043530169774489782758385796147933265821538188084593308851705032306199258962863478848836852766360298260527952466947503906664534931917237056303437050909943328793758863080363302537465273617896645381063511041897380440233563849304485954561026081189310713325067466330236708083172735635371672589171507769602917198089478930225963249758880391694209319945258051930150303871979319726851792508272927294503961010923802268881305692833750334631398166030319432057839979492595902960261088347311002006530580862566878458980802514617862608068528266121624375222156334602673034250699606768572661542535252540755357375715106984146745985581363494726083356926356715228352808965037119927412694487741777341137782408833844482669154660464853348235779394934150436764112658189335996781437950786200650148640809058335450524998030933500153735412423660891063941921127723834041113755869080579936055208978417875740765158196932637973727385893253881986065891370030278435167577861414723856729643520930988326442247362759333707040743703152372187526831297296503868736238888616695678524763652947954589878598274768578876157479579857287319620865640592066509517717099057602815402399049351558804281839436972896344128989749278842670892076173462188118898453302076180450060606140551654749054125403094589360526467887842552463716751295867320976436925322471310632510463359662619103760252809993341719407740033456462246003653417500407992366336359561244788638605268895855200118783503638401551793814101963300700550401492584152436817299895671635137507748588807874736094111282128751057463537013540246867083564923453238676224947402996949550255491210794206769208404156828747896531041139512556174762262370416808651470108510397891837143198888714643017525038314579414624505858403277850934886356390237888852555676714087249587580694074703312014355064929844651350513606262322848189001601300237477827423785038006752843760216131043153024940352940318170521446651828124410321910594630636792728627239491735317744743408150164239996799660290219503953810846958800861079607091978017131020914348839679807964785867586369251305731901262094938381298440999189012343355840495827098753091830402858233445543376179177149950918395601080991846553922838393713738299728027010328368549998372701027681662672056330328176985827342628082269690733210989048926857179647954611717862922474127122730332864276507154697149267348880032506334398302375935349466924005528909369561208077403357890884209705033995816389934559372641035536848035508951873187298367260114776098726315238698865325123696405797001684073233974477111148430330336805606971440156548289217770560362472470260376540583411824851369917343156930575330797346894915217424105176642695077426995679468247144059075261926736615008309324540841084862788259022888570100098514054055384382094452152418547756415402547522108918824867730369493000475528630031115339830726489000858011340164133207962829015806575652924845384666499236914069522568671688747548097707056793160330646679067267231424879520949248845291223037531548112160478780277425861903146290757946370345040777792680959094851634640157310503632961125431469386190670046788715946475076011565783565088829762543021172795817608241705677051977218436951995763355207024333765621418675921073841580860736292399398422866406721229969089117971812466345215461013915169557415206320572621756897031755302519287686748652547105485245586661791417674404903509273822135657148098637686342478821097336648182351647689904237927767354149048439801800367761305652098220317019230298406710708738777071994443646883754701566560863977078326366726616038089643750153678173544423668766686489532052741583280907236067717577858665193899684993920375801119422371944239824514617320604677754283523501242345666704364812767770536522587413188115988671052458586752839734576479352894823569540559153103313086152218641697682566958388775008983713307955309745676068854056259934687359164013116220963186543795988448964462679810586415365628759048476869059423918528968185012556486139138887972569012971843492620674020403455223600292796915460401847219460426182521838570279744009328226796962133480214533360628779587434717323136194232325423810626091730846394505647203273912848925781337827866332475092870243118911306682526075868240783098442438059613877625878623257338071342296302608576410138604674967803911545447967459369591736854367133117379009428319901850825530397816886993261654951309684615830460668338234303368524456594529575965618184038418070240398735886304220407585611053695031570075320222689989202488097860572724201365266478463412570597401844770264165177791284269973058420281882788612717274003246301637310105155224197842105341870532904907826124049975931581042118848634424814350164702527883435705844021690286893417007364072170336210817664444550960729611744977811592192716531571652493234378012769864619971049134437655138014580436943762817920953881412402706659703795026896237734102314234769585028687724649367938405657830274634961731202965325039603512653398930097294443337194805300925192893470401002158707773999227829331076025075018621133415946769282882524382977802373144877119668312906765447853317450948203948187992755598282176314669777708566612882981677193664168682132436203658389129361924757244722378582401268938707577746825911016925849771576636778919205571953930738423678256188094682466134535509044502826802431928346692403704913967836301994681289592954111688042091037713312096861678378867532461583372476796463454998468588406109527278777018242575707889224579090252011657094674063667454325335600234083685506960434703401978155683146801719863248924121829491174987094740555721759001790218784559387559032264938095322532780718319656314103018915210139077695032543857351029485647728058121492495367464573435303084020461310237384344120850746606817302434037308875154825323874213768064236233289514522385620542097275818722283786236533811908422252042987436161570565059169044536599464148528343718963680055204411909372258176116952359999261325472374200492224449372906944053962996775943305835508201927571708285887220274707237939932829340166376615282976358251462901394323348404148794901871042983238674127144428963236203255832202482502115327935975829359140218304659042948309742036199620581470679007343208764915426317974190235395142204164019771560693761628937015032965364088233567911289544405268467474725274266853071519416440122668696555282872357670813733806476677042249627541614064066854524997275387620378216689075443284495635682891320954977392136288989820183556548941872510804705343792585366535383943383888101261049166504010648572580461187015686364676981614650260111109762322348645094847364613527398825133324900836769609900211014954508274809129631147400599970532491221723056868124775052836477129336010801762248259126142396466557103194410929798693954522686118240419733597191331879726442133828269848234267069261701039752722788948384130379527463895503559471222584700996497898253690850519113164556976559346433047029825321056952904598012494684231199913366643709652390154390411643708541679083222917237680461477374681818624409308969706930446683992971138606488223489299968987571913880746989767041953874084674585791752191823038589182203493082294917099513339057613235021750106420870618740690201669459990355883167554053177248597918626957292210023664659925413796707147627919390910360565163586060835140893152644885997901561212025482979848266214675415505323762717070395994364694401903476298082545774838189430735790375318748385350647686312023210209699762243321937148495689363315419259414814385917453689752952704037057446166653085460217214440120579505207729455880081040525001124582347536991116130419056792021877515326429022783834285310267736610819411191955245502623651473621517788829684609266295160251888297364762751655813107918643317427185616188891141378525474846404705973406344293364281937769811662034360692417826420774415358814437240369439412830242111135641892522197022740950158146510618108725547734833675207328697390513228915782383111228455582226826635691893342991120076628516340364023595915473964171451125572052390341390213982446802840811639111159694453250861109992022984988550620181569707864443454694943759822583696139636077905713475017717862802615803883432298135212651346723702863480831968065068339511194207230313726164789300388167299237890678511394068168266761828585094217066288414239674035442038130919861028661580453965266418566081406645319638182725076709324166599369145430296638578930348589511918751484568430131757451965336199187909863902647909144531079993086747614648759988729852418899017071433874245515127557010796487401223416893648462374111288456796259105658083008102623915168296289226335440484482293204093888054136794680430797845339787872360586910081891227877557494604141453048727191370804892415499127872613524618929343515466566218980046660075716562297953842182446879665481881112614754098672736761407640125569402750076678372920259822143597765614587986942206572394972491603937905569675679477953092211056831097444183412073951290710234080047952589848684944053092314872547074956172183823560384088794156576961888246412744341767911422424830495149395105275406504948964315675860131331950223816249062567838909264714555127048256248091671809866450929865797425349016982383482254172632092360465608999532183626205270979402882471964812514923718372424315807796284489195623484634851437608067565567841345935055081748584565055881345071154053019037877923662934976344785608828384870090596165268920657057185740027207937754947608065533172867937444468171147877067111596446042837053317375209301017943668178920662694767895191229011350938639251815355797918748352011881295639556432401959021199306476406765537426013299273312429117932788547316210823201497309520066878979658951174136396086515585219695897913259143852146236060886788639566741908340679394141474704257716154912856050366773228113723118416880537757879159437333960671831826967279043536036677601372070503086861285816718558106255912768519144114064247184633456359080782159523925299801867129947165541475310942775733157056453015600468239413292782977321055723812553181036171318467468417826239757572919028718886584341612511070332620341373750929253427572991018767155902762524563129594589077356020086668301765901529246802059211387118263000500235800318875314512121122900976298286827567417998128113813841744309078007537579581577107012506826305899441375939258708151321487765464399016554245920917643042321823805404272785392912400858754326872997391508541589483325242764193770502268898643545886280978560845764197946703490452484662367023861344797202730567347075936627156136351694471682390157761364333563231654139962548150589582491474858709825336337407826109038032455701445836770320940718507431210919538165500034436778077421010371618132991982477261760184310389051056534290932317048685190231475797577088299779110067394196438818147375795880128520663746605010279638843650983349662748629670423615313313515487392985552338591756912194122300410544914915941047096948709566022400010387117542555041558375891093301154328479476281984322970331955748809211540708690256467572149752010127767128134787865956534636364111706016703824939295768974705869877334836672824146346163569503671170688319437087886890555230617081714426007258455143054464040268949189091259459077512739569158499961152338736044111751952371477724301774288028388748932807025844683116833982610769769115918724917058364116496208041519568339377089583526593760654131486509332093751210505853444041488981319559825844867034828961566149377658657376053210485238909043536280949608295099566213338886277268839665375567063475324981495290428759767169418884420776127439843586613313122433227645539428891040587019850672889107578707369009974444423169927698814511801724392702265713057062642080655582368383620098629522837692027001652783140379275371199779537131586862445682386672658390584431597490603177464162700473849303777753809668459199936754620461705090866882150369099298998563011224670857104725152044214680647727608980326894335513998793699795832177691485002915130028221636109535428010169446522896931088451409397571264455917132436028363794244547642343537787380715534355466358163814845446037078991879435839541458536836603087711375461771982811291750626191765709263771416100723695662067442714570978729809196258203393101765702010231198115879401753968691798635352320494435202214494860555718996940144526715539471296230821664354620212984981164393813728929818051474632277093935867387055989147738938342968712915461237675073683125646516879702543941787107913908995022630674697766840012758729806960982993929254957706663871479132959343526457404186312845602043616993147865004960455430087850635909052451617821028884456900177866743977634895780509123722339983900588679473152800311156233738313064180501778753651320302564148113417935978434854099140599540206164950919814822772409431204037189637946850645148448635670840657788309597312501345973851236979982398537663871034870516100356324751816571638448595882205696650986058333025785944644201607557084823205125067124757526119639940701892488581663123179724212701271135440733122429396265995087154603661886571799225458005128440282341523170917702621689953245252749473619864690208559267514957877907451262298085686438638797501268260318885860891008509502432818576731666058289109174437297484312978236799909543802239474834571687830727674508800219299013728521366821108322796977298577188456448219020586079937717728847901570523970236592867039855673656587888652780968070404307591012850711797189977949833646392051385213098009326535489303085422242075396816607316544019341038356161376513348517285958188940037203461206003067863836806051233867354510468890365363188580109921070917692492068160337205267928340939251813667308607108311933504301243004732376880510274489013776711932142101906351290556383684589568531199134580462000967642816242282930620914324756622016364594878864120420569838402920523215502106369471285923200449477500006412483564481894704702492925193289551841020545168079912713895875562148843741861132275143337336292055979132895670057760061759601346275582219678455607333196729130603728550221478375285369893808288454936636027404483231291188021884058812494069402484154390150246228204645751893669148232187828903458712728098223049594738715615291688435916182830929525343913421122922306417395283755690766940619956500295018309172880272058618037709461528261981227824371013163503905959568660406859959626065604283546563791123577769292806501411070407966800690794494111464085652208287747881190387851513694135670189903167008861244300951889477399506458201589853087957355820797766695082644625341682781998382600940606908105949492157661813423303913866434069556720017931250382777936724765115653168202818237981906126440134514918207583038617455493755642548165615278914053984870809581526468697517875216449920707557009695766277854753989299141165023196383777644839884300001755108658155632304492710431288820666118754353512560146692317591067241113363727070757332207873349052378797266593565091747704707867399198282085528100917863075453449096449889528133565341480694306413800548966356092101173086938307424693730437674397138359888755926830218402190035530796695681437960382522438154252165913534514529887936057080784205546229414411740622988365979217360880274230013023408524900471183215927134843450360962642371347845416098695707151864637872717707534487634361853360119689913572343936108982769948473823973518066670363601529735208520211176547022171374201856409926079282845707016920990991097450761675740311237322119601356195371587185077368571777413468101661597310821396905150345264210193527810030531038948766139298332930538896384747125817886104849115095796293776497584627633906057192158312703829781620295360787868700061461909966408673552366559736928619197114670628319073383100658351896890715587646215439094975935687875829606781338521147855290667205191216886670728320855014608956316108917445337123407197242284452005678246921024558895073008530482964123288271600844143465208916697221922097162116709494836694003555447249006584190675104545098174884588471632950413288350971356553996097316142816800208825118803871090285343767543880163643575115254439923597441426293710717532385316212316225669842637003937636423951212294936267965969283813868167192819938895936435840062338035411080270086911828952494049679788979753162754884726807891989590380285490876938112448047592933933015252720649024991614688151220320206917239316712085877129856283083340154298153444990791857315392158738481141966699602830150267769816023349510067492236519678760541210743083475783509100268382004858297971199298022088158589906229473356713432962577272161973727846390892592032550531689271353060414688688221552375840874910952094680947302663442064164162437623431966131452308815952296832311282244696621586252023140744197828832660618573066962703787299378282669079053747735614611731724796679460337761240952138096244918775924145043276453566893414434943477256316373918745010583988657532701490105071999585438984697819579855634888617778206151007493475405352541232553936032028886705185033337836926394206357601175873227965555264776803599828822902811785473252148063349166719541594599715535602204307427114793699324252645173828599183251706331549368919872726122377067757392349671408326888689125890756751576928570811851050707133731534367028014346737130342691671096280050317745967530242111129722908053450747831793960041263439174383393676339869533610195764344395633718395010779623541685649551171359959412794595890682350907718625326104622786635004340432079445303071510825102792562799347489161838564386368088340513672672802108610963420903014449074718798768795246559841759772239025630390774440013949598025209189111173804486677416781706530537817963681996117990859092346445411658066706496336487264326107345115767930965109798327301397835428106771376936053526878003233541896450895028071713787295409062926639749449431524592110867497569051808143966016981809474848756219705477681108580452544236178034935270054333370704878086659727895192657350056514364898508128926037915376582917884981702803526629917031679434060193064809087131409245232325203187656091273048338213824769808810797417797184014808871801029057628215529181449813360285527956779729612310324254025025451405020525501239921991359785815118639805474864676334489428100464826783264456489603861488085606090614689737220476116144697625565660116865177398375286234955258441377461875738816220928941682126313016051260018562120503372853841441901907755764482354791058908019083348100772587963512651110949209625595145854156457498230528663311844518787502078314260568099558538184648062074604371890979811874000089869123734677731290569835373178741973238857695254263891758746715475903097837665166271133437717020473387499947012993310328083104474167137880058353599768729634655527036359794356502996678114913713371916707366521398796542935842593911754862830588750750390817507311924782212923368813169140917953883049499345883501301540441262738223601139842323678598083853934328849847201799995112721958154313723578894765447238734418253939476383867380283161997024579916965581692533794176452646196556856855860566005682304796513030229257598547445519204400763194624071475956177471428640625458152159423852235904861724056208601444954286414190207589525795790154748413692864258357403304583834723712734015816938599462769162275116123000292145059716443447615702554540982948006703447887275709194701969964594419513734722570886045412469618889993064500367815072454945829641675594730500536938533792630744970473684519384159288214072624035460279854972672267074263384832971278383734950153359848861744138282623131535887595559525482753749291795091731774965589548704894562180239365555870412864711396619386087674881517700602922797060835116037511035299094593289647341015045997592711577993824472098303786394265932556227689981475935272104384609513006076083175243426630036668598072745083104247121548878314642647079650204982328378268517345267032872205076317880318841270818574858125708463528274135715592220905371885354900262869242783512082448035001125675289491525465476608142427545165439444951980458555861099487779383681038562361152198721709350147282965863641866046314253113007462795022526795222784461798093493055424644903079277190972882628050676117833251502130637640263534118567083125227431370531803785137147605073270600666333031018151141702591573888252482668375715332090352126220209280759430893813104588804777117159198539793705247289318443405137753595625645182694155999586312499030501486350074584575258392268615561499768624797726026667450540592723821925226739679471930434574667390575339363836631852223772030732444112101731111339401361039711984784440764155595124914921985448181131467874511181906026246328446134508050706958718282097081581829192794281005045786695608985982837592385151920696247985591884595453455619037982187428323131113249004566407395675556959614454401565516758447108040742563511421000974407698726065122195601769879456538176590774006770880034126531170501986031831630146137276562838227239824024080484297576368611083284945651620070908176328002225053147644729770176784650366303484566061291674030074726167118415931985025668877255156083356796462309681584671039222374994090348292810173636956800839428194940200070674611721570925624681582289237569845878447820655767155227352992873642794811027590273710981837879001782423364254203898878863717404944543234697527695283247253239160277065009275997906072003599778556059491228897314415176144109001619489341968197599997513599564222053422721121776671238176707923506945991723327682848306690740326492165106906103176624294117880816080171430725289156021025739279810622138871205866130421277307421566651066128721926506498599256966597003865168057730540205939674685463456298079004423910242536189703295092725960042342475430622810118727462209927920259212914291666933043261539137609593468941218426885092232201940539212003527029726065943404670957369065626971000218019308993733811174638084285734327767397217273707916144555257728148522504550915937523035125253286176079503217666381728602691023948406058716219604690211805953278348548521469681692120137352135629073536508301319382959027982812667444638991749130365442612316960244124555104849825077204712865510378148376212144030010186250498310265037760457574032706250133871266508503023903765012114256650092489867064687380053787179580051139764616582072230181700743179549513332643840404667932650494733724626652314005746375071126943408213817113078114788293214470257798554736453163534087572161767326004325418986855239393995238874979285593489957081967883468557878462159256958493956297363038370615617613164423945963983334605431750350844249852762855403018844012863726739886352492932775638562341144711203775212622039635372004296080288161421029186949874805731821036614975944970704690630791799466336499038583329327166994827483066415653727600641005973634023212442342035379311468971991159257996497213995303050282418637603638001466712609776178923259404067595048357476657003610910186929011931431422115079484297450210424100389836014864160197837234531817796626367972347704977738340911933455995548770457335682918456320906250972480165207832147459181855151626220964726272600529928635606247913583988880694125063596442120327975550531864134264781045367807990163324515101217423373608190578972308805895915682026249233885381859533781218751927239062306416528354675838143931908344431375713252627941899232107518013347752126754351178779620699131413505933732862779297117297661046519970195121539838271082813322469348108654222978790473809513743567805798715890822985826451501618519115485096515665511678097761411052289711611262192403933027190100362942489210428440119253193542900759900417502180319751577916775607400536197205240896957696823812609842153817596441482302068364781650465388133217634983640187064354233352520618397443324913917582107269634205005372255760676999825115209270559858174920958121731444591393189876473401458396620852209555460839869083596596472834503136443605864317856377026877903645520362510115862979269480914862871258736761707122437167484228019086092208189104862710141691353542309965006522110201259926148259310669132411498654239955188040756665038474537469054669764417295222933831865750249452548992964825554513230534872040044291923982783798050045551288673644551477570455889240166113031329998866263762874406235614392020142882185474409877125315425300902140571781053173996491850990485345948555629740868091177459745633493336646341086930076366077623672619815194984533942248864936618487717703069690749847785108025678279086978223365015505085579472332656054909461960630499059083876844176108001748249026921112516362957361502364735410404146963589238504602182931615165835322738070244566354204257361481898117085789159376125524193096210491620347292123408936887944215656582436469744657184006113178997929490957184776372658372561396653843702701354585568469168908623020424387536308315016482319604880109187121847159983130005084447176949910956880977280127589868016908559778105404499645093305054484121778927970307535440031405868340482877962512316730880217468395756981505580027437213922008431565691283797026424098396060258459549477422972863102209689248288850947162376360713878187963890687367375368132502631492168488616649927191065376130893618238948362704000069625606268158418458852193103985331668053292171864759067096085084888645589704940358621084284226844055700463357081375476326934607715892212251045305746031308086218687993044143711601611654054620705973703175292181246782049265361666574949289085873265438502254393317510605625427526221605935725992596471294822696414922025619355849277090776148257658955023525300529320335236823287024019964387337279354646718970736536680160850759454385304794098003173607079307739291710183152051250905355707894311862649126392508470250731489568579031179037593402328936864643343282427935305715007844467893402767417976989637593657127228036029700922221715619718423997946184677629674781091671771023517288787173718407965713321033751008629444622174272903187250579685504937846636832614092821631805450973398051648412878544949785124501419284721161767892445125585318215068795002397574774121851600547787952318112643040567381144267375644318465808508705555462527703141460430989080325071327638079337645462225490767111745158175757463807626071228112712459141251759801652321941591310519587974625486726281331466147465389644316392505369231947901012745653848246530181692327463032279792360546709062899203748591133454363062287071792506680647687693001796578011154728777165634211858668722027622981275591557458982867163581433926680283681575484285485966073098775693408443938255173958072187065339819575529568201183354516590099148192867170730328842366336334563640824039511683255056195802241267665707717436553568707723798449055688974018863272459377068919111251391792409476314537970986319543792010049231763831374478026587894239050346286056811272502031276498993846165648878146457653156488361243080710972253677818822397953470587486262520155822062985167093741405457553231098463321645641551276057359986856288680708815444968122286846392949586486007355940546342223673671415381810477721534480694564485604436383242630428073121227321343798667214706260521134929184636028431699667830591873284528550575103010917343775826853318148309220404298526545897481606625563643077612014858991775428262154831878393109115513763625342947834224983048509287511779210192241109555060077620012477061271312741889687686747024891681845102126684421901923387248416711867781784049985793168934755881963001363838956086850019219583265892764768106717950351949676243490283353508044488966944970764562209205361917321300753218463847742163844195779522429396714355031117286069388786220380185850690963382789638550555460993515311862860708664168547441171493505559674358991649473799714749918506857867806543566475632525298771384734139598303397760026666396998048104479665085273636008074133700541988956548651095321338207348073217844450551360273869451512683806857877973834835103729095772172800848390799792136090030784527974992891160215892134074719489171206126834421663435160053263452898778083164421172692950073539700997232769179265464042512992529178905506376504413469371110369228962483522935781049382677751553254427211577231991974067551688159406356191250281363258539252573409947817436466194867261432178496019837357079491806347220911884444595240247155375226851247828277866504651448091234167127628843058624382301212812079502543880508553594600344771336790851625388072924466980618792259526184996952868862571806319409434956745031458583690212365234551115037615719632060117576687254934818147148896864573270187766235855520048936793418628300102044075471925485663986933280642628384396620202410615248752393135218243910264321892639251468408947221637073114815373558307715769744972941864513363692759532035306890576697392438153038930797953601582998085123606599784968663508468952670313869220013912219669516993371168100967898821280515652404481721820310550603798341619472560919721752941783758188679831313094521839387579303884370759851682313764048410157782659559439552267110222059143853089600155495357558660662962629135294691533647463039298083901773408581185447285477591572661030148308254258773338867619383376856270234896595896870772070031722631618116446231158181514855180749810959818203794488885143802267840543116868478238531525889454321432076642511415187751397793157299375985030824836094695960198037125495238512863465652853066512957833623929689775309245531938914045838076690775119287898996435515942022709783190393635337394418898141801992862087714013393235761046551800523267448958660417784078373249712063314131613824866653740264217793328891648147828225301201674018828025771520811740605238452767587642864239512866038057754129826091699889783952896342687265249218726561771119818659433171206042342921305985854352654835526183615341462965426190975757951032958293072221943289051118822086216813884349838149126130221389976605753270865731616075201342508183039165270005378402741707816644476602552394559130010260285406031394163740052905592301765000351852464860207323070307427587753372492236235081284248319829781393864506999096947796077888050598771042724442043046095199895967450905620468926792064485829855096909282213372266684155633147865459485041572784139965514454360576595964727549924741400598029097733824891311969090524464265309851706812800123366072695674765689555143429687125467528242541880894794034906942918334603083765267758456508583419902679592059313968558096796531951929473497622108426777786390814459477838532209470290286102269840700240513607055471050485435057198410965955466398498496025925870081650112329329621426281533489747304893060373113639648996808966421252578013009053785549165556879495485170586362140790944224246870952678131754614005708414308028071684853655219604888199482926795713466703055240659813830187881645533852890249793909503711860314223087435209844223790444039176983358727181833406779303215282677597053084954099043811162731448636087314865619977797629904656634894898262416242490735940432528228612270569047244967461070637199263450953192540775976986595530201910058057001127021761399365108897226519866789710981875271304961403994354446060358188121116460422331312967159761482530467366010602838597456676652622126134315758539223258403210550305343287219796669368840907287487177848160691857370680603872644719010533629896324539539541199100951441966914647992745850580525858205362189370065825835363182787162036369095751658802886161815975705860472394723614477152661657639812461814675811710165989528802454386470723509623432375057765151979587518505622535386817689917286901644142453705155818669069511557939751227907739074354744210501211394951601266362802524424390538280565421520988727298702562011057228278593073234534253113781202787983369359658499609465631651432216695169042665391243106092525159004488911715966934801057134025355769958704558040570211927737723338760939653220192391956265838292052362517145423761880086488117723039213503130063557944717101981125822098038364828192849793860323477159145011160552719031594603674624796053159063862475483663553939551828514914795109060008884428002690426821806578226860632023477237173033158626667940049459835102654175217930467806278239097252529339592880219606552242070064416162424047196022398392545922829206207865642076320703407051089287946513782157656082204022559281563177517648146335941545966113044806238653307954713521899479051779827332370510096399978810939016350901773229524332374196839918746690030677444256096391684101062766859651928515774304540151978885727919209708713637136076162280767764008580156178986465020924296622295208493044959112872620160293557969498929636234450659310991798279193918914863393724759740285313930105198160255029363408421483374832451917448938340544746458841357628058152434295368477420240526126293141015499657636983917690678175095643439330352225722742542978630793850322565330324037619178006061399965590403687249381325572528854367898898969432542903934960632075285832643663319227642642071188876337475504345650714407665678412294629905593001848760788650399057720368116456915926201817141066844485679454451766975151428546194765970262345103194489162701772706891258200141817536637361424517683571923249007557148135466866220476443290711845368898073912509909995251439076889143132232211744554387250520676770318148584175540797946492670733850040771191518853526692785807624514789867024924707285035795637988922128730085212972711336785690777981490327852804609696249987546002720314705341598554495637301987076552355060244042709176395408301573079033172387554430258615709832426202897091929592297966912442637544051479692694368752772937471670128859624059402271274009626589381765264221045295114083865128320693035852579591242144320107508440863407251811270471177984443193639517957999243066162377262463174978596175100164572184524679657139060053063710366446305944439812805017539804396737853239781116400840431778293722212108562102210961742488224174884047536852735054440779081008138602707863769637810643580843275008099037692766423636822240619897265870436889612896599484340073606052698207248150009278464650543158481936390176111704969295624845270541618821044113854876448323865965495214270652205775054668528478969140312349219140835888745380236498881692807729032832131580406877053456518422966959388601030264487068731149151808065986479382293857595689502596959282646353669751282913906932158400104841937418433836471841332829431456622777634430699569973067902262939185846838465991496465355306381398247699166397232722280783322133957032957224023499767401750411285584163132046440290033082932087579178931678987544181303224597624112499286430129531143975910717154587514012921934937867263541663280230431962477894832846487030286127569265840394879918999577310796732956257442213188530588542930938320494909766966099778061081155270968487584430036301867208701372109559633248504754475266735404139065286729826914818297576171847587115701648829698039012300808031822126811848783653950642674377875812884128780456456686880493229454364058191636118986756939123353045484122281237596438760124130950532976989979262505210520453096493350396798255611440850177246116798185209141043690170419126931276871933596715857873072273653130594558459639543958807211511799286375068568410323172887372712205402083329766112910374281714463363397396639392985183450735307274513522916608497561598102796142868047886438772585738910286111984014899349744749857827459682414555808658490307073234665232622851190325011332098083938063352917181067254554227223816019906205084677186751804068308741635551472561739638417564005078793307768025659515166741801850313888570854208292109745131708563964967097829120528736262938259713620519966274005770945255388719329129549173240029344139155345537172571425232692687446186353930103839214710007810523822094544071673449254908127814106461806753520511606218676615132339536109454156504168720196182441425023591440250786930927876474948197233775952202135383917055526936034826786835001362812199270883087206099702229632894971020750529430986276142794523087450776453564745121658152325720283120583045644594599007298081680684211295403988688006052976875403499043109558070967689839292759697903551165786485876256034563211254974226203357009552158592451065277429268261338769081906501821932143212165890625777360410919290406700740237443699798164314436598436909075377235648852225378192099789340370498399788844501574292036425225757068749977454389994085394231006139128305524208244553706602057875327150855143379894331371337528452961365069825122663936854305944057965917880742762305779720907812915548001362315640341775011787554105299673508375489606894862188585730093207180110523041631115304168445589217823578907067716953045882994167644993694478444216277428454810952175179096080808448453087401116069819729233671342395976132888754177491187235185317642756786227034231470756470734716886895878014802483224243996265652596179562856799056272971158701675432190307860687702674164716154621297625673538252416020545301722284379708457294791420605517335201135570824149784494533491210200297503491515615313634550693446061638548169420547504415181937061304752688531296895951439528827213314073067248820629827151461017309191993017881482242172693548958339737680590924958856727400030351585804010224920288073500834473694699521362268815019622927617022501624670883122376365392006218917521412827011146048764803961268977854561353187030257416842063523129535640823307146568417169448959449825145057024303976023553808461634655393441488498414086495009063622177168012095747228621149468471230389944425226211104151382876105128236933255783000533660513965061574067311313947099107236217313282875938927541115986625504411438756714319319388077395258084042654884982949764596110768253282224722009118584274419019993559854125817254294591383324215509612567257253928646728163617731879849271021065383896500213579802706426840408449677558849435656834592251755923584881503469173055314754965793838342482436239009413876440472088862005376977242724521150714895542147289576333517473618843547296109178134464519495809256609429338952177154455483783171658471048032838770972658912099631859243610637054395381486017425926446633297652486173209316351096566633861527212728659983308251359109936935496647445297739721011744106327083017024026710136949837671342664358564206994546129559714421519663627139981952437338254127277526663604786972999164719321962776697095498723371076610488856134586582539178558530852761949478087453515740137565089584682880966084524418846806178130799725496811102507406775660098768495970690024333221582863806735929056053260680254068538739213421275044869358399361351081198554890415846144982116864849151488168479334338944200148444209965972642160987885258956744231291014431814271969916057396933102880842254720122024488726573069682485781784880503646167734187411028966237594443533489444750573129433117525752993477110339896656087029895068731731176809651017659332165140795718694982066873981321028065912887720183550161410044437788016269162887917424733687407332583011387508658931079068768805411508197249863160110871596428520293963265936950138310011822691228186545313350870948949078908178070872880485694074494944025052058970604502214423444776622906043020592657340852516515725777001525209228144150912103086316542582404542967157509331519925825277867470061981330184129256916413937643326584270250894749246197549471990142303096347231011192863828123532423432962573873647241968781604956740146843717387910787246405774501577465062389543524631780520577182070273347092221273356030255083612673816243024553743482504183715547467814685913509682059885940726851658111250389712988846638958446106037024609815979966482486843038745672223546097886849719556749502665648011667096180500839912888837475143966115625446333792781614281800174812621685614285412095531038896177628395695120913270611561122488618336429557725769342863494920198372357787308820047308052520225054358071212316486195725103128020157827349374750715193508006212901466567825894967945038164071427480674028503658146480493147356799824166968537817904148434773378174986688965929450814139158675309382369687674509567484425023617501548243469849538480969739085592501413515829770854251410524784372937276036073848932850011382477886299813720583605199903925764131564034245737716022124062323263091224670128419673384544531816189383238165625409086658114005704717674728751334342322275168159132778123409598907978739754296257842773454161649001714469445519593313449358740370280428856407479562972667197296700062774897945436452964395697399517243899946368687492710408850784465381899715008009012518250405693872466889450388104500803517812810595982100895629367236148380089041354631066710601435882894268365725247485163102802334085640885289661598344844564377589974199481366085022363198077917285258435191491898726719902698338175729457342747502215286022066388553362523120448078977742249947285155585181785871085352258835749623347716574199941773653221557110429520019983537082598133970612266117931939833108093995130403618302147317127072465911608949572631705644503778689261870009653949943532224236936801212265830198543573565488019798234498355156463022415619442701437172119865676249850228311009620242786461674683243112420536238116674069287406785600171612316937664652449014942800922545729947687776663665946438898846199856385274565997577042032553602396084419602979185425749637035106020865487125606390337250142028977762386931852053612962052311539558511976401002913882593048327873807223930328894177885276355505543848921421950662931961439244469078471969458545677583641509860164194361643828278837289268347433021602660893548782751613261497672576224777791531476189324342117143039743795860127144820739358981648322796153756716417146726432260252174257056385249196109886453377680259959432790957121499917453140285259378313770959070761084679888011872262291939496892206805917428082040249439975321695044039850516240653164687502665806411317325844766862247300686698122217971419263172155368107356953083074773476583911821722860811361420531132050747380517760813132948477474861822084006060873549816704016087646989771906971683787667901883879502592546064223381091661323395181976484118361716577998684821105403605999560082200524825774042523220276022037015278768486820229516591717244826476159221963843507845467212855234546416018539251379522476527823209761910099139554804782012821122624502327220467628505957189210669602510705341896777194544251087017549238435365012043164675803724726205616025265204030964676395366142620579634374120416169030850070278096996790941506899528117778019662058864196926265732385971682561682783705141817458129082175548855541043716730333536050209917848977367227586837377714458639008163885968325219883556197028543579220552627559343879966305854209256869583863947413760476472508213865119155412063544026022333009433709754185173863011072030966394606972676915699969975795522678786706602215527715099196063899479717027728747660455271935816544889754585283948774683276102294315910101650226113363907229106817787016441781383698266601908619083285506856250223887334905063747070691022557519813193388779464212370140616225576793725860734140514774158622833849357164090769946766960479332193390314527573657832151210094210451147446846675735032168764953929447281252396733219750444548179759230800963086852407268533466334618844047551412854127872413888418246850297641654115677236666549432985388973282659853272093663955847717228277799388881367374974322273948671703641174481772308991666005808611335138971987242005232580301758313297835975834566138838743681736141700282407917919112357562353796053811211118494897671076809947269744960120275708865568810627183701612016669752974767282323405131397798084339184309741629786108591188963781805185972400115789486816843748191195140016996014743446894571839482678096705723507391354147217137371775034700396087178631598680899711879331268198702263007323501749983832801783624108199814666550742166080667824348119642944624227303312654974714360154453933191789203838424699077277333713207073109051866709001708951839026437994832405680197405905624061213304575555002168283795389593943365578565637648168380993850574707656948003748925185860628365543227152204804792205858249796354885417127009455049096618226460379953359270947169799928134509238470094956630535365757260927522629281585163876061610540590445391983361591965419953966944900857504143605305112244338410651081735488735903175246077072967963294161433404850287885334699457705592533081201641108879201696351420640631118762937943830797999008532134845202367266405037700138687665235487872410607750999064561118034853618533247726013497785262063678488261217882840339824778527191614069604687985567001421891696144322001706246396887981524735093802925330458075405339462020453626859276421369853219354679089085255435379167180387302865708114407908262171771983413895010759724202900705137738212674147122024433331759109222225887259536339537584558317072329485715788679381385614501381171707756516222245810307472859436157582706590525829885152625162257918926849377533595201441832132072019824148625456166791824687413277820486340973879074829172834754478166937200798776772195207385756710536355540004673640620302985050620834718744527656859243634407259450292987698683015528009495432586609312598938248139053676234995451415530246316694427905793267306342300823218143997493582146909659534412145869536720965569452190817031477706484395476236912099219437899051177485125977828329423426156603031881416600892716935553713505942476021242529067473911038508807121953285486615010665557698515769333087632461558141484081391750192078608508131354289972324582850907077972333745877925831482941128231191153408640479369049941467391360035986251321042405008876707587082141593435433223654936003040948538337275760732559217731486163552661181830778956142882220144920635270904190647677267375849727889667342427963755207802066682566446810097363987920007048777088489627308652525049505612000988772584450229992536729690873862989777406431807083229500637995159279633435125535808493675155603933402018680160095786191641455908832828640854235857476105988185203357583711960419104011840997649963719195996872447875581904250134210615268676507639156730087662943477765639045656843261775920880508261281583919875348857421531827427413013434815589851124571117601020349952665942609481959764922796461676592982199399150403114609650836827128258597623517640940832561160154940752893584672802402646398653487055326257161467837099131322247571997213787619972538990457789751389089769194393780987754884589059543065971155947706565812782507947019018229262063841734232000402796250074148989566960121958034558880107863401226937759416801022177278649895324103955558368916356388434849607099686517503220732379860210381322904357716213213904365553421621537461153909595778096316659512351693920440317734540147473078760949764504171051920319842293754136066019493126988872828589317316907161958932467690798643464545248976713426857270849721761706445525034378766722924835992889565516847954779277038055584785363974014712466605218088878157372412013264332697880482571987419663205261087332461598425169596476623824003573637605417776092591746016015378447654323428000528888112337052647830747194559917876114847481983678412992144919634027743376151487360554361720100222036653627062925108653957163252714712710392064760691486341888101444235292740745571846634207640251587465889039572814406119432001213517829204256401264679385141030243618086250621346881603827222639998098246548181313452374860914795118207800322885784662462238780661610376029291387586112565079085997324359749720772701397058580503235337780767997219411040594895659857990267599590958572355290621235642739647553444824775242651023990427360975569347827183387972150430444301371736756800682813755372468387597153684069451592013044377795610264576194141600423546641456242840504640459113883531326879523131818605547148632214917851318044105181979142929415268870631173471105298282589057506196378446033401304727417556082130998822629647764648474080797352741490376604037083401562116620687894299492995870908498689145869357816274712613360150853340928371260176235718232397467448502814966174727220643935480691834153123717535111247024617280380891787149275437088807587428395625643040025521028601431093560803472693711426109618972119561818337194275752679880808723728765631420663671849555591893522632669410600230376446809802367498339522871360671088009184154921448311345356416592937581829265343992285860181292024784927849196942369025934858023077415030245934048953557590893087187797204668932319913563113097911509824938605152833680724860103323548875600811641158747182440352024269111545876814643404972537664909700491848942337164226348187363369276590211538361664332813846087708023481159859200521513907174261228508995433285643737532695575585764068458840111345941474165266224847525591064744701599232233046112806748705950150146852336911244219217783707758661421054131683640308217254726715330401987772099824462638789380679206919995455535653671970863457520488146092034749640479758982589716999961229438751896480363169853912413038104469510201584988701306185313262203719343487225447333170184488479925775232282264203689551780090251521672727019549096997050480063688036379221589309681729889132434593750445807509243803353262632769676034626208142519217448400259254920054100071676273231625148326146596209672036591455965175772387955290982738464751724737285385630848786627614688674533949557710564896780940644787431003442774260943153434077859723471242984246337870995667513772074101937938651286203766637582608532839026009613099820362787053411884224217776573271444233019536008740895890270958020720595328102685844545335330438296460327642216616033610993806508136245888360810673794387473240393722269915870131101407978411467604003574665729981282403361467542740693088267024561667749804664755165398735738091211984181709459294672939864973219227444891354972059646679128019539679529982805299218461262113154294909272994318122118123040788111180404584934429231596869534021067312981593480179301142909824915695435963143105844934994140488659640462288485631772808052377336142151372373678338182273012454392848783523904293081168553003124911845101172600945220595822335249188015559228679283264560463941687107789030608365889536760441214190108748085622054523046051905764353669688425447891513689906375396022002133196258798533605729525787371160688861355983331192945678714762446946073440260368465688968143771048430514988281369937705574256452348647922835429486180648619889812570377656999707684486707634682385370279357444721694938554025073210279017351372724004060941855659229586117083850126886248843969697031381152772632503284259021492466619283847284491961252601754256727310988894427267824547808087431842244585865247498926055257820047159452615965437909644561627677736773294666394295354267560991497738759586237220373054047090388317267737787421729616071635846955906127373229743857914615070638725772009307224640713162397082509445250372480223870008241492480408961145858298173219199873159703638445251577191714396922025993188586215138166932430761334573484764923417437049533729407621771357767415450149135827506138461116215445631799390588389943879546041518246186201910204296892634762029798765599593304763562108147109654224572544309012724948878829556988085948249341431644000645490996724583850523160835355658228123068859396578107260466515495766086987190555387294686526267317226480928904474618434571790909098487982093632737487593632718709852068982115217806419318022877326998290957862065777552630713525183375835581866302091903249347398592497194254341673471472936406360860156116089789309888017127801895140689946181662199302954883291937638811409247904836828987375572490749430871428589229399598595207617779589120552745406849653847591468844275335071105651482124414766182569350261002808839776373443844646293747197515484044044248855424176332009131846146479347576384719739172685756402935993646304645376541914878978199299236139499628252921076491762637288047055544782583104203321855656325607353382291334562408343552669064175169698297927568407264526860075490471199736669404808274264506662335773456968969990854196582327207520023665715535729560548867492547867981032098791332031717296297768122951345208883397019098333804393389288212344639802470131081294046654513836227324073283131483787952871247767289500543274330770508882245505823534329803114299202551112618654592733842244492615640191428844773684936275932933085562652519897738552762888119718900135170429649073357978410083608594534891534852051009380377555363350939437396076723589344486163660684043033362570257675110116460245029675106786799121749284970944579814351264815688649076672167982028738119107003749938570395731187763685222644648035581654603107093549261650573687057442743774895384476755798892606614869833435808899613455388685298875647639698325170965377324757919390684034480412377671527261524577092150616933209366065461318977110406102935125320286510800828162097931102305732618148455787600800185013288837127573087415825256282096978824979347247285958785461026956477638237781187292036138333057853612725494590625667376853874521508090592188765808985586720816032300550319267223818273405127585521851422465889072615452712355903832690722374462293969206863914933124517951408180588538205115137416525973337302883408484917171452389853892882642556927247007569508476391509549748249006138689011450209674226927122768896487520136357543628417613321111137376489188038407204215674015000316208089961537635341484718418479067726739045268801781653659939792690665301427962019170083221590457926548622079941352254904439361410094315295735275252186200117682787029743001848843072044862438681831508901912597710351635253128478899351168898870499669313359642618351332906348879488394597956376968981060206627753763564556875294050184233205329939879658992226453978860385565124291194529892285777584211516815659892724564354218465542122606660554953225675196082282377186976446856998994188943721987246063944212209171738045684230546616157815184637505401966347906129758578808032330107461325367974197645558627294463702397189977193702297015384201040661917372263858372364334062119731022624624811158380344525814127502723630165082055857594167318307973514965589079192227591984351169132299768149765180959565859667059869152088625250799692224574971225527076515058344217405915443890944182218409938893908852735354510285450035846455544066445704676049318820464906509212687911024479660045705747157121990470491876144722735737862264426317894948788929662413640039853097859963899614235584616257835504100281014690473972885106403700341584507204294475742924754444789150978944546770040084860090668772501712362479304665801731136417526314149336787666409506820980971010060396830644671315960261700334056357884233766341384516655629569805019042246026882289069633256361509527794641137445957839092042934926358610414391406597732765092434853857875189638323162703335897441349694715603768634793333953808106314992796522650847022409442368187883254499537341675924073163699524185050187500415344614807977238675527489519179058330727616743287339795817026663117193240793703842595219612399184455140797186842859799054077932061679765761695034594574106573452624307145346470207725493560812751265034482663765395085225060169967188609361404983526622056326931992802609845200709957457946973242479264796553078383598340550664784709325518208203151974657375662853425186759078459083903320484011146585563119974481849702384983191248931349125027977614908550340051006324423579226371923372886478199627446344671399348127993099911824465989890904383703650004335736789863609703999424396527544636797310212218310886928438170043040612589818188922734071184301053168070913323588643203651823940401510084426504068017361452936398534289242819298471704804990866353512286236233389718498374978257559578727741733890247242724990471733160615830538461490811837616872002057001112249409388331248781677332297014402855368194475493000540771228744974423478393690614059502894165150112728554445888173896222814485849344013481143194910050726620451319280809252156430075896600159317070289211149796698423138606942781960041629091175808024292893172624307960284761254898240182019536539065816697498108006875549412326695111228582143965067999912419951508004250774789608197431602078112005866322974313785870146686340947845093256495192225170107316054064337998754293682544707627714405987098290756054631321421576343905095284747191401517526156582737281161217930977274398711069871774591522408890359378202720350224135658062165555027868635467849894302084301759732816928886127134968292335464655949645538877099631268818073972836717335219073307021513544661442196743075113482991385331781323218199542694816171017663192551056918526773756512727388668856782310201658346414471049726612799451245929103785214599227838044905264081193835043070756225234743458998970753941094778923501140959042741722907822019177048953097695687717088846502226461753562689616302649874896187825406746844136347934167850347072963070230975047502864835679501674525596352728969287490859818037565068763583504134446980109703902105438091664750216889161145013431696220049678524478284082993820604232771193916730096332875306396281774305116299598387588636079874514443109410353777170440920901546640447362818883820651053844199982400733861848760615123077107967594784657887878328235137162829812470381315956269374148825092099715795142382406911287174928275521645020693580967814282141536161681794302083172598246332840262217979173043985393051037087336727624757987464087789643860655549154667743387513554329479479462008276950681066715017189754006562760405551356175216669654268111498420359280815032806562315736659534287749675212145555146340600758590174898462495019632057350055004842399106713379353623501564127352719702984850177557767897357708903456592849740370665517559471708734113017270820218387833542175028189386779874513638759842421337498946801953764927125423871275049685319534701073885609917660946660450722161264501538586899032406789072723600149958553281938310809753165097529039766809995692981836383120307998324313378472760240288161978491037156066176970156477364474961646678397897253565044995269889939373395695799968360849026204911510039969211778138502286394903670001107376547262813030888928625866998438881154942141725880446788109380451718235064451940926736827689768775877811387752479896162072087463522367682115433476910681807828096221563346621372085600621379137762709154381888830622492643247733286264227882135344750367117427981961620172568808019876530395225842246702769359132315232937957863260608252046551065781886095465140381866811668083125583097852499223789034849491108868109830713053921653248036596723256463738876311649929825485707954947927595452832557623937002052205184057897422124776922283321461332983381292650283269878716363515889638848160901896948451473543438091710720397177391258166205211653703501893480796326518034177890038178006572179929737959475135437816855891705369551259279297620747571494521377646880650449380411050279644837211834258347449818796184092857544721049100607684532572679611424505269885576140494207078361636935037842796851346941506820152218104547821149754771292329703290635949110693586391700828322413453071183319876860227445612279525867369319928179970286994218270237046534142625378517517498048603612164200806395862769431633828583067939041502244106818817664157205421734623373036902180893804377657194050934301927038253806712617584552372013738338350352690192228798977368215729853256254819733183126566814250000660707198016830060122485486437486760290378369105482138301033114570899735427865782308156980716300345709383769721408068765815167464074800204871148792348777670405786605325629274115207813386423260931668073463456033634354719613512751164587180125930141839620321214971213247984949128257893615147113832506908832107348475825250282516584925732786561338398629681110278632550338589295186130629010499253366572534778490208337908029626164421041685962362651725868601108397983025855159925638213263758888330595633826730619941950893847310587469720329770866028915007559051931731396596234711512596661216864006144926062734453586886835235493110483065203805760742567665469569313707596438045235409321843655976564818180473771792461205564706611516853784506264549762629201163624556252917055632785749581704649293172407345825660939392155163383144279435894553843779585484043807725603743224462728699011076979194301727400587853969598056462866024267050580581624101645613583740606734950770792536653627638721138306464249147540211676673312638415631938457047302003300872507224595000045809584097092403412532588280773346248510769524241408298239047811019474089060291209075052061580145615498869278450384761652167361299283381501038499777526690333352787119656845265987492677552816652524654520805199953197930152824825814417609374478372138856459949403438437516326894743414503694945233634499950852814913311649644201399607986058183744770613481317209733760198548012742034568622837425401091096786807177741253219950918169886349538384299745719252258397083663767110762812406273557848409607338483918353078086603565712409625526100859341365502243951298007619316423387258392142659380427883236832085404890970645422256852255313091426324808336415578335152342148700875220308145938352288402693695640517146355985767869641764993968336775459608750189252616116240475423966656837450488822127275044319439250690140272824501041650723987053465164135940106451862192182331393580048904247350965442093268316002859767489031071024834948305303285094636845197917045654834302595420715517469176749728545491704152682256744185186255907294235096265490520814525246288168315462770797531120601328319127212800087268032622399438160949708780923702072444652018580385462022562025877939792762601514136882688023065706745534457177357085535633151640253955719829302428839435121342861090321721399538227519679631355110293798868616495456800276343808611342831316371661146696311648670053818810345334551181627152699348971523275059399772037305349299646463118815933187389521852027946008961253723992948507817211212669339939977179939048693815500405320218028907963769122481104388395420845329874435587830039339584947359656521118234645906648086937028386836648761718130075278704307916426979558952810160596293749095734550736128709119346769044519655230214554267398669142348281778373890351494368706839388467888237339755037649348030251084063493258511757474072288282071036064714664700509181383036540906310689964190617920045743858607716748742386570678034720644193725400368871959585815308467030832104164048615703046382199003845514031724216174009854419545681857153200982013733573376086242700247224801459465306474257424329232060030794450553648977717027428074921280749632579328576260044258424899188679237566801001728172215504564683139523515093161172350427423540101396979063370440361791311484121050455276576109678208810427487446031985583500178869172135189023711028894033322430157720195505733237018452439201448122873609355350644407329732275330661597812178973137735874554033600291687289457489661645977732310003606786780832104113650649640315280870669304950980187128529294635499136639318110073513738000910849641138840067281256036942059620850287209892035987258120746597918396503924373765167259059374166002537571024704115403470419572424821145441326991625998664036563604161767824837902797487882696370111006329607148986459626115007870895584463887885164116997059949613720881660273279847937672081918555083992787806187589013511322615721722648049283606717106223863371684540596099295458773908162632607892501656307156577688576932534356487180853984278945851456458633363315316229780421894602461674544200644795852030382355716336893469651588930616350708698196194548085238817296724973626459251909713415399861566599064380230878177726995943228783267101921682341144703975657241141173182717980755659669705618435632491679091895055759189275711032557168120311226914671713560780930797448562249022913601857645916246777012147803090842608362708655788464901061447135159974727537177899073417069852337115008249388638748121815189180929259258957998425088159901520242622428475283317480359292197421319075397901163322222377424129399063094185129994732904407116715700121028080543462865272047053527851944252544813154355405981663543929526135595506577464213661778001093213867905096834011549117200157162812059089748118600115553475496273896478116577128220206548135467213547201928955293117836223283815683518484010611518653865088042657304213722906001327333641095430847416542035974022760896346541748306752176366455981951588324163483532430012675993152590377411086182901398551029559775753929912734513779318723155620927066546290327605042693826905529530631058960876257445044302019832002432655187382481797038378368811723228250163129853230162853482833515119413667674127467795734881210795660022845676295394253328783242035628384733966472913753615838106924445369933069628418826488855688771305231781519452869378069285546106879475249543604419684003741902242498509911759817085593108069702195194874597522153261404530524882447300775688534741210170529842307414167035972866859481722181856168281786182505626697310770460487401457921966517038201562853436704692085703906665752585786177839084600598172866656732597566625060545515138730580296681305838268844343539944840993578628319276473951674152830069440703385359710670797968822985658398995878055573517767968669340458997232306682877659285922880184393598673318097105809946210861025073252969210930815106530666926859108745875761705852446432675277919140015145088375920679644302525022308668228264323996453960685816426441044428175016707924301974985687236868215394675494184594421904281577551543676771343841188120987479678955016251690852926022798271917385445601720408638975159133923740219945195994965309772729230636107086979153799816118896008275419588380832674426519170406692961003547044311848157931746623482634979476512673094011033171889045643987326958711564824465595710119881345872521424452197186021464096026334039113873851128421537792964106518327383254787331563356718203245836020938736368881196940704193246357587572476779970976962461626596145766171470250080388136070028188165577030539950995774196829225031915972982913610792352760352396486877155115149416457551718851520289532143462468934932985289021245550307059024076745516338968418817450874951868259758463373643064600694914538394985227048600482385928910505862087049755475964196859045492549446436911058099539209992968624156498148275264504537468032543614277796057725198195937532097900271068056767307221809424930640786220664239063954245593052274208362146083629252498868965032119060228347764111006012243075864382225191897437377448882611828171056714015425266208369346035231615282310815842543849168275441280343547894342550352149584178267577235671397557199455293233893249716457774428186314696499175194819870314114958160919829720472929912870370409743083013454424268357501295861240140869417694570674373764240395671032095632812860583950268934839298149646948151254599701962172642432430740494520083532072177178056251660283359001739331029324239245191835926766977011288294137807939033429916945860469752743488679628493075360977436486221803718468728210824093686618362896014109756427764464147645258933436323049648631282514840714360621961146555544647005053278880387256024817175018414205384041658338790893565264684370860869766709641784075190598288936782019336273098644331180430634208653613667834425022953663864015261586095433784417190709221716481404929939557641331136278490981175929172649870670963408827615390049938967004375660379230308830313121600040009418643807656151939792184517495086021608035052429894329507497372837973465567005225646573857641826459501225097492512217883848017198245431397678098536617739304408177598716400095672242451788703269934215759226838232905760978587102938116230670940029008448995318888367927390771071766694260293349535491913502025395256242546053876440894624072150343909737884048576944569396724922383680739639297235699511522928301436294960843427157984887483037694396697251710748697758955746974521160524068331108929759966329084070667746763557087140407007033807158256693482988771793804114114276949177451986644769258725385355890606681298793312202053197043287469016092280323380274484363740929778468733853761748022763567544776505143444649817186520252740213306500190826882225765539552992158562397381063983397724920485649893106678777875278309876991641765316425166603457760289419451018281004191603486947470532691018020503756145091851772411894867725657723507290342803170414926715091683534330322891487404292177502739852397999769256377236064664874266999593657182264301770106587052302601476392836009453831072419900726239990033033852558075845230160964078124750664366985324232578162690812717172701587392294137677953693785729408392274427635504506185548392206808404810378464592827911926471504483622371476270208376280081810676184677042312522248123986972464522544948345386987758939388235752024305169184552910096871227381250301042547549031244278095725415819312791846142996419368518332426366999444396317342723947574392311863997882081769784116478796605129148741644670777740235649749026721432631428586231009374707794222617128908943146938487220887231331596309673414947230400518625375089399118421617937508058041061710458368979625669406583297708083713976852527998228689084716714591319559619841117299138485811444692302434370384615731701748213840756294805316539826961482253357129146479771509364937541936246720086483241593168778620568921298544218130167921842546829698509250327476858688122517672979399517479580393279860671448070063225905943817001527082816619923604385173772646441742362455151494795130252805111812010819535019289916248876748703364224874721563452919399775247903519802729480854650206228317396755526456291592930249483616411273550677864056438328075661972124470624533396432137864046019447426627172334858643418128914569002150667316557841238751057112853483599015142350766558625229720287309808685859694165662351982501032607375168941479201684781791543938753731242357661893920323022789675697964492671732895533649597458213539512611981182478204971806302214790128178394373281509790969203710618886547204079588385933381126232692751819368209261460886970111180601142113136845127283967874513981815802509882284689973013891200421662335580845097955708392444230913300310117210003550901766695781115990151184214722678355811657377683548541112204221587387753101294391246315752182656262975093932793910298075843991885741969679395278520679756673551620269613869228505848854138810947801544008398463073878918235261735162692622267654297241189519884321990372888541487224743282677918715804960899875299084261680303107243422388151819740968620999703522911489520418638225080956968741654770228636187453639136483592655438759281277909335242139833981136958720036744123236685564861515320824515557251251406407510860662236038848962868320948650386284592481698927499936158155363800016592981160723181653814670223740167413045639618812316862389409849567747039960806455836818626442711972415475811041127044703808238841126652374714670475386825836324745793613623096967140586177374448045099325076507555995368108262879090889862437887864995412706613107331145068535365378978793513279390514589525720644974367051533003506264059722716713394021121195359745220774308660952890122033474908342053716903237532922494051311131682880559213365007620053301723894168341446196457918115117777361178177874378963372346375332292765286127921646006725314935746564988249387261517881286631360849572505580883568413125829485582855433773021763973914656714129838741847052648425508203528295110491504290775007908228005115114616009033957961745195237312524455356405351671181548192254528580994539268535500571708179201379521921268648489353433666780812093242176353823969194913129439152914430400358834160676654651561707769883453509976837155394461576239338075669349649871316744721646470019093037533037954375000743801089550844847903644728371657251874389867911955037783304283059928387643860538118465047233377075519126676868995636006145244935749927109919100527982037071375350470507130869789854123912618878034822310589742270025711484752094398494383349262208695761734904516763800290620885927786226336094702939728952980479144036744685827088550152343947776916126999995783030733515306976191094133408914161080923404377766118940360284326823803675993770464205473265309945066755833753501757848160261585672045396616797216396143503056387073966277942646393969686539835282470181412535111934640700248659855221691062631071073528998349269713411931429300179276963715176224348433806708312564847112139018804292690166940930321103023784828393544495728373977406896060771380999487123312164356787508103177495404810555423960457983458597711626518484145125315074915504088361801945716072744697453729045869726723537134276848181665828227953944602357505516282832376466495181573657151981236268496964633956116507145226617339128675295381128935007461157709629630171044476906115811927212835926881134687166240349316767760371457053343798618691940653630496181199591112459571051022981572833786367452442539328027715366013163874267908778173770075282727238916389994092682157484469511372004006836743422380274294863808731760211037666578094475187893554558185877878499711516949213046747127017629587788943917318784095008875358186024119915185548588400009435614861754875634221099005183449976783678754400501374942432534331056415312793146721362666883977624332643947425232722222520566611931799296731478333293097629828844989015196344133176733731788214094072142100722029825966361213988487785196681225387044655282374128981141025195374743547376622448494899164738457435930831287693925448940160122008391397103010915513264712590903880918121923575472220198448816827323789951266639122031024854451606443201471896643757105611331879952985797766174615776720892312453997665046131112865599808840984172081196329456808098967121747848083682814035281121462446648170431923345924570944837618321634363923495584792385651039827397327496601674262806657596474906354005547795982726168434704232532101768757476624462945195450630231811956025185200470913402480337279854050739574933463872786448873634755998438294458951946161342929151228026037485104935572804005797909721112781246834600437636301465807036983143426471800123714460045045084839313691502027442377562119980834494461527871444254475099046188148064632934971109564477884663857751235404302596031335045592908370359485359805564333255114069191420835763420775772119879319135861026132501611861639727889514539544153551641356396017991353089646022281621024861317331121105769571242450514067168320815680878979009450563590601124200959555877892272885418733312009221100545207881393720277768287059295815288701414492411265799570649166021662373072861920389221468362882561984546297624144796324476029852722697596869321413732079253843530377997059824996572615299741233674707017985575021562356773458141230713588839625638764426316954994149251322627814460674813563402418059243057269684423125360454990032623539528727081980366164908726395622406225889368727492753730130334480779901847007057631273752076760976393040308273386615526821457502656765001887131955933011150291883855001077895816889754601180669347404776767197387049368508637418686034319688178468227921860974514564328751651825957922028737124925640422596843553117985304208292067017440967983123577078450100929232381412701450149068782865115025712107423431284906443098874991222991449610387443209929684951264145713044998124258343195081187415331953360791302853147280534712905770713623326025008007642418951586268734265048604904199673179864889960546607657508090356924986289714870130916527573774096133003663654319399495679619121346910125294991722965526887396305856829140296821309069358369509152614624946191273844390654490913425459618415586732535588017177027116092813326626314970056032476838164736857735189102949228540596528729861045076402911279509738335252798811529328832516543450442395579562933150235179342030390860105644945822816030605620054746102910748804361157288065987049303632587400735138291924187150282697359047596184500426818432489675163556326594221238948569378373136276051217240618523804211846565522488012878221973073239610626104531882527907877011307098590182679777921594842937091152813143537303839789840489727244806421251153888841444928595860747372139851048767205214577410498386433895660059629586264579142584162361715510735942796235738001760577506716994696420362168902773359515366777138794294289888783284606153004446355719604333325545765957718613829580674956333643116907409253560034052565316648741952483948690257169705340444475222386761001042789093338387081659545860845434257738711698752411203440644190160807402087132807834363296504345881150997536692759854323529433866077048232882082887975003856850825663585653753141289023536552409164983740486345078049492963900899034835736284143634072776002048228735279017712591416349920997177534104284118984813831572113168258543291243785896264336967710705740098885300386060365611865398483315135694287983397148994234221296154620171594919019643002811759109344123898194047238694887866345796805105561229653205772438024546307418970518759031167864069601697313683588877418752365388013738083065390277031214940290161977998815377794508153720277128987143463558701308655626654365641896099930962191964920272104164522431893290647799370820056530759706629037965114714091760688917952427872892892599259601330564051436390794917930890922239869192612339554154835562774053248890837324082015788208413133401755852733332770705534199006521986238754879200210846208560539218451473395144356887007397398369447147828513078384653743350550272324406697044884354909566851647259714439365432656771805752513219910144321448203486490054348021309950101155469785931224970611153375097668035876830218787941700366566957127953375532254207997092926410628510346433542496161881706788258440711807713696788312621376987663488147257557125112506768525747741239090098016316815414369918838778565691937187736095277840723463873599453684095531835647247632925518323679690063968550563504084308798775781147602442561229634589408017422332065745755269254778737494184476569829059994107766302315700718091242125106974299458214109282388367935612189527916034480199169402786737862413921763854133047918886876363864208116661665106349271419869249990506922601480644671104984604665620274945322106770904450522143467036313779180870211347187234615823090501389294566102300148238947059953596649728373378660473847807501200128367408075395722777785351415971060613942289109517441399037616771569995649750378268190184460798970322511100703027144153626080842308875995185070844962106949508541822093750734124969034961826184623345192145219752157101498160426812815226417553046990097061155195573781526444625933036504309560905050253935075678440058606868732157741150679579352165612208649699579945094843997321908123955455083727346954615769950953190011819929955476237843105530536215041377407886062359591859804301952887536753581603904843635504090634280637870724451885915461437541544802069507993141262171554210297470794934625678375029804586478611450077826928966632284186038972706877209910335555403276285996416295728330477827652736053102354549267617541496998140394247570759974913998657472830471673725704269211002117834659989581344930239618287507810421280819563788372196422623601044667614268101252183896050209301578938164610347529369911949942156722033241423301830816960275060520288865058556691941463379585047883172150844098297126635146173066458392469138484032811673876634014608067280876117497463860495499102946582606988366182881865505572618578332410121105418858717970077496212505459251615626773498747766669305154638997472826146842704763774658968509541044320767546238477724883997156930521972084165609172946823226518183527762441663055043311360188356065993292277714810363322987664588562103130468458579656250997799111915054327471918653742552168808855307576281199244859358479279334924476031895412361612025817614879633622936184848650176337007731438516181906783116954007663024336121286925142323660266695678638642254571366048005042715393725852734277330404561202554232134673503480380996305146474052452527956126995777782330535317988365245541239850281782687183654412071422846350556074899312985771264731492594426084949270238232958549640916757940500982586823679648654131714120033066044219889464708614194996883896921362238475429197324490279179457206467045391951154202512809397407187378865348895592052810934539222602738227710252947593435343333716433554188057708676551479916178570513860354044998993501482935293826430601147046710755307051607873295010958313866218654073167582728998330211672347584769486710604914416687363729149361766128557873627005295097277582304766673705467890878136284810391179995771197744708325678419640070332353361855798033401809365133207906891325076836601335127004865770392143142910324601564304589023099812703349606959983806973276037557710093823074508567656403233277441812093277264681320305131336864489754268660921045161652779284022655668388842634144602520951627427954196040474380576849786422968721788756393795841998206875224188592485055317185700289036318048442452356523697038910570792764502731216616341222394842389000673771357573997705294001640977813252390002655615892975731121371282723781720049549483787568555841866873886680538012250200267588622711578282052985021959173300533750888919794447884898548483728620985793804051956474863231826333925578537903764169585345479084801927929444803500585205298247076047913367794398463718914671363186570962545734244465226430178515922251420209538476123404235846368917412684067266254040550279086138898560036400961177716239113328807707259294248064560179722196108900352449143144068488920225125480531873066450356752840926774843419002032645984316488612655357625820570685135985284146691784324638717614474963750003089151964428780836787032138161992818384405957967466038124813968283280624528501710673521837964649403350121452407913064075071585006439849778690887612725897354416941722822158534396011635762668392229775527483469767364612858789936932176063914247305134543382233506603098317382954321521561647473874150031879530566411325458675938060515055493325089363267525139628094468223571515795721941093464163979402875122564645963535622135230295722594202884781788103166811083632892847540847615159949004917113913527263573126697715706930866026333401812439208527215853229293540480413452739360286518578329315192635286087078211828603953075411165168104087431517642112461895029075053773076006177803135277378091065856139645766018603456663628576932661172122396387550748398871857386305765427873761317287559051710380792676200365951455837758823837045107681707984887178059671428407024998276883791223149681309900366480874524834685166730343919121492555942520271338766197468911804300153781297000507071394875271283159312691019424671995697104108766849997329668495456127237407361235068612368258991497899058165698837112792017328420526939536409355772623025454961563076577576345139384630012748188993974364791350807220116420584134829868544250774817976330616602413270978693462173207713184819252781079114948701882774052069083581493923107763381677486868429535680298133645812985900907114282210336068535297782042553013446161752837746301643814140931405982267743837180229452461635048668407990642634173845981117891853368961779080289865209219810721742568946238451099189897265058549044567661145094027486248609454054824872870248866183110343998854411998609123387896114638605168863510968627104422869252814032654231696243959585042441399527574964441118989560871545490758459846631827204853237086823318436911801042355919634382452814468660491670846080287292182181056802101601355925461721804279352226930117106253289958649562881402163564191141770550985971892285259615884412745365157286632711165380139492478039339846314466766717937692695747538056688944691281910174495302874200900636729959973446818499377238350153071398396312907114570262699007461971216679683891580005080141855210878302702231695728859991514872379362899121661806506386723920196132664196694314971747832094068183303187649491543867023805177035763140666185232375508032930222804584485983873615651017260419792302117097795654721415992816202921473470882462110521286333062894558038401703999887681056585762338833674472507698499626327184084900737531895865278408273718831234015842431459819403767891655856000378211637617091192629536406762120578687157091501578546907717314582007957119560575053999563606023110644975757089752165553862548165669930766758988403639625156923743997817212503225946875490394055215175470448720467091321255477693091642484292198156290397725817062173741993352774078443400973188234128146239520140458695119523463223216369537595480874479651176900246851529513920366153794322925074184587987456221687849732838008871967348012168047953605264924880912618363588447696362964161870103888091186543102718467234643011003864190550569209264288240220039403748827746232550503013700000451325185147319208971764312018153191705788384357360692611008221709753111480604207235808340406302228244036262544676267050267094733770549267426140000703477712012928855489999993537673124204379982936065722254181811045502402543541731463433217975942235096733796417658589295290899148264881619284418004738336510459086818449883824155119460186883973787790636433351547188226554094548942389989095214069020716416032455479449795987623284246680193888248759001095920044093729794119062184393491982767774133886816085397410953525869018049733288178631025122633126428710168126833541130273811121591418441894000298480768674866505877423372606609707992828413439840143655479947635064629318342780216683801711779363335578096153413919729675241183515938529506451126708701672407325399763496183531803129914607925158509043298573293832350055684418404973197129991604091709320858233377673271329702450739451270316816286571551481907633474202940827144202283489496564899165048646071478937762551079859947588989335418132000789487093016427513894565276305422012676880376025716516522868242048535587935479057822798018773126336103455257878607079372688281604449912324243570737029822528637916892740521112866654035667958047921432057661355851025300832651518335934215330409475257901502901823741951030943445489608652015749400994052149286309189634745787009714218001441091669615007058615328998066163450105196353326694714199260666901792751621107353824067892635293718000484245400912719633184680001120596872005058424446452330095266195323991165127593112148653094979434514597329439646573471537894091980676170435524292082198665192626086369879152431398610239088100363595560787707307635858463322271543035024178198351404181657249039047746731269059907946528855612798318734184898652233848269946310702219889790704443721326413436779312710837372158813124264309543895394018087185550621436222801229505986072937456516151480508070979073147032158446348729864557603172385955976666081330332253682213001205185662985737846052167835724603690270959393840777166668970308263664839723553015583030708500053988538363455940600675145181594133298230089941911505110202689058904982373109806608847582585093956962529000564405496546953795999044239211440318614685301962955942830491269431412559916675034377405507658773777570218480045340534580008524882064921808386247040494329906147008225361553213043385737743420931722726236903520082190462096546147057492845340827789450695074449853227293026159757507349635803062297616937785334346364418169159856114051552009160945579709454492194238444612668810317332289047586467378379001910906692098269844709298197144481264804770482426894489345905979267484807139961589307580103687420527450392212681508804778074754975337843223288694838284866249788942021629209033728442512975852549055827853680875129116813887698117237245176267236247333565545226484122087941019421045416911049666518134093950564775315251894029810115965908964367657251864029492206485653097061694393812860863171372622271524925949166655581670123293748023788861555867580922760603374490719970135835810234156881216681206193659471497434018992464103695440160502754003058895627879636577205726478000364447148968293602784650454978513483478618498785156672938978819335136179391565829103680979643747317601373033743064338634960926612148035170212924258745590016868985327477702442561694687909277589179049342499107910757367085901508943817688716719900216756743475326315685704696985225332736625959620098533420524861159569863336189977999441794103427219671174595498156255851303077607717637018178775559887113752084533353134734519299355214948135442846509831348003535630883825050271005817481272653774200078814130432518449917911646159568583722795635127161978815267268641269506626254330681419752396815956486791728692689520817290207875078244511993536613099232845892229124256288702113422830105381167789524251201906286901247603503611655329998886564855039090996472653058022554656817112893061096046479183847283942897374338398629444436353522479467286072127003057449444644632117601728311419546347257951973743215913135205944195825227784716365566075717417672239480694455355406407357353410224659506125629766519936496146763363784989581463056914760928008469596101726646817305768600163800407805436582047919251654403154698632116899480494631744984343962306812146619437969687668008554266427096736729207256220034530865001551154401210541855051886478912265632991624942157007071110374010009170363685051822152793941373170422390054686828771497053737562375260668161017074335436500533515246550435882559851131865639833430250281952796662477515641323392152718298786874580167437782937932199997850081579001900179010367497024148842615299737388827109328428741036011201469618402598675384760046891113531319925361939984718085358994452216678196135122911874686706625424036690782243177919610334185070831945329277870974775667660515545385846888064710289384292060873141857679368545743478773956930854782347960211977469022243751030310936504672352377975007371821485573533171042414322223156063196162513471274524260957060536007724392083315430497917576931896274778785498936652156520687317797918399878689612689828037447384287712228071183122663010371635392484108655885508936676713120515621740659299217417192046145715156783020054579859872600960554363974412905235466748496859345908618285585885154258577783203520524742305745376949746400123669661151432889730761098621120959188964723778400473835916460279764692362641326275305430032781689932714713403645292843997574420522630618298115772269486581388218164752546118367770827900871001206768808428156185133413697086462790555779706760607605941298176513705469739118769542064555207128185050646729640953753571651758732763063393569794619057315888050891568952604833547737859396264256233004436433552133950789669704255451739931809933626099488679499451917196990070530840702359735712815819088170180924431711777258399334781221112652497343282077571327749412060934776004965155834772677570637557946318188143264316303107055157739253951507056608564738450798912525841996360346401366705660195433054089130522288914735848802384676536244941598184756966789249386789041116044478702394395218204100165720806520345620409087050726104547297013263612572823857102167201730130936500315599792497412928032519754777687038946249926371784519518921647354501890987730241329630371506921656373848640098631646581164799318800796476094425089999555358875389508563928800716903016665965024240722853474795700284871551657045021593965835517905757413180579801501378646383160516856291382312400146240744811024538263445899428574794572890635511500860728717874415415744740971733333079194780840408519238646437546507631709459353330060388019948171300454675806626852201707493600498155721751707688515112116124051889496719160335554546725029671199507738310083956835413112970306795176550159840825734444256801139763804104038579700729776015390977352578130932837326389641156404562578811385126611980523835451087518701299484838188278263756095795902373206079061608864443455471104346221150059120941443656412104437946957477147695220463041654764191047715517097075739107843105402617938499319425912480428388983586381955513233960967275514435028802834290201363993810528557176358557181471634221246166206659606747424279331166984610445628592005698351097804709942738569225695044500210620908191655236515616935839440800365482961969323471012356467280801666782832558891558183349842878983884782544311219086971489443442659496513212561924399294310561487855640878456842493876934200944614503910101535940333219511982420152124927563946968987072124391390936221601064506362189651210279567352353880516622107811082735557614867120121379404767003714338464373879461892131304004692086651314070051077451771896061162437570310267679484041228693677523122382405008147887682844332641471566552058324765636038764056898307823710880827534284758581723308481740546129663605310513129675600547091340559159163050155879646612323543351907755346386540751335953811782523726703934347137633258023267156570167919670989766224917614646215057310056054697584330963209880292588762143894627785617236971421320377057967185949378800622749461278050558748159442936223468710441539667387979292965090225927500883683108137882289680216844931723047787265241217687297365579604718128651152063718732145830458743257525025557012265398756778932187439247833438736230130894790003859573787462753742528111647988389838690256278929249394239961911103122963964821981506404661814852163143473685689053291758067788546056700808172136455720925304307057892677310568591546809299161914833252146103880250849575819560048198647896271654723034458624908450113580121856457763352915780811303424986417853845970383869450513561771907340681544861231478957790798776363240275226132909490921468647812187706570499375130227260554698090519773627717961850413682722676195467766887930201671345058466377692609435894114338241221211377136082213008610403005986216722639112973124739179646183671884632766943364471078933719389672542165966222687597635799921321217992438135212517907347745288344703185410105210303402659876406266874841494582953232490755713775573756008302225116968549197124250949514177691666031478399654052567120775244828952893181204598849257550940813389350883289387778627936065186606691755320756514212155127373914054107358798305137114836952698674962556064071670625117647311480348525007472045029172383898094267894186297137348576184247212178647367658052342340496020775793576196225174991471860778564932115005567513958606836786697575245450429977395335057557525020756826108319169668457574949970717341322972899986928180897059352009432208923186507635566745719187823172485588593540218080331236503130068594007799893924522240556578484273847377644231412607947389180104346859470656078099694858145982551245560967480427283163556520035347979788603523999901793780792334798098401000610309343114979220227879515557354625237136904105620717120069470468463555130216928272266207065152456967132486685314849965748421343956325747428717249475496960087363052560478958538782230060569198489275479086125323592335853371662751216491247249654483916782315124123446807515499903717710054140668182727531785740141299422174429912342816609445573783226074123773802834509858170136353802833884366016264515732573205845281637860087794916237434881887797117873774561488940349907602264733001283055246923771168468279527588723433128288016897798551458778063057231582489923462195022039769094187767608869604882854870150951808188258536499134969303653884985326250711717579629388084584922803297881859259920718843876987373436354989844497438602747525708959206426928367347006275561174013679872740769008246748113454592865055190659049392296814598105159317597575471323996509008046015912478235511610652707330955342218918181669245718333708197646963176641885064243528814669247579751296612903128695168960859888665251728672501060075404761208955106584169448231677729912279951861813904443491025234236296429449491448774653121002968679338187228980318805316450615118819480363497720308859358621328489926735107001876718252742226632388434756416604617246286749118954738241457078888933400499032707074918565233487663092554969326026588497712377513306937073551671677077700327648528223753326618495837775807950118006398070731646171613654136710401293512341713856206774628536168254124087964050798883284652251821014146409032679221349149048022887223908348786315261110233072226197908063577857924426624208348407425938452942010405620820561215433439312312407146733970791627484074294624115876249465142881716945831694881376245613465437224830125626874351999589943078485233940450615097453310048299537912837232371285547059118000030310117384826907637147998486509733523580174190599632889732148376775013567700377872165706353923860979319499989063181059771466251693425024870716219361793880323876310660402052619941241529719005861688877205350837353575844908796313135322929476370257014794873278563992271790424604530123269160535199755080312492451338883502976832510491488703084165367569214758650538611069280729137824049779317246114779323584974633788379990429103805675799248983821379430342282371988062547348368749296615138321929657733089273657159300975454021440207628252339824449926026448026201601350992390048887664553470418324357818958338674521074889641262376037019200542215734890514460398037221193990534842027830070868561723372490223810314334651305058389234697133501363715944142807025122655429904274770641561566951511529735038181036630176401074639982173098059204616701330390450957680258336911876057495996250336982183268297526293126896009021996985923909742780247886253706002275954872857066876910369636308152766751213853134950667656204020491380632641494614962462367196525767818859787467971242380684346581039881973824935799438884430065246959264028809323238747496567889146508526042058448000030711164520090025381881570450462986978125197509534831690583433659611302631305838344733745437023717949700918166448862461201649551825571593034292268064178366715924760298103323102482519879448944803914414349958817737027948152261966774763296531581513171883871359223155573174494578585795591375336556359931508348584812204014635118796544484859166560664359020542961163238321272026528982407655444250062119867437414114207498831807686931594786957440045787058903802488431374659663224607552372143847391407740737212212807589164622535195704780093685987782579196431156027607160008291498602323611805577299342445942101613347757187138979000047052959956303037931041845844210888721304502479534297004955357482300411756327372671252446894731741092088352620059469708528592127134902716187462696038125592988114655947674950618117511814182657783611169242371425316116986409527189375133348834472139937457394912965822241344518450380065330565599771327128322743190346753309098703258548540388049624051944091852237646710928687353453436532823917938737445119210650166532629537843110674817484645107406830163880630176115974588474662507015773117285183880527852173210121097324858375646752680701757677494634793605106852366530297956889164064917908854487750101430402869469797806377557726933947813138104218746200924591285872241085408836372574647753284719903777730289160928436154144616257908938307573427712123903191320585837798334845685101421443547653365992539516331830506318366378194134624473829012022063564562026070962694141496331096872949541152641626276747817975947481151576946736666603258046938611613722558325189762666393596197474618209508466878573546535759694726307440118539577952679064480084527067664812322142512084041378092941275470556005447782503593064373386061848880846961627543592413918399933451289646044139110358149888065197887998714520252425832793477079745234110460518506792687439225006176136509001245176880349704208751501195008512901289054896429393162326365317073438463241398469034123517903998195291214352982480074208991984388853456762731744029808342713995022111168761747301035672102929992003265521070043079240474727907094716850003472855891104662979766473290635543221500195193693261352402068007498811835226427241523690038651319482680895497264572479968347075199496675549838397021198948045491579163173082702931699636491418179110065821640583447498497876395874608256187537365421627987348503784588299151418384128197006938189665771704610580512377637272151288079493216341806915712068770468299971031681198687154944521041805395447935344870620683967971014858104215052325722324030445283724066350264245784298482185675388847086009859383281070883306547457598611129196586211501134465696877566609597234049582288356347690178050155775174914449017041745283552169830984724324312033838330340019120114136350831320755624192751434569637192396630882072672541697017363711968108542038031871151174589389195106165445408851312449376568684839599423724606361754373353957010926430990593156307093860670728105871607988669785482245937362295677728768053780506173811583832098249793873263115707406240395653431630306749217562545638940133364572372279207088044617856189591200335361349674379073582289177659730609620983219963552127865193272747849740333617612672313055448755405738012674827534988388951737549666442455373457208543920327664339736850748450665319868663938394195690986481941535012597332440288010335276591576591620540931480736983304332706472947306328423436837854909679450524863395430563010773212611118402821928042661202533532445268540237163762143753782224663349566834405383675301183677530769979334269366763587539741722182334430376617321754203126355189311201926339399445288211184834913147934967708165988232051126164471503261091785796305180962566980407690636928969549072136645497659706867489729031496231323928200373046461737099249771712008613366061017963349353271444045019396109649579875155242744132922688794156248042801320774371164193511370451613425424767241709876009239774189837901697054831948516782938091349315752543676262281787765434694702835502101602429064158516863379933203642158492921927632152182639510898698693789885488512987767115773937622573750250222806607906982537690939151812465003665496909705311872550446295247128973434187144206822133433487447765206091635275497457382789898752103882526209790737875515012995631486519954769022044490648211517800870304953762367802481690767231678069421880494945043300893034568771707633377658719041477867277315753975161801570419345854067020963197102933049994653768625375616855895745513184561576252731226388447115578347398166033846651346611488485529629192433929893254732472772503940250130140622594743068278199106028419124246547385297976843617056448835342380904509643510372744548455823242342147651636104709162966650068355097438144551946646687862903858741664368736550155707869815045134540950505254722018693280997069468752909148812895804470459108788423796630017144854936302445064796892344522401784232892359139871894876050017872019304474153551964397357373823147435231415902015465340538818467458561002527987148807353276861423862942502408840700287555327321229624917834135230484561782183599191911341303336410130615330393265832468637339160240992119628895018619395803961980614863301908838824919376524737133237194088280505730433870703986373836479747190035902914803205609573761428418759493039314620292500543154850121750798759502565352885632562196204154842278434210579448260877016074259778005756170877221319775927498562124051573338478615890666140587875186553859587609954494560836046994392761815530266060134300266893062184691552172675294172983002210105528040258129132815464499136107146760775226449496789308138194406923634155990282955924399620849731972076568190685775368930912723621200753000973215583627344303218821842325613412229494836435130718170846822927386157735477225482364765941534692008924428429411429756585984836261051755119328501981207191426727362948946626505055910551928494854768414629839584016831939685853918334749022103232942155877535459972363432954087445567032754288238882971267255954028496785652575952990139675013183084692398535148074009992318467431322440278477484832093943977220635855055916639135503308655232845281387232342774327720868564061808973705386318754696448411043405374401314889690871956495426695631985194230362639659439866235745482282409366274032672446677672799176815792138797216874052077240752931268355919394043936118835920515407375604248153581191459055469963955026175401604292385267015311729468320376669301561226311680290358622905770321611064616219988030728374838852488701561912783328313167054991534296887567902858658231329674095474480022205667694285280652139744836259903300825935003666100304232269384246965658579121768256458154383702822437323461008178132051989907352574334295761240481547914278062500745057482401956703877481393805254915743705700179886604238010575589620439834369492233392980969245251349431768744633349456203134261647640286707716287503029397316792391782477334835638996404140151263742325274302393337666594604270684111978333523493784060454569972623920854469086651144041912526689420863993429623230150179094755097177848451673719398724910910221232469691548752940646518028308283361082396932463347233207776494866257872820306988138935045070552370009814711335524999853846561567077477684389398286638608581562963646419265450011428944276455379506689167268186928752823556277411691700362622373979358345066127662060828335860558295410630008165504749026592733389603999858795522869182505242702420263384051263079656673203319370044351555946780139163381077482843529073081003481485356565610902703972653472897730213799807531354000644616387318912548421548626960367530608752573338112620103710383374238647591049025770219170015048222310751898108813594437164919862403636342055226532690906046283920778261909894851534281280685579421494578670593230715590963266780757680380716602103063364683691962022366716542601071366270320366524862809404901291286756704745367480466995616591464253079363050035625657741187911655240105700835510084855506956903257863343069076684858451646853731301955522510561361328324805216164390585964588514920726258720147791814956295218400812273052135212499575164273849318444578294138075417831215327195491933730179840597000454057163005806496153914376579325614131088851042919866947793104544235311791305031680392558588545817752526588044223998563141649283935562405343489925448317070267950235081918974345352754868491151761995824537440882876436547704128669995801008539731143755181974283313393825023177860539698128792183420383248739230225453725631812156750605513873258313852452639259478140626104444459710907802949941308422111497868992454206901315274623949308792269062113051284939684074495929647085391337228071194285619698286328431080472353188035647660505387592372483659329219422492064131700494348814457858490166445219713918304607788855767086062948261396790834131430176490304637502739054374351355902963187716209363008769098234379788670325603566658834957400778962182830640949314058454698247166450438104147633277276054585974650763978037239223977861108311947989316901177289226625381776432827775324540335605684001368064705239196454053968059358255747218264961672931617594335271151343857624845410815535284976700466399019500037636263187023889690291522438959803854848279657029955242938408342451498118147912767536761043504440806922824695427123885719687533217364471026655111193156324442109019527304546584895408289507277784102718590667684706127260867094012023748546533541710862309309674569239943870645324773446989594569902209208329472342943826137549647300157759352008788553681087789077269415361395005067951698489651992078161215795342421266148887836608641900217601148581443077391540315946663214403708173588948539002414826178950976568762800037004015386109366497813862564237178488924220379702559418093312466196992393037661188975166600701336087599963000918058311703104669492353985590312152007325069926936581582487376457471570705325738351803599880235370737165269210987027196225221660868518840834152606770532051436070191938428168551927286863441147159701881995089986962281892537983380901576340529500642078496135893039105325804300097066641639404686001351283235379605484577585715110348616078342296498528596500652491610113843563620024040550992960435244367685927536619530870751444138416008005585296777856055658486268372574849158080917290429494077979617300110045879075638912869953869619777373314786132073809845179158215634027235507869435844148228122908312011816406937468212939754520356499191569553939352612877088043004284230471896404037022660471944990518069067161512941454027906613102335566321930728773805260404412586709915436546585727899501792347139392809523884037149051195421989598462364275382964734916209970878426364753632279882042038833563607214703807072949428852507601116425288864034917321908688155506580304244655834590360913789171963695335275885763284015594604517591335984229453554470420010561238583143130181537320595815057460395245790338888558864234180120644653926384348182561413114019311986980520063650488053956392639491399536891130778898365845193113633265135605462707891953236848128772913419601329446155547931284809555161588571734661786390980322338303540374331418805659532960705798681718070072947283577063134635215230406421101786617053622763707434969005983326563179792350038895468145141785529729623950288013556126952647119825639696685226906293054442475138991260955772815850292170598922291607331581757309441260128408555765459106677966206087232119965609288078579486241046174698409572629501226089497913546638987834615121489499522122541966347346197152822219049589771320117675144082792883457771449138304742579219514451673809492008854323566105139615096600802947353796867556154764686500259360965791253090170661128783241523547804921029041372807271590017635896652923685560776176933734400350785117529273590693721103444468311068136493525227067167151834124162257443502805615641680411523069893023974869749132965268648830506457473658493060976596669112548075270790382048881650405704561513802427085278352907697486668674729186148740558478323411430724494408352495055483470077913258992558078262258058403627414324511006809573022751846612117355573621595505378415017715017654990587894236948665502396902401460005431113890104072349414499007052059121291265258698146963297763067902086316230489662090884554577972083147353685197470208427597090469806683271328139693513956841745090613367494465941950901530727280235712330703486545538461699921754950961268048929752417883078138470704769573093943340028396982327676761761163908676574912333759007083001724459776678890753990762750705036311167912911643131138218433238793626243866418233907530509564977983162091887000273409782144495028148810255413050837762877349835653718627473446663142362147576265066356055990069109447755744995539458984234451614457946161191282522289959253342125343501330382481203021033215919992926985988063237061905080024810680789464066565238442690408871979670056814150137667397658069343468611115711609178620081845634789038970333946459891510332704085397288492248506301889782579527742573519449877855891950745318111289693565118642928699624707814468512141703016512670049547162918563728242716721864603015120399071818542649037759542707608835439499672711526186874567217483923101284020998761640377751958053201545996937822693684654939664971458693759959086621316049279528723866592075153133648097247301817101184400957424653726013258069686524451472232543581474288943938646816435171091994793873745535143364143074776164006751414428556421492911886070487807282238329214269426525087321980737412389927874980366335061252505189962901520174906378846565750131124160995173472114698807677730286062581555751468133059023575333599339947002909775101629899592998523407696394019714472157099947165840516572223400147424690651158509695558824302718740445652176957997713523031633321590926314002332249708183094925794667408880990429202101311527409222151023080742630962260987481952419190282919667484547713132446315184193791294732463759134857125922703163891596024837857714826828450182633168912329754587716966107521919761115998921743688278742501592404555587410707831036574833262372006519336208892408788479289578319634762003203283957884032467945193445583527727433684886841613211260198108916781479357085094435087121838832265256648950173578391542955079249938928489884249380636141732618826651430590759175767369438590384140030669916153241736035862497414716740396604694332783383044941271116811004737442391056257028196436426490837055772534339102448030907215375591059385758365510364915248590929316412135013610863236312604667073822995900820631051736488882577244383760072865987621313464490959012117155170616593489489207841868175942331860159109321454421939428985718862329055224015139892874174504681106046746793741887196622574540188449754688484942520196893199162377197583657003026263829776087085013364815820503994376134839104227842545191206494212285016761861175119357764122825939326418006169826461592128982502380565314434188841028940148652745724427830167931033678573215192518271588264390829468171597529179924791815767629792206054918573660516596445471273293036178424902253661939684759327398905478453556420471281556792386836585024026364511379929883892512174672831233109506232765204576413699628562216909153584167817289124998068749308696603982886655809129291306742177141706005277530548232929560532274835596748157106482023796273928761863239315113621538440220322093861887793360856360704402815214838362742843257106834256586379871631749914517498107991415005951145028981279022136739699316323521932460122714095777742714052693402339046843799901747534727498588869954062266436657602384731721134040660028416382884950328960382151721579714652043695387104044298533460913940450900055031151651819921613148296585044939272567601133556719948354752573264934791165712960192220598332035791653568371958480413410967142221767469510111044270933454118704423508875073377495394987324981663410415220721577115501127486022110456937865761459067664923270414951985915827581790729581595505763803693100055706354624331636846071082368622001075429297077590262047528828972886169385022963811490224585999623257121586998303274864276556172832017659885007785115969231165782019614843137340632071967341695723359254583685454700495989150682268894270826102066598390181995409918973639645464392153105607444153662502886918400662691353774025298570340891230386524701788741589114431179303797555253471869832093065573988596584628539652417763000257311892163708501208647892288301627083426745144190269447703066968431304930654711998616171557163498030021959451363756697937844971467664613357762722459920802456293258837584994771661994459130951871057820238919100283402133063674451435239366701557118080451796604296077633427353352962511121964993586429476578530335282805186289794129940971402092181823146459531922165291766472500002114881289620045306957722559999227796403121206502848038790906403932283861065461692328450368849839780394708682777286125535965294743277699147269847157511619686926609378279845823144496249855415643456926901521406816939876014089713465177435327755569889345097337765558744837796445250383119235513199890189925861298069999322682841147235953921216446870367521648955527231282564437135827101165014423648644380937614514936972933106926111766903961532646533230902389654954737851902041701305057630155368060273533405183009522155421075744765146748278025853002364565857366388456768213821889133483122487234666687342700788941844229471182497951406232124221906803436213030543009203349072755534267178226595604412714785387509025594852307054380253128385578304106915117581146404065457611640186593419967067086791075274243507772970423194529575062889717554713243878590319603042938373987304813248932681605903860394964056910248814195152823487626426005892093497536132354167745287257397995857595186369996341515353763674995092246912444523836313176134049175966997591422749041072387323704967067944475594991439151486652631957549679087511186552018577775263455793126733598077341460216540746145256342859502078593005508868451631098666163093857338281103645919497768427356248917246279156996324116723653008554876388029762650800784236668060375140570251009031594618303712521484567340618852830301102630902675357342368270401922479036617305778794984468964900021101513559936661922319777431165059761658236055804719391257213882188012507802899152960555308567256946290435996983419489795575173361882009128577936090303637661855986350635052095059500067215636916819763643806536637652085385095799336427833371989603718331722956364902083507982555189843499135761594961999012988547993299406298004054248751419632505185826813070509537928933888785033158153838017887255577773334065429302529115364328050979395173114688543309558574344399618729947066797926421074451998988798058507564788269157850965320476972552497985911231189478733436018557992468282576324314406566208435465874661122839592053029504438800092528270100694649083523270109088364130899100036394983599940357415998397272264466466145371685155418564929661007926846038566619306025236877875947845963972635807819203157020903808556177302992496407713859704064150311604188204165188798856851544349295801913574508345843725026671645515146499319742517020110310985160561372892244621661143209955178817360768378520079663200832784928758720363215928822781817701502641729863844218828503114109906592613119388129888871737912250495912168466879070199442675186879906724458034370067137668563525452600294880418265605755131807449303717303688821036490887083923418524132394646316499541877503943724652550250120300875659869520573767433265111151947283531316625865064721855985353807345425070743562960011972735908400904122522483255042089791239218311039422431159161810525770533389769251804199945760131253379747560489502325383684310826692649907994814461243724524243199229335360999269750591532683156947183608400474827722544402619094302072817292456505825148625916929396375695097498063298045138797705319207427843525500114764023114241953601715104073394829646098773060935829742085639469235961086233829148541029808250709103688776038254619204708766796059378664253882897745694394880139029455871010152652966951776800224627032927613157134725596966865734587462522122181142000200668050913025493862269542158992897635845264350901791764029643919920819702526418344883448920056025662031296529228795376305009260959176595512841196337215910418928974676362673234799071070905805619106922418477278949668212349540205980260991001999177165665161649270994099740319080506557580359907832550058479017880367648699188662826433539660544359781923637495088352467528867176939635294562684277011211089270839416612037962759663511252443788945334758293551072722160851988356113697428575634201497208432464509158389774804117321098656183878228976194976606546233703159382809740266374447237252824722606716104336687876042969269825663209094345366204399310592316559372898329866699166348460717689560213845499788131519612839656252583111632187576637767690233466462531040118382969536660426125191314819085567450008747589490808904947572766743063848991358492251516181480553585017274818652294477020596286811018778834570147219093709432501952955226940433476114176024254794703623071722682368683325181798186747537464785819108299767513512965139257308010797170964905994645357539805340208367670145221843490113166650613372968376026747925646805332492795566719390198878647298914019206441889722546732600261513077445931283764718463948370219706153650301858059676313978369406391000303187894136574918299416661603277147514899542734889311885174239835950381434104931637528062225415489378083628982885119576621794117314630165811296799971941378978603957404847283638843853706098726343749962279477147988099934270214948657292634219116808206122010051887550814496429386137994801659393125992659147069186222816254663283532442351944514386701970073980629548336861923518263694988024732207989311556415523032943710183714831515369861597943907059846126735216550027273858751502321221528073586612902255627686398485920968016538764990686666217703386462970076400080214740886185258353296622756605851622339797978618324639186617298291556130615653224436068150969537180178749216928399344625259474156083964399177641540170622765391626481150495947643336825774451323564728049749299050292230828156732483992239620255289590510406909175681948709277809404118345371305083254787938091731987474770512813583478745330891433217404282411444730845615141658583679768615905951443355190421948466267893360493688345689895949859444307641557959511383525710192267261432196923882261408058117663135338494391322466036398519960261729879514105371693167114916649002959280010457454691965676146888863697525742294991018977948829394397945010049727342086969057195181405821594883140550139080728186465574292442902488804214583236785270590501645060440848174156260442792903189481623351798253405764368135731755958202142663936858785455068764286019792599241431796332754471233127841016921235784888455417263992170452919492888176131398337851609377583664748741239167362844404643642576376608216326988529514735000196466165271455280456185917620114049218615307709698358667681089288083030099174196249634190189255950525554201732909706185630573052583538914057243847381554539786677065411651114778733477753619021679296282044127797073709424557718189837957373648410030447085188271730965518320470006803938923975027373067694966629103465989767748449836325387653333280859895923391520424932831852770334950433274746813870278143872033914142220759323349842782092234542388134724575009834212223173833422476954047145307345953687676485952903077753823248877883210762198269964922629325657617661192655651169175723792265338055316234201147598854258284142459965763765911517811015037467440472677124456660404651006386728715065554091666529910177783937039161101170372122450322889850007289902382466230707998537225700059259372664827694253450698515297116048607890456190192415442645702867851161413071866587818057268276652695526772146698653703337646240226813408857420576730834074915769338941659743553757886215810437216035763174508061076259172349575049421955416670359787934888434611819619801967914836411533698031994795322029029751649066685154000311950435653617847337004209038680913575018961878385562118012734929816721904856257736728060832588117487820932919897779514239528851528577369956188606852922589963095065205372959154144778108929096039784556624129445874935748979752775667307167356417637240413881213517366850287007190277842915566379815907533058882571436087213970777707840137581394575104628578065554263173362724093997264366995744041570186618226043005963758774681433684420737720497961664607085817645003537108622772688866309181322264558352351063055426120631108038817539586343628834662592208125046688724131811864050486983236961158434164442469818745290961511966620989358964313531871671612616677495997189578984073279382924991189869006141956818214865280360640244455106996884628050620596927072645751548922536138197048532150341919775736061854943319794570888169100635258831052022007411212926781423830790437486427121035692654020641178758853929776764273142778756719514955491099024852171707095058565168446104553855605015798909232658792882443799872843970536573325572644134296030213122139017367580249728626414697407905618035830009034771074930289702844597769936163339874952059744463879056753423229579704261869712070813883583645638140013856080418230556266908954809583671097541500757981781865813032908607066396598680316225751723953026836254483820925679646881550480844081676927481194641375457545014103127302091000875560633515015352060424198474298706283197506070206906717393291610892055043340520466115234109608830925206710900652410953884677002803869209420579753283901454217983932880099292699210623188692213040214686620813183473204976053191496609073033505535541534875269068386759101073526380442551791988472290027417775655091576572127533899769961851843462448170147997346414773453744238321126208858395318937260746335329697331618130465146147451472514508808125461086904310296111357315083991527140563812803612683747290815195209263089534288194460879262364095658789049603551812522310485966152773192029612635427529185118930211233665294344997395165314471813816828093096438122318005874833452411124003944374950073765144414465200048204538878920457180757399453485181742048406398724233204306200987601780509504816302709168201919808897249767109731470134335488744800469478086927079445737778039735947768047977144296697604554236163248272076687927147994588169861723593318752394142178715065324738971406811877500604190248602417174362613791778282782845142459782052213514796453804356487343789449711047734441104213248608756790575952022987313084255392430594593433140455808780988866563384440223364226714557183902061646752397843583800099476629553817909147549414336284408497263141740631800010638621497543453519369008788543049444201171677184300715920852577004809795222672082917444216572455187611453298005797573633170197575540807086586897330110983010388600649992810881354429576942688306083097126305222634943940525968458035558364440910308974521087726958620484164290783187134596056742652828813250562979079419327514809962164518872687483626997480438405455903201103672013701160913683708472162976126149543616437198347886818641153335936214979526183047647086234393717779776868155393523503837278225674176093537384989388284500568128770629735106022530207295864413582701608248960405817634077010838154213176232978601650739272727903992803858571856185004437026918507947032844731113344519900780510461749509151672100734039796727352738808158041789653501293316635498721694299065104038692465298426978274282437276730780565217159651629027988706744716525622948967381055275452304280898264264083912318845806051755817608886672947748676324848288656853023791184927550466182653165136485090095878884173584056518075629327605391320238350736097762938766766786558208367653564226834840393413976578104283116540931813649697124677226331075698625982925417549489665437595193561478478182026116456528543108562374311612297720195086189782349744836987599811762804089045085761526820222430479722531127852172049151754132611705120016086309805877937527930150293969624465453550091416089203366845012849524662658340709763310905430170529443321857328882447192924051174051140209538335440734029482656123136984536287570068293719280121833924725434003296764006443667623260146445880234260307872192865370856275448679371591738841488817473387233510585378941085377588258068515203460231051814535225313721228831434916193904281680712007976269043114570671195978058072264263078152225321922997398347795995064142878396139000229162158858676346890533475505869154397437349995022300869122038988981496005144874017408632250318619010107715420639161207857621310126615694365654949857355148348086384559639264801705881367848713598808911880103624243240557074503309371630735302738288752872392817225556928958734720368104196566761441900988942483414630901264929608676531958935281506819115094060171097630851477685888497138972615761954067372486868748813299567497387337438615649572565395797484110627462876792906939785023767954565522739621687252511020719207578245186505008738043641686852579673911565576361563771301805716052017272036706250630779682978819632127262647220165566435586724645868650133914021282911204877689673738967044193812941686822208893518993286479574097123225108250206997968808993074224624213029303478510507808421019015526979760809178887299194225951523048118402224276786106903000645005988448191835843219253588675730705838726532971004461366407190355671302501262369478988534240075523703394901364718040971760985108591401596411660826954317948670350774512506197214319436429930567915107463848501498552968379192584027780904365154818153794260499095856076396503605919597673948215961753236137111019938360483097053813409722929277305356290373743065219130349752692381373576347711309983709654381110473651970303851354892432016021160283890627167598274828772246157796660974016741055881488548797838897009716537901065522590700548206438428078889933833261181965448419453755139885553619316242128003083861991205135562402147217422261154191001071377907674202106430051140712199420312726056987655984688555832881492422668999516601239375078595552205601461061224808287496037746322075513090329479468608835913169132339949096791671598551813668741897072867164229278623367496211120624942163839637440721935327908893240416477723659333807880243185114102361106161679684462565580208140004969366963162309446595546224397168657272562648795370216113625450825149873081003240163734537968520898392065955080478653167867555099128731319100963530825972906481610792211544514823281471889468374959412392602338467769848291699934110401649995824481196816066488598709054072898851490336332195256320522270113743297216933968693187810200013127397598228286858757485743412790010104080674589837720802879739604121743619978179419806071535832007676799860378155852953493911726920950768011475293163506182708033881951215087166669173578863113782422319316430959310579709399137729825563021074314896476715729479232475780267627063742297685008277775762641534484805413167445853307056887206818507326961128947551223662900547448479926198758042667303765414941751778955370371406428800851333218363683426086820072541568185744526099718846095951300506835737922007550028272123826931367866265506034890394727901944474120836995755827615403966256004734141125181493824230620602451104252706652273252457970367729245047627063457255491388685659056275364851084769425626919423410504239206782144080447939623026993843131706408057298158135299545023278332655654953860088520293841377126863401639060748134530904294797981813020027362024579925003469967909122829869463514087488615747611428221126361126064482505450221941233703023827001666675882802130162178969295169405056918966895135675304969507044886999239968467223411209610777398506849927618604586237417165161878334733297304315989667924934922305928781844088735769774545568598813531512386821285896823655634146887905150805216219990894945510120349829690618537803808514763875305865331414400637625831444215452494468094647966361672059815427903040320808472488909813563553401863451881729547358497103442439194663773608987888731335303646215942835870156794500435875986920614147520501505620551288522423990041843110653269029546553216093487761615266408304933679189859470219851542298280648707306653990547265206601979721652479267231254535909222466482084359798088736006126774670791620274065061520418737846070511385889461684612563619284765058729349284412071953729646766508873960163319213483909437175470592261661403442211893031719254505299369820851407384277333540088421428608781999869981969314933405461409684579181230742623050165014753957749605579475199207477196252812652052101956538928872348315613551749112928921163017453879195482615308645343799915228266923640686863296347193167938059731286246772827078527578979598983038354066662268856546297859191738039931974651148356616510727730168440746576834539453563181372451807754537252624597932767847752730110875166955582454611443447555004934345567637691806403389487718863835522664678109365083805658304306157148696755723493882778335398757113564505769302548889655234696043153982837471453250059487785836609779283727486031918897252378535895502751194442279328839647804622110273813260984631016604656404467832591499961339512708511568963830963847393473414160300166889456794331000239363811993778692923732418020459193231759994707316818099373443473901380690726907560105307632120329263332029793274378295168927737239767364016565690496961685404993798323065789003144618560829423638144477273209750367349970409035433094537174906761437393958204796620222568526130451523751016289128918843065874205066906519743192522270786498499732820962534077189079481703439625738287248830485002884904994908172487254809275183210798526482587298375217602012173564317850628134669339553388091556765328357185924653915155147086093798219727460402175149262782255839080525258643133334883271175966995203597974286008892774307545794754365228935361319983300683784088290118608143501113589129303539962055998938104158487497960625286397442682397019287818548239740578124486688497289151303210911534484740178380504694680264443805758037710668046879371186117304394871620162424481764388453084259474367098265830719110646304567036222274109519836316019123151795166747828034899400930127851205311591918843297756956875654623753352618262126386287994195794457420714504431692584259361426757149670439672401381768834922300261558478845076426599375998871299558760861984778338031157703023700229438097470428383974064708960733768496205650935638972071314816918629874150942115433572168264900387129592358366571081216497831461312544007226323195031520622798353362083816470135686440076951493991484318566811208688978626843669898311780961618821538743754681754043051390347937509481451173769398903621920415987639415023667070126322617142150249048136079140696863888925901887096949056603571261954923751395787284175850107944346890917877284662876274939145501438029499398277793229507895545710640074067403035135135975080199590413513053887684889300841153414724545738738314326460459093533172453340545967808796487072039338554811603903483935721150903764011761496099960791206020355912079710965512229226115654704323014286391642078233763319150872485059433455560208904839088183163402843936013460852507649757812176006457230585716251492965950287989955046074237945964143818988702788952455549264509398022111626815007543340210259343669835898186039788958454113023496948184815668459852164329247511889723396022162373834329909548088754827428971431955945687509400483798708937467729894902779110416892405618547817406009434005724505897022098558554065531294891224558619278090519662698164553715943671235944134432113287844540244070946610860071186528895607113309483616622118154743317401505596230973723883090108741376135579882564660906126355891741983575667111152334199746333916708229505712841867621153991827559820163520186545909036690893677889642473325298595715591695465104916326867536750513171212467835633906602836154782861652704027337124874217015587483747430091329187443723052441234350464409942945170146682958573596579443357129811168995176284422159942656946660201553512587917524240401643901115640090017990934272395313102047491103896903973506047017442204076853619112847052999193956575368249678424980189115564619773037492164803327806370591761212318549888953195444878804417557209332753782635757688262430243710644096048956272325451991071842762380170737183383200550285292996753200746745572023449679118706202108065412172817415474392809727018879447943425695955657555544051784957485419041805371493919501982110641898604721492802876843917109252007108312713354683615535263394568907061239091063208595599314427191653798544222512041052027836794589755872149284861509861067099295901616236833593607363994839501368693453110938855844850043848369950278214138269563427822280295609348924210130039432056728463392286029588410973481008631252276153545977932592369759532745742650807138615222384534710421561002387767286572462343315397552980059086301768850171158965900362315557522105978790543384270264095522354383680728698892673900564890748130078805172424209232581012924919085285882866495456104426523697370601635692672663793959546553020484434130480991752447187564951660456344990712416000165782929690365276931643339776634434501811874068479463578543414546527139258356748681806070628830989190539108861906774755229092915572388386150669824932918857935408734431931060369453782787225433123295073004998768216615790256718295096458013565894459789995126211990726004899711402700860895509377844517267504471184595454505252911513779284174320333046064943392839521089878858667824701388356484828513405754776885761940226086506886923632924303190687136036968316013779793703083427911312442076349782661950656523205225639101073580451318703066358099246381418876444774215028232045474960698288895901094993958362303824578325503876439067570436073801336202203696032395077292230121148446339346723255692821540986623792927600095599229617638138895733062214610298894762469353990669459813098556805714768632587497151903409579477399664188328487004968797966561777863687639704605031907718467236211660754151904057462631507376020709728373087704765237798375743440642072156109401146123983807372259641063089405219351847856856515199058311084429575900603440315569710611680805886153226144702599343702658617933100075047107939256450534738908931069921927526185655633657098181101314730564421921706934226550822142201292205187989719206152593228028832668945586802443497260282707551330364288732539414539724777315741776157254373003819552234296235482592337466488842028994392437965951075706565880122729359341695984803142101984823893456378308754522854096021854032282247882898799197367908324330687727411766876430138090555211278454702830970488105760082157379654900594659960799463494083811154110799904693470938777864420614926922998263588898279519174489454333876868688751164123839298774361077165294680983248689956798716504156993330694323502625181787337583065123465371036744648363660630937820110728265100253560445089811356179934276484953944609708519858070955107471974360168852624280260228957682283995738260293215883660316634129535651445376053390674086561743882974450919597400653273862640050575085735584315955968929417102632934149590663555336357934405624107054912050599709067536461006981505697308236711509362641118112477714606112624137738582335972036821719449634440494120010480617793418549498900620340880166802793626508048402970265283938102131482683390888405283027356129951617323024460370778094080177619914686698908161223751566361180248233625190971497971374396202372632018514728716839078014448745365552348953629068581436910103638839499292719966858205444414865344849820158486553225797696786714623046410753802775594727514977264569057413211241536913814048176070372413241858952967676856438400850601450496224325346446298483261287155138227299367264899055508281293119300809815560632540975766737767702721202893514169789098110864428063707204998225308998017250161864112105112209196589155724295949653641108225313183316137855331370893084282193103019529122866819683257811183080378611586632407452549457665861683167041740786762354391493405875212450869822827882646095343197635241198142389529983110904826193589721147169206498650276864752180311099209408894299326937754645551163260852679305086633520802359158301618564217425004507619363421330507319059410458105241023171208287296550709486361581903567838680361078580227010807370158082815687781397483583686309611092728673937132858684055046857900989377610244041153248068983384951659097211319500247343081032953562253892481700334015702201200119390700279871677594724088082852511397251432068236450248934958655250098931119200205940858851558908868940309190596286029387436011348609193490828723535286318864538246932754556710972575833163797369509151841366931823211825004546567500899760904573644852276631587593041836567397330207698813150830621825945319088626560868328887368773774688676051430677446529768352182674977547503407955904228262000896709357238593246277559574514452665662158939910977531600109667649338751879519321628873288665333831679271680001517640029362365586526207489410139815989305043965872976422217068369300510853541714319347833142541738403723675617439771947729440440247626123342598584628920835183282851796556835850994331538903232874669087708597173186971062526640112472561303067620736411872745060973116497096561029471996204108754225432609687628778705565085618957308237155283493204700567091028027468098454963650304480968592656924983908240643342784932508517934663474417568925204101231664072778189788505498066992507529586914566789302842125538043330787376852728192817586740594380394209765050461628561651930021703324438806218913796819355151729904463808788958234172858516075792168274791365617275420925478786188006812502556707556400516869774923955438042534142904730363822451029310738663501564586753004816417221904002514921339423609941257353943834717370663125010720661785838071979995841124016077900210803935175084812915586458156871831138280332241599991409718507823759350794679272173879498885670364233559716695729489872481243842602282194793730486093404204429372351323724438323079281552510897822328859977081491184107112990272696192682124016903884293410820139533276492408436451804585468872457604095662886210246505127044415956536361818394437672127025987696907604872543942033871689189005467829123104015483616186125125605364076690298084757060698060038855109913610136940092270875531807695168007461950878148433452345126490199921421223928119924926369907700028206873873175270892406370970388646283206753176893299871756395816975075291259286416467548393140680890698453694349380164188378563852849306263812624798851427294692677281538592534793477662579800432843373845669799326784686299569989783720295051148983961176134360883556714798233842356562736856888324286223559993387392715505136295955689508440522130829827098416475372362156978741806146393468789171466942892019539628709393450918997285963302486699635884665999428392614419431882115142304370447253115317264259744577652705549011664992767590970732881263513304993016721943968844079084366632156109745735485964243826994177170333400825751260495810730826035051417822813957686522284669949508357739091368188146566187827263958519479307462462699271863388906025341794177588431029321256760032374678237056601386350140577516734168394573946618259607117824193676452672864736222409972546411804203257083810236447743796154990536051586906942273412505367221355320756313274831493795938932585721770199636536771050738984329630196531452865299702696054060645844731505151685950458768769009155347176232537937346107024517158708319628031448640398139023785236605264024243373579786956809367176239347442346140818886997234213098430291317644025794357523882283662847646945719579258817946628333147902482518449469588540723089606798910202414982357845210548318962698200602981189181506580490988543235678139761075671337332532848659599892857613436736722268541554649849449860648972694760210611977916436429717894759284821832732037257746977717901611369259112279199468797811785066744744691839582242444297247982232869612971334041582103551333520661837295310735972488148643488936312962100198417818333236941931790852502510923956584871361414595694506997958853763022309368539099890772109561825585730598972154559277256602083844620901165369694873209572222906832867598867367271490690536612938604308236786646594698923151003646927494795424615226998636448407841976060900454001861407526913966527451459493093190679847750094879334614322441775052351137529669465871610367514111357778064091192184216962149165871463315540001444558228010472249317652929151996358699728232172389018748490233293753525468245062656433446297554030912816158982036820942503939255954962358448121039722714119686852177918924691313839091356853717173561618298387429099667991956190539432320491917595151599168589193496891727698080184484054981150375544945706202026563388438966398650416271129673465145318654944448568142012380700338604276808821847330372514284743736816881333065921327193019622363535402351756878563843064155735412483584211115631284480094860857063318435479532163104729626524758030513881367960528428389558892782185103556035045406197768290608955064188720647485289518787296793316166954282381571930224850165791192503235306691131027827762347442125621696463853501467549351963413345438793880426784238379130147886840064901841838989639454303292139451784902135187721654937146158835953375135122821430970837634063373618830871703737351678229928934108538822383530980067475081528875799173161306486023763350241773125916981048663657401141059934244730534060508110910745019138358603701969637453953412344709889049643157816809910477373820873750100341695959449104398791168030884105664643579318558286340834644215020612552539250731422784443216501985770926881315835235039726987854696857364950713769137906464023045133335134935685773691340765665284577957143168666576121661021950048065282806486565377617290341515998125557157081656287452387082276357276658173348835425327391124846568229912596446060404202724868728367005886637297228265613636603310724885825109333266625429347601416352332816174297612782060708675146961114013441926904396020494490830207292687139265728835710003739255007549900838462635548879121072295324127041647461961295777502572474713013918614610020585723571090325707388164953638643690588518356682838625799176876506653145317687947370622301971411621915034575236250459232022502089971693708214324204636170037777838596616260430971718850634731824163088962137390663097903097921206976731998348615496887267790889966077716483733495842686157991437377318105869632209893554070779916761443157061361797485550034416436857303947791998216084824857210021711971768240233084268237700268788916596365161569878838328569922942620809337107055802693524009596201273498849206934814581141875431730548540553398274966733991916014394238418159929606225738493900620535781796843233039492314179968970134712458735487054725048172497396235274347834918602469171473306998513886285491183082794102853305371031417851781106035411997708170386652805116234957944722607687234270182777984655575591772157685713671937302769936253634841538576419617343018492433681043850189283766309191539195168838906820424547516807908239363364869904939061935251167213694737684157794276715055389155568021556787441656960670850642120423101427098850280193843658241723581176197901619844071260655466514800769633833015320118308209248962330640816898398659035247908664949073232484751950244602180673909364562667729541027518496592374292109608989923677146258122599211990497546700172643814946350501107567050722926604239145108596294073111105170929945547664920325348373326283529908902070163689759140337047320282351438857237059928621639019174397355712769631070500051968381874505007985566537482996210225048642644908172914998890468342113093103173594536905706721682664547573466991126433453458433657728467442724897824782869078256677212091377294607733048207818651959577351100328328619537465303997425743723161262755390605878223820377194202393379057512547153598376754168872147692090241324361789174025230453962567757553328588590725468278303283146559510940627912007350606485130648764904531133572568864983666858348318237601449880863727441699211671349088693906753342372515502783746926077749778676077223643459385148618397458313490204366551777359392538145001994326280994088645809344313493128375621392580995690178588052779024112438032234186028319342451425403345537930551931109644943903563040341690689771998229642049630678171845789833246899459477104674080886604644881339704132981033874403501569444688100712654691420776603589939322891937634408654344195091949975310308130774988695790208761928593221632779183851303213491236785538012644401859804673736704257118660958620769520137547653762702492687171489389984247168690126617091259011662357235215200243068862947693586856968355918949795140210038813656615414581133105543205886874200467857561614280171122110404789766408210249262452170272310352572328074545829084534835878708091002556360775793041956505193122830633339860154938154738249352290422140534826586605245651123454241911081261994006142985776379541463702714846445359074735909408372384877129020246876168422025619271255990494767692249598956585303634896652634085390863023125424452282701559291985913859433279448475878463817107314056353665567468162825673621891093382328912366414011044049044264297080925843561312126632342442520086020354014304486122159298746554138202759747509643916729695705705124794062127152168361237262874988355770576984468923682215326104552650125393105709074055632966083307735293346881316346452453024548398846157346858329040126826480223586562638635005776866119859989914295633130933167130811961775530651853420748219062283981324224345057748291065731647481179289224193124876577603290495287249027002525695638862048335225556291781631297119717994026931150141318170238328825021148521846952687900043673762146579100543493943305735029747173202075977562195636734753082668710270792069359997460559156845316582956691963240571822251183879028631519887279409011764094151443707772102589230702744482242112977691735084285767138020958947804283053776884017870616904383976624770757709659859067934132457832924625756313157839605750475345815310111009168254759247335390645918572492404894103096185743924011748046232172407308382421027196061387109366341165924678667263899495688744915608987842734184233247521312738567314505405168568456032443869021724260918932125217796821015989864560133990277153882947905133501879786809713568966549258383787540293300212193359445850222836751797557962141276176031870078310781884093367269472889448600890737777975792262400319989929610037689341824005753199859234183829799494727124708220057287354438632414871997592521719488814233518374603514153330532012957237055195653474160360944335939926150408607935884578583329699477630133532335960693815571304954993586520054285464632656413508536625795913424749144817281168781936918861781350871627577093495356298131032752159642812924877769694006885219419595387011803578418501117755544691226046062610322242179076739684923606396253053109201557806211905434402471089360195092476895752558322177004817907552472763675270446840131906436672430095903697421491080736786595240354473471671827637164660572729302181794984557206661935447253994985268037923846430970647300950309309629811632188150886416933529452665739951910813807973525006150388238808959229048344718285473962541018681257819432203422423389506488302118374675152604173885595192954732436867049395570524117362021813370750288727148991465150396313388028018113295373663662373378552985633323004007072694234015004214290606653670190840295958829115821828367326734015610724974510391774183567732118981573923476651284596534405108309716032948281043602424220548504623530983230274493900412465702397790006433147717987138544010445519131978156520077836773195998843084873224346189375999842099901502964804661865068491737377909358790870263432710283535776960489554581055801167771380235924410588421584862861478651170415296582519677343302198032735209910569073655880168932556739031193804645670805522144334747854991093114484432946718831994673887753396030060433714301584670641709259274475472441601075151718050656366903139371717959101604487863900807269834344639017391956291119849406347220120872325751483769933285562585676829592060421702370616661495393263006984836968962860389184314848127362518637747773990080039767459027774365601507843609443860492051953317180919591017596973693140283579637967261011272300627754812660687636270417010312902568835610160048216162756640153906070242054518643026365325514811342487911544421155357253173553454771984076606714941061814222736239920845710145627647605089628351730584116188122004604982962311985029202969210533789175222953053207260845034468254744481495437129351499540315812839350245559182347539222785390229843587966950718520250758549094564440196852243886612375871387223786892408181478670088101134994629545091955965430501695713257746732070771339653693339049925563318370359896254087840483809351979959897187360972533672063266352792659576726248363596271270207015158431088241870617207129039059844937198876180372019725130118618943485460910541422040411543827972017822328706206896968820611576690440322734793420057254612676183713949842643492075075492178534979382286073420920518612380667168821557533148158636887256299938034494482237189457781631754320939204045337846927879225011257881142838120818408922263572001494629278010309274171116450034615873416495576685016818308456312659095015515167621970481520526893405502690303447823245349120648944841869166742433219419559918210991580994762364309899490073722769301812442943307922601590659087935741857062374904773898013884479458233504423669302043729259955397620527118461640086436454427386274607716642908404296002055658122064343568981979049224787547756225459651017642207379378002341225913534326404717822795330772870155361677315360443422721697227939188667770249820862777877601970957315260184043307201130939251230254923338172168575056908778707955302227301290921099967526914394253421569379106682669924885496855529464046313985746936816114945406941080205724005527737090421006783244969492049676087078326603237471159177845939252590764057960404706618121017302518071512640756548603423066675958903758129330168813697387081093961139861409153020799207621653390395533804481961227938898781927939287388170977973225347718527300500093277797104610792888029921680197943941934861345370081043996001641339723599285839902223017341934189462840491715897521967675376528625398294452790160685471714673495138830683631710400968707376382330743521512743415821302892126089013032715319987619448058526815901336053559786349792007740056871972498341920587910306342386768311538281019685445714957918938953113045533570881659602899461074075697661779714139778201075221993919119393874686436335399068163997311184997638975668128998187132427769508146367485305639612655785072272989461461136506237999344605620882444189676348216463434304751685829862810289258030766040504559598136011441935969107160580727092669559225610650469237574279100968085152989533044228227197307541038188138932171462775612905329242011092480176042491732293877815199090306060599546812025212766305514815221098916368380958561300923872844435414999771626806375244112169688948634639423863784549562334926203927831092997495072746613222335864135895651407158256534138392016695484534758836939719928243264489559076415206432050298671279671458176177799496641475950394853297373480395597522282019920830323110894423212735009238025499133333055559167834147736308048266048741564788862499879718894982672404271256294144853932476256457285891337508276481826187012523741785830461933117120800700272695567980161439338825385109007717887019162444755539511203083370682253692905792567210636506395695551758960164788069230103489361271186288832054553928177942123778082371184913943103918364001710102314994429260745702526727151105780465996794805070172241234135504931230986360253171213285157470154385410701543098922008350374943380248190302048278622889963818528993080935403162362670354614599898938495933757715458789022587098481779211265058892768619890016834567280696293630866360133083099336092086129132942790116015709777492802323826795270481189892297262674864948023970634905643480432954989513082276366308854072181049922549721119791563012758084722498182821331689087850690869401385263907508803466207203815050869710767053831998595736667792974494015547669780449492295241386965361799734077332351500328329937535528432997934248137261334644728866612692989529948265456443312350011044334690696017479452304611168482181221076961353679917457434101243765134725519771802546062753386786869469734922341099615907377799069265267492251018250035653461774057700216681100328352477285273917132636700600220152591002542721819690736830616262116749221333494298981448121365750666921251509150856284130381377981845173047997775964648551052232868309570470879323225976835956682197038272320680323431596930008303648668509698668005511413782843839914219474026969752115175634891961460412408865277215801803485787319739131248942617493254618355677143238036385462543552334017633891426875765749369729287392027040965221982819375497181268946938172316827446941838534859825615845269970231159465174514620200226606362182522909643074509477480865010636132818281478767172799411253567489305918609860078621824993243426886554652826386628979376535988604520475445246866933180107495142314220735152961476607582392466309513738403781643118781507290897024868924495085612605679709560095798745065648900645386864595741923520065562391211303622461517525867032533015466302145323809594616985105493479861667500783837864503322857287500981147250169209141358551372101284130227028209561029439451857295702987298157601233196658908468949024530093919524771606716232829492798713891090024516657297394963879449404297765692121927278046107944944809034194583334940607040152318086603878103310452092260765385810152426240949132417166136485027985157864898576839702460293666329916537119258444172061297736853658096367956507589973115445164463035571490053409317891545097086575205161031156320285512422940238358297112043445758845977440910357758214019969281764772281695199713227368534440318918672540840695336802901408325821500129856869275385379037226925683858399213448760732822494186548785327419725564589992553631390268651078166545601666387835641025001284596836611819480556079794320600861612578152102538782271021624818178937361814201955344402051734095984648573466107320422178136250632379088809875038412607854698572314416087145598943747193396631847407466387847508511764783740382407302774342477204873980276978891206360427391115308654106798669966879454457060448870776714237230531074994900404422357780003406982948034403402565661647417593857541721043266823605835216694032035584819172736096687429883906026971249849059312537330594050979941673663880387216793602650829757679356344083180557205688542318283024763415832632286400140142239734516603554648663657223287118856412009303511256442613166376973682843019957361234675148935801364937222196810291391465785985854747342459880136424946972145910463782438807182692589369145700635782022687985291550945193141309659125689745899432647479591593230035717641229224944288459159435730628447721967017402733165077914857695347142439188927709289034278455463125383441852079539167895354930993927175003459226533823402649941559999746637805010032079487756307452301717797236515524414030974878542563074232171729672886116739420645150475299343564978371541049039408597589356977823984887083523562203594074531757200256094982753891075751001468727216716456634290640272895977368633426993730186976399491280276032905751800463053225839039789719105908316540879472018993792294683700124785431894814740068132656132434584709423628434689664704689897707876554672386466119916200874679508538180812597919866069325066392723426377310799265925570230262350866560571876287857379849362977114562979981023648375837764170493634071272675487148979001438566409042854834599005014432036070159004400307530693411657619030365410079894053985432823080524883697110546857222896586152962235504931139479026787371330722809223148948960664714765390524022312269121377042576764156134488200961903958761670107039071411245486416330350920213341788195297040142901554594556095338460708692635715350950791028564716785083851009523724742218120389984318803346137562362550924310071307529030139986805922182576002189649138325472078050048475631465955772641821224469387351343595699997527109689161934603331041764199355936556145278625567167455622099893703810111612411358730371450033328593024410369949909972967419562326453831081240913130993463653705202894689970972094286088296837498158855791616844541434250314496269411490380000021222076672571848761217171735129018341299329477574289188043788989756136609815317516684805130261597931122857688427005913757337449523856350984743218817284421695002309163425212860106956658116509309082891319932252968432092291576692939994259770313896895842973318557925417006708225942399234633586707192001450154795991500729456728792634675795745414638189572406211633779011247236235829899263869208469734353120947526996017999332174644305293223813182039817901706355606139164990363413600870494750647421012970457544781000488908894514466365771155409702661981392902081791619296194648526124048342229294001285760226267218149458688277547603996404540358053827160421188567223073347478427390463590892603721407205237360941045271154892410953783050459537847847232625056921280616903104720901116331982530784966362788331178934508373272438899151274157875616208520153722718038825213676213491712598125653017231674622461030184496415481409293567091923113103819969018117105287835947925999111522099971762490989556180187918515281763013507200255230053938761478632934033492106701148252801557240977058380611307228082892294159159396942948288251791291574919095333440736606618748374572811879654700483676504476824257662098688997660916043152365716505160027532626637181273712605525539130837743977127167552858055913369049962508703308470471345386650003745413546782542905459850188395052913002966839854523094498050638606032943643655530733262441545483672280743174284419927876098215456629721013742463538793889961562857685616756758016007929748439021053483859030017980332549223049553014170020348840915307142956430878366587669085586051487707008787845137854896286962233919422313933373205308388108538294861269143964173379633703502062165543656535248053846245459019671007202953879415381245005090241970645447362652196334187738779444815047931578912866160963087488354827504951838063680060643822453506717210407150084030887773353365459601401926640987053892812411554650002066131423977621915371888412292364531928870725865831833101716551022611346877093478804178315658379696978147171225012053270694117725386833849420463166717793819048626164535294858227009907343649494178057064842596638636504876629425273607080545744768594612731046253199117226618091052640824270590241015565034603571330386460657938864755602336345000182494152422492581566180065441727111872344309260550730927639935931363554995304341947056372910245915320102407780489559317664495344335049280704766239611877097642634876535067756258216948561740306001960589867661609291555309304897650494305631018789207521327875603168689133322746365828427883140139037689297383086670639851097598048631158859283433549313809322950561536534249726857925896088943184013844160691251952416972586538947610314060932657370849236150405105570640312984977807605840308187481111898521431899380508384615150992582733175555659100439330156224869041880712784205016093015078800754729859197306944734881370524050153036610417359703382407792160399243523796949865160192908939124224768193260915391682659117753542530724671441212204565734836666015392011773891340865909786937464135540482759896130910637481851913705551212327988536952994718690012330716101902666947281778642260595623325938095922673120601269738794859626562765256248996748408332115125097852829651924110148025732863885707557484736483907860519387139692542260073547448100264170950476881144799356404255132684445582260912127805903771952052456365439695390170786740733482446071093567305013572268386745727714493903425059475959795090856770950265733836513641494228387488950341502596813482715951235506054359100607139575501059145895699691557135905399366807985005927010437365721078432894858406924655426149108846261879936282808962300367099943857986700055795330090934485698601581036839747435165479447856460650559746020464211319927990099204385267360003416851325239701487271021363425940938866577943526765950084848692836341128757800280216311767579680102553434790400456542909361796372617202936279419124404324430311160963433907684625386800222910634218880052259197316390806530776013151508601190528572898840464716296501244536275146014825930817116482346481335102332777400868370214387110764600194690824316957421864333078462930889460208838551258468218998562122458250657814881677034625367317227281958712688757334062913291608587555097850204027246102681119167178540837760904406801987900636043942112808442075098011670167911917769853102445527028289754535841822881743055375706740188432772798424727920957374765792060576255874143793749727670983790817744758982520239217984750747380306325253917349941789080509123940446201267654005990709783083685830503269686863124788772309239561414812796227668083803969799767093883749815084676159750785695788097874120394043528420062965800198829419758578375559019594228048607927263613811379225761431446839761037459036487391234250904247572962718607005712388886321504264759726868913401507955775862166072844637326611148051233052378144795369661456013720305336631714134973155320711989705233047868198936825744669638911155069964843484291806654318309721468486410787402424719829059471428127945724251779862302865030952133219793168970899106089317290247765553357785945062072967846482882127382354329217558228549871772880661733504271432336392949138344705967391765962159810451620490919670820622469330676823534538460377135085036641360164071738838019911369339604834832845379220246085115481239262602934091263956601217221317994318134977945668615937019790928516242527344852997853685481022190753048006361251408677840594200075762097537910502653020117996295674270194439632733337681474973009327365933354220351672203907636311156828398367385173744570590925868456932857746743608495773373036054280555414017760870800885979118581288848493573258081309268523737157470223335955319045654896071479959819528943491484598956379244452035252055507055721300825926910078915961002258546828643462282661948560375380067056590187875124373751720427310348795804727912390343842641129170200040273787380526947269655813788445571694427714679921405058807412703910029376215427980385271920191065872733576345924090055098176414420488583425075353309095761818202270618566431964993743194844000962613566869268198650136303211381008111590615546664779334606395395010014404652827326472898320348183229079728829382753027960982656614110335079537917550890134365009369380976983557263605128877641127022809055186808080422090550310193178001177982638720649601560568511266109495197801404077224243219880773178512480551110497059920358002238598941007911048012447070111420686281287571564168187113736211980470841049502849028005400696216204867819681332236537515109263473846070977997598582289736641609583461450666523237528219189184664044870550838655595485942890518492985584861214993701092106971063138767936420928779724892204538846417102512964826227063277692230883503881066751568452495853061618620955198792165229943985576631197065300739987343569569920882112805697865279271017757831800127081447841955370483694032054001778469011855436166423042049767755450297211770009621998476209063265561146499007070979598147295271854134066932096613666381985447764666832453620364128727821442603021213583561971097169924937931141651759377841713552838034688427906565056605373609105985150947489867019712548165437573739310409845455616423347867621463994634142353566921611153163576951683979223934474921733857412841271057164286809198116895786569905114110449949716141001994871089531087376194542232508040910354885981177653637584927300122044608318071547366388405245487155606014285131344569207378929470284226683768324129451962986664086470049745336060083305011168416629334410976431216913775628441179036616845839514002750357032978248030715562678936232069153840717334710852321890028808586785083630725663446154060014090224747101892124072244378406184690574902041698971117438477440530979250267866306165388740414843743034610996480781190886862180771269966882691488954261934638380717361159947421958148970961532459261531120208952880439288798000941180482896140784108191803896476928808798251933283733309930322110325002915265618121831933999807604778137891701427850326539076466446188548919681765943740050850597704304605923260120306473542234652114255599365821571809265472854379627380146177979835320824153319865260285049095638514443338337336039076531974900992373199323587891775538851594744043882500161055989880051202034959850097327520212153603744138249712582300171430268045522686627464255971152466380206183161564334800801515951897927758248303308082932023213983622274199300820205893032754993210486641274838659052616382386104136904411451530167969259548777584748348314265451859159401373692263970651632893037450087499774925997036161386791947729515659642746303164314691019137498853871496771200307042397515487750398351276287748129473214748219623943843702212443970767523795448220331911516649082035060995740871129840176772302279902284470738357776423554884538139617459286556767031677897827924878040464970615631060502297108997416177557365845527934567133852016403955830731791540009005869606607578707415213598054692515823472398816768687098912859697507601383173494892925538239059378927801158436942708692937914809120904383170710070723113739230808597240387378420492589595882571824537975178785728093267262355396840666880427746325133805656452556948521720672814351345426390128294625241120953531990168285274142199591694851930726687642488578295381234521390005278333117147844446049178851032205604886564308287792472655573739804037584653201693721829325240931237552739019602367868886603608850129733451868400772192993005924207840783287298306905926894067490675933702231495544454153709281255128330138442820441863937704759601796318182026115853913836439361547734157157522340315023382366630172856533749153279402079062355878620226876546635968978378136723344178323063280868268291554206062908360215985955608869724432189105033939143888936549420390705872254619679556033919390211330189604552128137135163251794624497102093182041547130392609954127461873832426790494293913607406545617476119993797745230758257287860162228577535441894324233826251418115387244118228615987870632641525641988862283473088266063061399327598354050447240793851056832965045361057715996751443441821465463316669509128604930468559688704770396216051530921693625648034966403507654723691451712295479083676062632700006912287016668111762588542138435021049345116945294787291964132823695143250471608737187616602596373371463396493124987293197518205902651943335175703402956458753121701641826779599022346429239649235003945140929477886667436522657295935490857406478367484643677081917562262311845304313819642949619445131904988028214173014358563509303895198410445447250301758908371437984530660197094730012037083415447214679447878354226868000124108258609401596925684137195179880421256032017675327353277347454705359553656469050336416768967155016335036224564103264045406219885291681189838406044535717224353624963814129129451588292552055331530724119215357566289365743234303220003753786125613914035751624420135903998853426699415757916565944077382773372075658574529678169973294142040080289107511928409700618726151105777742431259550005398172706381950365245159655082109907704408134107773737076352109340841723856317717829636314605828940587613875110520391454838209170938926287978739143160132026910668382275431706961378749708076440394462735382108714443306833662170067914827985934991455341355574073818485008748511508686234793491200669322446442898872434585010646160245904403834599499872433386961436418555522558227008797641757904530319010498597879917747184843688477334475110376049822735240951003567782462738866639457757386466059245743928042446742242876428925209825886912645872569338391381114556600485057729683951233774846804002728876715123588599775745591874793014901949118385132052940633903336213358712169847089787074470378351301443302310045448232849114859724523485269134157477252409575852604280963626531526985900509326492737398147735361831446728119657933870653740069334338579516409050473201307184734357406435986394117752308389579737026218083093139881016155678845630337095376688928316587918082710930036805961096128864127141644633264923945052657950973818992661662153735389548414935027335293497638904298657272502541317533071031106638858638655804568463549551372782732519830021900078369046684851375764698922468038510143857847502474098288204886196733494789438222770604408023721241173650184935907443558842009437450216289841375408152892465092614204314446405030316057109451981819916257811163445003722121570307948651428969088974674729263164403803716317088375569167560542763766512818967215718746318582144432256744249123415603046598554022011379099336242430644222469596724539492034479607536064185363377089554122790549599399609178172069052298198456129100992612763270963889321949762237749053856623195956076833558469920366284359269335749290628783914933183019278732340821497792853788891849299018790641598365977506866046587712650953166770844356531531776928992072381804797874903720599558466273918352693937247835006684470405277534838124137910658392466473901016513539208338768421504575056316534297759071265931065029660914832040571062424389467245735078738395221101625826127783168068442966318586880890071025196742504176866569616457241230533296521281741216601987488312282663718306198402818770212104565226404439192232678440892935681344561030975045964044263422126162036211813691977055475587707468048677771459846594968727356072944586911955339563817311828438930106096097545197408590589471602445547717341040642236418416214165668874413810951099080471753940526937748619732250775450248469796654462379372029709835409224717285453230566591048085342966684329744555306976850694308688534884076150258960674352694907892337240787721320788871796008692356435018941509106634763746622818615249277609854546214062061014822684692918492952719807119972257027065348781139223897186441344093510236437665455137655991140674520657115912827087912872204118601086771836539779946498736987305615997790758526515294679284678242769028126000498215399528254381555866184377588455471432369212971162935464276223123172934639785409417377781609863051343290490007408888398411119594420878600154264784305651490059447381722963478273674132655958928039778399413545747593049058551956821359416815745107088249468698662060449733992370476746927110032305405703527218322103912541302556106053352922841313683815782368832958842527430395544565749088033478820586728857315824880370598304697882539640919690929605223388915756209587898679288577230072464569130056853505192775129617172964882556382951813186406120605080878454186339613475219268201119181835716189322143556784713593657551304660871460521637409075888968788318163063292703677131017439063788862372130188564983151042646710019912375301522042197059750892823262961685448099992961798195123283972115808827977089321193700867089726233314830827566131934183469194418608314710557107420137575267339930249522192059870203488341380902532402248055512371282720052693874922639072350714661194246535567308248773310698164285433582340747235372693037679888532434941223626277147284900942413853593435022266391713347469398438039917073427495891499992269318371177514196166895614983360594667582928124539091806515022224849304642978345587335113772596429268699979428318509246689184947159066205435678402478894524549020926639747870789834357186901579001218778824811229027919735304699755090611546320555132216841534858951419727067575676871691317203252270368170235337034652484084264146611275152011195356555299229143549366793684782629724063266040617938468964820012765603388658622335300977940735921686465314883647453791433723087992468601687011183771938656128292614778846223938945615905763009883139166740276797942749549191083273804512584490688782041361451984506873774933081541851888983269302772810066353281854148142423465597278074698796731609152129170285037253212956515609696034384295172099201444352499180721471803291541957661496572347305357342700297214299946304760424606442053266595970675323815006031096591571191631391986873828250072891317333654466628050451387045202249758354905746750415830238104536940881840028343806679410773245955904016415144074680698481799598205785866940366219957017095906641090681797101521343390968050442381488701855467702578377025335779516843569559021450130571692740497132360843615749583413818817188518990834695267449252404664984907608277787290434443632438319790869095724572951750418085678413893888592205664275432193724625795198590580905710942719936492950926709253485318096997148669582786094498345923209495523997272166863050475810540435894268578635282859576472193330198870605715943731580322435896676503879922045195820003457809849555929832476330226753878891106398537003379936050925041884369517563688315713777924898553968668133483469320753620220422174583842178740619390981929451085094205791807919421435545410576897080599737091025633586054124901293100309566123402758388302803965056260100996573591618434136675784773029711534343883884966298832129841560158697695581619133263881628925251920225183478326709541950368074820374187297173223935960861753780289572552758573752030181536745629187582601347164329583379649997859132261368271346398346505288249293937764716717443543205786003423599725723217046373716214201906679653750477849620628231714166599393457150905053204953408138459223134641873759201229034804030241641673005682223737768158811975625554353198925425855816815623382077003862057865678818111408874822689457291110802693113310694155268700657562432663679066983536500654032279031933256085439658933480599954075760403930519659115623805505784337124092318027291053304214094434495618783380384053410736634411902328236155961170375958879964366109655430995557456310976588114650732148333724436599549474635291945372897154610648830983877838193687538908637787586806367369241364283904551997449436550149376424411851374870960617897826469950525167380851748353540768357077429254545114012961537862840567360669616192235657138924858212311848160136329119258877703822699137108125897729548015984432335560117905933320983586140315206545574381339523490009162288838054559684039949818251948225604040608718806899774537724186213511519555026772336075670067451161286424176062981770412132134770987639399671707631475462624093609291453564719638452860903955277559746774217602967191453968029873034264413212546661739386873866512138497560465787928958869176178814266202776721968961339897586439277513005969943097447092961377746724511388480302070577339932172830870092318749584657523676020907688180239368091459674336482924166672059885488791158852385277763282700282072110800775514123326101395425314897852813187486672566488304378816382872370722119089599797199748457384933524862787691259957960695544261223817426375084349163993906143394267428922707520433377634113115984714705673501747345646967089344002145641153240726361036748477795537840805772011140124181770582652751369059377365005967512540297241047784622815438180170428915641581183859933060830189107870021400719719688720943085130054592818750989283488647534294327396585440617800706813012752729493110465110106828384440764921018676719455115637828611591146718143624105328565438702935150789705687540960332794864285147636725808529850409404070477763110767627266700653132272820184088384693883931022404834583457738574868428659751145390111858952726982735250436477201746910211014260794625910670515796292512619750349145846636003246418383097983104008442588453656783943855736352717840828378727241871621469971517779345411120905232620058434766174302104062287876761156747790010686918481857297995735287312670212432236271131803115996281249313928321739469253534576333223775048891851119908311917493540223908017038651044402098776372446411193909977893492675726278473417511902107088305324521017704985075659137950903513863228119257415230346900920185168744489920656191672726070500381768436883223202766141219956100430178369334153925579610988923030867446386879246670591056374575948799054373964128840440059228836605293792020600639231773610258924398592851939653187581340101154347165240420309210312848068108586050728490391194972720505451535213643872993704716954870983197723437315487219452344674415205095729203518899955645046104424193050255923684906583034928050600732307195514250364408125731373071021983192034945142321853195392386907757150326771787935338994362026244014572717248733911645125240656402263749282670837120456848894986521213953147014351316127359687116632801476924506169141164925956958482276309629738575115356494699417027569592095605791783851667044794451546371702265404520252455283226512775478617236281708259670175226238944004996065020120076423743899679260239513682994585481130165189645877582300165593330333970570684124389689416802322074139738897818206207781977698271759432183951589649170565572014631409682824392213685859743866705889904640331295365733290514426254412903529785301932082383582742282363263640261366869719219468730778776393351141188093253615016080274921867947825546631725706509690474449687186535554974280386635216075654911566079998190696694747084744866861613336006980625606818222611708195938260193195932050525275021758307542220248715254206912731728151648082098389020763422242481136350934403594665064150726096424571241586452928386482255134870372807712792713723159979447424287075140135854617388580844141033898150093249604571712046620585670743928334975663069461417500111772723856897220252654451347688753404136922973367747148243909130238813217520537067987459458755632956006251033264473895633427283718798004113769494204575771320109718884290509346949744951634604616725883037188447800548497017593432072988114017218790610568352038235544908582879439511644930266927664628909917956357382414442855267079699044453868163405600239740799159455273509921161476460926196873352894614867992289743372178339873120654858618143995481196338600765767521402543195228936912771958145135224019493720377129636740874818739840119452495970833420650121464513757952209236128996535220186065428735793046823679082186466524038064781498514955211576145714339304361498349802334464104027357505679868991583635193134533060566152479352130420715577980696290946860527808047917057339114224981995044657620887671285734337623319697665980518431603145536342792052876311788837083989242351201198387033784003949253869629488513942023053973333729033300597325015177853596943656051090157831941574564215810931672697730064742857449450127097532321545804085776738280920361190196027578534533132329660871802999987388926431534110377291794235838208141810482648288396766549464553429611200290805848648955066979603697601230066080223686092917012058148693361510176170821228326711775786583388730655376034949180857856163941166287823851807755530221423896453979609666245924779645146016723275021127229318545618254783401026025700386218483337816094278466014288883332350349845545685332132005714943806213410117966276187808616962823541223515924480095176198468993351024075335077362678651945984440959195809398177407019103391946700590933375715951647086048806422483084551796609659785227407088500051986913830083063216309179665116602753178354715450445972033511681934290536235480218711154503533936565741704966599552957861250625772812331022405021519956217332061413680690034402608861835247435802045521895676816078280705101634871783240144600289929105266643283476545644660651019901585836201037929382114923871173960502811561675678951938889849173618771738570741990249769613862842280458450643181182576732557649612897988181748676593651014786214499379510199357823113624149750493172297030088831722189189372563189690912582599286162540621822085699935532329781148794359782414756275497738171999936759580848853803293608535454712482088938288452334292841707627943325477704812725954315503069708740605647929464028673003653767658433738723475511173210349722362078587433749606562573378988358660569532910100453493849842091378626622447374144967234591637355941753527225066620767339677979652715267349242772489729068779869456993664640485051871822746611826380221720442068842631293923731782297367986966933091487224748658425786962212864119757275912371255596310929418775703380570121733556262290771932507175475750787441378145930291677387335006968640077830757244097543765706685995857415671054972811987335230184024417605073135773835384968924927201507564564222954323244594968058297535134600328727325802306886138497431193725067288098545179320252493328422269511606605293652952158269428607275413788019968349778335870932317655530941892700684087873160285520476668227972950227942080981332270460800537256435015932720945998631882215694473409945285833888772439846565795551276195588897298114683203975409177084327811182426151807573950949415661611665678445095308895671639288878388116107972690020803613083486944047932010888321226576078846946568942666556797394982635869073456393028268014561448554966668288503716955721338271684127829303631063273723254422562505798866286799807421509193916085349389243351406840261083556908008624509522181863272542990972435309294317944724501945283552626985695076471279660274910698293950947926535568911749666533728484228533260430281970482307510778596987593526355510196290799473585191761764669497859626241107866226890762664664588215998881074018567887859305027384942394120634284937038139026630681771612047242436689873162282523900727014996638499951478970176790221342865325761042678301566009850314079658067393607161356544372137644566494350844188407574635909950930929999149755260856571892028185256412428294950021741043649214109553710973287919033378453855712960970151186983194587570636370072609144884981693645166625901073726344139689877250864854968354798671612770439459559402143961420481570171359987685526644253805162540551933311188031509331087180663927913365955378872908978517955018358578758158638549533173452568671958336876177126165535150840417622625213634254348236909921550647345357055589991766251985298402940462855498430399169968047947043449248005518702229015340633420153761625045516299403514920208233547592152468338925997732531985496466209857967946995161629349734373064021721943258417352833325475946339063660211274901690523263656539481812925845911428926835851582384262651497111282091298989651064678343261741167884565869730914128895085694429603198166465069929463315937061882497961616837336106121119560648092760559528531527677471071183303945991056675218537689656157275359562382932323756337452596914244809377939589265768468573283588110624280930469502117272576860714275058465554100127658855576519266371521894071968891400625624912636980640399637259561802155426497477647496836072285683378905334615252022514775230663583682469348409506621320647758676604785265990664959767867980407536803008197835164045376876756179024420702981191973004706884594222274768896543517177969820998649717255078161306928641171481028000731158920266534152909984809296413233738771928053017462110068982654252905477667379252921506606004502129446061413429432648880833849713226145458303001236898127857569559276997177616288215486903110311208801929380532501391427294361115965335778883351135216321773443650772572538684982432400606108605554017192879137239925277891663728224546763397626703505938702308094911558660326782493614809499447272763765640673710759746849309512018421140836029989166132277227999250219306135250919809368162429253271529964809746184274996579212284295767223118551832909208909766219514907286775910189444230371807946059079839740913075990072256347689479889258729445820432837701383444308803960736944786497051988018803611775121238466401363364966497187192941264492335642576923819624690259660603721785550020606520339518389300782343776913895090795095830517158458555504763075809685982467534674024655793204559892315580536149664036944719526234436323216773841728085771851615173826650726011542870656158485864346711289539833781823464368889097381381355803007679923535918045295369251444480886836720643534619348635309715216113121953577805980361549312074421014918895496641313911749163199331097104234898453093317480251074335761519642076336314256816240058260606644613153332498556212860501597930284216319127397717998236775640409062523313393234089569824624079252796388987285816150055845773059611122040556699061059674943772958354698428988770503963747525443138257163397915506000838372446034688098262064727720322189485858952937906200084105278579834838276289468376377820538855442710397589358557083345856853985850598329869760463452680794484752623775221959000907365001243023881383902450030815570578568049402646972149800238375319897566321312625324620808498693770193620104238627038834941990110396691951441323222810250963347321831513960033602324130945710572832744202791031237587801529158695491277901512767824965581252503816294839459514421184391431209536622401597146435541024178302874915743169434864249434618228793994825139615063733085563250634318594685700967980784439076482863730977669759048000014655779642092424744264234670127296896452572222802930903343488046259770920637319754149243945345857122634519304669027077536883273721244709845245350384230175305742491032148783424371783382470815003548569703342751774201369325009024824025991063785309627097219955131470151606402913636735741477681975326200010758163360655687513980186767793074179379065208052793127441339169741837407121074246730634489714543185525976246075880398691403958023585831401152377930729403260386583888497322799963561586239346933164169777391936084422383528845733356193762833264107850191754071234095716901278589395572122801848796440173183267059269884986344951849120825973110317840794979037571965967511504223058434740273880184655589955226917819708258623526082543349343127615169942962513236221636831086032757311428017385530585358725566057716183566206026922727537002425771091923401603985821586657294579819776946883229161966891794237938467205239662577641008791598955059026428046954166304818718754957987995920882257153284593317318037496606131299004739257372767228475000049421919577737159494065404146707301344498088582082920869285867539748967105002495127917679474136272582947111753561639016929546663041372906506914143742133087469634915103289342736961429648668390974901657245794737215521852481521538089852438488944834589336194162284066133568503520724694366908806048383313689715647075332883567813866007572266813264908240302556479210590349672070391582104692906474877154851251118667131842711977418503085591003729095306380531377231016192903772522423573174467660646730740855746098228440649600046333848334380271343363248895137552646371706018624984777414955041084771306003214645012340499849347312437186915804921389530588548689339367494680182326203156449950352148470593926753279553079794879534427768505580379776068525067039179135276507590206358238582400838070202391592947360215523593737866961713381046586638772903808256319905918004274040991366874320226421591186945632665569093625180547855557991994085415126142758165895962471480368321069366144384203463659870343326879644863319285632153179402335152602494284504079797544724540924000059104680025711798897799010096429518706035751689510380534497716590548444980830255267066850073240862398176169481577857167133979378050262290664712984908355612988448297984556645159157609177308391215342502068868202511635605850526139999086091636255340522782465827006095980110576792102920833102232940435930058780755319737795735119208337934319019558832650645054766613130667971606071522692906828061179096153514323407267687062013089680507172742430373835020585238725284123977255819677251069907849977189718162932051847069991295768488102419290935559935596177290680113790221525185654420154539683780010320323580159741177054427413532695876994576482960251747307554754140688792548492359816044930542524196136247136845889120923017140616149309237227632803352115555447772956172401079254970060821203444134474904512643520900728010627629995824137398071928987707822718105065391297714225071532110713648886654937683582889823668327339755821995672510939803922352107577575944983091138220101163701470821105553087067722066154825753141166647916899064019541075152451578149424617571499706434766246597724466171555856389883140735294802027314428305578908643818072221235539227792255861848214699762899303496608300064671752262603297389866782943185100735446699201663545348705690638088258097010746546864231338423233012118716349128111747038370620592585327791726389373460177306394103053989643346073440942246459870873292421135441576491013693124771837272987132898455423816679014489436938486374844213240394607850782400781029077138214408201749717406413583127919939654707422077898838238949003927068819123708104128810447025015703715396763064130405962191884891023464203501222277526540115191605596036327373056653695223929999644865202215920300081828145296438190398517733833520873637677803064407632488641536150649172541005022876067031898658920095758854190723517819547793133951556321094107520105015137440714237787354946853220156214093210346075675536163689414236284191173812695954283168491661657121228402737771928355761794253692432867826000025018944263326251290881965661862243925415392003992421636938779391550963704712498311270262410476897257182267972827019388207378979452085741718088221220588170045554284079743210617839023060462757617082324724479703031919552299236315075901202396053347565047189662019536119576907261830323015543441430846153300324435617462923861597505309474302328276886791636039682133796940300269263685527342460728514330704098726486296425999088574969530085734636967631727377961127529690744912424107857322583565331984690706427409723980425361656605088454352390122295838927039984156705529538322012153017042732356319583464481352231717300411099640140128002973436755832631974320643956698098685430104445795388150898933466930701145995551307887729959841683830476908104505392069855033167586046038342573080069236207855102014661603100631507858465929691890086601075454379210471214993408642482299891712703817066329288936335882487479128144662325691842716266804499172711373863547310495043284945185182075208910472066182077214895648011238956934134351911477603519571182207694197445391295379954009886670555044237976867082671226097756500283472927223602562601608761377239595231096036943583775125548229466612187730895869346884007142691288589164933182302640873391404951873792418747300593395667397467301201398240773057635171658731979005968811427222716710935084434911910364217780613432574379304907326986046917171073770248082445578954237469515012311593949119625191050126953533711133929557497631496515944457860645195864572021534626986368953206179977566272421352955118051895675161680452809007227821731169014489766997660530818808277241003512718372731194868609575504820474614328216336676454508600231068280663576207168316186441161177734096009333157207247206880452799251206143290747874595734222958379104445193531994351612682087658437336286981687155247740362861083875168073970615283026912947057566591345107198996802682363492470281704513768074252121637078616147513687371902518223031798467880273096993314233088842790075668042254632920540240597331274154658466403705062033547289601817649031421591182011010420372656860047630660514959532941185430004145383882909277517481901551141598902075133036995217804767152189856827745458129897480778140683368352508314222123775057083643119503098747581218619454277243778522833083683320524406221369337681357609495684082318841983750419544015157107227045196591189440604698448967454162965450592112077031974266148671782920764119125748976409064575707953443591141044633060135098053045876160802132029995613273410205113783860771945232467446377134815972911154878484240460983395621280342118968078688304743225269953392474210983125214940257009928455737086587051480387092718312460210191932137183862518622036242066641340174264624521569765986441854639711377910039199972855155123745098133169485616985506733312993099507256039216169455541460990179138486097747908053817584424804611085355915061889794128655596143561156565644812514440548477882148844515506982693296904418687543659727809766688261755508543026676172746888321386698213801790498774489565416168828823125902767554329192778232087790002686101797184081498434986793165365407892388939818497152616662756615503187885827164634495441203403041383311650368452446460981287131872199059350002586547877297637103539414587900442295310415151989371434117983455021227130530480589835975622998728126313845155324937740597366720024323426306455447714523797876997429625585000446431076163610062200628931449277475037738767827421477945463222251983570319836431514964350996955102768610034395807512742772205712245363577548997534029188506331510377125076687280050293762610439290757628261485285073713587839090165471787434733556007247029877437725335890050386974277288142891944365335806906590704639939499467043637012700458655706591868502794127141555579598006417632353090090947955981546379160959410234678676508378262740344787010298143434382095254773249509894338641684367787624357982374449736876277736531541006109641346513779542148384473285810674161753645617759400868991289098601723551820727021437279376052357874667529327785724660062348495721290003940332568147934742387004791069234346421752882695435814273068184399541836710701672872504698070747948705154123089375395193473368596029170328474482896487243893211705661473018263871027234104260273718256894648913305766407752076233409811047319152248021430882480482863846746528728485732126382303628131122564103126042271001969517647667250970354172998313435824119613774638605506621158693266128000505827318609685961007304654676411711213575332743543392885227841664260898936278408176304146807480882525559716405165288288236593052905318188507160497256887816161011554724701260679462114134233017045559969526891635854900438205819568201786174295516056898194541966470783646869456151401305507233347469162452552421508449733456860570742152109502904113019538622736869077549850078370517219000976937355054293994351935692745884362985343533297616651282082994810321330158325963818217839347184788466971702993240764383101787730536030838504770290894823203029806497934520189022671023474484241249226750466391944934708622765647102368344317839581002332996820555583415632128261584689736506156355907611347974276746971397247990890140041395404235830087153862702916828855814080935218774419726564264739545181393719390086634724700866489626857081997000491616193912830570136340724672515568860383027721492658823697796697821808338139623357909561140921927007368259896439112232613373950497399168158454527347823226099450145435342840909618312996621992468612559934693997643422425417606406830762457979150514507988107779426458117357457346965437893778092169335915560101974128215080048634267094119545377069534742687296236536433797812385172231233645988147702521674253955958169322545838471394493692621619393461808462443857464582804402845569572274746335076132487711761584367342860653537248041796006814815914252270513084649087517287980619633014674819098209714886193451207512302084056020770560584706758109086449131563893765642038387956153081185284824122039314506755751700164575636085469086278195968833145808683660762971497510198263534115522363303131911841614704459558859724881767168196128473350435222191396108431598728467613778156598055917952012332493378845096913753015303023651636309046943104261131222794650261316196685285775044215007348374076191379321502354960282369149018918412509705845647159127623530114969417064382381062023488424326503391644364573461065108689880571824008228630901006358979339724488920283136470667750795004947459774003246306379111719226042682784275905848436700643263798747330136503277630205623588284221949791551031351484087041332753952887101062636482732604461983262504990210409850237373491518874321516287209825552449493524378211307550309048345415963023598819026280630423658095550935169956684367422789933786376244742812880932826355614497298762050672860799100948212135144455728146765007756744742872632417423005459278977835223994103294314518631879822383548962901281774485471665166706261483190702233620888833189258308349170771624894340753937610310755934329936473655857555481543622052980017271077096424317572043214306415774342074043204833923233861536818056167277133417714932928330651398488528346511315445013319249666575970676167727618342536774016635750866876735774827006536497771069444783849974385892247129870851266369134451998134369750280426256742412267916770193434517841431812690321421301163579576740697801213516073656319290265848626505617824283504256560355293595650617997071039294145598736466416478797346960897470706453399468865882758371385080522965977016679736355355156144210980871007528201720361107865523847192358684284139069822448525166961636174243787722690049569051375949039810751335219841187658926012203461879170527469506194805491046183227712586234800749886430192728409189942084462149097654697617030844834086078753854867651860297348176469220643963688937558810842732055986011287173336837573415009283340876194932244478945991824728281235964096270257811001765016952689688225846339261112415597907312409877489459476108412643240986611527183892572640067144350416584911483633288669897021904447980334237437086688865403977710109984651774976116935435754004450099016658315225155587945406207659831823722673594947984181335101786682645458495914750324524932655570652903224734523494836455167824007782930792600361265742597600614472027928317430153227375582418135437683889754080795888395345243302864641161138599735915270052707724656170253749334249870859505122718343406494363390580133428308995725245953986000445531689367366195670442960228281855264380372175641285913149559080291966301738780004887468186603343970567176720314987488959197958306848993855583049312979481893504169830712661353274862479046783445095552951986422287769489602687572852793768289754105894957957200929766808486980704982339635067870155166859706973867640930964175672421298398455601676241268521256391801795918256399624128316947795751253196933034936465470578026786222744653104573471540698424417247043926788217370060422906900282907064216440079663068249111970938569378896414878119458116768872169452397526259263686232313494890022985424070227869253543045624823070806588609632858102156723003147449595132956035172717697300761969116438031172484834499825559154763980542183885387275727744009501013119203964964935292309624477316965697230626748724889195825584836107640331929954416366529361090165535959507167815230350751989768937506222786255910580451907013233895572206367451387634794980110315621893974529590932685873483317909094560968021281070633877531664837195737490425553802915598802924597804391744786368681083355607565595078598659088028635261055771565870144151420800023613653378280379601506419427475354042208762252081696201725681036107421917886395137869913992690998737100707151954959233130548190976352683777729947188804453866529634704281014018415483819272293967255379508288544683055516099546292355109232535839550851460598910461979580011901732850091861250250207059722510936388828698392757313159158114547552282278156525880500669787285917986602003746164930573576375831191444793111444178118973914520520756142163797737559573611192063270692910559341193033455023839529782185332043730504034121304616844240191070132615480163137587504726148460518375808429117691718707162523664472730687516066765283309355095913936983578197874124406621668195897838803279212888227052630964033813264220892350255613204275906725094277908843010454180005005673258730325311558272407423379070580717981775011650964054225555845963393781612679429839768468687708602334629071593200889467293344969610003131463640481069211465466198342372325447423881929304227687494647723120257583904864664994248996042616893068990231773749775653251217378482009336093126532722608642120736505265770005879363180184211347302658234983116216350521848165354458380702886581245803354928462499558544749226707776279171360461072427088510773657549216850223626914241833488990338343232607210586803754675597307126691000282991332689033986555747126979857547465995332468729165000935872609251493688607670464774833492376387553494196786657178227573182798325278108374814384743859854159368526046965282133809157743310344046734543226034836414099228823291622280490747600904644122324273338993255979894210726486550674369546597823032258151079712900440542033554718265223908136149457701834206636204208472420248970551645505894097022474207560593860918901790304955010567664843118360562339003845916457685093893190824185331074464674514587121762291349914776459238309033513791738359995199580469445684847368176334005830400642356052707296097031788875384283248805853181170031730692690665053236133798703391492811163906867477411579685707680796599614057683180550207285792512301518461420111476833860876186622979450471100671824529940364304581559208819750434526424510682287159362994108534343385183479265774841590848096169955979864850452727838276684570639294722665510976316147612791512331363334020966351095369065469891158417914659221689161322417861045594113072104100769225941131311664567457984641684942612490417180166988750678819880843337410154649600076489751641940036461437419061619476039694688860749545379525294297372402920234349130357807649222158780313511716686452043451025125924719876402081093124382709461374997402093782543387892616010090940461543927495527616746198097150153073383545363163078744615863671331070764068232516663289994447746020536425598091707363154509533459299393100739127063053790694681873068310409727873023158045103198770867048303793458445043974257197270982400191571811274328329690868371384421137185946828522976234392756138675712712113312895848101726278847919696082148676081812202860605547568019950566367242996051030957571619677893107785236253589163836611109337750058578995136306217337299368087338421300992042497460427073524136570809039604356603118757390521903510864094562923651406815944890686730028359850799943018165682243991868147916353760498400568325141007541188640868238515720792602510674514763126607204930421806324489314862705925724999519397560630132207061873976931490701144334284470039793291809586516125811966295175774554854560224569623553323749989566268923573844170234286460369243756300020087336300362605450841249393294558000466845990262244747931642996141447078633933436122046489635966942752421137527758466881630772506064203663182370676558433289547582149752580707868729347856154270173186880503716954109961640790792315542783447469857863770102580721215805467147166496950241678145589027748699199856961636831495911106912561216450219661462119793979459631099264228648526175361226102689210060118331732794554334073939416000399971674519120973200538772429342461245409590102301632117137694270110119937587385013939338676079135014679770942141184271226134726498007861065905273893727203383903585967320531796019795915421344642366094088369068698290219746957611635535008147285072473456762385128600877335516936037773525854997981462917574053277658823308319885115129976899274760231002286595256284625606905571139039715163275557956806997575915261972014105346169491405305428967212389388491413328488133131299872515014601475725725838481806302989414112555758011552321619645606405097749931464861652922934505423461884340749132586388843063141735201643623112882586202058734009071991449964804400896338135073062183683392880338394031620353639891104024683758628757116075662265096128394822054726926469254724507598635226536714163550028944522651400104380806119785318198828604983161157193151910319399492245312297469377079702932109137143997742162939765572717715794823461542728662877117203226561197337604299391540323150065886092922194229609769663818671334613904921958048663808510209194433896409113204986029825248985299014272765654285963905325755308216511952553997092114515002666919153486299234923579296124889389158157386716937463563764128472630660243549620476400836486482519483737418303335248426518102266933005201619047731520604909560266132136470768972066489364071040918238141345462159029130376021260123031872990503031918086140726819013376768777723411739298476838478452879587467668874837364988717615326101494146154252746541372956438153557800135024817290253528926276495152198006980555776264455907343782649956685021018030411220771684910228306266690341171510894623119561026630822629528942500100655275324931538380204579589550165946528336865520764459438022899259380899542252537582037382143110484397507528206140060429964031931791303556190291375715416633446812971034529587102211148212670634378361141086633070544198305085398514856192083636646696363675473938125547673245754250401329736659923320280902831406223136701148928289304019331113417330442844142376984460582413874328264235701989814637254522031557191963225514346035477883037267152518639290086599079645544950854267866111652533790773290150573001577976038709010594651228929181632784439952047527762373430758592119629144168542020947539246791831770141554657986510610635658048440742475869014124885068806461977606328167179343772371695209402836095641768892552283440394045383171999952915059373488826310902478823053790286635506124544414247464984370510014473520480231437409319479157277871952606512620442270512124593913724735687366167382116491306883084463741251412445300980081707308883972505164009912875002359994732613401119733695233117894812446115928181287860200182212467054589941635312300355577728648048464405858728056249518955084665100215641294352048431044365913729918662139304684911145234196868894334184293586005065392943904910784107175080030131632611870572153751080993032635211676908355037056917196184553459201062769456605730968208783125467503928541335574254055593249670074484983647985981113620531235392396496736744929121918052935183891026992654725823144570161959951548532160049629023138699975225030010506077561310211072873589755831358764369082260516742798533692009628164696387808875268798529338690872276476268702305533496263650741480941362239165404934998745372016091870083265275674545998591969143839152168712056042707159363451082452399629110749994663299339971432108445191680574948630128308668020128597220759923174706802710403518673191462066693184611025427875709581386739301901329576362493391807110783373274233710716511680818027254508827772273980702898415476733657536951987511757524834323519799947651259971697494282544347165933446745494098937619556549598989399249604605523053761374625412359301772651231029143481030607592092996655640720113107055977487219032621374881816635358580124406510109978827751366799757483090933170357339621628369228902451833878902853679781299899838025199391338607958050546783185398809988737723960558156998653086197676099995515773656922571323068726117949781903637080784127486019232980977098776179231295225691274878350856808131641824005299701832936721708963724221396127204611592170181703454833876664760955845934661994449299328927957935279266664786758831085662205432712950743327127457682395770396904024336062861486123854352183591179927022928696498527780787920063100244942478196758212169592746681631568071307048098313213687661379713220160089477726873594603354454700296521917969948712378072484295508850621329175745980236324265048637422372806538457069361118709243778533272658859057019927846314801769240904991505349387431432841071827726600131178917247010389464976214082355847991108843927143444562713928343229208384681547262854939680067590852749968432095033941084722669411376285336665926878236476767046086260036377157543221030958383521091184085699048143635282105881760524001427854262985037323515102413740445676599076313596271523574005040898896907842227904280672468683057623922428682416655898077303987841629798137822514164841822862296008260855096828780313766687049108285116976668956484901974539946243928653403180598242300144635479257324015033689602663925599160079054081612176633584965465564338629538002813947143499693883493280861091291921382203355601531571607844049675847708803621046840705630175965921345712053152313740099835244043098066673294406651155762084553534012441558598661059576021500239038236404472675267380719196822947246928667386520186913483173166319949246409625893995514100467525125647018171086390771573056438573240526177930657920400099102982732003159737780437006840850931789782903232591971145539395744291088325972800654128309156581963758740228105169440712228928789775239502822100171342343892582141722373690044524142958713100763925310507474997436757504956390043893451406426809094553508636010686092211049454735356755373862808103426035535928194811893426554722819737986448525996763127198498733108635689543355464820117477755194379862142735313804012114520163706333239120357261838106914037581862926900302712966812274877025905918770740750706153542394500466013440235809434889914135548257886944343167847551199471352924586539063851697018915379694143457905652912395168768548383529005522078999098472862601072532133822164996826757954308177103954670545596452729593787526559463100867422103114590034246902758968646206723095397920169378195130244527488731133237730741251725234710253555644399265078463491171662520473534515785826942391176929641907840533439638519106629793525321271147725162902695331279444249198921356099878781608988175711580908795987000240181041364691020225382188165574481110433758811106036936748274499691320193100454604850420451173167447115586624989122374456619869227945741039281885499838609751279784438253578018977723751050437048529392372246467242572853670974153395158361878512520703502904205179378450302862877637438578467202817879357698534995156598028766334711633609657202330118392635875725156586915782037705910020090155951977504459811991898230800848037364698953233651466400675494615605604312052919681168546940397367698973053580101901881524218538154131887833896432013441189324826875991874539864661229681391230888902626614518083709244580715798105101079112600811816444951123879440633836702622604298892356096470885842331310358618675742412557665346948890498717739365888740592524723749994196162463183007890386112048488389784149086563168217531562767678366018939507135829093182906205782932599117065685773417088910044883057104990073807773518469663315653997794826923624548062597520527760809451899299992024575219920055678884091448654749274822750368788424416300892627791818810283586640887780370972351911248245614750248665232866314084890633370972214892418796284713307687924749039613913050409318980285210991618711481268373774413954418658960192061661389511362129693043213591820826685378229310508438278523153554680460463594624546113687422249411569492434026666794104305838652770983083571503922832893258619602746570160589021053303388657517567177383826878880566958775075464333304397467828110976298268272657705682970295021545490523506342204735732315729883930182408716889314213621841481151905416269775101862601104840022734262472141749849618067447016285853426505971420779628966582364196188267175147533299054574497880250248693340522529802657884180889994593847509646376952373609940492931808040418370370508621456129421645562244953782971787929394486654410609131466776934348873254251124287525829689019024897072723022312212868879368410925487236517823333149523964151960754397276148322882508736082678697843714442293648735874766296368800894155651002348875960779980621198916363449356370079672638247939875442147985731246175672700455412853270391367768453643356813690487615991522305492058037709290812736431922756118305931820086830511398203159374850125275146746359698336420207575637078792634189071619995166328272708177622379182712103462236028487272938576891849289375400563400402182236337992241894269580020348878153699849621391085101070550355806143048762684357674458496447413572642232094897046667019760830479525304206992135548857776728812784685767224244716403417462160040449011460227433935448984556111629120040295790571616463351639215356114050903668113900060902028893582557297063924276147619242285067558597216004905247151956721181668342217835839338966909992637245625520770627148191153805288612158190573062267374174402296742805699103832101536253554398874018504827478733016580032984275648766386126700516860671362824493250893480692525711565050248878177050613774723188171869028256383013226595762734543341215830731143219922928978635019753910187599445796448418976993853793375552383008462345902525171120911423165810963767023389586791001990496447532902936325184545652125459664398261909462710929986372970678231372925543073707499151103494256632976632215368674143869401689577629820863762472450151678347138965817049011012092271367656417979792814735396973452299730878175694027926922555783375772412314285209576179684894279935654359556717301526869418787265010770915165077420741233138700948105564694717820475419800661542094475283499827133361044074797290503547520627756927546747790895915929267033621197269741240117097393074077544624984187750574543803583436135322143336250887695445130101082772555015693660767919142475339503172681025353109007386036561970321434901970919168407073371043096476393454831316823833949605292784082271460301358233882046933362710729933295946435352503863100153497127969698830016901450929800193355975340020248923656826879980008841143392502752066119751826713822975507118131672284549390068551481037061220628378466075438951127520978774201283339933098540929259764464269817756571166637005716684699522551484935570926948880127448585839082701927917784159826345970617983509246134018517959941016599394740898029104627749253806339693935691294438509880354386430311429169003691527041333874992745954344471041501653576093134099581035253837332173229463554791255527472085266462147959132163424851588898667157580240564129274106571025402589738603159108419237087117763408400301634624357465884266656526029707396601177378586983210290575844878921268069799160472867832484549280637720156922791617944163345430274195942435384832940664131417711358144266756627078640838695235557943117995132622296188781980745314734145229561173886570322393956559022838106206161836081430207770567674017050477002402204761558330232573430997207868707066577673721553092904640266009135630931333224787605342597045774816177650455191478006961079761235670668533501511572842871674490770535537845394836683672210720895010382213852168321122673762360193023803161773849109945054489129240415828854139881684521959605765758221952458583154047411984724030765051381469285124104918826747451068944710555281331402394561042053968860043314788681514938767814667187191017008806290295916198195106521373756959802701803942968513637651917357426104667894008853040269704073143681259177519314146734691566559327274482948187339691192980391162929424784802711872122761875715743925436898331305064265545234956355064221360686410007354739468662862774518622489062274844580724911128848742053435177337564990288051308722762313400957738115786382056899564130697147497729653376920299143246237671852747526349865411043240536227620213204857837210916729388702659355054347885548608872346507753802969403372472259196923080849685751584276309599838692434127506641780717673672819395146656606668536427728221173241684059704270438530034902871844582368141357582632990528473623568151359449705274685582453913549026273736326037807958511519832126054925276529476383724977942713164707532855488688122128864330538354103045398886677094132168041987820549955846518404774303976390531424810710010533555578577128778514322277753414768014688083809066410516244272414675115438660120974082920406452330088568634199215094553964027137308730502440267818658373026507337397235025713885186715401766869857592832007126289729113112272597575636425508515216328263594839705488039601864659249451480155931014524282807393386435478400365036264574070678910955826989434349158430453011546090252978851451714260177829350367924868964359395443179274583427805449377069829309937776443139294049131727122857209759608880831267269708783796254275918911228407914026298784461132511009765129563704935463266405227669368436426446707421257822639815834743491118925469745999306173453189730941865183653562974032501567960252267900844474591916797383292185190253485450865702813968447036416003926809296002398082774699788114232363461660002212614451034396242675491919359053752442236017907788982689396927490484949501565838027943732656767436039789427585306983680783536163028315211568963359141005255025777692974551935729615470515093158496988756965395064718423634116521514725049135314615381021732079027489125865174285993579135455470569023240083629887934120869557948392653359233616744403339809970493149057532698741408582637167931483322149487998439248030143586965958975639048101872316076721292255794097384674182857191932291262809401934453153641648596789067364094132526649958522613477084002461099677618932148538064657411325496722558460642603586507288278702102676670002042331201999497871672314844737598132210496608590387724086689164174902056751532720820703048688665889591830173463380808824262495262119740507272091184786781702532746052153658170861947699683023823691773785666580276915849471695459753899180701456370139862483371378840796479136734249853755234601723126893530623550060170370088931498497610885899606349956254969437718269461991272842291098987819135142275078253330672993482329201565079755645385815711638493168637684597762032116971650646688379207162163947533905118944347257820154018153120139683556092782251236513822009133114108229614957407205379747730761914923002034757742040680262131282846931175871789842477712744819764367497680023886070180586999165948111543128971396684158502685274965308379122977150789485586616216967872411451726321805799628312621524139119965898386547634930376733405034827360885347203411741471032668473452782950276794968385244952160385705729546677753045803152077103549589004148234015247934296924028878828426894072171084903554568942478767186068624008042282209159473970409868524427392834689194010910172828834914116004833957552907320347778776520391019156461853805397056175101669080833969016947005432748780339291038544701234958501836413409148318203024929592149117694441961069654089637169655922892379766796780334712905835019330485582959249068987590571841954436716168794657525316506741337314368890004693292256209076856693316986716748438950551458356821301103218910076510212607870696733655274839919125610981875889247978045037116328577949664202502252678158940645991566094230536661005371497270539774261141350873477036465706844486503589379479531581743698507779911377409561320601661536649283193303565206259055266393337554767162952338036695386909489984289235190386064854733259927182924134103472660916920509216566276945182656224543201760851719576280495863877029069104619933090466144092415549922806992472160261906134114148335592040573514861946956481413479236113996713589527769749192314469814224105799505549883187079231481987810841420749359695396339642698903736941886170422899685021802564081316136827358403604084072660355387037927635518174757472597994626603454821577497812905342732073984095370673950234740466457908413944966226809597798952559772422476986021494061353267233271676412492140926031835758925646442752048496539375735264030787019543599686064832545373678680724711345768024895380612305556080241099824547757879646096079953738623222083808920756257017578419542974005391183682872640139472383049414495506383282088289924906763798954049835070086230012957671214050318851039477525984609566102782207798580327636786914147317967114080947895568921302013177294387640487847356598772755825018874440135805099555235847220311597602191957600432572318274744025730471506751614544286623130979246774512507878912546023068222619007222165041411792618547551552903951196156167811514007721198085355784898802374406960991649952924013199292229335908467925039552431453062856907556722491125708654156681795483314505707116474783082987425940122592771253304993402059810035889655717266322490836088876169115767497496009822611915322529902585220694609128928662770697771547779381281967690936231056466069686750814943887459808787865884345160750616722271508545220322050362284143373660224987593262224497824650427133602425051952487564621407531205682731283352793794490418858222370133099506330529029371767953658685317641469139624591155209538874384413293349760253952401877202690566053181430385776180909971871045853221873786732015518741278749767450636021484742936957182198463131276641788471800980000201779803366619541664976589808194669221813004763624731543235953882650476731985486122694964735117200393298516005310824966361578909887176744158454400439603533317201719434224112646235251270801432267725279623592556041166306217738291770660753633577581242767777309183693094615276181345097046479014821144647199163757194040843320128500003342457860560999299085878954857161221546583280046014506689513838838909296787639899287212779031889732861017727006000134611103699785868509069901371125032482001593235593975298575310952052986699172706389922010621414209001283098718882013700217858554677627414202323821491910207046457522681686960194438421843141843881861374763890801067552090079595712884956179281068199763253683311722324892017159407958001554324089064438962861421579362049957481101131476904389976383760195041777079483547332831505017480114292710378809653087557699471938475715277192420806427913452165955758830888040957444960426708891764310880523382001509941730104928387069694770337676194313789884523185248776507350563830600134459226953997657508770898542097895961915885662045576649063748826396359814051872690355870415990831796528243722155415658425829661478323159476412403830750064938846263896269604727828031066039805668066892161419199127334521788955428045197865175747418154452929922023466692917193893550521440450576378161287195167997254532989459199337331518503269323775031991785106056020033474542991382784283908061973868807219093413191500861551277660648378929134070921390373125009092810748496383314215119204654399004995028482533640294232178785611265469671553009269313798760666233217339015091499841224710451891287835012542596415094806249223381002496484266467723257313436982915953482211505809179322432204897574568497576040684051224797410887022180191544544267907250255155214592120810390836186975322561883195648319942629663300076334543901038391196467361491909084325284901697341856039709719403185366328890044742114252765991746994940581799789554694656913601960122796998315578088501300875408130426846417325191651877360285869899519153963560319149991538228344507223740021185287233177334280761688680500205644596698522525907383200644868762326791916177650591430145848540233068366487332941120443270148496331293101878168379215999748798058018726383776837594816709485070738352180891266816201434944092441759080566343538340987977587135918172735149011912405116530033122263961650268695311325509155435269977461483098537857403033783057058160469005574782600325592174782297138109830818295794129487685448369126588721554986457089396231858921943848304379582620879815434474698895853765357208868916908895374821432936525063872469222911009405583820559467982102348884216576092744151957097259548533871248628796999819763500388008021349774756325157604955112502570827107197621046588081394447522969982601139004567346972325452806427570003178652850683203456557192437147104591375920978706719851184178777780922207255041560979984199762122899355873202776913832780852279463164381993975046074743824853497571003985725808819935684216107360426499877951100148694040084789725551873745598313188217729766353777659447427828104770140630119591101700097095082798475526522295973425074872648005256844689179038524959235988224606424447041481328044570771054161057682576782858397307927353828706472217011140280933492512497645857913196909223809457287211550086951308898741695416639331587939498042142700623947288525913569431165230065583059269607122856146102692255135299821946289297093133078548453598306123483508828218797286739558256811088497816895964357169881337113939882848399212681891653416984813325521160386473112299555094339422684191323144275361016994165485920417949009707187726253877771107904061450518759673933086221369907351295293730991007632253092413780900678695754992256375365827142159431166208905251210149318785470697397420427347110432438663262189366601205726611681920746404558533084662840578857944951417178632812016456147371082122075664162326894603322642105453080226215505078048860161451210823104223439440876023753305703804279455747753423154318665637586394279113358894232525046566232284435163110098918575506508282168495044379831353210214842466539309062816183729892414287384203624345712942829327017897307216811328428846680722096907924359841437258509390583206203701242404867371793669828172508823306502603345789675662877403016493441661218300487942747733501642857725632134140565384627298431583951059278692839268105220842750810348683012323178140979787330628075262208280161833228422946940575007253088470503041151246227443073174954437944619056648023830170229438681547013678080974191099014791366603446502258593721739886743714078805345437493314714623005026806797354771588176057318012690190296132994183933265083510676360212113855494209228249835065639538110061249414610794210576407157250528743731468182956124919410330379546512942873631832570137981296568691391520617568983785563398566262968707637393652388774194743705115691490865330701923962911016920627878668994363850162440084686335784472625973014533909044664794638590762221097683582010878846182360862523418449721233462300988867615204447603927948310799544239891895800257253371439735587040177056280986460681159953998451273182389848532375879334214157832283382522073924311333270912165840105363216184691847298378612888287117288040318901310238683215005332005394806866368524995441828075961398431257894131033175181583129688984402705292593255628319379965102229444477852077485737838750129945849940690549712921671022847596008801336193953004596401814462976085396138161632905582667100329269604329683997947887607959786609423072780765366000390174984477119440491538194053340929318376022900119021400498136119572664229668177014142574461905287827093381973464383393757047506946878039367804338711239667003373225429210198878796644986147509749645206148516230620052468294606712078364512993944102391733050589201959696796050244893523223090862929498796939140073098568588871276194821791473198396411989673731357602076750734976195401211447483092992851765083877662778643771740450135977941825743892093515269507816382161128923316339012150600226270567160545466365296856689996754050087273540835024658244829600761518107977116366533454257691276096447979005252870996159208416256283750369852666113612793657103886607182656160242156835430784499397991648856070898007459002647561800898874793133787071011607184563977484645612832492635670083728691999543279879572193545452844167144885166704312607721988611302635767621718594357691661230218100791241207270364675212942664986367555163569920441970572285618566296803296575109827732387193878010126745142304018134070042009390301856886737721492498163258626619449719340842985639976939541869379430375958785537568569298642246439923651244861867354776940736321123304932160587827159218921118575694669348165606227212886633796176123375617137940223463297206176830219885608172722988573264315259829074928651654139303617371844100486453266327513989521308952120349385240146331038557676779699086156009970515240935677130073293417314051059105816754449272963281441138792002965711026888488783188040392581617158138605618660803930395682783761445774098696720057245663801567473320376830576471157357547701076292313601722363371739932186359853519906261898859772300003459879534443572006537651352291194632349573360742376739753238260597818654768551544479929306055024831043763291646422046803000167877039953065796250943606525660168956145194530464171147712468585362214496269862846110710487709835254727045175918435685503117903270995701040135767135922731026491442752842988079733583025102408725802898928888069435301372189764659680911374898968776680472129171792320312214864029249523184374664302471880313905853020995054424680903215104460967656414712886684754540556095014093041865099566172038388460261547569627570417966402523617677658687715000440919075487174657059008140950205750981626944098007626912644280320109035291195009450540500634233532342990675981966248478490477787327062926413977297750097813077181085072131411071528781789653730353574934621381711617881754437323810512091102049581848704889532181855289553959997444907524776858196905168173217581348550204383687743268761895023711323204746419625872792138532573455924886722959616842302433618453415105349803682469434289000193950194567748629738322296475365641615827706362670198709787607697405054514469952707614053674723607434173118561490512402981304708297634136638471948870642653790241800029304631846741505770969919129521405177159071950213593964252877664547790652131872452306984657642915440633877152132259268466308228199854877813410354709014985010398514542227474044206971162053223677805289778876258728182470074998529641024971387719050661524385841655482684365890082483720646181494072645211832232612510308183945787552085237923049583779577098498336711178306503085233614673733889885424701852059453365075658194745963860342278867647197508698584325597787047418982558006047361242572889261127231425867425301513602499616096802991355392252399772360190692459464778646750201183437268295430285807383954119653132529808725127596683976129968272051483913903698428352259582285944712243808332814650650449944958424029704459741864981009611218281072686429183485404964184429246716688453865846194271797074648622740418715523654557103172678590303291559322601601925076338827395509023254184825846350951595470440509310440138380832656798034062305693739734791158298422991840241817366382776779509068578360346509805598508123414281432668981949769908599472173686726410575285912614320494752969906990606140133813854125828683673555945231746767332645338536219744927208208715853270479321944368394286197740589442968056315547808895382679649783024016620286073336980582283327408380501428836489597143694826295274025931561862253148009496563254506280761992386811980097874479064420495542873589857884743713128118991505154065855710772556546404147902993198926893933014373950096541850686800084224723282117483887423263119292738203687850605926113465533478588372976264617471456610177911920667559374953063134955893297056571065589004776322148754536692288073575901190888624203299984863421860485719064500955579809236467581745404577979631056516950457619844344997152528010609113207377207739466258527672967785498409583287571228771351637590013822952274353004360097199420868982794277366846391782811486157495442912043848316789991122302720607618339031617854903252051837588466042556707324516293976599663085416241722752431688821939722565584617443660068648264988647485175682824006736663110855744017726969956343710514643052164081025613721331685400026092333568713057359274254574566398455483030575690918878540126876156778131723265767534674289302136607428585923569270834984628393383159628632099206255027885153336337037128649586228771318610711074645407381372840287112398608155492025268639376873974227152468341843781971989749780412038336983053756204666001828525872418271729368321366878788401787256397932696201160593601798113250691880333535621998091521619184526826115943534480484799502076222108975611859607517721200074407945320823342818231928127983005084795279424845353037819017891053947253546891638627082371823510147691640751097528729202212405221689251437003033306622724701470446965686634684920879309324525237294978320077153076963076829856548782836196713823715151736615671312238957984588503673539624587374670174042460601699423092969034540283811690569811358260010902920622260044802483171819282715935503781815664999570513015596243318466837085326746707756056631340451208580356323245092214163081857413979450651552398452453822953961606635185592571178257078239510414707369420422416432747285463172074267659258445627026106685459902200773733717151655434230865556194718746067167612041398590918008087614191678189257869969783091942259839503335818105524750495310051284497861019768757341434336596704242885646911560628008381310972417020665919121229088703055767143048372872786514484400325863287397621407293156757622124191790858835669193609950171653720047198342905733956889997018954391509433143680813641744313719385741802236401810348579638397292200804951694903660321891065008072810947573556950576870452787388148176423334676748487391461920139826035773037160823169848168287108477948106968683832895567670809236701050305084526003649265763688700490422003507763186153400519980756176610636257987816271878348858039026727530473495157551083220229096242107937596090070416301981749725155054520070348884418026882378815406209969530394246734583880415557259206995688195979675299427927299545332882542704265522559665592412171923066630975486250111788981566258198975265992359829027134074468738838743185956917917222985156751340527218994861559393954723735487404123963155294327080105084218338906688199278508981871210540936917595047705369863018651734651353710759199343360994157529987347501838205499101556604073606643536469235407009365868766226395927802496456100396968884657785480671729908468340358715486420073807143997300281796662920232298815567878204711694104045328192381647806806538136053657724872909076826337510555843733789880247244700564084395067778833826015325324541918745278442955782533923125951478137532904823168621321667934525159699030407986795931836385680682731396408480585446022459066577564940709742387437815762484860728629717120316429014054654791929901528831422339878936745518722899217776110922051061838795348584866729665418919615866314441391913647440050277673768648558974424704183215372012653437460633213490456546956425650673435070086245171232219049396562212824499029695975021806658503768210175708670986638486394693322994693709239271241067008239627056965121063487660768476749588979864164929110035307318549705847866872043728529661088775884692267594634867773084021540262410881490697884642151071288022291926271086557982145986898719164007608112931967614400018965167698249840817945759367412830164569629734045608659624002758127062088730249555072012809401275407580282135926129179629988058076199699222118543523104530644395389897954985006486850287699015052714708884436221819324693591771120001444385456814456308026699383480913608234121160173251784548764020347812698896737262775913910607694758504914190367286244420385896933521999976023622078586028375002568792863315633775652274582399536238731274065034245077038501645355822931007267068667607319655511709366625628029391999309973641981929887538770211776005769933394380642684903985586153251650630763926031147461557814040956140124605407472049505991995948315715783918369168389529715638904721867088787673039798906147776163606340721164578458514434598902104980726032782739929103015375655424655440220957571355983772780894203489787763896912285181401725330734754327114369047849023024104429867381428242222132913882556778238534279333091587832165773193639597909931002514251858650370790167332638024224917356640255893122444903938779506700470286433021470208305736627232200896886790749189146254390758297162902477398323206049920899564210842532982160301975108689382172797515985736549231364589583021550928055069031276018878977234190646970265345311989570652971187262728684145992397526324031219153916743702187984032426424188722442396202570359620116173078452124979180731699717535199679806307302968471134074799266963428514654623621041145195955192687529248310510885494814757253540017815293029072120847220846490578710016280290838544695931987642400093803308244055361018196990996866552087055778683930450074712053805132790790870805554834028547284297760717713154666498210968826511978005109344336531737875945003103665746038778851761525809573185119112353006873668569884819436185845103538487626419796343024767852459887362500565867492031785270887387176110875287127691376195097193064748064514543429177052153210945791682312950311059602486032541827813860773164131097676940034115248605588045816851391879158657232816336454391428459859954875446865439376670092750639159185380152494905314363582808430771495791492076226321050674923341739870628621251948053790779130660375940737266119517058416602031577417943972648129499673573470614922593199228396256486339467563121241330333614539445523820170481818126099214207130366419441798065721892944360854493221270054895291165057518453043680823309608378340412800472708326569215040720327555080260332299598052122513313587317985421448758559732145546582217318384898836307642085756995654314443497232084355654634780853932278119441697863307206864445414795771865680619395258418478586712388518085033503163372832049075667634982539377590391017221987521983176791625646688584544242703124154077385989658505425485625822487008752268211260797806148296448576503908690587520319628776509715709758907158061033742904799407225658632030425727432495751903064279403935520520043734317619261972880788690532326542253489678239289616443946366431349319292693324161898189902834977323654133793958825643105792293448070923823650156427145244878835382883127661592662328996754689801386584909299820771574848059313253640262905729037572789513513981907171576732096555628460111280405761155489154284019546056655025754884249280132699837065399605640740051760379613081100794328136836675776946586173473268560114026063324725541912995923935081819795289703723899790683755137096190649209575277779790323157867314263232024559847848562646214824305565252155063451748686222993239507581418053601168406043522787799610141443123328221126403031152366138161451546430267151695435325406937593327252038145751950445784737909635239337720253698901891447164167961243557776781803763277494586259143773978352277863173368594714807442679338689084905560610456869707247121471418758950455911634523659051947134533695702580447518495326109948271767412209133312820281169950075811412534628163356969562338760768323602567789343003008833437844144177105929527350495131846501401246122519319167436272097577026393735276474610147291712179008754983815840876176794748958543584103685016931243888826590617509847072356304460118182049763686555049903444821769173972523120450669204471437416893813700665348822765318310333895538044102066544604379232056671727853400571153721222811957194628395425211178796232982586616325865165288700734713119070575510324045631985828309644960339223260566084357478132265612852832088131164317341844532756698919123522732984904129424387442614014363564324375156616737479396552093884360010458932424934825094942475499592106762346208259388928357909212152257457298685232218668969502058616264212094466176172133573226447806136045761108563586974743838517119088471427750099147710859923914504669609603380779469719266061837471273408371914697830485180212494732329085164545316154071705859853480215856828567756190613357170236639996882438306781550729223977851510000520977392172783981459541467837334904371807782700813236824734529117931669870776823108578511954724099221691588581157557761942449009040538669732304533589323378578384840750106064794258475111537505014512956206635872493289959684287719952173021471287054348412252003493813049227316239608868196797939271015405300437943128726030254323981477211395180761765119462651550639094855224427991339909785686075892869732013273432915082853848425567124024659787361400417694145181912154512488262869635296724297334656201251820404658987142146654981235477080769910105776720404877100799758056113963753082021657667227327465567019498868949419006647108636792488026018268182651894457322006869065877517394384190998222908049398380296322564092675768553515533758290651769063182920499315836520651929339452993871894222142363954574239697574381372018398853737089399955130794860395247318442512501375659772246228597904021902169438242351522440356577406849474131342254267057955384164733347574538928037695290768721408973932938582739492376080545514566705412287857017247488659345144930787613126245511028838154174998983735427874419611462841838467656657753705372172567340829233745845542212125612009211299723539076694543801905312570935289365187322217043855871199671296141239856926923078846796207326686780253382260315965691784154782583875563772029623250464198634736482009555127639789385564430199331907682441320456616072145775346498240403226005303309623355525117861541664075177708864148311879537421407320759633058773656562197980413018567647782576348594822226640505554995009197607878218614405997057471270239548377841309944858486443515394267897484193044553257674014211726815162073661563530882708678576491121972336047076218521430932386197731770233173990442603192023223700646637952299651397244432720790767191959195527781350912992499902489327834061992960633482953423312466915891410133866752344136602732422362676003555957292383326027014588193627536364202411429219853365171953966040971436575735583315069319808418689992436387750311660564227985225680528798264261185422439362326177643724085263817745390631027351116707823070235941186073249594167342042834210789605615372802539221303250940213458175259873262205456549106407185130911323456809295162585946238475504040773160765262222447798244293649851263816946665927567160495499200443473996560263481725307347380463251796056751826507930434847920896689408343835611494737883420900825084129162197647905442584361439140735991159066437162587722196341768231669199492359900826490753919564283968912279568599987394656482216930492393601470876351410247107818128197799583269808824198465983030020991788670887614102450483380373782905261006853056640015507765565814668567104708410389085217704434714211906521190540391413939359469234059772828616214345063245694035110025790347157513995378784023544000419412322095383873344795768313943182596831466830852018294437082936073032423939068006169929520954853467694622021258643113427918063144965091005117181895020986217604211546910037756129616188746837348899245238270638625714978104738434515126451886843805172456698944620857379883314908459031949626849944565706522794048468915877519533539609313292679473129313158721529907399399518914458133865006805279542239855043965250677565771518223512076903613887637812339373145048037341967091579885545244929188696403530766369170022969176360308883412925320134397900792625810914415983370563183601713570895203977038810666766337374769308285026062105883896527206883684201385321298727622510294965792941199205851850818509313194454428621223944469245797280377921923263104302037487841004379749653028494370614553487060930467879167328446784119062690030194919891564229288261994643585542774062908442133093052007887615499249106537418120165760965450749555668759488891936176466238710132164250376664722870717384092584399320885313324583330465567064735324117522090883842607012969064205191513309492155772050268185159972701791279510992516938857282980050777559209168830924916860068739105229138413205345498804710220986655745426922461501211641501275414481488636546560676995089322408999903997403603935139110126785402142714721866443812340972631519156947765943956746374754621964382999319598484703220052987073904432698576208140413302552753013001712559730153959329373286426815611190583576517675137166371754371437690575304348602609807227561358149214042662606580870363209740910520331109629960237931375098958010747784682748981114525754441295573645205213110948739951847724578760476623852776396684429325799761527866240961672990996851161752719758965928224880017827691931542063725432817816010258103363870781831134946868630902051908800149358231522181998919882091043923599769377647705477991940287495000327897145907636073835805981717883137723038780015170584479924089813238205982959856817107824267247946762474457304030321043114826647930507864565139846178142963859447376320715702045230211262389053011932094472073836534464802521018130344672850645114729616385776479868061557669107756303102026604139306421345256391878405041126866558879814945241707226528519709727861299555654584624291828409554309299369570709444083509249307749124176734226158767529971282387138138849202138452407810877396514624635617480170574907996139236068691290185439665741651027294073655871827513424555792685124769048586596254626440776684042287996020119247633671649081875899084699288950097688364495354917902383862423396728300630728322470486393352951693426526494041693788662550625237235217597265502472813188271072586802396798122191630553772484496721706975266775541344495714602479626749518260591562372717430646624410215998677527574901478478067242564851408521421937104554995406404476895419799257375255468624649279236189105067532669510484654252672193352683576117923950358806299535512276995941385646183689490987105678589243783971530232245781249844470614806177551630518370118212754501120547918779049574042689352539760204968590194514296891961351417824654626789180875057226733678772717824906794190034536942890960405233575556445655476794032727708834417342551418906463786170449174634048824530382273969483803817972232727274065884161411625073729807316722074129717694435839449786984721321048364434797628961488352210596672240356857825462899427585623268138990757859275832098816169190525642088343129153066702882094436650686069181552957400713448711046830344156648911834075429882673226926696754576199941758098017866627566367850287584411046333345422738492376954504847642950955607193718027559703053773925831752714414073238136362533909353176410746954300098626890186850720328088246622489713129332012881998577736690186453464831873367929980654628962053208674170224933928488355048529494126364059560186766652523619971697810466614042812426221241523497759085118097776648299702473338532947766488250007788261343552016635471198161113572344867618809458181738184177178654941951862240758835049719179527321734573534187926714516468662358836320518230054064692359006490140048412025664399687962313295104950065675090882538160156910619376244854777145268048924998291108952196166134953902014296034077022976987439019074388714641901216950926908438127748567098010103537128255542412849088333233007831522782903173781704309066123402795830091598079326507175046771785419834521050803082111049650057352240857671380135128905357121345698255437397043209178836225738890032818909129571604696857616553560094539029368878808158857880878831326448123469661009855576084692783815843091495211333894459391656667880966103350880163699350482153669121345113867066521567668739614230246807049774810127324749198389720259183040612591539311761080712517466271438085514136641463511300701866874384439966679368795342147873646175228486355709810332063629343585710868383354472307335351849383142097488281449754278120014441346386272538733696055617253755138064946696742028778254055269136164482540006479527801067637835475716252197842703674295980714445184981549084696852901055429323062159557805569637889067917880057933886433178245111188461245213528655705071380432972751091589499267919194496064239939814974856532369804829290764501288379007901968440944457102811331738455203999188417278260897983322922413248663351291184992324847688204419610389197569786578041287925333710164153492266493090853458359691038930698442069541106059849577938374635065200321389145991381260079747717341369155671909495495276090890167735151343829505820711943870604547340332510155650745672755823607576422623027095158666142212762957101075090557233998420537801539576472921397904665782908891030789051733059366695899878654763196318753262607136040988444748968357679741880016205342207456454218752450506329909406512397051494632949679254232099457675048451734971498849821088186162052258308906102370431544128157845749362875873866276763394577525792627092383562595493530607081304923017204006454602375678448404064852820098355849576978362608710861583797834234613914822071198169920450319328425107550616950080108483138331744955452969332360233307417981397770404169537737226109825580923206143477054927779505993490513871453780047254350162704632763010380095630067968641671191910702517625613228947858886329297765867584266100129150817898191482547261233274404326585713288483509858909854189407795517691963650101441134345027195016261516956604375322128583489195263906799353979114779969316703667561461738123903821045027023308273006378554904345402728109121760677394971879499088525198601540781150525321652534615050212723603892666373137284314872388975210244982481430975686382662372934927608124958353320264151564746411438363758008886023265789554226240462267780791199205230195552046036576229913367376019765325931933288430573918445170114270556368379699810173022924415939640164424696197045108948856093322481927201427243734994582103880891310177000870929875996966830593321948230096090141872841830950795227494930005191358155429296224420552465399342194814204998684612824100581590624234553190748697105098575095972308385556625781178500230136564014792242357861668153497049049709218585545834275755552371432872867554567241791367234055520643199331029538557494635829074726899273800698108876790702920820718324914356024661797426050450284614256815039559292891284037809883853095854505506160092341895957832279632602813695826069406007502434444682456376580284859539319739392775000190140514998198415985989858141951270036112761564568313588749041520120250696413822188632818244560059289991807658360790236932274128214365157101834273592901705815328627409253220755497056715507835506760537101926017496710387501647402078913188206296648003828867419334845519567273373371124152655359670168805459542518665751172459741050357905793714373587006684331490613873868619123839787871158732651639387949095389254966346060943169658088923492681696420428228257636636711308972303114736955117269754454416646760679665459826435220551760034123131055448658192281016104955759548402717310030430743007242726877412296562011369037464644793795322592528327007890951990267228832157253459059440566843764702750313148823768484233270458790605318646272062577315684741588194236181997587399482340310598065793398530652626139385769110543723983595992884243438397785071924274465436645110743448331949998197227120125859625911065774001516679808232649889049760124870136704083282370649180732994657435778606047017683781745020688047020544960126726298775813040059999255474209550090640883902755488738876892288541992983744433913651362415911048093607858559918940469223228678502220270689418359585420651252254952560858898496538310954242056216371985659012134870865125730675217536258803330231479815806046705102749093938567209876362068965706388102462732447539294776154865279339394347436521783325870603318826429364557526047565051843697997254818506786976854993331492851231590673448663837556615863822861348434597185418581779761412719462329144346007764562924640508057931860917310314112383424712574872254361212997968305434629341806489387778973759047399828532105808401752025757816279167849027342366775452380199412120451176890074047668447540382202076234500095233177250545879828852877201692334879042441577817561536074183814602779226751098917261050579078913529100579860856601204151631226091131824057965112999151299475131508856856279734902665228711975789958681450715661467746096868865278611242131791046506231791854444072549605991827990166353190581725469737094070671947956904484788591585158570067246413177027168161282805129310971661940362587641601313596404842040287892663590482021696626585554171857399380316005111022263757116703038241260011452787415535839892395397155050402356538751255812684426128464586274266553516576406905088301187894203534600938969487212785295934836224739022256495775349139512507395684009357330995606221193867091806424202405851043857350671457876331685846784274290970309224635374363794651472870779345338378759167272515819144348281518862249306594509698085919220338796110675004567025490385495462331547383252391979732578164792710866284997410869703711253976668877104907140848199592645212748054769202242668599013894912497593110277651554461623353619491160082364909599217684260027149830570538733929481425400854970150571623355057774391411086080105412573319434418408585268198244111376148534453329553859290845205951114180380182934617442653151903993860259405841358486752404308893367067058176071490427383277282274973848390597152494519882635226624698610464342302106593666275361374258581517594979640779929972225395442929957868622657906232841411596512923616808805211031358099978172564923527251084455198646598944626226758938324623064390091617859169907972849040781684579229923923438717753936229755443361621729063336962114207038961339526693975413960370125410673751215714952497953121264743844223086300264206431657306249511623539996924345823469858070462955034791583084754725565563954456416410462125447196017055885157238621031563573212910743740635416492686722790432556863789467950474186061058616430028545994784944606926035212877380098584442640284745783362653277689430031308465879058224277304445411604021180471687599550151966842007820851434807043416808100492827076580159475198851173258966396383732158906023013847345301493217445841787210388378679415051761384960389690090774695586297777025585404284913099989308071410959397903677423668393802471973234721973056066964762898092547663432033280523993654430550359628858184347387723471326894553698795594547396653508524520826362304641851471245371971569734087247165293309141229893696935294674384141298224337489494114704181176135076744619972278264659259735119793555650569771458754168205969536746436881480347070400173322106949213259052411279651542164909391695565143599488653004814744276362155223051486917198126734260168644726374238274903042420134055761673809326038035470635763531685626061993786823417534026239532023669714357080849081631405283713271518058441860954763257576580051540805610057926623522456299101801904004452743582475124342503261894987818109856252716784940650595382343654336558659912426092277734016794675309580943473076186697523149234698533824565967421025969773710981104684717230432763995593636299262452501080257141802973963148001150518492499420680086722040311904870902935643023792547796995872526719770005967480411135712421209756207757639887777209895806396730595480664439077716476210315924485971274658650885452920156399045818443084329822672043503626412283925955754251496454133699678584548454304021678187832016255273325217109822918516757742326312075571698311401948186802448090466701075153502204866822531539272925389415480819495535751496125173237223332713770778197794620384790042514304786522992998309442874812852538685687965700042546899025918602517851512187610678483437467941615735365552159588465891881312107647017875242505303801891571831272439278483496175285117139828836191099303490195815467849688833138220230997329283644515575678709912309103652063344271469346275136427452407463911184683794757360449860208862563021830770440544262517413806239791241152989809413609521115158178875143402828879955436173299936882830375016686290949693497730009291315777516447141942671235846030242342274408324094785855754338218331442663784415948296969288617958542235423038738286106893893895098647270988932740568100251824437004336905602038191643159141573642622182164371598985463485084142072249016510318987757685820655236020000575912204164205005077540278002383572145921167138997526692514060881396255880436492221363253454503254449709427065205444800567834777488903722089740240866692256634883304409467418589742912219660357822111929223462149145636663735429321364977194054823282710726040177392808917325468231038738561504513980987060577338851290504314638017288251563190768103325029305775068697304060034019275695368608556851157505367403351950557838429185030604452412816706253603060269756808807773020541060311307835758300176073160982190686963809175486879124400010232904206449009911885095913784479197717269861200249523398846854606042005773608454550411548469027950297303831141028568013592136347194947602359958747992385014520190971608719847591740414411190602278146173630862893743982586349065602845777602375416731299965847278333849234860637252351945171153376180933418543845230658704568890439500419450557191218450021220943801753636960281642812708870735542182562533377342827547047323923734574693746758922569757652777233090017371375380327865440174170608622534986331484111435597394830057134425045731342531711550453092158366501653268761237741882547852549249613387778461307230248506866151903326954459793119451290218596650593833898301238560371920097158256872702935788985382871687292555460111074538984503749902204252257038275846762614797753737328631620812389672119768730846938994476796624567588856033803940362426235308794072324024556495853587173325011792512980802908048259696660563953518435663851559263028634032923681149873114187362819549531433046167128163595536973414429311133616888733931521529247892599406671659761393100181864754412721745989456027639115592951824669413821597590935880278960823595610926817126767729026437258482455966220152380004675631376776623077890856167870716614712259561771022177278717800407513224327360419562145980890829877394201491302677008045441726267387107733222781711698830981615222007416406893396861901693697638482582834486877358508171157460108594661471658798318178786135198340559908656468427576347350227213381310345756319915600814643136417824333903253006529416995282423784413093211668519709538779782564207897139009974789137261894101729417989205092378915642371723148798886903621115271573720098853537341820891015257055369227550180478034011907457931726452593291878749746480526753944268053323045206783581715795257093984643842929497711940701083618462840981483925557793565688386917056231719947999630028171448854753126680226530570565210171905509329682774013138514091000815858118503798518381524441428110341543947382656342475884672626506857196366437533650141002729995681180039740858336304522378771741856394891997332590642392491641672428217037763988746337707305329481509110254518435426673567256996719437052172018106603643163384798170315503556462982190782653434211434375713820281224794795893931305044882142657899604442692534649127070985399192878757343829893311307733316880354511643494903900484686697606379378839386132247472077267641707490463573860780564964443909838498439814786876894397441958652095690278354405715342725611219398356270660495552781056848576622027042017762725624182376770182314395915828924576574378246481472231993485858439351860006565427106522590519033272268406215740312369548138075180058944642599763591010889557912147019014736577856138714135924488904340200913824786714009660732751626594323428483853382705264696567200608657494687789143104321285239311145992033146750789458571038432521488429782010170338676873902455643599338613360023633554907382472818815637732664247082578353162944885462349941655687111725482911309437453284595784615226213025616524417914554035687975272416670480221242818198229554579858143488384756702756505618172592163119076572811130198833013276613220683987612938750956382842666565892423873139707627171569576221314441217890647468485070856438988626088136039806538562451807219609578469146104228014629840378540609546888099152030659706251087691603342028201769165070998196971526306167640008435861051558613176928513067919546956724428852762788128550727510368136245270044980541607465966243414274063648284396704711255570732383830437844334067906092694800114999280800276285594139592794713511951577182371859927162079427458816763281276253909209233123084473843932132161516648194769295169641262621992484590752613577984536221399956438395550103740345614396858017047215066717236603078622503661500540221292871518029470369612449612671373123665524330654590846237554800198836265838895380287667403701528467173955665620070608003058896392786086033228980656947255750856244331472733235413987422338026573093898831458606536683987403253654373297805049785209556858732866743558372222172858591876762079104086488944979753753266113628583986001273885601798950258748276555461021914700447467569803154350048885769905464322063238246169196495149218058539592720824862644272461771891855490520545679334469826128169562448990480957525587257998019996934438956085776956902006155429889856134272138570168205696846352759472291112744774807212073056211064771420128895302440282391301375188502766471697576067388056159931192159317879609784711705966657831632240988942430708629803382186397088893263813964344506524152367948080533362330233270396011023127385661827838758862777286673620903894724674934837000566968231104727121362699917371437773097009512166408688286037745419590052163952283023464954691815793185268693754490400877837348984395370830332355040786281651349015811887066097559863000790761967645838771341269256326426381469486997512091455068547720462198708787902341219259369527616021434110381178542429051941167710513695582691558709923176430387382838850483475443337168033570267890606642623350453257290252454492385564232477731313147660421818031901611885504785307686249940739083440312905669034692784211705565890634553992318207818057452321455274894390118861130548941516000957794616481503377842148853992169598395098596246116683467264465141756001029725743182208252168840309531396509076519409211083367995137535391747841756724256787653448736131226262664497728362822121473129135537966012002631978751880269257497795485511414400985616425430073749508619242036496921439251574321225100939322332263247462042755280004103384841644069618256904380989420508993576981011279468308243580233496103542882910679532183143700808773108648330256311931971330375055319164589253734826542971680884346918335143779867467671013341261301147880753695339316632999736894060295469467184074771927059663177111138436042465762598491959506350757225097510422567069477527076641458676668118734431873078280270474841960286678790293476312782773959043414609958330768824824422003925239913226517384975940993207286800042535064492213266749613511457198357201090748123458080053301464430608846252606997156758685094860917548130941813470350055006952684362227489346365234399721570472185087237127841213566864594700982767381706313090640412769157632023277071876789212022573002613161056498762467343537749265868526943355896841997854487505086497683485378081645988981127628220742534929301133444498693593360849747440994924473588893354447375086030364647219205697168107185789080535227241581562029727172290239526315392564565306319622092375752523206483696377865222923590754261196855046693293918040072556714072179271330430525272251421736342181553855501175487029288269691596566046182432704891733226348180312414393495917539422509183514226010516022093614370419508395490187276382679945461304540015105753963683016858555336894338053417990675667774512589153537484481111323037831848849667572685630899115104752946948035376325123101415146622615472126437607922400547561054914769827775515822241366942003488986507256452399471325684591380677643957663516550603505408043442672330627675146404155526594407342018866056343376680393629111412742905055879696960793305804633799804971907032131620152021053666719655887411418507455624795786275289818315444493463878900374257100859664349826255880449643584655943331760874323040165607054240656127288392800077114954938430128426589579712129196246892573754666342812343660196997596651521493484180919942781863838370953076174607211182195879674923794846315040489141971743501598170446506816442894337311192614500600478046960532718836332220937797009868432704859377418210337659370831679323602965290105091566432083360324641254047855158057667811556418725064257390614472945161285577109167415133158034767869718019384382288903614575766187225819056810021978450431605969862098310725143674808205309505074777259963184820625797233532484176629751182949309117472394681392810837282213726172255560763769470932601662827209922492749888080171356704956475949395538958800401556722730371027679375977656928385565668718056190372591993469009241235954563290958106291828453934294094694132139275216422420182932012695004336255493633527039767277116987424008933715128521570462885922605137834082686177561621932892828164768988152823787111660701373109931788722363229292800518300880417899067154334063216779355080722449267631400782743121630529356250709503550716922847182701146987284529200377673652379624103866693166688322646180941224355466126637074452664610978006829860217609034700427797012996272982786288957408004280427094499046971735484344366673598401854286259920868981173694554210947983416465441776697840522645961683213491964731595580094630465800884538888082089976686311065899675528118480870886728313854970354455730765130113898877994845325182330821385968270459090243082026282979452663265904557230081494446182993479159880188185112469551400159536404203467852157524583478768706444204169863072079180319834284514880259379134319587186247525206978420608862322296675039289144283657764290635041027365039075390068626908494459259424922100739326412065943834493770449584192016288805181911839889416659006538044033036045897345656404522538136038934553551394604742005432498474539178916321809983837211509290162782756819758693976347108141435375000800691086805884339560863137644454079030528138631231617596358390327063575250572915202941688732064584563265533700837319407379842645516815265135889784844788374935766310382540262079337368575877653600161419696787526607203595852821450444665901808636768936031950923341036123002264553142639120027758249069591533700619481919322965445663575238053787850910962661854103447424416208043633499245341278184747163157546590697759109813276277607604570515214475221535108992853336919230352437111276838326031627334057818109250428535305498013436654838274292750997620180250113208950781761784183889724319787781015150540213169985412062098488778242556004935533780549442331852729185562438163895562220649436743385612735767359090029711573599589578406030259412929013497535800750727895057413435689567386763980152436127394167499641636085938032742568431204833603112618723704669907832802465814774438447906954821335750334294317871760010195874036029725151070314286174286449444344996077524814865653349629980056672477284963656605001858289309037929923558353899214297356000967344516308161607748412092993318827269131735386823758012757947948375730134075169001195561303074501695332813708917829100897651948487318396889956196510646765641270840399445635775867400163860937064927624616980109700331331549125048225164019892731139320299923907916960756938534633996225422732163075349739683208596242717843367275037876092286626949209924129286995992072864335769277023208200761763207439204808366425573225071088489914858171635881462927619100669517256115462922261798917109887678564974318651465203856305291148258542229655136705293078281966490018859776350375592980877121821140398803945481099867273054027341822390902213659197906995886818679638434819148781028347598641542105897034675233074122704822517130424129258860161329557765360893773065581590438968495787318427382081223922842484924824265408652988421336100320037226302181565540013658280914538623941699685569122151414881610383247099753630398055471227770206616425438813614788254753287180229179239940915991043863457612355571433958869189866986712399807512115185537007850518360334901863056674078201610553509907850133816373806993193584095294207138614256166123955367928670942299315265875711866488653139177234627644532783482759110060647492570120819240019924449922769431631534358051933072798471450638425784277309059060236470687700939078512858248946994856108563211120169194692825423191401847898368449013410032444820433298942997668253992687005022893511457811320731479814613501432143976163565752912229730838413138718269605603292087819892749252929514424792001824755643866200629438765605809237680971879611987235580331166570300902006056647108705188033331731311537339083780720362642242102070702696593908144354606777913607950117698735535968723600030178920650480290516140990930415613121937810273088788882845676070559615453061364202386971865446553227246484781405270159292126998670987644138635024931981603387509850097214503436984292022125439735641514088364786254177977018699824133845883087593852412718029345414655206015785371692559326632951006827683144406115614361074046097851149900092629455289148047268623889843757371471748204605448727351761870458590330061456997808127599646796866581803528026306900558848553804649338774758621802496784674689713611676269561905370500399258464700841301829803843630420549341405607848890819095226482250540439519479486009754817153713962676381598508903953003420345467145152671618641830772074361046441954226084088130606611597479188534612710086779734769912654733467517084439371291155853406566663270900778761674916234141169384452060383809729339212565084023949616087275136597896633037337226303329532122401170322907489022012433173582325078848888568335752630561504505563220559223283860032706290156096818190772542503697635099335569079922683469669760305489968070922590611088294872079169577669022798636971350832034584594724078552036020894543471727325681779102041339783283072779036108040184993731105585987142685949117907229401052084221073193142595903765856143301982482137841304257420978895635672665182102215070288140031545137433417486585236069121262894255705358342882631621521386703626807554154459765687012330588937898662202105626147572865851010232743426444151989516099107251609227356118545568368833964476508560711951711598097593246843685395128758822839636076959446769681195574006942582879028887057992240069795728864965602227323693556916161628749139630114349369677323515799215454974105360522002887723531032141422032972415671076731786612237313892925484487513936653027181024220126642516724780856899128449041951388322319350429596598801126424629146484782526591489479718730085369678635868254058803849917224494166207616016341905366369775289495004862528454020565648932758521660041576982115684321635540304194908017081506426392616998555408972266005422255996144145165298802998516972771626652437553557635358346726281290558734879836399891478827657503125712308256453510517904378483224763257012168142550217538340738322847215740627853162295130390483091876692733358389560286226997103573389901001816834378606188827021016511319412725747827003151783237710510896760410450454364121290275132341558184088458356949596905728686331608653580086658519204388290003198308485900955671726973941549545407837777216381308397393936104517136044637019809026667677545089515655178075707064189449726050845813319891420427985274902658741264650370863777077801854117911569661965717790615857834550152481938048774586328568896542146096015385667863943545643935135042784134545731478912459435618891010435685838743526979937640742038759974674190801624876384841027692813898039447125469701827885018242226444222656242356584666638790627508419339746556064046092122962975825167093266324374548589277377741657126810920613253831524993908958750571405213196363202728841769089032674352783817334948466067990258730703526400103461713888335226097456572112338834094061622405768490170141300768197296719822824707243276422155555992150653725059370415885108321256433063548136766191105603163774762463141474712855152483516347966068640979452735783420242311054697891771950467460623378546158220837154975700527278980638532400182082376894667850998952186705439766087389608135759585368242069927937065368947510744457680277679678119204560684561865136780449347567045672869052126248988995568201101778113514493258595284056854773321553220805378940661733637977354672967568343043519161951818774870386618054618406971063959051812586037048915523243712785283713117413065932425067743383754362094105890180470728133429930328954210756721661517298408164542146025985497310526243577173034314589856532595328118303295620009324863987507050292408168929294317124363778787345934513299465693093654571919776919428326954617225087546058793001291491419103356067299001962845195337167656774608748308507166869585761878939136016440233644986645345952790725939885515257591561402995452064039544030759874948491181722746613712598264136948152173089885728814023764162917675627599490135755399997184927717591029260175544303759085010304862993251398779995222398763130837818065331107212785748236118825945916709944201880426688251731574557862155075170080744530477636890658146308982864871955434247526314209172291194191997222364703269813645191921880747922287356705800006491885825100603160533848794421413230482987592360434423132344140479598781515488729231260625763174716964973574784775996290625735504970808834014686068036642521125737044000312391303786610893407882181640327604517497745572984012377089313365544218428271376598690442879937298868742403592028083225227661615324026767771633254295460527516410628587923140918445248899918343797153249631131519427898085059648659919476897093079727735125103890036979593329248550972294578144261276179998038007206597586641822694481787893173909536168558420002730610407191807680854333120838170302420280254849651714002041949045382718407300038204021173967608013417043241637045923688165037414859539258188132771495149885883889218307339451005758896749106424270916123008095546944909781920171637456772546406024833241438868585708013024715470972956804737652598162292384747744696521667308851500122282821745224648741161510938228039859792670062567725182994305953251090417853645641785781130412114791773264457175439445296782641851002447264830329850417642820161203229423810196907066966988918191541850965702025734247600434905701431836263756378733385136354233895835903934060242125928168553055442525777288551759997346178279211671200663249505579672760355513522723183145563278746651099428572905201938540379233390435157944546250036488044257800828414609815270216720585904049677210490332472941975321467414164177731386527382917558489662695192316452010752657269657820787629132150319445732967589776967825793472017579697761900259726177805840626826842738284368919841543467275830264532928634811891901627883467875014452222760690768700465710731183544754180849715456580125834021147634526503101187611829817035835883704105755156169695165373775460571718462825205076061586593094283671002384970543896578275477712532821913174230311720591482833031671823841851124219702210463752935779420415031981821384797433584022213042783839134566833437123473247296133376928330756959740772873741261145026221151394122066400070933682851181000701087936018057228847992816562866806316181374119153809533184568397011472167231783745741183113959122252906050138942552015011935835408301979090943852458526229687014407132924584430146907779931925882221368494122367771675081689269511084400684891077899340771088224025805992020799399991923479802824146130652636691710822385000970526330044609912284199458489828451693812637983041344968492866547591382684977400548737285534953072794450842903034298166391820698982645258156929282448217810491060958020423400246902591508821242579232307485500448230185963415196730225862087841670467020478376478789126086656310038902063457268134630868766690000342287629758695408974348875898612662762712877162796210496894334824501780920637640687674992827475821505869158206336612433234764291263865273865158697032155037924270273887783576455425127800947871255502142403598053207462310057564630796458688147270736711738562425961112241678905147288104571865101772011591445428132998130275116727740869456876883159339192316429665450640346515735294303816859184421325295748997475214013141877461612213509511639187236220505498714925222989642988339838731533775365841260453437936981617676467678912970217246987031272833085109091019151384243695129970263064021141714748326881477863484051969259788246633853979761441243444948152025478820718059732731627316843480809688977016463327609081796746745491098855036325900534373446964780411932827109329077965479183992959426367195894481539040160662148398153156942798560703766928022894544029309760509748115888461226799781895986901038329636420091545554751512766324447290016293490813897434711003034463825690116708979083691183142287838546878506931699870983417857893351779643790043022816807159503756798839049833875480627140517378187042448292898983086284377883591066165307286129702622811583354976862586160995736797559056167480510663176205209756414398166854918484798955420694575131361653335814080221608067925868378711195891153037135169208945627370575019280874397120702863921452873507007658562217891622826612916876220303614327900408892592851096003455667219939306202393425499334580420874157045814625330841021067795846199174580740906476059553940703210484209571187603114226551456390428928984243333469073291840139982032286832794533740701755971887077658800514911924814244847093660818618475742601463734023701216196447019366276165808317560487091915427054767779396812172863909943101083292847832309430658200218276726151377804673538270680711906387764751083516515755342499509968605107177310329291435793192991393501847429707412415350618916959029888815056437126632570078624002474350348472010082827534207180953666385168195042942011485538168881423412869796061751225539166707537202195922429763668407346965283460329989318065450930259751844961794135764982850796029544370500813710611700628077321505173253775161639500474632086288979340048857614286695944544468967029103080441839858163129986116150783890257274993438578217859907282195532206780558413889352784397528240375606628174051492378920517690552126675988956174664062575785660987773084263751940002448868017739680995904623458798198527747972857661379883630638729699762397206326149203830906319124092887542184485077174983642151034799965970869621232731322208635096611414456903220042066629528695682358682096138205542898513123211781713029058795230069720485215750980288166659181451180616627906771612074473466335468777748094057082074480974965324801322395170968810620671764234502197182152174204563511044966589559392735998667079442894705175853038952235713204946293873986923547220915029765130638518265379725781253786669878908846991215039207658009201595387444131283729347058240656912015756184102971502806286388741705275058866028942596289444318710930899883538213372880122610610933966733893282126922848411431012994300778398608601804205076944735989072148806486387248190229922942318426362066848060188661809244758746668844141029539389992699199423208593436515057443990503761165522876905887888835264749005669725208226746023045691545878333640377052493517492362598541370498467237903811522826814721807387299263265329186793319851836369464454819923276668440594692099679415849790287457562463889531269088438351710287137170471659662618441216835385847543767748992881106768775841633745230863987092093428031478917354982141407893411257499864399662461129930068443668090344846211253467669997240014200097559261028763496680176607740466097069537548947240757464799356516337118364742583892320940916452773401702406648565202278452733791866916718613877764333886110766946582450176900469741712889282992123931918361445772354359209927801160369718734155084191551362106526021747960712576277445162249950831108569610564870583282662819281116273841250005279259466485135778141016128548577115468540864766951526106522937466540793291561366128361733257205828257862866161598389675781693413662760860261154094045783646212326162470984105665158570998942485714453866451706261881366060772872812491073226195143889971193591353996594120108976558256085670642157525826383907076704168332862186269759333579665460904994774085121587638925696250471320768081864807580247104860421747212157366650308337718585594139910905941413438393726417835388113229262578588644440182415771776518283731165653675981014762263579663916772230868807774968081541674275873262177620041686817150453123872964048338214329507872461670674506493972935662453749551223433520019232032388536401129178096098334154993711128175216086143140300180805549096502632517601880947678362358447461491641851470422168584925924941629694326158249943086817147964894854047335191095324642432265224969506431828255752187705622105697006541132438718411254090267169113849741582983397690619249395215176913140498902144299215815663901780891406955695266110573210961856612049593244208983286345079262672862901346478973051292747010444406886021967128761662099234216177865281388188411512376879416730927177149802455333304518355267760749976474840519375683954297453037655716839052714805587286653432172127221061161801510192135584791948043659196638760723427316096553899750259936085376780967088783623463635693794855123745831293238658415243597760823732467661876162588942058881591855278784553335884894556244953903082755665864047271886828392821197448010310977020691405936149481691215182515628359553215904422112224604157230461976191197571159929224712149550453888393953933800444409823743224935234030389830841196965851097402358971167055331620315043675740301491187727965504004709369145225489856113385931423597456700324574276016313633654963790143736848663359360610859679576940413100712046688471614506020731828803093746652550004587125542914365581481639683419768401171214261323018531889697312026434202734449990479867648837589844420666683941727868537164883413591434442357274580639629247639660708536992441870870192088012384124456090320521973324334045925310315532060234605771412898113765679887589249984354990495559686441832664530016092827285076768927093990853800417472168259967732310866966365241859638779907634945684796487453635665690084499320296158420107788135955943034723791626647635848801449108358544545123114808413906398924471709513773089426942194911363074356910108090571625912337239527728544576946864201410378182468481822417050724991744239554175197293492440214186763248758362400813453760689220393877071107804118865928353113926293825380906413514662281811157587269424750211729509002740686247686757699710534326359696311940350452359914824082794675666370992889545729474711040528979001398799753803077905397446783336903289059290849694479255283593794828004948071692874118117272749349189168172716544945765399729119286598210541847944162897819247331738237433738866678662142818482087955859218107012692313359350277133980784414774699777357078818643571016947424365307673516128580455547442447445263807597425090112508575213395252952944923125020223685832094702453544967779408560885750096371424611369740224148871239382351104079353113544910190042317650992419777566472835273448545919699732811562034598737748481755681255999424419250134737906640016142393677809001480069163018250062714367203353987710454827705759194629428018800345330663906290865946945163950956524412213007777259065463285122456030395560728862629828934068152972386918382935667723329254332431487942816503375290624982231092453896992737742591593887879824466275458568556054100611216030459199552978771680829359346958797115630374629862782562103550049503545317461273888461617003266784831912199110961879236776503611478418210556475957672241384311892721050015971398981454732179265268798356501475773721102590819840256229857513772989465452967402775750785017168953458717559087587687541950227082714056827500871249493010555380836529012731827818198884026191085979389516986254955895418949373896183038914964180227168087887166366035361192096187613702057379847099200713514930220615071390066221054070028969345824619123410083807166837565753561524283252743753729270814829966346083078518057560022471693940338193819480341976897856689415167011918695543732553326029594846928037085321503878259858946304670164680551378666166880324608404546253480878245266152017806577470139853610943872560118130134342791672456250404821032701792944009476050385401185183741634651419432799063339166501739307342158241286637051717455869197477231655703937839952671656170265103739302096967199803513784195807339423775192511069972697860316606955461908204765322907386037346113072955069695499306148163468925893197583658862287604537081495933015376585677681477698764689073351488070120803136900137567197606514346740676885906511733420897506830527741087711437707257589339407950233963611394428673517934927973873848206181092825011498343601642695868940466071886964821095879858480462015486195988950942370159367842357030000012314953436242723156389853833431649523173141641222013175355494404674714685655204252330991766114030426182778614238110901562380042328878733269826146736505290638673873060462153977485586592143097974211322939625768824521233070191199707657038369046270671503353440867017306407702262053651866964304888013248190505886923228613938642787235395811703964134776041864400063819374795144247461444959487652214344237219322227859867667426380895969095386195444875349809797034019008431859564184974127849975690173711851548390142049076070688679471980288994645762329962874989197377041297784399740306158602525916935269244416847855465336244096872744173349562425459754244579791520828033472293125910823702639333080963887736165000890972399571557491618356994555157550039523885572106426447833995412202794513825579309365570053059286685085206048562244449794012845033610454672937342654443929250095772552681101523812182354657005856403940354572166299432450070275025259881809552547416504562675470261496010787166414056715574500532238001627307314285541558281402201611751836200315153763618802993331392120265301130439043778152257498889818650665035457207664388339420381109333952609885150593815480597613775505851136121174721946692870364951635792516472551241872346433679698089962502089607706097190413550035818781222688763618068579554799625836519348531213350160345161926049641740872290247340427596236113340890674444334585247962044304473689221602120484411750316497965244002936227428211991235433741697053786123993661393062967631654686818663845204838308828741120723394369011634682284189546372274618628109912160650562098828743827046530416667757385240374058620742863505008309725295940658280746191294071758815481201014948585280596585169505686876274662002575010974920810202854804248294076622050685807881365151659230810794649307315664612944185812337870113629383147757599818252288020822964077988078264318139904628172878353200667300284270239552308645950238345815205772557871962237416292969077189719325681457350471354909661167366729697722860163426123869967597022544215102451233337312082387261080374880476603660332786967719919149958832911364412942333928672784092904839987211650253516322458468124370970994499270347759821823302835657739855243034718906047515043103095559458953120326505831986325356120035102066341019440890329055404209593143075110065744341370556999338436320838571552079057774148499129507046070858795221212450133255263526249040798523962665710916286264029629503170808865446844184883705081845519942190821220811950180101371606226010306531412575428605259893103292526629099904180943620137205981763106729776308151207973006202374372161055894283261093968845232983151028944360407202779402548269703546175944533910822765469405800572941049040720888988820078311416289975153844856628767801216353923670305457110989930183112039087640655169016971558500625150892484073852446485975600333432017571584912285985248081942507886987524864651205690279393334669580234342532505879142410177186839652873744904013880632106349286219021981516040599969947953077914841788346005975823812247431981820250618948469683798933840537531536174431704228288984327611827339251690161438856470417457198621311768236522564877087783879789187178217637294688411978978294079338163459937233820444194453419141574682182609183099221484832210906208302512172690436293614741438059832531260282655449554699116917214216641881361519771193506724596966467184421701716722650613297196806162239102234616567665642100760553643074698531693371285828820777945796612341103714581144672567959159386999934140626319584102802244219743095588095174188100791297176557358997688175296863272602078416713300772521315810524259621401857830912714433915711338334255782997098036512394586430764408777903921607480648942753978650311723592811191423540609016722137148901308201348275020717358448973695112145873962678157196249643345703988304934877764214302036696776115869570178939166729021091597775945216048602736357499839895037662876631999085535478569557319364414020738269376952649519694982458159167939916262891490585841555100757356959368737910423303445856206701654567740402669157927542887808652603754531328976597697608675966463166155021665668567968926652691200201028848330310421797005682565479672855944108063906820522830904902853359421777793638818820597598931358274892557285638060739093963877894597700367132594760635881000705787097625691752165622456815674005226056222187115470203056152602145274677066269151676121406170816789869685405148930512388486247896868893644878091672493990914870028634187868740228642199641998994235735550393685398014526798572899325131618201262350699897997491024328296349194549705748865444974050573958036591916088204743286367526702002459657165973778929998104328643270442678041440845341188273148729046045139614427978164365621432114724541944500817576533504456423911578412669551416281548346233976556077496352381869150145335171945324158361703414157034891625203682808608607174250618857002601912055756853580000500468288704482933686480892828502939419808439256538598657467467003070222761747329361712138347020406195188113487487327166935647608276051464483765327812804819537114752777473727256858458432710228785575295423731432477530637526172077412558782078117961798740698550425929179391986861883480250325323875648658464506345658756125348854765430281583953229956928439237070112532255673749768552090929836663855987360267378709915089703789224962258540207172888498706186990407679715316764768663950340640274742892620778966118475215118788680331241558631046755597791893398379815885645425995985066635835964054480883886100401519493751869992302842599307228905425623049225875866247857865860072426536666276529636393980406416771958225952879871836252766620488913770506830370568783231092948826181147038040869532487637463420540573307688647857146941254233607392019143257113107333076564430874503092407925525741886757137529172836511434697363103743724608143189116863088813139885146836123509827570661265250549510280248967351740633862969765080531909244425635988718412773469548201667259603646163167263133636282839752474017702069367071349257400508683234092741832750257365903798346023494849103256547189303342167282644812077240989742724510383649457758738705298323055015005286947932919692942722146555449114782666465745328948332071640130205440794228008516581544258301981969021304796867472416538751989012580980461338114468846555481953908514791726349871605524254038137321440432631530417563427049431607421848703725070768962208095287304782724892132283684341965447859490236040399789445544898675275123912558172184697618893369963579736458608088807544494932138681717832415568337985435102035542633599176600831547029920947515919187422658623370040393239161145016166227861679737130057698664440749284609858295486150470740837138713347842327389361232818252328316259665413861694410039230580411787234454856324781783042360618981814438606049482491485526946683990961868755648527286970943418546032378489399316717686328648103043159113375145289828041734003464137801591839934104594525850324727098361323252335535724814709550343165046334300518564238583196163297319874103586747573628706273435582582513505085389055694432312902916004612100943119487733886555628786785519768274944435572073081999347373178898421040122778265772703228547574976205936754014925718564287328590727933997727138432913716022562050091886871740589100282493817289858152604727236375236684222693316699098318167161532681809403659010208957566805795659537681456297806198740341344074149289711082473972161000099876797424977239291855915577825936538416086574026627284294991282760070415322646886928274457776763772660854466892163031970061698558336751620384187390934322082989705321699381379005569274095038340790071692574494406934248166237918648154802269942039087765244680614242471038860363923721115887444047386158457370352676251788183462359811727513703867622634392329537927076109430858127427686211209476234694177725456212782882075084411389278273835069375276653137268178556665765334089856856222941951345820906962332566656371445329197856391703294449534069790007930599465891611111054069711550026313610017719656815882525885585841796749276921713378496055659874672686591983610601336696738705166093859128903555340035022821089353681530576614482508463001721368266481434293568839462430652618383910892911856575649121065945388861611298597243156868653395293436414308337375769831878056309344078958174951875861364035880117941437089087213201260161311221207433004861874317959371931605820224447870143547651305585514942156456668677136272905882112168454338024110097162084057961419785882895862826818830445442160663372572696845932343164091341936999105425562145289316445209127604821034378044447492257605438404463594238114094605792388878815412294239195059052987899058743375499783661923559080899172365972860969188531195949770463091651119617232459399021162259099383490675701870057934151424582575171652780831518234100551214674366062100749662466764541378166800175876627812079243151093453456628821011749738106636400257514783442334304788220752380470788546381651279998613575224356835712883040232368888112279340207366993873954795778965656934063223125165684563296116906092110963367316115065011750857544035858535387625954120879235359191509750613758143218409428805833504728232729732458304356261690224890906180016236923531024257174960068303033193249227819565145760630723004406730858526849006769567139307249445358514492595905069704749879276876238720367335469711136667559154121497218204307333500411428383094666570344108071855538720603065865897374686597087403452497068851286604550726243459421395471306774392930682189940592474043645530930871836484124790384451967262913446245609314248016960200506218372758384870944357727775628626635167585397991758018778625694411278424537331095941903272484829421699030214473625115403884105214166544994577626723134287449384052506533763790005010157210301541180620677659436898413608689688969000057583151708522771638742875368210051125155280357307597114889998768325597999730703173108919143466497714821532510759267363888509418507734474302083528054956620586919628669981735482031724428753711856261428944186468659389317833517785487942105600332712809441592436799836304936062772444679903653616563311343747165498058055438786290630535816524232106675261050977099992921412588889120734523848518768341860701716162513411841707260164846213740797703133760333243508650021838788320466638746590539844737870977483883281957413617625263664821700783948956727930112516628848006202003390182558846016210344250622103068726543399886221947130569459382423167776605015259852355917608515803235318688692265560737355858642809773061359977765890481406970951388950315439435683622231771375763062344932559691655641586278664899094796006119901917843905998597381687108194855580136282996140705677859008476576693241483128807855397330976789229100824209509862753799925172502972146727032047954550433397667198715727110801524516311040921981319305407524625161260119041095225158194760474274499769741095337050746584647339897862432445154585358724950865101925591363193449814345320350488080089719444999323420517766848849329419342940286258336280298180390553311217144838587850506342955424156348890270400353729282888631273132481867947978563823443531141242050916817091905196757068297452056509253121974198594514755181174578434732102494645747386917364630357626482682425515436157854864595055747502482722051777960246838048705372029121271284054486840546898130463449851050116187641129909725402663756362662073884249551077996121900300398127367658244590305363630491428330248915733385752256842774139606117706675922548561978839441442176190848373479038296517796539809971917837477641706276387563299230700495096469684760381782253005023908850156121952396055138495082071636118443405134277118940777290484089572085540835289765183008160113946139126954507612395258440364350650003522542520654842578071208880840745349262418721836075598422796380069628031595253019770607785805566920137714916918856519518525128545456853878638266880521764202639705517612995886266458377376786032616733444318445376247726966963403271167421444715286771067683218287221947410753216941119554660168698039521576200537820019549664721479512214663803596147675370089393581051073778162539602011754105457585330811151313309548974016194752619736030153659223708565494201614511139635567217221596769038595786965737106043292390834891162867180474220388624247865066218162387456694141755114292745973202644842955374009592215188492982655928463267308892304212595475052796478379887876269547144378162402478982728661497279395469065300382101072327758725686175129481983573094938625595598330586920251175950517889278138502781364720608570072623528194276179980374074545726153313656079528889337364391839789496602403528258242386919492276024070993422795743791622988967536940957664912700577985424885629259101267220028792324665504226576208156524939205718734265292484282572339610678760876443654050348669573961956083033468452686744838104636466409645059884959420420088590254606396076092457870226930991581596151043928684414716000446917091264380532000847563390642573080545505555272137140553387281185407272312610862804574869007179013464853391211393770251979433240016680218145921074304743977776617255987354582904932718753462623862889357813906336671481743344409387239235026629257356158115512550877967762069573835690536830606779392590821572040893282832412024559446247394672711267683864781736145224352248247591427410092455238908985213017007033632574129601565924617319538514211812205320905795962019087241417577416806515287851948154623213502904536660279502832197086861708470039536323771665907520703143602708471188626878413472566777364820605061499419013658166758241949666192109745567710334970609198678686745488306668706334215105606243210717109486111672055641989490549774544044205232038546549023320474071120943518345360106493457578295956510115241680667027981097271425479541696515142694535832119126743703975313769609028208479577451460891655324063237309955977737794670492695949434745999686330319173431461506941683427400258584465795607322371541846527602895007225553848385847581571950812361191143378157870625680708714188523213181134400540460710707272165016348269380547549956916968774958682104229733920375087888711111289047920311375880157490927101272726870549634297403153596930269655219479968878440319129734156764298826306715939222493339677502553071430112910406572739513583862161365597757144445384686892075721825592394050724316326991178286201498679605065624248281227305361631699703510340403259445751246347330458029055124325853694061755104962639440507413629257600660051580716298652969606470317060734122092244427680396138993515170047136371817542325840298358639192081094620505745116037544881224702173485838434119123791348074567584970287275194720945675239835126699933876282606654454179953444016113826842445404907050198758689761086776195848876779520691382305368257665974581774342112078867831862337755706739909555700147443994369937186691466155350660607881688511750085758124437308952350333584873067455935788496553705568661572841488896597273490671881680682510966050766355924192235534124709563178797764926704876917261494530331969208905966840369786265602190232698022064814321803528580458848946006991727390864585069723522679104589266971313865020139751827883856673863303600295329293859731300912893533778149034566682131506805513468193960502058998765457930175710040681400860626788907831480381030724628745517205490489887908643454365046630834365473198480999470679446395353525143264477126388431823758284922499946547621711255179817292824462388958578107515318529803850708299742545174438581021081541766243510376170827565070307084480483855626500720518528177874535529612469763221698176509116487924621853076422114887079114700624219726090310129409978159992351032588209795905836106222595794505237820464834925115635764279669709086160005918442286615707269648398772965857584906810630986253091078479136860433873750405935802627722726621062773608877844222209755496470780885278754253018559757924659257126877569855868862328618712987241699103556499816506640117256417269010593251530640322123601584676582169228932257988882391645771631544683449227231883918933166364245082724816358700933791772824353683439778328064302738884492891216768791093784361777164034177587087126027021439498563050366301562003037382458971877448994100918954035618451110842386323473909583814971472638870782835633385027259688966425641001076637726433289051440746708472270159807949840295119747950505207237972631422314240475411189945397941638947961628196963727607411610877082491442077192802060163978402013833121105810755585186118545698598274763366251892644961642921597690335261342858095389011231610369291283549701524853320723778604840795655132475609923432505244625688600490449285643982708242811019698004037133828313505450628206551573749615036012102064721338714652402875969431454662892259308002865348785889192208104376959449662447204457129028486575663336632130175962620767282837483362833998546409006605996876839517266180262800285748650199448913826139853065639890354907508527796319434876316901347609536661003518502982145917911243302344128172375358697703963216358633684001585422464509124021878672162167428686944296952878314575424897659858637749131348819839891173540018428639672440684212618901861497393693069085976772028373377705298653499156391548793097772665673039232212784256656017110519384693903115824117917377624535482829595026727612254495950223195883099016988658528600594360451822014980594927348234551012517289245052855836437624698320194503639536494840982131256463715812481882938159760356772989057942275556422812092505797903055375675285143920109205078243514177785180337487128768973676778864272045991265938105886937351879159313761203884315533059443849702045945263961133700981724997775207723018404142401802708039861155518763200543431362678363578848293880520776353613921631728387245087998344338464996435003242548484581567698137306187566876693594298018723763695879822831142228129315171875875211831104630625530221902528110376426736129599511063799710992579593672839374722391975607627655146566943248742302880168135964913544122795182351994655204095133673581617490142081016019856617881122771068874112534300493098342367734352713139915048638753712573072684062904579972735585468010312249672198547753836444297594541317641535684494907424013539620742235788115766365947996535120313435748584787572382172533119909373153139159035971411512251777184909181676108169633767306313575359540518052757856040668730999187292871549933045087854786540094305273246796574247894819752476508244782165372924247868862905532622817119391976256237732095416552875373743866527705694751452222353728331144504535497777701968796559888986406018178970122871204048698957429093496576249136298867373885963813959518314330899088290472841911938875785608575584105011194038351740999871048365647629362283345682977688097753756550946864666541775347870019912139193703978027918537978032169843778706341613929809556941078897239363242244800691279256690993745466996422218658014995280973087946554420870783231435725302505665615625790239695415654560011683475584879060690818643016373995250553254450510886519505492933479697389110868715760763484838440469756722196845962589120118679930965820558478926770561913607665978514132620929795131135798711344764014498340699004613895513906996102226866869062209465865122634771187961687060029316358619548442660328752102079028655436840229362016218152478929727080979102290009557182258988193506618385117862537839473391312031165281386104902979800949386702230993173420753753502079152534568750163876103355881974945079786519624105492050740531497234583650450077468866606998690937459908774681479613464810885950063928111230157199286557936465122436307333155140454861407678575984442299631075109285326989833386582571772351379088440852021849738134207019638413220250453114235866595214440072490898544022312725742162813394672494431024010480322499539833328681783333619458969515546922385618645381017946856428527701636219881210492946526030137258286282619247895408662245688332170749605106948349298361717959643554084533971640017605539970951216543404052457871731630643142579953022117442721881175710445695462208941989507542688892297609833412937166789656315138583023311956151720190871612710073714218316275633969580715721065141058001476222599469700879507935092317514414219180694031745879536267924548284695762661471339983818900857789345720833156632855445015088283125917785988126948809682285982680827782036200730972821898849187788784030046754594661823165360255848173638523203324960448128439397383602983961911122895907099204785991886872287447734288561476530005366558920343174703062567983753543437358653967548689911183803986791655026961065574280143870154246818249274927195113295823042241483901887149375691436570110150999465162600691544592235027992620291230770766144934243093338227225093802242319570022188752871813076989362684320438586361268055162934973979276066166086327752405120977358689581365329230838752664878918079362015165059067058589076969450385110263508659285834504006640323835276553842990166168410114364547560003618709637975367799610494596564585462580949932340208224171326817214559276055725920550145020574750969999419923065389111831114150663046782898659544907470423705761042890652256534094842489349672971990106619518102685235033594460578895324393304536881687311335373325437321459122617476251757036982689197623663434720498961018805022661708437959964953711871052099104518492037566496368215209938013286050506478290048413558790539826233151404693180479259943467282881774847017148934276759904925868790975802327765763834362829320095074734238404369146793091984944468201541872849327561983457006224682523015215869826380690339499982995484299035017345523160051640006071543931834461767215871346592279019866383628992258775789961550512678972356030251514831434859617524537383527528295441212978239334549237290352414274343802879494702424909183799295132064396830871870258539323833041359359143859815218528980566141699856302737908124146840750225132203842371947348841050898400481514285585699089430878853804729124103970362736413536987170901319568968634224358278638431889019896258345734125001184569747821980764787567729515297480877809913740186691388131504014879039543492643750335876700482173535195448726959900836524705673135483055754582945526061527208816143021180009508697531930806383296220433975412905089894211389761626093329273750446512907843738255965733993629894335921559645829973207631504732324053304485298853061678516626441516421554320984744118140424014963057224354518351550933038784634588541862533777408554157593475185345851016805303763680053559276571226449504845303719015188373252347824658889001105165680161951859783058586872420044246508411681887983030207860610234504164636405685886571781708004443028432759026398371270683724674686997379404796484988485021781929780193200787628254929632385426638966664814596886588243850715414395912714899319610754424632064160498183247452038823924870547665078759934914205967416097365448190961838437006432372543945459570397538129062890959000854394847441679868735433360449027621926891909090652216640844822465092295750941010501313779907584393865812650247059625648431401006001418499680359525375744587385554551275778053746897348260206333757528800603425417237426691006332855803796649005978841862184851010383981457406958827569199646210568034424798265786222751432910754276655114983764828011208532751413455674462893793463428355205805426300918907854551429031784363418038741799747950864913460881297770276477480809314789921078952802826765518858075635813239783079457474135436740143713804219693204566046500544632890412851906138114334606620322720995296943683637789755872066685080948429399897719821158522692601938930556984351010251734142868020650815488187145249412756448967149022381982350499565225488282950547331111746195559496308376304713828296548578202224998724567881294068090821069071871203804014523926435008359830029716420179645831495030854849994531856766999312068529392790670519032656297874763834159743714483544076591178260597953096223584605613118448933738922318604430388610468704688919586409514958509918936170913064733386860797848039663268461748537860621492435767472140566366805691919361481041410121067751581696635492752901566224960495150504976248734686912876671941481599722642340854263668121025619066920711057049223794843200295501308648975423528142657570415895801318831966074935858396890618812174113046806379534459103916421351192560891808175349345318529597315485876501226949488015557139097967825092076228636970419017315658274753855186193498808244289348275686455077673200277887940753721218937271543800776694161381215595909000519951825901493328687386017371460157780686120865480260244610034907874126908363003526938896167443512471945817815134469264436626808403771436891125585605773275937036514094369447388285785114467034330294354532541302390105150471662511166861441924722765009818813953543580090547062738416192959436542532726781967669344590979381466581530829691018311953156871556504412989954340749697198134495114435680822169187894691161339634526764032888444918790492980707456814650543098825947607728965011715782157739183070350911734612794507225084035825089849994125231011439593342844106359826433809088613321252916359827731548203399052593647423756244746429322847146981069882292604548236286150863079212636813260914991784903541683178824910970325664183350325618802053332338870731408750010567183736242248349378268278892182847538341559433562956095936130605448001944693934208647780131632502446763878265497846704446431917499773465500160526718653112236809188180892679002375294465469608235272299383534437636747443121832149321456306478007794304377011759564412291044104697237333081691997881784560357357505273155159413238846262710298956468078376649229226965395718081603848129954099301859222958069190730933073293467938878071069786617561533913018934501803798042268656415929691627172340080241190114172684718908998012201872088033839432681341040447460942577050605664427315758424030739404826249299923756782919717484126691055569212517637677497846581216670918896104358521532375522238841941570873635175717313073552383691999501663886860208161021722170001943153159857602097382007655937457080154163174859773242437160256245030295620372207857405354785921531824500955019733878030520255254675128151007745654759456219344651894845223314156491106717304492033750341031488577343097623317822615289736610579091929760393113864571247035657089253562622188111575789442576829332512942441807139756793978922351143728840793215921371283079663499876719009065518440046746453177605745143475655647405298967274665143317173247424976290614836947588384647977122088410468303316944672991452372782013634670207690011276409727512143461765787169731860759737905871158796756837584086325672076356401237828371586508163700578455635168993549255741436753536638466508383022264044593419415516751856539873726308960161311987633913527176203040181368603656952404367757547752019025843083348207221625759790270610238697783424255315257050156421646432443841350657152908205403034238796254888391719051600493973346635870594801104744394779249928602512255294713965263536580427824519361881396345844501595683430967646839747496415592841033143747123275515375908732184266492578377583792058101915924846167084165567339537171594318185436848988734996865022574015482098880539314569954993071215679270921918857919222103251721706409015742644648670352276339830711529589440957499772584370541432259918550653785306484994293773049889551292653027981996597529205244195755530576706169660939566715457370516964104266749732225338485622432664029412962022815968548928158066601723468281217078266798369641508262419158916400831745705739088873661421894141098610440251896413754226190917056056051397049972956022733422397186340027077330587489264006588114542157190594221342465875727231577875027153918049668919121691196642077343962177916738096116792268668108575705338158910594034791726202350979912053703979271501669232452377025432717397617752864496226115768369588116831899101270762384128043189034540313197170269561844926484413379412898475088449571433102010908063301925644473163708734072223737352746333461887794910106923966949818474008015149057479770570041541934927805275501722219095197591002490540864931655485087753524474834897151210685328203320953194274858784182311349286327870211239642455076301744127072695314841878375528984934020614088657077736458165155886369863855821150588358950851191648464213220240822883620063149224147266885221502928429698117615205527738200546272395322594558248686878214456014245887124115925014351935504206545668372420613660828904692287352925465425522035596343341181825606227262140156328937951201469424104202119334367144611740708926963101292583184334321744763688504821435306058375822570490770453931269829600727433635204633571022938377003762984803745710854825307128979055185984889461326070936827845409704997037702167281953588091360699293810471888928783638987278985151927690201401755595803040305563739621856876594319657751812264789556815391527094457791566293615299777072758354329984074222509254076054424967079629972594774877058792104488061162846383769887643310107719805285052235817386297314398765098769052183334468113936823490780929178805116934645804079556434054747049796983246992733212588854127794086108984001180605380226160927933959443156109103982953349657214978051493673801960652376250329318701279791918948860156430422333030117945597154089406693666224059882795745207114091401301467786774716470980526450393097982871181120753300840571886594155146579333879356131851060716890796537701291627154008868759227724716122831173824631143541714381194190754555942774482415075280142279635119132176547748104501094534963844408522243309544446295674623496411830441540420636997648447980132792205542958507739545489040618315819522349389583543880887592212228813995787900353807395316924963121224687227683131606782793218196518860948613556526092484154245666688349487949449182951479909972707720487829908071884501312092113495674454637864415959652563538527182493980240515774064607776956869939316474150583048085900189668876657524028448367883990787783423537038183177534301779356297069701287353811579093121869667795695801314350118539893302620337643112828013362271013077728496756311749756201169040569012378633435750285697191908926690448789619209824150370965920438753809730917186444600039672477774884140331341441276274063071979896613895026743809414534795279508634185232723622068010632081098568293524637527251960003582506447178124793898787016441338370951605943730628530276405605895367328732197236094737604127235099934249988578161665617120516762701433800511878452382674359616988460287000154073405476247869794155315563143090215768477021126318913738490280754839422851765494184813868358315739820797401271145311220193209137490951960897808640383493274048660824941544842100352767693604692068811039049249263805310842261579486904195812747366413430319490944920215308237964658184926301322168376887292500316933379635972271470911469230842817828569827918411597206278618648494494734213402390192216218607110387027299287188264025441231380572747404498832651009722829985315620779415490864706538658187187698491598826515569201257970835185507474197146126731149488108661819948662899091541845798339925579342684018674542045915043640257953197896424643689658695965921542277011289154674979540907313780261701286363444421844833942258229850898827946220698734547090340533766496298113571865154334363172000711485272767640647193965188915244817805158948460593835661164251121297911166062695755899884324934776223576673588170169113654830042846112577622628195470296802828451299611553452984598265637174339124014613600278936832963385428566996400717693147200321395538542630769754322268502461860107938504074906309965109758805063023910403737132273943641849820477395188625388849346364296587357777873646463520573421173683780869641609703554383135009006424852213291142537313384874293350599020961573977538656768527710117489921912018964068518640975999757625775957372146440735097673268347072525026771533805125067304215853447015201983885635597550714770144430877211976155239755065076465961362608350906214762348747404182399664198872559489288756570402568288422056568158403202522795089440405359662794489916029070967611054610589653241972921303899595202953403478079798525236897845898935447590563004604201166198446588786897480953825178607777537336259669308706110810761137281954799916977807061270143565675873379973212923939286817918718439869287013590013211618906126838744376993620792127008812419137785024774627206372325959376660564149320190399442905359350574722576000179917393227622342399735343555265680463704818369741969528716403841875859599089407876483770288938190819078367491591495906479144701985273500462766291290949991286591554961136406591561108725925979639504422048101167624365180025566185531784353825307203801168270854305218541801476869323936602083759714400323655519788890133489445687734566979017103213280693020393314939913096871261712726130414696062605041747140510218934398986855637533413314058969227870015494861318842900120641762802226393867631985571009385442620595042771119791274003990873908364314267135817428329191864885549443277241748260728474423059876427647019280560195741788279277399588807498163699827328060480706300416685425512979263098559245380851190735666131667981011192886782634864416040603467087498144457314022802556743355730215110992320269339573606699351554978046406405935583984865254124890076385311676951417202382235986364652532115663538300372483490482940575199297744064998602341681458057965894671299164776054861330526633802016437757184925802266300511623928285745551794202093220973456594312069016575369472941077810310763089571202411549494704979327502145945125800670334827898165544063734908622843882901626785181802588447304563656888497780444267360928108848078790093243649076266890402929457174326210448069431727104928516428643434422716104769604246531825072954438167018141049420701502661408559787547198847017496566276988971675354573625440242599134319417156804130547749550927643240835246893669069220116290250880575700408578844762412896255573168277765451273357810473894854131289410938383877393142292192127128209471245160106794257762382415001569485193088235274275574457782663019062696172847821471164864894375487272519357113708613498180664375135603243799382172343487282454231947106022045763513149624201873131746259780959408292537518159710711424846818124326115971622168989571925938065694805795693679523323239447736884098407755201930737580546396819247794961524525989519961244076974414213018299177598708776166388004168292050211851576066379947279027984319163691535885504618015282055327344067975917310586249748157709719224573350791643551645749933211674579024974533067294104416064717776200708832784629216202317823648165625600951398185562901417917475930659705556124437348640438138126920680107035565146249344651687722901287010983499509019942644962743151549757652951902237254078222503230397275310902714816261074108735420277904270569599213495190243067213397502293600774558536957937191324781608002714069283117080657014224539660409713883052563306556182351441504910566158930540610050887797143875091503571181654864185513902894877927376967175685489485335442241724514599045695428871548317055069303505724482402689305952066046613946745522160865887166061392617020636508592151660943378016670956312048089219477384862988682793899886635366930445644046627567973224176991481288196401895590310742334352778894116249097311197638286821730240682487243375593514424007524022127401824239293154175148130409633304813942986528924828385467522651649889536664258235574817266629723120981349173093758807494437651341623110167368313378152225747650478501834340750555978562254974647673897657669763094801504381931836237987824097907366442780470450735332411235535673385644969304695817745544313152518450532249501466688625329673769376673565059215004051024286018859454805674542896765777450751169237860435856394868181308032650279403172313895577228559967817634384670124286580441409451313314609239259341054115458688655454679956876665714620860204815472837090600919884580217587156356166666441253618480920886042295311774376478201558809527534595119271915007405446440493284666815896663353345638390871764260404332354184882867821514651723631900487375364373789962930799736059323105476642459258775576216179048786290567243813850125995938799774619577521876910955068295473026649281496376441093052859008065608367073019104907232182027607223716033580741088108941472710018445970842609480021817669129275652851762189320660191737214852046828177349063502832724648120316176407025433735636072747917850086475970166575272840113202651402107113160363587807563240119094738736991410086327551437443942515044758862580410194146251629971008099246519823291084771940735750622173867321990745759878891897459706780943883670483364225606428768361650665267767417414699824670763974891165014706479008142404622666394242999171197047233389084392574785567362304127406106127626102058592227778187740434133174075958246704049002460239396308197632282887220868106345905827077215267654079855846874181685853185980929234469670566570401542947111709232517713377875510583952223780015068309006727344004453337259858775962149264386744078972709270701215942166931643619617701389955819707211863143732695962269379718497270482040820273623343899218352663162713463739834553143507808680599806401411024415385659955090320534715596344665939435606487709439637747240230807444172168608988302124052507371810710537844061702997854270606056024123319272538679604010815625575251317525701671472452451490290510150924479968038530042335922279172568227296673872582100115851915200399567968796564008743827822466842506083120696867605525238371544198320353042261981075478425489893139133676524455535218127061687074306893559449002202147886054444073898739745241161015893287804339113751511092766327430025989936406627321053035546891207694917765296806597094550990125121667886464285605464278795405859273969791206057603955156033160557779801440132974673561011069023169217384788220690738280558468912192062657582461412339373462080821034412248619020881141503006214280426831296033975171361967715734551753797297504983523307522090689644612121148890182098857182527326306865798328887829512432074421672488653751651081997781457774491349406840887404358937258808660984550001929152228584155596316417975765590711552348763817719829619654041869652241945559005795356062058821076708873007978156333230607921199479389989730172681127735995767153129997401510978656699419367450852323789029155209401607739540736188534212177168964661843529547103937879372727608719657574923100853533163370853665547255140395278199223155305211809125722262281836239339260250696164487641516446410433877586351763340382338333049424307239858376217926411495579812026025799282482777936762138641542015706169591546346156241842222320213925414014617784209538750183220632674294860858152866131122125792554313911739718367042816014950582817929514660489731846153881713762574088998875300533556413128012593590475499272673111137682734643069772815570915964612499891215588016697428165074477771189551527523728623678415034208532728592489971248101454747750234047288053160129066342054609021748275804635244138624049638276812430424971105717872283505376821447534075318203701342963631724701059167143570549554285677730219149948238950113605546652262418952838113936640160330856489841811222736906096621881233046809732477033740674012938059145096696333585569501183729859612958258692099112904742756622792544348816748011749057677508040369192421108180962368953896690377949959780634219454981337478605876994910430393744866646910337812451690405214025519847462757644837801390132444180677028001076368985832255611963845601757311782441437611582678441507032394205562296260341266854524033909993421907405360781642435316894082020297115733431864449431112976256887097724092621411694830104834811764149483035130302089887707622916499666158344735594404249587681493918969047498007312283365506063820158710156494554906788275802994292747764143850840455725899110953328373837471307200179663781284830604128812824334534043085770358600215436968642261441305061999193944152856010866451239061443571800825376835686866732294797870202143789559716262567503831920371510648526420164840376837417520917912655097826561371012565571541524109452824047168334526408636009367084322850283351948519439043828600509216507328637190768686290343774027541187479031592738745273163371557781741673235280059916196409765782018936368896601293398408073607408827420317969894265045438300122152901324286480854035323801241963784437239107347573816653835808923740728498642508483239489684805655204261364629055080354677206232015267217082754615144396720369933369992244888976064271667317766244268211990748006802913998671773231529404307242169133021975580439697448416956772385230403208214996780925151198808500724763658845311002609585207088458356493620165387245122533975258075055266874535346511308293449919928822647154855108774711527782239337611620985395616026484384038359963858130812853198664925143375589094311439513140284290424669462930885140048820758368730127727154820538476188271119011782206217010971590599721100087931264208916765116280053288195545034076194658407718783125180199292903781324114485381402925145363692332995585450875637951820844844363513953534915970657942135229263505467254214836425964393489928553944322377852628273974291512962925816293393418074820914462117602905914626078711830431665711055500461270001663010427166957024274935478026505083332713217017708694538514285084122269837809196920840598551659020468266464043704141880518984701495913556946894118169358990088102189369480474346361078016151628646970236657536569282250047081703324721249822685715586003979669635064447877492154082784134130201641581003301271517231708282604261160361425056459171211656433746913832903036843293052147277821608761865319842046604788653528066062203459099001831658662363900261049915346029700891575940638206854788514308260878330179203833087779748238256996069824323915741668607770337345882479197821933629037741389935818408046870644110284109131201916836413448961624504428483802495993675471018705397038650239829883523383120147871408613704089313831302752472694466080349216178300986907255722433435882526338149793298503808198504231966603369504753577388189760448343867096434449600943064253603606971312243602612100154438827577066719945410610801710863997369021125181213843539051097635602861054983409984784496766051577570074360451055098028429725723564040583050552874261669379077029822696998904278064164169911612687421327574952249131539433463682545142594764124384090864701471218588458587119694858059098745237202870189896728564212859282716934621086286693580184462653000977215008037400337252106744869110108789032465212906827780278332774456143112783466425299888769051546816073331779847446301066805319263962909710122293994478383817781495338831409726528639911194473098637989770257955557535161712370709515125897912202064976107252805972659564754675516404044702990731927586066148908011829117314111054440970061360507877649181024445821699125809770532110098384836277785454718052407880542650042290400170297340018505763902151819879608292572393349188976985941020914771929849737028775492000960608973395667452324248947638491437982300789859702051631861522882337228286529564538339896833814035072821535436714356093428190989152236179326307547083042371160507970137246504695361671482958969959318140250363859661358131516713741246526596342601042333704924386904003087495233845798287095596439840115913399484267225672879201611596557464060423530838520228429474509697139316353870986268568217334703951661485733100851421478946172318468776722303735135619480507145543757478418195920206732821526223527015671310480904114279341338893919764827013969638723603934218752363323685295531194798977136956885954488979813629108986485175028899272928606733459212910280038904878616049159141812385873656250621637042075313315313527679544865580515438633128484199657256747356702052380789209483044637331005816631169330704104948589361606634128616915121087836565661537041501803418652180816349097955324335445685340242980199282095973553187569115349882205433993721901185555998068749528945287332818045565222145160450384854701809481889132745363777176227908714149022206669459888907638479195392550942519366181700852013096539207243558384485020459424859043594342894719465132602781085038635673293078778914964432280808706674574321469761382259325382375876514828699649903488257042541688370458865765574569586847336154740570537566019241248038786123139544735155427851475337129528593770763038634396687643074930271877403699649853702824634880509209022363988922732733361272037480724616689729796624393391830035700632849169738316487309439545269579522733320761944522168399708247151025627873216926462757931489066266966917637399793781203008903540535452806126134911719346686726427433371980248371653735446034516203734756367469691297020268995949494586299002680657171413060443486753484010748671024941371985398380318980256613893321026743602510623255312388595146329449557157089189144464930198173061138863516552017034800694915664651139478781603623988487008172629250330878925647259062208951917212582425063130321014727034633420146006752237700553084143686996188359544025230066191002489310150689647964484464401867844133210314558979535541176050521807009988086288524642080368954421686023020690776045027243537283550254092680548483512655980228545642948025263091927036695780562801768426603068344615116823926719345177464695051594171009368999557597954025884884739104157531017737530864911661693357926901442942643282880189558109357572455589245228876739430715294685620596509099746387275065776139295952519988217877524852556137042732391482326763333252562881694356182655933401705639239676313863818761796674126592768212127772637392679895647090884408779205507108200137115621891159338768434161844267728944155721195588262866510680631935306049615240543742736626630818368375164514628631728002472833669994131496176294767529327769127730423408165463556109240131122400114859168501795793966324470279582556446823250997988327753928945537150178879970043199876275659654801491956917970995532780068969549745233307262047088420474641571427274682569694493242343529988470535061497802291146957348932140749656729454307728844561793385863704904033953405593327501997205122924352974722243727689873964529785101491749196599983736577536947868783882899553319256239263497173922946034423227313436713810236108036824655723572374208887669372353377635851354953150267235110863516191043906430711520874642760557007639678573136251608539988575163265124148135047722165255471959899974136604629532742412903097333812968440500813962234597755530394076615384773595471221482624029602481814785215254713421327871632288160292883100292176926317452262844835079085729289092976217676344704385085250005451809455843645180456341076814591517877025573673378089164229957418515338008160118024208934024030727427101014835210280799681025157551241428951219922682412370206764331433701121025219830108995194429335619922003353717750925234048923670770915505197275386709890046171857244787697363557809650321636380581393932388376909948601056063375803194929367331290246134262673027011182031245164398302759402456454049411688232409367615193160520755149242785037506083408459189774109926626142331726810353973462286057535669849237762579375838516858615373623566101345040475831652617904631697820694787917084768157646971437317838297029080195952017242218630173423097202900705003330859090239198744902845202316537145454924214964029691365720470217725143730881777189862751616873574214396395432588094913556399197849328355464562412552951968192153363244119077491253373398412526672549182192687907006630862426705709887277927740448752159989818528257331665241206288135899352025837929278532658306910177672746436529676172627447531692992314119043965246657811090399218186447864301163125637020525331954532033615789830557558860993463700834230257716381574134668882188361409522886282422002160109138179040748255502054515403109651067710490494574654432507046622177937101440028290652826726527035540568159020355821651934891645762821449396523892489019143477690193942439558926626126689384322870875401268214667785574187891710326198438374824129946235690317897559045246598778759599828952559601105475374121573083575407338392641474783613838364144469080825611103023282399415005804618738209675049769365044688490698994558194608988548024337358214489989105036221004636802435648229159321367548843881693519360278374843676716658189575657960959019232574925483424577209525660276540697357167157780592982995050023227059200907512267806286015577914284178802310204406486740507437994677487579397632305216676907496270740021370450604493546632264585776590407182204039679323174436488406150586474625448604630016051138211061987607879447221750974334012559134340390689602308512981659055629921400022997034120343844877558469034605715979095964194887366761168990905590872612995108644528991591792993518237831695152940205587560109366466452290931875744166062605222420523340116935741010297167540358059831946256614649129975333856870104790143774624912029227802502174566727333582439159983838489413408047527686630673042409338586650340758228183330241476042328802000287844631582701410999945513059620639006272744066829199958877305380964845647687005371940851148566228628095768265012573182818613186794802391346337339029393930832572754538898276601647365540172423461152993148187901058177272457103628392984745557553577978919717493151122685803624155648531108675393838422680288025489880040876549157570088977765955800467864752854801062753755208033438848655667932603410808442123834903557411877383520085625205028048924207374625552866056981873611199390241864864129960454760643988010190297071758935573683093367790245442279921247412131948258468040955880815581152604017202585506148596337764038929041201308925021900674235854214776345215392548722943503955473473139266470712402662148976914875667944604118912700320483314807633482648644560091157044030646005994591585093129038387903422228740328009886116802780856423878164240037277120925203224059873423661877931589914436430735609021675681155777133685348561707017773727268056168907640839551609588017602313862247967260738969545914242246091106167164205384089838114869752832309159758556342280975721016799379152536928585562248767494513898655302164801935052928614993384017218201700241062081347381460031776078618113108996322909752484093907104972367724724604751839141931992293506212710724511508501734610362172346190687511269655538193160218781020916742956357976841180433788473755913392593497323342150331098182375166016156143416326733950547959326603704226031223792205572668475197416939815418457622019731643882757826841640352972145010941214520458032027621872160842985384685745496891180307133195239195897065934224946766135457397668634602091853105455614250579971514633947170303905227793402817401634724391265902150261973874641763360378560156147884649114478723635913329161232479927424712567425668798560946562432224755458718446352444949268121763048982107017590207643200954037905434724959155712902958829932862065685558731398152575223932029651746818694664998182773044067689169303160547068139380634595484228975895848592976172272141149818183216759627492941437360072606871785770202574236634398771138437440912947880399848318454887424053795287756375674633998669020950951358335000030252177771013533527432779031877108898153670002818607911482824169540145581131517868100484482341727035775381853295043171525023480173538486806830412441318122380625450644060412276434326485288830703330606896674831301822910278433584790261475660266465363909239989019553751414221243250217860922807911450693546110334018087036985654315195253249872537872900484691402313063796781129134914050363005142660297946858282411514645476668111526611080678618084348874068007599263253091852068283161903733558416854133901982588424501934325832126712692674635036304368904921761354235431104137700124929342942543612121156668516534882367076655566830574030667032574750004227792707302006324493731553324567745596705593160787454380037407947005401974872371874770472557006872177112486747061665605093148801248158568544313512073101854479717773925634526888292486564747357013126376269519254245731016587672263451204866747571247331332106823446743153182660367791178952293473086117375290771301483988019535101676055636314099914231207978137102706942601139803609252709796920250123671609344606407086872976408095406376570512965556589053777013897405644179164259588307384223405119817187808640059288998370694341618211690880414870727793875234238643568530025268481304090158813162951938325545945400664976343317766109757392918551965017841801468386763649130572515563606559552059644862459886075713840039283189763711160003770233887474493465815896186593953799857872449371754647175703456523311959151885157974961976861516760525617178761810292616486724788863522748923098415017344339943787805773089216197891106158246516598100138874431979484337919487270542538176489569768737643387145473729168700948864089409711901810336250777718215705115862768427979002286511721427271242607059386769856229297730775875804074489989943462244119870776791373923366008453619525922337036041965017552083512634595979413541297253268300503956650070201140474278579097336075078520470892448188989002454864799756679831836427345125846922959286044307969841943635978990959836563443659986565422603299987537694078755968769707954566435671110725835776498640168284483763296698830460633273460796652722479570569612023453443419476314623796829329471848980833525067374519476558287253402946105524362993967338585928943886159617964798067550458386979133458572285458613200354458166295728419916340644210165594698936087292674661824572556424141421730664688491238438595383884429742444372683432869964126355886259583584013864373946226986078999046028378801347002741402098877145574935557653358428486666199354906716551492979388512810062839487308483577827447312762376426577899975171433114055842440680229961250829930506912342225539452481000439344130182094395048771135238757981808967506075083110710356800165401112187674093129307260896347684375283590384777146626500096512138828147813315209711312302784541444868510479781965160733785755644709681249866102773180644237608875251516363112340234587456053211605311197608653792323435988528786456303742287130045318941311695466785249539866732647201913120835288099097250150496292279381503832380358485501512106580908480824581268032284006543857394361761335518584739983572913886655137392935524305461536234283753944528499193851924716074481801686298974051819264253777946051567884592316737217169543649411745736787754059252841672413752960397290652420128981169863869045960094997884682670255292305436011998875614487917739273520914369249360835413575847817398789518669598283661565508016282070709342149381942045860477737499633316351326305981250316438125199261790865102480746673686883225030886343455105523681467992125422816133670998686522033354222703027956573236994755045775718035286362520074829301535580016480703881978985259104905406388410463642625375891812796297292484827223947177570876158595836843026475516268127932792868846110256468576183162487828134102479634960417992836607965820617891584488277366481986397599838207803032124913792692477114253447232867184020000514223804706956227214945362337932957254543792920372561899412583775540512173129068628303795460144083239085807979974968021071072815611433882063412471166876852137184577174438515551131608432027963106084171232064054778360317355800022400046387004025674244964164171952740919019880660935702224260499411935147965994263277480419271521604644595947049607196786770229430332954083417636498615895285092491251685382584838860993027212140703211624647177552856189235680548957737762770572316536703032190787742178594829520526940487294954177777323711879070359238316235814189648020851300792530726156761190710646267033652693385962632938132860694255955949397393905890046033996726347597381219583912296449639425229257022991724327394291317773491402618047432867868436106142152369158961354184951035263628105843823502643811821340497183102327325005518977874961546216175634425590045177567381307914211637244409013805106419511799401467752975850084607438768176758992097666946506879631055008608963052025730179874250689008783759794279868285690153334915614417775535295805133845305469912553409816783234635465128315321536521141155623530322766809435314740800048787032388898338261299807158058465452833574926410443222941628808965085893795111073182076129474072822537367313189166249332643811408015442216273292380355314941913102696768948203285915295265862481189716313217125043771433645252364370303802925790395303270044628913217344441990156635142378337365962462969207338369233161001841916176377846916775827018973443113810023540427890558062054036421014334662093092100620815388609114378366649593774926931489535139268949667432383687072164267625759083310643991098643694548566016113074342335493977998200655766197168077051506151500989464657827144414452585017503587170854066364511115276626667533360999752132099559788720959562241739245091096609185110548193166765897797752176321986082867928863291551862560100285317034029892497860180282130442324892152142292747214344532901971767085633506476099679551088022669627402831086966826486009206443017536122169072457534692005632156158765636439093022285542963842625242035015729309396773976896142130722578487498588250750317515974420941069474391324129982626322756368868689389097775101606745872503949731608524145451685384825527607249997238141315957419592230343058478305025328567251756496133047876591794505018772429445754972593893258163911953825508107354159927095094459144652636679604627482606426749504079175816050630509732898430380859940452960758945255252254951385857579166680402487171316148313790941511139900231711632084070677741177056406005207518175345654071689393948775098632593409282113925905802443801675113350900611141864500113877080312525369439639820088748617426444179730997874770529120015553678795270984574457408334848215820167325930545440559210272122003564086931773226739609259601887260027650540679271654855243338411915834417181740180163213283500312603289363784481222651778342145566593118534652245445560504371908739985409403261250004211819422624179105329596158360275450281301205704395579776156770665012684056839386271188188939706332172573893261076845006747721600117409382294563392101138110799217920579168897915393770763802322729064012603602629588368457775466212499658129836968000310855211365286209822072341102216523526818894789084552200862915258258771432319274678907832632466621789616036221736404828822817920153075125357854312074788523255706410793697329144206246937714611925462531669794298224711777091097603715186569461481357523951917627678782726729292541177372591392373357742550465800358754531094296025835899361098191099641614027512417395805476661637017912738518411364436521803423764902758549414306008519282793897519194042878866686714124168400615150718911715035217323496433543368667874711327633855770720712678183005829493311695525729454841617103269311588784204156577076183454082199026279599189462756879289922869058897735769269799867538663991858889629596878195918263372355428508754253670025799144259807324775853157589244687442507218009855581432517729630926274472010255733325523023369893568881511425730278335733806487997765560229599382167077300675568525514961479946045516810345156783886299226807510575847788155641174050908436563646932393064252666357844267593621780410234457424756577026584792354740676384720588668555722066161986982632606989375815041346022013560142050729731130090363003605383539210462970353464354481363927606101837311600011755509130106486368470075539921926415942412471531299966644742692376340739688474163502533594809761082149362348441788831713638993607649472257855162160886566057090067119681823912342911425077660433907875930841998909574621385542624457138318684371857969038112348451487555129191134078070771326007880459220862993198138172310986448046477699830852318338094229535634233348104084948849994635495319975617379764929081433829336261077954995970137888804388038884362689111519798754714469685614823552020852551658285797979780037526303492908116215071966092350947969980911014775489923736268638210901449721085162942733460676444893245971655105094823708772191508691342397427273856103665059342854463538911266992839228395554523220967820014611215951642288670145311275430955050562674508684435102890682983687079621484327452184449311888204173932800013502276259691575048984225234475358413990207466322541417415404418760911803040358130600794421510573036200183599042663320769849777535310026146492950682985567264672655762426458308939435327419010537288896439650917725014215073340948285663114804639263202088851357023329493045272342065194559158204848949945709508378481686505602706792610338667911018140546489084528290898748729229136005394764693761626443554523504605249377575810049719607724070031905701007646603061251785321386254953332960740208225688816301977449113470597175778159648133251015936713463915904503344979421226887420991233363437564594760990017179387812273021104989202244174870748486867180747601010347599649880983957114509991253407969261879296996908464261246821008262093807290800490137385699286269975078671557540570814971101972238952278664828220296053366040366699899816178004725434087656377642031049885913677013834032214376374061301864071276291266035778347526528613072789538490258457375779663655743462947394752827135602269849762173487535450023418572561504992534495784882463912078759652002020836332715392056424071698302384417920556474183748279376886043267641613111599199291829844589097756333969300695486702908929602915009251372886747634775876894292095770163404860361990992180006067857064523642780338282351418795972641333394361866327507224078972657390963691434954836115241038690725822399881401803511718082669502131000070253987057334978370888945105408955244077502107484546157597743142385505849130405381353625561160349118709636183230722717831080860317968349908617462153587101810044586014446037450454704431536899680656344253661007033830911417843942426505020560491621771521679951800997602387851701596738338886024738661324541409349921234674063034312024867228832156677852615304846366892529563998739670643157200790164325900718679677519081180103863655916193847167251646914020995526684205397902649174016078758223039825911656125153191366270011557962734835317061994208041319637816298182793389360309419038689985267559468815305590488230406217112247980196749312818977395276060614398215414289540131500970770823884817520643150807461234832361600965315196527347896740204029510764021563640383226225733737308612727358198804242342255706863845922895032430835294383957717341615530932987288137459710854101487320116508917417903890905503617054675887058021264811903221186767685517697235492209373728454338853101831300133163343656587648590509868298835347847197048273038731671759656842607151684035987902271021759971389207968538181653380697088502394251462043454146272882662400197986658467700428823985579132332652345869031107657774360117805652351373404945887083037115856023232318599088158178369265410675453014888253216439204481768545059440322920862132464278460271961807533222256482677596926925171280644643395563397990290143506929728531471537882662121368733780884652556990167898869877457665014846258775820247118814253136543650435951039235062005622593761388061394135948680212982567058929823958482323764429728533339830487019254910669307422032859582490013257078086891935378836763253684468304342552993210166847729953248768937807016668505475432724062984053327556974592336024617625202302009078020340838517295567718098023859945559917213329724384609144989614747100341856201599350314415575879272850237381031059103447554889976733249884018533487996798808944109423069148385968987182869202188975599646570216240844179096482597788409847283325437779693032930409031408587401058509163856052541381437879875058144920903429785080696481008326416294097235890610118608912150324933758267741189291889978083540118932323656910272432255327348893729912633248670339913373990870416170558163262760249582482018623252712801052257391976654114127595699078539174242261277253322081855029695039270689865271952559350853422929338790281729899870015940405235532962491746343677199411626459792724168359655994358899544115986579397965583482903520328557948929930941534942677359567321098996264909305204441036219562616242186333496336326852424812184895838008706651991366067583199287259645253695405729179296932021441934104951177608585520349700953157039341464063481861024394217127120962419800632397347848264601331848877717314384250367665441706219639173450932651848768308238451468692525651891913925473693974152813525311730741487311434916182707102175154729529883926169985216394336758378528602189653470181928226337091146534706579958994216484561245511050321885633961655833093069631310728054637581933781304808720912358519568340655279150659731034088890142769573345534722874154762740557180684673715754129573099975162375444555975370632938465720412536708388788463214328361000243960441567351416280179136957284212845888165966780350818867160106787082854665580954032451222493566624164075810834897400352687409310363596657853776058983808831120682421765134947606470929914138001939106569472224560981108852081939183008577937761964143653288079849689104111434368328604504701144402162642138551047951521051543119622518898911828399524575491984549624486927041209030333433386823662045420291067822396759179536154953947605235951358448655861434898049018306272458990868854931871653589946118326233277182183428668727278183827053487597602716923317333187755099523020804685187646928861640359322031089494989828731132815118331629793387846153928165528461861020075735568541083676885412239889468497057349306056567084061466455062523073574487797540036993705396312039020502846341301502045999431789395751052089455239470643631977278081339772530367959326518908505520286813554105849795488649706626958913571714050288522426058182229845377939501231678301114045555537860919574262452783611422288068663210827543533643145578791477430724570767755305056227345791766360933231246836930713149010410440157184339789915239456451995124883485338204895817903655083668680610545646794135161652520596919193628677113514145022131807276452910878015467744820524732337443150599392970115536341808997337325808402261772324704320079599353073892538599456615589472365244833823364809316643036074197043761814175092851423420195579468294879760362565128165007590279106709635032821217786689947017552941434867192889133023873471065505365607358674304673328648101226550347521027571271828658239616580803541600540715556788027703067518554296875600224746922833140613428458803959954197266133367805969358849305425790449571810057607927655124544637433535984514943372638960219390966347310668857954847663288201597110832960150165402431851667426247104932253962954888875606134969278178965217025877077551806001191989270663855085319143483835090823542678867906887558838020727113100906210081047953025548993773826484915681422883257766290320819345601159668736666586314971987717526364598106434683528496787391831428563652019685258895825434766287004110993181084642250650263022760930863204340887240228897203587910903974009802350809853434209892001125037083740334381484023040773356124975279295248007046524468251538682858639649583526895048888932922583050690755454656192895166684756400044265313379660311116284049225401915958303966853225411853678925738883297288679629667850887877537009481045623764235988113497910074302511194053140206982030071177993604200919171224078455929432078450069339450456187320240026607964881864482817482023831262719493931532937351572336313706963689140418413864541585351134362834022609896688812555106169183001444258357344251153643854258539967051145813430080174318074229545631214659291327741678116871524982786689816029907369218344382536101911328480536571814143438115927871579022345239186859577310754561045782519337506473741989079427659169976587117811686611246127981071487349192007624747937752720619905496360357336037672693206163092365712363033699529022039514068031578713664696606896338302473753809121693247642075523331272805426864072219548988663521876361340116905733969192024927282858903122586331070923946311034952844000652129293976952725021950695545207297781553220482103457341086965437641201362738650858886012399098393463022448644623452610460752694526533167861676641440736449501041268104333097089258902372513392767928001740932116859659673967054751986598574705053984208428546400564858140199695037445397863883437597391290179480122218805218989490545582867049502365482926321857474886544504938159254760581595465832363811677696336890139826953250033066284976791468573375989057929362648419715179695765996694876184140306463860671659560855257727165950693129404516086701563753271976588409064621555296463487315884766407249539625930826028542283549800419185904797410597189552117024328452648552582380274321683543145545331295238178229700119258616537299284861880812806670450709560557805809229056496242949437102607894064973130901782780826472761004310558785476136240317941856348037534284519477478610204066853227365340527438719858067348200537215956435550314125928365914842612864483090826445595539424740908848471616900930581188758862801397747626770846442099306129173120738432560736917068129931526641849445921058978698340489926440869622937357210751229434837979227674327094640616564982974418167933803544463002662757119817819406782952296125131470612621411372944214028934160251788430806357587159276321041171125004945011980492551776950617818041506690367665201411137437782586349127400510885830315547849324427225721692252591339531182211538601468688581148532038774869586544377679019562648978016797844716219903978855019435639043670600679841940170349019873965415423342348101484993687939260806919602417912725750676066769333078227696809121811160717224572988405742851703344676247200743060275315894973813613473225675568045704339889953643197832913481695915845479688438148191657726249169826805667250624336015454083114380905714329219986409561820803219001131800252735336880627795527289926430423136362977405671463000168473246427354888468950585020990294539236142676386458130707964908085776578468256611329056232645316022354295383685817222340033507956522001453844266390873184452114188619328766346179834222668145739414454282213053869550901034097802781335525442712297395587291386362371229583353264995844220030864403377686451215122083774711411993118455404244731132917013203641139072664309297189362620499225501289700838859225479808062087043240241451934780731829464384518518715290559766895065989675856014491806979372283398884360049425199226307008121870035364985656866435401204841616143223445544706814913870924304832600205881014043383608480817024608118404852099574006238779037528907492773085671033423631241915277833008681577492791084640701042299205384524452004896737313629984045584343754403138829220095175218326244403087251995426935363604490084490355860254014998672137934369982920240404005962936768302880105701015093892092308395287310379740055396939951657028355910216034218053765347731304364853997978861972643589968943206244254280447285915022353403893091476487044022259314202446341114285322469703188510034628527909395123428007010758932441260589019252104997191896806857098783658890688349072776314226099835213750153023860795415654858891571988841179995355154567392900534958079079948798264186632725312283785664567854435710787233627077469361911741770872146777036990609087915449145361911156543318937946615467238376345998404528694608780157864949002523563411123904535371474705260417789725272513302771353856948405624225626175902362336321932578979375648639996368151831193931302965438801916490834098458906395469108130129223676951201408991375573255200927381380790705234185444876169777088503749861404920029570522419464506080732886226811673859374588833004440241558932201392067122679846918017639462833502760749849317807617551692768809979876237349198129818109183324880012781216520140687817857644178292327621511530704476353149190557239849312165386170550478359337647529288563895599917297056047846522104531773880682774689495841868143750754653107947157532332962624686840292450314301667213745251996319013976082622978733029541828461067398138816855758074582859319244537521439649099340929821720040117337416287893003510997118177084725879209332289688114630541275214587434973509022562261177281824506948084476481287063269617916695681792086863566999097814856294136402522733779666979773175475994733799983256722089660926176967621334173615839259119791441439219516838045126353211278668946913459401439649300446737490881448331244257978913975723703273626266856363818955163266332615965839619705881212722605598833208745449422850754174696102336394506411385652414146984728933767979008919335574210480351655013774406932068943685178593028458909849687337303500725361398657512822763967496289873008623085396870443161395446032482161841104902843567556541836062679623850140927850628774588335143352236757603608573013541951313286041527292932957279168780913087217158935433842829446278359332142252966422509105219268211958655997216455765844621211364391795416287595515054955774797942378966087751706614941854738465500850588280111484549057480408818393224402495153253493165523651013103738826275642800546476945994744322328099116948559155932805988382573109702225276785807258632956683399240251908033197339605312718402758846339299291212044087809021340395030292616510110012995902829334086562737357569025192482651808070254112610522770820188899862912961508006785094119568039912614665237914088880311024272521533901236582497351889562708796436931087748061348303188020006491158335961484271305126390829926742596407273091301184520900495800265329312158496450860098114219709908389884727392406821088681497531035349998190146553938650439240809182290941771005799638875224439782593404309701942693307378171965690550427926822600075461056701098419615391211005211373455770964353424127078250460506652286791076077847579711296559320449687715947358426480837212575234935863138548389215205101843256392831496470697862199368530855401982544580052019278130138556186122070402771263877511059842834696219780425186966699042981305480437290381467014857364975662039185686710017100349684001847691272160320726947089796713885612237697906521888235944674875729464379357482951661028489673121757898019712376804471096909150441170327550189706082681141945472908660592981219154153028544324538577206399558277427354980847736260885336412610219392741330377238554928488238507814577492388800301196242711577794017823353931033021546759308284168931998951323779609083115442127844754603111468748639095562515022143484372328575770935468303025168335253313591579556952243519812215203623410449365427586105869873372345767747261214854581287179670377252811995357776935664724196282667729553433721465393188508588249444232797954270925173682238521334689674729119924938799274745714119226845495723429950817574540990231918292175183683731273255316468175107646481262165734029712300547215769695151705972120980453998655625808035996621043422784635868139904582892245633834193589279139923116393695509882237226485720918071435699669934566188756571059714810964598244491883174227217801496294897253509145789713545556824497655043919370486527223098111091395023902694640570375455996894170686182600205931108521820440748107854611746152909188360458204552228628003013852097503231798343436097902842030836618834524654247073691017217268569315322658606761526212929007960145686248999715112717434837525251782112892731308077633343611202422394980751750173071256245129003157126215890390032535761506656562995276641509093957036387165038403991228164382348175549678839909222862193634975472411452013290177072524578786461265188835234634475043208355555635292779052036933200593986998876010664802464997549922795331819736467081944211947025948144114919630897903324418869312442883411922615689128321373865166329498938406718981868745652416749716068007078358315748827500676756392964721435863328647689782799355971653721277026507432971174553870589126710157170937145196611554135350634598662564634055672302109024482391888088456399908241164600673862993437222531776143385543596823094898976095218777399752463949628995088942786319399182072173881459287466216399361215713909792446591153197332916300832884183893326017346594698601445416179865287423826581766884675742449901514131927708918913536552669044886151636781939882121250119968014551555570439121930025101918248434743602260765843719886136784406790134403229536695140378458626633823138358248745887489475004215627850716626450184340731133083610736870673944374000017125702503146280760261385466899142368313385831469835487072980194158981813368749684274940669324989244606242152227873278067991755781354168526712284856588441509144485003929997938133208752971381535483972484765113959206402799930957623309713966416489901760249787193486175460265429213172902100955524123734977141708848887933189531059206324402088661286096656870702758759276916733446336249730944867346775167821074032399076512130515946541296582794303853424086912346822717997326937926005873943522146745772266204224104738545734204747139983280235106311443006517297870719180597100833752578721502098318508490395822948194958270069769549643925298905159762986717312178369162216560779354305840969128812499823672320713957035219394473069078924968646931286160413054323164790640473438864609242029610705785114070438377503412415626790046831409846674359688633386682587631042929229724788409957625548761379509668299104313177051351220139980717189917688167234269845799519201328282282435342346212875873826226984999871287981450796136181271341785454564166837135009811647283962015789064376751479335010172627391705012437732849171880677148206195893143683891796930882517369366406566350724347353640871133229380203688871514964202387642012893870888853182891534322852176957278392095946213718432423449243818757264535776148903191809596060998431368632925055741919563751006638900186684397066601949654379316411040659710746800921221654145141019906050813320624606120428769727578649101242166397521560069092542756338847997048605974265641474054772485543597830598667376478097245734735527244667203363548598030025197565811359255619820088248650945766028881515868016504138921064918850111106062429987960162360677855842803645495647410045313421481795459157549498258514170380229101047864367936275214902161543880871706078889647169615609299327929841771243798596038829777103959937416044661339139226223600290333511739592688110696119469603829853879575662328513557419536330356438475993141387658100538898263713703863117259771773245929013210237074255752801528654916075992239535397172405863568920655125153050236860886768043738789742173335314270937305052569041341064083335216278375343275257935306831638443232445330922462940520393060665608845329628754469318893215672923052632092052544035984313259219815941446111998996451555731791863158273673119210691921352754235684973989006421350023902077001543863935705813766261821468136498372558602822216949834467900422609179747279006363221284124629307645896279106171918556018221799748130134997770474072304359651309632083363917673669317172286878601213071912157317686041531800896101385809807567419386825323840917919626412876972476619753511933043761630142032028836723044139124941233605766938320176976509478226972629110407423169527503277805886125059339841081534534483546040219600451355451341505873239744313029680665599633104250529581162708027800310709650397573025392779500827613225997108590084173996637803660496189390473602420009341664001596982197320401497795191501281128926285791626496765321167225926392746787442354797047057231235328551506776968037546059896555921599720279967950979198084613113162185047138795578604360901348053445039896413601628621391220796201177428844720055577133951316280741494604092406090103271623204555624438406365012164996988224144539610597411996583721263554459418689434057596647277370760970886194532249926664319920735926465291942201079338967859520579203980732038309924614195670942181551814844285328212829117148223288183430126813501377598785225770702794334194956269130416101428817835144175502372464997063981733094719674623415699987941059392587950472490050974458325999174416701866802139192705797119120015169550900295871370876717969713268282169316415130617789014921036408763118202795510062976780390677564241599312532829265744156659006275617797800537262001489537300367021364625993020338092656096977606158216466622857912074512588747669645175328891180024513961678183606181174362665795280526461752446145381980256346655475200624847735758112007205500147547169508199899560661359604644410692196543487502576805423715498235848918028713981706347975791992726745027247415188816923610806227061008998274680157376380495003909775850735508943727232099499573173545168886404761048773666873258624079298429091755061530038702455632994871423607616341294677197871897325083388172902629929589356520854002399649870264742215601250653587150983009555041113982439553096210242172611446447708853111988142260404301795304481270535396307084557213661395002239181751980311894611510593519391666607291047570018993542498217602839613840818864737622425656736885912279892133834115678637624508331017668359802339943828277153066966717084293724003756811727549966724775928027426801614927848139440203705223121556225418190842056266623826717583547195052102152092363902139224859961246562782860222540237748850557574021017797521019635635283802203594056419101825415303811690953087986765436565987153767292864416501921231558297953563773664180166304593695679896769399151741119618423104625078762431810842775597181293705277799708686312888194867713202771652294771413717076529788354208212157526598961615583261215084337836910706756345473338616129767016257410218217387981183500008117887770440484838352280303304726641020513952598439380547725646713391276669031179964092054231451235121421130631775141503269444329982425256085997708947498093716290054486139961711144624163203416905328922326922226744928150819500818676822560981273489986168468508115537959200670708701539295014247696069853142500856517872131810486108084684912744285625717590607557728064503437928483665302317178730399569215103684665110177196249881871865719337815174885910184604077169046042603937918978592514908332785839112565056226247066950719920185905010896263539615966856422718132228130842796197146723483693346987970787482611305288184922446448210395389477034174672422396742339539444131634748112998556398589218515832014724236189670806963156540817054852961171299999581682276311238142747579853567152664082299675444775861726436499725034450876468115402395437243947714039099700009650309691071816484658376173505200768820424824456071494546480821527208896561999131719798003382504019289880559057021066495365955947445912734829014311896106233341088944203249169001998582419386426883916992336722980900458470564608098588484746862208039732528560406878292133172876194101309267556986618596822456217175890161163976795044995513975059567271683991364441922837256615421481543200173331861763769518759292879149700058788789947058812208483825724173061111228347311707328861026893749214484312477077702475795364706739525155732851915358637612697466425236742186037768926294580005867875975053801876603592657771625691769791820229310814441242072282812319939048195834299626936315463153305048229140522909737320536205169290431329409138141592880595994718252548621099453226232062335804919343925878491438225026921782279616655445585636473260420561339668144662285532178963205811361859685056238098727634479890410897843038097519725399457916566993896362753993627038195114958199383451552299115086733299888508724513117733305576804952803328620528855752187238285049862448214655892096523058686900074120387965810971868365060488597386024092594384091495928603366665471861174599600408244305902479327948976883829160525525989831660918786859164149355781096199471089135914893120042572401870492082524972538297754959207861066585295027387879268942201936758989491126444160693739958445793055899633319791160414314042705109835564504442589761073631121196591027254045941475811160511337406753761862422994508127852286692995530822641797152624975603038611323434486881126991243915280162383721272546497838122260866662995753271386468424134229989584411537039469881846705749682335924041985480885371176839186726684440524334039066874965185926659016512230473248868828601604493785550979803950398108657618122005051977870488118015383248615816940265946781951318655245823681621941789644356974293836551497057273840909094445968923263748307496206549684401792850493150188781163100031264137536084716681747810338461362639998060941182553887265977620878909882231773145142779322469615762417245166017283729472897018103714155373745458093537574781005423740994041923345894995941209746801456822736691296252407168874724080760397472811488680019395505644621409206700876426666838853022022690539933144224978414324318213270599126340325875923855208360892370763298918072273439890606697913017851402855826267890951711539690061662854440556683890847179162763787471707657929271048146150866639761488819099452317812439785494763210959345092044695936541799354649504874735138672080467362404156702588803621524413929976302219925528319098682947433762685919343744178398728110748609230613770253577210939492049748132317669182265817290736710187467350138400418817384928539397768455945092064565242357862196244338861249019501932628373183244285986954253903748536099428666703585654197314083349550850041006754948754774978542578967494258354352896449423346963854330025304749617072359130859442635536396949507246266694239372149781146676742861763220670984412545797174110212803848308105928650335183009731750108727943533224079706904768488750319969015852883221436180739343136538248190549968949085441229577368115489947600865934504107517566257847002086448318898484666084765817660470799724441735817095924360005574736991862402997841119654749069235721676160122827176109317576898876736499265738761696321891946215480077058220008934793551970832738614036636125662165065900183190227604800957113568041671919661777176964003014151498888044167452642340663395088576923174035321621602596653442498693859097666743452355450797653600220169127282476510795459138146587887770939906656298968206467788566221310662698646556108110777168500118955405625106485648875860288937239411098661563001145049078650507884873936443519779417497528533949727099092862793879430820222518288053013193834421799987761178691966539374191760604753474336125933130780981628428065980708011900124500526658547046925481045557448263306459074150423780638986529947709626947204812216747590103008304491130715203582409074625361048657549350629862008636183631531095319222171703121741530146074963760066641522530551743866826369148823733006385502053507054965365513113651218470069250065465202161922059918061236854565673276627973669891618312681814032104527716447227307520133021793071186962653533350117554127230882146546349127780041878802576739115044091492401227142798660326102529910165903305184451954594817602601610338200679390630298754900060632461561159655870366932304176606956737081726431205800216312872851583826681183658363990072479369477871489292493803162040961486935020442827385546935476500222402519199714982722132001433661435653503152151035340700518213372224587821755821730549031353599312738801041384387335434334612454209895930981631810127307257767137564659926501139269559464048149808488165589803579138746992150199345896434359321959943567927714095918960000187369972990871464487736798507644554111324270309285843844964845284405615423820320758316753072994418388691866480768666902784847106599110240982945003280394473299028729992983517502795451450696583164688364744853300751187511203368654524763928255216110377941584483841279013822169691938867797045303869333073798107529207658631264157994560297359180513891033331930705972689937312432575555457219492284758034112104808154666678696002538771942742986995590220009992303740319325371556764375995351408492933634141594868622012278055711645027084289494117199168923294388784064244541585028387875538352874070341708218241056348899074258166308456219231293282155194184533028553859259334264345884996426059348710303849279299176528086439639288893653654605811629816520193903433414511116993378706402158711868268642837605147496594928337892201933243916951032581841827834464333598681280040571505453267886392631863559474055461230700304356704749018286031677447295966394160357881019154994679086900812902673757691356317181483617187276998686114445337159835366633280140399494220213099685462331942871862843781894549120511863861599449581243735837689968094581356640797790743187306226545003237511610769641252076793114888711928806135516238884670892438816517259788663106407621975753261392064650715286222155989781424315865850293804655040689283891895858498159512223440792736590331363445705431231276427344588238362818600994678103730392563927797812798119547221453869158031309220898586294338824425362585813272076294034547821085528696165470920352938301008312279784169317456502192767900712767199046303994427273808871691915683087499153534042657572886961622546430981992829935660202556662169532061703994192807719169547485893321448557218270281351038724942540823384948749853851330533642825463489205897202420373043482581814052221887409240235705928500063337173193617301282258144424703045013774561481991728474654742831868665784006456223604305121289121693262487623002422387501349964183591570302158123064551310047286309136429957023562163603582860897318068489520518952334213041669262860528011916635345662449632970729705117450228129674491451131726198775484276653062343471406864098494282110672059555672909899318902119275928620250238175842831211928919073586080414407865580780499543551546666638332348424079665851662973864805956576465722611205560595074613879499729815296650197676641080092154317118093744385089748611898719707672538756307438538799992150481498105685934335023739558028116754348955615295353942533541660860540801456919025486137343373585349436289720519637744093634814455833165078347010514669603138609088262673740979090745297815639008242517373269427824245327896391628192348605879469436986804253460112319750712412487147528810762364775530713140969949395554908471587586646390775425692207627208073545689843857952881626799416924453090685517449179481744462634125562963026258538123186672282165041169522852985893320761387027421664736888734970496786227903766832831529454329586124505822579478514107176855287120116778268227116884820666504628658169505354662553646388226327722251531978237600654553798689210547912966686874979382648175097704921187524214223414700952304534177074177100913418461355435701148319960259126750822704342708209180264354780270543745828042684112614762106729525558823905597632968332758254595158428664360815651536278520468603682833289852525403832037208429677675630689545453513749428674850546948294143944966901479687619364166624437519429387353136817316127013099303667590705450990889709757775730511415095405248923162549040889855925543289853320665162466089406738623059591828679844445196896101377477245355189360770651942465596864784946113464979842389461613187866894134320255795834634330957670172104872620473862340324700086996827940465427472438410576747729572324819275433669513693945963949104103063600926103203162833049967937325270839000642073689079369850436509278061212929360442076972072110869278346460491618361918206871872290969481689852931053465596244848202019205951990738892689233015357505339462505250913365771430916823656039971752128404645218658648290188869916066850270346691012948243840559082060424023305727227444985826617631827727834101183171063276369709285668168413718413266387624929439995416349208264472622502739078693957250066475989615060009710733403016275927966680223503351050578483765942444218139591409209347868329130281250682797535657028927995712532460600382435467632590414233223567356507515761091325593453250815839782553749144354232504688851701873116407220384042992428033273844121643445649669587458404856963053063890803474065272921974688475900376795655060507044858000392617249435797402848575914895467064153613878025393351265390298504636149555105065674896059602537804379992682127050540532244178211838259475657619476137733144055180917951260288644961258906551041645487611672282051146570820968978122998223761944725925964520308572026719574943424743721453883100543969307925202139611724494830977298312376608178690657536766871529139078548107576296327488185294032315321675315454361584740292650824782445941410948531610602107688399471265403862114941985632013871419736062676819918700280252830977023711585210756647453809728960382479753522761431190748074687207963483298855019033130639291455570921093353207362498935614751744981331735512099875325156986101038311694404569488403193943660170890612313708643864984710789720875961146947668788731504817656434958008183596122784741855370054882681250967971841258191993620195222067530941940231153397570248464898743215347233243267368154515874717944201222093181265550138529268049016897574104186381351839169185567602112102571812501713618794039059707739606350399476882253153983760909110611913166450045369669548678914458188477967020167602829381796873874461030457082265323480091204446537562251985845007640798215550957879255461747313540693840092931467483847008714885830196320978229239747309482277522841730602547760270594175405968037669663425078616193336387192255209282562759295875505187570535122604664059170592927877753600782399890280044657071742288557476439594971316998047306028227007882459368618440982567131222192173472973204459304919252820200061304271641316497256887335168265674123591950181125469016832186935487599635460814888386389702681072870293999015054711995086943698062110706858379318408165737542147187363336280919299457852837436324639641339429036008169767733844408727918728717899950797169061268872810126861324462255555024795337213423419009676774926664687279140141790535595152398989496378298219713362080752070017923936571609306115854510113570554381745207604405203336331036511062960492698214002609030513457501434454347150655068274214829323413029444357190225206657460631755582311148402303373398362410303964098734393488076256263853556162816593550152737175481995639199623238623085382292464470214063189550496389695076710438274638189792660336313335619894624173894839578765003868973031812834322057501866417441826644350000514049389281356062766888265775270547012337277908959551313476363611129762094348071025228228186529592200700289535313413639974660296752913870730620925072160274348503410744914633557952676959735873993760328468772401747680095113254407641892796045299277671177935505328578605395441979352270864266352897737298428994419633537125866198491654416957115339246449481037833014174267713247134553166229136257430477524895980965033066616554415682155703352231959256385315569991792318432907779787702820049333862842680005479791272528063266615981895126143430395925160316528871646382909284754195271152486896425072808855408376146131380895733375432286893040686999717617693817921713441451746368447947962486276176406375447935984357002486506345132914382281147903923268498758082492098069988200648430451709932659389878112727989935013036688963582586359619323253934674532781762636288444587789337924784947033345628101503240151964173723466388645544842451237583740438795960761019621461476875069769786783025067661419627554730230812484930744708290619079253864449297002301205423616765013971163595484407549493066336016732165329361526885056687345436449836080512391865521456798309794050439926219793516188414261304569555946658401843848766789960643236037264397276501492178331317897001101816160707260000421622345948367130134090889482483475524940185503069198358658325451544771113553214427377175290602085905083650587260402882193642784010064062614117972297712018754561650715334976242044616679499874881200451169451688815138687250454352557020016934059022254655716525311325190984392850158668342200329336479681865934380457026581394272099891648059269553342535608309843557484051578588788723789357340906675924266972781633710240594302795979905210897873547855047555568139900535168739614455762777462021891296440841210619462324023752868353379673631997808302720709614596337570587973854907292888228675268528141381627021948494686366463424856263139901187980580452354990253757428746458053985987610405470077665704554150832645989040197507704311228437295783990699543907330288783534153623794383311744102014136799509579103788089920209734684898588166055760114634732838931314519318634354065640112384884113887711452025203780979903514504611349159427114355997564539502836690687449336210479501836359784873886745156490750906361224820301097871072714014156994034551882159392973069741864293834199126052117789745941882895062096900984920551422866173443402842169813440680870515631870315906783011677252054373717981156491523418289113859381118828341946101834494443498502626806404248383878126406889142160589648922468190677237639249797385931357451262662970233005209487663128416583042712130416592712531178037759853062615046544873972591389296535822127537262646078834755995167882856122032701153935491948465687867747785038419080717725866295697261402856125542844197069062866156988583519136070050274120225659259632878428386934783900636270254845141935657439317907408250054331619300801622626196576952319502901639414505009411762473078942388351045729589241110688276350378776502073637741134839775857663261044445621793055031220209252791411651010315367933704657399401026833956812720535440896634742089642312580280135336933432414978511472477669916333696582865508655162258017710772262245599576523307175084994109544231508117588101719507461725768880618150837543590195902217761243250278118288667230656315877066873546776586067914672516878632811772876169837078330254473694231382246676987669530556961806840249440680435530618558178883269777161627798980583670732812341386368528674198581196589837938256164582594570328703382041297496470238958565533353317485749512214294049223826262100766149066883245090487324183279227603361170825322153027372833468650304701813394958233594417591604251106268874214603750896267546852216295859292034327603777297319353006538500531825418215372204444826010235798780542602756410840064925767031714418164440199377224646458880696890761855193514365008117634031326619712125223782354878237392467465210760224445636570671383064930276628090401359639601018309625692362759628418723359841083420048173004712940715888083469556053268536949699958132618314189540691180123512361114793720755066353996488326642108866965375229705853009183185725836812943296466626048816203159746790465832009564528173198182514890828566185510876650106775587702939684025769741172008833045751404190596736350630333425761993990783890228357347529988232585735940078119750840302293750891683629058302257027239552648288369338970904887730143702332286410257654027719208466582760336857554325306921755959667654506121452775342268244891420104388388303630275918669958452843585896418499467443570906347311094576740928142009285352225878743886955588048722552183291916090020142265051595085620022101908955096004888159265176698174912543214208071570280276704906238136246039396347672409325197995246713324170979081170217481526177557426766037291888804654421706083632158978206734065081148280386019137800379494039992633945784440543528435278987321926095754174022776567216837369139796005086192283209797967710190328956484544258251028646013200012600206811963870466266199136609272007317314722438958068850544223165511565883276804966062279332229848083793619824245682873489301610395359183068949756454496036312785328622758765983853033844848534673791495233234070400266375933688228263933997289055199875099173709548456880284893578363702014825039098744859385152893840864182079610933668633058912061548738379053058395225002979184581228313554292323973340439683937682026518202439671393651544458769807840547509174671521934835754577944455826654046982998327267060440615819204356709875147404410908494448313723697003357236507724744217647790661875862014887326643165467567349238464778388341407863052340237974796677531242981183454594157868373572027867700159327909862279452647147569406796948394574815683281486482673586903355459861331602723313236083107255105385640314694046404107838736153609047020844992545796723313383068759282037407591814367536864348275252730545115878532361625299395256097656800768144379522224905447230908296047749295926677406363808709010584364265189100172719031852172681978755837969686754148888517382064200137551593212953092270155835712118089373357017338168000204026359045363791972691749163510750466281750084070243202521999303319917951696283780101871525139513595354244900661693601512031169318452884311653622504115691622875946592696690922066765034663962645548374208643914701590021129383267260125705881895352002717527400874057402888011542566914821026306435938661951431267194258218924658983636273057523310678527405356716667694353794568307116210598028277496503537552812126096934007307789946408307525218021605386410049213236166139977570245092749574689676911306095048768467844552079885023432493833005977664134452008975458240680393178690433340115797470184363330656520436154338671061757355812848565181430477266480704527465407097361440886449718676478822003428670054573406089074631124754439185028581550004297180560237669589899269455852429522342024786937772070471205584537072031846042008170212440404917848193814984993093503371492173008541770309312242763629029585516260001315725598233426902192499745258067933689390069167530285107671424595249434297860554717449440486051529304128730881015795302178787214156641313412249004902061120997294375077261437097030441647532657668457764777333151549072371669462466058904138911087612555199335959991988812906270576884686312778494808562275680693806683312433865281492263165393459469383364328740518497953752827212744510871170635144383945795513502291390854114590029504522340336259893351193273128791536411736841385619708813439120537485738596656509909635181416285195683500826695545689199474756142851652305683791544187326523608887362574195023369094164877667853611828543396910624213619708171945210471244378946636590136571734974653466681949628498474249975232043404938784108146500994798527328609817063709592542399373671013783159171809201631155534261740660893091672541221650820913158781460842496724618481867650024346695122648086446089291951435122282175418304915159553469415353852217641616463515839142529220287058895119830603877572115679547838729544322312912566387452297563896423336650656893758806751021472382586400855473923464625319370721650719246948096143977572014328842096864333429874479970711273456805403913192752849013670000046879093423265515769393417645712804903528499356756145992973325409480393592233543395849673925464179575776315271642164245023048019263606491695580400138729702666327591527580276591424915055480779259159344607188626915229678903703414894002844506157348026693520667814312138604684783732756773103836917773848575834547933940590107790813103037475206046054581308862031822403898047348052478169209740986442952435526418204369969523200372591124469335093804632536286528460876125038106887599657108969480493372687037529273713562002563957053500910012976798574812534815650418471114598767596136901217900860134451326949972667605042192711971754171213474690343340169179073994603717583533796863249104911159721797013073745084295441527387578375944862455516573100190528299458142602075934254794579974981599253611081939650478432029233766932115560730032091714904666688278196814140036120921302793975616551202710513552800044153906826384267550606980192270103856086749593151002840170350335332667617286533025919280992467246778840827452463174483054836818743757139366579109524181857440162955203608178402995709346004386511074177805888692948006772573691463456875649483138756100404476545956953783322870577418258614306789510503344784582511316410913273183205819810027159854291626670712945516662824952342813278080155483954365689846781449480638369846854651848794902866378927575229970672771175273331537969392500031457811537355616180510355338186215565300200430450549812224846106638685958944358187271683695548592653958428721930106179386603961152515454153353708726907248401884092256405516655709031873382495205329290364359496993886525257268670667234870430692972247998571665059466231844522729017943616989678630074850707719134397268285605781865961351739274306294813409758281845479107261864785879501655625567518946961255122947122259390606578573251721021677542705810864311480926987863978410487522353605594759819827764308836539652969046945884804684524892014206514499246821925373757172230992500697534198630245268610075544490174623082585369034602673921608082287938449537115401646669681623320139206842479207142293952694776446554768360731967184794653472740289955563383789201526126113878688717129693363235684876952262004870497097821032534755891371715216917893857737845050081141484961764439373679446247486543137667092395337100923204075512281373250713989932822929871618272590458561786398893437404544550404711861009344530902125965934277643588998880386921692813664551700168892280035015744551489919601575981049959940313042947768230766187763714097981405298346771768165811688902961823497533232097462700665781787872009700616589620231919174711350898218314490778065585047142486661105651030140243923506000801012783903700592396184787413522539306991386559364606518574461237279053280615759542446165495042140540970635147948120140973398739667346209452647620058696781333833521064322515182637259040473376674337141219584727368555101480529110656225646926807243875697853493168640500353779016087252789761867447765277159763457110186621314494192693480366154035817513841402249763282602300155507435733339294389525182443903134451360512942614540644949776159205261354125693998616992799908702772058366995935190107223869936232185263313443847030111886985169109977643214998418545044466248630330482968632375265348925146633848697472409170347612613147051841668122754112455506594376150621650189828718930584684462153373491836450078470799449145542457414547917795316088277221935034121503304259132257867294507823173021750034112663255185850915713926510071974588068380648823967684943978980286224453605613470906671143678637522993018909012490500588932051515635744479733503760456802677828961640515816514708148994742299041165502117986933847853065966187196115425974748776808638439543466520618719341580578056875827379549100245558378714174130952344396448145668473207319030167559092802347708930124877606031874174190602236807225861252097173003678113117969491010606913961037368556216248171388353481151662484182794445147258344958379203289853430178198057380356319271900675434865962931515538097953658487046368954096179529141342013909900478454547433469090374751289400227568618965029407953718922828219250190139851692385351438707076221941651171647560346968180797180667771293536597528536576894578731032825007315680663124066904903399395068447402721401068548496762845663086322516240270260080372232842658723920593933625763498163563255909364344729526994632184963742491151910628639879420967949226676018791180990609247851344845210278836974680952432536107233136427894952541543671948782804210952863353326644934509123158257157487446851327088869409444113563218809761545478463613141680141443524668101401716449426002754670180890226227178442197184429275873543104102962114352758155058564605703454171174510708916648599604824892643433460388293420977988374463502937418448561158706005517830544701926132064667554517330971724371071271805689368595570059504815890465803067150248534245924796398428709492125443935243657077453140496712594100576869288836990077524753988389441062297567814356334823070727746656319703038257376922597908516562171605507138628581692983813267313117949421971545328855664711947213612419560695832884060587660113391129738128315746172993106363867525152774010432711486640117157643545245295308072708965185241595588002749486230782961768016764007365568629256992299666923966434385087746173574648672203047496369029010165967368116330280346189868291404127760775824675457305775442482040883527377682457568805338028806662690217592275087905868536940470284961161951871221901729900888023455174424691279548708184994101359715883011567557294923722375757336580729449827318031819652138920131850432346680150702071951665652095991418905712115241278162885004532286562772561771363802978828402687144435519515585479801342165369639825196588239613066865021340237468767194995627266572910789591416575932158884467435275219197755124863271745633871802464897458243093605278159010206237673189155090633705870247677165466221507520833982685894972530314344814967097543156409524317090259462287722665464798943245325809801696848629228331660808451741614724372007293049122096329953913024220298901520565386793490064672009015919716852160211781670629745076415329993909965988444069402915934381898462847820042391353019972731123286738815149539087337178141525659839034885333278946506556839133813344295799343563469371381464711885754570719482079913184521399076921134462219080168622763223955161243271709915009276399654151581965254124321383904747842915166420572756370209007252769850137271006230436044914028552879003356648089228078160020228966481061875262425553095350829757730295903096370968046751923019360023313800078323113341858835659738057827887036930497426635141932402398679743961633957671536084276803658397768847727123519430573227975548626589846239020172622174542636922509985930265668971679241387598145499450267551405390414476901539341225504968891698101759954279808716225248689660970411636527474421661186272401651634178273516220259233152492736449827883797624178678982782681095800870679243182312527756057156406144537558510208175237147472842593583063353734976920365378366686794342949245680219869407677882372215422893287237331083042431856834210600440952587836064982329797718588106660287232397041663082734421430993935675686370809840614967452470631928682602870230105430023408092010869616879954093314986263546779480031898620542403120737869162960372602884854658317462135462054591230616177266965486188826398319633830113832328482463897013893972195907475103375031643916788411110595581339919726167149560892694140158165320377784756304524702730520418717540019748796957367321965691604678937971833198268929594194469568042901929134568442083089725266663847677986045612511964929217455373748215617179776068084090008075269436359096424707418795971578997865546312991814861291100477055540147853403850079927915741123317443484823971771331548975733504597263861123538106276777990770040814266756622903577789720918113115559440075175133127661962586631474877355164130566637679699565222470766471613122090700306582581477585527593135045224238618695595104284725376186937112973948181819844735668410373903840587127862819463099322274968889108695104868485297540675352755276165666323713034608654818043433510497797108391824828686200480678256500138154032258106983384349236309226884896978382669322031375146903463565825055186052952800574789074853038427201540231665965527992960188183601082126930901954989613113058895708747429346208187036222753381315532479766658417008235854178090355519912988662260385735081218707012104768823837129176910686566100456232472129855469412619516350991695083990722530087223207499768568302056551793887654896053701213343215442481850950429937685386338919610207663680231159948809268088139568162619540171137780036004707899014761683210773819163291512792385073435189443182204169253883276168440055401707082286334187269854729015726149027134559120809666501512142770014073128645105266208667045047571917962936781789866726226993049781548536800171197156726266738339583033339116278145591384020895501953122882968063992965653281569597139465515672732692140626573188569533715623870943645798870241700890306670027170218175609541248145169566160121661884194583163260375637390230118546579528570836038416027546082207820510432728706241553656453099583778605063589946325371540666939305426698656300601168507095899312290026739923594933028464765323945886054776565911192622009159014089212583664808978576236085072284285400824418874208992567441490711734807940112712726430465793072624609533069824645033012199367595837463279164509406654602593942435999169013656050675633095061566118913386309023301265105180901052620633766695196973149223173080954122794693225256051500228733186186548704044241460740164551146976214422544654719884988233081162670500341286674336534416371388082565639406855088285583468742476931604514596458345143801583809060846150050971006642418746592864582872202958121756850944955312847593709316616335462200805952494951401339217996282826867731789472287081206143317126086546396993689042473015973632018125496424562642878803901842945282451994647045354474253239923374483779156723155664337760737638123983511085984279752697143180970908979784864886583797174560665096682495224959895688495600865219289782230829246698227155003420674121533370539298747432827465251307238191883343742347281586960705963876219626961602678581697506605029395316674097061011978841381317799249536193391500666208127882742881593621486311129395162008213599499249131536363260330308098810674891722101830490172436721882409575486865132519942753679629467004688986620585107851789352388798915524797872422294523024114265537983141506699345238797588863605950585439238743389968376806405288150323191618166894941852254446693798178973326776737523005145721359307537320378054787215388323338849491186750822645979819506446174843643221089783008453772447885962962322378271420846040534286894711878026269321488942444182551431560972288115182221218487415543141519703928122291865281349568733415731974587310611888865906199152415378521712024160711509238067653560055093395089646087319847696748519906566198448000426251229782053407806369963484552206271016441501096385627505476602619873708269284184489540551246446453982881854797831085068363798118758209087219856790283813028127244852265926269165610394356506582963882397735851635750081772822414428785282028679726309968411555112281053723808498283814594601968057553579698529013204432970505685307242504700095928222082531638014526934580813199861412736833980624965557035034402765494431235671518944099369792836332351971485268277459028222075159332804889550175270556303262113631299586843984864371071703244109235654858250915865632495182770465331946254589008312234670943313625252353588444589622344737639080620847868848749325901228171446786962033316851040586514845742779687867269335460135574391598698385274126169186892702707993159176255376903900844714156784835107688691615864111122807580564178784229732670118091650825303286098177541329170967255094693367795692639866935060082483083769760426223224472695835064480434419165855375915009723332951998717393663050228424705651212722034218652062760280561416185329526116724173023016298211221654299116523946856939734309065931088654286001646222211102732581732031482286153421262537474320902558441261527161403609116922746032383896438729968848422873090683445302090321653126187095052751500978151830605716746994042491876315592902220769304323879666601131849823819942029585864227474041383404975756080269334593177744411551756841348684008714317115226798308463208052629459977996036757928509568859715539368918197621969043969328329681341808375476715309644689523754525601435986252299512688460327554119989368470137277314454075921667266377025843280070846805052601836654407178629202358786233871702169612970121331288850572836001771554041477028117621282315077075287482676901774383070793032446608054555180821855470694570803948419877000771035506868876873894101726347072331272737895420898448720466700665945523635652144594425884078213297072470498778407585414841251241410377668458738339780475719027002748450386211319753814498047535437778838579802340121296464098113277827045577027516750886729468071481477510036471311691066404992160984921273636270209029385096941381251284099920052056113246609356342997671364365635719752906934597612495737651896848939075568026361710863032155806480723052853468437347852207212564198825430829073511538497343931924921293221739939832007232555085981963098516256441497879010143723790035318358804393088901752631416737328306929572721672892209358999860907809814142417590273249668582476338019735333018806639584231029970054910962768524875296815489352354247841716800354272476894532563342802638875174915344954857625522277804592002295077163960862353681537958120410353570651339028052332776109909960370949056703265024748839058775587922944778157246888223945599343058107913699493088941790785458882732629365773192128263068028937216377968257447166376590643473959081873903237238985221977872874977132385400545097183103409805724736061618926993690427790370677069439008074861357112067590620451423671520591198809089981527604004402261825122831463725311683122090365382401239576269137803986000103295116283695353301378632726706844671162557977319386727958713932027958492670092851303426718050324577286950078153718604325363925015772702428817710581381306610695348238074673755896064819523476129327546608284481269149820719136251562057665290394041024620392702680824341126872078809860727479025992732623502372474734219597443770620928145365889773577117682958712632880462494818176538986586001391261322068968675119901579546614546617561673297489111167416292701274868242567531004099729272428308923143765995112904643666090077524933182138996571827863444259961802855051992155891546600725388933195935481654234290636271644357793945106901090669947129341595545352724195383777898633436956080079259311114333873919468127492179045246500277904887794937686639619137613705885230287849419524991726422961088187456838976384202373775167206962017331764022406494413896571951095118672071450266368569733279881042513907924593916274816876719308791120938860232053214584279143582482465585064543780919353439449300119196597749703577399432813763566431862591642890708848700915468418937085500488741003423736301229190169643708655864051497852901914702406305839535127318429723347933382652084786043809035741017337273065867008369165050349743764081976625681303898378356327212529833743219099841473862476882100784071845801884107995824570599822820121252583613551142737239273759393619291094893580165429573891521346468540978984877431188151618811949483630380710584662083326076398306367877753960391605552081096402097605516456196066764177153166891932225755983043411557507241103401846050894918199628578543553476577940877900233608857483150535881831020571774091446909477459161340873651676317831643184585373135274634812156722267996340218746781631998834257865317257906240516401692583852806817446078749773875074298469346223592385320584319101447391432822702756167924967295473972245053968487519256260777752341695052107710605035229458530945474462971155463477580616356634973388209789662724890861725068242777040610732839978597834058143411376738748708046762608374861333288997243054054610835722520363353255988141089053017457674327536061713070788645534661927599037755178352068349404899615673651464118343244458743385629335149926632321717257609493395384735352146772574426738824499449717947338837046626819166683236515647682749596162370021463712548261952853624682784047737258239265868104309852498627821167743115308851993798422115501115542526513922139408717823045798068491153352801644561837297484401240413442762293209983580889096072735732730928538064950948404828170359115190388755743079441569816354324913841782739680799480375358898034481056965696032229015834463265192411561380938701471326612397248107319426048555028301642646901212535723592266538875704035428573966241870692500190716084105006557262599269965586680402637712607138016810051653669073236568694095280361772231319388886236860380865458645371724545343187260322854704271149993117011928968977988092664840208218509108601342040985265280586635711702898422360538359074870793771729847174426348374384899839550707922263588470007550244703421633580648475297189099630300922393934923849446612060119755368704442627874187660102311486875500672497452281274395397491450090422499562934317286326369832060527638298584971780156936517363933741442934606377381017143258986557010062775298891877855707321218408812828314260905539600964273150857760219424379357445630702727596739488250574142907189468002162842031368063395161338401253877867482577138673659586204765501391732222790974529554005177647500725402586341186512240767696701042826831730909025212929954500560468687199157307311815371015627875054301910234765662292465670325119623137972359601594411393158442278535569230390286812787337200218856788565714275629983065707732271477733858522304413330754200110721457866427071467429590464074886138754821270493419561220851569782720379228662929293196866795396565413677374964851322049962022872693298947935787781164724095277399579831107520065840931495296743718763679104326692343941057172306324225664681191890097373749563802071742162054841117732867584233787053854363252674938346221001133350445740894329829709464978535821681167743376945086770310157081397865296895252263318614833048147398317747573868414054150981565973468059434304324607924947953214951904443734692830011255945019420287211868133494702167458566701794591051500257821621250713123631486986563415794802735352331585895124080499259828987145849030325795759544473393002557325244164647502024998021474805925296304941186752153201234577452262097161163671871080525469743293155343424466253348657582027637080426147324257816828670254242501689666297959024934901487687382264820707279395099335273800184977745011292519841131354444113469219159191783738971883338273323635884842183009605757063635845979456128337986036529296173028158731728038686130128374662056960600741369677589326031536011601499134108530252177319250259146128911518807372666824693765839540845264092892000745799265656242214759551918091575723244882935523103710127419808194805369477281466583775090899431756478054347319857785419693496741898739646369103463602666862011257531573007663300296049798058968497028464370517058144035567869891093697421135212108327764442628193272348583264417336151147479285555352670269874528288705907017939147964085050473710173190313676267681997445476926776796299946522955710154079840068334145836374164590813388776337235501212515844760470823257282257819710753024429194431602177319820123601135058503148858642420125913280407916446274796219988493193061480918784363733238364772393888025488322578360360891917792329769323318323397256897067866806771273356690687419793232757240284276961949108099164088450316454234877860902688032500815487666372796511760749591315612784680290662849986665482663720314547161155559918507750184337419236112982035062100212154617076917935347013796588590582710776682676296159812997240732047406701062190863829669864519575026073541081910514115707042129877174956480286289460275484803241307079104711960299072944751014727185860735212030277503682017122250618762906109023772991519729836619941622623048692017375911944983177654107887823438446520057427870890782044204934217321617772954069338956087571446337081849330095928771849153982332472081032062149698648759852898214189519329465239058240761741343713528048976449892570788076579626136595181331464689949395939177386352251183237603280092728450243175819135978318330492704878964384431183209629047466638309200546659854754021364000084106536184582377747281533238613378015075202281637516737860875890390962477809573866282010801588012904546100679079775454122939227004457705392290768403914506236734713353931854582384832140096730432344281515262893623999402792018489824195332890486615134572296819389120459728390223055664060479675500154399757455236969893145523473259513103535079504658450409548732341127559434212078413043993997975908142628284727715823004502398382396102313322369925645706939967733592834418762131880340937908076020542481278208011307864990400913117974155123398979655169211978637266430650427171957763059494814024068780441254964105577169856834981789204944952417339572649151268216928001405242734575804885961225974937119239309770802474810362238214397066281451332983958885549453102986316830099602954372709109431386192010547113795654513368200605541132389311615352786738079659970206873168452737235294562366963645451247720897565227331556601524484873891348165707274712191547245691620154911431561061130750051594885207221808111839835701600247184990841514390209066168576484154700864213494894503303744529529574125705374141511989166006870809250204316672168092280329108308124837560842990088332137179808280675789144052692775545492820933154879813994168827331325999460974878375588508523565682784951824805698288339017572476482262132865469107797749084506234657472700579656354579763949914014583468538133193881687368427734750393359176094450050394445335867772274414284837799561863049345862232132683289699647168038972274977185060835585950645451318853319310811510199609840253572834722926703965208907455251910491716702655349672446238731960490888418770834544941563794325628498385387141627980429329692670099471839774747053262297565724253104740994908822490262319422575277606181690948949336498392834336537463365109648813188563558403469778391540349125029437951200057880935105263786983339228503370540215101808207437357548871337997846100328633962888226667674547497245217315833551360461384346327879941538977471499164418989445707331818940150514701556467765803572786744438043482842894576310879588415536315907055611555179305685605446163656899692116726412563935857754805681911161539501275275169975854322945087073078871480184538956682463077659322416714207959149631287524505406114402710818107178274860169748160977475014242521316176183622017674265119521275269880163658204227061678189178404775062445699564896971025007950678053644716910790636798538504183207305448615415049222594898691990584066345542587485657364718605107599088174485407140442465838983311629080108712008356129962629919016172206428333519236726569194603728236895598019088121427474559137209627970887979046591780887527028638371954433466446308307302677472904057907236908487051829779866068136317592143672554327961554963524816131830305772209013879671738096494650867030600880212441076895648291671472912687772187821042311639880542040896142605699859397390563163627933761628973868109965129797765744066352087182230695841892169327495853698616818941383418942255414715931356151398609569015484660976530939723060826887333273410624480881226866303610550968071987775396320157537575057523729044262383445251138729719786852207785731197750769448553140687479571376969212883250984931903926733850476932700899546665835406500726444914104618321346277607348493660291616582223094242981978328485203661650979066048979411269453855917501631948526981413635559850805572904717384416752766030013274773858760543676777799033256561137342510538437148873338463968754773455499356279600231061215971413548497442098561922675158342619509117969574296116531526743512371961125226880545625759173292270319465121038407939074773926233185763509416734156148997988638754728414626111985486093451470678117548399931745100466320910146421359473398911999463631415209324705220925870696505267085039048342928904945465990899227091682617358479630908215763595061530261361716600009056992358299710029100267651614961142547964243849415718742898295990534789770440166415641635019171199939762733607846988135449860233934499399533824009541574465329628581174950345445923389280389526440852592350014003824506559754300061933130508169134961205830031556586054522674281447666904443460870893477766035135865687740646167814500443531590391246887173661473520249894782291526938688596125056660511276654077010894414585427313319192178083639864514225647704353830063786204130559965107108402788341072422028951236873420618792225400735115529628030337171898447200763077057335524794649655724977720863779417172835399009867576621655895744135419079836578105176466096945526742118663269075357476533677572509353987362324928818719698699415952049669150585494104878766056075397485460049566971881433179649006525838758941789389180499044272584550605227610164454123017671729035972249803715416266422363834378695884506446334103954028813377048803103491620955534966150855491490697859851009330690520160189128179842437739360983755154619134855868515613874981654796527823277180747380986114064477924015955951076916567356384240763223911586778665082133445080322557414499582570543690021292981222404418317736561054320577935791383877352886475454293966119404666255503786169575571068610160422983946243838070943626291724367060951740966381435736042057758709476178607515741130501512415640389017835242016700304159629919317607732936127362162772309223977892470752437523273542787622296358334737514518252863279416608629718989898569742154285294612395584162050326517530586851774894154155000885469142438261325182753833917981546406234017132612409606291619247665553268651595936236455753208567084398578272324539976553805820704207900559593037120723672985614971508908876342016950911342860273325673780793711069750994056674601131829789759658426108839078035232785174765216468660318334830352147914052432585498625799100661321170803087589972973026850647110048797369649660145529606422791962027931080189715247363247709304249040608683284506098179264934991996608076006150861147136286394394021080838147509019894888100236623298578936281594985084937316902947510693761516292472362514004414578703068260214773755955192196460025148750945265905487090364902133758487603624258634258847922410925143781007115779533827014329441692492074178568214709229033024968977315075968932781699123221462224409374860233471256144599656011224847845531026864839912264680779904305654685885636638413273933748295259793957336930989078281408977040798207857277065380516168630669794867021542164993420796261309413301629415200922803102920265505285163811284477000738942541836580174921359833103489673567025804087741255316394906629896987315529104767553145680628292489319776120257137036315281377157565382264331827381689979131067141203193711204265228937237660360423871929350800694263816340940352287192886274343792089693069504829490884327952400180594441986901867281638189747998228251105055698773372905656010892728034391326071365683751032345529527831519979467703215837134645850685253354282448841852061687431478422142289242541609378531503716620364817863539965327844194298076070770704122522216161622116472303659353050965470474538423284859910760774395168798570276089917425453710113151736827396153357060304344355356669363322414803684763086260402175452538463894134044307557554623771312571343202846327598139158151482652520994878814149263767129344045292694002327623375005567847640039668328614538169108866359646951685381842027747694793373629702344909893917243748774842886855836367108006901742056011489542487519420151768717394256538589627394617911602774551876525181236566011112947071788623756120519163225499814894391731388703091295434937156326190669316052871285480865966734881759125993338803931099513357887296714139129623859550220656039426681628694293388016838705058045032518682606436874396659073203924661189634919807515666111382607941138996379157406826489499025670607963358980000696334289241722560526624939072622573479037104609557692667723719259360523806164211805392160887383632162367843296786972745749795773794016275836010335586005141499667945809804353394652306297442503547130629123464514077250017832434968840494186884221895062337012081301273184348212560655722274274402602872759048604232110795280898193231735795264408935258401875396657403755311417609008845213839356487658641244614083367506099905306702602592167000643015985527636281492401346901800436324126423351228003401182053771473513394863007333288329675774399593398391347736338012204436859328776419844608727264133178833038280375107483782620764624571050936016581612499296905523654477336657323459371487551676544289568879207468102805522617066776451428251646475535936850756911495001931972355926502453860678800680032555875132871595372215665823020548595124870865188921447211424479293756817455564667292934742113080169992510089164588500347201025817829323488253228358699818965506802302804084289357099216218097809659653745096765619232401165824795816767963477375712618419950538607064757188050191606683353266522674838414877007604723374458191041354567425799769236169083058090433057859051911930453210180574397248215309350414491877228910175633570777404138170361039035762109877974740780502673343875518093802327079333538051184573223989591487130288985672508659581056113626754512356712741816931155908025873790771139876403651034057751096359188112971741511033764853702251982164894827833115353980412636470925546036137612611445938497682452479487805770116102490050575622495107952964547378978981646198745213862911547721163068353653314121471469925619043305886685232415183017275145348384472469921944212864905144195555203355757399738670082947750565201170126321001778744769047408929281971299992274728826897008821742856380331267002143900662727525245427028754832435642923160321763126043906078991104392235786884296058913653874489865424586705602100484215980283245412645968317360206082912922896985704449710130635256337375908385064209518389741686766885124661936263319973583461323681216759178097946557372393591687045312001733733914799496165800909352738344918487030388573760920937263530431672751577513153678681476258118728842517638048443001972801957357967167323435222115831453100376869287291741121562173839030483002514250987732280127459883749578189351888879005308412579671713309135083118983094886357809733854190755318183764567630190810228699346835213215760796346085932205053044239199160534760716808097218118623308373114941838672108660823796906914792951502659006706288372100276171997113269072584851329927562640239813678758659056431265109639461502246370302859688662557999196340065769796796796278690659558419989134505841820021449282606322247895902385796320913269897491693704470993688944612398428132512390820772033035052811103896979247956156190953833842793594705395923742054559145721648509305689806193429889506167034975125349109746659574328494894168335945967138337677366393894777196882701430426141765586883436770941909352289151563709077126485905642930021894353669341064200947469521551963351732289459224223901691783767986211965559444403232644970916421652018351798551077976608654804377804062520103999581861579373727149941349268510514964245820093311048222851757624545886584899462528932717429122313776581756645673307114640431686338292544996381267908802281254190006005790963041450954951513835423295527630260859763853144185885243219646059272860431698358049592462626485820963431508127861864558351484119787519732597785828601441377135084834273558949921514546276920714357961442501460429953947682929774065024165425644732815226636983075654016279596585945246544189225594506395100157543950406787288699288833016061127388344890242048586173983484147965791308563143134954243706214777342541442301599891238914836358949347127992216466242320669363122559759549225410074596069095393345713523209077493110169119212666485458330897612225519954668862375806667063680595432810499840259903529170183502932542014786938664896540111638892165243490004281585687205003312402412510380781030572916265441766601227444384493878011656039907117603628938119178450187783404309170149145134278505477740605635506871612656530284055904604266799951308405107315377605691469515190441954679313324533135357606535128277026451277682188981791839755497454127813190300780394594262776968370505764861721145661580983480636427203188626414922998169394040784062611319675453628719887005153939192647697024682980806663496041163745674604328963873413601726943985904159204942481475562245080778462256283714542081745496971402271795881625748219042263572351540130508745447982015769545665331851106510655934386801464087725298307430125420507650578609320861621913999158029276300658568001598111112589493784163028183590188578292385127986113076030611249245440874130498349183310692530508061517643479796089163245176357939052962516395025617422495014906500752521006994194421810677771773492338988928402313762315821201799257996711030648985846186542188858208375749647021138820020877458242733466610092743147994638841843202860821546426569970437790607564714196996090878218007276149997994630221684806565932152228971666192129562818346256565484163052222514037235799237905949007179809463910679685966298990689082251291459184697076610029360531122708897526487780080716860181252064844622835252227016091931800351133611435678986652042007626981994418184776707093400698402411305921450794750301055539591521175621975276488776014167199385550428761172117637749514342175219993883857017261319614582513012562190456741232254041217841019947670548926772912295921207606048624508352917679653057834126231752169791105157315757590541272804421409462228941188508410086053691150156847452418561246933714833446467057165461651309083392248217551684279841072793971392328737542091214249962214517867198068234526646850409126413563197005369068324770736618601411347024674505256831696846369063623614570879624822121336185069519228140348388458126856818588187270477981193520376714802940463078150912166171908087385974383552486076927719424831297646742540423513634783297570943137457596030204452450075242888960507941576486365214794270531977477511296483706140810253876469638826875231026138060894957380725156620850191572415766501625559903438839735676135696294892760681553974128852737280172797621304304384651028556555943819127620303305741889378448869390322129118921191713806271507966908060324846502329641326577845543483067858205414855408304571109436705895313885528088549273399807651880900138615971067659423102702676397334679108213108004448454087791827087919446246045774986722899301683593346286866926002194326699312341115463235282494908145662985703641802546524097759225756753505311243881909426164579328266232390214420792277574422328084979401211527232469397585409359831935390439676579130294134501827191068038244328492923779664442109354923761015732642873685966559456531561845918729431098455083551428827360989447908943304589023266259546352994371875885034478882814732842740373215187697015615537895941473193026788569123885661694190525285384053801965721666869439406555473703440572960369526388089404962650339893895296072122949449212027665236186694286740221702731209878369337311311263233357855116261342447378937089654817944441600439522053476518791522362659380174031632950989792972731194399624005900685070550283653299111711477074364613099940155882781258100828522897603755829905561317704914835226892384390250231135074162569863321151543182293911895394064732615185856970101625041960175683524371433011703868425832650945334219169632646086494885825893166168017696404103703006492621356287243041420447022414772282568565551301346965446544994143218990288664689581777076686233456109706942376912338219892378368238807544178291177876961869178668237973457821754885330714521105285668767585416734621308009741904907248543425429412122080551794985540893287200303086133013580442210645032384435500820464661490160638571706925974346289042913867428697445737874945797816190176659549958589307110767742861805473397284845424369188555604457581996581549505789570257907299081283623884761427725719011060293641258673029995235831194549556807898255775340270743048078619542637007758443439815089385674485099600122237663370473106757510120746491650995170128081696835739498092864494860676317535961525259265427405785383694696544668204168324830415208676805902996432811939595275893651494140598552721967868333108105000096307552209965221203610202274883352720808696829736139162663624261424365880408239635232101777333110802044031627031389112270080848228934156180353141272720656479488881802312757677657296999545341474750009598605620917226390807729618312803742366201160227083544181788267036382948029687555761558959822368912291104257341474909688130375551383343053241030422931891570649715697748320730151201600614065796790615160816588205206101472718241979605928909052837931797538567457117938925712333340256003735118982460800663915736403015104065535795221478912316680000919334306066862862324316240334185511816008819582397317602515447547566923854436131658929957181273012569504821910620483452168295556196357160959018296007004867199326523048937978958918080595982999176916890723578066101572969379536133778217163944506265264407108504223273893973142934170665986885199970907684812087992783604571747655287052213344751354931848402330137526348373855096896726263668689034382341950852956852845174865383733237082902468084861721777684998049879616898222301729510581629640529522410251547027869297558200399199770767597452066841209878575720143019125095394097409285783038675912905312260355261435297749238536368578489103576791908361671365461327595737191615637181229468652075650423973994443060127445052412173774413392340785311841088175665267612857383710937390006260167919290389815931496999490658648899741265996927748782033815314133552998038738753096852011653957021379780455909385451073573120006181267568630083014362335426656675949799134969413840223241622652478645256019782348942188924032071475571954314227967471503751316840898091429767671216967064049940063318360481077753572586220439447167169668839332890152311281352893161824597723221639925109783082026339350987898192693788601177582865893009536567628341110809003419447658992863350250523657973659345471055167373199137864061626118007893327931921284507496423117963622186329152950560488551143885336545691770393185354070544979862832648008879968997765478073957198574666352320519969021792699992232473609002145050988152762448729342914608116124685004523366218011505950175655518092986558859651893778312356152978214539713124328348099248981983833772909578130924361930615514766135724802157143234713876331006018151149189233984312684692856772786792126699384875184220734307233781278847216367856386573024032603104847559501108743791386825147986526550006330606350476478389149814247194391652686003989556908946787827170667875102503425394235838921049818144584064999254625985250683924997292764071870086519806751185437611521212657553021723194705882884894501360919470742102495923931075878116847713115401035525547832971871123769402942810595341067453961618086434664838703352756488804995569629923880668232669851694745166426199307636767762568828077465858661516995215764742730335408007726571216552278371317794262790914649644257004667550705745291560220986755801748467418368993039500042759489082334921243299463052909184823478550180144536073882915137861308351590049016932788905902341666430861963580155178464175831786233970335750374904976521196515894569211916118191701531086203233467000555270729425905615824771493991497479405281307316781637948377408387242334733159890985963836696423401607592315943561652849687797731564186718133865735072500415167038411462239011083549499681614112012735509140720252604055012140544097898434567845137056733614808749559146414209669836495907212819525536378273240797943855932233922845089747583073395284127314349055338112260579445584842178189122005259163666310279575219426734053507644170338513510372982648716696236206444197477843673065001893628999363661336544459287005553160346820655190459735855498238907361900920785896983295874046697394947331009719889716651635680594557838590007244119565547156544026932618297033016469677878189366209331579296934062627681080833946267138142599505318335860589255963254163080199731166703808245150729710010262641768499451278679274004767056752738619328600539818956638352648565741091217606004991894130979182866895658918029516201377659796992940412518599497278221586183784166491999447901707279850436131417550069377093679631318189616018474884186821046849880792167426027388416051864714813117883970305924037809615192392444332255805673184745858692054608952011618708931572411455550735419339499185318048878451351059127519842217445599858131854983970216810312390938154555908838875063279238785446498752632009829164500202869310215630749211699902676413764459183743845548472643129128842985539925762792211253078201704432362066250139361353971499139747863587273868408729212149949905475828445656792523447658788812719634999404890116705894558005048759763662755459481657326776550323112065613810818944994752035617251684391193532621210376498271571172811009608475107813938969243545863640698892653022348911050912986391425137442464186069748238919656699665467428441897204294821840151596945949579796837939538147310874203488151186330781078562355343764594066866230042467888838556308528697645256244275819594693675902031267354299411285619498555554556437211421716374106961304706325790419014350461776085867132190693226121220155145152418769653197562311974084147762047435773920733277271482847195160912736940123313538371876880025266583810728042827207909894914216676781864468147817103100145777000145873079125381865067591085793450058243618448910707003948853691085561452962594181936877362187846657001631990603021888341834097197670072899419656930612273930311036194022147347019384548754905141770662486731068958934661443638099910586868146972658536627038144010380906271912160244202272766487413259238655316506089538875041179517970977937104807350160710757377162017239208568695006272490580282305203378042177768765713186054288836285193641603493548556945513988904356213450570667905277816544114549797343312544617097793837269823348845942325868140342268535192227235601579958020831688538163167886723778650767572736760432900102362673009600540816146064816588923205998657311011992250829038124596235710750686336925343416575172520661526189839799377655590862717199999802060906878714209075950408242838575596686060998024243883542453562438416303893411725742989613996160971971697318047235014320956371439978172433883065303020440903679998873171244348505300482309410924262272551206714897830412631669584461237166056121336964441094907083805125819401467428230365874064958267744051148200263654001211138722077511656844407605441429762790726494731511869926939164401941792656844433440718126134398880047336801653817853867974238705311975493907351095238180755431973775341314486196023329274361463300623186702662048122802604951522834636991110541289004745127842032309202620310344209486358931410671499830994503609957468760425511192975265818592697654092716701160567663469398170716636012301350950552935612982696526719523679559049785169104818876644774375983063111237649621469472348553564897509863896665246935410562148408751405258108308165706351044150331289850016392066677236251915451661676726035604836830650219882863737353505345645030107988257389731857211862309672616077107347294166859305286667509643908033875142141514976566753721714676072306756724107597098583798031886246402665243079594568411274565698396815786801613965114495750154482986029693455071262557176735169589922066434250455663349722567299295438021343685687672538530331510970034814323771448720041198136894965697002677890975089786044135932916858795501380491636011240530334701738873283552670846200798273365652884725970809417697598166739745128502405968158257226321836505682272973221200873751806985964104398093592670626799255169793829075105210340931047014692681769799411780960252797276715904373694441554597524767711571033202143303552023509225304749203783383391519125473343812843856548336215071195906733036456837892542014038675231147678871252629161541119894520206638583253076646532271799420813266950679387616456789294238970966923466106565932883298115894190375107702656134022885259985299292694023623839954716585490550527569927621867274042833230705154990244545842271738346180290931385254064638365581473032129917510128909004969541691785867253736171335654004353412205838972303115423481955534532793169545171944435035872885461539318369751340056407922389145420017452491987013409978734059569193514062902739490840306513080413137809782854464974881370419951393672456725828955586081568307232779664946811257319286914172971967573948544747174540680315344918802605729799282526155368064169885850140398945224861167797788335457105595695817512247190784570470865831658326374426547780923976242707040333302715817956402926896971036576840209662661336501071605679165098917545304719989533731685561684257050266296604440681686494269511928694549245811089266669822278307990475186616618546967227001633518621768082108476177832875039545190398317965350282741861229537188896639696883332530133803501014471365634823826077426106959351194134501775859287093298697407426778903636485589636945129559215174887081024566680595180562686701008783123165004661440976810633940928250286970195151573473388181505797276932156368157505790417951832239793755506772826641149143170043730066930688899480906548708417563110760844667031454999309347592723669642124905160235897304405653435147998081796145580271783538677178328301858944906463496949309020353060963725661268909652336217724201813290309497014911263657872180793674491283218263582527956494326824785551442565835618938723909631013178391113992410584639393646527331918122548562442664823976085167931530667080863163422835738861040359586696488800075444485261164927512540779275618510558328386968398451048060463491109409676526184472651023956502846595081875984272844940781442448222361967900597653003220556947015064235291679165139969481621773005873558862742015034069999543380219561426338553803240861236523429549430248997200204336504382773155394201983529615225258835231987811540039003599262846361916137747243110776504409957770456943138905577341064758015215191981068854872454895795860347182606489203805075765319223717030164393833582034235092645571444107774892025969758889307064745520092331269225038687007523123526039906269334381066994537904959342038538540437091499903373730037619569277054269315705643062194997450288086312367221698674347749977839858517408022994973980387208253790087271928650697919246299015078083146712592572357868098678988441691342271496866125353817970816636084878593340468632507802386798783609051661708272922258853101822014327300467959208463419942078505874235012688527057917712768571643901256817527767485442147899075202961833277312759611954741753114927021188553588794801536922511445896223399401291940030997374997791428816425248038019255688061403322465265289062668551574294805633477134568950115847089963807263761876251330444604627919290644417283612064942737115645518587492833777675584146068235017950331104252175689402253339711563266703344790837738885110469728485928756961188954243036585185584341902491889744847697902731834089348987771211513106317236919037716619982486830649551962034607658951874536708562895273846670241816711204505472365164375983184062231574545628319672864088883236056331036411210729021355808440778285201043442723228545175895808282135870430387756009562425746994965743942469917357376178740734468376445106705649363148681373996588095285248631113786259186578260554683924924235565248153849857575435413229871409570795802220196122146608114443166970479677101053247609488421804989310067753267393939067326147473779820821830519093394964712567069080545264101647260531674175317175634886447712352027710230921553473847506451019889538216856519606254155134255620895727010992483667525407683619480931569048186672947742104392459483938388649170192979731393090720541859288525774742044284361523057076510542037984099942748544074965744602103651595515087279873599586191629473960597747703825083484596369746726938562489719265266635779201676588610758289127217799580273056178589680001225668224095001729382025948121624682238469839150159993111364243183911296991927606446793614007521257722415576299061461544387433926804007923220141859950153035139488796515725920548891479063960560452923063037374636500957361330080968862467409279579584947740439441406295696844826303592078325666355893340335775399676302735424631493845720612452304829380557801750667598991422403829035171906497489741794912801712243052682543212556629271890528774026258500218769670321049313223327767090698214180131474191841420537345347773475202245567627328731905567692983236060297854805460202345995406377425269994637751414182050535648690330864018086717918172415039515371843127590006395945450019835480109989206807217600199560646042464545359962202018724352758508413058582481100799850020434968015336451034234694810720249209035978457707797899226948461922075592423391688779303916572009849078233484671624375963540849629524286822128900707136401215563004530047237730085241667710234133313920154084122503298655271514789810800200749820795604327503987061185961101111817804848799453268115289524576185212998791225676360585547151591349984616759871275167495650103162491498875933714461680678162063104066324422637147711584172615201083062005699082593900089583062522586969777530091392113594322925009429174745924775083429944363943465397411200886399764836588114853966123544009650241948422310691719921987803529700417524690320530283608774371834683625283638252464984734911685655756187146418953452389787703088567190029739436361320309116057363033424666113004843691145655829092974514341418945277639092987297707378516831427340556522059325226347832518250553474322042515868507242439548894761174601680009021189464284318253997801469185034006119895550114308624640806530045460759085982416907708572983197259316659473515127493262164454481860697857676824846101567919234611797020157282412913104768214634113389577325732673998990721365272119215412115251574518795178279549500451525075928501731636290782645135716772563132582733845479055451333116127457243141850633920630918472727143190729789412158082352772853428878873614903354992430710224764974960041525178977964120650092108374885752521850361442464277126245957738833986584720984619555102230436759688585078074251061529692026220628339498007409770888733543969600464734373143622037966403362192225315492591448299333361943204647060150319952601512558022798955496928152724763718670785496027096943869090745691212514932522228989223351443918021165116130624047977807851387031579042707225058344524650516648037243685098530586079365897182723205864925823191006476143089285808398185506247327219448165498141886260568221756309220139281060034288771678054748844116409894710161006766631739445225368249465982490691630630146482069184329316748151083980506869028336346628020550013052044447455737271586467907767408364182427878860930163105530711547393187977383805274937755132732302431758181394230462509123890354154539498131698641755505036466603964787106547075175451773631073330089317797982021604165232133049288011557338377728170385355414839863867003381035215790965463780738522738938136610096813823920538238715026737031048954105277940722550990627375522198617804971838059759106968157957288375471335427473817984237289290900753444454670528793152572348100700916749002317006472642929724670260419427270829305745289156850352128558533471928131094250948017746096237701791252168172060386792261690052602587815273748628337072648819187699597247469722006745656875545287962091111691142572111547254759458302700603416155051851316248645898851002812785178784169398051099296582150936619677133851031606458422477549539261309618239854880896184189576674669738903673544635683372545687657363837275161866413934652552528008651681268273180762586682738179938086031297679472508114942597535895338337851401196802644460040780350484911235283451629548659544067701673860199094713443224858254901293828268836024583110539383543305647408472721722906974568350590114938035276860074290629807420995385402022024153842137686679090900226418990356437497340066010025545979015321873927476688530277416148489357273670800812665326392052683059931109694426461651915469831662350796482955574289519191062464147093883443837080005682660692532397839952289160728045820777171267184815936948514587808783794696696950356792696203195592509816753885723657817345792378780869347206802557422571576891247004784836016411581216516212175008105915042479016914263835256982806636596287302365390682501170240109913403387153930360834380728921145671738584779013330794747534841929064815020780367916762246791056037660508143256627825522330596194937250893275909844476794935759671352189296388694731128365599237008458579315811172389073186627390792271843102074005103972726356019933403882958373695076465047194930349629343262263863427929515450725117479756929099303845963646429927501705153337795141412878400932806033852201556172150850752337557276667900805129305022228889806112897404258953269526686004092853925621795482530094896744190279028561323131509141377615304909681438908145133274954163172945058394408510723647908781512473304231926292129623050902818736706645096956325898772145295566885648216539909009440952320561871113445105876452008819288885261909396569741730335710447562289274293707831779681835331944445738784260517609897965024827950710850651447321094238373574102535041432208631697352779394997617264996822023022506610913577047857338389466074641073931228779803215929608979679927501378462946998470469296831959654286908342750072791507012643216667503314295472393175874181999452622737367129815006938617657563545687015362445909235360477142271438870634881146356649203252353773218228209587059553466315760891096942155022318245247040181170908896549485075125130543138862411410297199289822847104255027026171966644470054318314351018421217208092582608304213924600972118971977872388422881734682821513963773720142650693452435758297329555832622496980366228993955407561614206567202293600057524834929665944016316526559872045283345325501051344495036884091406135799407363350383505854999124326307954387846436645830966997104467994973135184653560644464652374664913123294323079999835948456223343194345644556530705756992861574751497531754642132243449301614317210226308524105991997242540523741766350379325701697206776149119287023538546749954921537776296123284248118283440947704539345581204323150869959408724298286252363672385844300700448159599408620879952544218358725876545950872802863056911496687376554672335260626431785230709892546719108005384952646129862022503210548849837812831401717719582106960703280770720737796890207377234108641065585989469595473105676758810948238785262443160222980906043741051618038752795590425725533175713412467032800453507409918772157822943723719947851303641851633041819869423170033005636404074486946684533490747663142099769548332576722351817274471654660998575796066945173538674611498272152078867891150237846717211285985691469518338194761737022239629945868381672811473967470197318823638395569282137609699208596696711829535553698837361661367048216053137224590269813311683218574742625318773805225351342188138083015775920642468188852622654427604940245370780058222963380441997959115511383087352930571630228010385357059562207448279061147984684518978908072781969475356310551469159973610209637667565364826252625287632004653861856844029628481895299455605866870492968861102149753759008663979016694314685809161229457888028034189927493474200606389731672071313005047618082424868408795979372406931395431033719047116584832958835301412668169206944031604988127418244269361071344306484866932558987928820894829474919595874731288147021472580738795499293158491160624066470315756109394134038035665283972731765461763914015015996267382838779268945089402988064667871125258797048923126791248509039122744822771731566560916694487073910282117753505947161803340452671909964136710694334358131921547593540399178476333495398587722189487820582414200397928480435376352711824486687836553888713888921121387420988936265690667163946402352081995816189217341147100657636867370594026909355620361994891789959211877029165837397350243344594955437985742836015449341425264727975223543223065574220706921038735497625303944363970722149334814225695420409841460321274881771416677902585993189428966525578094371841578707178668349241515848722305759283715927445522212252527106269077219696791983042468412933589913569094985572501407347264428358080873320772343675202547617695070133318588084476414986365621040865226109745692086638920613225335440091244571602964132478220399110268389954012029967952017534047243366412771513504318774215155881598356892961864806540011549810921552654247719392671660062017043876979294789891493965473384905166247965361008269491460461624644670100044442506246984768060939793954359938449293251092722829897570383174129135621295619384907710862879802504015431669015559463400678947508338226728049308941081567912309244514014466182037358894918498911064714476805696253335588590571968068791522033916948969810918242411688906339798257983508854842397485896067225916686962836955398883775698299177641450281436233276978297203264259743946866358266321331883697749659167848208463007656976140808619788640261149584653455475709054067499375598127290564749915724682107691450946518405383706921913317409156111890417633066988585300058875977288749567432842605433141777139908935173522141277152808510869951817665409019471981337555313359755390188971892586981442271359502444751252267707910237242574028334171619205226690683590180346744675472475351655387701848145316062500599771850425489363185354809055759166341337891787444610645865505445292190918518198129810340237758029319525368087036594027252806245261850284995254027255153242456642855776554678097342675320638810290174071201138218594571388324555642328513087601301941480614743002305881617522378617915989945537855999469423528118743230896129446999786093512818102257721460427492475182943395278137224080722025621015755459024827006751980155386863134367998487289464680197195749220021546259643249610543131428515715691252249736729927570069988493795337268831934849886120491652098945523865697368968165661308433709139684409097536286451468555060041912055995825649722619621654850103496484461543942924266021288121322325103329301723858487004904631104898543149550799161363481496865508651633841072417453325744240873464420887387415385315241274577355554564388474328132704005090163204244254778693834766472288844691311655872899095799971186549882423046239369069783130427303230270544372987942933461742322261179927857442794234925477504800895090553862705480271022777017801492901708644664701368966030087703268513920399293132346592532103626247425949709175564381971605519124860271860031973066112704565289765819194471266970155385696679710369419528248186528513999085506425575937628324228213578943088948887019357786329639056864894370001506865732821552299040687676471126728308136605899291051753039153971744793408002879263694409768457169707745563420191511055558966143221407468180575745534508245549160469674968994308000096212401685123479597599776824407599406400488186743723472197343107252925825062706655427841320967721877976344753022648619136571953943886800634771702119854101216403280218033609605798951962866235849565388585932451911729530774901462167807262922303657703891059539940322846691499825419924917280054565786354358812042571505631027841584364603176134786141289837388659434665805330539574263245129489808992887881455032361167715067679101560688517473062679934336975291026785346764766302645957658849237557743311586271057929627232719173091475571152082849454847634241787660258750216515844608603655591052838503560373279093430941210030533041092040998592720087729600347981750586411495976274681684059331911141453069864043911170712054626849599700752094201289612509231680148500998296012143417395221322740777911579745477637273389852524115586651977862275878755205779719422313237819321380368311859498905968434186844702274655388579417395972951804741630692609113553177657512325564430909944745023531383498539771750955459729915084133338061522624482599319066623380735229886168384355534092352138938828744725840359835927470485704891211231209384459177480847274904895684716056208841543011366444616035284663073137517014343694377252105500330285875167274766168088276144068523097353294679108825741084328990339797723164420812311630529085109917747828285361926442803368658715996368715803585732707458194161950464608202707924591160859239475535420286528024511887436839021812521383162943692939831101679843845031302851934696144224781947234265824233680840966802945510081498830714939393621009905517477368204799182255470437279288938831105552825824696447102900805830599270744554253192367210850954445169612221798466540943242274986652126812478386406007734304510822875817100177008844446997590389693349745854306251954579681727049862806143856422490513649974571139156447339151397136901324491674485487342728999197006810903604085237750730590234613256245339630012261269262069267557023530286725925606000826776755665723312528714767393869327107064849192397961826034229964928861838153462681293552121317247430611400806653611277918372085759560231368889869569153514666052897618834303592111923381476510046160764339310769076445880362936434606438091982020680427257374350863785092111613136847879356650916370569914002102745385158258316993442355891511924040605136994535789025031586757808423537794669588739463909226802625233402800188976147828025275734243015271777410491687827841339848938844130332611109455930931560123548442998866332124836573864048175710599931323807107267778855359937032148309493132630832271998498647229753092431773444615414992232416696730821437603970511845879256351618643279744770327303308080946810758767189424560798014709345324624754747152977561811771675439352869050178058198705688152912056170260793451947953213688958340087632924948402118646733862523740107203583705653982599712336189237912629520779852690642269861291722758914502678434916317312795859451979776916288527279422657547357303385831826881691371707715661257713410588521912961916484316013892544282718542595468442417105427766831724449883889568047842504543208512395014153954825234746395259426246758596799005696618705198078154391173932919964419451145693237707290074366379902824431013354961787978115705469655768240337787891675837398347968736615133659707208680809879921677597207462044764464849743930511489670486033695390563916324013323999942321803342762343817126843654853068819531852174166667058981292557721913574676292246150573560946606651580579066024371889365022802988859766001531384184739269429975078862928251173460761605198646005486562829337877789626913535488860469438185664882746698986170100617524903812322519418729457697900266774960091213555384683821742238159285969825788875610527575553465316070631937111690170091708867840584526023050360747645340623780316066161490135247984286824049885610523861584468925730511236399114186525384889874205092189208692765770074713761890207652745133436407236058936055890316741580573158996755700456691577940716186019611017618529600029715784205537435112138827754930225356860787931875102758425539387183788284112223212542528271358757690735377682336501578154552680178322858087804556907983151954965998625082999339008931154795414086576059072591356105115522297044819285733123948862553916557479322530505648152671592210372887573651989430629684283109674660687840449828867741155819110551815795971616471452274877671224704632572598935000697664409689074574540673369585262424808545864106023895971933781600210940687001993662240047038740548907622952823581049764327176633703020275618047846367860926226598809425044020729559338787389972085103827873310260498515191373441864149439792979846896979560166753904079226483458290535940206812882474125560425013774896184625803467683200589634472809627764813458092864585543376913665311642289094111005944723492825364012382958906323409112741435393304735972454700229537031619727461218232873452130517225534698520476147155728333957076532617862530030012475651686584194395132582574654304965460653436597549493572077724677031411834014253271884541596428773575095920126811462200544890467461704932967005771767373398656158691281448689530696766006712763966541164664283638381608637426742891182156598308599759021049816926717954751698788183859123224957014390418135992634687190487832948634995800363871952618187594691420383584716124567945260521997482316004843141588702121171389911535788289969578975017532656727140811833507235723333954976392342635992372276294424135172559413357210345736352084672847329253186334014932451616177436049982452983376909494925173385152358849671633549119154727700901512732290550375216638266137134158324671135039774331527386684766116180877446970750319602254887726581264760802917254058110734778063320593859585825994256790819876711977018732837279977388260670935594511642772529490206585038178865846202887721268495177623046806390338695716566907662865096160045764798026374862100782156888487421222494764543915772582432757101740639229498078589357658339610299572432432871669196889504439394892880358877501700913719970677899402652560350387639347280782653618891108618212663414284949515188638207052722947049761550376198803867798007417536757845662237491916459011328547922303361404933130514209225422013372795412698924307322592621246037044130398696434399438849892150880704791170954680660317670145358049681519131319338630282158932086114551150264413454318452513664040366328298347417793930955970490467128345648371945032537394131862534306293965279494265627857354111735909413372669970726244890478570580144253172321451862296136900746144915943663953353417330530107018971730768431590007998057355678712043550682090626483192438731772840433107098114640077863551051660173367283822885256659495918789379433643496795966326460333728371669253066525444472200131422167435514565393937901221385023291865365631683865370739576425648836985373954103670555095546815625008436748151519263701336627088720741169096259095322437322124372588863744899289769754219064069694673806096774174705705649931104989215053534999611983663679593538706991157376107347817768327019234757837201531068909853152638067068600419356352011726602261403297474392017772877090703863783955181909696587023509419994013198597997306947493100144512438836311548219181647739556217552049713276737981468267555768980319208003686295539440829905121809618524921468244864659135292693392680068864809474617101081530584823294016314777685753699882858396676485934565354214666333903807178677549333886351311832453428759019368349302132771532951639997712371662868836433755721478456086361520280077919365754748072053696996019144942503813269810643241086551763860059672567750951526898502109778875833119297222566817745326758110820893784992886403716362880176940102314775207480753080899584688325516740228012910365293143777485110126177918123465476112574206959130202405441492216681774082527680567658799383274949883874750159653106844720424808139811827817631492987404802357745965520783356238162545900917207140617282814549696768274356379724253674412858176040144561193213965276012138402849660431107854560309641866045518268927996672332265482063452890106882908690374254153508472153323040523016747829270060335866687785695481803565290767672641801668821299483667890329243221102599886845706751630698200106843323099572232448397654213155520408473446395987775206882349021598414391009278562364672733287972566578594749765899247716985098063632999059860327590046453916437162527218675006065533601845010873620755350775003489561380605092350105719184610789656089345952665161433112128978955028358068183236038185427648304070768149618928901691821607773290642571741895740268715852227099657250385985000873841867980141919444100512756252164074238813306447115821247625215594409218159297423869197832105806764480437747269495635769692600725010499994938987432299141728153228559172395439603888622518309419428673973103194741636241385051015642986644939637677436408460966063503555541982034513202976323534224023275527276498503736388732900539334379142827296471168785109580001958045450021133573181766973257760511052499269682921864730969734484542251993223894513415866941227832136274795261485944476386699565814669060181542864160225746852334577375917884861474177317972289873586504020543313121652440368767975156868693814872045258410787458207203057956853541310474067712890975070391101130070427914263229366251370319724628787827908194493636253945361640004453899559715650685304436044656778791585664117414964414707141389478667000608183484667434020186570574190450504449184956285083510673283646410469310876527695843323375409747958094918045511443140952692120427397534802828983429419813406268256571059556285666493712202484734848812258055138725739031931357683676098183615644980552346153064309048033687736284872417435994936787908256151315388460121157164759615248333976872056312639095152097580562152950615814907155151512798341004589504738811509130582350997792543304811943656210250959798911680923883265836482578087093706026264695292948287378138896312793150404016623310288350259633493078210527809034161039316888204613865428607024772194817034026386118303711950297257408483073748643333115135077498033883665268695744336440498199267141689953300983560387269267221436452945940655451723537044393754610161875602215575030654186538335167045106515883728449588918481248044965171032915162308817511741381456554149015518703753942671701425619001982122033900808277194466469440458865676295453216487787241307099402675299835719059536317811491452022247889108467937663697424783297789888412198002475251708462110413790852689153609730515514274641008585488841912072590425605428550980385557217285241929853200155371252923025331971155742676589135327561817650167200396539436703308433011336747452240631978578016344061013708293021916285707037311542613314339331484606661936134976183798541220538598590151875231754829397123842119264392923522998610805691856795789099906754548436450847850559612511365706031314448912288470356314933103786789872921638525064113954202996974026258962536516491963579535980211208832025264977588744587945250159255851977760019566662499486427211734942230656667757365206749211940583431207172636174619855352922850949280130330118779663020981833459130226443311921775096613799952486660369691382066797934882031736220755474662577251641746650746646212784577703892948323406363795056634388871767249145065906788910566070043677246784084739400402405533467070166539578236725404737728219074417099540801763116823674874981580861374421449047502962976198827454070937589873810036013861859673351445699179426681587314222685185769130032574120650987000373129433983349798516163266409627730311904039123063208205507144945400921417051680925219026990596819068213904759957176607434200343256278010482622296886968842976807597565532055519035999747955891734378911801218064030339039050099937218065257650705926165328349399180643369500003715413079253184752374504927959014049252417611556601306182274745928895389499256029516570550485102605619426150106648220201217804123677262117440332747512872164880570289463992459927810731709244452443779931641998638831122095045603273101730763525613431769809462159280802639657056904212164829494234718344756536668973831141554038845332310360375169422777920756420438259751135943742405538258288387994846159007830672226597931102818787770341623389686883718153025725731749449791287175243405295535032996020730054123948590464231891345101309804302379636311441399888960869714220506402149878633481804726920100718246298042077675059509819185275859502561078014720245881401994041632637889547673105087838936590605817943777653650783835720444135930780544870948899736677285320438663232011608482340673380539610333825360905429130880688400891679081117153365861245307046616908304748581170047623804816369632918659437468003318677795857558506786123190517525486173814079199955284648873390770066839240123211900671539656501837982233122437485276770004643248422493732149125889184262526816512140774662543321989983874101768392110538438251976753374452600135124219339930260060218730127758449585699495587651061465110010526059805128453354940874695923473365778333435342652427700231333962939406950023321923467865460890498927035358038648143843906481614579037942934478748176960263501186188230059085520410949114126184455543570237525780151691939763700189693602213238124359376213367182751854069742769905690576929594816561245718553850347646406253107363613536684559931630885734768055500699309103946080677631472729425196645913140077861550654541450095857425413033523001241681430964926011474280474795676227115703612007330526085882010463018652419970952930273206133365795659571905284973569020788838099489812141365122015304578470761578658183603674497387360276537059273483795202826404189739029967322080645493651959027291088040754078335247141343935774497035431925151813142504148712562637982155034652561788929975277695754400965891002387209706505899566876122303160823422430693935613714218001393784504597732089361259813710268078644354404679261020983686040844173613981715744246325947706134913354174682267715422454720379482183298576880705776916602268936676114350127528170022497933623529056285603666388889300759305028451179676387706654191073795784105988074036253866184976891212348524489165496545847367516315740851088390962263207271673580388959197809240452675269471530505426706635018204243606768565641461771764221940663930200337283672534174891592448772896484880422675304996810037058277150272446284014459792513737770833393022507087872241315825338736121939436737504282436855626587064958712382583786022615013006073276063365835070433136655667240435629137099538326975527558994578645736815559536080873154760450891166043763159364575861300909123439608628197853824353192748231992297317385339771156277198552755833928316300282409767912150083375544983849550922323584873169345375198626717694253042460431605780519828958106980127883301904143384794195274592594414406955996224900203757167622033777735237090464994890705926803816325997818487922733466603509222185330349606319988096813977253869706530276968655493080780544436731259826121047460354014616715850526562773885224657152191743955453762176041668592643528088756821061711254182707362589104650363280207833798674156699338457042564827123347301956916290290605880396860818535917373480595104853220081412601110938616275948558860822345353639729766390220673334812410538392264053734856253420518225253621162210962410219900820339444760802612832073590126984571458888081822399704880388275018693944766679754557498516333205503484681863661245623165375504364071078955314883428049620035784760877726822262855539323728509334673758295759228859906746506864985880393552724478313343460755184916104918769626733999722014752428653769755253240003692638570046472850799289232175816302800568977606475871458076356904532486923575740568841591768223224518019121630156846579150148875534722055452210658187766116268016034735154448699435729200371214761138967536223817280326840841967280955884323591313298634516607454638092991671757777191305816295541311035372468775192754457151962519752728276521959768337379724001012578750975913018924868493743206529071995987811908194714237411701263528703327243527489328349960554088236505024046196422691824917838168830931784899657488895130558321506849755854596688283065580566569327041462329482029275808520131980289270929896748241759086537235851020044868790009862252062420504856858016037367330751026297648171579055986540629608468481679761358203832141776397134900067937477878911271695762136000145294473930986474253539427064256425497326839556929350697485969835296202922589007101702588834631945109558565916120146983777644148801503802788279026443369894005989925888257923584595762265867152088399751868429974628830292059912626379491706671977480008167094619653985874338759929953943676790341903230786779751441244441449456986822605424473303523187805294016626147796080663407709147064983050394307355487643105775387882122388112815253280035961324964321806642774624616339645617780738062627476361734000425304559823588505799041588000711614428104083042632469226996400030092202784050718513929624105876542677214292307460543112471936046442881147534920909410737348668172527944425956901601930514409457152938522833125544405711364699010887768037984830607195651761152769337616949627077292577518230411260827225159903333451454355614552312612753678320137424093314268564458526498223977520982075972846201844405533709504328800257902213625091954456240117303869669431465308982677108444353783761178255634023978247585966100409841910613604586847938165116504860828670409663799125878687312285695060290472897120077758566531414149271074180663043450425583658518546639696596178442618496539838498314630901900939501507714749357055899091983716847336740781906831557672225819198971451609561190074854839697932337473856001800225253500572852826247062853337067813579290764614710792173738423838643189599423860321631953972957636087688703447953388786502024367321595243777264887527580892797501176216045759625727247599894307992991117960106026716586970586526549921307438778881983423900173393567810360997063735080436274923091630752435299849826225407711302610486165780343931868579192145696765535055252885804215677823353679763565169213837671900894359951720427165872622206086392212326734113088816307263174954702133476126852469623592869566479733909132152623382768659149146156238340429443661231637388669084404989956164944728685399999929810296998303092225468234797548240848240731709241847035741798650678102208285156576176234174411290969897721924887896364237714977039139333349557411725226017508270875324664171089263276944595075264214966891554302260728981577419471694099432771709517136979721130489835167600146219223566040804347574213325758544352313648046491971789420011896504940388764069382381442910983666800774586598549685507467047947102620801451642670377724093663906313472576585022709379911316197756478276472985487415673216397219833600147693811621157528856406459704392804393208242174823492255824168944272316604610441130078530717519563123578518084326289666190133512757241254708068021065367695775908110440132152999646347443350684033805671367761556234124456581414194303394896902508144436335176291642374098299676126583718155178370930083551047939892810071020439790718231739043346393613149152028467913708415455624923694369473583482359936972027680612067666916739145336715283172367894827920531808622170683922425643392680952569322807271384711252426790113095633473922542101916331543542592268332109304149082835152483331079336736485238434346938586311300815352540095745962418896480251077670570496459450420249951747045788500017859308504567416678058354826341797683351920581722027593391290125542293788933915948274945899997028589815469315202839484045075584655031467809511130078714012946004224903313027096490284484076575980405927251401962546699361374641918458602393307328037401743542016398844770269010795447177325723504662354734452130208295975338083268517652092189677213108742577816380919815615071047014958106605061315225328091031747758548460066569232475094479578360354481861378494822009784697659059830997281068081666034802539171693717009295982094892646365349589721671805258626559217288383543162713436015662013330938077140289919375178590699924970609043571042973383953195194795165707887942446380533324724700490382601732709144908031541924916140345388521196239137905943608565115180378764718958107856282629955083633534672645213801652481933229885100194828324691759670319899556339715447845178464708158024782689440911584781711216721584035811256893260324789310682831950764635819676427592658793561582751768704303703755157554868757787071686696499725111635848621777924227888715303525670200583830472935700688496539905800803603926087359633773735606190033074569241572761850559035710791884008944008383933165666063226711953048507534288191322898760983306813454908093986448142941300798335160192211759902800069187934587510767237965768213159104462371336356881440136506135338485633836414988330325198457759613091128084860888013548837237486958216329998976575236602296542273408045123087948332374199588354167317248922024508251894403391965865991171004104200519012378784473812161923642580045418558199635849130861721745156929271708573956898228078987685353200177791011707579399402277697591348328081775703304526736288150695624266535264105849242106142356129651648470872503875057081176466461286847997119307870693688182142592073902182914825409629817358092918474597971733293089598594882857999738969323514257203019355614035914021719132595493474774930274159582316866656666156088707355634319169448319458088771354527210376090177821276400699843276999032808945525927014377146308673919733789661680306783998243322382965845005741181169878903454433906619331540933033660127143248780176854963568261548552117293267440458223423453965116044814045755185434099583368978628129987534501450647689838493730151108177730307382434046907565026578754094874479287633436730264528783176210414235699038861930903605727006502062497211444384346576746735900654931309010471635061361562297538808381109319310540339766506100524364326606791130707410004150284829959059631163736833187655583549972212393273208327601509224041582427498744736981982806165307604382060924384133419863591937436322607418479658276023092229967172283960319151062186421032354490262389854523693508003923504162615450754779173617872679438709760572537195228729544956168512837002164852336178402196012355388143449136679550393395938962419969475947390486275342772749591395828670208750564251341395302133680966202914090773311616844173535502449449417686493415254240423694741164098849927249405709880293934576799749586136157533440928552036487895285073853398336101207039834562767232021303215401514312298317611611021001839669877603459471654465615381627974032697879263882686210257036543665610190821073972027568282848441481703793475127910124207809263906363851546673706622368574940175032527644735402546338935380683343952820051323153988692389986203740979058838402113645593411096052151876282950659531730192426968179995745134867755410870499209461340313844447428780848693624134320175359176280832480261939149612895198135870221354100959478545990018572847342698576605179503677409633564596890696222065938459531647359041291800707339790247565218177345010376102007478686892425908917354497762256078920432152138186824118404891593775552660445445503933283876397177049887792976956951906197285413653333430306272062126842031470205549611845420765158608565159334476450264874661043910996567435994676543664325198153719448778051756471228179771091444569739870923372132951901857728398494217214097582733380795095412894478321186688472340319467095664096510669953852449292022309780719069349535661123795880037983585891975883464417715523960526037568908261775187930026778837652099588855931491496853627563233826304386615389719713872353900813007196262781421957672044641895393065154369154481149428930846923995166185218996284328003675984151541692608097220460678804885585976976543163371321615059926519317732159275144218060952790102752831088083296535301458224269297903289999733551205972408871014043834113652970277321408854588862272957177285355485977500892304319589679499945180013788786465294231432729999308450709719494861360361238833673236948723513624342294891158501453678387423198867478823834486620688876880742749737253020331926935600909139545605298024349305501054425061576472061018443448786232618563022454437936328487560255125370739488218699574871620983960450878849931140993092116612933057160614827718967100174357082993942680094915825788392795173386678379963640550235750126805515936802776464331139709794764391207442706747212517372829289590609298261600397866014180420262207595781768584282328875549960750803554330549150233685562188391594797197338759785548756808100571602446308857739770007461814671356780720503360678563404926655699558493129880616296612181522297906036021840479631757343084749143601203603552719579698393936098846944229559907187590383679013998968553868912561753439955712439149109615865055670149058931981794883239765694659326994489608065025490164771988737531888902273601090875575595160358339369353161777250073405858487543732515840119045503117698631660704639122278622019412001525539688058709165374621079644316355280986406375477289855066018349292667791814493285702161947045583637738535234737665598395759951541712047975216152412011079973214860460016349135090414060231598450049043914826338402547197949901582831092404052539902841055580229413802471738384219914781283168685323362601193077028621491975650687553690284069233057110545166291791553485077081425434130772639103826967972278996055579543724024299869928099941988991874230993552457285515865941496557333714280077197705902461195861113081931392389387556262344546690948753990851668321787967832588879465557577940540997264607900066476743106166815055514033078339088499233276928616548322404758215989323130540097818641021881592092202278507878324035981555600578118339496171256328519136670157298835762942340357922594930827121082408445166662365339544594786380050221011689879913936576600120182627554327686348348102410587219866747718788520563734279178619945827404275645389123424417479834605450531472033316291113358179587365506926026623755286299506893909167573710571133858312673789502922084351109511182187516257900593609107274596397849304922819885389142205051924282203446080366591345496829434202869267330810555051410744880908330941294138019572354110132552277459626094710205086582402248543221088395266618621643427824972503258365439221222544389443987464282971818786065637888253177561572345584723990353082348987185258765435365217016371201261270928003931575974298950301451152999774470272273181732476009686739473530542015625134237242025100736241827400023526376276044222377058039823789566756426137623424167764959076461234372809788218579612746674460389373380728438764707005880425608585729488568102979414167284451985716791217401175338052716446954668624331850710700595898586879746340519226098801324385695636684317874117051586372527464405586318108894046489695292229658449145073874391988240955242748910347893047006976215015989223742213824698615425017712340325456418243448202628372759304256934114679948047581525798342224747633695619098563012331511654365272404798376325799624839407630850089682650909124148593590535766792799974761458410247300421238781433379037544102438198555711611888646722546050583366211472806998867324520687073022416324420466999832096015339546778241072398435697817825264212645776625270485585675319298199220958722404627554080143506974496198915076644574594046829892614775930249047270015718779976720258490723360101757886098645369715438365368740506706609314948542055713413269279409415741219697529215032666857682287283461203969861466710262447858086876655467508292066203515079626984962333567743404949875913656734487200457561424763789632935164489977712635771629887813363155821593202252012526770665232869122115908159287827291692241590920629935967881738759800870002011703044758438927520791508919110914457750312162283035493692193020519578693227172496537042018745025738161272766947838600432478287168797851836021295977490415185162305180756608783007347484907474830864929754408067822227523685235278216723783017527629899959940524043616422033879320338880890777283954952915256623591478792870533725586518877044043563892989258769982655944353455462364716137631910047270122593588762139081211155106037503860332459130865813829363235348655305961140433657893203273173053248451880914886862471460900171884052253254825778559069155330155017650767956693924097410979294651836278314057858039136380870737890647751408899165463026845221615790353729478243977318971109703941497661801017105087642203197953278568999938873459590855467064240255896635762774697062923890695890947888243037349015874199634337780775396236213950407975130679548995343609545106674766748806944477739256428572372805202434365768372141161880658567341001432768544817045150850314747597321553490338899817585523210199987720757970864772862079940705982544193336044545209667674931906477643439243560149293756025368670243534974009768099401291665880400842803835993437281154084508128770721663542963213797214090783050788385094145275071542443644657506655216499766928327340819305669090343517668156432440071683080283963281290420359193719725218979229962384601582068081154943000457960717097204330009851888498154617209564887779728915089457132062712610798246396804850050309318901730025849596189810116578104197813436603609786770556557230049851265126226585263286181212125407166033114792849086393709175688009325910784964199605755001984867919650266578125900307167076231699377730981781193673003247582461445083281837619904324167533770677213326262838371789862206122115008244162687321210632196074340887153987563015089136651144879421451895268673139391083269998874403441310726470056311637527680546269206316181563717613777374709571891887978377514302518483341452911690365681598454424108280745602406391280100341934457014171655291052202854697607066732471873199341764826527330038232052937728685023148045504756175721689782046766806155706080389581590066225742820662538464086598577634533156330693189493139251877600164402379970833932340568123883110861403220915949691950182586578782878849160981107336472075832708165494473254719229954880429063800878185797093668984617439811805781477057640468893112285648928088479296395390632284684159073415388947136770693077157763564599524294625910308904867441188321899883251207663716970077747267745677706578844117102428421899165728613826979417675898910829216254172021076769603334176770683262978254976455185353289003501904833543580946290920302977976303911980018917512423259988429032530002044486970205284262607848732113256970221551276449747895222803488347662582671958359217220381124548072839079310470592688793675289190039621545652703526640954452288009580101403211446481829894363010735052520558276599187005146356998422373843593889864376674788308846961673247491523440925157397706513726593627123657940929267486472122927304841810652808346295078176324685379509609957680088033269460942586376116397245530821348424329962771417572313859500891750118912045848873830625472660285529317233992585834232732975126686287995070601028401882012251193339988710669235552831699153219317862081885655409251086945331547172575894590094144542592773667726005900993798650188446577693837077474761010732906611388087219617235714952538332446128556368610865647753070229913460616663722622335598999864923716716404352818204348319111539844119932602151269287467002330574892504362172837357263652463266371180099576788577505200480726597996072027834223702764945034239636903602493278684198585425578834408540130563339680262167758263358360938339597915435219045694258548109570449618325841993091755212850684992577306874059496628850110479146373226971826042468456100752557244893042819754972684894720704340009143253461825112412730049972256189517484651725085055824300675654912793176260508984029968697716731874567159028248476272806719886643221070231239752653725195707035827746800528033289340635051167818862955817730332563576802477309100683256941112794498801816483210520436687061463313654212002548859863777112958238311596017138740206344932902471404898484644459505063407124969619305504524699525822913422099781773324667186262502724958471847119186401460892998470061951221556240755696873190981784080914647867737261748879957756935232339978000164280492076728243755075021867238344754336253116256523976038426086905749010378828309594210117863343197528610260675556888589328768545865390298946019586051626604053614095557816582703127605804047117543562702413425005788831229488964935121414154098722504613329658305727026811924156830849477229439902245764678569259269309171301411859893967974935879741746489427348760200983490155889758524134876214287954273615138555797729393655240897388764721708654855722504658868606640166315956908325184867293535313134026641282484814041292804865218030203359932094438330748206791897604991904935568211512203900584316221931304777349071809323241829987538759195533585824589475952882086567888041687329258577356955188351367704038508767062639721858946000523027820110841552584550670947349096273588819996425819653600198496778196982611717408723418944969814558163596587169049434508971283057301689207146775763987785191893276801543042849574754767689235754994310835610470070214151926084187465835478467555972044569931605360612519243049151147901455891111412211426543411930417392679379342727547148706167450563552311782973623376249076959753251220413089826762983090450190196834599023482398969951765445165279661161836530099505525666910311309032459211639266824708919645963358545543373544034069336278478150541103725601501264833853161684976151317100668702242127561413653645279691749765630986978297751296667738301753800428370735985720848584038220101290878728652953232016179851625759717079782439961810871469823894575806916320790080035681897374023840803591003555762092003715879039975872888505232322565659070444188766609816092199305852315998018188413060272713559862784879895899354643355561473547302146401336449061753396319975875477459553125777045260782396471589758780812324292423027365702857851032270405733178862609633468633122535168770793599636348984120106002025077449198974242594202409040115667195409590367346065844122125622870588172795297233865249736723166863049455024014003740121824208128769711645903812471196005104083914499326630669297125948058799505667518084172188984777997618720718146517271235272468294443376142175904471956611042203761785586149903547681057908154698404758793721873823466921587295903351291605290729873225961056417633463856465528412809064756349906872931558080813391217317330722186261350226658211537054618813680259885323292317855177086580939934174297546156035934421034971136300936611639128689629055889890198826565950447273235652911313743875886853252916074332137344534117002571926760752327451544193633820710718655624535505976462644988511770226877205399409466057531419561462854488272092981926558003130947365015057145248993413510762348255893306820455219770234690231028628480964758660614623540257338226168775498428141461455410128822549306353876531979904406985248603387666437483651354551702119742970800491592809635959752711329928624503787426032183720119314524319229754109597848639419701978108003466779816916255673642484025377425062302122195764675261778446151078158505880907198843468290280313773489307241248737825444663630456327677581728888938922989040455709134790298203990108469287733134295938825494760788339447287350422799138346130615831176565049854574323387078924282008115801993293200282229654453380166275276445263096266322862939442965085579275017829410545411254998478546664867205311162357423471944030580713778745998456889467921856751258508863518237340032782272699850921522674579004668823606761714153034786411132888447681783123640508537596660702817426925319803689108563104175098744089534505035000367372579747284653815384274344588860745944205687245636667351271231747276691689292095586897315801731783960936701748862678873276857264555198855778419504911184865809160887140742641247685359140820734735155031680329358677000565499678796724295906066524257074326239646917671341255557508837840022886839033044322188448261568457173983188362890345904795961511706013704120564710032837253144401792370701141541753621053089493058981044511407520494809413672514706296730256471948964095581041603359416370648968749987551649762479998962617580432862923531110476718490059923297176082661115621604047576455570365385796392414188067772123816537911896899804250102896725171790564900597454965890893850732231583206877024505415199226362686418650636646383796731029431499318135584081927717885154515985157302636545144869322187270867650671720430527046317317823407421794272076940920329319548764359575934485459854255153411797333910335158956076031172291657772123034861445285252233564743487195327215518291717657720556712380804610963312729659495619088463380062559744575854340283952637238156799930437337141307434750562829630193385913622519360379360154085799665207219409840500908086421957383366708417425192465861633647829384419153472718264647041057391552307650093398530478678577227006826748131898660642816737056337475060280255396562809322509717630944710753024868618296862258962653671043616212053783864241260055082555320854232567615683423030680858456011958060856216993947079785880455881573177544892429447264720687560245906618135928915193850625606223775494388955609366133398238917869598899211760391365495357778572428866596998272821496108094728269632575488768442536880821579210349866612891081805583757261134625908794076942872261015634124495853374304757654598299408036899476077287236597969618922439940033349560428724371061268720435537411421557519862246237503887185467146375477613456911079019682909427256762018019386732219422223193836303052421127025122069116216396467925074162609809654820809957434160402201901932597370204749051349306773237978953057453827507586720035660906864669236785296232280988499365272508034133078192707640877140524280133606190786390707723074457644048967659837150393218065109461603726301219372066975358237260082896561513107954555978844284826442928874594063516329862489522532605514748245640064604832715547961791421079332954604505559260436182664237618699709843327435247105019402119342213506689004450880878926700943389359092096364270642122547333320951139090488471700609729879626281184752278093267793892879027913622769434855874346205695460524090286297593500665864419850811850815425905364480037236998809741298697534119134927274483710971686856501873834419049233272021427637049170876548294209295430283627360046007070174184670066771132686598699125252842514787498246514300838253341824275265636728073268106285338293624414044310310741447587906743909535168750693328367030378574172629336987284247487348294864754660465702791053361048240261200885906039192121990689613519080278564068890131779519752980165824747584728910039330741823623061774849155382886043271271837167131600322828338154068534762446073854285545937898213866098321436285603400484089342201073420471577865199633887790621268642686425141155342484826355201984144565517455938607567310621805500671788729062952354685254054620474203478558055056840720852274894419758279468308791899905093923477524444666707051522765368940657362968990556188962143329826611790500069472996017581361375473348996028238652838201667066666597435872524540089976506163358751151376639269071834479091201016949338695305394170250135100203593066167643514790475987152557624531816687110882608060109087974346556177238915672549780445995353761816433408412399206543616148425817916170257090753866835108432269510247565695010216967204826600696276709299654639980026879831508078650444553600492640200127345730514932318502559674789752942953361937561062816114119863157095437049800745370764226358931784888122422595751057959409850096516630799636920236979889105396900308655617042095618132186819105609094542228149890649875832240785740067645235614082859663845401056476542656071141589495117977929095853229606498389682696949737982704083336257775611965979112589551012611543903653853227545190081117060996734556228761322945033050391653473541901255406279402368001999719867126695229658946152980428416774664784655356292239416565589124033996672091122922532797313250182925338733028495588445629140075173840105037928146084990851613788624117546287616886500988883605343531718099122604774183613374986211623437066594541954948543281856662923138036083330748850191595773090234229193356812134272539353159655496982765380305550005725747837726653652066855387206751634331830824853442098825354699884651405937714198538638164093210751203060576731847618730784109147960350176892128493596870914182223680094977310751104774823701393126743544110127961173250972368526652435468395280134791062938842297848534889964175845815875391861932739640591860738445448275076995818143465704602404399969628400701923019639787659149059455721467763987450903634177464483318159433342907885199826372009730812322671454220067448494214502080081089927235453783489980356849281578869013031190254177907755092029637734200355903720861811807556536179640282078524949454676892305922206515150758038108538670382971488969360452573239597982363962851682656072406282091742045297572097788313370425891208607102306437772484643396291972228655432263956073180359172623451079807968204390170239003250296533445158968925084998289591853687795924425830866988800337939396500936546343830013456499169072180470291316892273188878965184748956786604873512371156541458069097022988250919803100842266651438090213113725359238676275747891964855261615266806531716489253717946794686551921909920738492093780582826039081317182470988653255722978551005999181763867769599826788846627809671210969992552819423644528722839789930940470582560316562122436882967453284828710532552753252143616465285690573197734874132293852546184008054922833544482178294111624662419249794098985665906407418011824176582622589395271223548042314428735972379470521552698993939147192639094066824129329818117569003385993072694270856597560416546229314776301865597519504482005502706620204452729071009412947751378812762356779149747495385291461627524758530049559189306648067686262431234926484062109793126346554045622948743078941594981362328018440227484793577017941378401507738361822799502480523524506929151339311940199622249339479611895020333592757519088415667104205673596444319686485659019833923351675204421017874962737581724846499879470142577542837336799232114663143300527553186679510896228229879763267408494875835094267557397331403138220206906734507277219803510261386037139451341486003519916578241269966318332512246707796854020064782623421650059615967455582210619846182101373359550637403122414154034593937991438270845220092024363523336092324726908301133555555537481235495791637211927692886448704061683779648881170048691079476414243077396848672624762391884117524882304840545120035958012395823671639908023991412222522026091991468578402560223234095582949192800579527518245615068887479879603157332125225456917728904698168615282188447651167471366064349877127983162456392569443148492944321143592799686214620321433623752470753360507456524166047589342693276891154904344421688217731802087246129101822866418295244436654850102818450118679208614153372538856077819529312893889839419446202761610788657796820915419635637141255447346146363281183453683689028303376262043593687216651431565882860471389126048417080304483482081670408085544638512079341549831862609220504951418470594559890423380345232385067802190117883891343901968822522222889918979856134997548603809501284310916825147653704939665148470511924029971874353238993657803989036369630344339219546993315209614309456064714911050625756547042494768430772698480689783534948726499567333774161946384859652082726279076101071073094648140116062523873083977604932762829649875386577489705378505964455067952087150848368352041497169651967222112037708976364369781804323863007503638910236693696171947342537812469132948920164692779349099557292292735569448373707112511219699521073566816011276492981686755851281436677804269280273946206989061624388717965209380461750948999644009572891666557992538237829006292749296152572639687842759607216462434826776156617359133135308869111330463879230725066121073520982962434097139225076198973110578458366091167293643200735246994112699787005778036120425707545539902783184651956345559906898888168761858266359994649661263259034110633697126251803053508104761065026766384437083923192999449536599434969704597916595198457519431457447131997627644332760684263439151948748212547886659666534953026100201066502635877472622639040922048040616429877149301488701865955043160253583792926309105347969933387559631885356688275230625918807261599968174066856172825047227361871163577075530491005034202441938661098532393007133373089386152662144812611810386493866950789184400925387549735146381981565255364508070203178919430703811759540398461850063620985826361589904532271947341241780835977755515989511222784869948225538853720564225659351985272564820064065444599072038709411708226213589738171253856328140571665457162367140629074717893399707911498035988184778665809880148444210050514779729805399651956284897257621373299249300483720006965196195120979297885515360806123551799962232685434950451703529182513445988068781799726982457556952927522325216139379614996005973635648279106249936217214412327124363493047621781704648766530677988155514054058503683523084910276865379750860686980445186474698446949919628088338867854248096023661149926971971321850255899370834147952743386301269542974293851207568285678767798167133637792753165407089189780273259743003571551809178409038986975987802758865182389944216487258172070587507104612397101530228402629960457079683747836921224182679622843945212715978572669419506339995810924216380468940485815853199279513766003550501356279904779369112895176499990472602921192352499562990241198417997052508713992571096417829226213641419664634843122804005315143080824856292064865001275395239418002408894880227926375037331978368411873630250120220731175425697745121364908653319628280180221772350542304044251714941550587428970601577286182849641684019119353881189998063573912196699448470822389193966172087846855007339520973426806888593290365815455963193934903146472716723701351693372938545815501606379098600628556441894135910273199273980084858620596782888894029781616226602261873004727807483511395709534823708557904944923426059269995744270274033853779123864086051599416502891759177540349936266847414788004213271161533758593443115592929312188795301977964160579265565236315773375875742449374829386589929177219015588475217091854462887772460678973993427734486028557432491090601482620780368774128715240755685529339728440548521648511132509489516419991491035759741220947198373883670510733697604127509570961761897669894330225316336116864344799736305590449583497523286307940189855229639978287857180953628318918214595379476716887836458328731257356251708791301411511397780331751010507707221525085193267719109967943395400152717425521994380389454294448696538701384875132159158103759653486047353917185597633086316038110442205367868539909513572997357705727052369292696391043508590767992753546923349808584325936436967029733739607862190549673926813846001141021114947744009734723809606698302063838675626751762618264351510397955954763150314916641015312835959354070089523997100205705251859143892759277733124851120356842664703201552219839394060107213142197015189193062361203976228114824167446136465135463017702198311143551887136563395648626195859502718475900392831505859608405450603475172414475639865085107079824892666074886349908672489502495813311729795763791303956341782708464978286477332777081727963431900319860197629151027159591204022332149012776460381087727071635187455998812759737717099281438742258184249824927941409362281213178826450523176832807805381662660454287150902006988253672020428070683474537756467811854983728459024236158710022946244844388482702295926773156082541455305344039541095347879755223647555040301572357352976218456956005362239249573628928493987901478012133427430521609712862176595870347830185575304918316374209835103631712599796090281828432587729309657420706180899657858253253804725349310453016933081687034388555214752888255339288648266543828876540435153348531081887574869010217045349093132475634060109703322161147348448577153927570338384185786350136365380915417039014341203695013043296595494835006773919966427738198182413439345007557208152477621740949255433564872190859125649923351846337186892900531879117289928404249916636864146451302440533200892800878266622692505395824446602645229194205097705380686390640296131155252445355609085990158186721493083210605721785152573356461250932084991730865696933783135008848355029510795595106922246754108752549977827748444586493012441499031745031510999406389264811416098671372474739699802830956253428687633731005152785287619732644618299151243341107527056359244248065317715747256977065761469136117477708855009866550243043882909184779514790577048607025646282353303667712320576562875549357782910226828594167615888049130879649936790413957611507423440677702485373342979858760778072301696566556511961182782508376926117231271541393618095808085050901437443958872439805153063410595300841663018173764294823584688385395973362686627693122421137475105373650572498974068186564448296415321421851139694916857551646498590917267624245364250716125204583469809628643009438384010508626775206504124951822940165645397645583013659171027893381058604200954031108100304046834509207021986486279592850579904068623886473037981184105535315858928757806272015352451756388353057734571844976640428314423576926106162746298777382844868039758346846273380469373766588687944680184648498170364265134974985240068041511563652746198346978225549827052521758697868929247716881074303243960700389635838270330653479599049744081051630517105386384672462177887519046390753665036995328852923197872270997839948388566192145417780457142808410695111702978543180780358875174510787363549852122640835946164903112325150819164827959936379296664144683990630784711539861105135028481738845295290604770157333970751708402953790385087447788354800994542781749424148880188773820449410348708453167424123082725400213082502801052282266198812408336899576497239743978296495017658485391642338403594444192363216479454430220913684493825694546928212842104343554382602224858363971358434910813401150647176813430473857993945428481356400479168355572310521429729957439061524762242072065966080566149020337337839718292112418280484630966601374361508674757365265517814467866730066234894481336891645984459151772877257253391031659211054160860221915122818829747743482390990593233642311298238770897756913793222002151338671598676352909161960190755208365023464177026545805096970084102732253401341881396777528790927429436771173216382091074184724157185066810357285889239994735282225062963560003969924216701344479237195326579727800895788421898476356855657966973016552233987908933971252916322214746454381124764067365344993181529868414548261754248318493437636661556721591501233269504508985883740351818750612872537575691822874000960220735863859614589891070660985865995370311703516260006202241463539806159313787845972060260486492404933340883442055998027892537779856998706292906400721106358926701979753057675536757654688607798649532947902445485566267892985745274837465079411533585732434598934540032118725372157430608763402553701701930315562224964958218896812337253336031919983009941588731111777301381953733564820753133984382638960520565458877675384738572830369099161415658864607079655771683683821318651693030277548200714404389219044198987553774080420779682411020842056197953043475385406956186440655326694679240224919770392240843253650197065255899348350344711624483677706198009599657167331906024611074718293899339729473140403002891026037738511465882090138015183730380978740100747511150597821989910246390430957018212416239480404338992931783772310805961431464136780310050328234211257829203907771927674518158456148692612477884234573149747415244696425727493791022507786604371781652990369255379913591125854509417627003469567558334792083976674678212148076123397738240153300344574234847938360497180553144562768432445535303960029205921288998500545416604038826653370742358844350555895650943284201740838124059006723881881019551606702734850009557330649799896423644516516781504036432791776369009084226138311028144743151886182955876715933610069321385734617939768712920499188220997435315849771571997112179424418236550348105095640674156958661049738610220989933483523711965813468835566548284562453155025019320357905417357502515706720451999915430468559447259951895841610381811466145473708866095264615603026523747773536404526858775773090864023417343927024694833359189059359772115139023698461211265601065868091909243168486321754698990483066516242435492263332645170542983744900807105890861925849050566705170934208301930433834120705601919915856844872708790739440551181584391456381492905918668420795191062674570317807950255359470385033343974944438446637074331329433529623353847731343195826807857058372260247776126990697324680357271175589998380234162067570684371829985345895849213448832150460328687873281824969357289383260525821822222105077233982395890728603244397304021340589356984515487182008788637436813028302276979065646677128889142837139341021320291757028367994453703222824947456322251937774346139554837316420980248135879479180221935864155656864646598520700581667783190990146217740881928011461945328494268213129248309015895145356800561339221304782063981725361271645153624691111959897604336560887967907132199189270920734264999644838019822701948519083439935577308139587907844148928983306361438780381489837095560504360453074816170925146481184875766063388883975056269241551015347182675756368872574930545365128627886431066640469363237884314414741458309478944496668145396129093596428886073638520811071464563975839972769902939945369565525440578739660653682111620648102490191228329883865727420677235657238772267294120394449872215727834243325545184673293656363617931464134132754942140954937666675781344114633207054584012726134856455617501740782557724805316685653886367021446624524898282276503617615715483059310164654199641286025476887157114302901317966417998501865073822531801661876814870362572626024921984230368784486031829694057285428247915976339721320866707934557609189255695651312937773309812937939761756035569639294334724309382866883833004444075598930874274196021130721006867303868330364522709363220509131283002585301635662398879604353120334081381531074895020041122599203270263475662021717960129096972686626718966633096838883649776701036561584307519491946809939966267673048682537120094819335465781816901085230491125116369637612456267573966397637605110899386900336389985480537097169298498168272754725706517111169425048431430334475583253835309534765297356145212074906082912762075138392596410184251707938865362093926549993782770943042653839102478402228363350452773113612854384514990822160929094632885933344198096793637270143047151751174699562250455712187736167530194003047434466402434273683938220170075085982480328914256576078443591117020806001900171879677202639599872488635873310112362154488366514111593564211036119941637182343487526511886596064129796239709246070397823768538397850519146695976580129626602242192154309506498256140308929391397968124438484927370635816534954052272106642986748815057921584793389468077393938285944285264577911430878659591370987247988927049661351460109799614537912508812697083264627352855132629092919415220114856690359551135124794748697621559163594281881485273675449148966770452049699084439807886659107927588075775484162794232329771759454107477304362850922988276245237648033359757052359235850784869864289719886598899457182565889698296757032477557036530473524661976452171074926464666454599062525250394408864102740233914191829881442886654596052313114495985029619719378604913696162794669922039756216857106416601614992725449445243989061751844658226493749644100059923317843791111027698690290471504385836472627231352640799723491446584536783000817502896080177284520628349384610302238876778533115612104711597389737587371331194814821039596406161848209043779227359782914822579358992560053811442779129988365720427712977507845892781932860283718795410322384762717484280978606820746185507467754973543894656598517147543299645002403828256843593711622216431680135395799135118548722273976768907323460697333918278638152890976186937269582375271770605079610917426578255514798675554409601043039671805890887652704915800192434074048407029431830260994331361570703458989604995067736830826051211286825734395066082347024870498329314996355266719147848805218940191776083367592741580781841831912297036721666788370166677465083313003739086998296073318588053429073360744111915011108330096268217618706447944345014691978455360519096717741208777578558550576507746411512169656551162736291680032689032044112601186487164047529256114038375076293115656663493144918309338428778272885421509405534998629477610162985969915783532805152385424357889815617411646506487180051266778085455605088607409051443293700708235382793370147006628760397612624637394886093258379953382088562929935158188171933914347773028725722522278713980091178678785459354722748929344811609990800634470854054388685605122750518384776277358980544975034343522440444040928962788645289435858890130421338547577967357637960509737558358677138518503157978999462463577684407625792420536906986431257834370653925774015150201364587669305723843659157560345547781216690935925077838409416270556289481932742596903797868840370239446447031903616470713747717054154981227975712387539301231713170729942757679862975757999248788795788009184535116816095729641889340765227059858993303667689243328491854494160667527485745395721271313706771046963050876984348405724406466456457514860464628942107465711621328095461470118120853778903660472622960775202722799194467201810871646364166024953814388375018724348678184002987681336706007326021353708615814822995691484752746322844731402928011562996476777471655626625561963999607935440864537499221905049954092456240994725571838462906474902064722846822440437001274522273097549710932643418957721392402392410656094588298663270853583108435438172627411209680766332121356202015403482086757475213661704510243575900306514413543194080554386577382200232630487965106822370559075667027894528594948631907991270179537211563980562938510628582080748226133010862786317651668901257075638757715195486944279904146731174707825120549028076503736379056567854450856221285365501514593397129194037402247574408751361381705805909209521519628825161086202214845603555607783328442659314545027735035417748402268947378962505730571804133823117913195609577246951428231245129830733341665721451532075869944603043757721247588041743832600401819708806555482376691528993734411717213348663307303747259941439441917998010642360743294390754476364503019968609617695937319084334317854643314068213174997144047573520292938927310957019748299823111152067422796165657224688021755623808391911140609557437613210400025961429520148881744764565952736472488085984691815736950307097157800404441487037602261182003267962637695111233103981284399388667026869274994705201519062040651074205597739679028834376389467673289542265442540178303562531999025998965774072326211624342840879245779183017399479526492666428835326291309276822399383232374862830107588425015076590182901976394257254226922722279500172788254596922553628843101324150381586804842800949471813862064339057998204026366127155990426018201562317789188879623094799969779492063454209978614606703727544096564443776859999043840515205238593842919254671537401250268798274626656695900139138502320447137671968767259737120482019113164387509792326218152061051709383984830248750756223582546469926886269819340604535029422467880941239532243075307225294613104786815446854150446290173702649573335828295333714720673294434467670524172709973804367581624885169260032821213967218468520672463057921693233777710699738772248666087820554805199698172771123070015256944725159432129607559701138451312275028639825306747410602073251949019603908707494979370035280783143564005011836202269343589300172506818623512608398334416421664953777585170448015136262516287940825259397083167058824443662850310086657308286902835719698455068632043051410505123464618414631008324661855420636051206807920352017048780981440069087494214805564881375757714352790450658037092388676248498177918616660812128091962205632879096692118388166576643988246933508285069722301274860717679377106421107099254337017789485308615818190743691872364863594454502928969838774609805972881735788005091248123883550380951083965849954504755684285356388359613552487337392036033152425531760195758976257946393468457291516307627555255672369842026532268860151569733829935851890777689281103814012262781031433059584810098730791175612282106560765219348003284202634364333541720762177894584381802274745230972705699056566046394455296714893954365493868261713939863306345586368865821650216299735156892440961673195829968812525473520277943338729384073533727376481963344548210501450987335197723383854342650954608193984815969729926459740051256690524989874982755873612225342218277244744792333945912837942087184775689441738982108804720947450889656925224767092904145363600854067512141865519658658555071194005043923232241139757876337328614343308314794685622400093512627890290450365222983374391096077704533424537975241253066723932379865485788480955466449120785619862219809669614265725379058319411826484526972633707308791339150860788384594979108014613763995201624562067284389697100024990943796960587845099434376346236158979561567577954871713676082411245284959464176055365064229511038000791298521698817131678089013255152744429523313876683687231122522978110827741429653736588602271440817093514611471792793348493528622526090245396142976975041620497220455448889951413167124962643093209634522515331750625747164529531447912540616088287330837876332341664947557836180290903024474385535811012493863272129451282657638698811013244187658630940327706439770127245142559904282965874888481617553390500162904536276598900424896669686828805190452514708404679617050102979457308205521261114285127754503946606432509933102688401136733021304407214314102284961400967698089608989800024431312036872951892326643914623517214035677969984263052397667268570725395494857468275459046845452408951163700154769213921850701222928916421703962857251719991307804153842310861533397521447886089409022618898594271679943023105918422474958838203461621238731830043953565188008035863288658964316632552770112260040320370610750010647843028687950345548251692303562057396982532666944882465565231408805641753173636412348241574090982960914132514341667220964954150583487303662888457214700594364428249328137715733812623536072506059666799789507153871436402662571423902838757231920449891494931160774592711214634613035519613457830134479073354182802624664759152681505387321791930644691644460093222449785795051767352692714763754773457408300289489022548379799777551829946105690239264806075406401399467183509407186824267557529837110416020663392349484988291230326973900895315620711176697155024590157450561075924151229985959736140991237159396026852927058817750837096349870836817861769295393098964967294303633743703149546875684835311849393266494305167134418184842476136932864874403513536166310262819558966703709296524339626981110082507470904925965626385959157173420311833309608216196783976625333049439352020561241950989152083758905595927477242477038094148559121719527594186215676218237140186251791819915597092055129564760653037790308836938388349698378444283096462438693378378929489379932559622575487428005431220794160658699351448796654119582449295063618580325609356416735018597920564100512987487374131772811790585668152411706025021409230294426253702914170943862524853823494689119769355349168271257158167969676871528322792310168966642330272712817450309684752849290665216748996878018664975547679437770407582066948561879600815440787975043001136776963235926075191305225207138606608241453435525306366925109949275881509670322634128444384924549324198883707147054819694979530878923062430910874274056800879113688250147050092538661203833334602439420028392222206338550117343974273202779003078572061236142754309431626012828306167567552262368484356186163372269780173770024399025130006051896725494427247499296730629926514460278413628196174013920960647899305347491768250148919219944092275767797061342848725442033718739255602759936527494618802183537615551760132634565945208702211459610766043525817302869227286982643913222948864055767942073496518268088486079329847268503976098922257146786887162202035535130374314297971350480892705471913811961730769767909876948330050216208872154963412404879880565363089942269631411935539990529187607281281253988698262295082268975674563002614974079601107622102320395827813669806647812282354184749774596486976129150905692461076354606981782846959672794023093744500742953775695838364501702133660009284240039810813225437643628004115204380702200852690431235233120485606380665080046148399151577281682886267181697896320721329484175405462823233188269577697449048934993407316099727502094972131286964293025408845662232815484025135015112256216900868615794579921220607579799261324185730345652880230342673862587637924789178566580957760255399862705488119150311123496944188266313442569546765045671673748756564138285637094216344710692183362195080971880601511559544891539412755608592368031099847336792588161270168953224525532020730649102611226857266315785716734242544153026018163323972220855715058748635822310164810194362002065641499306579331742982386329847802328408909502467041064533640352208490606344011898866763901662017391214293874866555683031142551255905771460514827297480649207587052674360684933271754219644002515787502838276772046319719204671508965991622351686213566713832913153239742158247433297194265809387172694662873959530429821992796289268823632843460389609468534569104170454622067697853400476707472533286511384066372671980098775794605031444121157889383373394848114611255539534967147883414998680234532487936008646623634204365807813174425408005271125883873235217907098963282722866835372212694035576295332534069146857393977878113222512296189780036198946908315973808699575052119947160699514917523852819145431474904340431500741193965463520143220326435257975548448117642678722739675604913681701768955118300065183079922436210884675625535509386703399859398608400244744991345671771651133800211494788918864182732394533616492695979430496658570808823234674691839521998482578644214191875545276528034029636493778821635340592951133398618115839226880958716056912773015821541530564172754884420772701521797142212748292546874456168434852322143343119311156364074000489698350570809350684776136143931282661762015518950071132550574572453252023216758627081544198274618219230442269802596811415563764425789924378568941939738110564188417807581496106971157144887242232218249818012300136200825208107155919108665922056811428928008451746175758534829795695747076634939682206394790559242990872205721541206850622942504042061777038923993144322846182376521015521847377179647327809597919000949724397603627329608735090659783916054818953548150148685056638657986547241611104520156660464595939450959478437831094639217233584303854140337390702592157895637072860605374703847885655327694028160805414850258550678409081200829047643048876744551260995671231140425920324560442966347258295925197733426690202071539069879759228165104269289385063033657130603618168717301254104510225128181723992918122289761205309715146046978766715467451994734166109705866472681255580396275046766807653565648115913451300696993375519932605327578086975820505421043029303316955558131714603447188566271008389850438643021431361680562775554009184270588124318082874781465408910056830609577620048523771568270528397110470726767456192592677349169375238370130258793662062963982912407203372826755245978830623872294805696064359097282542037928635986144500914041745812232046832666763211086234631161405577834170036607462242861895667092943562216328296363411267677725921157749540638667569068603626970681713291511213834747223608403741883364769346988146675548575973565194565415388621573566664385794234823680472522270147134273987052506564819920256224367984424677412929864886575877703316646579745615956688073273689320707795966390975042548516591428812664799356905851261427413248131484177290868780125274830020980849869776070668967721060248280106257684180983967672255249612508620609018625600186032640175282015749583829871736485419398092526485131715208749010750993792705583208796224768046057578245777638952160298351123628048832837220283577763042954185620540252474433074697538988753013851054879284865127423780376972144251241509471918149963043550385147189660858487717812108820060929181084158894694222696828820583766332182339019921841450512271427407162521291862568056021638761361452072590350978930152013637736078748646552903089244553654989662656313361679454835708209110232841997229448616162145844691161526143569156249959939582144818766230786242068529142162154839984926154194669581422903072387450715884968244974248937553140739414115776575713818548213782130520988994941599493084235325106186443276595163320287954310285286155331909952011668674409518116731199862622439593921383499225576350848765782196186487851436638301191437640651489376177742675685021763969490366246322303095342944325080966924401827088434733049038501812826316199190076584715291073442532757975113594336285383314930479292127914643428526997107275119832356813287018634696756487700503404886673102508340733325411627480895876947994216082444198499973666730457415038427519141186780461514389348185312697482291001240221262145079765943371431415681869140231948792263340648082904001895184151411408263422066470825189794585343824183113928411642610219705768196557013097405127508599918152930827655160058420703718225972098515038196628030671659228596874523918439772090386373671220747854707262292817567174170909629932649710255410423946821923941689705376541071471552163766113270045495685145142482199791384590383253841833369381717080991386191300561535259070674779895759768895357869667164858749337219039493565789271950085057977452684426420372419665778260323834957621313737416178427434192778592721065513057522207001747337592718963586539048536249075637001991436958235804845927764102595314413801075614010128230427332005826322704063751908533998044132009706441572607093964957804505024952573641272279856541771286724178025443818583185162924924335701562365135296459321413078951145710769526692084255602601196891281970500126504025268845009515631180752045890390050839616740230705813818427723455218638187395433480366238333998030612472660047012978932397440489159176621336491261031062038321413332280923091581966905715381988110702903048569511340021959837964519138966516441372182713461521895282668131648254431116570387823040784439418922454464400653887220404899527076501041635488283145936188811094615949109631247883658208257355235195707673145339221332692542523052666287573382640552430655051329138310610474278458816593910819578934516983558568635817745202350977308984962675031490290800645072072589331096987128702983856515677418174139483511662098574702715182647629461577153608555860735183677291564583685964381630635133776103318798001889317958061780184247719499560798863644568957282757307209909130371692441814012722235779875855277241440967685135841838251649886980015417235075840902602446948951383235979848259461850829368062503884001648719548402131660068218148016924248567496763030586187212356166459245769785053964365901180624430723949366623100176064701778483591493941088179569042907689093798294163016183682223653095169389736100959413722174825280165311413363450501053002554829584084861477583435657107181112038509188819777401966248803834098618743374801488981704294509294123898859989502399709377401241104316078074362461242150043106609118418809294471588175590885808984092702729207633440267610446801365101155269625118253044670311862814505400433655504333076758663957658654285295325146099057015325924671561134065052145845804057608472662630081582201042685038708865163214187466306301148920789983951427175956557585455686729006333645757578014338901035533991168459054903588266962936365512553139660942841558750555669925104066266222503246071010481814641623086099786535948708504142734353674132173573366392045591668689722444288017391926268745842510226169011172408813365980271349142950190639817414819701016369108060900373924533612532090681258564980087180269665917119122820486105205443880150311746351183093099973785051525868849438511537322806009026460292828227309424860317804420445434972310080376707756826574559437848036028505830211076767279080168145830530206308312817899458396292749620696058637193337103728372432640009080629888019091245677367421199796727270348045662715038629553013415039680629654255868164890118395601832324461671371564756031621846335482267352512146311163279396234822214310362634916858641697560292424142116955091736539245439518069965369159129373668527838790400547979978045485981202916954749852694474943129327516096333140052048330401723484429006334858587811402328738093165654499290892872476631950893150633656444285434130213512428928490136352701799814266237073058681314457734336520784789945567918156678031249215594478991238199812729595413484900744629991922245152566210792998058304810255782123061971968077268242810121152198612914668622394760279165077039258844129789395913908008114300575406624369845545942526094793973393165716955194310423054935790118082726780022166807499236912740109998025181191532365756316057963118601143831000638868599433267809963256940682657534923412557611400371492176913637488410648445774049728565562109309571887602911984826806084517681258452968809600779698126971699029030159569074278232253077942879692807417406194241023305284910233848845051419950532614940373356927148427660226251764398508406263064401508540865797783168131899200087043837413902817315867850190658821746172980387866430561478089488377111038912534187190327473511243551240152287851880930272698016960552820665649723006279528945328030806292215930411867574978023773732675077647569571650546648088616372702572286165456381740458111319815888818718049651623897848218992116794990588950617654894554881591987274907561858180316750183474653449861679740056574242345009960168128887782427316069141071876121612748256701676751524138281630834311664406416740355692286033792489953746761050346472678550369873913119656657636908383646947708213436230651832748646168764906934276232252392646225430732291876784413709010249217225477459699329930316116480019244611981294701035143524836972602046214764507846590199637622141335626412181582523294475798107810081216931822253247393343530852939055418395639265558764360108593544571611176919311752155094431023043052585404939193101638491093213827109297925195445491533546613657498419682304141532549610550528316380553538819413693509485557555885754364119169881632189514299985144448961604345261303901174287104462335288514259441702344676224284156529015811634834783102424796743479337173082091007369218203482250670836573164378439860331793345391170577353383688494703452834184519744734435235099644665562251450974411856772602914826107374449372888005986796551609038378789139564497883225808805045877262792152564018412533539714812183927882747624383678361250396717489571623844666788648355771067416565988078173556005862630627816022798123118918591858539905800193570079633524760542371308886338503124251458297641404134861342027673537807788885959903289411393796860258901786507584936066503713351825436712338515829897625952312761309531684186136513202524053778936081294293152144316637143750553617447250940379014435964021533960843998220617817149034534583073389906234041354489366563505381258068026153441154678584325763453417008922569952066015060320481687797285374729713277314217079096562158244465975449922623387235046679465561460209431553087836405270853405250132400999567893271014461282632105372482469486248686538008549947684822185820112909834084903542929094486212771900755558914404159054600302745036522905893644988499762718480867199050234197928018022953041019631972405422095941295652757406466121467044259905285252052006793777386558370666152224834181771754106965394722587912128250720251096432500690697041060173060896550929087374427402367389037989831802629785837270349330139095753962011893082940360063145344442929962768860380977904950138751554727720922940226368859198365655567351383529065824821855817748344135203876737886012808472951077889910378304800338723193409166534372338851006029461195809320323091356089349052913067348086423319840192980095213547348669907088783697771480964447676501801096564434034791368149487102494371123870472176543132265081011907939328979824409322218943560752941883187745257473825053855642267865801472905419132278136521301304918976250736544067449229325086035659563979987038423177418664432805465509549700855528369982077312508971537728715504902546550178516575474456389533691407444032678588070574623565762391683093393414774316557399071269378098690533811259892677204116342451247341728332225352207076992333848181657167847408978912246737985691399758654642931337238019773835250278434006787093181497443738853244604931589460054931697336282746386083069950918003974896168633355255957032943126811888634623538187955539211544506339142586654277317370364756885107150771381739066434913374948055596421180751923137040647507691338281814176692863597026257810784558278422526947405817983110572112950533971775954241165770460177602363832011850107332951732977199925127225405217798889092943128567356484418422131721304706682612945536017097656094414559237189966633387056439502037850382660675045881707060947825821396597737402534851678040247813195081296776317496062399821853504914567632420761254617829586344816363130330241728769026512243792428369510658151619748314277629248280232528882771732059695663703972019284192868794880078217154546014991075115190052954558773436234404511554683167328096931134397339069149482842460541384287000820486661753290552399944340666098968511267576989302061841834961253626222625057542834734737151880894212189355197769529801325022759273477251705276528478172783431487007977273439605900119502993120889952043981804893235194784060238524132449853525972768307499894909970399158500737866500694879081670365580064147005866421210012422103218082230595363887738319673791678303170427232923823234416558222521328973575173981488773258338237309657541213354205513155974494349140418739638501084976785080046749037220483844800360258817787965827426906123751395664706860621084167891325381711488458734177921018109479838433984932174553284943343261928885996459525458641416561417049008231973055214151527239380033150292268977360412642607138327947515762279774225040890439893440283366389569724564941189553546695776614049515237880573531783275159504982056690563468306033676011768818556479046073123271671096529668954225774367894197476422907712372022936715768484521295373317666717714042729519161795811644808854091410030952013329359233969403401608290157588160058253635664774775997207852862439773133235943934409132063790029016477406572803793935894935585253712711672673578592789985519573067511499184283673211487328725032738943463478512885729305641875993187149488598918201841479668805498993767412898234396942982070483131339058083706221132962817488563442349170943202142378784502692883484258981756321046841519976617778991666179103424109386112514323888227876232168857743001569809520035287127570561255686301171075944496748445049440210954923707238192505618750278530184919859020142465958229737349420521477981710136496838586739414683981922758085451819355590683815306812923520986485105092265368410244679602799996894760792162556719370489368425640629026954193344374783005294768120307642797360994003407989567047504480025743271343025178084745983088043642699532358905048273275673755901245529546528503061242999740017324511724873187349642149983837107379997435718512884173591280463194832281563364803600771989027968496740376132330727927212738268805126711145618451270934436317681880444757963425172450342066909913681073316396280028759367559670733255044179660903504537926061926211224133346487607472479783548728112972220674243605624617032457501823283043151654472603165781527050766122555671205545332365937512326765518451327316126099680936491058577067216751178110601088922728978850647009801470376010349186745191455602029780063824559543413768334283698314740615359745530395966483564435899232367912769633995794936856213593337275372229838015627429943687794442268713899963104278036893866720547650617026220464981012731709320543797482413142771548714832336594666001439796141535596126885227437504447889348229475256723404141541300683185525813774178643098627442010398886203345762779926392817420740205675580941883368473685682899154262652554471647228783678496260844844897061076878616631361124681725333419674518648225995184730317806883955805426340753269148721775182808338484389928429666953239953614752400188411378068808274190913841511935980539454658669181170056202785912573345404914191827465740395737120337932921842732300098132252192135256914423540878458615370666347810599988113256573650579068551131034615707133539927656789725355685574582586431803617705684479120473849933893588660889875336394293962109171224186287726537317297238497819566755430131008015066417247220935503365976597988536487907351177798044608545770864353478307905426819003709432823022090993582228184815261843581614302423853187460046499562398347057749619398272418637231915787594160637077253386132989280924148312313629492409168801057362565129262837926534343252302859770114702546164834084346661777020468759983813197093552102679514986306207261193600975921467837780177130617465196309918442120423187550799036714840799942429016142446453863456077097306910743315561276555554137824811595673600365072990802161391417634433488796130791988558917895387140557010422854200483512519614017347411997333703968315165832063340711302341362964877927877642175050035926091851488546058085735850963004141130024941038086652058634921415016476499027134442759678801353648881167226605322988764480243876772994954935857387854279119873394567018751384853651447834019074962430085708543693263441926485921681496711262640128218625871786587651666072919148433777161231873403207196087503504851480217946061182384551689403590549154023104013792204311196334303187382292702733761647564658712703127237649676459461251237325996147461967506237318685463375379575041794490118847666943000354706348923801974642138662260211170763122639392187585291892826839628165346286880890638793850225280979055693860141797268489925346695779783047317022689012139644123334483026109288109660381665983068855810061966170693837782656787684386488629911730597262115521318130879193333848180323622939423563282498194271627214309327721843952056426358175904958963173692777785757534293372307879475895838748498469985178711851788072364795777360307628347575895008498743426899928937023883809582067162340520233638757633335755592423397362856881479008417274064287754407865293706918409994767576647188901741873200646946608417350734150788242910818249867236732996118526844880790491798300961988055956167518155760980450178252296494856072090127339861381550295207499776241509259826417218043271679167179196517889441909770692148249254221206205344687406532190255201474572713250591723907103876720266984906639405684469813053602395008920404359918106140721126025448559354426883806109584159756241382420641485984933766587472671611329261170908466791485703548989759203033054113827771374019615736262815523646161134558807727165497504905375991916147840168649603310609696056070849518059160406290242822617515335767145675108137355717937383762803988932549394496655696330229412414447408387228932395133250803098125970959947603150677087980184156126108477633334592083628422694914464372950908081001161036915947192517685646845970270247927687065421308646272316260261298567771019898099714089393727834528236136047118132188766462058424784145444438671497775062818783619488580950812419427600169381402594639596684224612886148019555282726545746473800122621872419336989345454980853428646770847982959068222735101777217850796233851251344012972569411664858055625203659538901095566897126158005751770350596515054259637511011007311735714383514236316651328668696008936117527754885152308334730888930977794788024304527638344973398768272795945675666631207727854774998571191283723027490962665609648076577036410075401739092738256523357645239931028550836825816600657346131422963812196729247228092213922996257095404015008687242665424564509878500725778009226019738486555128470511171147191653108315797032162622381976323611569561015161015308377360398397926923375800007961297028993629520827813402324349704474319170220513236637755892536072473437180938288862874923253905500444589295856858973137971565759427151300794761797740533728139347744249406916748628414598740188792970085347963894625857020591009510325040363938689421586400746077230486471188644571579130075312805383560909159469697347135477773666095689599033632356326711199333739726808857791390041911752074530604445263533278187847111907351865639640109271417516402439827968955286056864043711962944594723207099193172657027125500040407362282787396560814210613934675568817949183056817633298791717991667287992757007042445858454028331841045344922141628272912092282409098883339298104498718344091202578772795472382369393624436222229595482377662457506662356482589713409622974278511186521559331833416879945725643639008089510220631640304541882800138640864350545915217428435435588613411990337808131508343427422928112624242735580492912399164383032777673049569171545063036939518449399617124659143875048433271933829486808265932777781473141172231955415550153447817742615229026625352686301341743299958122549915133235105471264177968493772094682395899155207108971832506533489350934648644910143073091309039329038187762786469939791565904520320370451304842679872219550023794722003391490747791059096235071866448036276607990970353043518335252524352774009293834148787121359816942653381166261412445696947796446081269104915689400744714232950491003626078447635971167615630653585591833414344551456429972178072562611045671620090694512793082614894754265414855922747740822786302399252013007320867385955391801230831245089299075002923057686130971707492618128356924523887989872313316771407712018111781551693072623096813423983366224591699053584012023230053151819659548420396592959115119626784064532541032611307668716272151066209909272818557077452646091891466878399418579759783911424287239709108754631850045913130225670499398105417305521657405486508166471261937563934214589325598367380601918963225504696939985088558888295392725223703885315328401871699223999996146242570665945290758291848192334235323467355702059594173646186707460657789630955791318952093509508470916392448170464672379977454854726816759253238975883521619451038473232082209628202081092413613862797776979867315976484439233983523043426462147230506535447568042726034066867887412832782659143110468212431730370920609174959344604729014954606124547672079952151975505564315930303297941650955918282586803135795011804516267600334251496749587496622220840275200247039492736127514477720531134146423232055946107768532951666924733013146183297790182621264849692359511949149904019347084837593216429557449314610309672033716250990523951328624397824056807250690823269093208652168051264573950974428780470324442717225110170778406855313430896432318295302114953070681770422577658716716361477138113526229828042692779460922257887425650687242919918766213914583847367602148953470167072621443770211740072085531463917205643665356117702535302543504490962259195011542671998796927863822967786256702132183873003782964629918999653546102845582373033447618238954578137852456151457810533219996073298790376333266004095188827637977838241288547738865865044583409109999885419863400118983629269842646657279293778815491334969401550456666693366157786576996040766476987738848309478809012817451369621443956410184580582508225654631563549323962688175992969303438577432878811816489236616738742479786179928264262852825157356516046405840166967098879200191904291442698964470552006416609480085389913609100647388713492206368294420816937827323933846347384592334274856272343917788458070252052212270447897900287688029128094909866201296299326556612119741831518016254354295564460292877888973798514090177565413190419089251049261046417222999660766026345732975455396770620349997105683173774580069171696995663540797042855244891168627056013033079662558758274508415929311242086595361014134757752670283208083659314738097783040435108439300449273760429552338320014569527817017701251257404954244602999347680320636828412833354889390035722960408694861983504166062996644933426453563047839633562505869091840699631644973642562025909019614279998934158024495540294588005578598191408980506551847144566052598279104915259363188128581404573585694676906076518119429984450908922204083126652343091839385342989712760018500096106666539057721574510483435526587933597750902762796654105324497237368340594954490414985709969281263847761148309246067376064752236913426811117968151001204583048051244026374253129627917536971832275733731127650229922633323553170035358067365253317235888091183401578188714988194272818049871552021380827343796029983953615859755380419819533746060103690118244545817574995302921898950105094158819397176402949100290757692311864237088883846875118014557179846654907623187909108798700250557651335369330119182012992365100767710999421967473169562248038251640018833294093762148163879694195967994515215391341345933526275891516766457203825531344808711652008907678592975342226778633896947230904893199859557536980762012974536859836240215256673315046312539899988973372328611660921626776183058703567361226333754590061437753334030491781164867742921320692680544321134037558272340861783610573441672627607428075082390030226081278343445856809911523075399825366149601226331810190832714551956092926863212789857093796706553252875597742438182060735061629608455145004389386079215318311828829405768634130556855093906411141333255905422785188623483208868324534139384204081293039429287457664567364397434660003570106009732485066925418756959762702289381399059192747554213562786837975266239679739048392676844601030404555416216000220413423549995139626836143155986361894411502084835525807376888573383834829946396447269423734882156800358949387182020433845111630706774121462350434954603955642231493918649758235657842696293408087641149166242954346261016473860815363512607159755044717564243892817788994906773496290359149434783772637318064872879051014549733631770428530434434212247054095712615318870613432355264263633313941113286155115678090267441739364795453747288407493981901345170715421734146746284257514828581207536915314702931002025984282858304747300826468948093926609291800427291425004122849443403625876839791908203207068407814901647558502419485271147683057401493434857123929072498901304649453933799720062259832429088886785148254617233700810875546249941519869485838187777710325652994534976836027182950974823980171609387912880732868490295198779544895142339054327882295478777405226468763314120501674550156409294088192704086592059480032387289985039993494349527193755572697309344107723221437968020485523063964884147138479862425328167072910168025008537188729077976223597010917628535675898115265058156357021546924624830274777560740752120840258829751434120213389612407330090974876426615096345165144112139886373292851615575405479545517378443153576001778868047899986738108495998059578841392824730479944668878578173075260177436930205889502324801716652989067826393867644367097194028285248202241839548593469221178902964945917656054630732891476348017339046242425066121100981646663073874499497630735876833272383697255251749370181632784086846788098010252636373473348711625775066778919654613667890832742706427093456750934443399155920354640024379408507044035453362794873222533695131046244397445955128685749082942584995875277361634345516659870978156885118836549481146551849770220827933388266618461078937467982887720404660396782213084692478351939395928809720147685424995099746421877986915718586952978472958774908757969937438647856159710258940376473616514323265060962014175726328119904133220423874265501597568994268135280174980246149555511009610499216575648111610630599023387721217879185698484462847524076605139897448340613187316052827360678695990432494127718306572314411722447573781326630126340303015155363347540425596964790593612092315049435983483723324111419204905248502062996921497415714803734138056363180285622606130004539373701417862997932017234096957885899568223834636215688611921016656444645789497990395193538798024914538009553050015165575755635365222721997284640416745086166953115567541880461555406792655497814952867508407267536696785405052338443234261976011566970376839013146505553349134826836774442179453922799927487938875486846098873370199785950109536633479868090378048179267295670568445299775694830843062523868326230123964653681227427557840371011220403773425059085120819805698396089772466945597390160356431218173079190310837619512502942897548319913701869095328970289831772996753428233603404861663519421415839766109398773156974526868465310346491843480224101216001756874308490555972759078045788032648385068129666372338627660988065673531601876597547822839017855361226101224912412232677936140776065222311736394762498311023704425511521800758894874447662595432576498950865001514192357666404683850538503911946045981791584126080610227745028393193035342507069303735167619105101480328333964544403166046188196205694934397584104675113832305963228258847057982554213752789532630989376749501228954045222292362386929607142473391024523866136823537715464521170773805051840583163113048939734122809183686977684152748281419182630422725087986750208018133917482523629003720648608859399691965326909736074779294367986915241943813441124954744362315002451349965320732923668978476525137075875180822399836949396535568759588993909007939343790490513542165774925258039087196246187741090144635421310576332011726580907992917859888425332154333983469838930768754549967479807043957364937610482989100058893939159299070810602815559091559031252887169399971723978723772296501657991671068508126245753572126246232370197010230731073723120593061118129126774065265771913936670815677466736989723702571286717870956615622099071835925724691831052635132071698401925187828024756175216207905571834711069623906052213414185821937511624462142915722337137696341907953240528503321455732911608773574676903115971408507750750416871494717307108835143273873682144186893633544047118569866953330583905062904534107870728393076314504429942596484932620110974325120233554766893046195443979745204260138610132484246633999728624305515032784713384697010387756088914017861591440768250742968378275641388998604230996770009732560190507265442923565790312441828340482465909162044302353617574272881957018611599365419516942275611774681508412266493266843601425783425905305955578203883071802792502374904148663183069968182378096645379525841076111179835065879466437722951023246129833707563767599160905209478205201037275445712188334473324018978263690929491427408865170996731554473911239041892474747034608171129270168150189514727224493833510272755292957677154075200577881562816404742135395796721903702004072004066296622936613351633713151726338567848427640530329434666457958147270120524065962478480953102006432620401295924216363165856738022199103362417937870773063658577111460576232740430916142444319319316290137180020278334590048325618000732763102023344139369314371417688820935603819086093714599003794828863018190155843236509168909518837149442222912630646481414196609990118905705545906806993847924904318514363925207734852666572118991990232261838753050519577925407372143803975832210677314859187413770931054309240695145852660562924562272579444791193462871793838824552619812542889865984187471573684474641002337763323331840386462565624337284400347670510082889598850973271421262609144504795088009131062769551796820188336336290804474584996112003065853458064135980187982697938924868566914780008783986767109697552790518838492801950790256490878753040605036518282890576433082883109825671764004515887292232271715587828703208024732182753841244273221739838580790802252270005013704559376104831489007646550994990891257577900130640460614186157799440164319879324909442279865517080945894188697567549662155302283563097443735930046235798378993263383072706917413924797707346580050242826119144432301613051347747017344970155754507261472009608998626665859522807477614509201587764152551651349747725648737930080948266954381295512414103708406966841087122109515813601758615383773594373046826318359281293203405809185775249401104635634078888530637159419966691728648823763563729257970856943429808113213001279756404260030201457062717342826677510590928865016103487460067253314411188947708946068301026869934451228155908157208271095227372750392310837548736423487281347521794355314391604034489821217045881198109018279984307501883162307305630435178076991620994965659396533358337497878479791247105977125362966357972056971472819053982313972002386524492996953788819716858700887300482043301031347160515689981518308035213005446934416014359342842827073845766727296347987094474674480807164730545543933786595561786839671406422430178928952969922936112153677152901125232126104224723555651630030620469979939540331236565671922399750567805766148932035144010547313235665628949888608713927945459368447122161819290908990370569063556579288122499877649405669621325311724000559041130567658978747061110872597307936242061098839631580388513627622963341115530075263120175624687782712549993046706157905180898270844069099270897111500335561314659695210289477785159085252211084226303470897292466564471247645692014266447725749488834477226977125318225080749571131072681048940070548628705098874415722318047363681563168799344117253160158004942026728294460651642132197390066465090892817651330468482910435640769033755253292169529337630932562020874362276378946203066633289333189106414386062482195685688775215316903126571546992330941185072544470831558683109533907566173968685153884193594931817449324148927648019227117399435173849885707504174335785592337055871667105908713779072176038146806669625117291734888392759401198528264884273248300389891962918399959286917783999538211442436896023126317404358501927608454494984216122077698210919468597176136137823834592838419058609375668931293100118611159413902794695225655044075152427744913892892124574500641007714907731507541879041503850926615760328449214976438943210943687754565884927982244036527910933237437139805676674538211517355253321026186127450635956548980030931723899677849630310982881433586176672041568819751231694868426359706194889007367182166606920661995998658382779035275173435447896835252338476216217517019796026223778151585779019455872448673284885457170077796127211519089630379113120368227452553384206335298124166597506414290129377470093322856458736772644363964971867111360132916160872437328518505799572787444075603421085412999219437725035785684271050262594188161079214846453969983780906523934075649063205903610860383474343131256278438707988377047068297784056796126799739625449987652639555453831258038103075228383811771468340148617038593942518919605899967236573599525015640615833130843792145084913519675749147214821944052486384137018253432504930159759027592338140025608278882652038206931616681918160522567815382144893303840013947633621230660728275235838031985957046295768312991358876112248521325010622761965432836667220887327568514846321078509752842195283084567287462028080370148080931438354959936517806497614544783817223992698740607958257308089883484871473012755272040871202729404481986678472062050993550905408663945149640700648068240606832903428144171716349276876086074389980046631482015421175375388628394038720041071505630143493599120025744146208966221570187726324581891289045981692528300217032688732997581860262039757362544372754150491620760511232881588028324413675178988703514669604456681130033239010447328473898618490909524640595451230859539913028553758486286471889923279654319596447509649924746020670601828871673621718673438499772782505092269794450851672831804782938250729386956193509844010134762079511612585987629694598864207096925369268457085630676493709128640110898119601709165725690281570873280892751457716270989313908509628411751360746451488771103527684955644805423908445839077245401332696170442153081444998765942295071356440638547571844455517312748373021113794378889975583842236046909702548739034904775316105873361430756077759669753822584392066807489237227082556429368770664297123768471748859197896650179200852425410039157555650117526712560242223189273485366736768470333048830665374734884448337640848151144531518418874700007864795635467070494696021062109077612099532383747842108794413857196963674894223470990834165026939011172961761346137559313992354091418144982576782256204892100144051481171811231141439106509396125227419356033451296755841445214389930724055796422834508399731295840180079699288233639353019084022488855435338670252022452435315687400659929607641225375281759671793344743159887115644332130160976978105293334463367615346411644568118810076466236056224057457283167179630545111264745205893928936775778193777786822529708990468890377958011794339793245396769578876028826710139674820318124575203502213626446655647990357479996209653630519732481693329193570352309904697936908628450309629890836722802915508894528584387291701983128872560735904072132423103062832734001471294919297505779357179487585783974483332073088223168507803052404869659416520158549603078017800127050851779604196421529159121093749735330339865460690403497184161543415158658180384473844619092889204968540197502154300408099838310411668896562282399281577400918553562152495920015950600124726131672370258518253912917591466595108177661907159427452364915869910432657271835074176479015816013118397090357883938011686112149306830169450560890908397382371044226920972384435148067347178772077400532598970789138803968784648239690863945256681815434751659141021598639156193331455392280894096487329920231207078743360659473276945130142823005600802490822634798011733294665858607731485388085018352060744591033355386546882694331757983266335993404679416979911915926242404381950981918855087286912286511840815298764309399755586280650791597639277401866953797447441774472607633465493662853096895256246546907394180033862570696432778375447437236219995669846913987796653550907322944605497975761141846104437794294570797459953905698234557443114364525602190417474664554694398033310213948057757102101177497786657906077066901612009313573193814544286985221803813824281027798884613163976209141866773564358845330809563233307284379643072953941327258447272248249245729720924244708172816847549781672883807045678339720223184463442578095147250359432034151908094692096089779965165190259991617536750829507237699715227414572767899135762064033962869461199553549059992028797957302585228314308621511048640510171082282608056927189105423414708265638330951603111531738087659727156335879124471233915240867977271907056675020793909856143135122123131027347059565737510621411608005390814962579844328921736562032558938123285390872766556558538968509795917360405099270099105742269856519662221179266837565498527405037535668812966699305923979017330855413807437816083795687151444292452309105346224168609190419255923658824658057786112019739800646461889154895645620002081221005441303923686108301831735283288865584996611720182199807685016168740595271069459534295414712887208117809382850882596855928706445435229409206389137200679050343138572727187015618945259216751592538579020052293596344984135395736797628303395818352314162647268101228783102150370568191747686107644607140984371231504057131614082026736662575705551352751753293045904638430564533169268298391631241273980654028339823243353312778637234431488213171059212264974542107821082932091620814155445770474292624730525516871852279829238081710801560985066150067333532232501535514707964842627834111844142657947085964071930474863830022771364862349647883757820359901683832300503909543955034737833217527291857964893633580947080828998472143368000355350798937872297983954657697070126921707639359237841394274130755372816425936851461766989650849540133530728272823275858123914828918012813292817775504307371812129179622117878636096813845193745222517134604811704807104324798282104161519003723799158305069613354037878401899006608618708406718518856747517531830400657747908489112737924453819587437567899862700497552869858198644773194536720947670676598671984173110307076345488037896574630663250827212610189466886728281270157167956809707648911691882558813574247083310644820319108511787582252399028649961397045405106889385447595541849528720404295200510598978646190648833022759930495853285105203934559741465687286151005398268236869164120016834694460742324475857345458698459967675049506734431294357222289878775298240767554325468362711603853083947264510924479444155649358870716921330765199691352400526076166571595182331955499469673588168828982316653851519029727989899724748308150961649618160916499525089252316983748461238059671743473096093239145603699977659099482580485618319870282842773728144825161232110181245740592673630651016226873325275468515400197134901710458782181390840834050420625919087307398924315722370777211212224586341178538724128551309082781678794585780803644939056097120423889689886852977336141735584573775725484027156632639236916834096342330614322016153044226823569692449011908767869163035527739301801718757446389311253553632026372916318104488175016173224546998396545906932019302792777863395178604038588551446149225615437387350827458765659026735259591409769751904089482933815554447465360854250875636615561299356444719596084484901080889960428725224440078711375455414371480514266898726529851499609105466155536033992869442142162825087779467584107184154824992636492067679874319044966896293608885442091677366241570598207227912707290113927991977639043548060096355716503498708045792572872673938617816167078543911283789462607638586228591618826165200604741364922266797187939319835423393262335627887179507018434955701489405449265155915022132822046389383001545278108708754325410063658804268794514456419499465833307291040457915682180582642054805305271242917348331170584429174708322426336229986580381177715936455468434592645672665529875452784175816078490939864011468020566693017010021058196153917698281414122893522264365116063119112564839305480994488928505480048411408154600660886283738095631035259817222815801175656368601497840024085068572876719646648361195154114715749573314879133433503747736171475025622326264708653136716093890026701146750213572254458415142140554518162469170905379299704052071076241236002546329234422459979016842264294771519181175421506391826338668902841843575727521823858434892780615032086071456852659291340429691296893952427048825544629130474945979736886012402946990230202108150168283360576001604965254051437317111852372873498300060148966595318123061863957986134166802557444404479463247913801724031040154684103440397507535705935207025166723505302379091539239154226154064197923344820873852322845384589712099535212614508998963026077633424791771443326221698150953235004456948180186188670207951445694439764256285937386071864889612052108602607763118877515912013575147868368421358537866656158790101949833120733204192064778096284676623192219216610773854430168197903129496834313262679645974980129277148065834148944510382845903237475847429602501977633186716448606634737288026632088124660702307486947491670392980196891890910966085300937459867916022341562988100883901360362595429615844402567933895227456067441256956025457729501405871975194884306961441040306949700800635317743496357151509692238178825722486377583394162070782997899101902523651600246060492818294269396440879501800164584707338354615250317414959037729916572931270425048023377459109464524220110518689666213818802001779707010603771316471395058226403517956773173051464148018499129121752942076034102112129491066122629382424643568333486555167980366794539665220545587118691555671538213159211083561594565741694544951571862875257144579378601115357220731320684544849616933652630630558821264389770179580553617889493407757943763173831275210834184992308712323029624553925822228537940139894972636401829431457501747779979208568660675384905725464422228308577769816441477899312378659278925734010894905849542301858112254515325200576294000437099909886115832096019689871695327816525729294975930297271777951902913858442493263342375857920007503727392179218924957096678371486861325902536691737502076126820684757785597929112310855350544232460934224307801458004588524166297616040121327319308723520517023702558148908546744289490147721246192084781273986056085935615121861063034392991311859910451597829886865291731508548718899312600095224378193449178688028745400173711991446107646145665690789672369513529871776760039591485562123345443630288747226959051297743818065139596253583851107447775130364506624872668565324747688660385644160605230361720025098106980347745666520488169000823989804890377383362148992300753650348868480234096395273533220121195084194856025661073939574027846428473425083483792120451227975711520644282276904982077292412669073659240127623893157710644692453618234732538946281007335879345023309319492559630363605608094022604700631042530727516883771724431618060503982137376064916719109640273739708093003600238193757600007107223211871556038252903126784698779216336010289927976685983652938572752346553775672498329547800709845473391068608680350811535603450189962346663406573531990119371706611221634171826125936888623539393101217277381311847610989122785832105162774615899665226673397955655799939925290896904345770549200512934992601367342786091696681789755625857169456866218427126331375474756023093625597876949338214318156442592062312065415422660613213416504619887982072322185920632162810791277978663137458310426137786771097799408787979806736036927658550318939223919001722104430906103234869018442962668793740020131255058676380498952796908447771841508358111967134720284545323454693158641040885934660269114134107785400026469018269179431661702523009166655229824669776512520106316615930295422519872989163269826966221993134939447292128097085929837314683942268659798292777466073488460557168919288784442894426586398613293996198065357020361718071577426286154729784950134498972631924748283373060202495520642358553935379999791779065883264228026351550677853865746600945468334677362628835952030046403808186309395959706191083629253468174937306396171456176895111867718406522421290172066105460686065934853064794676140340143349582502005112022441757327522480282082045851584457174213381211127259000809934485503224799416858786330582278667419970727962347097302670328474907393785857655068406959047264505263234891590457384366611886346973183641961377113386194461139583770484631590941689970210371170801756991407147503337796278412375504041201255317777589652412750783118318428139997323466963874119450200293154453718955344445304833776381274913069557741098912855071317445892088752429835492374382502424137560933312156442019461238906335357380059756649798578591786329125268273781332996635112723155281340019854006697441444841174942402815260776183561917203778947208793040752250018062438452312627635364139490744744108146311914259679272027284997033506467192934974526742652956980973385554848850253598033673335857659896532107596413417519589735386445456662731315433082257821830477491583052226925655719067189503311235783182781069849069766415790436476754573719029144269116135677624306156528379695556636716147129686819743476168854728518083140522073039417729858957978172621574956379424302091509739651373942848156762640953054908240050448610205325972412483011280272059446220334332070999982782292558000212877070372005961669037631033105576734724487453972051497920993199034918268029574441883518498769278370049716543972660276004205968676656803412326800729793488041628294811688058048889032524559096078681554675156325350346742761410037729266459577366934695391185463212500799258397364484173517432941955688697548653348747048850315852845088740500062151610012625124359863111393316556726700927015486035473123120552277108231419192500525190951941180443110274419063233916780137734438246471990076194289576100170872520625812523121893703979488295468961744141962154748838615186556024310203219868772178603347785464905913815091763927362997287817231706954073130159942175618219807896068644933698817246316938183822540963161157016491899584422925713357927799287843887696331559186942631881498213691509445519065203920567889414951050877923508730443098755935060703555415898255309031370742341208365650888672904077871567581853431178303409313610053053133709087251073241484080594233024541851828120642245403763262300612422802421142526164151575641047748472257692129388139858885313951645730798604334996484744722654378049838499739431407066574686932148405006742985729909961588928263422915117789838247209653225545039633013070340577858565116599482801682944910893050188368261758769019863371766161596206161816705395043841779154796342024437166408352572076333024921506304134510956162883707258363686907308482250329752562438683292372727921084512052380923949202473242375549716636521854277077126765734585666483974999430553217822040498220886626514186182876078145607860499080983087241927769301974578320199375306177052880088664646048469537687334088745393234123912229169942011965306550076431645663893718689828170840178830138591295775589665634061156740397651344887941214953780354752547366641435969734790555810698807627124557901069208111437884093224479099989154187789722212218981254756395180054487509217047929581285316805111655746855453036224467995253264943349200988152349307457541343203872506232317209570003295264410307330566018505004674113126709538674930290928755689333981308089664128046882325134690814192995633158225544959821812084266285091475714498309574153157859539327052517913666135209790465630199463375661861016895781716078940451476565071553058720938774711343201632202028858813996373170818555886758081668120189346131600689272259373870575840210294489008723528122769988801276114417483984565134453813755289747676321868272421282227470270018332623860403049689165820285555779714698825268469659383942098025247392075749240294992926849002228656225767889049426177804102702013503682730722056717717605129835417466605261957466039793490536217395881693914681078493788684281901287801094730869976876974803693652149336761861157422988837820307143087414799084460209060867350214797729343053609259969232396569581802039408684189040934606507858051204604634201131269724485335516464209456766783917382661044538946646332181081839191246249663088290774715010432079204820669165610002931398679300781260203199310565707383384092654481030149283923356041068703124128852133400289342903081414043196242140106142653741554880406762175093954550589799679887992044894762052582373866621135096008889206191075822098376429007642020502319077023242495527170029365357248640400501855660255405582653358573430476189006819683965174966354040815960056371944975749872157922132881303530037229719895421826504116381472959090146206827868919761941338300683303788121966861061387906559019858044228357907410626553454667887149455392432467427264644339305807043752870952494940545233537343964766860018782384033675509708147932185950680374552514032840720416256299576225995402653456669975326450770905306055615910733758146939358583362697132606294697985641454391541423047963757059312231753391537449831253476069076802576227692659259845578543521675676665847883044523680277468880966845145399961529896693963813419224366763705868582620161315556083142796031263522552080868706649034423273776927739246141113800661187988102491136835171710269305988137311851584580521313472958804302556029551353494551084068443339886018881150812503846111557907933638536578763676167052017473425571591895905484390720110044110109359237067914238656784563598743039883115992400466310317193070534382805922461635693448684930195404092108112446246751946220035206701254774230619861295428400979060235214530332776044764315318390281746431871665152653654028873202416361552409953842803673229123705502487969343141256215634811306821747367258287197627181652954440545427514963116225394887021884333393962971741611702360330466611858336610132177752608696189103149687582059418670422734900281103205569500659541736555308479545121999307128304609290178347127573016311415711592009033537615256391740743617779582331685004250652454746346814111936425406393240394432973215635772192946381464197218388494631100507006782330058892520836804011330309784801042182907282338536934286646799746796839914276245676560945853076654423231879007638885266467185926844420587517114994561966965483645748136937130318502457792410826627206156107452271214634175565995200191264579711878635794557422321081277171947885966644913402018816455605266805845166186564727793642980281338047568409385179683803603542231866757519009128038263263419156327220427292191218332588818900727378630688887295565663677783331792817570708632238840823360120015320273995059331916880022490135642478123045462217387256077842260954247495868639036065329290444520575274334393928253993417666588921918407398508490013065162795191522070671969864377873260079625580241735166131584664617843576858770586456793020870888767550745518019445151582896928733025266092742239813310658747933449871977123477179450225278352876888856711318348234131598741832249957524075011660521743865120233347804395722680480130313508060382448385735151834688842506560017360714135269949890525478023826338116993024356223477453304203138847901402164169389298997289296076483560098218267320895338253599569135995045600569396315881010505158109346802748028113774304865836434297836545001015152020022962754617036096724138550879728237270646759151191540126180352332356750032655053315501683126260812957945385937504975246045345696228090963738110532850987521853763260106399839971822336989952741490870366982432133566729363218806247062733233981721026024240202967921351524016567247931372175729182821171481046999528788356168282812821040771483168953230981048980243470599237227786605440760351631183189137188753324574799552333903854075180328868728339396398858107090644631266110487494873564300110660319382374797576421178240365974464765539552995053530338880521208732316579440621126044493943697984383320653557579732120109335477394448947872926577224231247523826754677913055705000334636849238747023794557348222505611524657554550076128992977665873369526347648714565922308005135861844852471957370454619653360616223078720649194587208135125772793774946911035229526912147033678277268577381134911331403242493775678950285295000158213962541124499784820002730021543091157211902516381481556582815921317652013870938853483320599924817061394390798333236810340548116298963216081521365640047897857846643250818695655383501946431566230467083382287678822545220470986046766848908320128471038074123009914218706551833186174828623630231742146634420665340766386543760819475198570184467984239410344238099831007392706110855665826635983841473999675422725564233706688484712406140881592689769630147457847901690917540993905595510044984224209006715964373696291328233529495907638309055114844447069781189907047168158058174386806080778335916262086821809224736784632645073995441121509075243943983096432548437991375279463364174610562370309093407575216310444964341364889346544034904076451060185529166390491586714706161720597456755944678383660360991826665050649848656220795610010666707755296010399644182297672310790338511184547435900200139656424012785613345972562201367648527955724103619947237184971413062851718013938146594691049560551583630793035648400822763699322290154064197879781580742881421980206811114277365427948916504554463885618246803764427438859323444398108897296189476953785566073117856426286137027342703224745851882221616680950804771271176143771855949153949599995207579106659724491595491295644084616680176886654788737756423487789332892401488768495292131924123717246337564892844379427126244035657896353725557297193957672680205714596105214321712082554149211463557918351716238806584681623167319222305251714584753778917079712894151328164982562157042429990167702410613752571480581230234680804165850618562839256818077502443805626246618459136551090433811390171541735898164470391652600513897532565970756689033240626064260119620512113124608148081075582180915957527775055548132014107795188913068525225150173010428149396012491573845699771209524499476666877498044374204198174729549671409732190985407611544252453902673417506338818089863430616596287635607143801362109902627579413367437356022161684418244783937914928605052665978093160802152724445570241652082951343146083864331237084082418407317406140872587014603972243330045572854223197824999569898013556295478436070478243361176698153598563307548987197750703189106238277517330716851136395940451723893549793827941793886187299197364246336478523867929511498505941457135007699752434007224587599553054817173713241772154281651861462890953934401435268490738296726928038038271687406294879963003447225384061718602966980376153625747559581994704294038401816608131122623373130987403590408870851437888593082743759975514584849226272273430485105506113555011902668163306710911990984670954744981281979516790411997757445921632744456845563380561818283989335534122217252351170928632471971531455292055346255857592240768948869232915172070158627317687726352662617266493008654540985346141505225382869045029694214947207649725488677849511587164339690718942325290730267264441998485232408503904823587095785687796109279005258041437507206560436854366603661516600343547153890378960917760755009728172189688704550090421292071444289372432903664732520935412081443814851400645528155368393436918715750323702308620881761423332143636153668626143031329521159445884488817283860854550256069465257170135878085033133243098659729421264321623339416730414674212710231109321135488193054418606235450759705747185822925209360450239367102876909306064351316439242729743454120418961264587789531851010124039915166407047733273006189859442645823966742255177176152958070138117424778966250007340695009326173998940597700978354964600208356319820051678860255893092340390451472214720164147953258218905250334414141165841710216633018999530613552999727023618639282885865023727183777471771585973905110561929143116471366347755597626225985109767919076290538713340467205003243983846622754781054654841978044671951395001264090951968487225834308263907989646015273457479712052235301218869327659596939755260642882906984358625245534560441915261199568713420686003781428235610374314576062556770396979647376256565293253372995264347626919261705140301677976754440765882769075256709869971638797919279587305338421954367587384491879989184432664150675802696367753585561587287548719027492036338849035005713519177790894815264585201492854794422734087369163277994396160130078025072290640227928705293912803926620016397002143464673416709666728418479425639661515277432112959071373695614004612856171553682923431901543755522152274150866925363934963609260062861969056828313751718670669528310568078486800536806490637712748172419600871983762502820926308676656427986566933470007172347117467787085141825320527912721849045564280955138761644029761195503046548583528787899590350745258703624860116275790945689712940808131029044728331077040497942308475848296463534816559440944247174872668035279803680438772165678958805460341000238591828661905915160110502467349328882793807896618382847380182836559616882348057715063899576334527936463314867351598353563956743953877704746826168030386120896771509164019527568961598558920858480754942735130013351373279683191012067743158703395612033466709329852807932665634380828437400754303978144340733180868862884786470615694656370256538871074352459117976352044912003281615029251641630035644816444276721515730934948150207683376356864704289498821870602555803825759574502590798383415255224712115067636788071006969444947490080652863722482306695461373906608076840886174859962195476478533918410159706317627206569668049011115661894988324552602799715093778798343073726462888143994780241174243678302066539856784540730723996264641224397730063786277278571718854997921152442916020455940883593760485140188265640481048057010141906553647883612025524115362242335893624484004318025380463911404849680052429899711381014026647987534688799837770009664332481061015990514160295642840817298354872639867506855417871366543507097642737566467602031721970527299086691583100400814809498120440205503752158421827870872384981433804550943077014506900564385638437882946800943269022015450940520998939873322864307136944673002976877128407165130800820666289423948251204431669083671985129713562542456132717091614333597409820031357157639594118389545747542216286997538802630031519851062569884637053233342040748066222175899795406177997710418474409547503759813914979848476703166655778124635190273447354292784786521192049885297560280187613686026488738779329957899664070219119526815178932823337172005848073199307722380195005976179046908824351730983712685730466744874203787419498223578002018024312351734643813606489650202151843027010723718603364420388771642892567375061455963437389357826778021752783530739800124357443667489461654026027490324042131245201444464910540505600074816473730153786236886806717773622992946590575618847992272827875348207943419428821096027038284183921481726716121936183886976331450039667277057645124968520817292742654707376212620898899750475295081442731529586072054247024701824973456669144823038879452444473434510037613371879318279875586290321811749165209038723845746407158170571384928998888855136009357390409156595834992094220411996982290978952465591156604898149853486493763027733508187343839686374702855670147575563402545201887625472178205635409418671809179505363778043824513062598529465466235132916802619126794245594398138133238323338395267641535409636177008147408966236097689220785295837631665449633927430693980734985974931155514519887594219090222367700275036322135764735523519848952776562521080010810006626200648837869331198018017594975762964674948132615095009996656449913584913931010661143208494732975877049843257220188019610615925766105172080874942194553490453288746073497657825231360357114180683323621739814252535084168980318580468958880732739109202201821763110070403296903478743916315991120826319740187420045932048336147438948484662432047870239320782023251930363838923652860110927602102193120444583167543563887044152796887651338644932514845020150554318933711612499887591665967389268635688032834841072715246365829010895745736298643837486537877915435618007195538361484313968706262026168215583592810992254726739751566515598887780028068472721142897789050104365129305722154350760357202247706482226787625202121045127786305659477662940320332396630636400867616792979658398360005008946900971994571710363652623955785943719457962525304941177594090181584368855981000969345733284181563375352937681545849356438563824380233105066430675628798415244579003243327010593819778944440862762821824809971097233295507261724669929952874795887706253756893011959645276837421853641713787809672037241148619057849629094547996076995796528289235088854481904553650409043535851172217088058300047434177811394835216573183013295688910578392411831547761687203865238559240308715857886988563781410279156390010436993469090502260616757667354502128721116741521290019087533660874108231658048176437031046138887434676992932021959754207428298042015596553766044455411805915405491386883228185858583199337164677678502332229220712924080012563295539506224820280329624984789560980782489411702041980339577838488563945924093560797346591774573019619135095414087915492535544799646303532733746663414458555058481374387394699320301500085967731377028181688236247106185575235294023405839417166777762818275129563819232587872752480422580614890197709768749649184224586615579871333122350276748060636571326413757554393506078083113363470478426284689482386194685900600793223625703503762115822032570153405029538036779569874458940637119238467219470753575528216456893849219255934814426186777235951152982079149192993555683330684600675372099127274258782514798952534485014142608625935405836299976368264495637740510102350941918920784711716419404855884230304197550773905089072259023709785751374192597351023946397520558763120473468553338243021089500262945517342229161367076272331627932955157505113418296443060023900660157408294375448541101408332892907322940593443553788931436081244620040649273521862582198052307445122593417303566024446590403461329032735554208994024307355987571603493273636398108506934267714312450390217375076536626956010222063314446559751554770171679700618296265681894920063534179838173366217621367252311632943491225219600316515590934241317334765081741129288490097261575723493830123882251625489716578597162304413777814292343848251472042190230008265292975710014680729144600702567189790692114923366899526773580213057976673000199299064039704118927722214345422734877176407336142808953179684687887028986647891343020031191560809187288284820656358652383950841850597821927492013485389150898980747422034625123505833071438425426198484418718582864344810597809787059272987440661650111177013348582741967945472719146522616113712721293398160216030745522586237971983632244498175563900520580937611936440658774940843591241833196830774743034598909913859032540274543510838047198138267917185000842463585298106037242279268103178905678348073699854962126733887966340215967084953763964634465166815787553038970705731287284421751347699988981495675375469120065881234739021758663780868812424761856427568735532535481735324384807689205930345565583090557567199388991248550795015886328087306825139516932476700004231074635352342977735998063776761983525739401378087175646759601880422043912536988133994004107429510530455486001417639051648638697850259652573695205075493217017161899014174490309062294460388904774861392031307024611286214347480441471747225996190166717141950142845311818734999025273629708909363399458735840408064749043655890663115219542069330527488736351585038429875550929656103622597714924014286778213277123131141819588055914319238177879990371536694075026735602657545041323692404976771864947707387132552841230969551752900673956191207811860708921954222656270726230781647840649403530039965021774774179428365681598369235876860408422512828362595901921246839870100966094787284216788026159231023667526280225723214063478936616511193059946508943213948347060064827338249623261132634209329138550980559689670323281821278597345632918574098613005648122701133957878562719157821098800640069998160172771237901255128225192103739510058625101101291771772486922219169602915675260872288711099831168962382004826688073717731975321805299164238229534404435848751260002561859904034037130539389973849890467128915995260556649600248738620899125624570340721704338335576817364042953785731636376814715587589175516543456100447660820094632154387743756506674759112328150651297640358092322170181490197119931856344835728376521804487185695371416017376792931482809136659868728410394119957206792082501612226557386853198760435940107859493280801001892615676811974792262202224777750281334054287549702018765661416630101816125992533974144865012604600118564543452948087902386542882653848974094647369975762870767041444569442384836867034684254191557990712964337583758304712807245167736647622410965824097659800787315722390895659790685879529980855599946092139936416344511237540246171343058019455244805008725108647512308890624283661350905755992141899025375555270612804289008169641394716554685853573768851254986106266650396307567973967036642737631749489122688398209075671578712525570267107241514330991807736163216311274468957724989742500009643596956163807064136021235334214800774443312476151089140274783034946020484110538448319886789967405442811673116917433403008047539960521996779167640128446129686488963021699042195645357597575815409927757059545031772281665120146633752199823837200803195898105381973650558849622771127971712278459513185705315448870737216570618492265064587313516961523475899764884304263477426683009290917167355353557191015179792889951678995341809409510048452692197988323577841847969759256495103208582727326854574290803913040619908063166492022116665183753437245523103265599892955644345770910985260225473360360435930609045555500321297258101115354771587060208358916615108967849601752519143263745446561514944528457938983317065954123008484403913920932895449382598358388839724480844789008739067609216808740669218202645290745669631846383050281752860271847516459839743725482341888704877878813644456917673978759077234686784876971124370971728106299327211904440856667170487065864797943405997551485324302448926168157124770245867928102430319409089850537514989464283626945851016564025086007523868990165296967834661080335612915427338769427775941691227137931215045293236324454992511760557496363642001839509665602401723353767832250289114578588914084278744598897747383882204070593092760935855917465353884584843636632065911376170459157389507741746698313365934764997054508922231869822928986159499443809034203140167773227717016905716130796884646786467986067324358444771791861861023131974551579242577687421883336515339346279679205550622064691578283589477187947826809368225418504668495784907453212228457613174892335822510791751122290771896729861381465950577516774641650987844212183273416586804025167152856141458079855346309885549004436103699026794357083387467580821384762956743304339092300930789005183964353084094435219336974250390076459972616120409703242232071455331985038605223988522518233605618760613527804380239336294843556308498800660007149633194875347054502622558322938342706619298536151228632118451159983920636542086027338488950438495618004436679150375280645681020811137841140529267556030521991590618311623109283314504332296111668465683596857569293900941177113195274533777022855060008284727093245022019205211148921455933813326102612079253898237858601558377771439182165110728441925479114055293361515455780260915390733029461136131203268112929891983839517516221159997908159326991079148328927516591559295899939224330714379652864492765266204170553155187825848315722862654450072107185197742842837568405398526144792341631758513852290105896791795155816913881557247198939626172929667998960279896228726159325702998790842489359534829124147806949018345136999634917805498274154685040234800695733177138362908784189686876177537357807991445804794913760652394639969619332518096173650347500295652403956765810429172828884173499868270508173942109841478750382749436367200484086218247776712831424426607910397732167322168282109139787060837445822108142683082431643238939129318505776752315672317128173512753204069935761325016187324516705816332262219622387195244054582891197038304752101786685870872617366201161011660355484042024382899397091862124339876681407433995957205078842832913357757099302605716614877439019075007546989954478598267932617953210045011463662958558910043748579783897728063421869020967948381425237425962869514257919390892695813899304695705850547819323404195125194752670979825795825841550315499497199140235347266311684719514796278297209443156292144710872978146461725642791677542830214359684813901791594957851843165005037657748000818878045013974437777105292812121825843807340897573948378962140501863008846401711823598659280991043437306437875304661163789354376703341244177608952216332581459909894992435269294155993973299872363134898194350530363635536441614754150612011091229631522331514376523220174526781734010798067723677673582197289008604219916045272685509946925902860056043335577505860207746674250903547134099146585958314312886005609862106226784786145664579028942395444811016613162047653232862239155636601285801979423694680144699865649920268561204351683201144719660598531034141785308929066311621341112968303871475065155209656201145751574268931070739672844877053336759544896399920457759385303235904659489634440402938051560932340775258246883079915433505507638066648322068275841056742052380476623144137515836499184543492445544340923784444997546933147454817394507179896532359737877249051847522955433734995644673302329441339387774827367301740201165349857724452998046187025874954468993183432979770064541561176259305403036669827725954527980308806337244805443593582412728836230848251225011889823243315625052488868380650660071765572591950735427988687559674209339582191893511389803080320278302345842487565795722315747757586966732244197352275280098724347677533459616514808700947457650402207820186587808344190620386987999572918476681813723058097908831755465459161106209947597904862897980666515325500616643103229918197782502229939430042539854493541857104713674515582159220028794549419661811973600290232416455235859104841107837178837850333232177976726944590603383454942678699784144021065332826198703026675420595892544263384423031348645885270950374213146648257621067045265831758192074817892070725138618448581178868866151959746916947351244592823215244022556764456172528326919041171050197722346423194517569936300582737631645260432873364433380269437053857145307957054351480747922861914902752917362513331640489586175428918628085662982963834137628309382169746549178775133562494010844762184823211845796090705681507246161962206812769593658221285915832096453446196246155740216127692776355017741691342069524458696452720419555579005405906169833546215914584886049496344493820513457147047113983119743942145349592281413111969285407085983289469896916778648467621042596891625543365789206462030414697861196031084309479942023559224086348350163266341664124860149906608949459552944569899033569219816965237524319341004813134194735354298688455054623685138758675310852749181964735925878591015734191072793034753892448930907237411189333082769013577196521995178470138424311840401791031683198083254925412044607604639972861384828137813307692362676253049344247234155033736804593593698054390218799128063408983214174169772555184382299823675371881460245277360974839653320804469031229870119579591445042023544544382707923822379209348457225651474004266653128159278102659215806766972255659030498610093701588561865818300718507089703886270921881315767267480963020335716914813302655143335878038697413131133513807054135705237015797227317862447296715136436923605771653769055107917660945917866429012271035611953637579022822444381050488964943134499926617955084971236595977796849185014504360708468358792189554497146151203156753674381827800692956087196760340726468311356902657910272218820153947785991631143154497388171302121108085669636550096479116701689669096927886245671293066097379857475131436490059565814317444847766207927758713241799008986471168289881288508318233512230528902912819013758631339671362172073378442713449368666445720154268410935440283525084061331779878991051834467415944297056070823340501008451921287572723794297468737483886482924040132517536313477880333762203961323834527202257281549840907038934873139029011613252984594724338431093636523639130728400660235418716409019793472648333871727506631796022208924408123223767120997978572411078497850864978206469775801658651347655607072977382601538963911158651034817581426102162329039462998838915464763879544847319383026665100069760093902161058623045682007705640532079449277295989815715347069130948617308608216318181361719860027700562908434271624441345495430419061605685012707694296615369831947119719414197994944289956468430228043573319278947880310939980025716314325855744162258455562431129627072749942750835900224349760564712469656780587421659241531793784978284060640673199844859706405261445359929613242416100571083442332491581501868697754508435808042272526253233894265929843345774358804384953387362126537535285470981255400387448683810511166529500041221296955037775859670778748843269772601445043575317152588531445306573666678525033476123653653015799613954262615189366218452255423517640037012630835606321884346096394614541781881113946038405471575212573885955210912111356798861271792166734003015922461294935628608639260068777483580751477775538412627331411254083376495127913487491686376044047606519352273531522691426260703324968139952274346229429325398348803467922288515489384909710658428978763275884921525609375553060980982502376560417256150455054041409529155178922149366273359464694099228413706289594746416018027936112458533863893220891711415084517347776332681857171475405160753469872436866712475788023014207290305500951381605547227671875737822637319183488560053411139395780834419924040864419122342076927103268778237258895668894947416374974053052700210946536944553298106555600275682427645309323482990296765567442023263317097038816913104113296993118001167513985390797550078470207626669650558335361510893536080491005740549053345268537857880518255803324156223635863501717655177152851723508758822201847753855550804388018653142026935333955575609486024779372919574341728786852736103566952508466905301716725887918789773804806471769186764896590725950752832103661042775797974375882523507145301321379685974913103085366629818897476191958460463418772334355236551704718791089359458699755646858660027096660366963832838479824566888328263159771447364945784026763616812004797468073266789689795611839870238767652434073748454077156998732535145326786356798091543933095930674114921082340008553541791756108163347945449766831793575352875895831589771364467950653118252036400233406362707452979658512613153703058270513043069684490734005997937687582426237052248873759090171003649995993811754886245213267379568729722035523690761824391735834840387219202095792517282762015351105709832367217188366391879129220612269843426987495554773381530769700512716640427873570591392094695903473995292505601582464985866770681972849564726275438663277474424584310967733398567585832896907701946610731550765895789191113972719866868383307142705759826938481859547436904572072959310775190762268842684812677182153349501727020567008650745333421821345922160580042322953421747146369623312339994261484619262855571499551992747730490870437123249965085467713476450607273027794352260880987933974799275916438917355887394900466122120883882223762349576273972355297095575922303601984376300589700632231906808806771783483809773865920557005842610138603207267050621014991002575938043252453344574111171897940591547362461644528047318639916914595232347150276889859570584359878973124594534596599034744002269732586006707775801084627822486896938151693466699048334653191710674310056557746446930123486379104024282099841958895177973722969797786620518266423633255783617605441750403153539718993148005755499782585748921900836342411974153072219706320904256338646863646268906097138992408370442695432402995615137536818106933974951688608668655587966132565651929489346024281444201588468459730210323811282302959730723413384427691378820617958516179363458463352855486389815309177141772998860734759419758013844510772524377701062804477104544436722312040950608582239638856407032059314406916096640273412812775775263309402046974221764676221960753036307937659478364507885721800879639494876198454698281811284744636022220007452382687312710787453062856533490878080800931689500160540821532950017142424253239408607959545486340039218197754255607089507403295339563933534971340030706894147707778212469345745270981972160261305194521199785554772618282180096227883326226347171633768636051098599709997783314049759691045791650592444422297992746410776172933599097565224548557492259195567880426957899585425423390169664235909043860901110514915910117343433171948056027515469870850214882562013937075212085411552396080394231717756868213674545215751548105161660135887616004173591346905382552515724372218546959976225590787889984814384532434945883819158950909262169469695664284751677864303460041404763184332168496058164045459132152564379242953532228047199295474592657866314453813509020751435600055584381141031330527223353933981337774542855021384127720567423751595671853901349514464163925323903648433837096749841290488028567920231667238280454153268686927389051798829188629548693756223403849137626594836520266677365887396820333996202300012950744170576964984472526263274319627918700894670287463942505130710492517785233045524664755740139208269953842227364349145835588602977795198702997148746337755577200938457976598468075685309318218661158996864737992508220031617877508718959205639743934594747639148908081940672767617025924016316333802960103569801588717339612228945416067386383349884747467255866990593864580324984990000519690855477743368623698633679239653129539233036315099329568874488170051923089514227964566918316123521269912869799643982414375443650046925401066452625864134079073721448916596102203027712061027375656221245811954660264386728558766195278588414647004403519467900406773535438417958043654067989142167565131553918555897711870584840280528624239141984296075967554682791125580021310737786177023536517425152836539311719049844179835770871969538380070810215744816083583823077226240017825097167817730822816307980001155406159816744559622877625159109879711280603679723578346403342355914282215234810203752339828932605484223631200262966759366610599516627953170185067651131070408393676368276202547509734338605781100016943589964181278796713353468464065204776933139249237973547919565946353830647404707286364604221078265151588868097265028528336243346171887955811703441760377353507071719491438149617498294115981857736188467479784684801521554613479408002979194967669753947403845582121903980622025973225884048254157182180359139065610977217897222180685324636062662003633107219901944617001770357556582369342751517189322630703045418606467053619736832050245700249532554677415947756040414137846823337275406431612488136020837077115256383148592235167909670519382677488066813498364984130849774063019471712937733514618259258173371795528860372054546343740461429131908730402607139635070737601621652080007613459490575531711714027071920759961790388546564575615413913833946328572872621080456011338846315890207503475553863881813336135591486404234266507546256105427187477276117358988771509747163716192386377153855822371655595003756958783546287636480981982087484182246274804053071097489456021217715276882962265570806672060844579962135674525901712134293302653163788211132690266994302618094415036086416650548763821293111517089544883070840593373920983243570592960486954730645904798537616826175240862688712900970742996368564891597259066270780314017755964753434243852337673992261859683196978185067889680935318519144602443526788855321259769197555851783626994568954983385788800805227927350381022939362828338448496577354521022867398748701247260583142226765299156805230035871301548659383386330603672662289385769244182471292549807494272814981647407903097647794091713068748694492714902101860679759302704395755423475519004566889216325963511191162685023116865067045838745355194409522952894071188873084867839331559999772342300050777534943431156411470775625997289092373592005764924221299277188711370972509049751470154896784674114067854819378261956971413686824594702348640135244470239185250836905921759924161230536516344224116613135159718486757107678070563284850781999908335163743677579896574505978630671719819749381051499338953787934817094307246320687748988039926016758859733103149662936138735831890789759089470334067301337830622602919359805965853090350709864731160629000144608894885296561423526419039871861456703032318935674821994495088407962027143045521905589217847880069370854336040569718893938939154200350103229959482885684999178662224021576576881027614177205306660048487907884212854330070216620560979307554552072932697239140000823181848301703715790841969908592447124975321972456482859344281270790752327355068073686146544707817826991076684995317502983131003297569908257430590810184193725610878701130665404266567009301694794392944672455949928843663903607873523338123322175653637163386178750924463316235749899995604317144055471870307860554915827163934092754512893087316768770385671385162490431528664237895452601225202241248235369218238638989554526734827108582012562221151893454739352224319361121392585639490475874780503530553069166154736247341951240622314999458071116616852674294849175590336644379947334588338220788003438647343471127188830227510298899481924754705845566456652118127530500574758601707795425518646470088781569657876172049891247989186404419802176931086667800089222338193192847069790143962871075485299270173618511107361989457331210551384074048567046868086645530581239905821255281201354835626862413570348684876796381627308610039323685582434861305222914750883306514811585996515414148481485349699106146105089577140404476803913322046057315418340340151189152523454867400866080484606053688417795954855823078561168023719090612581747963644300732151071679807349590753566687519778730974185843150660605187903791725220766848169055409823940839442329288816320414022052691073835709970557683366301894080627809725095993610094188802560611882564151753103077213691936618772662475114722326102131445766851909307558614518623863214243482062490027974837424179520786484339920817355836527977579681895815408891270551087829906983921018226221542522502602373270665902508408572421780375680079452927363203489356882492835045206498021435472097514240837315684757582433170629426246809826537893084694113811377551207279590758517078136973117879177786730926397008205233277981401131109081368402857826277656298383468224915730454295298873899851904226693595670160811311009172705367832718819118533465696967731771389621842409024325358074694577045790643445105065109637770591066995484188550389009659317767965887686585856956629183762624908584857291485746233035404106030641793308591296949963423386721743033446233153932129560200970432666156894283575904009859375214342988646539039049241244497502353829705555126348244168574470819368653386497474955100679380128672430214819577996398717969921126548419573159064691684807443282811709368704449339081789917600792028878947613707872877920396736330716566213267098355261739591422610686475165858685307719300459859102291854963975082796874934091244258085912109235515948979226073664884034159178741985241328077742356906865125603437066823576764490374232469003700831676169975169325166425531011801595875745047813307934358868212250874026932085471059221307498226680863079116141246463474890598290581835354247857437799583307924538804571452637275479121263826202048196394685632584319065386888174369437346554094144229845007890807465978121781242966251705008271533019849731815073504521920107512388319609921907797874474731441958295631709351401174824294253606861087897168937359488067769057422930751323421174959419047920719472384872681401209896314406064960859805992747294950439537044214673922917021437951597872364061442985165787548709685611993512838975760641405935500943828805620770895262246283048140174159661953221328356090523572157795205943538179156711818584573324829415540527982890705418733040055148491361722526972100866444794219146793524908955454398268355992643356547661168435583087037297488335951227829146306913445987033677931685527379941398038904208579502841487555316216659239538853861012647088748405552883722148987723260251754341987427431726964368984170030311859123377116284585047430177032281786613111420179964027997344345269915689117877209110085234073010652148342390157170065428335441837663181903065070134159647838267465720604682803857530482442508880748487486396956810474788105534718184861924696126118128903320988407209432667045922266808200483994255481784839511280359474774627167803485831221236975958749084458936803673558786427523253628853480816520857831234465939849590923349077659443907621999364025872168010699157453908436602548804827754683614357691278337782116664593411840395972317129243469287633634016063355489944159833163360562978019953912914654151503911524975042691512371638945245236806345093292165396708382912810212572595738669252801152943687055330747072309991271704585383269091388793744364841355067791853181845683264644439428007865881521510047576466970872212291304901965805146954655563535670061743495325249985387048184969392173774066244400162013441828774456930519883020059577371482634294873948602034067897559275149042782618465199836137688844500460913141835513971978763403964515309734107825133060127366296352716983997633031292547351655618102008079048303141823088367439656855997088144642192253318514961628597014811561970629623254180608695222163783294470746957659689768298787100035279569030968521041453646280836197877975209835768771615339517983648925862170266461069812112020026638288685801810228976720731558821514143696785633067993285096522336773993968932334758758181745639500753709183295641526271233057163580050724022453314927980275353732167800548235691916699219792221611567710667845082723164337738285987525569498931310044169405778056539198429821799220732253991309690034116598710777676875735105192959053672781575707065624275935265219705646543777274599096988896162910942452554580215623262695220805293605048515228383096254408368728702469298857543158991283496080209051561885786652688521428810405052318196202710274071892790956133674126530121033054739898073621790328831071598460740173354994637797484484232415869561679452939616432949218461664874285978503394599353388866911058545824788412439194369137562311635587954628970960615285975025804881590716768802015079688052826255498246125687743195255328363505101657299264273717708701376554886319577974493658275685125168894218024193068758889602380623438342940121617986160636428403475223408796646244835125137355268063312607840843884445912472956179710953688893002012844349307782590058902598178737209122348720947912314255921703000302145083481357249702388668681165698239361469731846287871321886954163246138960058512012987934300808377352049277675732333967743328791578707083014844932784226815139611986752734632168389327172341259359709825040315404474192085882171674666638627271266978485965416168002451149885529758413545491596469447991660195638209726523550318989282241205502429919100050949297457077716197163568484736987037587625232106053196170884101475559508284507682085609392284361392258650239831077876031947606651750825929272627314356027601739733710700900448487732512373982765517247958312129462118558251220998125649217739871831675640275443921716747220625980508216900204065745443869817539255623045605017310994874033299160769291993389243285850942497833303008980461928576559390235192878970571014963496589014220535220393547470166070013493498740873710576039102791961085033000538291194656283306720545626568560305800886157397612338871396114366140393599109635896547571074191248681783532152556815318446668369139268022369333305159155160562694610283025662284232246172198150167439357922808089778914213160706466305401501306096763670985883096641864967172418947055939721400888986281656420050389093565543737310488672588239601201199217291313039906891807685707657662360153554305311101925930445676282347754782229535355425372519950991038238617646666333819177289051610642876624267426383786711515891331207140505617237415546934709933447947481642807174814938491634472289218481494926144815993212852273727719972946623763830010436797186479828780955261985248127148443092836577710912615416840264443432298127496569108159767975784246181857572614956743298021714507612762277011286485681936739862269942074489824578735826911185757167577285204875785298604006205338886518773744602342510838265981423299863016419961154035162412592102630696774536669416930427180100947225859711427093610294568978082068650357527057281897086580905619036151838224941616207613449281463303368770239251023794107155370949730838817006191453262732454574318240507175676078284470416553883701226880120946711225670662995970041161530812582434735598772499930840486466281743365509089928100767979787186558247843742765564606530311575343175378257757363274249873057925573414405513547735664239966112457376157933349476294349403189048432531217990685399823738615757117100812882925233104519710283523995028334328661421051861222851585340628142954976442422531939418149746584317338746724331645621683247913106677113935011362267544791049371556892316391306344659043454261771049202059514219242804468715857563083558004163221315657856557806215843832690805652631614703297328171949624840394877296570305148980273357138483637636179499327284303048880175460775988506066357868242921061506928218659353695979309765660351302198554426392901978310012609618629451263950472773978381562386925004654889407310679524348127308716723273099882245304528432468500059625486327253890562262429842284303742376369178443126809552748691386909561111604742494732623494670487007320219164261144946798961095129400413587291717384512993812559628461620469224236383924184017236803026019949456859935860887580913387991252690015001699180454852904962573001026164097889994905615811499643124258996692384164864362299768965800614213966598040962893666942209418324773522049149953658005323497758015631793546282996176949238102594550228025664295970165045081224533712638008382696466827936447243810055211504965677776336013546307913419125056037287133625918593502759366676391599488494773371382446238887815105950104534734950359784772239871868239814299006169892138906829764074331150649171933932255110551169433431181356910904859702847351933535509296830225137372472138993318332600211694065522370591832035772669167432892910949083709207314386905145170998211066023427757377686362913856032915980956507201141701774659762359547606259232985448792368309522696134897130811712445573778771398810812295045810269030792337120397078805582408026255577395610902414035224163544094114342255145368529552940051282954349190840588386833482911232219132456634638135978547957246412528370094102366776883753164616800892352994209545753537747111471339999235623665793220716070825898136599259713246609691870913509159145803555013478590359854328987493986786885361189061560543497248061007656180750962775666091828146463995234834840966156799511888510063802068934845192415844993434456191667927454794320992691965356331411590210530544034968478783536577677620972507654925308447714234352050447523394886680148147155493771756146783605150587602843649211631393080591552487994257425429687463436854826811433489751614271099829418670111512552054344521861586441126529824777208137251681844014559341792672531579182808629297884913767199513201597479928059194199818575187840373943779744624274149499898202480290373073067005307466105107351980673835787562148795675148167438903793066508498090638101135231407476307881028109827449848860198271472799224116574175179048340205823585829727707506396732634464083032771156927324084915461980062941971873529967885573408363182897378758940356389423395412764735021122606859995642585985502221935146690163966102008093390553947122848476501768839640708400704230480284968418606527853526424356112408640224206230840163626904856535836667594568318847826737782052871631579351208293283436084499924292010589367649851426695777296683010095529160107789578781089334496701107533438879010666562001584544835642892389050414478344570488167409500427908167064896311178526351813133415934778050797408746251967253606000495682520890194968333531984371741888869006379613375910194726322666622092661961875112131614934566712942753640429470785979904436188588026603369507314790286081494664745397745901549023211110745970150052287958327315699591471262199038884612806796645458943991564849269365477341931558144424050861338945515397794388786214477046069091180139837784607903796004381206734137480924812928641505029510985367237015353396557558551558697155002180816916205611757593773680471476266470860547419077101574403124064901483882906164829683533548922154068017352357726895798176298118205862376455849639169944222611330382638804255464346255729804300722883681514173795817239997970759705434668767362522041203871179479105384644022680061506755311143071169027945062260067218713624595543192201210183447899774191997373850544986798889852592003575602627079433323821679348779481958703373679452070365487151878131964669195938138962606611770224408544003762819462213500663098164495961271962166699228503272247211808031133158252688552754208722858066852006470716097691144924424162025002624389217900164806627944851801835023422744699130595951892652792492042396862917068661062117587647461245452740269552408843780463439330990534186413397369531662709902448287647791967531617619625138911419262700320515734242135655970030867580926871186742473959743780497536159284811986115737877904160705161660236770823861051164287365316795012925259918462749486996561458092168219168076670046936834599377216670064492260682363374672619575687930388909911569997088895933609142961771993388785128703097333010102707149849243137688045283480577050148500488131945779406282435628562668836263669092850702364559683906428005636765499522457845828371324795360832734503942192831904299100030141577770325302950847472798487259211450997422329377225893178737635501495258454857941273744262223207113918936316270082905164660555620158788975225997357135374650269307487023897423977704903546547616104779036214301038693790680231931613903935893401372349481307009333488184769145713687007739930619262493234897257213896925708347986596538411613844007261866455817955428074698908265747308538694150797146657329221584663243645996664616791521024058452253160643460305783150637489153947352763171515098168649717180885193724720368990172807294643105033597631619351995113922586555814462125247207247755174583782149612095768247500852843778770985527546655965187214585213047236016119346551477848593927069782524726241890639115989986668272956546303972720300492600600717900207546649940772218261288145679662499737229189871230933767851694443397406728814502567834478254514760256856209382359850896718112319387419740422291587837300294981309719656822681832837108309360290710370274184454038961772532477153415955045324596275603156078312930324862090917941424144017326525290153997467755355333808272801050423690643842128540058342426426229947122494104793934452135254250189789725394124097384726606584521448067721944168264287062407268526967306815456718087188507665378408333811665423814011937302006169862249985840185807541161288368888295523264971656589733286624403565307061736598793014767380217278532903711023175710995035805873068076351437879033263351554791750447250831446043882192111975027716100531843792431801595765199995792047028306641682979354475965619813758547562640198284110801777343421458993242351122330665325525371500092067669082815019980456048388026564546457161591952890143013455738083011335908567629179245363644839415905346439678624306710396325759066474003514058154646307985997366116431895974220531148846279890502652640176376637708456729722569293502261562693722526022584372885653973420141336066393907428449380244023565790834555583699617692447754328202014481596573380633848553675635765116775515873234423739408978455462355659595707249656567594722944247776618841121410061493329742789348049965588201469047126717266420992884111530762773540461187466198462180057608408615258408716068953340042975963144248140873468560366347318061510418049169595391324741666160123371090047043793980855289079503024459292780558572338509549647185487854288907148137173403446339902707298120500502975807276506969845080708162286065679988995770637818777374664392136907331668389235608853541542536937869704385611690108015260034599535287103881528344616224502541683841828258191152307644599367220233083495823858267372520045563883679539917371621777272462486928679902693852972793105156662697924388036723620083290420469546230370551702463897334189459164452710496267511469065571372074061522024407916827942213833571088977972978246327640339749355793022515388424424911330091498398672235184956587565390477783638604793165996566872971281655904751596833037177984936458382058128394145815620706940376221399005792233235624241832474922007698855281417795368592717502674817213157396919505948188157369681975573876063188616201967277287622931283667797246149977827145953037358226785718288746792041089882425853770377059469788747850554420891362304449236214586279783355887728272814802709376365615111963681234334273226151003465692016222914687960558954624221827642541476722531030110256359620538946229468009167803574017007839878866785781562724166483221742317745089086808249697849675233565930734770330597260036251857465338912867851853101487506569598630861718746451516909074053328060876471263486528744008708287383772714039989802466314468177558743868394505735281405406902271256686204349435750294702264532031272359210056002717614993260805172540102370284191604630272979691860113842389885183473257519207781629996780098353969462368100059162784033843325260034215821512268217740303982170088880946069936926344460299275525742552151588990323731989548376057448980387561714720343670946491944520961198523160919540436036992242320225292118710579789774589237288893808994715065614519387951478311037904072640223490864067820974822766891329146920429436887426981558207625021528321031280216742721572284359451369261236395845906661711989940139166497479204638320568349332716282954253667714425407983025374937267474625403900709789154374787357065926069748381998811565291773979140356916421946787453484574581642186231790577026082717634552693956194687297998506814978870536144746775237901988034373112037305848987373048355715391971252262491797352201576631995227785126425616176130908588106718607360367878989338625418957360508555233215607888028725921004913923007010728144550438864193252086649322392986014912060650996848139553768956964663663381803423399714423231289008090237493568638772777609432804287128101601377600681388254948819385389538035590303771265005960320019584704717637419330921002142154858093205314002730853268808846412607292169295773827989416803253386605309074003312839892771596643976247654751033445022560426882331767293839297778598142810417852042807347000374000894964035030816307139209885141608578686027736029207987567180870947612565455465860011110368306714687246426641435389280195522447892461022556885936479446336775620181451585966043781414372309203586716071335110330441916114269460158136631941638324244204008019398231428736395140996694854729809711500002690500244202917990396072691679926580321777172157577449769402954459318079848695889321196013386869431007195304858118563582181318840745142201678176692284045713497545391199643107672720538172006381666706354110306485138676335371004083837716909636074894182568188509542587882472174280049258918719553536494829906099287460198634260981267331262866559866082885765893867801373349182797929992377417835133635920808807194778198245208832859941123882982009933201904025790079398825348796807941430628330320664433190081815767450285866908288101860022072333549984840025375849725788547824259899146671012353595870050653656188719572502372456193502147583687988871344662196693412160322603109279833015034130280308599526346281217159113775234897979600251744732950929090357164757641262540004483166185032719761698036036979417406456174707639090908447050304330640916578018094295420298091465269603383437523160655926807583566469342272111918085879705571472867528044054666524943350754904508049875438475581670377434335810118032058749271184924184172707817665198828889022694205136332137872829166401613176147509655881960184197288650853985174751046399895161435454849106221260842326291790393978001270319907084077922788482452718400700043985522494047577059416774579955510163058911383953960694921322436422492671701831924812984692812202236832149900824329071679234100016425642903207363442340432491675566164499661850878222935646578852165778023770425418936571381663065869767243772549659158101879167252211954425686300384240107837403189931660537795910260334289995057540984329035145384914915454232001117245847020814451389859846862895614216441813923017514198999505367271550035235420991460172374232989727339291485982658737833915225776224307739998345955762089979043353761481735720200661262261090424575425285651370191124021123589058306696061179819769328154679127713893147121381227219269577921632135932558941919833833539175932518602106189679376993895458535074173526592035078077960150276654311000665872688654222726386531769334336521645844641966909340221395579653413111741232419203737133779498761325194714923256815646104684801305308366788574132364797273158421935984701037863990142591048943916376621916540361110191474315408308643154023087017136843435243250035309342164083084234874523499001991124769096246044535096127759537428217126250153960315079551226203836846151069668277990709500154849835778448376685559715099690844736090260494248444520050824339345074905851793690946355768477832480522831238710562143143804360085342995525156231797498262429977328618121967633415813256047859080654305288366712410306704903166800167518992400199570746858127358740342818130219532308660786515807163590350385929167617738040623351628225955147530375044660878509518789631200500658572423992680356806900292994165044221149229197935366502022634795325309542135065454902990482188713699754690570520003691075740367127566325226731876823845716619581819677543836199427978877350393894211306044726895149276711748262773970173618047602766175018979598007980346811203119331477771560363466572881096081145325218776761475628619710876918800255096014804258901139520591156705442648187536923775189811615366104291011984804302325294450338689735632981907659152941588100444956379390700378082690263405932902603249186627946383740722931915215761709279727460804869757376951960810628542005879660806100780359711650599242138764684818283681628802492099933321182615279821984261093932237677717471166116420235828789929754926882582354758018518960477308571493533394560317813084301850126681808431846674589824900410206830184275143940225695235310493526346073289058673665377300371174057261102116562058080506632716640713087855006566607066937688517761101819278744990163573460686276942409859472283837505133372451244303384651545436725504873062044794272939241202889517192088764599884718333083316582522706531026251601133498907795766541784861804370482846862571238108661817194660423959511603854511679245566972850683476819505594683915624248973022831822549063420867509732861146160305354920782285282108453792058657795385194600800542144340603491722488225795727267190993948940088151722899400929292977611406783116542497480732222247536946337535353240342545328061670279444546321651143758168102223986980467198341225588533289403126703101087544895848923471260165758437062928177008805428547707104539455925759445369462588949752705777194683361492085781269942975785521363221685570835419955174491653618464262815756153087595204419262922029458372897369640143617220767663181560519670658930133684986146182799671732210275123826155291068177329717053523712660257045987709439449021829247825010487777143155338778601387127750513093101256947518970016422328997236668532017050662302200817764510531152057695559790383167723999751980170551907125835401933586667364248574911476400541753809768455247933981542220912390820975085388646868448010977884709183391188961562705668043420972572828012768069189659096136692140680956515221246495888822488791343205342377042093420795212638628430416110430225056227785850849404919047736673803113752037654923453839203175866989883603426785622337112453638761965914605560134093534770568121546805338170148706674146710366156043482760559068702672614752839238241814175289179330634160545063351626359099379440988179802231343601020965860581084062537706732348383463696900929482419874028175284645774815565433057405591498304844706605046873091110194350013036006373390725675631376382707008857472126616796628301156449776049252944481379081260990835871312121178928183623089874843209359325791265363471566369663407422042830574388436120998763612630558890070807969617227262229974423922556860097556944235252866813718446197730703539718043587644616718075247626426689616742281743662242232118255429606018913140583678644264541914048453689816247507432768655627197074051796418994018071200092152917294583436232815151498613312777668669803349207490574764078284948313373239710130388672321668823742956212879120428792096552287791519630711994216717064440972852913779558143321097269309397990015229721943855655358476633403090352785670001486190183845118043910026211478516569011439964129497272428836060702898724545783191800873542729577625333212749473229688461905902258357300775356158148282561435946668443783127404105626859704796565599338602970315554395198972779909640505175440424078297849144021452883180905970736881779361353769189771937433199347522906814727189507165228206106194731399881352197416597632041229074591178715171371390929355315047481253148508069187602805843155900785141039932610552141788227899220653047484379422140019593903841748923713013028264843174158199209004562272627053311825813943176220124045034614664641009682461213567434178173722339903260816015131667485133366471138636905256241063034549581614157911275424510044938371130578116677278806062631032002263899175350968088311226377552645983142144502716678384116615826106063131881489927828648378549141668800623614559266145982718629153994652131330244018572444462588592833347971956017383397710559302275829185026795505962411490595527361378574879492227693281505938759226908799701660753834757380115223710417388116885403848866512639915927442554865461073197321793255274480683080329783777894609937236027388588211809754150607544107442448880501316526344227120040402299839641669846750501935381512615328703508688839690699465188746076121797796827982433248087359414776962218704025278584189512747400876561384132041829783174987259045162220018517405947867396135308327819993272289706806826012221967951619636679066325819473421560768330989871307536398246737322582989055093218631933628620327510697468879872221873559172154668347615054795497456366404579955699155850484323457824919677079183562203405533522879578807919165314482280974859125747244530491040544570461026918108423634967352274419615076809899399108371827256880244425190722921012216151547264836245556831066982732040203346933176318830762568669882343640586868059747609391313415610232648751631616674958489886975686309356704410432116123455267802863496118932246395492981807922927669478912095214213508979375291035686367958691555268510352616792655761354496829942285990777302511365832303855091110884191293227330997853568270842701172335982286888712953486969738779195608549630732927588421607958351319463108402854928891683349780555919632649790527255174179512296874108024090692703129421661642708465219258931967691818480385011067036353540877549597047579467827509514628930995309355257534898963738754632462981500471314033671934863319714812409826833982739786180156353863635592146095186729815758487354929656452772968914016861605273594039445019808563805773897671547957425621481813539602905394070130776453039525682052123283105243486786613167207855496090006392304725097891050001223824151694788771326768031143969795249979208850547930881179384500952299335795409870288480081378897575435241616313207094070576681924905221386424412829721079792233687008983333940868963433788897027473099103055087018307839783318162214227125215509191801113008215865788157102744121533373787315282875150137321048923867472101109465574117508288083594918369716974675321632029517663450821204268679891175610605845243788909134781309113581752881336095802554324993266520971048676681168480497486300875846546795410711030777307227817060960762440669590794674541009180082117039803631154109022206390878950487547400440354808160541281262799816940099812762096605873374409770128312337448524899271246028182254231583652602708530985297561701590201453406800753530221629492528140233251500093542123066970065283678064813449455132401657255025373342917354226698801036418227459240069243715838458255495750085982959283272716824954855069813942254877610174439458398760825983589318009521048201512484383291005788981197871599565961663894310112149142580096818070973635121434978198168175630953775037227667637642946788190589620759495577552493735851945534624589677193587050661901905884511377302352173102062082390185554157506944513080739573622662813722490067199638710431190634374867064879532444452629422073228080175913442146115532375369579142087675156498629674665270378960879821152377247717221901361021761473535176338628616443211075783790325601470484002672015103126441941578483484583991557587722184033328508278306246352492594984954053084257319109298207794559534915239675695995991341194256992283483882236331326285895692229238926738945018372192682046378784579713163835313853699262334912152271737008028560233034144660383617988698265192606912389759690160279154542413092734158345582766463855512864447378103181119003721868021782888636504984464240713457007742491507581501636006577427123569869457428019809029289381496463561085505586218618219195369843361476825132124105657758651141714846679008027966178319532425605273729983058334646097988210625665446594542727669891861300200674182363113483294882497312937868564171989259708405946768355882407321090198596989130984133419673790279417966960051403821916067760157592730947496761599378699685841303556835611543694973416935954969553355787641125436317344904757286844428961806713047584822211500217371679973959707991198864856079619425737362310955186009785911184033331396587920825669674037380956831912068605696853429544241868393386554539335603726075690117241052448804888519319867370049423208990802816356862861140546523516792879285046259949468505960235663996158471148305821472393092477492973950554253573291356999949244729326077398172046889689887224757634192003351755620571407337750258880900312947864906869637321684464276496053258755206598358475393867577300863325205557609206440508000514732125655867329070252396407887064243261802889936251799711308223598934786586653097044584743829955791881791721247736832737958154042132240976483956214544083388761186323233245537365539154689359965517917435994931905091753460705202143865756198899221348336619762322439968036300764180268498834817655963815298857156267588031844194041746022902111819922953154153481091504136799984716099771275941260127836370426604891262256570457138941750795411500922898062150781669477153428356358193578406895393271283334133723242516585876755348893955424262405083061713827630611443737655913642456484416750089453515929419958018099570818754612377106912034682124215516217349457456907803033683379582404157285491412793975412147306317840796219059696447633081578206468261792084222562448448024515810724203598984982560975843858136538674930367561390294557553226354277492964137947495928513857684404172436996645905948301489754871377934349067849717088306025186660689644060572370704739977785428331765286962084277614684806527647738422286592540694104199777031580885141392340107006960026098569333162051394441536373730408185347011257118621195112287074407362506299450917080222108358770926602938785919779699382771334280763830654658564947713608073992185754906755515428195640800036494566953830848255550470648697817824152420053826370215955327201641568927556419894297244988957052449265473866958358380893535058287673254249282249205467472066020200525343949269163896801498420355041094372167792793498564135043433043381312021950452177640956847003577058485395199257876050667799283757782250012057147307240611575689240793530535375023485357164303423441756577709158155743590891626183093174007112472687001886781437565502142132389475951247046634492438388409866771301374773929594781444835771936187755166982459864055846237380194468700461257678985604255255700256858512022553494282664652143335200573673837121240195467118500364405281100439192919102471340954063385647819236825719103610445236701189545620744496858073377892098996214716832660871653887894372550922757975727102597035595706536346127142788619308028237419945632547322869111349675031662970797978936343688640166574280369017882936088028663251664100125577873084606289538632086620413598489655063026571871064692885521085305179013071777289002657427552841749436397134008316249698866017919243283134164930597018442681174086502012731943196739316714062138178400018898286892870920281483100326702010568937318772742678078020254699350211768331680322364874189160909311782858971549099673396832999018196680357583525322134014552491277204870457136986003414491747502903730677135235441031808547992769743325141928374825085347178598886079116919731773998982812154943201963317642028680198081913074563699913952887799987523421401765813201756425445711169570963045582352220520463384474306047203167904588414780274298155744597451309935855792917307300032109610204933291020928490577409366775498446037160305232281349365877024528808293714803739302729385256665396154296550829922498143787958658441927466205702364141750421836587888759489378794144080272513146291090650062162331450898676268925544477438251432120775732922263523212504097849604781156415166777772454210993283634657668270592354214595814902613762767420013815585454049422405853527731282821972795489888842298540645869027265811747732667975704130315679030612609932478466274719054715355189921580339447353025875801173656151570278213129117402124713393247793885216127405687391974402278868143692319396712997388040106169099870309300711299768096661103574039819608957133770086204546997055754472546003220963755404377300994479490149381524540624769131815121207944220313631997686590059667812831740709878553108988606015549435001242844466788174146696494269612009519610180175891982614107196307456270560846833476474175827493699100255866466753673692494342448557695539733956782109208342204330183517451232433141854387975494971345246058782975081898498746472354177922332592329077687727925883122058039732057498124300542539854890999775336702380583151691957010355215432367004657976780040053866010560437504758676780589748172097056793915515072786357907331635877082442559155269541577763508607685578492977351366752895929228091156845191871817613029444859705250931375430929536273121195423412300742669649972061335897390037554614016484682588167193332997347655336437468700056011096041430489764109562085099648132535124433064439486714891598866607922016217028187009527654707072254875876369888206483907464862255340827712338876603365112172544115200622130516748927825691424856401303583484869474701371402302217929229690991784638147639830291371348887848743552800988492427327630470704498316169417459696710681658971845460047599456345443324660464236984016442346154080262076358757869664119264116855560550194974589951374966287334294671379198082425220903465608226424015248233380757960695453506185222463017364579599808767829367563843450412421642300069370973875928372623502844231434388279105665366306990942703243219152095646840716145053850768364037444272359967331950388190835019991371533866996965285272732771686811626695399743001796216693517428908643900920160899893304829136121280686052771774382175297465107424699400362748576777566261167223825994737751202817937001915402157014085084698671439028958177472277099060928520955724060297815612638344451872990875621634627705642719773436588937025573138225967339739156267691105724371771886236610667749649546029252016513381608210510587023008793385376894148682620149189840313920743170686962407418475508039250185375359575078202974221306702538728000417128784095667217895530923603028635889731250566713401169105082975588404851953927989047620420351100452942791894328661014139813729756462280907181313807961028566660522289823807439188115447640712354983229597371103840374438897647994136022324273297866611324876899362916111703537996912565215757320386387003050693137180008456243497611707922485675150906329095387199840452004274813957523869090380979416118820729196300232237361700561789114728319517836481771839209805257329981836912857583475030339055245673669097191651282178975219116378534836168118511340420074100309407713175509352382186564545553549927617271961016723039409278152743900755402942613698739352501695317838897640973432523063637435068849480680594389247170590892591527341676320239664696686083699845489221164059449867170619681364322762555985209968817674753057089778093439653317044912448406176027263516134310665006950855165507842037858857235066126819971762391556052897480128112004340893253316205971086362778038659152289457789477640036772228167654374641753210436837747502015579168858766379417626895694029607105390233726669443485219734406018354089035331051348158185719082758080023210024154546855697150285547835037546860608620353651447686898506851368091227948599504906239449465132823641448510110826283925755752881520344290827555231060583381156836276404741809205733276485708481927352017664868913208882392957409271071055763749072492596163123149413888813954192562708282932090144680849864152648048839436216609138673098145916210340921242360095565558952854231354733397289208594497692549236671279426605663549371479593630021180752200024959002509301661783686515988387730865132609465214785228295024771051431961775053850969769693591578963579846532423618235856016668261704155420744456460579999188805466245422878662619155478162884919881831167774244284684636006895504995058852546348288674571681254309193485152988281837534327577983300728158203396964447357012195397541922475226421857851780863580527854774987170349043500179678657642661565330552258130807694668368071495446306001965495089979080523486644652397849401383952804379431112359021402163982488729094443043222030462948318338086223011399236008883598441420084825918797629168619721388201439678134927010656061989121054718508661162909990038063374499850050841037099459316005512278055966770718881828817406025866671794580524834618840427937780579021600713044409888538688505153957427256529917414257889665049006681803521213141450453364682952653293251465214374038779554066269800170069602175708394091464264487236848850486442583545308194185289710824606873567395297665193479691256922236866577264479148738422082397822718802830918666001563643807150707398741364993287726151017077376931334966480080625520877634645857986482778684977294392224052610569402507031073204253151022720326075438617559677539497682568845404515934598010911824172184385991127058761276378662092591864130739905283383964276739732685318731037299344314630681519045526516336353711465079689738227684841817396408286500238468554929976260401711527981289996989560706808786917917000046760295981633899422676540757723951838620672498329572951397373795293163114029246051334177354105712917978191845313368626557726893283897694218270182040442707187153981872174352146791950457025649403066109893287172973587690669159593918815523452113205219738209808124070620502176182373781874375752977362051713715671238305643177417675202132882713490681160151493041552484296131950093820291157288240957176617369281842402688088504584903185858817493278904365463039797338039484478273873119893517261547448702206212544770478828116702152356357322707426566051604984309337282079290978177781171690763588818751714498105764695682703108814906653587341056866140453804529472082814610352717127355613655667902578777645826838441225916526995278239163133561442192425708424340676749772116188128780273931558357911563313894672256866517826022570343671688221070614458504124070815565968367676541578491412643487323229382805076270975322888790671289724638574338065155644872165447922105017037899546838520902938964133406298100285314421148001634102869456884125072189674656223079861475129789857592196734137126822315789340546538688921311616629773186872246962161803076949159799350911619434878208369770205238847624689394652238531985317578789508842258181538323742243775058015170805415973568755357978369239950638886909500192590031124205243006039194786914953072183263697994582867637555562503092589226015405103747676394201841463965285932996784954490846368907407446799738775008758453128288026486166336382309004620846390446216177958557264100224363905655581342453839024435783375219992924094855377146905074208104147247039948210051103493412329398443468761767350793028601255547961963994269691049899671698053681113682528876088752528433268576175394171422424799830301043219699430847312364704968001853390234784454331470423034677319584206005811811985287090178557310637988942544562393541988126666688573289369574080361120320064901021361997486100818466527534726511274136577332373603029588675160371365837877278464080820430790792858000750219561900630569717874792202643847713446379562822715821076483064987936350230236865514032647904902768895279169172884115733172097554211826006141566578059920799157287604532330323075781532042926186763317742064207084403779197890969408229783718425605713383360953416860206004263985379148106754224902137598384916363644721703190181748781993642268084571791816940675478994402233631847770786891526601927121966792591700098927501046428054714693692934869329724789303965804752315235701790442795515613755897768679889803993456605033328967659136131460372676569745317698041015433524339412810898219246894339976671843208380571445403037597648271928615732134390663274589880745775506997976592686289638346124645136386639203050765666163144734923135680610112174051612128922929965850265995273124121307261102184917708945477798946690040484953470806214287148319678154955929697882196061667850230351005102414449203168435911250660700263800689585710028131594989962221703892123989874453478982153841577973679352061346515450183758732513376780841112553339080109247954350491161348781512614930197103304570289128157137953379627045200441843933352785172043097966522907612349183056447971060544424463401498247207894575981140554854127155651878385199490125880770666660066061473769456109372245680192206942153362443164252477881628809281854263889620579311886180070726407823580250189253318283499984951482467434078435694516895946681557091032376170426290099520230177236159734498760487474552469842063644991938485902451114285678815292536729891556719810571202120688890228340348395957251527117222456747512584622279720696887311072819073365047719041398690323957785095440051269058268403521638290697154563157288220955525063238808912132159669393769072798447207999248704706978556322004303850188000227374230722125618271723308136549797934939590388028890489230009715926511793947430405422747623190910917981432005364339099819154494852989649624435388991316750967040052444353316179880705475383486316296700087816942739363272250166542633681152443000797539127966951640393777286821588881073560093863229594657792534320376811026967614299993112128803599267538825885820502448579659154145333710697469439416626964201762460699980901688879790678931949988907849552493859391349921788167956455040933136543790727656655608080422734752973976871150148564742199371526601610997268111431442648317314409393479254487870933680896430676480528904525018982232541962278657018036764490923113610208606713295245226458007309689432149173116675437040767991118433157228752254372741917878615077735100250421101433611009298358551831694174673369352831991588380291353205872544655782939578810427511437541917920472716963573254593970097834047926811770549649461412200448498937047474244353426795953241656047959313603366702676151356742465726516493994286841458514788216884155612097431449319233817894314983768544081965698306345345866999950786774269169007194781066831267720383797479433532562090592033828412434043851468453319119169629017324054362653185675545703973331584114512840478325696773889165969413312341825785685830318360989339028321228713502588830394615762339640169495197871654784397224973861094620885631832562717563379172583124156990526111786292060190111389141078558487068793015282337861170884094890912158715012690771837713521846777326751766505606978140789798242480114411513258066271730731918089385401472245444773528220972091920397641806161880742739783103767645735503241723993601317592465512469002233872959118129474780771411003755669234873943830252715647835569346664199609038054859743486576687747192082805711436872278705463406144745432893648849154813472847751307517063207933370771578019531166076012164261731509995415636447098285488378592190410809429120807005337212690895972655432168245454523644730468730972215616428287122484727357685653329886628684923990858269467005965888579542576983718045662775243509313035168481142943618981836562359417720062788588095277487429155734451167799090137617140669285524313437427830548400820388749362310409248298203456337175019394015055485590044169654025860152685683233520876187322440572395092103224607204938148582122795044324734320875909460509194179702517994237139852020267755440890588599787156076327206852191562927273017278005373952028271671399910592417728109961992092195756545264678735646699383459645968446156463682341910414943902394875069570802818130276959569525162821525564927713055588666103234710193423090196269385858665740325328601809913919215470172224464324749627243131948095103363834722100356624927292768287969724898857894341180589516979490388979574145591152186851977422423152614788233440111015605700279070848797156361321386869975534856681985053603077204600648666455514479012280123203508268067367733300194926708189303518510176172964883602546780030845902901275917366887105537628680306242176318069031091637664372682827743374642014144117394475400798423017434189868350607153718068831132125082726770459356030247379278205732082047882861308053314371923533890646836393737191055384854344559685992152842817955027860649555523387614474894461229213429325680437154411410075026270639455836060530432621514664061861355178760439396871576413853888714962192365464352306871323858030456481947707706903320874620097006479651676885787733197575821093996970981036989024687914597654180873857015469360458399840921361600288398000221632839021071494073613751803353958323631859751994635326936175843186658505147899312009940873204584463679462383824291591039670878212456730930237179996028792923387576090730602833602739616413516217625410616109627607884160189904360111868466138135725172574539330216976360979336523313166675663437023250034953582708543918931154480803396801911087272655302123631614980556844303530917989617123365720922292672000552194020837530130499704867717302332550092894968351445486481568616771303551017805100971966483196382063886087269830860717233767086215910678403604482195596066572338751008949721207994987907099071514543717519966845644995061824453986888344035895971601610711591005234771391347440530794823868233955361085393237100126197595301933226429359064197426580701573322497293271594005202783334772797928963431205940067900879206282572686604853003458028543381880835903086626393582732325631467387102183791036507390081778202519977287610683162184967758708123722654457365461872492568369719265834685946504051929186419226389934463752830416730569905997331348531218227589919992950972617573372389077620834473662210611069905267508384302399595058808501146341372939051274031217422177290680360271814669605741499765461339403974305032243106481529071500176595185975746279730279888464176129676300054690208275232601915982332057061376719778318677622579104558549358248152022243536256249054644820921709074161197585728952407903854176246908623049665803243074283188193861591004046392265845179041351194360456021803557635744480375498444649193445327759778180790429906347688653751454502428797233592229972436939818833937272693707368964995886344269138608830429267394238714095490486196733797185176543187881739012562317482252756188349113483181043081448707138672893364348045857951155440399645818522662375248245798003800006343959762242510650358650407002937727662214059202486396959244065741887408849069358033519621591107158765831341295876421018767884451233673676772990817075960266542542531655411884505685407953540449970680551602019789190608800513294933866434071648310058497946231833083340662282020344521377447312060820584539641624303482118490970205206937273445353772380656117776393561614960940501286096453195931326002653049574889719809840412073645760517869566036887057518026144821717803812456397508284693064251763047278422016889107448381230126655521490078844637396502328883871182433327813165633123784544205489119965628112329000674691473959722960003034663858532564996045579148585524259162684715474729214369264212021879577892639475640533642952988344180173239135187462644430266015807005279068969088325817239652108199522115108016873041342687190303592776266872395780691244732380074198387674122584121742629956789246486765151045440740194956415542336054139298717721992265039101831144671990166924819919282178744574206765011701090842327763465979102078347796637175839570014681527185878349838369352419064751951462435993605582196599328522278673126833403549027613950314905021881128432070253076186424460816525424733826372969725155321930170331574812797526095439803229928719332309933126082591705594769954472951206145872891318494804831311525195141988539732947086606426450386213337732302186620245574382919548355877810130463999231178342513063724014848203822044410119875941691525271033025215209152927023542045724022719401779539613505352788290384332195169979541442790085477755268448962375075592217706253721178224971409406105870818209447148582802922978289842582879306749421685215671633511416431566846814986819175033404827369485421891047816377066872110476991745803633322720576931517980852222199783407876767941550210952314752643649021801124325363858071181563457100984517801305077551370670725012882666341814095681279002706662577767643901547291361989254700046356656886505170190850972098499826403736598066729204776336093592335099548825829284292224095291614233936765952728794962664701379525380886799120831525718498320136661334670605794718100661615767837639368650596362983919395866572913217340952359119791782805193307383174140177740690865970258466003576633100863949175941650515953037361174669922257364987263578625775710236553311902691300006953292960188494161296945530846480150510696651761703962159543244073644542056915781109217477254021134298286918118670879187737404520847068596472420102311946094517102357141665252344059102483234604527333868480120461819416694744832839607722372652524984506733095818050816005037197221568141129799614879085313717081012624441046249399262149436827070071377696964217782899406860052580502000747986702143151347077217496916416077686103407558080263597739124962407553607132843634742164012586370295617541665875554656718080452835410913973426699320889710696803309673100339892332355887080106781509483492985494859570684591517329116459635170369312501674696706650036717211097195553868336122215013630317857766234964379365378453396612722851340384505373045356737117901375021020932846299509552213131123989553291524372945924409260955984204806880844856588568621000305958365265123183962367896811803989147095104742147520062953720491583639015643289300537499928249723582427481831267575894806663708746770255206675450045380608813891570228828998140186867624001188271740885288192018615501308496181057714754997904502608698672820235837985389337575481829854670482248659017051211584996620805130112805207516717109636653804636568970315402741647466286149315343202938835780409170880202351782690415038778954532587687101436168906536031857428955793145454993767995830954933967866587213400724739726284070750434973412081750160133927493524910212875707737267812521517139667283477596770475581935601881829559547303535388058162099481912585591862962984939243912241655708797803053437832494142865789315802861096713411578878493866897731087625545840894023420901064396725174214851952079227291918681112856866301651717835799710071873900254345112189349165922847242899154537798908127626832186498338959145208642313614797613382870802194007520901369075094097075434879863652029549815551870575761436442204223362354310658384251606339744766659296506326406298803907723000639839686524778954949706717992707795462292061323632989676683243862306517248194146475778166666611573188062813707349547755646078185194533420937978899878911482428857715151934720164805791622794556950959015650905728588029864741681046517671929509403520796892123679215960971511293033630611891523122771229554199703612700144541554165549500494419822942202298443149995158045145908630070300891716088544073569218929648541181809712206449097059079607924397438393345603136278753357320030875090180911473227151210913649501513054055755642949739229308591128799972770564869154721106787776275960723784208047580213956044199157081836930413050304434046586418411311408190655952758322009799808076600876459136988599274634838040370633408863158655698544252902215715221795272725049894165073314741165591293281202247891129092634506096630185796548504643038055329968671105800262831929416697694777791412929434221476948399507399377510604691357728898498950988006152903061452915485206907627491520238020341515624758596122228184470909306444042829805360845681170285491727972375785289337431025287147031460452287239980869450714482787692292693085776580910923650296738014386861017020649316186414116508795426308119898343234005964721150350271899182511323193917039939765310902002214078716990504353366038334330103913335449982382416530617620537519017826427378012231709503572371069510618409136294018357487834296079035528581526379663629314501962200779894088866849322621459532996079714213087844480708971638674081996659157391556723316351103377791024734872610322167470560903780830392383783298354987627901833425174002387578874231621553910422339769159952451376523665243541382510688614718334069005127212554980218221706811926655479951445694010806705864785069639178324916261312888654910980873137430391724861586083394651705833206586042628397361967643568579913283565187337959865467694340334390544879228825115219923654191961207055358505982190015170653803035766987559211666953931375374010937919030507085488685155023038390105152112302475601013432099706593311952409782103433859189952347607614114799123755292337130305718884612334192023335208283852768263930287710708918714944123939195443839274869089585843922764286152996818314504903281884732244346917010479750751735839758270472869531404897727507521336996724877430510146086537003873899923366712213722834492659307010451282655700742582249304873966577378702731867194920278685917980981721293691088380620240473370945099478689168680035128296193708522386193345383925318402125355389883545264667262037783908495019074051921506261938551152883365020818760405836767622630648436000784124771533173785538729995529160378920122761966380244612143235594299807867267258365866435098784146942887185181693415248166077597213547553172270602655432952876099565235410535805747140740523538195489772204020629762133991004206419008347741161365928617423056926185811643944233862525641461558089707298018861727365492491878012141879234967751916218810262935235017666534716474902305129930931538209462011734295789437366147101515509650051144450823434263235125473890129010029769951517047432690517795145134735374363061295479234638116117931622548767729668263950031235328024214065612579922788239977646949293569364954652384889977577547782666613109231225671398537270193589559959248653277647456469162528953818158405709989208103998652200366306789073903546988332413813985835818467983113395131304616975963640140094057001547704654907524811035277398211299179462896700382646411288868736962543409026164708355660883625398308497597073465153099802172637821068899737805446545014770664874917576384084431782470450567638869384124810244035438131142227307696820725819135742851501429745817316919913289889474386422092786362978538794037923404206946501549862253101505656444152272785987539285325236527151375577675255838958879502747428801948433677743320369171677451720024064142998852697002203021460884604257975493162814087162138495573252093601526764169657468618240043129515669920725407833300925259419376975037616720429366627104694735993102385674185106045841109332425277741329876121363418295088822039895489357597294440657557744214850066984163060367350239806558929089920893891589551555981899756869471876950425459568028327327062341440238142151566027021668124582118444909961764894999599967469804844233981587543483006596206005878115435675742711423255006912341952463418804163995995409733763702019671995253084015734643617611023600565813143554871076578749344988516333079486856753485183576473647927919098301888126825815809644366899251500784797037217706045506883124519734419216084306487295960355072402053501307621976272823645172236040889995631912196187432523228722295859475160351033451631638569037627234936341223033505492740852060227881058917452662641269087272516053193049026656083539066934903539850606060951956876187695913866240375273580462516812168828653808532105533091116665287816026049494046358674258088573814443509183337660085115122779646195818179246551491708061792440484364299346640175216997560518260275401625698730215252624528894893290125486745921690695372447362491369020108315788990494342838062788485653563032924200815163304260505318989996434785026005933941161159935603349925021260886026168851670023712851073936704747738546874319378816592678397625133670693964636792779498808330648467375856808493908163132440455207069988435172180684967201812064630588404906340928792789132841961363385087950717955791150437767060960330436600106930887827094276879117080321643517500302972962764115619975695744726479212015442762905399718875532226386189860978464262462158046678040910249594334600994916002058485058181299027519559369357257156999222386945334536305012985620135701770806427406509401030769221545462766253193012911972890548228114145435333869930541118908660802838955801268342144095797340815924233258550007654049807023340583733968601521795570048975801864892611736406286108950928160707268949019571719725250590602496299546780375919435865335168408762886484521158328888082986228887871788483804525971809242753070877906525924617221711866514098294787722742688427947233605541937255634429456658948471227709308092572726981417882328786220558969259396697239852020429573885519230339995616454429196229024205664955364953050535249617493297960340630055207646714220886733003910928063405265785471765772753302404863518977612173222239485778053653953032275593648603543639746104640209846904242472381631098452908030501132616110800956738592002796527153030529375972011503714850299540384647854559661890786973809803677907148565541779700096789952188384356863078633400348949027440527580008441969269199216759835643805672560175990517913197094993426395687117876101093577513375630573520669734009514972922667860438157484255836579313276562853223305975957453602969768510370048485896208622028185396221440123637001827888000426144793591070535863186449395555544352259009785208754486622511140862360828005347294598809499589462335066486578264063614829903408502044200973960045773691102729272108752958884955788614617128682045513922102945919633933136908431833045877285586742564592941686264466526742798706544893282247556175530920309908093692527180526048329958551651862272305425080810461332411994913846484299908548187160745402664448560364391502789523621499026990704483633437529278539972988106572939174765592738831948130248654920688651062114930917375889461560081282704419833601961565701375175284384527831944777639428937679283717815685150967354669725282132666938895920184000250562541016304005084548946765755153296272227910930068497952810895672311008954515701865366387827291501210880915087535736845094998285229050222187019880639449470564266525163576585079288141944997444719496081291120668392412982316695799552414420231688285958377698272072033060012789237153710445551960677754818936441137551532135616888239188028156774142366607177855443919284332936099550939424436880214084027133759321453819579571360478323486956998302429523923047062328869488898379250356422575598615281620010694783613873228580067525416026549961453603053078453170878661969693479211284934740640162354742448797561790932432930514880261519730629989516897677069282386910008735937121678728446645481623778868226137249257073419074048423911395536578065708120078737724126249292709129573335229488164409705137509216073907622849368120144249140718073887867358087355749277185235584633376454001509259979596891548431676092816726353726199599057188188758390639258447568956260564697287780305818761383145646800950163630358744646058198072279095009568692293928856418299323969060468912522893401565553963010265632921769337591751169115233239116844179481166553078620049550285931690242524799897999944790570334626729417064066691279906524377746998690144831973296847574938305926410821022544960986249538707353904606366259284434632526401465364113149800735665429672047375430694319254944383312890291087792127548025874919129939521556897458884741719574593492300347847523534699312980798595377207526387606920459701547315006043693117353633658768255115165483164136060726291302764150226678519423689188366482333180288543501700544156834885157578282365199841433273916125460851095118634533697611571150689195720219439129682270050264020450570097594808990302424052207706592163674218193454842763186084257922321496901234559928518952817441848740587476559511808490495655949711557162778010114938238324714138334228795639589599536547896736022624070272560227233318223367554366934194182190362714592660020277524655154961872480454900035104147760621190653101148635776055305137875879832047619034281465098266154852216006824206598479625467684618836591156351539064551818824271812464034648388287072386100112397776265044443754438446608298379185311711335445366425589364506203252637239773255821642327621361654370033960819685472444926957696223978255239119658225360696571749246089520131422038538867353223736692453139641073905328383052271590103233554135271700345712503741003883856834580308088499816289631003421104936069134035369821947165290733128849300955946223134616006419409962505867895667922459171983330375140942911192072279515295915912057798229114371128537901730843308248043362174685017393877223095233632100829642292996041678710576237014076338734939745097777314370007135563229179348295260722961805593756112236387918520110976274913322572232421920578673446255453529214571747981165668467471664950288511107300221745968728507739215532962247623612803276626658030577380749432830542940401213335367953554131371796116308117146030033285509664691730388102567103100949461635208165244479775701993617776898384189399960673269660565235378162546397750611437369455722755591569864745491328275010714025392012019239302610214296435803154692285392163255559550953090796086375757181323712883907373562775576770373509519376500380585411214762508712120411383280565902120643247438793497712424106463648669764535351677863089913129161642327165829371341173906686599112937298245967299102779011666690614192054516653738019858270694321201668877714915364517798941183777242367418134276888666116462447195640214575842813438985179652405695176900202402854338373224609781446787612990800912880300445585107843531666214491973038183145090424657496464937863429088329820033137609372437269898782767431588629299210962711669644299906364006756994955732038570751127005607437682013647501910246802274653987769035597731507253447265136407355174742264932933389836382231367436912180878697977094491623204860240238374979852027590145410042001500671816446242665216768447082605255656794749174197047664940206023302423008525480066479797484536513997807857005820681827113778549463354839259155166792944011394132985976108103013935292342783606917041886794970029959458586140084118191377343007991067644737467331409931275468902524999011930248606140006789523285603460385549931135824210569110005918066714814485294144280645094212690917618542372555985655594857872081725784902310240005013799181528425874490467671364459259309147625630893572420673418962401694000457768667566536026386417903029887239438319080814385120944742038459719481247183832519311635413639178752916103837157341979722841909635559237822381274697272587235576910592795788704881313948664520746108081141557364624030107387204411380995417176689999399814161912600712745799165482894509791102160303662872302302021451775767541356420447363646811550760463370636235708721063379860990445608361909824702125165168292004241629658305989355093560414893402601852298906012276491538615127168443526442904701407861953279414158669589476623813600866765160271013142987217114611248750267796374056260673600253195786454086328367742232679606499068193281709471195081033899952363343574997114584905126101130618650146597942045380636123030105182911931031930272220632995015331644553352930396378479172426301253477456317554537476773052386093887833565215227502564555955439069391056519816416953884114824531726503862022638569275587869517854705494532275516525276649096622160094706944225258598835445916762354974866754827121257080549293901221409897451198562194604214400076832106497608648286469259106974454704858313850564096886965841221384844017398222437523852404392523164570281728447594385100579187156077646017434707438157938764761204658292798031302247351860908326795040264370959104473898922866517039509261245630077392623668815912102101391305815624130663484437211095258325912407439838307724887802843832816503036274058790868236457242391259679270448259644696709437492064191916795439959001794704997576307064021339923695840363098416514886995971284399213981329278119733977851890993459602938040668608508558423835160395280815021309626618394746914910408898804946149232539399775390410459676744426995195188550423059893746258596331433710889076658521719455695625873788375319684068713717768873228965774702057885706086538060342301241944466694119599972361505539028822166498823558685687055877334735715063697591736252033955250812686675881354365139812397895068414223155008071644569873991144722812896512794636930376658165623012600920803036065080365501817788471626759533623025342215284286201486308367404056902984440975353882338111821871618056683863099379123052665289651069826427206047516205673600948162079338783932639102212446463285715451655960200879549317474334961545197407573287568474757772909701134089086825849837406209390186983777581562187303604137905778776152506172731737721960954270980878403615825185633733508100416533695135758013405591681422076648311356159083524761087393106585271096754198955491621781756075492924829164625506853243491092060404455641201695607524686792314688666236188694883057028758408888191376004289240711082489720387045883213989696705167922174631912340231694896150922754502969908641483602039867501491336439721878010206243614081848599457969387132992948696946005671679210194137793193136711812579493124854661146649368380762895052792549430437061325832363763019873053755126705908423283042470322374250195480186378589661476967499763732710511698856733592128299179723197074789979809390231174131886921224379620632489455485654497227481305160437196736423545971485683439153594776191730628580049679497060061838240272833680300165279570746065869921226757532093091705262138049339328694441736444098519189734588536411689332692517094270019481381681458132617169106005013698211306458413870495753145218224870423790895345191102633392439158259999275458123433935708243348383022073451964318634360365605668670298129162680747893196785625075440429725079351180916123080524011013480787589419301110691564744804754504805261729527814734891953648085261764149450929371107536975830187386636158278244546995367318200238542240287742268260199645226207471756793967661383703773686634720986000347492919447102317692152515449291663420550996796689674273170460507460470030847312649810252853069738104643224490560599601510911757796251524838339287012097320030580688526495087766161973065799078675854025791394961317316779709288719162187358093491630547083294901599728955399869725075773551938890261017996938582960191213108347230864020443216027463726241295518429517985404815219802137859365099183442154544989668713929150056374136331005635901687191223365120988049242865863107617508392115663108329679684786709672155179945376752808510744284140757166560656426402380303622813967948482384460501794796166730991514866523271149916539919199951974905049983882320765488107165999779816157032063962166725117678633252120310183523273333191554181487991260328481642826676624976783998117872373517347877087906276283845246294851379999905867042028902193070805704326116440979208537556366016446685958470125183725800590478177485771312404879894509213458900434896189646773833718140544103497761165738443154366078747301654000241990758671136146973593373670781367120348467490332364687152271503156598085879662429528923564355104194136604368940513736938522291807550718223076903579424663069042895420299790762092127114982843795719886051938783093444467140450299402995368405672330709015778384258885132128651262963473505086023996778687017506733661903109948790251111808988879423193320469849398081283216003326659882318744117020329635835618296339788492949318295826895727354816417713488780354635741549328208702008236991645343451512476886017709336911318388020626162234801719123878530473393333263578714211249126401079999163085559118382540014301311309792346597917569152766422861104143447825635159824107786217102154340151094150377309223706386533212541346067903605080304568801855638372854194037097191102699703946461490513519025609188121114544843564914808317276354686758207943848646696275184622629932351780353123522074917580560923977603815458853845882986014729046043035759971230739523229592838012694739045562133236533994416012528375977556948957349648636968182710586725962599400963924048887379254106783636071568516026651396902129338601376736659413715545579936160265614272014334129419768628603630523645437437433488307742021874069371592357083353106123360442991035529617091868228790950421505381496472298400043451362778280828814302633891487220753938939104388562579949382080575608540652332852398907236920379289142167253267592212591061815072206836588303747195510725798307257426556528844646979547745561476625136195776195496506505206461390552457741506796889754395115164478413704393642278522141854018521037728262627954462587302823108116784073578371196682447785603703312242832344918733400564032265857756054158187161288076291137527544992984517403230986097988867242717336916174639731410716481341419846619656238598669450186353719758320885188851723157648139928526022620032317757070319161409314846367329381731705565966658006883519166651054653791755992855622102367649889680954052744129556992741525305302782549600113178730183233007069823654324505189180102048874741566082589640899942244812803033742148508739887596123002288136145141288769364465994268224438693541744642081207283056236268649785921929191222104566036936273677798375965662294611070150985171738895363493868299514347059967915591663634995490960429748468222202225439500178967934107455753692314437863146222412242406073692187940987376952951916162200941048186246840378662731817377134423194046400324156705307342435701553441591384240833202215613369076148842344689309602758849332635548291864206534330724841153650864678751421811700257584231628161570253413516097591506647586535859371926659576521980675191223279925285466542547403268814049895999778251948625892202087102707434746331881857896506814156312837696693959834844603952474362780288969254807623749107084871436433281053245284015066597211883508756787666249758768719387743284626859704044437919326800441749780408406539982274177973750182908732070650453859788817437858285540265676807359602234091120484029070250004876080030679747706033654686920654622181969600408669810683955717220866696584795126620555007136455329739613689746293643373014440810738820018181892620710942846724390822426258409621840622198228314822643510054607548493101515787912928024402297029326071105265503858211056239708885380107240464675865098625551218643818641594502587372297800960830993658444970000014862361793831458058586832287490671380844615049855551558483148517713439648749002439083318675353790155391240860146135342361825906555012528460692428827599527316330531089342265809192050583892754216800922802459617391578811600062687480780945934216598581075164812426757612904410885514700319741865740625950785810156749008906601810402045181622671983503693789615092769181861282656162429989333688148258704105556168731478465841288231805659821489716026547483452929467781051395377281716124136314418170673450285769271085512796973994391903000775088546245349877157631632828770875781422925751698009345645152855755945956171098869702720457626866167885441798814259558636632842367346790582965492093650117908651951375538445788183271107996913926852133795618425197121073924714621295042918361008376106803721610985326075174242456314702310388958682766100293236879958752167931484819845280035867210350536967241121983129074429110040936996461920989433081586391095377362417341074418407958645676886842594311740454742135729381089286450698004907976927870226625454167281158821464809500207704717703646998617820430629263051932043717277788617278021415545308926454713623462050875039885619298275095539570854390513478317731023048493436443717438748637582980949161604409255347520428580739173060044498917580655890859131527124980760725951564030592884421388898405998445402823671224734194778660280410063263711852963130418655816991064978766578152171172491718858137090091729257083255228352927625362557511608195012381510210443327756960890805389754642792703151833342138396125443720590451600285334372015417250059425806886310124182544159195977260966986264202339622493992611250151955272348939235613997483877135341062989442404736242062896691070845366883635149494443949563562441294495830538638832067250873174553479791483984165458819336889004695075999770418471516574544435896942498201317532850068843372743699799185740454223756003392057345582584076676108956845583042850693376280453086198182770368271360034310032392986935835507358913233597012455411846876571337680450986015865883498047061933786569824552516809031063601451586266051905193663182349936473064317667537039829476029644130629091640755570213750628382051161588404918719172578630307144525751429956212011682650685399128815884919487625639936524448892884445410161978990130123399974448300657196461773967190759297655379549631834665003482064267304647745225849965693336304461528990345632907073899517191212814039589494403947216334647987583338446058712009989192536376576748869743840598070940953496152724356889579266329379452858876584457567732256725878495272618895967347780955624103234120930616625263023867357845451861770097103999031330297503201415309205180228006413606344765642840266287242794825989650506228722582545339131591669220382402894839456961763091115729369177760391557239910188015302287136177546883306049231250618460772278989127242253240597471114796589866998768173603915747504413160940139121539528737527461031736357409713129770605945669235404235881059418638455120641726349304856804027324721796300382715916971064090001941911111220320187413140629933270114117108214674524815969250583252319878441576018055466748989832408528110190326411693492914647493412718567462818305721613674512465357997426649631484022397037506999119683887701230232306840071301422067052099628709979763085272649671923446547768775696074959786484372745673849742060478493375608693216699686834382044123563003516596692755503001816529727541436352326063250550820417007930857424890578618269345723854266137121580808272371065685831449461722976879917061729570373191225413692066469632366751955066835162316255653937712782728656908045583206860218675425947293456541791600227122331653717888940684187423857395015165957323649928503224808941547375234814616041297588151221528594103262590589448487846074636589436715286153033712714833813286420063524852683279198497643155580801828495908000878488833764383171581643646694727736061196050454013145669150361013634761576133554019181385890077788511260196636896991295940283974747203899869474401373978502938995781610774652140165257041512490589929099862578119700445022699888838365490008216234280415716253830404087752614871939735588608668787888361602369413322400759257960761080910227098527572201848970282878493757735742198044697554419542761340506474310404111343238960899524560921108301184023991270521560865127331738570990168570811875118128846295250978408318528749506391060415678881685417243300203184062621771745934807487931599740770349372791380403096843762800271005361226416507306539400118683801398988056268326161429599572822690887212777230228668412296199567290972559415998713971310750444118907392611600796789313108818619494550941686297016144985140869167504194514118908069598631761080187911827066301291587320357890471235750819619868725106259634236060599496131034622976886502355092158354700888838676432674128094362792444378470975515838058134451004757404157668111533125695155840971748384697836491361022267856587527980392596954346675901248264240199720816045259591265184908084310744935133758172716117301697108962365563348453263271998520504455549216199663773707079727858815014830636908175380402113833447525831102325488488628623630967484230039192415779248585983404324314705760247313098754025680469320958356514929582259294057875014094324835615130672078180449547588644662220249460816640730302140611296474115058552344092629342596202217384695692906809751660965420874800835625758275627434236108895653282559960544751939478117253324310430394868339311430287895388060355474188689888516044838233886626553587713574369144053161732207196250265539375185176024214095914201743249157101148366864727410645564879614338696280823915237786307585107389356070802911591101644229758198126581070572090386396386177355633960365906952433566148082053511552621081585634360344682891883280457912314372476507518274149872109532542002824418396401998067625886424000665144649519687656111146264332588453640350626523752057092085444140998377987069448285536798919496986136009484847870907249996688502148600686242211642140366826809080818746998677937461785540697928324265693152140958266161244330800087017179640916821339151104325429112961784752987093332729836648133573493412459397466106021258247263225880137126473072062105215160222514730419824676402180357427546319120161297182632148937598782293121078115070535539264363406635302512809519537550273637373927913096348943512166955455378572559533635893433458801074710335229144445166763382682497682164154375893020945567957255774343902275789299096982681086756519589420187534246223344771169554328450155976392543584713767789567850184719162044709481104601443048661957129858246530510274006703431027771576366368141315527965189904077984233414910644784303271656050191769927938990685260091686312530043011775061803569842152287113533106955682113951159544867299596590924994848230933364786267348232387900043847905179709669060557047836612884745528461289748060059617898579371735678958125723671993785337749496599870231454576446001195889961685969508112334554104444156615517097791461135694592597851369148782871112311541760708228073603704469181747175507255340953205070839303933698826135391992931705527009730873505281616446697092057862834546701515092667170165069743866216906812905726188264605356770933942831106789950766035605534262478388846925684752168530560183857802863531540561575796827589271628581807663948321344407152185717628679365702064660895789820230096326190298570564809591524274115603660581214578858888997368448456625532915080476356623219596026999191382841127535745709472315178922133522238803440023959185372589785135617512634129520096153916008360832883613159025011732045190605093633134700731799328010345579084780431860199220943267426507672493941664931669078646808799041868118016822303340005539629286576439824141013677990233147230209372923977944348488634635965201124547386089251337411584537479075015389194077424136846312165677493342815527786396899407390289920742203062754155312718217889593470974339452207977774559347016862474573164817153170097908157207744963581260355162711050077389318907147411670775100924214743597243840371112351244186979999425812037310287317655210378067197960321138984355734055734524707473827260144167415683665281824690903635550341812946394604868948666013797615809079481437438157341255080991285756554449554718977926088176509188066546151923820399122387873019789609064988676580890588561076687548520134185921553322971140085936733237922884113091455098218510059397725654210243260340444410819058971084907726151448337755537529498106860960274354575786275074908999441562022672079636060611705798443946645092194154301117006069113097446208208679497591762067999579275777404405508059718268606965707207823966886374065149233569560280885593654059782641407766928131353982256353978678131732806290011495209287605510336373836567300191928486409787034416660705614420544074883062289630124157177312215065443612352998689349897977804076004485645102085476621665481521392426793840539237284751382671512938208955331099316658985999098526787510022407728288692149093222403936074747734408138547100029272169202792397163233403362712270379812553325810890434880806083679592425011140434785501122002883741311727033250908931288771605954808816415063826797844787639779115770785586210280495457736146976759566062618195984661977270471788859455726230793248148498320452068536912539463031973132809541291585090769544789661683820575361745542431877109109589529983057105609556318058072757261421246614145837483546601912239546340138392980890505350938069528100971189640728288117242567155955209495537816582028281914919016489774264593447528250356078291878418705916173543705323256352690478909884363387785892925745727443997982519438678550702387163620448543350569336167208799567829438755157177542557515367677548271964248451737966569011799318670211034589363958953029853489350840590733677639556112785138537734618029916292028190699741878380032400134600147960807920208252990740885795818182205450345013771473173500291749920776476927081142922719079630764739443835643894551536504202841774904136701982930253065038774242591330608130734419278091718451349916477993836227870401279444117864797420667787463878018606395775338322317352378923840253239136080216659243308059484071423249814740599237020603600206643895961723502242939598772374761976096529233971442412010107005048625472631258972550692288672572494836981303657037082419309846764366977512877173040582943186829715188010252353960265867336905381714504745459380504428490635677693343797061073017894721478526307485964223050288856937141734233725790660584489119638185629200536390299117941996168746438909522949613340261918566325809299860411041028330594585408612427698578430076863379000911742372169853515373862204178228161437745996354435350930966795233616920407174380267131528159599940056729319183589099998524323970883322957392729033073846261420434080931829936649134769818163204379736620969548003372892787626161122675742307775914282321661828550014585677208159593938363332515965666519827018286073614322154050782673175230635995106682225671194366580686857388278638223450599978412736523006935967146121534993297014978768406837895797797041353022081795791046737929318033581687692738578505838843280654332795005200295128225142294256712190402781085860793429696375747594350483175901903958899483538590063124157953029245882451929662452106262129604054790926257636347799096073876024354057229285810287506741727521870385453141079541059728634602289833302250982050003514689772072239416279416346077576123165145486736499617687569106911310368816835077866088226474299699283107246873007410348570119614422345292331073633786902674304538677818801083560413923020838195220508509765519750345646112831028079346383553742889864044583157897455233592516656793707223131478099291092452105072829056496876134887022932469988057375721673053906761092907227798805166425115376490860960264492936392471125415331512578683989674049808832861244754112946949062078002972932639090096223764078322534492758374755377769955605348135706884328627620702887471587863616489902132711767017074649264612198748476513094074944424490428263557832592241345540608064514458400065919795172068490001815558890330690354927495874270845626229966447485109831166197275514251384016423990916744754216656594936850061062911319198384221330493653591087733467352109675768194565643340287531083461671860641761523340282271108398269613820051781360576631572279124702369770234289409786201565233732292028135934631317823513775614392189951787467125475090612993286859001118655637140360232586087874898087307897927003729275810019034896598182871377136229294203560499071564536983117868081321492216738801096314176150993749871005059506292370178189879033600631923241504502635831654474965865992433554959661544792966715194877667521682493198053310242440262290069783206972104587529019969045321174954381291514952858173330006725824750901313879529928091566610926349812238517573547795935925230430622871336120303362181763257467004809296964619212549079498915507647342957371602541955992030693769697054304686243971728508801845461819163914940384862085237622789166670489271411664503131696048205359201455760774477160604016473885320944126239765298429183087636129720368780115314467588957860180236161942450806749140033065629922313612325011915793521749313571886043291305310082142940716258301960155835903473149333248939059189651663387890109119809898413347654669381713618330482904434906532174551862901032562933387209489086617537305179131043324176698968528956520420757507540694084313977720783785392081843728302617388062227424833575006252649699276416127414812375589617075370788350834623198394794658844227827922704894766810140303139648490092524009317344439064872908796063127042579026714420601580800694008065174063823020591992305993840757628914969380684250166793892274827041718595864517037783973331262216804473845164169666277813726437101243413380594334454908378705005304643456356739383378227009908922221519698882489828340602850197376386086240766645765263565157892058460278994297294049670118067122282710813755661457736124836682679602042023581666019171124485883171034112567560493455278973846397130347124069730322632225990910450149646391139349768829746313040297079092317469055529505108066337793200901772686673176397492453571846400184665163690426734154088703305991084052676628561803331757241365689509083714654947408950888184810007988435149504550576785921807053358804992654231184871152386229180796850558891545943893721039957478070833921051014881960482706309908879084278246338873395418039003229738056888610755381967369915395645457222518215430385149141714753189616289976944200870853586118485944332814750584888157556823964337537115133380540397400073841243277814158339704588869949974752133745959788219288797597549482554196013478379281459697570082654054221676027008726350453517588886107753302924372599956155291906073608654371691340368947770971607741093277272726447191673046061207128614003714509687798451686327371943881539804668136301834754657059131767010480331249981360637600859071367564914385789621871402175571284252076777811512593935535892442901461714152173371444223817542571188747234724661955680747443068486862390419694038563309579295760965938060344391945364828491649582772937280205921787710291556818247261365393946754220357014534987320758070048453776001047185987887267096897346097854490024207092808717991935110357750845796255410281374367886664969641069201772541363928807595976965650715957021444340586175024462542395822608391590352354103737446770267208879980583660942697019113737081763330368867034855460307851538995288124179179529919563774607887519789025215711577668298119156919889237963685702226062119195142980303828118624862204193929143177979940335709085455450195882075721630019507846790097852607218588179420714813177147036323527847192385891460750765689147834846945078999512513039726012527655103912305861274241243233989764151393194579798370907828016436451482293796924006334306212090390962457866498089911170856053096725155029354999204970975580352945838600475254784332598704197670266186960016227965593684937778192482024656755036277461493213671778221678580620740730661750027439456203773228460903000450288728141001129272263254408428603465489309515935721109833416916531696656301279676039693885657748548846553990041460801185263986974576045212310227798676044933001357950056026723866753679627918690561118254965888208333990217936724551375899243306106300537868163171945404110628555064925201433968233886746203228704761534544115882211936984186992849159873952948357301552981661585598802548465259275697335128357518073401153514077000098252676375940412437189977602357833409132202025713533758675802717807029745660450449199588838529395124314862789964298891598486478966262216170088982392269371200617945320535709958667686548248399348755571776987102970572505219865935061154800825638442291774074062816415878741957782261173255138251812908717647645529395868256916148538404543106760866876588825556002434839389926394438519601936605979119506583829453742811148062951805858458084660778414103209547402655930116884057550907320723332407382260994125105552310643827457911201176365649953066920459856242089513198232488236521621294115248488418571957795742968370166473052971817032968722208556142753009046941606592680299538230383926185822689942148361931297223787948999032366907295636166171641118139856423349599580765187852863080395941666137201925964346594941999838139894577847570868776456443537680255832314123833682208481594742166389964021554374002263033048751404960127355785364810883804730502315745985942661463392888073688681235050646174650172702700681943429441709461673835362494716722277455312822063576618446638946866190046809864597387482747118015518149148468709888405160326319267959715495944954978533853192247409326011341681181180404839929049464859610656612441354717233936755179566770751414507969083582871945430098451043013903884444054744904889130997976946110142794677513642635464013665983204669448602382922437961258666915676888890216593430000418106688810331433010342411002082535281083928024963795580633974319815069102611041201912658835058194394184846247510531223293142105330291212309600699627291295163799330375712170961986030326065949801715925694221762006031784668510536905775029985860158274053008588069836325842669861137795665815664178854146462460092068805958232156569699654135569285536896453260359794341642366831519093786535666292930938976328488712716896954396659504228526334394821320753617810243543401057214076069741781445786229735029203384036266954122859180361882325943634815770914153702188276747774343443019114862616335602480648519558375726155275075318207722226581143797901948176449969877552051037132779845715900343293473152302709643627298902401154865254341229792620523062953649054832847815846234626157593286314135667164269972099321754585387644645927990449575596482941011358634265907299586527691470830996841314331597487234285984582487346219723622424957450657840065633362232065818578167709106776827373019472937762118451624869633546523595292651845761720536348453613342031945702563690978919383293254490468081771047209681090196989508896600235619670081282167904729644918487543992294986060435597297182572067872122381785199971936704163757684408386084197816617693651958451799854983055717870649414431545588739446435079210580261268241514929088410189629820956289387490987663910890811074698889209843432957908829600922776855421223003226371894407723521158405144458979655765664455334989955890564164021361500316622201037460946185472007052787717449622746235785275096093520223325589226087867419766971425321021806052265349847029584634220726006057344408699684921124621263103704685901989734852847791408517419704086104883147372874513124156988101998066545568308719797769918814961495649101617268296708990433987604886164757151428631646204427947154750951986000248552534007294312283510312876267073565848665921190124203099920911349299366268125953664962892943593714163682336035907830134223022225709570726230987591355199718102113861695263146486943887400415084715771985138542151418833434705299448868655470669847478482550691334113565261314090910159276579184571086521410123377188346020877822413939343763738627533969505810565443337906382486658080075904871773859131793235432244507117835483520580246718533304090555790668421061681207814165524377659327951151483424003881319151732021232401751733844851226120614867541562837895189004920469663808946489612783433684484729560592919239783038296406268497371910290006668469825021181117351162138344541623569242153716978951458746440322910225065612688140352491560273145578494280403693960838851760660192763836988859546116330048121338983662705677764830561629944464436526743445353327801445026279478876522487793016756610872894814766995529845190726883716279423081011643002499164134332481797691800428629915487777505920125251509627286600494428705341286669910498511439981738078990328980442070649639701204373792396879663110047204225540526899346770292117426509334151210954969539445310515853438234479922795520011898643124675822158993990446359763844417635581605019950537215012934811876307418633397415690580069660733660836842719663616723994549060555785046288147310623230732225019863343483554367008234770710680009081734672528054368455641375605618496767094797363598082226957123960333539161981914201385453234967767579998934447195419949984201626178135104410538384268430486949496144199183861777078353301860739429975332328117789245601473588081206180986721806555024054086232488624785190329810693036659802726827557478851282461433063329035108424330490818723380452951341048562108573097862592089375585406306546862571341110257895566322686558437547327347212522863087854487938222588436540497801184335243716044948965042659347504994925759860878873087493110431809805332939490208738307040104380086981828897985145610554555827823001246849846033001225644862307548412393120481521632967028603916271477807379967971738168318356488796975940004583647781074002631987248759530592765021440349596672374091744292954094683685260724564957163876330420692113868102312195992833918796025265657961896537141837902488043392733700250692679096834657415758925700918098855115810054924107071391416055793102645663382123063469497098332496452680866247250389717562784031100462854895984317656539865492598961587701173549748149675115106474226803915352892970323941871248079859409234617352281467769252468623748728889942528064253410522655338064206597819619842268832146899737758587399724438910741059719944724339850288567668620609633591774743758495509141203899978224253923083157546142988628972857083156104571988380613942204855580122600614403183256755732623296096473320137132481765842182258651709706685467708363270271517492491393132005157961812769328814757391206576507124778260170651560483232073018574756218109807898327228079212138971372716444759001145444983401648989148649310982506183184540367265471132222353356113338984344262900959875496074798351490352048452425503096733087025597142838100732828842486787946524404287023620545392908908425645644211354903921138625184001490677505591601292107042487261283090833834504589625494722064669203138515271942041356256324564475531847272266529467462368752317232281251446057928341035829562209971005657378751080205323309754457874261779148544908500740039984223748401409023619167138421901914453389333881615116876972347625009482981886460421202611779201319258565105065199266644161566769970811562539795080497216260391979266180541667646809395353420259736928888551739460386357352623349783884643028864567166278367452877761753708977831699601091757276979357038758017773960175710910251733131441082611220562519239742157528190533708567457703721259038571241754432944043416759650289336475135555210661900080404795746935378744946451812794213990754620534283071555796264530648987662842520199474446676444065116807963035461803335544491081336350644439176564316411593696128204506020524739632645488728431513707196987180692533537341983291741175139536623926927963458722239357960182292797436376096710728262161045583647294308824281456581472036227036424571195864941997966080165762673187894525500967881022110352160992199505631587759445833363806016332844721988879533173217567129141967218653397695388560879503966078942026573151758424030941048000044681723263566564264207385688737063032532211471967419476370539575036972506116841852072285132614323859655969642769486948825149501189257260806923384603470034084994564799434402217171659055743487963537176874034126248466411542545134990004911431521740310168636172327459920678142922453422428664811875779583863641674972312318218226739526872415760405977904994395710728164974939066188489617929484440365761591888259094656864063434657202640524736968885490196286024542426056220878006059477215100828061461034574798410108373962688644353827487993002415369505252220175154340958971586443838486924677801489050089536426112516266316681923211265844724723192966427527694175469616450293847777595916164168783907027952049281144687849040046009315107571108922507206730355437175235052556134453432856000479801357142615857868064690278747404999389865961119485737746931514689079060733116368429039183471432243464596306289242425675774617800697031414023910695739665402065215393890562429848810233310287206803652093352180594526900150195764186523760704379460070577554512114872100338384382204069172845855491986374411071462023875827094253587227805091044234798110323387633011421904144682812366690247517221888814795303680041961168132584980343061243795182481851255105995047054397952313115237860260097759811374385248935172199782084237522989161419228323298925253522628284396005252180415213347635329003006270703764418640710163755793394376582619667330862765396947937788687081675445724843967592118753293039505484658260360055322235499874162243555647674599551523867379836174269051676386857393111980710220953333153634092973974471714517383448186047721028631156356181869406856920663273801845561862369030637090266994285445911890094759558166180916528702367400773316365437143214573042122297731687956615379975701900007601149490028721895897215926645467783093662380320607537942582235642414767149229426371448124585104242964766050090733599883570773810783193919901527751699842181701949157124630009531988825373285767201234316700789678034234457348871467447672559005498566596337446668695657214741384952682459477990760911272633940487342569947000629148999505383261756793623380123976724430542514408268722240374240892453895136795653063123947915029899481247491668819254380799528442419999838028393208339345745940916726276900482047605759337969416187364528716281318746565913723304538529393007442552285755133928181998935966987427774032463945869432543835844058015599990783716890168369709460431838926030098279905369024824719479913987972212304676100626266984464307777384491816516858988710253079610456870181201242630109661845414735022574957047822220595573483241843961897678275754520991219092058630895380622420321278766212940920934621335324458342213766458484922651711163821340159716230893258468112783045065509404861974934170384131864743784856864359809564841915167120219832051171676535272650217368010292855321913553576792244507235837941450792431855872384341100809014278143684919725573640066136798216546397814286815355929603086767103192641064374343151094312265230864340548912956020342822704978615564527029412833581857704039958363789091823370712410172199823445982167387672164657055856484538620654196578200151705052544055440054750520126948260826322726515369573821522515040139249766553787318235995635114881656874262354453565746656604442233110868692309869695366822969653964163645715279135931652124418881536267554237585507246243067174819202007602276418013023297391033070167316174256479864683958220300943221198767861390680553981442103040488942355492044495783440737895490533526284576324419744754253164847862688476504074542928928781813929882499446530007260850235596464159884970421375451540878916210401256278340460043379610592159245707217572407194397487392413697881318715713749009546976287224892698446758192509451799141687616511778710512199355156384298315531764987499351813825985624607587124928692941867489832706775175301996148204904493036067471824020003151162384568821055713916869367757230572826769709626574614105136707816378083893605319781898923801839948777395223670729083948917426307500015018196140254753874992147139077336664131235592295673749732674326051001979878144061427612921248227968984563817305640201226341980708045599757117381172729221826248606164192418875575622561592682096529175063159802773277577985430301392523152829939174046494261256231152878131965838253403255575474194704286714462844177770327190534834873995079661123896777243524990194103378178043564379019118945760071925497868270856245215502306838493046811232289177976094866553662857621484936474343270352356873235032579988735331836682259971263173475404154265589124544475174736038130209910657042504306976262511785139660979584962802329292763975531012379616035477673796299829288438637919475222266160116694303469053356232942595248839344025661733442378564996733814034949367678703557505009740814653777547743724073574661320485663712934073188198491981321245122231724271248198700814610248750195487624601794202687185981141560483853079002759433485361013470224263964712012311334545113229252468960096917083177074986354329993748155663758066368986720238184227486375336658391093731851895360825182183425842091046031508182128183371553275499378951736734596043401394439252639351427310024180700404060618839598917460521643214388118884225880400575753424950117640300085247479585180944577486290279238241493953424459295541950581476072511386696478833358978180780424864541280719879947605594785870505152489776947311281444387067557548063707365932624903877126865210989706602736283896913414217895189543162786076707095764815131970621831214281181206799518247956126366278405049608632872809408828051468455100724763465797416527999460514624119226884095431440997761209058786463615985517246584218954606604035844571197344559476462307596937039924960855721765858648554592266901362494187544717740832231289738141130907296566689537199648932760755880380977484138207673071159219435353451006693754046914209363543708480013937967553374279942898552604203932583354260695751663538245238682558607261263298931640531705793673848556054818298047815073204430358943965386569869963150813635935900937667054383540872075477256156132876131659619554651082007091283996629676151386789715940855276222848232554905260467700152946052009381740890336386848006002967908683449829180246185356541562882548070105079596797092679045199245702141471640547486742517206187586640676803654125922220811725109822294030907670638482081701608157199325577718008469073768373147359522489395889844905497568391526837583931079019822319917752805459263143506072703848891077037923796923131224625558733113841781666445006239964264560451631377773387996568257290162327289051814943648736148533802451343072659272437318176079718967946449229994484705210459243054456088402765528793226258215570045889842115640977854930738093360848523775636432571687216399014676062634254465086294960689751729520522271536739098591942288720908067451139286340560987578105550398539210829983178414547300466775696454428662244698287701340377150028748400011878480762203084577614887016839096687270008041907458471758059130903254752637656770213340367200321916679476974318483746893371720464603473653747571626408293787850643255268435844213313532641949214355743119156360293849809006605911591097712253058928334923807481673372848027654577735824575837374749738608556107368661775332800961979974833955034905843827627380094884562508017877149109077838142820041300999942348410872070628257277282052640548091032676494609537783419075401552536805451246867729919222533287364773155346961486429059381879969713025216447113976630158910250117957738417700276933380854130974494384417542011581745919139228427927807031053488997041392314658608768881726947671222910636114235786341151347947600938576909348078119616021584686655058941149629880418115622214554701634553146842368617307085029539813235535024518801235290397129171426260574282970030170088728270196123405525566784574362173612045741873319912654321576814109203275094094667947593289456398216985708997796188995624185104411576033028360827338370601717572051915708221388929450670324843563167807848957882048626899005024565799603663946748849191465061003595120695541590287067510430993075570766665071613848261636779431779876353518222131384897717367876862230152913836411986882204724112008625022812207668574312831098442505955362676086818348608792632249875196391803295896947953838148332503121764228285691733780142371930799072751480697539448146499676275943653771899270225267029832847544318505825340373081250123106082632716405610033880059176895861983019442849847654326550395893163612530788918182252708420457707834075464116975938384500512451202081629819734064726591321165262988886188213163879425476703830941120402217494164508151323486569626536349838981475100954648315596975317193674821571479712266712692215130479269686708614906060881861955677727087885414744567118914607644855464839329799701970229721624893472326649082401582769383188801433946100387134967785201554372964159550828000282215330551913412684407013544800456306186043924318032141974919985277491786826472334758152403795996336889822800486949723863237603110693015761483206190566658079499514823116261424393985321116492468687334308283281311793530921815739604181182885927298192624086456911555212214791029405508470785003323177413075054872272304334499254146329148724677335696713997015363281107028996319626925570198232751379777148147942199571371388587133099287559455747905398853521941534190098560522150362378086703157369037979749726021964059790668713004714185087646944979603772631035511361432589427512202423511284399860691968157443919427107624443135144002747668790694912310083551916582979120857208378275444583080805310549914888458455558082136854108353985877059786006440976302858658744354557617953981640143651508229626955514472394859478180355556665237218988228318517136899136708449683452783438090209965740749358563857971008482789249801389416534783690895316648488101856673080758166441263615894262995989152192368598394639674261440065187223868632665486037950731461231014256162629268369576214858257278340738336803393307075989281979321259417687114584187974070207374809736611598131313125941343283594363110962165450851756734802351696731955985012655284855332822026475294319444729002005743827032703383103846115192073159937036781738692733877179474417815819763785812796775029435380946513368520759580307395677001703474914842467850176059593095890662023224467726324914486706369558710044715362175549236646787516803384578807074530777914654879270350634924454884047413783811296821011237821920584165027869635077981813940063155554972306584440305977269941180148723992082195036444754210056845753311880636435199283488432301656927874686890242129985619048655979965434336002365298440696555257385763492803969336662098722271538161928904617301439177369360606653564615991825814201412420723003582906900883353365498837104474850281991679906932212472177890099282773220745118201477277721146507433154981567560793005719363818246457693811467699957284596171022447318386013999998653168907832304508537121608697839287810265649853483859512387234650195262657488708289901254633428855237594556688882714050763557304688711387621463798487048954365890648477884089411206931625706171584291333312194827990265794736474426477897483528213971301508037347341210051346336915077113479161818064464304840556912131601678288305829092683689418018729761478375591033744480014969965074865976074161565218035273248341119371413405799112878794913201912363907840665990022255761932751834759808692316465109003705000902438336733676907725463935890273043209738306591534688732341346523965211442060621927936990352237337893569333511145374361185931875020612139844076611909901730396768674287519279321830324488122299327085425669072533490618786309734263798790425459493320540279289536784428180383927305421041829159136758592863733637662659710252062870603985643900865950950061602720964635971535002456164418438300936804643997912873740732471416019764583454440118495271304051960795281750909529263060597283241624440833450274887055212646921487005580923774919831006775441709871202190246252033236072369280578359925128935438857170312754884374931241540806000992424044509890669802106952126097443149187985838729928701636100695248904141505233077990330807609747515191601143089991019629556389533284482610148239753756826039870780783039327409371217629694749918461235206750490531069372602258551509888911403971267509905255643374641512231146084911418878171840973520847460565179784541599414345618457635540210970276806403860130429371739375338282737233138229983552516736584576461960692296263859190952449604520247901677701779017244761809738703575816284448330795345963670359337099833662329755127397072337008773381828184252332097121284529422349155542710118057029272329854966689019804264775824887667146674840122783541083667045537565871565846030994924095687125213668283610769627611116061328231981246491477430789480739603466503548530798407144299742727057593201139354505742911720022609134053190362364791427271302815854242172892666625251592444968277986770701807769658596253966560577708985174404201784585037605493341051621972855911960979000686356907038636941933591187155692866867678467787462723062617406742454249207851597854482249719287024613597718657802767715905927660030371939774715491392281277638314594667867541317378833284669506341740166609100930172727911001212298132507091988580418050372421441526555895334967809932339552276354847921883126516564167043694976614280507374496427200480904727645458536301373662845183386790468122451159762823962294953716033381102463674020241399839835107036081876747950258702926229250998630432853248680468162693476625380695516959782033923402386876861265652569619660487699596230828426331952966428623266575435713564070488198478015893024165274719344632482221217598874218756459174347120637614781583923040106799112165715147785577399149221396958324353100541791460988801047243299694665789872817397161823575775079783272461629808771389501468795945678641886508428524598680999379961298129070075923576193871308920099826811110692906930570155632684838426495160542053079833729529250496571713353969168173110394616375061092862980697069197685474576673869119565690486275229204728381475555856027079041141159746574140058539870463870474832357065980661987918265839031682669697644541841280994909443649629300902144056032775142728002367320726565780460787626388611179744667273483578399178079684238363049112061586223894998290731567931186158216874733298918833983013247898667515791456818530586789536773689767026801505321535236535920392422703459136656731427181697016217551494162065366932577700831554851337562630623490940383997891376616685807319472111168621261047205291814597836012108200008757330240288468222934404201134881483175679750930209376110090555696491635145279741931722348090818566374582654484033212574186506095152571938746356269920495006574848606045602854657114436559303668742716362711444313298313046772135192405701441395781612028061546517103806189722781042722649790880238989186888228691537902825450679679249892663346966559917643533200717374156806074881925014036441373917673315670715604860126583252855500684137717673625843167008766031619857931248520976558290537091167084752698577989860976810170179208835420641874666004046097800102594235668480061013203552936552423152727933304852673995635863156546061007946218771446515648285611595496944543809277937108632424347743526269127961519646519496222042610914990859143588129106655924496887437383435100898694126039656532933027601569669867025793256600599998278487439509314406585380334531083716814100230015797007738360392647984003644296194265043027672878136557752402469973571342881528962953720911268187299540711355316299929677090774662108118328580109696831860635124812677229344679825543956004508125518061278578734730918868462153367276299593419737750964499680367018390115005940597955228550265736562731674484863552402638036567453284725619467024606950929096333925143351512963121941546139399144422468753383382656056570619464159092699237669703621772739093765336086300630927150047763464147805938216037523677342117868993130475933745318937922769734201477301011562680255448408554443317995403056517927849894203628392299108881102605574240725275061591620395685003774000108278073197703383117407872009203381615666163965007931980303494025905166168251182484962043120285211995090840320600161467549371351933932580837935154936830623120421210389701326352794598663429317613800706372206232996670011853732291035983448755613794623887682897970783281997362336464614825948256641993354601981742148733174057732331114956035580389790724034752129846220109902287252451386696887476951315854681360082822017569774831252455707718567729985659460489605672224493013676419934484804079773794996709977540578265246632365651745649616630105492042990698760314762622887228246198346599774677157532254335286100199122553518523358506643213362545236657839610678534252814747577526813798997900795554284728408113556007022356838657182690305195237600905755258311569281999685193058902198507941350729564751363930060970511945880525450381374174009770371992269192511950966779951588149433873364547871619524950185129696779287801097698497172811421145026539561070396934859380336167277189182615123489785819469490981917074080592973041275146190084307205318345365219374807345432232981240456232262997988950876013614676000016068613048184578216482035536156332474555862277689125575704252616194157239352402325955499724807921296646784546973768762478652713408426546593352988076704320375282967417577730332522872104529464807997551282676121076273845631784617270604706291390583066342700585349120649338281379023207721360737461042838961637743542387823917339963730704539018748305714239979189734446310538860855976208034448547366032842935894710274468040782956976587772426172189206832745481423710586617055650439121206564481863043259559618776613245910897075598230983541078766236679042105986512563390207708746622604396440780511732662302146393309479473882983516394871784665027231536597447619521054920734577821693609902208230512024639868875431405069828845128987329311821369678289003160067019372657344444168888932575502255793524544563882913997213667600600749823325718563407438123657214464263876464561587082787129135716245373865991838222828148329560197290144321653962931779651587413212543285425855268552159942892547234547865437178307856168599128727955630398773543386577992913764651392385716697757681988416040478272622490218805721472996693180203801691188362997279260541661147711550978258702764072330204477533251639597541349605157283220534976021925066046400545719233770550123942292456226524886519802067130775172624008831591476639874957517638032121103902619644568051950976510035006769688803949048945492522109634657344686857852295484160054977948548488350518578020871161280604192849755358110681989924831488951182289339398839567078762946886612437897802019621878564764211124124007219565795214501354888195051299170619868456145652794666273979312805527505027537277335432230122624122642956507444868096774662122757022731682962860914398888227692377626797715018559698744990059903811249209292085548263657906923646158964172741031977563836389252414500054741888942904307222723823480000862866105589912741315282267971210165261310358464733983297011263101085061127357982602752291553275402534208772325709568274648359158435682948828768968795816757437258806587947373373364298465971909691635607501450973430381787965571362157724987841198893148523164179588274762511523829668296289277121544079186483960050516676417874679134043963055141876590450480808356539453201840550708308793137486265199011889169672598230149477493076603737028260080648168725306101416665961415248403228869845635137397654690413889734308685525732078426439896097857988938599021938223171517966202001265629537691583776328319006455575031433249530739016425754746496004800336429212429151153151545011359533110445176784709960204629764757834483547026904682307636090979857707884104735609824613729423982170754291064536285487024713093093022293578175944807396709637750305874373002481330750345273921957017753856241464413033916156430855509966237158252236013547687258301192018159742188714625417782168448940296433063066848785914933046722357127596962499790550291472478087018778052239956634504860568159990448243349525176709740287100936784351934087525462613987130349281539208537527096431845312234441958760728144604943290431180269376420910867169559803250207266930003570838840148382429843793954574086981269008033891959660237109685340878408120049355483413024579519503260030601899946791820024494505345395602360046174189526195314743872402691257305692804994115302187271444655835100257976558934444709314396586507063636345880701615679318677746078536796974814755679849063266055532603211094150412024578918588539396942784793184383376582056794715137498227306625290259375617850832079038656468838532960810635294521813957772292869719199179766948119378060566558085015345777710320286355837172920954841736576719030881920825930876634476303437453120764711023547022831851840659297573430133763924056746351914728414313756721219770775714562354769367548876030048265587721147204120673151363351930239166815439272642251121837574111183837131044131452465083288908432215594888314938823060031730822250089773776088426436833269497668093518620816974029144211313312612101092615598349144955381571445920112190773545328160649954442709299392748447684181364735277638116975215978989081164420639245145559326175262296725510677273991339685465646960970581547670727377549939001923700255677208005753861240536468914770474738095580943190827052737271643875462664993263668267821166260685541566798354826927051711429465615361251087823417983662768129807233342019013549961119564194998849372285993625809196216808668291320866090825076280751796338983865577308450677913418405357657918205375823876689849311386770127608366758409557807028651811641063999741760822027432761962524093904985925927478875115443582671748013279468787308755443218446534347850046445176258028460947343240290063139777529788267621155077964524825643762464482644844649665994750574775743018572438823160201984485941581079793285023309130294224241112768834977886760746420085382817800286486042032145963564285502586680854736868141339519149950834151474324029601111360703191134055694459601791901146490225749289399176388418727467013023555466315694290469717544686146960838356652632498714660162363588031209912984380778780475897442223827939194214477395479087955691026917238693372780241123586450143155984447240203721513345244520350261008269461334096853758950858385280891670574238210574406404986277158955762718663081807943120244286302066695430803136823516427243966758045394176538822353187786267295155663219194752172488969844025477503953539208850321036161804284126867706319496554723849163505510916950548988721012880765316022272088781378713153649525292094482612834217646963098930800986319295467012728822831343562249968449751507610041906514638353537897607188648159575599785508742358169471287282924793100511194575790016049957940126532729392883063715872036012119676163919260167885897840516452547679479313960107960297232594904596216325363486869878826413726757296342079834982337070843628258981154364016974172637138407741353825949150977297637512611203248865710020384397288301806955294050687832118203524773372036827432175112028130464880800290465282939018452440746112243042842686848111565638913416845185675215289703087728630721668369350407120066310278684052428382554842325871494089602579834063553405530487299056536919261325315542086450339637221532530242633987955805381614065803569948635443159486920137300553773727376091322157198099322718500518470850616115955734251991944881283535567466672353578809341815011925798195952173244918948677958161364656866955214332014505197505520469141642127664788630533033108619894865536102509791974446494268652106648784397962893723061969058887396839066701401262990513938485117422425874929065065945702075151813280079994574641537932479656611509972905214052740564683014299192002549807048655440849966326470616438044170312180280872512923288459240450135382001868498216997907289637940033554561330740946734297893772988635380347796283898620689865291106743298039666337843030731670605223631413134715144535176519702872081206347771417644689350331346745844440578479762844204174754894589274372840016758588547146322628331257384562520965591325188196561637262492309568045604235282440637655679601829116483005891854487639586256181628172372362729844655302458135885792424739608445751899804319371677499656247775939894889077222589721275504907253311333526668880020571041834844984131650437978759864518275136413560276052001222849848563650763169990494186390232280787935764909874967229683894905590046567804689310504118002932112172905288449890875451604921251606358575750937334832343620769338141509172934066762057732796066109876809382666038634284148908498861368411059135761275218112347375558071038877326687851809753085187959488198839088997609557635326506024978397287024220400097097668100237134567682713706581402564352360317317307248237208763654535681352224928359322043520751191270984626610752632971397518034643456635986512903248622465130801431179290772945321438466063387181783581179006482421477968437709668882025696587297400275775884588746414103958197835576808511548053044188464911122037196397253232506945716231340246061512090579131573605973410858291942220824406991824637944659722859881112444898890213498701573856407697304580848524386735412504612798852501828482077846537910103703038558639304199605166126625258142627282973255472010073308668932465197846515718290940327843098655038320240112326873361812244002735939194555279045785109321007897994989676293262137467409839715346489416491994394913034395238739830874776795302954663037721919190811904019043474149313986102074082761299171543496544095538556550800983316090782858943358998625584144281209049786253418078960009237795536760224797136070517782733417723613983105937138642725230406996846916590180535668183213140231070774578845332556191558734974009487511787176745730795996441394363227577454006316691704730643666265471207289432747762048676336968491164907869087382396750542676337128462566737901145602443224547603366388216685344067106516582146722856861624899851615390381188399671468916695041067464289015859475667915011865015901512672942276708784051962178880380958281880044648921204058133093390894779531619531695182863698530472793991534310349679572666403852699777002946964126192263942705036239316942459710100719554263212673357603527616227045051875894694459153656375032280406793054995166157857630298106865511982094244864743159835224439748280814443026423435155180040290372721580784952130148401383926206438348161720097325814417813750992923303057953818246010539703674790558035489266288037719736524772312119638572975703521313788257624828087392190549266842906857852386400629457844301481437181423231059174182040110720416039214942469332323797462344744410311578886074009597539616122442799297461776125912988628571374082639524721010040590291271884807087236696325798111252626133457741473915889253888791995854266478481826764683897631468258032528048624053856794448826938518724758537323880120137524942812665651639829296804154462694207480167808652105958663115130702942022889083386723220883116769439461930635050624166878901842491192863038207515607743139140546687318640998358901324849195981057789236875574915083220518899579730537602256672127867290887993905683207028630581196044397194381174926800933628520316624516357648722780597489366965173403570484046803238586764392402877109412845711970637184897044803617936937861543094246520025629479714571799212013667975939310460302901700690802090217142105842825495795548024071466073178370436289068024896136258105636074207288163273186601456367134547874683855414542379359249328919490128554608329845605515780436206258912072016208220448672171747615117767932740210194884267573299178796537778456740439678351140999969857853964565176323136107073399054572620677164035312490223685810974283155433275328300879219039966511425188220897317049098388477755733658469024879240249822744475660113880174780081557950012057051008800224746001467227994681197537648666665673385726492633792557193520036828340020875610425273115130460405476566918463329119467142759451829455014455516313836432928674591390295326282061953454195197024065758291447415630838749226107538134270773169826556153580128280199926558314843245640668238577802579418469269165297300166973913065433081561897158840063182444129177059620787391798238190076699974995328069742860043143347125279993141734604856084744892929719461905389962041592934209913920214221997122199349324893037564320497808217384720298415224422825355037580428159580377824980690817774016789255970601151631141117045994563869867767033738244417616423848568843092014642260199944940059636228048247247394833187619587084820702660425073151716391378212677152375410720437353869050917715272154893940551408752921025002958287183703954274730544618064891875564119874457657121033918083775843427505760744791423589838756619093422518911202456948938740357591564298549775977701974570417175692751798708719847032323515857796327698812268037767267260085201904732556945766414035591177280979947031941154147837527460582740422944901093709579205534416116458942888114207201640481588268366835322494266975859059176402621885898335177396894781931619632879580550648921156365459264418956597624420146748929725651408678577994357847316876520799811722294601659448965206685501759404202186168684645581368662153240975395174286954843690300301639378110520739757253523438513718272186005148165558772036897580000019562522995329963463048137136769445717126743037703019132823633187460475079395050213888622573335133989440788145606224761176590268729150880579397468213263876629636832696410200450572774153640445783432366160758804706334668360610652456422499389972327175595241555762623917036091458952733097474486013052577863250849571516303753594335851341089484918201327934277245504512471267162872394628026492247740509263996757071694024961209295759609492194726267772964251010807450483783947861422251045818178481712561912601554191992254532207994220287551318905819311707590308840533308844725807881192989568967171104018419804997995079425029001147545135084922545852365614910144902166919222640553008707644401101595499807658100626032298274408686120574346654330017993700060968059620194803644578456892472960490573317072446078390604764591652052207720556161754888674828880184681064442677576130856396065806640225052590352488470358205724138083966688809414152994678594602464361100427435191023380665477291533735072028584946380237230899799332330769944060884842356329172867930772821138558668292669665886743908234047091604190286898830575210147264485373709213903406562222826335705722162381536977976808493520825007220641974753098449766407423977417564514742495996050318584849602927894353767777975967424092196436781386788499612993033539324523350936436236846197700906948992381687798961961520265250543756295968293344185231934825095799596393017741223206190670833334852052923618908111126324368061722625033338702922111089977503899541392581335950096755710729014454987708666289738535099300313660193834861893251866085952903302853829002999846716112229433084146902527768966598516960411053089981507220103201229095519596146446446411172736169416185528073252824685793344049362788770440032334907328157332605162414594760076895266677376209345186510556517195622557651088566598798162815618719744831848755342822411326853153533131715418198259501776120934220317895129627044729204572623186767477351650934197096172996323388674789405957499904968039832290952378519042836187149198487887305561208715471559893615764907410327063124458736301961969147727102183887873191356521721218381641106511292695645693977898906552643062577728900587484068224028539400017302326888251468112660088139824724328861771885068825361126076065006346477555809410166992011335313931721227282160497449459756572145280727860843808948012813664736359383509021107949862855748175925551283184507821344408660221022659289001810995383035634285471262723029751291382682399244530230165140095162108554084429321700454915634354462334177076503086501479098772498553124512447150765689168445853146278439709428148332215955474329757671442685540882294709814266350382854873680421079091803189123708115041679981329767936233482110846879539943035353883249308898065135163967279238409792703022959806783844708690969037325032709103824435639935110673506122360087131681159048030194602387484714473272129277699412606326176573905474935512167902484228744161254126065498619080542575307469615468092612137318820281361963326335384578165922619591478187315231133848698714088469620885630216083245492964406446878768929160597273707680388716649969622628313836264828248668155194140324655472322400296888659000028065263900545537203893786327983756681626371790346679077744634908344528354460423999555116217779423035201745473829866110979172863140770881759686469407138617284953309270144971958077099291883371858626974760764613517647914592013926024769206391233957478115913623044130713398482065494128975494532982964815269763972401813372260490511723800942731472809221177987916199494598573910474952144071061465441016042216702701163164896166762727354752269139999064722628102954830110391343363851932702207460133655840538608677375389593357994652789191180843500600602359247852750687535135304683943597228902618131567503088799948087928775953752911349248374868661540277172134441289915694703545262303917184008410380782420864918899330172416603882673908274445011457878755725141791984052074643312633958861994862992745770109661593376711948405241978996357325826155565246747160277023708266214401561561815067372859277368201950038665637557933636559665702576046851419610485450988831281561242536941156447945973488874030298832133742449004770452055806380338489346662457488598947614611030017462405943878307665235555337874609453015562965636900698576505220249781531358550243681872146222179379539008135920539353844391873363955303224463641902910735774756307943849524620035072458784245866297879646206304392356099022663690140556909848933251791656917675562000816379639249759961683793639091072619480259375819595920415845453900494147433940983539941889140670420041302236316854461628565271887288555386002172785960067386666033416468534365672516732615972638032804460513834887138274460669867187239414790707937552848401441885166686292411334056688384915419274751266640271906644395887329019743902712591202747061824308143745378819903724260709475250076872397975515771531824152859205373646778321986910765285420145497284376138829353607599849334618089681228809773341923412752237447540256198176023202141974850961117791105629291190329112891504320606121080141614260006879597411409530320864896843774463045586202168591867685913157047100005449243324808295378491477625932673785253101393385316040529358397989977435463675549850977054567354302150370222190573285721577885952238130590312509793654727588386335633985580884963959618277785982615257414141900097262209647157770633582476321724916922483133042155631459011412242845337131954683644478840748471000597061634330794071923868891277448870949985878735982554976790913543534299505536797427388017732486914880505007097182733435118853134022903541165941934571582520994774954621746702263333518852535490328970249841321616698011568447638761839048102308701812742237380231546180775651502226681269304574454177348487905547000705267803363860736255394268828863572547924143181231106152908224367676757774683493875369559677282821744422069978652025370103691216781046147219985908845626574771260887594224788029510135719091023992777108734733088931233577421427752971577035188076151527325603368042558783241529849168282313516937148822478288338157152346171982538773568896127331949147594741597733307812188398541499380550558223109494856248473214603957044079537998120165328762052140640303360361270058953972844117563936794153771303653005654959615255325020889471505869358497530446445327647479650334434504066589260239751331361028365296141960157253147646618064243627101577855848297953044334522849843429300026017743921614020331990614558706144682262366429239668048162681312067146799139162125694973687842734241461454302469989526917985820978584357269418387136920268744262415976485644577154829651030512924902002409629849766883331353957304364060318655558845665721297328594796079651285528134447957988296637930742503967909593312436354451375258699095783583179970603463485157645761997618561575000410926307024340171654772879788451259143755879563208150082427442739852997812537420145061652397005279351405381198503032786983365725672508315943228618925114237892655148170138135529596339995012005396411689353077849805788532726407083263092668500842600226098075662734474078899606199724333923437359637619956119605715695261687708249155499742051902829627433205759764466032224951442148886408168193549963475573571698055627305247998020351414377043354275948011565498787309653919948424607060613984239010788232704926637471506562076562333941207679706990016391172463594940833960147846847000257894759198001651809988378296094187232721443003239492364134026056665377393136553340274826447368757317190596826691623231624710881515445712890565631327296375923655610891854104895317535023402814690694061537889229429690239641500015323383285344075767207219106843962838168278767710277426723831166561223540044600927626931539301985724903819636490776038355774191180085773650509546165164637870500004404682492547537151603303689833763947812958655118697301862170154627582038213529220398379746212963288931551721290068359836128872500595708186992778433631273740913665457261258428837899167082544292578402286037539877279827563660855243412448616227044463827875289557111701546279136621213557783155595269680966599872569686825124211104571858899651076565204983715811970815900868408057997300522156084201091304626918073801676064910455717616975525877577543108480544606707234228106260677620147558157146413361972303081509479011943243841254815727135414819233474965167516949266620134265512791346326577083237415715726475316165589109382379330549877880527259306968630438791175985187916124266412580539116970534494520806749685343479586568090863265018673727068276408048456230488588997759744987902592235418608829758677659587483911261165676666314734673399211353377835076745597389989210757171543984286596751611536334835735037603290635592624576268773088989373919879822872567909354239255694336817844068990198453036756945598635795589912557758906042674312902368999087344130607925985620734003030651026174409793185051496056070705121278598551156604956497906000248278684297584547699838088215246649587336289559006692084696834171786869633672062298419174302513297866421845378286443107082683318994790545083993156311333435708873156535755230524313297628242179515987333134612081307637784600167627804662989598938521443138270118555303863408382740597846787770638833771300332581726882868468288454380823226948907619944290670153540861077187139932424185894039670088715359386342324725135909113408885162994999240553234271585050908666260289420804621730741786298228914252801419724567782010709228812265699362766643242112266248397853211619509253568299436850446564769883284295080601677022993682397031583087659431169491097634851569074664032848171306233166434615626252628154017826099061910789294545156872657613892949041257006842967621850178447050645556197830978546887292585868658693456165916186094331774541940905628646020166146792619867745253530770934639139029702974842320975269193094106708953635484397758370523397778429228879067701668896956016157260684582277673564203211016705002492840051365061675549588546955613458382410350552421179692057242575322083916601530623396224724160130740351596175867599232494463054964653912911596840378672846317768198558032755505867001326779503154567367682648805939644893759646058218877884884225590092708193223729556385458727124184769279140292637069717467909354860356654589477998941470348937112119707638489609304279598954837439278469310315171730339244889326349076300968051572699461675632862423493806544523250896445921420783603286806545833743163395544998569367604033985556704649221086198075598500874397045034581612479922360619164425060762502125195459432514037232004761134154175291125383405324439517426403602489384956010041608111012877349350214601645472140479918319907158439879910009145154329886326075683163933692066269385667471519511191733978718200755363252300046800648846630939715652555862905099867118458478228714697829223886979004818126606975076632710323587611087692533480398844399784438922736682886711797007731584874925025133192642600869795177218049373495960327948401878260461372002976316086861110390001723847745259464305878774558742021294927082492284809738944641921127661227394810953471469713951739297915256654909550160960019424354728496202309002617921426148171162081581720998962998309862245220452160982933929462052963995582872980492548685892505036986213044040971743831558136723718110509397253511688675806758369488626296775960213436729465085892615906952198559706719985750658781816544306303974651076674731703750345566037493058052370612201913074169670688253155956504263449500348248721361588615505736285089446346820598532709003603103192239096413234695139482998697543520661921007359129920753923598606224449668108670291094899907078803548907815538232705208165380441276918659357388025218852755065955651071378432622242054410973001030874554508549907708734903790691085452589932643102016706095268716509994189331044941120398719744686466431033137894459638050653597653315232772520500638703386987899201471251953085911298415371223652765066998076041291964721447959661021204793554889674409668784644099649161595711718124845392750988575919674085994546107500486079830982600828694252607478089116183000432045358216807322141045755866458444434408895468283988762925748611068243661333608426634450998584581901771475652635520965604747619206536398867951423804047016809331196267016744514881930042001785732884239878801482642470983035996142955039986927551982531696272573533195137675577190955044097404057261440792489467787916107350151292691891886880029787238998377683474642998416521459413911760056169669485943901049065994320084563924600102383424294616328808408472633739142774741837728571124083682565229709557061341909545867097034707034016654730917943402303912793025067192592903226543440519860652639680784128587626366608960984072605733125745874235307077045996407993306587624746197593209508417490450292111221535284224349834775617255370424866161892339082808457366521164491825454890490736480574408029257894278577990359792075549187750739561483275108777409762564144464431287423526979055869286581417319640511967124142506395835028095686149000458390213285477874320254897149845309179552370992876705730143461506993420634749535673088344555837580241724722465685998663015210109469461310087730525311866261608561749619702804332659339230584507205610662084022613713237317891014100583546256554109898847096360275372247046530565863639767409879230492278247460488925710988646891744534681068758460757000574909862840629649353472731614634308845040256968307034423332583178840798424313939413481274457411098651744509000461970311669551237628991529528674342889027218461115987598538654380297294727554559430017229424689439751760969804648850396097483047292507701450251348558241773427658212891895597623674895262455509535724624872786382857130245165129648289012816115943737132151278960563398207084111422840910060195220377356005925024090694440515308541119954709842897996198774013719550832455095668534482240994633273974186676622235741955321171320744515170222048541956678428517693032146850267385265905006948742595463168092673086864403932811885069947767734293249708530918381557145455911489032091065634953857841856669929455725720841273941735212236604281891922427413303580844201508989194749348505804731852294755364760979575269977155076164444207230591444622583823923940038726852233168046327738293458410294289172617127174478971572780529516898562921783179581405628845780391877785795812671799890404279788269113776450769044350418950856496085607309266608895579655001667967772857242655682567756742895498075389401908642440266070849735719908801864075405635493192202642857359313824655775623941422737571906810951364019252115030961673574892495828966565240461571764442536049111973447402825896697060348127446957590997186481338812671341555455499800904586721600917020249122613423091762095255454743934730450255860905813980200684387701981684207552682283009446399195526725758488960532753961413766698728510497005399414800729117105104825886759763516348122194078500433770892523329815875295212841925881644945557576029977857131219566300947750112771357790157255109371230149983766188096200365185725093766913849856801825342238616249429542852955876651546091261929940341255341423342426621713294084204752476693532026060690746813244025934499628303366506341325631369855545587885003538033993448650812812935890311240954118428648345981344151575586674237595370544310869325532634483630652270071656747392972158874507953201882817158543219829222134903579581584227063290528905066129194128563196418441095211097993483035262522708748788926198647205290362486852692418213526456247783264612985988831551870782876586241927585533019135006551724270016769313679303413408508095111230920105839443312342266392684455146335541765854380000438388154474528754157143613674234905965283292034523424940422673957685072076611187479931519026217931868752640001415410986373416872279943644939927803415179364148188961259619554639465539190219943026595172213146672603523398308331003526792380789573469970833166465136646116789282118551906916961000851225976689867501332892035736889738837477564067374851768782138054298774520634696694150784102747209717104498285420681101077308976879510929778501790627353017653922241133840091399871496852493408052496887025340435988728444249456528336572700612276486749123323701597952624187283038043441016775774089161220874781119406371970413266365881153017741098646603082985219035156044781061428836583912820787327252976459654281502286271867844541802192667940787472418196899236070344793810730633364549251061867574864037607266767662533040195958638397595938166927342119608016828783801369599463427042330888769127613621376243637815185844038520558526794838361569052349865499875762098788352319562927673311228583579143829010944218591077836129721346723814597664696091375937166516784939627583686322456010512610007907325247433685060132439213769421778453999843646713730089969463754729001986717557004566749108051626591152025485394085955297628608290486596035049118360667497682725040971940634983982077898237991322115967361062373973862160188078020095464274661414298531117400512208320384172415674876875849503549023574721318197199962024661266430703353253261532474533487036561328150710120535362381434243728169960596248513286014664380354786979147428832851359856621112161057269479701671016829349129515339363448869724639128642084313479764649814644924867305392332324029475128641318668155318490375160819139821385803056343559765639943114093049022807262391016879109724865934352109364908511045915914948865621508805807127355420653507947624268709222409170125515715318802971369266666855323605282288260605789330222357752237506895498000259085770045613477135245348143441635630354551434712256530707914334536367227621829213703674392137908525691522409326411717714527811314980821232233953304067807816132942922971565439939799303481822529632811772304304906035978240992606116232349058050552344196776094211147609827670271972468193623247857713179173712820986675147450012310859378590182927286590851902892906211301244244304234606118890667807843192737445554609022566067643829868448970136269063245685084075135028559337743134905153868171971543428859383129508436949083631885950073882043342615756141340207336702741947336966447953957279675266117254921529556156496554817333646188164712241742179746860426082590028934837633747450257932072042059602540662860836784922141817141099688814554971577455953695362390942267533655540754852519795126841389165151508257796897514936673893634866934116131885467578151515963801784661292718077198673842530536100500257102015238924378908064593760439071168126583026570820283694505748181108462110361276424431423632773754845875471525511458568723289862957828245691377008371524747323280575486406797927268247959526995791736148926661184481680175505210088941099669492707812632072909548855088653277020751365066963116964193261553151856851078383120841026670149659239299135556249861288870945115068326282278664399778392193779465596328903318046552923334894751811163505755776722804860540260305071753562403882623247842480202895516530503142373662776345386195917744205843609136086101190875511118318172468796360831405131146025933229994456620197096056489227744139645575783258442425942528994963845600059329404498976880980256295701734283456720470478093035241857249413837627076629628877756658403453370549595311904296746313654090192358786335302935147381204158403871646656986963068184925345434997445066042144274243301201429278605708668844926573802679368577783422255273619462571562760535748624716559853883988622209747018539354652611079561885179334952265988582801470483933415945334808171777169653241585565538847232466745371425809928538523906784232331387859329253636341358304333966486834414118286793681365568466120992926784392239282187011969376874998450374074556623759346914666688871687832178652658433504040350402162656312464734048323494052689184270053284495670448911688453604321557583001571916370841673836991839922037025522984635125292467963048134585765348674942102446562520112647963793531731593507317264047411836442954026855388232898139247465381973222849802253836137991839776261610346866826582233312659507176326831712574817345408194030022106175056124084289773774397223818908327067407232671755136582100017577613024414687594034174133774682969932038112025950562653651588255198392082914583870373763691289518537747914115627159976612067574314567101964273096023913051488280511666325533715644285490612475016589351069689116772090129220676552315597632719002542005181475726647468939592114098491062037194736823152934826396795238827573830463173757475212472188619798547726426757316757593206121070314806765356425133352187507684351136732020490879736768164081347734178541696195126808277282948549725661314789214928762683146878933538386048906485205510908393716862937901217976668632961142671883477503813922452002055821613942536334497458303154653639270730830966447462842655668913393413105500769222522946614703255838968997000595860149148286728021428609353453072974283205028592130498160160926373004914412799302223631147732305722002237101625956406138369749012680791859532902982845173813362977653121193861342444473579900187203708952525228744901006528752568170587844844014656418900947942061024769416507137915672701279909586366675697015613383993618001221261738461366615447452692462492776344319113972058498361156418048940856254141998978909869026112859128586778117097747839313045346729499409688307504112171456645544098057225401944357499061860882053300849568955553616427898674882961383598406152259906690800482488329233103081403425691728906640558976044342344491546153437943836726196743359460298983634519039519013372883379384809016017284211754039037947811125825967951882207002004629471684956982664531549138461488519943117617221779278531046843003369859654703588600960284000718768756357681336570243312039933992984574769421539556069388588992886691458537743541710661668963768181896097026333152783249510957793302139760900478622798511890447919031685936787629744681507877343992506482836595965412322005869205114945223001477415701361492797969607865958636539475601452568482953136329480348309342263630417091832251252277748803554928018402995339798032843808549190204977105170301612917700843850347103295974701716272838699991980042679291511426491446315212928672125334046460895283438605498292785747249998924504750735268050479236906087852172305673572317785894952959539949722275299644074538584286346769743460644774903790754040857534147461719882951432775921238382073723286214803813292323738425542061749720013381909330556109635431061512308871138230925411379361336501556058491238052585069763542775189627510584195108592536652618346640912507341743271082256048634845644039600651686390586147747450220304041913506755413510887348233183557825560200188858955664897470663011398568859557800265469505877594199737507097223612559986325135805205172315196273704192146257623079902589313976832305671309881722877953346097649429877513445442135402679242716813830791918026447237631491963212926786792638394968572868542051107396194101331395344588419707436295898167008970299085790074166443728265938984846764657832973157164214222959310962453640376751008830450696847623512804744943100445698824344518727208052157135439032439331816806378646997884824892536945743387588809941497402616734390104176187596196789430006119043743030287688616536885203229091404543973352924771755754154022239239334818555196106726902065134204917676471169505384216310804327927619979046096037872798417783738588449346998158217589210230389327619062557312799808675409102751655362717994816670111704171255786005684608889011858704587479892577548224008810699251839204924418168647161644343440044605683419327665568438879861760414711638189765192092806719832036040690937852165400402034200503740037870443928825314266258310269317608085783729702470708820705923197372660719594097076624414619788536486439996892204141178164447695996124424656889815893844795059386835593715690698805567645297854722293502255630382298603729581367389665418059268905109203129244223342671126931696087656952749095130782236529916606671559035394967676563112355115179703684361744172026749245392333021032618522505508113133953328517638378783558159321387559257752112013267833903283940497435045676243522277224189689832263439361001067509558393373400842875108499095296534865537484259765704975870205114295051580360979261436173229162041427422730018458409534998295644051424450493935286178281007935331520203810825621479693885467228597458220588672859976619900066508209052281230501723612174969665288040589465267098853441897635007833311751798820556587004700848044328269372104771227849020918212639574179170330993064629064079342285454550047897825243011733864750723268850392921302357007576421607042487942039082731109687721694478731963487623235398041946179705449215615281846344710764945347623451326028562766808385320728256003177650982159428807114036266494472015123962900754613602260093957690565425790813067836148759129418541852656642791341403610807003636604863079341777516707574873272372884411818251787995022788407654210698114246391906307353101341221442880361571988012457418439657553106890667637772104223472386456661022069903186544724264252845746768932436776372639922166726046176431494050458791689243147881340890761728460483308569378548891158725097640258165601171853927524512937860503456285737796727084874617092194239170190235841443717758775046710764333014590944216645334649642988449350694660459520111623313714175018200867976842740779064620966017172383193290232490204899897274798116939180733174188668005119275400474476615927872735062823363323082188692429771342447466628149683790184134056020265769913097777735667607375833164264531415460862250010026406269681856087146319931315236587172038657664186946355633555159906281318067873412031573190145199448857700628856762190324498533801295509669114244834997102361352365126007753015096764104844273397069725664232997047016401621127900708590039250388862074389964550705834042292586150257962540850186024136510899701536597509544608470320755798931357654474572269437623349491648010716819667980562428548755093392341125687910525905728637514599239327636449356229690620875403744729508678474925676670533481007905340433929672272363282266200063530071384534246915682897897049063963097980486668986150792086783449590826064145904696003802325682416725877987247413873818980392340065706159422676129200299599239367937366371587835720271177088382550724916228565271109039369464865198429591070840034017744723566742514891340380676266847017996608372892534927007205504268544657394704710998152823813818671683504099946332112393664454526207110402786083174804009748727876824356869170066840092609963704570944248870968034972514316338242536177776489060491984239345857318784918681491744554049952547200847690143827556080197256983280183199356964046253896093637269627219418454222962605874374769179860910269984974732263064582615194699220811366715046774450024197654469842516702119122585225796055265505050709000958442672334655646360752303291590543790408423293368050819777335992837320178381676819788273632332897584966177692390911771285508556716004371028034838557233963602807109137279107315623679754025417210622491696009506529407804629179375571921415572403108048560204759079857670396738913655274756810428777054463000959337628317522413900162139775316188945085276295097623891983677926660749183018961971948839624246151707703125756599196267892380935741604017999436435131333016063175307230139849425928526084698349629119859591589764937208430385504935790732269709676873457171706672393770083361545971396441073963447495301874644519994253998502521448951967464669461552864463915136555076003043354633538207901324792530126678063824650945706452807565710070431569091285025286400896281813368115670841889733245328205277603201220816594523943145214913810168019354098398961758450169085180960086917753390114687656855143755687427123696216594539487742197547024855332316080103685976693103883827052276867288941576206187261628906076480794082779880884133368971408378713037512676739330902803760827915530594116216561025356546594948278920260582621339711481017835568099920380631057298463662996886618942407427302613771917264705557567326180280332279380158960632945843217006654142193730584319978190149677445970732817017514427083889437822598202579207421604294043378580170361017908148090777810707006318202329193826702711456563080639958225150252677234183294571712962745987987887815540017691819689277669368994327391567927494692597588841745382218400239810967964688976308292502236726777449855809579226942751866570319679930879333031731556290332228956379831136376433703937652470406283937361446749897489173866323300030481395454701635117307144948408779922829995355110231967666104858873835257218877842650952546580751509994485062736625646254783812864532208793403438967999935486301087077281933067055606449841884940291096507420442061773721888352415397401094165260108797915635136469167614043871638890995693493903323252446154793848004361347645599884691294170517339818553254505194144561317628996550446471800080070134275728137959103539299353707276385789993954953028602403013453153146774128398512789643395683746348149159845597959911376746932869357683195282370884198364878359925897564332319105063806606906004704719001042772501005207667984768913829689533267764874257428903339768870321302137469641945001216074066825143996060226671657882794088715957723057562195932472111391018865519588775508538390181508611561668968665562120335344340725481505882159409524780293872290412498362071031845021336700248726923458238174599874619265047884272066876266861564867044578977269244340295708038081449721946775779736694094190224898218637394022248126765151923412951455079385357232361403429915251778149614810498344614097409578699252068860375011210102285724103140680414426882108511630455697223371877508463441227470155607541218110829954896579882309620063269469601681619967994177530273995686795066193589365817471372326978859013559214261965120223676727190779813008839806310053498245219263544213488504674287655869920045108358614912928267268711803005896971241815582129768922128212740124666465090654191284557196167144673748964776421416629560654104360452495108749793677162303282341792548306659690177339714585816221797932779122681264956395152922302603106469513760539529432889343871648976637972880978439121074477639484782788255115074505783086502584456025420262193910871375181995816926565209913063769465129742132717382714141924062843631552569681242407620213082499149517222486415225625941421884366087004756858987680077320659131800409134609447138706383254383008267959411292134629035416908438440038492130039361779281577012785871403449838185553247135591297318122823609699822303025052054789141642823188293470030629078775422946225679525810526704692702066260557154615803780338754843782905382135843745790452167986382579904825965257325533808761632988382745331412155906472061728453077639882405121978107984160479306682914815522225858444619732527450462420864601263758527916727799770182702914944432376341539610766821281826774553822016775337976146840719308214857347796155706325845833639692117487040843880588970340506666819660671698021785265707777685327557901974067869465997828715506615256455740902314587315794061772805020819867234794780456203924220387589300976329797753694667145590744964098650562142308117764909976649446600679078370382129281045058700572717907635035554138922442659216691079562552772373098126724736444091238740632804276882559302630890669461402615201562638981297556064117088180729826132621079278846839921589180186991352164495635294429920859246721470552365381106711185373197006173802270405151163774619492025655347925990232367450836698963556039525507468134465528136168005530726658879504496093211636178730008056886842124593711267975811768345250573590874673611106706920912997509451052323078104202262623953797297646104849545912493764389070826224500002787384467005303113774192436091019088702516264693235853090497669808429152527435739557588226770739775595204120916358601917636391916778625397773561342037707934895306938868624413301059803998481718394735472420476216124511106819422154134073302518051220056760890251625342807924706792743395259328087350986084517607104820910638349942902775967429149577956052117202398650071762745151018663798997617811210742580923865594715813506674753498863001949230059205886381522935472215455294009101878286602142168340089966059189228647426583391856178016800275696606164203389514702158036187006376572711531856142850379162723726634215616003462445982619708589322671321358812731117380894225196577295343030696313910619594707429940899993755184685455094012518548748919528728788749550480929649683127997981763372218819508938486519875674877027519519375130146448018545691013343385978536271579850498754622279514678060318894441449163695161080399467740601290519366034182515073691824969667321563096345998280350678445679892895703401217788131558953099261328849475403955640012625106465174603141876535898972332814509923426391316978701378579097340678164510715397807205219794835143654650955313595578889371627006240305996229039228327303258123636619518761140326975177523519121764587754205163526806343043202098454999605659878019614183136427396153046872907621284960343271444016364022945295590373283767337284163255678328077064010217923917052631864107397559373379817786371559925258679957483778201250291025847473254441513223855061203257384449113982234291892635005021471913140247868066595587088204282566321328853072005070951511476806289193491626303394514240481008357783772679221075051441258817826181010693548550297554170686926090433913112301159093048970188733770834611791997860568184879076431406406366011624472073505379373741078033192297474593683102036416479005708938018820258291597592927123782011284947294251388080283608472147752263272874939403120849254336493324299738197887431341071960491636744970414384292311282129023150488705259547089376032470004743047867663872609064359146508826640730998388562254500745382677918475625687471325660201024129848731771648230490263178259406861598937547784394459031732193194103501044794706610468025576889860534411295102200652242787641427062317465207987199385503288481713308561803876426483327094355715075599323858144100206020304903758893404199333248508191650316395989392418371952259508128833955578781107071298611526861618108324560845137769385658301234018197129769860078796616084739015732776979381978663632550480321466677142948197720237195704521800360198679761131425999445714488150010744432890118543293412342814424021993357936701186824121751797840319627062131206554441906564428206189965495511571715278234353083975970763981984368444554827299479426802207758546324354495720309883829811991269330556512856622299640343724640586478775814558396126518537844663169236363723160432596588044432922397823749505246741435434100762957213364163105731760433848918078540467029702081790563450163717942604449109783134715766092125789495462145065033134309514041850878430735215445962324840263486235968774421922155655602976999757831208642028055456758112690671835963387155201957227108054103605740419359795291313580096420344527379406440078978806575119439856589089837954025989007442792596621454707356627275208912919687570869484404571973655319346144974115078407244443783967956769941993660904848481592867873879262793988715520042220521427713952215674116682562349367112482744226078744281367946905062003249282473197455669919370007841501414616633107032524344967197121176212231129059280820919142417303122989603980673902773414289163270768033302679276145480288803085468871296690157086867604824599397555494908914999966298794489886731428018830432620226197194065431429520344949723421758261064411808995164920383637368497775329940069381245481176491308379929122955017403437006745265238517945152146343878570211364791113447897813875302844573571099803813731452627123818606467203395855557090364143553064043025807653396966500675394909686678233655663623572491462569204133511455452347784621794824211752266924835517942656383405280947682667389082739931401815344656168916670072501354539417961080378044309834622186283549557999552967095525852047433894295661263768808585930359471564674958569967858246465662647950765426872774724024902117092353952700937750398481316388288441406693674319837973083867319899457335546821121214173484150202803114863109750859890961708057665929809229657356224629438686062461966747510745775917308339502311904705632682653790217634981778155528248847654790646773635468299583793697531221881888625551974195041060650066805257852259760003024516780466720501554753814883951046333281413724053389314679495136329247157469548209615427648102991604045103671489421369305414824206261164355838781551810520572880990303717609234329371580763162335342735267558038492256071488805103473741206790647309493406990636133262258033838355769259377110097515337123520940951950687365297994604399198139822547053111917796734820355873249679032614159032154915936044343159982400595142021887036963459599096049171154241851822953797822200424615239095582259987605855440173089314986994487240066810810993170899575534944745525457633138473454545369928557213451954074269354872313581161607154232062301122265593659523051334771073263753296408069302211805164054390319784830243696217486304477058670122476061992831030074735409094769846725888176055283767711948844014814037080331690011094610284942476226829553692289828950338117272538252390070433915797472776441550060570674364304028251846717786126823979590029362936010693361379705207520473780088298109851862872434162100188668857402378731992923319314252778683973766631701446852564846278432836802425999832796709037725477657689114839424823046448577234197537234539685782349963741058016223085386712707996438312155505934745427341695198216966807098140943284786798545814574656867118195515334256192450466103448926515514020281172621248240810604687630013817849628626268789123249689993813405662687107046203458110147678751409000857030935837055075872516855890392177949176911247798094051503427780876976522749315493981886455056037262484555926703894446816403181849683402043121691276962266130444661986009864211437102285426280622712353441754401977850139924258777342524721465315657473081337955014896191360490399559909895106596133168002461420707926799439029814839182525399219173246877968681523910941839363945415942639163020821149606623094703058954194585985914246752402329294411621714506194607234180084663293809905480424923615408833989147836402622026976111874984322378520427943096335145799196001050398562134868751311997053859352600336235131609698693428129937618488063019020885716357328394816653499804894105848876180880933468300643352017152008272307047888572399029541167751286590620592287568187226542467833361392478952550043810753766084719140187705304436064730563140272015535194478124612945716793308989589450689319314844744777758752361543619134023555932976285390407237282155952555205975265785570315188825451045796549730860124968062746854965021272051835161534836140029849170069886599539040953715283511023902738430184721988122704306455324257617661225286142850738852206778446548348139495685125097780850057944119016193182497437319212627340891196167409717818177975363875658308878040975260690241799742944785995233046815693482456864030820230757545635035148501246720680729502766193756408879629922079047243651705160817982738762008859137976170513880931603368721603054672003000749472000255563573949764302090624181992074162823077348398483798048878525726209033619110361220691866462936089978304973374837836629466703847408601606287107184314204100641191659302370636542078960218408131590045257349784056660966018984135436259990303007249295660657791100831455960411501517978466478796902459833826287412136405344272323162900477118663624294526556007195824331386853793662922405053755280414512201565956133977496011930093368453472791230125732332042669620203943049189325723116720204482379066488204463542421056687674896662131359971378623415817102151823423877017563309777759629821711070676267792653930757581874309262281287638543449256307107879222756314475009444605462292299787611427257286048997731004140503692822548563551250799157309960998947311925657405755174274523713250343900514388045196873646567348227628111215039958719375883642982422747349216661921189815785057358777168287149696208711213330795190332918564301935324583210084903756838766651030586870720155642255098717288275467377847794010641803613453614530263150816216561084220820955301283641974812540769151897437402496037868121782188069730812956055412973884534519843654988589828087839975366087657796801282232381259323110410577360010031820220380697581459099170139632966016644133464559313643908961245203638260495187789357082323979311975661937308353938593375000184998383973175492452846974644652030433740407651370331301144992580095929284825556945880603048357850250848676794070858154992601873840756981694859958280976492535353513684869452452996318605262489763898879941819290708954801645301426585162898268860599840863612652542982788266414145913404987773906306483271768875620070345715935027572389736502691258295557971814663293489019204429557158643971727381288396450673725597309544019116307003973288414022176067670987317090484537761498375707900726320632171846175444583490698573739759757958393419291132127600105830165231817737645754158956174537197112166941914002710365097968454514083486157935915644321030133647522424779516681343176352773648345964396525608827973230803982884394708646373825027332872803885508429689615833810285548770717833338189325475854966771255627669125231815283345435998234435922720218328844632142073122095740181642192749209636259217095658383995023212124427712307459997099181655787307720322519664391209696488449099451316613024007219883784193036671349657926061326317686873632889171224435059791240582829047610588482907450172209023795019300036205761111422367698760789449944940993050568120245583901609515002506681603144081569217897958900340527064354247561182547461657515437596014352044518358952051249054363137688985790123555626583671555161672243383095653479953248896412164642698636396623540375894581522474808644211208482517394672369381320710538155958503594871156233224514943388446616270825393081185950818459424019264593607954067387274267538038477841921881273904701800587805046130509839669855022906808275787725482394403507143326164023787945383929371831793149588179032266608490060007187366401178021438702770326689271317296764528534082184017338827381224294570823007887185314132648390391948536228433475091058017140287998564116669144826689644897534694267652122781185750910759598977628482527106587393708404209079270488224943923736523898379111356372826280853247071936135058890405507565231307792034235016116458563137465655691901027751999743786009271658511621885812652428470682653639188094055698353142484658130555471353155170465238497310078184234805439117198678071247844267970008335007362833414769953691198268041329622971601624248025172156496176268479914070303592409855626015129167549453692401173487161717636123838084516513925232946059895452467519200450913150095343196266972504098490082488378474151799963548382091807611814841827509579382002187340449924757461102733323567626720114757162531223057683080501212101599308478241929578900539090199073870717987058247798856945973810809711312178792669473951031008921645057485968032229462519444669641694416343978816587561304528341222572629245996786529934856399787794937216913751376005706326758969972843916282182858253841350307168538399990498223895301113239311667977542281679943609139854031988033035919229181684707180773075566111234215657611064988804965778078489770750408965977884881804853865580020983594524090392619582907540222411181165417867732177110983851545617193080363692243988873154485362259755364877361439003509141667942809342378336753706858649434350769131650433083063567635841280944938779483591306912778366558500286971522269070670432357535955819117326641769788561656681676231801319828046865401433398980526104510075314136484391543687932712460070160660870588472755318109295267535678016215981383803869604929947996021669429504170943963683058295057414263299441122622087258568258585463697054888328284359224907261265472436889537601607155176992715788179409387404793132555609545199836599295694651757026396673642293471931445780575700892087845637424942848400118077260707954987178784417966416228148778796896941448800613192153843935669543777082115581901836451356314738644083867253345794235710447670015019362418108816941570522067186022216543888895902743782784337747349261283946815521903553734923996661295025428839804445736344713853633247152135365309120776472819565190633145016022159419147066038066412692134305396673148685208883710866516500807300512000443155315110932679079841421186703064111207220930287304252050647465808142179810971498929002401386668946751154515601585125303775094533925426425603214146111335117819818215572625352990058875257763573188492870666231640406451736628927304443921695704670855446406340088777940718188125282826290484153471640758499354710557767945511559925996748570202228528350332739405396464444250411393769509776623997408922265623486219019329243352516563268277406323959034290287102781775170779346312978293037120672665366179121722624250481403185491696197584377732484333766502352811544572801274536055554495162852592007261518322097649297700200273510851129202313483861259310839739909465635565230248692240789467043685248665323293768975851649256002248357407700533227010340106455332942529376811439003135646359756789755193890485295364684039168670228965377024595664971154697319951343264012853183970929975578444409541760461635954760635294497793129238025065367589572821736649003913223505763052663456900609480915932700020845870268441942313241100611659430531451293035106583626666243769793782408463572631800994275054173941167916911260245678429204316876128491008985155606643124649271973948736028469973081740959430138855606965918356805393603855637269294272975823928730889350736129914303791239565282262265826653458541574093629071609733616182168601757911945523545053307667380343664777173125486101475193715743877229991350284343018692901653035555819226857039137641655403745993983981293410475581229536102924120545686843157392861658445131733582641768693014851374080553267135951143552723103589776559182305091041185942578136115668759310696147698796801035916124829102748652569245035899243939199391295575084320837210986482567607168206978107371267639603644393171148125584067428901579109555746552164221787126030717719402718321915138252138465224391676733688335229768734987147945255583732427233076540781965589229292564292607903917341843125749349968997118876373290241842326804843315279511103350534933611099032516619601060998116334016613331751655827077137817834809473041441457365838052144324797652222111724907944687830344007761699420748390819481023135463068629625968476453386961247817360595560912748876385112334011794360795727116981909581957240422472140847764664754517617291159085217014089141675870703893947685281148587388045426727957603589888214246235023880085254282483767398011553362825502944208987953348411871287901152404251481973809707573589532391391797271958572782746440085511907915697190521452075773567415370503191381381382533987150499317856645996555277957622387276774425967464678163071091870247814262378687064140450853786347723643255801760551903758480268752412945487656987091609101104930451710869456019381230658990711627455688692737209937809963170670131758024722441050980915865753079071339703114501142011673562652959061897966619375066406985880118707989302413929288670935644392260015037357286326782187953184447735909565793484952763816844189629770263947194805190963780024362408275707514689061725019765661560169331757597721640205934498354143833165199920834105525901051400566311043882800490657352257483027218723210076475551104667392420491521681600126650412214974000248157887733173414316710551756193961396555504765699764663097474454131000680851892268094800849149549257261035697881333065240364362678923644394466143049733253003797477740528215048232268436917181881270239244868558948216912243084617256107349926300247940946425851588583375412431421610291910046772301760681540931022431955024184981639263305012515279002803950502269584554424730234625270383687904954335093957668290869225066316716740573805745046878421625672389272530937486928244226150109884360377188124743394490747292526370843828829646152977722627995056796742737230874765340008949908308285374665921592614755041971003522617343890983198989334017595582332287304112795554758325024742444274918216367133669937897320648414785247944190532347853318643837327018418781351942307792687123791616852983238065306340842319098881185249267209149004842002915724962780669043313131835091633596442218336314611859665214186259869556488551025678497835126645016783369631205726869087593240539499062499207191690169475205359893581390143172213409503534568658078112875415097518102016983514507930778065504561953233185119653238203866292827547290013289766019235178673447062171774987603345886404704238318845150684593926935479541635158076420650198515775142831665325953166924848696157451897567525426636743517549247721897003767042134102357339323707038788022413140819552644539673696103046891647643014355985687620959250432534884333740862997888479744674978783496951766895378668310081761478467148024294361063071953665732151857848589942455075180292833892815356235541624833231024925913440168788057888865157347993375460452185447990745148348418774152719103414151023016098644722987754660324546064564582427927092153280967715056881770894609443480583894430164903603799736537479779615964437124523476540510733944075959253522267885195587678737486484442748604900485180039534108794333527180703873822492531621622918669144642592733433964308792818415819621899549080838844837421742094397550207921473792821823999178891484270172268307412518887096247158583193423513907696373155247785678429600095453750762585960400953229936248944736969769073793826055378979232380840158483128393293495255883702509518028037699901972537430943287576266882041131324475457455331685113553804615950157519764566577924636799571701499677221462909425923463278550961811908891462480559646938980013875518024024091774498749136781816275857690287679604109991404925957280439499556909910984829584009811718675923833169964097782100458146226107639745801332169957148673324015393814532372294843333139390236471302767037989046549142926155110209851004866285455900124498690905482823398931063662161282213321147459914400341319705810797923514603563749847938412708809479107112236920264978991685043199078210692537798383283655051237535851599133951273599441592329586007978024837884459628161693454567415230785109783065248647273486237254239682481691349660840937880666931252060567977783463541266106282831951770510011563122447277505417777594189878230890265031264746555211537599647200832720396465710388428430275346898654134081590646970127093606758428057127354945642052986206554787163586356179360883314266094086713237704376726730102411829888640244537763961094701167803016924672450739702733406619133093994205834299364287662733793346670483608127610838437045002723045547589268829315992747466833044787607019207688755216341035107218347905990022645059417740138034968139601350202249969509801720256784898368938007219745038577927025214483955047559584147914024844141738674087055844476557790429398014989877721261165244693410796810452866744724871579108944290936318609856206660606502863855787134515546495177939368510881838244427271235844382350588456534094567454987585793357440051983763807588011760625228590532966504578280611982196585422854313271475554865927882810391531886021518228930980159389693110501247545323162648353361857897870348830873553752773545867660785768837830680019079111125173210144409398376034877766195207066481469222151116794846281769976556141166654146976927207676433778264470999137094908592907000436071316512393042339967362590990210425214621326993973170384703824509102035197441551182868472424439476335714701414071587169834132895011165613336357599685247944356940654600799925488090942032607188909457998734267768204083701956673503147837658224563150087701880722116984434292317026102270338795717398641652271799170686351833560058853218787225308688251883983423861392847371046549029514882525002861246391338112732331937763841861774449195450025221047200129656429971107236802407960081641604481259499129673223794244262181687509583721700014225175670030568183464790149961816556774346720236706842049197985396725141984177549228937753566315556913091179878428563846734823959728521028418012867519525377222786190559697355444746977518154365263744763105870455752148346194354691777890389293069607894994980910998716714691628339781763618983438934465944288087263288372323877889519995569814476328111314043371839999843002137173264877552259202918641904379711615012177829485098465259468349899603248491483418755610497771804570950761797144968045686134270523710195286173290001217952379721526007712588575140427495759919348090617829443738870930971897733214684076905928220663513972102369443265389760121828626978215079274572815363298831277910245729175769479923363733181694938225275126313421918363861810969088226639081811011172626348972663524143459322898564903333289869512360599225186472365684209326781895881319288659433016306420959903917368238308457806892211700851721869620981627362838033690884035797756807906066434892629325261080222135323910052354251173148885786543769780611344853074606623053826361150073955920511194811918485218126095595127842197514283223721091952995509512115644157877706505840633917615635419453862727040115941847889683299044240770129164363359792800814667298846249031906722123699767625348952326800763940561638758064983850162708622222205422998745442845181789465834985303134484181752117552126858155106728635705839875059023800138505236391105435735192121797338934344641177717712392174912445757001000878528222431318322723959227417872987695904973304268809991006330748556183482930930250216363142033920871132710832575611893833901241714506340276496317172577526953032730403162344266763027741730043934451227781456984858242420088289892499814578483007016465009857443357128219872376683245336127528992155448313806472849700699460263515001233713730391537014616736919993424367541178030522157126738344521088545586323637702137250778878847012255181339505258265992762612786470307844195949484056725237463670005939635432139672252481929328745715131963466093125309778047236128221501202822227276533876090258733949096436966356352647098834303190101619166769659260464671744231118357185107766512033476273217470020490625198444481841299181901969991881172068901907242725379107995837057832662711885213095257502530173670679851855697264405458204405339814170408518105311417428153120205331812992117856221562489654719224822866795196968499062573275538403546473711902575258903373720209386142766946818442705750908590435066440428098398544214080166184822120557410283238914363777241229781825640103736586495515205497894477383737071662983844596520496820059842557694831554828270528819103691803191771158995144900535347498313512387343545087565702853013928952352589217213871763951179668161308197652025847782180380871625776765403685784749132286339193756520956516764843628004476657287133514047821548399218864500114618608375501264251774127455695189985232423567786845692348323641560846574693892154330386820478558490204050337575238720278456273860337220042708250207911454437716298983454812724492865154425810613637061348310756172608695284259491195283736452537706737386371642560717358493936930985263402769006242189331711421385643883875913192376241022432460268648256023814794134288570647961607029681722103779474979092392502214882593530612219875481020820518592526598259638191283526036477769706338094336265161373786354599968728167648363471247153424957853442793360158091637600937419995997819406570269904957232675029745333450763365272266576735940790087678347011335739266944035789701150962323252009363637549398872354168652524731034479697560326742701494360286263808887186306781104212920581983789641520729188182028784090602981154136660454103291375619584741487021939860281396640781249480324545968195383348399585084842382151821469914092571762908648016667532957319050852138065212437771720646878879532178103888535175398114872573854919446666705459559924906079122335632215860957314500994287966629370678599604386333447594057099791828058566993600384510616846519872155312740286672133410452020079831556937257752709014378193890106773062539368134739576047062266703446834184572471670545816059013884467566614325500673567501420775757238609138250885864178872191679979495530143451199145890479887218521576633876773470407204653167339919675482565624003142506990418634064340857921090688393568911424965563090277709977414337001932846646367343891941467066556047597465643902994892030614055565281509514312395438655552747538515810352748658081986227790209141624225661953205245573187172533094302080229400122903557443716280432160247581536838533417798147886576491510291318760584899480018272581181312450843372581416570502231271104911108039847552176121530528750103579780874417464795378947657882944594567620787610557943872779203858395136336800359554587548105715098047286910726160061000538354227665366861267810709508319001372180543614418904698842161044499664609270518783480713075799942780406254999538352666181612280903667874889748788394647756219756557467515566713770567139848882005585482194149786715156238293459889415984033021776307976092505723064478228968271357163031285227484617604496957509213201328175758122837330829552652295924349596637891763699681304092307751182484893122133577300480191443769913629238946665690517295481921030089507009091634898370973226353822348171874521802553717510458323634716222063906144240195233337143127275757341984436161608422258442271682500372500651438129809485300396752768650425351704200947906028655322305319842618224020019083500116167824130589000534154910371044087080617508208386428541932139327027381582908821696213285150673846116708508856910924963516323393530246464573276034591607201795126497415923947120115014183922230832933074285947786761489552217740481020594912098818493975997910841298370798221910206931566913146529358280795436753154912521111252027075953275390954799847709649430083246015978728678981246158352195776570474964025398879275981860012156874490053200379976136192140253472624890760561604200487194573627737103460906500771745920046608342162529963766991381751245600235728241283993938620860065837697843460561670929605479035246669601008896342674060268670956222488381428022711159308998354450452752754783033434362407333789640520774984054299102087287077109023126891388313096275156866964631724534286930776390833867116134344765112579519414204024728685565681662370116839828177465596890414663704979762609107687610950647366974409857358553673203265536561964246795065158273778099200820127582724689813403246345771162154837492227015990378423723174433341022701057759665082380606522612304289119976637927174272152624368676146758653387428851308087751515569886758571923006896583906434239205061851366339577165183580515378446946094454056518701909275187599660519693572774374403784142334771044064950140976355289750615097215279049342552910195121474881824115882738672309586276629165327438578881427836383200506550162520039588588641063153285457740990543099438514715628619719500155991935084419676446405328424510587227356241628832800805445522205565969750773086420625232168972528482030757566117300708496595787561092983362619236916338754356411396029998616109221576384562372423428954946564941782621137196359329247357238229256902344696044303769962273635592645954541142986819669160256873450601250945021433313479450601393901810711339836712345114843833824731428368423431981378675234418233137371131837951124175985776320818308998704750842454112680879612758511889652860582481318365216518055191364474766331286336611662555625419923401408696314680556694459746376358910656593012150730795570112345606740842023934703249541019532493445189840880599682551309900666466829086469808388945155677825642197783216314502020405546678628207503669302984015882518793919469369114303662049790577386569144373395215072911596477812081044192219715647894479413662223598793102712294619023528473423347069846356860003440763583751075047146992293974139244465150580569161434561421427544170192524396925493556450622182894962493657685192957006652307184570846500246218856927809701889629520281435255367213082639922121645416848933776710294769558454931249549299287142627025740045278913140319629037574213216091442567866361709240719368081158460952358765555226543928344998305094748305164774730207541911638539781864241846795853596424441997450402644800833237143050345219169730038550719123932895001742676103851463906687098824798278627804926364766228870685176919067472761864332278463624566236747444550081343581357025527940625266792007036296676941575262586581636266229537127616592927794285479139772230117586268366180077365947721400470094748173370016380431991848153323389494248656736321554810491726880912002407493297379336702641442803844622500689720837099439939576552347326989125419135311316573161211555198543292275373491689745104558864882744697630953640506551145616474005717102486627168066596656987257449383893880118435548926659606908538357204709353360850097891088143805954170514169641171309339473588416138362302129642868727727484710635926141410014150890081938024195486030429747986191462425889628424861463622452957312664846013575980336411615874060556684431975140788309766595795606295393134732316786831237393210027509019058847078192062576617367448161356573083045656341437173690694772838829019630167451821939958984258947995779207637110704727179993008706366030013074413896474763655633784104731353337064313926539329693295949229728506070920572696424279301675207990134651764500351695014655489795860670673363788205184986138650045757543651248585737548911331207183740951727262972180825807150357373081702309117858757031454761726167762345057355063402452782950667724889200230153443041791695433066075705652429038551066728854920404084703921478032187877954014214865911870894684610421035855770174002574426522857661749871647525397142918633442968645442731707146087633228886681348578995652637624036877300304578655705510920955663557456880050903898307897419122423712419914798627672697276348170753586331583541242418888732971112129099051097038814697870647848243345837815783047125704366012077934313523573587072685037597482940241759452761347070567749345337962456613044376381562050914324703337190074335505372165697882929338217803925221995303717440453656367255702524521572016291739370405776879799989430831396906790083825661515911630523626630600899896956015510135385257436419747064678972681628940971347879814314808838133230092354075068970760168127672961432536673022174629544929698906783359265913894154099708869036236933268966226799422010002648686022174541013280180833135763314854381294865220988464768805857170398873357338140206983131218964281406735666309666527221197252809499981741586020849445460220916799284202057637337546501140485530271609339811164624813899863139895710353268937462783038586877529711531536930937073531271054780936986556396971309848159794923507724070671931751306155212984942901919250617082500443168764825406546181136153071591274639572147602838096744344112466900974333788286104830284845521370162900594440393883493213343668811657605313092101897244238977593161445406623057417717459302282660291293303510412100382057125306125802428011709034770332561790177940244545185048885335443929176657260330887521493546300772370052724005055699143323438184103448629405944887368906232065140794718833802753089494482228468570442733275523482389790227020805185361193907796486464137578107098594463363622508345582475260468029181217922066699700843203015875361891378727786535277684715261088721216999963360711942567117970352491299641989695484780400662244414263328918353545896698537075723539488787097980972369277761299812239064468344693962479106209748030535524621121955146015389272674017966870069213427948822008504683286149877574630558507302629674363710030204747658950790206240626341516512867789536748605819043264196169500555347032590042790547147908025588537072783043638158225318785968701418664469274803546748256226044679869155400525771405574730356942255054211107539035869595055861907407345679175371141365559533273970018084361481052803796359578446440686175787836278497971450486391045976775415422348928465579215787228655359241184055086869272692206661363727657181985717304405001540285110588610254078549550904399878617345741519451079365688072769155950607053355557264057606332704321733478514339574524467024723929231379437725677803590916841584701504359732043362575342089876009494309574771630297845456326089481788095064791066025375637321603130639980747658576226610778577813453398223345558038170002540404995870585802733652183685349366130700229041276693729553118513340184192095570237000549025802707403193725545751295692711605915556621963641066470927793100014448590631663438904318068558566017147057752972372772845426535645040328418478601560096418721678730620424957053366506450382461262637085295948246123244105868686618545232447459345412044063998121570890505400592374837294821084757537015430907768639490920176717870512468488266658270602288915953046878764960311831577855174202798397842526924026897557843118530873883480317939794359696735016972861664209730049687404672438343472029879482284748060474164899755249771294123353496079192543830911468833345763623067594549582033444082596664416081996847912536856246356587368743278875650162410420005468519990899266189576460892431421233199108513791680959834794165537805622474367740528953684120906001808987151428145105011510460393285092499216909324259400080595611165151733617377747959434204508536652998377716315870435303260983088996706100806362915568622292523710438720012474505739255178654960803538959162535703459991437946521041764458783396276382690258368617704748829578717208736755293346012852249187772023136107465473477003435968049016728274055853390304159029815882496710246980217628207575800271102675799662111304422464341900928975510745182317161413178289419199786359531451621011439754386765021530627454441907017736947765460041573599782618033574208874422494292324720531704305910559487733715495044299778911788454400895522254401599023913137764416017701690533822265022289391202538460367901918804569077550087309816183698591472176126872701065079677100565476203318466086338802680926820377288507249437344392664527707841760108448488520008183279705127304905815258419432106600422576295305974373187940960344475974728631907106043807865690920966447543485314591600702263319645349543518645639501509392919511918628422406090683273909945302011637888507347263728530381057424730023686907725005106181526589794290618266251724583984860774780734624077607663034613422944748322887512437014483809784653699646932724224960765986608294065486431166852987472093878544665101196519523163602253597743620852205156595902119175287484991531908256122164536910025898360483840914467677585880876836064922488764227379696949159067117324191739996799847556902381945010799857894523447718113854606971661681139545255751599591254538991756154264914491866811461588408571963052148705985238097442336631540017927315057962055767627896803613261022598768126673034266243593521658549016100918870959230984132225974037057347942971359338209265438731127164951291402446500817678337531502015679029314805331806077847446234408416897545347791884713053622805437690379632468296785484356755181626017936046295170674385585854370338954807461337049884531970766701512864422512379646360194487066477613119764092629791139219431350418483159560373393435531520723957448988109945806082082797366160903193981798306387756866719364470160917802847000072024892695968851402485366077612246826348341965429359381837205766113576863176926076221904192599038871972061061884182949573544651035686356095927041048988069659017366106534862172826370504057017675478733595754739970927898658496248582989527746817206310210461418881496363699024825261370924472007334929102528324852082738706016447480076525963395514508831473565677755325654532563113263199886737605362058583336383856411897309545522516105330171179018224806291033833293139821668895800798585638795366952309904952168115603632404636519583409192178761305757584954871562089818158903087486813699893451833562280832374852972357820364086153285555612114130264453221175508527536276358672316572556854717458651198474371298816391409680390176445653790127663826537934502722027349088986718401975106689665336984056852169994878968964817748271225224904218692896368880883712500482783112875818210251403722866631014257318535391324094607732768981096002985330594082127065070552108284467924762473040521442796023440259929693946998501494641415077009144133377672646571510996103337031256563092266219782721027699121909595714564060398810302785574799323635370392699960635362247289911490644701374791080232959976204861183687503332893214354201889455404617820093934329730544347952529371268281686339611862790173149562129027941812752259708788653231981113758837041889105452001530146517930136469087696177339099655304512870641227919007873158649487668460583531310334433770376933729203862185050132535198132193566837978125267393189277681256379382587108960231449435072414320811761328785533313875879536667398425990268561693059671821703629153291157184521444666399039126043840873773665932376012803942534019986298038787586966621492657993954498741303464936656736398698040443343576369782276134117061577113689694400630112324042289271441407915683032396870523285315133945029781472818548358743855876958730666304916272103305674271976137600465862907206800751757370063293399414650387308047449272211765169501666499148380757127425435067097371107934197265654683528841163814747709860507174299717458792554123035705417925783756172271416645266659642144795337101394615042080944787955538132715982142307657335738723094209167876284856293998861819735770897925986216515611061938077692590796653446997741366088425925733126894275739329161643767161414412192765243545171519464988034982514872007496865565100903741874822342186503553649274295026586640842209002225156562331009851924036564251491514648516907555127814230156717630581139448476971825071416179174187668179574477325808394034239098962190118982133418553583365184367289858372612856119715284742406472470757018836170763033315769344709347775298562430761415466368259032143058055968745966872480128016646792301419011522514885181680015858754001474393983000048733454865866803582522191945106886064349610102325976936906428110304365465392512323721121041848778010214048598663694034486278648768470005346845544005511720084657780461669432087782955689327555661151704711545289521558941786735025731223203025828360297983014097092112461875754911671297904274096482991338023190467644125527478448093488764445326005071164963234904846833056938796233745608358255467544363816452826503187239265364517807781066357163268222026405014319984413061631580699743049844649961844791088463617810212708587538445502224494821193103478238592412247490794691102540100251406483542717959855878196496751099825048176328063754651593059579402107154184188871578838880308620066179601428362558799225556439442708540188785497074505574404530149750228312333858740830609172483657328279022158796431853139568356592601023168344232132448104373835452753605782867612071509963336324764440658657465598471366102996971975733642736181430549246135588074694114563622081589012931281184846835119638027067107906092457003772722275094560721493928996167189216917286701527641508162846151470608766858216050238221802317369441943066554313834434384811505517838630449242511432726200580852762234204568235019608697760294164003561866209740861795373415060148612202094606796479552900675637334334455914752199690140953903631171040392084615821601522587433883646323850583955111001941978807042623632657324005077534477277650786493453915728426429487581483535787082542939324738568987610317289728611476114427247567549629358202139982554948762435829081183514103056897288653332559390484799055312568496279466177090433055516910201124012130327847600679256274094653500527910972404302238367656998132099256666433282814514626775385553007761575303170504200777026682875583278863303161049871221744960174425995695761490268629993342527892749475141936112241538330860988759362007267878202234885319222190775332246321452616936814566772084472740548266885747700296256074989499335015723279128881449054631265220567912501543929155460683179319944864652438949998821627819798259783999127580178247565614610475327887079328210602573429039007548497893115147178514494460821393639665474917418218217295959858740844146070849829010344020374143744678571499201450394697629824795398120176723629546972094950869549290237899343067894130104903701366260892057860321443746135816899840000892902133168644482877521664355475336588414308447139913587407004830043532747615946986165601442537526543141590681752752419972813534382814185971754341789229188147289014409954233215464254649170078320690957175384492853170954257337750434470306692584430487411012955670959418291095139537385250796741913825317425096396220885110410537659921663657502162657668415386464289177350289245179930142857415515098913962589102481615060719563623343257231044541835104558661208718657990189521155017192944564030084792471143645754717320424313312631450664537057051896305075728482462273409599274527771793157911392866396442466693253229321449822908680935730936971283726602325058859375986558992336616917115125365337166646647664738435774308577408769286527652495219956124017540038237955631209873690617761414295506277382515372805613382860287369575872194719962383507364966363692711690466191806475192717226197384633841595161631272690393789271856266561279987685675590619313080881434033364971992294657868272372061111584249721164284233877722512426134140829844630100146851013646940243160201316570271420267643996022437485438758479116240887808820088905093421959930821722251994627499191942447690302498229507977616308162850866939131424577762363280993780538878064497865862842732771111735083240849525725755916208602610689521734148292289728479307526752087303523565392931834652678649637979108299351613043954334185133868203767087575768296546124652950874491764091368153714089582201026606670037514325992668606280102681908096747946305647528261702317953716576046106265106341479980482199747022145359642037629442685428769447717875245473817883110928558287584931860250025281587208666289995584559954195005707568110913011096383903207193436240535619410681453359531162810144744083665507758629073311303380467133966971761921244775279616695586160650372462703034500343391950350645671271081163546996135397469856789328049356099370716354180125630392716047181580804131141608082262781152357291719151379172405149066086779676493596686887905769959655198115338585901346682772584032798018252622802415408322357794068559940583821620694439564646994468612098124998141279178940537172116245499468523079664476673338505703817593869332167369556627798993597595508648108826754154460756690148802878438193810022645643102398347441785985257843071944892289297173367868338416353855980342797874978733624558445217718352852670690565466549802679911010197621292642857563048426957011482439838038646604223296611062606100232868631805365220431205917373919572741591915238052261311008989887879345451891669524971948940475162906685193311757435871407844309240172716776265698284132175054199983093027610308356256621198574383142517122947874060626049121108793297304077636857780397012724832769463969202951058070592925920418644372250400917875225293249581055204263300305026789994894731122585158445989956445483667912271149872727695479538221645964879090950525657285562370259705047242914935655321552881794666698319080055952119044354563064430872028841015765731288622594666217678777912191891919354920853324942578528271558105892638631928220943398373918020612796654155230837810958223065310341646989524960330012529980297644264086845345444542082916922809626211408230041173638873948486381673634035076140708072947956453373454035660633989078445991514054616374225600767480126476196359638388685509156782601728047244322667663353702288852767379904464343068360521069867474994375903493326937692533167040625670277276677581682095965590524869882109206473003013107405070186249552505555058620450245958677820893181902313317309299428466904403673644902407070667942821347304742931246019370733368969875215547951473367607990747269763385337074376352695137184596813612622695468653447844128344144942342131630605144472433413840919787067310150566144824584784582047921060083115861995862907470796997231137320267360658253966862643822990159385699363578787398908981795414491893482126144062893889850580849142378898023118869415400576283224790728609289347149748711266861732696023350028020772486499753933235551072629052619073452267806535122755045198390552750669459001812907120844173510648939955818190869822446413256492278944936524392907711887332078269499712198854196780966614334488614195927270700217596036891196580918102564417393061131700315711649074916622237105128694280237762329781500648344352020098390739877438233072920443597037757400464119316365870301332822084488716867999178484108368402567471821041902489405176737645051168867291809987117292177973116741906607974907639282584683002727398135828826535087825555396146629696321487791432031256721298609406546736811906054686530188293565705752544436216069899844139984272010314954559254245006150700756544350175822679368393236543717306614392740926156632112628928043509224912121918945018156031316653185011569340301178873295078875664625531662089695638833139225737737276027911858912112630242976124786144699098983977801736425286647604179112404594549690110914388823657223965773782342408859390376600823369102392828419384453300061414078372428821060218991773203978016552924399018685172780950403861778743777165551726381363934809808192293040805723490538267726322800927004045127477626430512059517134778444672948659270872790065058494796935470711583277810721925992906524331882713041350113687660681878647597577800188176503060852926883244017344794567715441751432245985931820699729552562226638839043469062338722873120521442965120236879862977239532711726441266130245585197803992450658400015407247588141920541709060962870159082571984750388905711851933850257518667602998180327235270545762813231494573825989528158165112365874145945967142968892880759720616017459300293929916485890062335277809942670609350295592081265555030292799075685648645664812377831246671690259776178803119839165381857478724589766605471281183857126280811460075446083515752573670592996170686539133726675867451011991388096251960542078323966073813119419343140906791511963611729577920915101089061235218323624757415094429947823801733796315084951501887308070974323055075829491733117910549097292218206736295110677641363411543462163077268871054845534602758872453581479738659574772817822193240058194809863758443264902947208587926355287302642553344960533760019175599164468759981209859007984584141940901208617441697763446411488246934194990286032796457903550769332685324736070756308120248132681230173613485089502414588269001781086410399225101901237668836370977642907976667352804935361081801664643104642097593858856610493838286587283487607521824028735914460341818446794806682581355800486313863028030224760776063418041859129365851345708259143215244998879352820192397888965415462968108301124548638434941576645640478373771968356300162522889785736520800858294894655732725217331303206566534039828478807814094607696316899636400152307247173152866202717937895514816942144680736981522289289314050941272051255674877025570233262314368965092568253674222012053290859865238498222866347991298233553824979335464238840908650632497723521868168650336971281312479533395103452584264432543444738681425681621686635509635886587012154499451030738783020057539433515625176381039288559122662069829942908907798832757808050851767534701526731297666150176652480248419599824380549126544610176585899154689143633102247511607499320118615019887858543109542870912627539456743955506888270802039701116041002652226141544325497248326724269690730553452243941177915939189531672671493967342841611500363290635997193926417331480648865932357883108269946485732168842584604291026149822499247363040806852904144654022818281337176425087469943485270043433060233577182945052086022971132393659239670104458513107095026862425403621299333537197375267437200412668764639509044382724626891347456275477190071776775524485288472061963492479797258446944025371200279555548662771868542070673796501808646090755874569283912275620496650389914991097605330446233454929406597492894376438465156872171415982387426023600251912366933708286184058160462443075333669616247606242351993473324552896347680680579633122212637253476374960642479721110291030458725584011868422052246798899255157784000088820943565889779477749214350345061966069984011826854741995807003085995510268940284666900186947123241828855994279092470532054555393901893785668103731252485714903891312023421457463471130017177315048478842187897626966092196579380456332826989513114297225583783377139500799617529860942947667969393123976200898307155057676826947002799757243222288815239534357150643204429626342602348446775688350169046844340827081206988952331464817680904140288070742507138869241890668819999195864962346649326182244503186759226955756413516071799811214275237569220913007768565305398141490715194323035436425915200578832451781951617856027574274789941762994991245967901890874335004315134052240940823542536558710458857382941776720054193952165656519442516400649046346331654198387480659408982342333864936901576839106659478463602797576275693860711986714253230022920517482060257960579630123709928629531630094380714227680965416175184348279368086566288014653768769793902696840509332521450883177371660261485764637130047280643181306783133339876402975849017398694394854174057594121389523575211349800103351037783021257745349735879857754544763208962704039903547324055731029985154303421997466814105660314803215139231253416813144525724867094873086105614170643180881328787483946234641297832484753342170819645818517030841166472660255143657416752029783752316926738474531166048253778300136446217604525461552795004132817777041978304574526683467781405037026417644492461838478506701327667752867883677625040298018217313772878605728232521553031874693628378446975414475265281540218287215413476181750777492175721572447677525143865790952739672738626123215034068047455480860480624851623461040834657512563730798923450376872547426304989200522649753143481756587817106011733303024944164650723341528006559366750643381662032001476218132283601518445035361916025406863417619760993706884381419064400495043409351831365966988959524896553271169049249083624784559202627157561119510597125372301046858948979790064282698787554386046400913294577192520674879067593033735103696665772450289851991800725492875870347563466367189612126077367332215006905704623375149367646432330030108324954837840922656881991597184564041773478210441491394372826466217028979541600781236166446099385926415924544726903340796094113036590137137595990590198489900957905134096107425062240914798136236676627592477539392235558280751098518968917268969853770380070051359942916699073148767162549219886038242878604317484085872664182997806976790390060398433702733463594593073164323860108905872788846096251087087957891288645932621861630956837113747600091166905774040152775457026557810959865776005143217537756817333909406226401528401318143127185096132082019902633433381161724894895975020438748430237615911945266787054657219340378342915501945159188754379407688615819812715785709220754579445901973662770925672194640062546412975259585405507466368530254092307837913896739027997073788992925928703144554403352217139214514969996712728852214757114991342702892312782791965902544965871771870483001573997855860476036887607100417810032477967316314973076364893441585192456809977921231986166827036198806336964462015297830431652424188494208859111514620489616685954413226910921531671045138614262209608276527181886691989806361683177751528072805257734659629295043682985007429058712021123572460639282287791707881907206189166199994602787038102971649784522811047701501089377843698836677795371237979904998158738236774477410065534429268391210829683779655798583432378054120971322504163148138027469698838142190013720294921324854028533381983887895131451748944089739216557592982361267513514167420675627196194908387273868373085378186913265331626318064942433149651733702488012381200053279729018342689668655279247715598010180529261320335191587132092419589807530113859681237331135255627978677316401383032509170869869089039850634811240901422473301371333467895287793454535961059767673660011269779167799662191894572421216360839345533898817360151350668155280740644055217737998003844513160821738975735339502348915645706477249701265853807340798767822176060188643976192034578830813953158250568556449054165450226361423942166374509052219175127645096527419643314375248241583745495447947756551478873928125984231468911794055278163480310993669480296690560790370949591402729974098333250006694985837218900812614079760260649746592879028116628875755031225157547463170884895777635888678569846813460556049488814934141547231913024773282225480154645568797361264087515710979095123590761775538584973783514138711218817186390817849166258116007498135758474621037793551684431835107328067535107945983822910929456765460439007171928079890965629702866022599560402545623599956728455116560479226485529451551023937685356991333987304105675920799248006508295099429690130630421983394615809102786847008942951057340311734710312761899847049091210755607604740956647988838426545602821335535284790004793194876768366487625629659785632878708210149147433243838373296152824767760421488485845207113035423334703784893955958176859805154216842473628673317293634538276184375249826457591690159676418051537091945256116399222972581132230012002311555389410925455800624880135994590703434905692989358414504892298879846536383216910687718492649699294547873014481283093172554930094560738745823399142063615121947464723628372406010839539904296226709431328109951608714068109185882369349560009538990478804367336609368779055406234094112126842686542529942769887683197151841129297810419662580873063467056587174395856399123947650231792260649689648453295824098995068555264609058432983785500951348134717449144745757649554217046877519587278770001203864811352114944684662923290037859219350263276095095578552299997709466731159683018414585858236700797288849240330825948848027692501326348301544204339546366659698466413454610303006379133910131296333824263272501673142249704302432311654609955021541848111732283785560432920214349392392043559461307718808281284555982918418202669089633503436405710902047123072256390308080551641958599649494149610546683554539125928944131262606015802740287225217553590940448779540951459655085415195846138897192888907117681039860327592986757564920829771760616714412950293909712771258471907349532901942142167736591999820049072817441305349311134385034431705892725682939112763691496172124079647960597201615306097761210965426140709159340258221351505865452461642587441880592299585740368448516749639691898468302955298989883318908435039068643438208538666248351572265215503975223229153509659774917722978148139830350683970825925751095952215386709487766301472227752227100801281880459146974729250922098270201845449149907656976357967364649065854580516927964642090250114252281555254903963973687305836789040883441644075817388719630385380976695982319359160973904765592983048646490631291200523600185926017691859684110703387646255432637766748478717250647310396697798416585442392272791602048523961379362787032208805081263259062023956914243135394602452996588031187465840955275943089463072061919540597942048568403397483902687381190240770464632052439753083673564044355915655396751034595356463739115753498279794677973484618690673147112821016042846641197632220840514445222272003296195867650323964712760292256020002106201539979494362913183103641317530243312973706242759860538664037030293713205555223725171491068666563164688420709050342185850500281850908399315354671376175322703658087003628034831555070381701425603039552168233650687239126576609394463190010274123247341707361388156945527426709182911817032127612424113605653000163823264229719722411062940606224010119264824038078970183216197307979209867069402956658644740937675507610777603524083983314423210602786294551336103440410963235066713678010344781716568696644903265509402700749245137078094783753972560959080445488294823388794944074446785905863289539566148362223710094391110550652704564476757769449613944213818275368854204057889644544321780762106082904031016702208716406253108540610357318355737949042710820109080873151515870072976619084241470459465169835519896028609467077415757645519075034327372195072827922574814032636659028595164711825943252363035299832132489768136412258441897284364885815546926051636844662743344545409135731262437675831933763068615934865472957966483046548305756115613317457330485646374056843825461199633273257524583359471801672605675782985655413846214795902624048956467695097398459365984214438090491944510823720280882242987849262644209688480747358457708220613819882967220406780188460183918023581633519409788613163026428849675832250852983106061113923270971260486790333275799563122781414668403916053628739631795351292270740120238518946285672137200499046239596765961514372798977812287571269919027457334375705310194301170856001406966759292129674165318674880326789141091848236779712050404712325967290868598771210888934065039313179011159839186129554500721359394341383919011807201207847590130888115987095749091083916202719293476970295018372855085957190381235196888930650107062209130038374720589955884075882577720486740373268634964991219502028579663770806773855006510977971561358201769233994105463746040810228613968695350774999857271435400510873676087449167101868602124963776507996144160661872283839806176710099499555059737679402677387617317386204651461480892370813759361908555352056890951530277848477274978959190080510401119611297218013961945462718760148621097734631683207075358835642266612031613032971351609416152310539714128732408103049355094649510208356582356533518293635360424145936765139744938851492919601734091701248822121787687389577945914803924894893092641851458059295688977515978666774095023782750827528155834453769993878557393334572936212650913112380376748312805294090596997238514796691588556364924005770529585486852884747336232840084293647764718062202903752376484016951910944638347868486560707521126743703843587313450626755073113717238713873032944164413761356556135230011108186006065027727387386835042316955699168805309627590556392018663911997163014799473126137133635587601786526244408386362796578242444688204315836156937110634472525039395628814253637076747026509259785823965747689958924205886841445699049897382100704084962059376875395722421765007575187316097801186583515359099431157248558832760086017898194040594520123674927801955357978768306779572987703881162161132598099479809500258794648516527119069660858124332025631705231786920060838077584078827090171417394708219741184381415399047805602647705997471384757584405755530198878187790393909234124414816494376116263980519212758110752448377220341362023862468939594218575779069381504660498249959009252664093435029661459875529764104063134829183789428621543830631325989104854087605110449544498794380406873814560763347966181927694860109347490040105969172301639500226441857029721342679894098418590497891345247064862163368330997747012160513183835101987955635766883648706199517492418485302757094821798591764799053667452341515986142162878796396880556419342967531724394280837926076823814220294085406816292315913821841935093890604155405580639338357757978117859364380783869077211441453276864272407641037147240258786745538742190277970117185861195175657080407355924801588401646317382382938849709927661857049126877475809149095590885573941104749080854721292577872641374657957570140904679052530393382384640411641760381293632188565793211656349415165390230599128882960475045097533523236461715538105398375313361681335036274307530845778610941361203178180430532617394373746266531437889321582060429893782553622387387554026506438315784811731919183795691750557336479068394407508089798228339078115986245361411903907569023818967274363569940123755225219904904717295659564168829802265872710901080756009749130640686284865446601092198304395376275088933795626986046119560381697236924357557965239987073756466925548419308845445660360800493117980276604555587305687776362551763608988528405568838311775393913010127788569086005762130538783814902068747960567971431264950662521770827051218287422236470815824973911654889459991582964738856029692914226109423873837482013654613756090617612743279443059404613241717847022299285145647293439467681713531239337709590978757381054969512719160095515102581003502532210264431464557347751966738756760140012539667546108482222673654935077983675379431952318667279476498862317537960236574869462223046961543801299112069347915848888058923650602635760085958511372264073344307082255893113903900327292125902746032731991839171951322485491916822030135480369107740126622618547537388959648596330737422663455041575131774764975974129555293634708498396242074421781948006451944214657420499359723166789277210620268422360635964203178391183060759816634085890206192855023456387458635501381190096252707259596980332056914650856096351161261122783948754949340233140363263679482364916313166970764996337431175706852225209483287553193138315348103536706298152830644259987004158608225194224253208545921511250458355858736582219410226230094548174951967138624148982026537371337597321068033701158426505098288892838308198969775858551572102686063169687481939751731602963867662495638409302128101876575030734489496037234558821067814509305984520684431314163134551864531507831899479358482410948753869083941499197985170261289039038440290643685162638844750689582362830728631454088935530285545166001658095414517737117898032658986861019468601942076021373403065740552433744011690979936780425823745015390766304946509679087049909764688088315262984165366742776538187169029092058980435488486816816878729028383794169897875754465492931822291894177572889928249695256007309484749145484077053542261737448301438712983308685232686368869219432506542868641500133186162054145004177350477499626800448772709052747823301752305786281478733245374349949107898243137388735627482193113697308468905765081399913482889311567146626078155067554916074343334340259859827185122356494458864768655482163840586889485688815232546624526696812629473160413283944971296355068602121875852546995744969546670334292958122117325092899184480309598826196347899177339584989027032588467430105775781097054667028539258129593864774160380777637933547110196305297799089780378919199863342845492260496964126966526928489433483303376728580849702687212742751003887592775284020981278671688577571874779086781876933985579665576238735715949940995046484841219942025668293543334776105133093603678595925263368989782301530791470593358186607468999705705463660478127389785295868067524363844570555133276810933976037182285219174452568270496849505493777112926523867051480370740908833678952671942916140334938114433047960943674080080665972768111891559508957860433978029550812918209723621257261933025880819396396324391029894263623587406384561948321809303146721375085301524574346387428282582422118560731938625889271331083836577338292133411022009259894144771463905266733200549958206499901306655713723359607371349794368809697456551159839352074708720064417179981576977239576793985466429840587562709564544971601917426128372714624888494788315234545649337734231269042417015419506675148235367434935536641332561657051742656409458223005056206495561583912870913222362772508525546478039495398870313381848320043528713286258544401980416531560093219886518502358974297689818221635753348829864935815015716488889028440223555342841343922242265003565313594533957867890036715190671310044695256192846470073217441659772093979227127881837504305561351891739995538449725342153157260519880938126098470409083538954938578740516660983871995327021141553752141906937392221314296031994528593130533061586285291249147467439531412396993681168246859844929026504391925351973165479862684124183106457785920236328758406749270769482784938074027821012638900587860137094028670938912299196364622690432565628023589862119668713406610476961841223747125619312477474990568799911591798356256626946459416691734591105096631844694332148527054438338967058766188769408757189193721771881621601885137238860020821418257469372392910394655195420592912470074189191013520157788483343413621044520355592392547129431888863873789110971222104082024862312230114116030830397649289726939039793068992719073867849813615853223205683417713563932148616398054759611029685217246241061792341132743294952404065899993444307596000729942325732305733863197834372307117131690332211847808722878541077625868820957017014609158863114228336607996920155635413633262647046793016605050822348764589662145495260730647701588993395087904390510401263868230453728792417900092229471742308847872165957958138842256949633693594308426967613287919790385564915162285935780615543704313237313486688450814724786446165440093213270189229609685493791655516923850709945918459244003573872847902462380239045163543157793359063512644441497256798153066582154345507605423990588315581761660789813661542802379377421530963651450969133301729148789280995355221842333220212219087306318894073420830253537906674276778433605931519888425186265630072114861786420035364741521471873993278398380493228840356349914026760476613014075758975525558243184492369392343664355158772931738015201367771095548679883155976824700525918279318382140927971763522979541438846468783001680255789312347844421660486930488705631998466239788975651829463133042348337284249320777782096662505874458794523986210203139697833241386967220846126729266421045673578774201522645020966301617905797026637410550364237574698376915032480191828018659080341540583927327971500844145560909936808864965127448307483065633878411689219469096310411137859900353655926041009603023949318560079575094876012003867852674363610480872378416047285438795404643433316931667595850674320418410449009864993814843141693579262862243138377337432718741385921432809408295269797719235426341147223095621157784436008145189417250983582669801647102167997230848266688749583539618478208890135228707403217852736497084067973095870095522189777378288278481151810829353746497744423592905295747004400297737241100592812499128258447858171991151171432038489311055585100687975724871116349813723854389787004493414111933831731239435867983764086874776201930659677371068187523108594369758439730474736306731049070836056545582091342005959414237929509926195847124548989133718645272928721934150009126485757803256780919455389569203859031298927445619988941554875393049950610776893427896908503917546186395906804248297031581652273458667807114647533361070714371503579637822597098855754813722512858574544866396361972357709387469352056756967386228660086141519011034353569442971086947588166438330528907562450549955143151003746437402458132896025750286956481681941771970304162582885423536100160989793748721810072201873186144537377051684592056520115242017251631701596150759626631958695366148332631107381522929508347445374225639506797690196217691223219906520776046090777868131718918179333643865578365094722479771675430430533185103362730943448611899408993696978882571430859238145175295591060184532346989502046046934982229561347465078343050180833915054809206899586352124734552851182057611730737398880534013565864104205018184965666496104425917480048293682436429652890109111176524525204044837505916332119397443560357492748100229581095156136247552941704242522187451217085191023266492207930165893133136849471523612233922602261561364614399647865013325387828837754043279675366188368518683734427042920863466662278403674127821157985851290564813406668250297937223932615657682391082096967246649581717386221588191890678520661650434493899084688736116297576201166477193902159169592481713961994091686425759041081716617231903900621722895982081954687331098974189078684369670410941557248727440820163686608077907079192140903759198067149918137585505104675203909099632032945789341938891063244641430568886328351028201060275185906183300739227244316257880034023169803664349843501401295815725655746226158011008137487022184845320941296007345811071724761963985170080732548220660687698438983196516174232870393603509078779313756619413221375125295865026346559743321492410514776568587878687018478270096678119166682705512018906686091848036307840815773088733198433229988387837978881834258137783094816558608494682088403316734249634086771762764915556576410621074528550919115367385533534996780152000692535314582806619450862388741652645241454866701449742763478079960673884226296088592708403128183925367584878763838908280465803244148180183288714111769641287392109541429317204295388228131216015722627370784770818405875934878583717021297229140705901152018351654599591884796483659730149202377532183534814282872614030716607314495784060324753475427779381093922443572655184839677373612501631008640752149594275389917947030158531309413320681864792146074375389688950322405200155337837120572494381650443093127933432946372871908369242219025034607453604408428356024664455643414150318627777717188545324345448057549636563675207674266133123628196618094895061415803699825720897384419488886322849275139425139782230834981253293554928421400798003114675023247072815070890212189093498109302187033202652842055743321509053582542058644391730262630655618290688166641909602897976854564195289430454876302191274320162650195032704366327668537403816811603646871995654735187808407286731039295087080948040680292229599135075884247572684129600430802625535722295554005285047408657320925004404918676145174163569468986466869926971293913368628749704809277475642941512625914460825854055813135536319567397353356456495490810032339844799490571494347830753433419588878050364052335351391929678244225540560078664334295014985317829546449621085284735399164023502522565424957012769915963918806918275837165142747113461652733900679953281942307405643239035687042820162898166925714210859144514760433566913070512092835330288343370252263026351504440616718662875257555754238132435990180394351917292985693321970841554451829652282606063326922842414723173379969405986331064161487465828714580276240130068534927088761463729742098608859384313760992796489493962768026570246392188090290481084445808957978853504984660588199748683107062281484658669194953183506213253558717821451530911382377361561792728804998717823731540154153389180112544435251358138880581464219002022238824178840335343275066957236929124590792683310032453579271777875701707034470582015577674968306370529635934593953075634097298125233900270015695966558911035148231994163086552885382353581233291464900712288768318453866470640346658141035376153379822792415428773242098517337596717151649034296618602299997229666302009341280928663792722088649148371937468672024790298826451872398249448407060252379282930332753994412920088076780318646568859041116243233900761585395671659723206867804622287873710958852923664068155969638706338970343408117674220284467407295048998228479243486116339038153885131559689553437893334376228073478254693921612686965895531838526002604729824987752671984765277845436241563912782883447892166777662851639527452401489270972115867897410540306015402087694802666643483658499607259258540683588871732405880060701215297898977453184509670413710015075179941960004725080606142724056342069579043044096307475186100897986251822095034119534385805879374763595033725971449050539132032135017445354031863308632519196585367341947482251982682567121858626997065570135388636165334078183977659596553412570706097631021678690923536758511822301451365844573790107484092620296852554846349641301430683235983496307994483094003317118429488029295453128328848497843855675323843335355399115441082446971160221197750251001922003907976335033657781838385396710931748138470902646887114583111579966233772193431539820315211451828913384281667981644239311122412504691802867326455697264796275669344173213936843843380142351965690075937309024002829623046530307537077917607143115865149925594587916243328813745682949926889210078111798128310251362657187599816978361787077377271817760559581723914633914307597362648974049600545682885405443048140600041443385756421753480144040417132611464552777526970215891048276095347452918600433807622201568614974805505902690200671491454263344703144005119822697629528889431845953141339341328660038722184366594374236940872999498613243871318341044403558393254898794737404166880081386790763356412433705952424678402079711066310118765003876210786732754573197952734241789816475154577600341949916511120925013891806564632846966940302332715977138714982113527026797098492756622700423420437514766333354974352903174900871866976242522759100040147195549211954085602058170667553201030721285953652809956690512051706667706290059569982929830210379926092364897205626634329568260151825149028936613689883464846993447101663487315027808352418868487779343235938252280612553709432742939202247759985546751588518858120422384516349804860855991382335578729632147263191050197580174366560968264358368790773381444291399117026495297741996188225564505223972635806858127455169687581038273323509586222852117335838321078543694272923254638719354904350987575327756194933467111253397517987733981828382118668531314549814089422468493451755663193777288895025219006887576982669478527081154849396416275890798421461280783231364710624440286839503712179526444522470504629247360916920556990811844594436828308565970066255807247861519094540749534698285767593118475271318350333420140531544393175297305301904145569635587364191483111871746188722188496966230602975370639859831056410860374836680358841220029948578135124548786411549392908501995987764672326815642935570999340732928572766353250816079444928710345282962206197116079497988597380726979921112618547568904123834239639956594062827313509723975099583215232769709657946936802557898283228674351702233819644236451053440052431483950793768905218634578223984953730036048884474101679368664010128520687625498006782516450938404042722564449872816587170561578231127238898485864010792581690914379650539961048821578136607026011268882578197837267968647043320460501856678355437916319945004736567063640314480439409267919086838527529318991977555651245971096457920826298749575068940002400584484922828209237982230475173182497102497981258170078888526566156311871385715386067106393255411776684390783209714322618520935431329486910655823117339475266884345716447112280790295554558268366420274382874026510894476789325796484955634605351718005041974338549509554776821332362729319882134511807241449301705912338306144332986934476741638765535697792510418572899845782952947713350895299666810843906752569479456743452145054631426032514993619749553319125973751902309302592964438295109781772500705855642912843620199820470938523950432607351088881566346709341873308066849996932918583164805182479142674980330982575070533474752496716907742916064018158120822048753744273374126125756843094954903650927047877683223132491853114314620052875615780156490840140854279903239585028393814001981052141568047848235308430540760682629479317510465503875736153061008935231913289740043628708067140962308559500848470471558763899657598221584819048279168608036284535826901424199430658686219958738544055351552956371615244968645621906661015005919053729850067640805283131830157921256390318707422212769705398331824697732930309343599201857697718961677476831872038405471123299503137957257514421480220355030936226879043229411715842120126183923596440079580252142765768721435253380371826362170530106931882645166932917364702753775553285263377233917892366105780729902429877574578043113950363342301025313630244375216649896001077049322203859579369570189856003461250831339071379197211816803055712965961076779172047402792454673795332736587445775420590789449382594024116397280954465873405228455940070151522053631658836118983112682278935565148840140552801161213143861672841223765664438888927143254066957387195637316957307365950066352721784713600694982272960112136014423828102923809610681936785034590772704692228705012240009017315465642254640698911871483152513354198600560075621323588894754777909294168500918285534740387145982282538713754721710864164819846423754886833573878324112376475781425748704829302908201682019042162305046029871790524794057669905921402396201049038465951015545656575520144968225979131272396563622504395994324659021296173638418411459214988121210650720014793227771543873729218238807957482912608830352560987955789252725552643431131208969811516673991582986566988083827760656543164891653458249583340935696800935319765562523684958936187042599546084442008101131173218509219019019877450175185996334338995569043234784102897934651074015873082596255488332657204304857442356603848544911036232782763002323922616528859935410513839875460458147683746803426231077372087919094259429313857282148910223985721905060290882721086333099869505087374075119438865736622207829774481465493283092492697418066136668663352398194400929301284995948226376322635896622000268408951599774970072967957158384369846051913070375854456366329815629087465267350092773921839894123226110622864793256744034608249308520515370137043200573676159150279707446053186579965356313565897100489956824442133633528102925198600276895318999091171552622866855491879955600020589200437911830903592373825750229233731435837028657587108726912316912231318727192736885523996975061978124127303148949433283951868477363920900296539794338229541380680495451351468987886220253470458070345273331094673955954171138585058810393196729420452561321442960712492934513107726861520320999149786785111577533179216745070365963281199153496252809386688804360970669457426851125512091065133007959479876495043107485530626233561329865381184486760052991556293834355739161747231315214902527371939011339352694927464414980073278372227047492285052291811608516495231870949673732546719441125693731727990438831984559357374089595769897174226916581574942087754481908016321708196912759337584630800051010565465776576369767338983856963910929166380701625595294844885445234062007000371290836843156583233951944622681896713598459151299566405239240401577019597327598959268726928574800030223519974761406870502487566064741488568476330460377717329970986821426101470061088057027015794903076346868137493169106600951433121503959613046081761206562726281010800855896202491915385137059811729034000893999092738913682339688940173906269195087080028508807232312958358881295519165145056919149350562206812942751141429832814547666657060978535190783852210187016179204008126190484584587517171585199281147818912788806176892931555527604043065787045015455789887141614747589527354988321736722071923123821368762364552119528725399389938313081056716250742970087327867661407555897649867112614502071268945622312671934286471436331188316998161708854293796479197765546223200651856006613782128408177432687625844161186408981055080819746680037004424432195743477970219089676253091866097885875081981455366961624769853723008183144257545121821097632567008709564635162056515195891424025287495916471639893740880442741471512850353639291643858969055903519164229811792582371835296077178328343261108444987981551231741710851543583411672506491211139301786924590015817487125671083646226037910276668301554778994870289914476855951286120557229742144161948083623821923290378436457867947832653949280720798469034904375128742645714034907197680434130063733039892978523791765267478964286026542139960257674034369070913412755434151527317876936159441152223349120096929905123030326269053595392598356676504980462345589165082074993741130381186642650771417262512286670689002706987065492485969708887161770066314945426150588600980969024743733652185382072172147173553529206167681034371509235390094503947690966616970429649948344295382938305393200147193879068879146112231920133367171441366653496248802175812270144962359390923800679798490838072782750258956875156812296246355932592935375557497958147182822405218433766859906866192287376726702013636344179581233492658613128976856809606440236626917199062520204557922230014208406955606139270592036997434747590664144886420448730996696291182674269935962705128998170125979485019192106216455364083348156886310870623774462890085368014261577471010810340886813905207129706646014158946026211639858636682488727776188194552942070871034127646328550867207207838074984111628188793835662425585181570550659975869875535576120937811519217646699394618573743255521113385317835480775719987376419538123969753808193568124840306147640167372664557407723133944874695220503483609153057026417921141318361943491454753730545183963789427233656094936116658212804728533156908685395933712847711908994962270384365133081745484747070131372751330628069844329642302314029118863819870949845862775012574622798476603973036060984780600511826862048035970590047352251348380787585167860343751532526135368743451922151940899446144675594229222299269130615960000020209696218335050090429870056075653264701064741299298202731996112010132514841663720200782504954263568153917902022915429529689901400413659420500656559564533189296759934280654359603090619888453804640578393596623543763530790301437717518465610030783289433564034401290963139861755173721334296093137343878931998108354812183794852205445127537462826620056480698315715694117283752975558114143367645527657403935209956204295411378131470572654150267823497201518118343616016888855647629103637484242948652085852048476726426424159811598930428325717365112722319998754621741489364076006799243421697938765230865088071490827801312679038285749534644892158357939613328810424459925947160270159263094658420284333186671877324820020167986559915353528164655370933194509554140406114432115736661081895863782179901010551004780225090071452551022430055837337779448808774168935718637553049140004514320849982050302670500472239590200019474802489693381759447079998630190603091853425522889491183009355264361509052685189057243061748249389249990365221202580964405722977028295910604052011381094907119325801819983928584380052487790754976393245386618086024899399719542893565639520553894332494932130660089343589604845043449956797438584359687271795476333466599059803424879825902121365876069302240095906980343606618283769364666604346824596100013775380014137986958872047067883423607393197172295000553266632310411003202351509594424454469518533866110761582750903675517590859171460150602372775389640909747346469588167885487957846121075666692070311454270943433319677366156536064977676544035829958537284771065057950053442001997187013609493199225501201978519604552815195173261622997331266743772091971535543171912853704030306239852846320160784094523098900706969596670520684945601239267944725154238368438493614671587866796969652717682968969294839660605811132055471866075149455207570142139724532461963493769313045085377953226979913278259784844986325326443390918953742175327802555664369873062912495044580403917308940052536561687360468950569746741860189367959855036547865795527748510068067478797318908678917945317386170485065182948852183568673787702552677537004169356492412136550693604049778859782932592301152252868111372740463954738240548153744126075406153611697226976260973322431668066148826516208744563789726309614145690479195059129848729215639703887833798244088153516568022965248170616397063543279035782140637878514722958804387960154293892666280876297026006910991745317513920173480726348063985643357337338472108663541232213052473676169740822437281758500789763723313218461951441588489757177374284206885090331167870103495370587670719308519669927898947490655460833516146113938840602173893298480444114653413668557156971998869661089079988990778312740761997121268478872623852842502988214657677491402694592308532725831945078937592268051638250028248247484007267179747840505576232139248928991023403593976255978418623190243218020322493992436087630537916558530775188633751457149382843803698057264566680424907334483471645892886216647733663135683872673498734737101886373922246889709226139170304469166333341748913986922963345486324207901504914449332104317605348039176134968657009823978238715312553888058323534189886211060078508137703365023753435390920429181290380509509048983557309991410085891737585949997224625054596749647802732163626928421071332049798589866449608562335908476831809981577472894369333992577790795305010724490996387123419920819098266553395746926024215522463004079328513743121673059360981143603465420460312239704595003846764396671341338406157875855232294639011478885983354694229517624262552485166714814755168627037261544834451061533731715639118814341437245176119608785224815173925948214185128294647690014843768633082036811287395322117456757438808657533586225017926955402227868194481394258556190148646928733575465204744554416265423827471163970412239150832551850232313473918133715225281755087221627231764527459693234384763786590063048980083081191365134312505896658672602169508080006286034382945841424846766582939774439566110235460004458048953427530526978799796961330353038894715863504536004947099559943059025900387479622023594252296108377342137567021030954810334669543751918767315235680414026635788854551481036310734153920165496457037087106893613798693986925833789120285817351693196821242574453711463440155220923495786512115848730672919101310011122911751776792600521290294935951633243336092263298218373293474989904075761335187969580528580643973698848420972369257308196302491509299400604954998714278688163752776466691112673865352787616952020571482463179360614156070080740912453151141624193897773553994787369179350778926093926492567446062061272555099029931363998170689301525478425931187131378155324259891514578758789603307377003759370515792908958807468605850621635960885099340763691214791548859691643905741428483599503108663103211015774317332176916583124977900963907864535212692788555294881518897096854669702617672463989628685282363216977042006941110049018407748793697490883904437883300674157596738315758863955111572470088947559220773071413238957593314551785839718838956617777149959073957312223847419321885009580008951376623900882620109399952373307337476413267765375065804497684538501330467871379473751084904267261026598916599393778233041047962960191685747335079250517021770885201502449409198939457299319030140128396397016517170750640811711859931526279640690011549273367415880302224697753929584063415437866440626364311286772614016926043286120614565634166071385564265444737857771559882580815740935400980592133586975186799556542768199674654350849185381909107747339732245214756233601578962242348814560330206531856320725457262976917200540339784957164681705336545610806998790402888525472291022613029599540959961836990241404089051709532262826803251953564285798066868556267994943981420481123991895106000062765472883911372936093999127581339678363153271357207944469171609979072733262470144210666185092174061355610854515906930570961227653460252515923407078488565240169691192643618297290840752101165103646145174993574795357504252089105252464243453550997868806544946933949560690637988331477814469554570735091881844259511993787557069406585385637665866914118610424774400384722269852098326525238175113264953380996369440927426277088953872904703703594631395442017047699797478618269347136026897605856098194753485510145202417354362320797717674046851478096951229879992226479240815871335372569987453384000590922842991547818526705751970449624480262759690684126773654974348963066979836797958444086643070418869422578255021391907104021887573171713219066513544974366958463518347084733407256547974266659913587437906366893320385888370420667693730827366612130748316310210251456933060461003316954785505976489079027392404654510225179160959095126406668530056793605241507305669811021849596290722517223785657313596358830278054707280589518574699908557733357786085880179968467988844611997339213844565566589831695575954304501175144458879869897422140633045347439837543828485566267989614314536421155605069955947224745853004899616261934327124572372471270230880455744134589471398908478546637884237812997080224461734168861331841844047408504358634879504189427979147660761005790626836983166488831825797359104743902993361201835211997996338886497060938488080230883900335090948025510727978817618023679584358844359861640798894009532401813844258439584026497623224679979012030301960952885877234732487530089723635125376927989986099354092518682393627071279685321649676822836551108461161465482794645422780916970544995592912223374922837056934126246365534653125895777425610763815807185158930557111955679753286558091592818401552411875653617369940992452286464870128059154365217791968027070949713858186905065513796816461053293596948264982607971430462329496985507218254415455760407703748201855654688926279805284978978279447314359612878295378001035637591717588347499216754266038611223175005069661345489807980312973483308676156476280258303047720684519423499792909153402499285552448950290271216255252833632142544127901128623085498500058318884215052186575760024969224853411150797048730659015631577924100946663709784132183508540072539768726555807378058314614772768042154404132654601204027221676331377179962300608048161079834121430297916821648006647092858960929647499291876816635387473547261783871402170502685734993139689791201736365147607148692696451228053834787361223743945352558986445532804801034171449521209494364262208714542096050593268978307946213019493624412649366180084031683271179934804315029455071540126713359075540866954475365501297035547102515907427128493130501078816676782737860048707283827006825113034692775748932603756085887584228601909417916610637304113174268679470348061923219798503671192282944650335029379984334918436088603710528003878316074210332350991938022528471389080687891010009367838651958721239742974385499202923751007362519230800442564110662353916105578358991941614531351435999598435312716700260971563456174220289562817083853600089679047039037165452805976899334366123495854157069027855008116522804705244182166521250314529963100092021079193849787187300773951362014746281628490036927309460108103503427974193431372329292207886799778224517810978992606758696478304470136424429116328086009312652674912629424445736542409540774243061880364128737549402720346090757830846039580184694678706851188398277687084350806857283338844679908578574229525782589514399921383668650569419214428429558644127196329082629840652908741240797214359613914830910363103346262473059841131698616801503084932319890177707949966411182550859967884584901030453422808101620034001875173559913704465247978057207322638039340675768384380990325248918603956059560434475927834468249894112821386622926620183574252199946394387381513027024859476660272209307899884276596924915820487861573670960804999647770241831975961405944191341332713815003699180654413635726673450730784641261882790434366151701012100757858196596960508036967707929928854470915976521639380755440364507466436542186574671921101767176290663404695204892885313393458049205482338617721163407785694273962423882218980112151380803541686111618108739620923024592965138199730308120458657722799203756028553008223133972116785145936112567003315275303849522712494067268136173691806182288999366713167832736528231690887472764322212010612620604186624138636260450775275139486809003436816640277066459983001115331109784089584010046815431606481748546697638118860961565355574934154983965313408318420138205580619486826299542948896256032855076230304870136302409519359565534537429308312250687288051151536027507619743117486042959239684992339300033441015215303412712082353889421264303130031645872890064426580318220323437195745907031797962601649865278355249053038450168612415859439652792743249937441154075936726517786824866802261209074958287452468764117711053678106223059525182926754330283658274007646595789535949647922096060755206081891195519486864750667770755963698815347098055651176779407936644706278898817925166012318997930294866938773539236841099573814226182120685473278398643736773433676977082877370932576462795278637004582149068672393564378103937375031240183948891215077859658185295257289131418937433979457594530381257058265961628199815699264456274514712505555941134544319488033645073820852003506464118999545317884966948561022991745630865252238732885550929691896528238479428531101284355019567581978195582712787552830295450349785967754256962283211467272909034945495819144566980707937516350311346204858563198865286434724119433166139211086965449430618485169134735774681260640126081508558817035510603655184192292117438025525944012680118027991059736719936565197585220245869434810825020532790364543337011949651265854940463028657349700847796708241751765124277180349174415583292933058569761051608337015058140120444119101497666154177846487269695846964948577249001747713824940794354845797037600135803737253697194797534959964672142558579049396933857840476395006740477304350775671529874108014015315238150526612868295346872022461152677279130963049276398429899795317623243525310786456924038327698732490291386613865520110477754819997762934680181388342566387723373065614945975430198030783153730994840442184536671978605075735130017621120739214521558614591246465587632661878799072928534537330384145421034650559637748694744499913187074567996876664074709844327402898193571130409210706097435751605611946674813713983731015981956960805673373465188087402200517735765442183399416453191015928261350971023167014166665754627387626938070795532113598988420395263324477420853081400470918947748859093116369368016440861159388206023363460834792689665755150338538941764541271333662863477645949853990668153068674247032382035994436466006283589389925667371341926329823517951307599027950065477552530889882095465434419703138330173285919029928240862901399790563838616075684808680313725271264601344578422420730739574285003241805613363869012175303538205547510761328685702087621869866455280070809012244060439056623780590059405206825939262682619497616125060674481470882524709392996956692427585938875097477458160330074545909222458388497380181356483502679746159132478636789081712071757452871363612846377656592895745822692451904570561093450236188897274353309130744934577018440156442517248464072447985350033464071437249247740682882329325144186251762288735804590490892751264683779952413814795882138916671742062865637098317557880767048524152423334944881186585756520675669909868561778140670527951473871578700741704817778851506932897456523548711032540165307046118097107425444520477146482295297909023860001077463176610292223042475814342928073811552893379164222356927622142730343910237867892199547539107259483890878629416056665569676885915087317531152447534341790088431086620277848604747398476232859394009012487995323222757191679692746631365745023695895219004030724943892645903000350238148999330085893122343981009025888137419336742946423891365567482031610704243941947391416265842149111483450962715120737207834181691082311686622892116436469706040978589064304849841188324107443393197130188295003816045456609642219238529298615363853929289542499099069112149175891875362390111304534869797824201862988882320971916248063692071293310420245949867601709519621610218386053773206096621843251660122822458682334261491003784600034150458675866267875570043760156461122575684095563222149313625660054528510118351483794088532850396890494488491708911194923447946155595164818642275293785000899469052218869290246854876329617337690650826359469652462161343850886156583361184159887364731836524313866491093571635192732671355491037979256273720070984283557156091388215374393307334886953223765554900797625710595892225948093180643774249696539834035564972774452953553530859730478728077628643557194368452550264176657292596395521258074455187567027326619969847279272268606444992374102075667611123256081483520932380562326252384629784967308398215979216284475689969398842645566659231959247651163692171368928233097730427099719120306757765237837339468134958082622485407257157635073377680884698128659224300770072222599539554278778482375022534834819472369767467451677078316659923908695831953853054193276669490736321951954889271216043805078135361417437915615560429042837754590286535627226625920727241372363366779889175474171199974098777660958003482065521659949378466319552678832856914866695818460003531541002838508426391697598360662121667162287714384743810434554256572076104600093484373046585448758775511334104521122978377801274681051649165581151695212884923029584670719122094509203071295047053036773338883468930353543561487939535119935850368092148713067446202737681548552892988467950484974160622982975812661269229881868078980177156103386320721634952249151495657851947465267896477228229875694643819526891095686366107956142977682748603596496996215098810073486289852570614505223696434152113223261577622475065383445423608063173906353964226782143446433684162812500447488677225367360871241449731082526873670241130010021480106097199120165673875817101394426096116298295622149846285550563581181798804665315225135473797195458642824998631176118522384411869330367888589855259960219111185338604909397511428505942028908301305619662310424920074244367076892242164185269615786654498224474511898336772891238564524492864251990083663658016506450112060602431034707114782019226244626572546593048358986346281816324515928638537416540850847466076486557703275888602248582713991004259331043996393794839243637161665257587704650611505404466837714376041094533858782915092110372731676810832602001218243618742648094353324459723783273411131699841423949520406163889577190976375116508956665473780326446713568746509473850381429009943695688736853793418578504280684270892781757008935213932295016915160008554630561891912255596979098724559486896066009007359280494031552884329703670714192334739741030868191303548843150661665728329617570188721039835822895878418564605394551794270076502789526337547853138288086173432806564839898785128504624310545660538532077621164522911058357593330598966980458487454246948672384596934346160281728979475814563949273714385955322721329783920207884102484840646156567788422274700758975128148210155562247062358574350858662022410166819700719590850202737977184115267794869083192282648891048908037195119392593788594265814296358317299328407268413687041401766318192873885667254597284939096454594911525222294634852978361757313343477123942195616302662474309938725262885737510790452278503573658478192989688502659407206356390648743940393450213119660649266980468634984507951887397974959785891615452267919386213224544512197520440520573689961484568731005301440334190339824532723285281087294879974463788788830922238424132744761959000666817770108643980416743264978941424335750704662965607461061294209200354806986857906587645764322376802927303792088818585651826203558543748115110020518278226634998186429587616016661350042543504024664558495588387797924370585901545385523925488257919532950557338178800815946380637511277794061768536904501913891684601467885827934893268810275739066203997300789197516689791055759387352838097621128060937129417905309701286996179784970583505925067696659036470340182022144112585208570089249820392275956907227831173159373927338046855244407713457122524099239942527879611372585539853902166242433806248235683059477184189910888948503654397272418606330451938981032955729990513635660593355868372419878410816786844696613114457137656502083699668950705466578267141089361192314568173727788592650182654108083656382645059900293200533433784997254172128933505866386812317931194087895175376269558529116878643221781541313550657716612617726617833523239779859212715458687063503766731936648255356742621386266142696370469684132143141339599553997952491589408870583437969709121510256937199036842007445775540841240845579931122506440658537963286503591348008644256942798310142693050356222538916170742906292325700293945815986087250578247739032874916986861288038893964513285538893169392234987233021977301954677870339453377967338674368996342289663768927985199495464082467418841734419984236148042649029608483957781922206005050460910680924123859103874334484471243691081737986939136716992659645039400653873564110085262145081703639082178521239616415021786409902432056158257226820518756872626112001401504186726948471637056391151066620541844072092755115126073180374720977865983289806477459145719785386318473318187213398886622334808111903625004431876371584830957070121833643007748362077748214025358880212918470474693517224817089118979227862574673813068101447711021741717705490605625822806708943588632806689828669656648570955561765706407679534644869284250094794866720757951979818008742420485537600743803236954235832404676400053873714747552179382964204533779366537866688712902837963324327797756784910019449256908838517706950961494637903317680234574777370083961008985111229591316759143940159593778551918221179899685854137150826663253324604135009738040046316210370918117144001077070904015546793803867801250720459069645070710283807362370613879435131366654409150568691753073208296387160131780760059134525824399804579614133001343387500971537885531027593506325231397359221014756835337525737871214824194411695713823715173866045422480128774239627045585995695497604632106793770278838795408577889321775630908975235179936709274169490756109916763027058456454478312693076450627571391586743871503670399882488919988580835986838624442494288560975029428267044186877373606138949047079470735602752187921418376182028713042073668575576568128497086165231209718398686336618358579481375640552584935947942033339233845934171123366652013718680846403946553909009375394558511940939987268302245309493589377743670111978354201262224778472295070826932686844029177060087235145214231940458643075573894476759531833713927891377581189140858686205426977991071999435490823906259897292386010313327264405952269720486741297767443906730457671349335003908770214194229565768180384770395317875341762055520121240391915118468688864822770089011269048426453610074626562073439750610300954832814051945152193644431206805789969269078730748479625200250658286782340397890354613996991499549436228061194306692842777782460578319400689152229554294762622521974025656974709655496124420327271627948412220083408733221802210870938436203629429013347263384296757393613245006458247369291472695290196826701263072633206949268816611896487648988188933446894910122379998701055158794939915606855260135238723470706508103886240761572668610933461753403392532236935412225936531228823605850877735679194501240359567653002828859043624585391995002730575084089427087663324461342434826502293764649100514141887667071939876433023153643471667881202026514238593824358551757457909694770510349355091293395188988694640563913513735519364638501165905156565956426553045971534566688140849283531332750760637971926456400426084200582941771857848990700405600562639797800947710768088987330182332896000199259329885363931587294783341195278940962962009088445800198507342241660816973180396959665423818385509368692321241657024506458653272554467266202239313753224142180071859509045531737505190906602262928312380878006629445421145283031473098987471665694326428991530314142192097755090059703186451315095283430273703450610583427714058476457999392310347198180022508699241563712266570902861793922312761519236446901371349563726867283014824840725232378016553250081318517038079536577059727878267757691678995516320589554744819878114453771197922284666589784919066670604168784377087007238064536060668357664251627975124000386990599343677692847659295517248419201457431460138191083868531353475195073394652020333251842398269328673992462593758399656848089814902717811702882230686089447067136991175241533307644569705875664554899113412038936588858957156920575308531271430917361829261445191301182655187159787989499788891426733000932963512796925163802931743087673449786072698880631169144663255782647004373126890556644434606449120473754098965656898856918503246546923819090646585419373999475792196625511887849088130625635532700477200398294621219424807451006940054139256904334586699638092018734873959936219277827643798687060815163612673100206374508175479963143902452626597113189685249089307121107906346628772699396545254719970960858390466917589796004926774032573090591889649260291130852887273995784949270844077246008384410765378817364797595185821000448392626122815274574101974514100864385926725191260141982362946893046669698411643539655584253452027818848240345270457724451807299616938510087196518538247059416527933744986477529962113685955967636112440063785178713301174129620857025772653740779732628413932796896706598054652329661977720082395811098142951678680491176677562851410406640468293818799299730943214119371570902857398508657540815407543261560565947531875468725364804353059551085855076073044054578881675272169632107703114388959706168599245278184037074344186855821702765774330293282002409263823532024263479916758861222460909539384106387869380038772879882650537582628829521701499328811063475974362623424355631912339683384824012428304571747462272418535561468835348214494232447949916827313350941506797559410744687502513350566349037167444484244462263887747806803222394503286909014492869862963452745904564367117143578767782562775497414489640451039962119775465233845234875806546681906210062144996065201240439162206846287671249259293955749827108764035209856460270134199587579221684864189994404926353868714877311387081593724291423559881335737920134089693101835852279948940645515955379392743146604074949650165596810785853017094137587482370986703385078633719716600095712214918506394462337111463636305137889749123042355756265742638528421956951452422730947796494641744214149508416400581918516468842959961065315426520683516913876674515391993543693716834939949979447448902025903879159472600127610728011978155407300644164832569661502764246503427875744725779703724733926608302027481403259580964495651117910495035945262005411313405167660814405820804409892842945795352329347339470602175691892582575798797532405559600024357235261416607088506035832605352565583905107325819622173189162415427095713926788905267690130759666478723454995392190353244221585392847662115584271942753584894522350795295273004736671908766247228815069692492573985922990969448036551742798864059131505448070294936465667799940769667708764661327245037656269095903104044566053356263572833889453256247901005376764543488590997886036509908225622871750600174684772856504008981064329333758702023529652270153588698436052074064623419494127786132452489612791897400193468205802815616711435730401641361987785233673907230360476459922291434680952771676976776675826192703126209122064123652555367361290353006261224099569095655176413792753707347103564315806942350842142289358330680623042366929030568153822149177419161066727631642298718108890768602562246232993900846121504693204845069505989642840826296862423586715496479525334567931701103208534340961628228449922382205328694168162958806860200125415575740475401486952992022098167909691189318812614477185835267304666114239941932750564515488023439871445972691448280404279879108356435984974238722998714330676102280394153777490637128367880069522851392874200407228562083709072442377205272873159399614863510588256017907058350932315993704321249551845123028442738772834057450774999487898793660583878274452294468557721999924926813849709565028387750836944014595809658749693760750492949162636855255253709771087529190753599748273783870171902322498146453544125545545882198749649435694710475316382530600020752999301325391865252499549950165769570336045242796958724006043797337611146543927314061209357738529954449502047215722084396507726826113400496455236924694381839264209651170503628407667873916879086409146209047123014205485506603514853988080772873641681943410359328560407098910445244216859189005913360254118955693485651000937879130281109440474740826615693659914027840675898249009356642520636210747994663485815031641282566030412449317486369373393254266338392591708755905813624645061782955278618485602387949434352538052376799945566224738600473285601870571590959996615513148702746343509930877421366881928263727842063721965783440282506181174989607891885854294022201777966348197019544386809846635657121107181287510803385804285947347596264880635326873094482453064111235567925105343520448256459289573885561920646810666113351480323285138471997514538981891485631282764599966426264053588925944468247251260068017503006612363619630322415886450766135425575329186828592505033891009791560909400405722034986906767075394020242567221678400818607190546591064545329320968765988960203609593009690643347887789594614101999390303658603176717689542628990529696067942303532489542266522432629678215828954815356045441026942654496092883452741275647131652600604407557962662354723163993369054282859234682723461276516014086369447264858747291961642375258098872095935162406563738380805796519625768707011421656342343414830641265681944993674555819860593537663207257912512913293008654588745632727750969450916370269736862732908196519294425856193361602540901282280135933571547727315650879168741336147637577039066836565597150337433931333070124914764835836584568619449650236248414868810217139589182950685267883303821255386297523013327022676839289429346874859781667562188322447904995249979553763669688988695282835629251005828265301188034425205337146915316438843683883442670364955721660991603429442426556023463402884964042287517571593153876488278706561511323237871930706953711655908587612551057668480807918320395950681072025123886834757596470151144591841938869050338840015539519505439664321380699293447721944229419270359352090654751864106302386961706368723004918608251622459082399288607678718917745455383527915435164646544463884814391084543771054733807887257614120810216507703822714930062647288499323896486390858950955651949286148152706722643849055843349006786509582115092319104160276502534590404633332071823871654325836497095300613313243824075981323950947659192787192304557943717274755708716011469697294780956579119917550403030705349115185334225276443159680141976393498626148129696255100559070313564280679711254531465842352078226065618826867830414486034341584336879642977109852682255736382842662232032783608202501060188510849557687164635833626884890533783253659327499256509616217549344098149652133765109958335346588675454505588665728645642525572488679647901403766438272423773978183225584687789374033709738310485385248323548664523217575698424478565643121250413388217361267320378244554272473425296376839833580134594618580373256913505258835077485692421205828447210451409325744036435186945592202586119715476646354666456926629317976585261517792973494772233312855065510793338466349991369341742429409128107082489260089715634779306490776183630521448209080947332362123953284535985213905548871092651143763196434225981574300217285394823255892426934850255692434485730011329442144008692131353336294008612681314653122873908752986845834608991916537254876447584550041695036491296101691412942678271677290823833252497970256316937040098568870976097259348743356064968289868132953232709382976289656338312277653880014111648208490166877254469849272837433227623572776430646155984607041479740013873372087084255515637772458927363106801677287688664828938035990100605325009201454200550410431623215957327555674189213243001485425774071255386493534333658623928455293489528646406144447183035042887235085831144466885424058460110930848226374212024640068270792921646000532280066435549478759960213236311258590530445881047063332900156780851735850258948830004659228474500035167410718412053025645034718704449446353348713804835574824186241852570350062126154060689906124736624550656291030681909527576757143368003162351393427884331400612964553940810109773627301999893104497246073586817544674714555224346206173623157540041626156818663636838961160709636954252488574095906909875341455574411457071051737436377339474108081179058645531370420645404828315235194372687927113174771324867338016647378593007266183260868036354395712048251135871998979857644048196012388459825569636927711924748661880087221611553925804459704033049812536891008142002373757123031255240942240668713313745370152173867442046887601255828414151938877444550177001757965308709259765394087624947744813956633106985757505234419752149793917653351326809995943437336821732731586901776191612479513812621767308900308425688026181523362147609029343943516160100629076919377186475107664464299630201030186627907176133880776475597680416883366434598427562461126978545280944816960555624659813247310209151241125727688204259977969152036627776548297990727153730741393096323119010963785254853234577895215116556582171132674076266701473311859120174028226709179844156036172155504522810291738218167763388033828147784014296728198172185945425251746888305391316173896711606984314011334326453203385684609845116033464496565697879780969024250027307524796788402743939701284244983776435842734968815023488775216662613648504689563221077875407277521333223076868229694439553060680707142427995029523703505018935498941219005689205211169049481887161813992445924540438236332680636735759727529527475510715192891260081268223778684418513383161010630796062019082773613670136652940878650087744721014831867328504196339970621632015419421827784504158461379152122883688943648238409673784737168850680067297960407707918947090655495781444253455257012564829336513112482889051405366089817876988386925272795938212746156570611056239737814905578406120437881777636344788586981124600727926853664629137656280047667465709870259780266854458613621219335139440965220588783623318597766279791027679367685690861615067827639973101301317557911301562413447334488901200765169639804670479798236621759329092984651867698643676974087538916123783462990337474040716630168702916626174999724502002688930020995840366118759530861004085766223837972594285711258180908708526099360922516342524623163056903104198763192585471621590953470275973826749207760019195540195550887967867314620666013357707883299126178819270320060760064556719911229930299963475373090420254457844759022891915337608143158259939944162794005576273339815086035245927591202546792605059679768946748293708863971711520300344131501954080515574110650249247689148997573230860966443069328504714467522867042858608249456769564198876023271202678506176997716776690895783825527395680038016188205416070000107395199514457677680087904553402396867173487246901390429736676792472053632130078965503224771614451550641733373396909843199529704199270160123694135982695218087653181776955688900562684498379965316627638285362814224392061301738737833326735393387038130933477751400107371408605717576599228110256651297016445629185812358789819247622247894404379042407863177622837470179370564491560611199447991498077910712815685206502938377461630825642243250494667773986753796473169606868900200210937022774067992384766708630483983532821136038652572486240454576430368623551815611856442472790894502116491230019909967409186676889287437895953386054089146144531480784300666197440755682121301937171311931255356546882976822933867531063020193491118660355159433682502248916754965324015451007719386343301775825827520719098642583446536363476695517632677750709400722509786931806159576949160485090061030936899929063896038198630338252657561500104257030482312565848072650287672234239729351283956099726280323218472459009846914789161586723934829918532579782748593288609030386608686735270325143175981044539089446564426843256169404117499383807688800713579353111129702571397544364386712968344639678243223243787548340777592658019091076246518939091986539884442608119966876933220651030646985271047289914064512208586546205592397573024855528884122568482085455552955085668356264541365310960618267597859662465044913331944311386033763977360003894432152944742363820374077887856694157077042646891757304517074869089413959829256590312017301456416639632728028850658729824763694053182077186121436821248773723710014981727814609929525024802581910490152348415998606531984953259839998029067953904860672393049573282828437704189547840991345774192185327437267999515067028156851280466945198405162575409700639088154082904875538372367851376440490813778834759513766486151717637367499895270034452051259315354169967273716578221444866577429975181662325637403128491621633405493841426604928761854086691674686366310608721158803614947279625535078707781514673204748112995664517936709108569066756896923213168346540272926763978174150318065692490292146000129664857194121766275294999171250329703155907136808828408735510747632332381254070383645081002613144215953651089511376355345697105968081584512789279416202251212025013309406307528968237808423784699204175764823827610206349130045385095161352991859713642504121551234503332740340519053075825733046407450603258010538259071079912933977380209348680301788857306816539596873361493500779784522703964878654179419528075998992882288474053781618666458785221462657863005556685348099185126733134547529327376731688311598522941850842177197550320858732169742863898326456953893445324950293985256077760817601218195242186548655431074334606195523712068065063368940305744494262524507511243466060843331975375972979174292792902312231548126733350873637600511066108198476179913681605937792180467157375830155969814757161241627550081417319843029144820756917626338485596609541916671669584067480288792620351026644222734882481129444875368838513740398027153421694646300017803686349275576434762869827228577004748495766478202449881755612657955758535182476666304023466709308313820450161989450176576448320609608839371913269891908011024113320214792647703851240125695287860952102582264645628177963898855979522597083611908360317487619329333960608239778702061861744844059136253007018709466742144551615521943388160594184097591376357084336647601156831872987942641426374265992624881980879519713567885088948740192539244176972101827357894313920615527686859767908266581919504496735829012792798809038023050386268838151937945759563708418190691087460986792135720826302690218952123181517601617294906167389357822146569222975215511506195819382593456408687629190192759795998761813079501770971617319848779874676754989513224573981523096935532653738429383998621793496374962328916836168606885397376474671735582631757213167809224978649133596521827862467164853860404863213370277574776207978520380937403964041825791258013689949203160249463140480095734422235581188733120984276443748645665053695874757760841273500813056802472170986787593947673158049419266839293175120728719628199796118722237064946408468015068020752780694688581015018444690719222097515075239134408513526618174301444976865277400491861121517712758974699439568630531132911618294608037014943655674403997579086688407638518012358065645061441965296326915244575945418412031504286583774526326188658395310872831958068108526607762955412369609639525502957597567270517689610621902902890270775123736330763081682758396405934409057932083484478581839512993513084313960999728426881107169511671146124172108559070769771730013677922439075834724739993994688202386997586294846359294089111461226831997572236902728258907477226315144427511587932162844223348284305225314121398613971556189552650883843218539618480918454919110362422539485132955598035518356004179806941531951617290316381181404665446534668732977900294238915786409730883850550311182825037922400541999767813246914240182659011184659582241287073892229245072864984073275473634573080158836428787861599756061590337019279725154192674819948371163749025838027735207587526175148505394058675912318261355478032844156959110184739451031687655530164688531048846677779914316971155009970680086006414414983555825303738589665634520202870919849049583252023118973402860467344188757589654874238716101936381084837067873096680570391663029925634924926169552197052021906496824753473747294052166299756665674459223784398345504880245629894586691939743308777778357775403288888766998459057169254140634966764853514936093036287668473941432603646541107422646532673271820842561084385364765659486527257582938223372224561678227940339818420180350256582446522745989406453716011496896539089036692532182577223995443640575087910190934732230100017427421027135127605562902221107828711353241824506029284967629466074294539966524724752762951605079302549303308316641360734930266050318046050124962182216928226770966790213521360795473433819049966587921754364326480595771142771547478749477203815540363056252950938801132218267297895799862467255137284740877290599507846949521792214640359983138198115738496148436787878337326106766007630429076991186196309006202861774580347686366003161396390810632387545108610418663278392562484666062094215235425139938861902046753368505359265482209644400329997249004607812408259445427034971369181789669644531956856510561030374763204860365679381871534979068023364817054491707384404515925088917475123535360382882895601433287890413540516558605216064256413990544280155935620501212346532395641171174569349119668943477821756260477913186500012146823184972741426437273097403751490927184773652660536637828047446121581119609892283494920847674717065642342546513740060900672252828942089968169204039329933028899107159294425457640797213310210681476166825453185374655517349716492527577901407029192418226283067042286552866443030784096932472145785912236139108118110949331197505732864113587095950272091574840376756238709550854617552006475412765908832480730865318771451552970200478247747511672174319067820259099226515850741156127938921469994200322245776138942881140297062444060543199797283255209182911671554086332091018581547717524340676380982133073357615195036035911405112049472960997009947227417742599767808930707578905794806327039227071165212866864732310222986533457384047166409073311024886478726594906182480636515815074626353074620509289061428584253196048357463152045814460241529036405568666618908192556832243606740664941050185813102442972660816502468291266568673376924719626373320845548873384536799022404234393497280674322062031622031305377766784080641679567986601863645082377420671147607424799812758695571848282596812449381684826402168829679753039303915997901489371266215323726683631454735840308943313217822091583974204186256292537823836174683968598497281847578420110755787165843392148807938241661130240685555291040612663829963317925401433415372128949504728804431879729190692818249796209047836457723186283951925518081616327864137993873676568673693516909527234032330065385935323415591612538814861792253400121365286422951088422655972908943839460996004119881102018387197441677792761017386972830358084450703676076914156733596351373063246052306336230563877102141566472921424574072430174346606343398760222377580357292824954309515931870337612446070004532497697234348993939063698327208187668062825312215989735041560460139677198259722406532387637476682969211859529384560975134753973512680011781702847396357008597715083639953609461535380978567769799139625838941765025206548151780315573806586425972910863794295359203958384191016511115285479948930610423079550014037691508484974820644901196151596043801010113695431881114135491918438463392286750161667277158677768602640097707796754962717085612925930012451700721673042095667723529794640926945296488769123137728161505757912179503885118777307882687416252275110015803837043936079626455553431782714371082904657623238995207447089626353179586302246640057885703849615237259106513685841460898118969613554427783554447162754873766745285233815062831795472909689576349235174159054569851336224296193681541601718909675075939220249279975387645721793631272941771143339772460487698170026579399842073131211231542944754696775565657256267862599099813951308391900251271134901306254004981089543554925928381109292059318378273375035070352926201887394529733981259263958654088890649869722415564252094329154824827574906824082661635874872443821725839170257257943145123628375854861602154777312337132833262031363464100235003009641978671934949754672327128971370561898253723567288218135289525436517417487966118573117517262310285246553419935773680241766705600428762329696846663049485487440732306119179407635469336653778113171859125508272345341903452636971448692793520012864039736954343162106897104056187088671075826465573953616761117595223519724061158289685638132234472048054086520056859525250820094290955878099354371158796750684065199514705627650440111511939022015571210775803277919093259877331739876150838120067674648152809211557018393743516548920495671216388467150895838773266777316769613162850249969382360196480544554384417538172216709820642487740457061801577555742490154790408216558524099640122575118059826277630482920532729591716126769435944370515932323689061963689380149083512559562966268956324098351341115434241303078132939107897508266488957817455133742654299806895254937699401008307577949485815248209279074844299710593673576813855780200044513041624275539112124409544088289314023697227359648789355696279629509204111096187149830751457398118394970670048300595760949467439577449767488593482191744576362286059745958319794888428788126167132946590882469099767017269259094841780195373458345870400625258351116657038290522228206916919965161928207460819314856419165583539489669037712587824628916551583277046548762193303078245399896363134609953362284233687456583063742822510047460843082418440583263173503535978829184859713122279987864097078295979755938198647448278570066415301896921056136561625204712401271163741073878995302660543174952766923125793410871159641005739575389987752327570009835926791303671043804359239264032857017274990025043451748435195394078217246250781954389569615068383555456711716908194347953037975097612642774251780728131835873294936243120178577862472988517803047068414958894521291854069583853538015393003251144003844565569261074808201407021923526569000158225754307013822504790463169811696371999527269342820582155903049387651161201836197281090527663369913971666083320596233446978483905060073994883723648812338162932718219439042617586863782094000692052360216401091724231755463088287451563127443514644216512159109553151670266154763692410697121728270529504115014728468472835784093742544850523638099943172169615369456659495783002087911471089142059877843230434208820033544089442778714687285623712066495886972013395466087957279173723123145423245102936516442540475059754193274077993010093625064695439081027020918955159819905138813531131508585715770857389675829165617161972816819288489704621839646356177156399081118077112976529279213077663097011348444368151910999757734811790145312608706528089738113478693238879881387743855995264360578724670469708299923135170224465440844145540368496815575219528537653707637007593606018994106568663786744501347809715007104913861380070405471285299896929540718548536075232589320882931609384819720857454466089852397562650992613828233930240992914917267639343775388603387184140771199590482665052679295470820822464865123883431810601771227086683911201854416528404386339156136398401483499222699265201029725456592794519380612090851593167524020547174033499717335663019413952585857375094550089494915993668324687132017378621390856150799239748958774830893176513110574404038064135693383931183774232812374776924142313969351906238812409255259821882417457105657482280645046319346568390360408107292135820528615787498753740148645706516179559061522904025269381305090128057959217679422120818940625604461121722658849973678164196423374482194931242202219428433829461754626203236732676360680336474432332953025717424482926638761740013463692894822132171700419432669681166541705223170225876049455203253185287005743495759096919235466064656811092048039623968921960532169474489671540509225593908874225181172077441648933511140732115785480819004773825902411473153490189605900865144797819909309745308569055542662466844046895328474238267415965785312037443135428929104157135394164194342226343999013998751024537448914122957845422716746260340245908413884389388624427122128545998917363468816287187984399664088923298093808900756621104050833021351859309008634281038781817429988171268047446215498521925398724129639813784455917799919558494660279244587666099656417161388788113081253317938596566717844569525806778145679830174091471630363853148475287044262316619317011760506271281627753318157197050328076684552048606955606163991923357773123352707263349687697212960215766330037851913323762924982438846639501176539923108897338315939816128438736834030612342675510405790848079561634377184302037896858004926419125239922061414058677278257349946064514865530742399365125922278794464734223865719564501560755618525059802054053280408065791108094472685416226942094667394261873708946811903616844822332959896760953118336098876970031932816185417170465620455452750052237208021487943223399128354542412033359743726180276089578566648542013058340446486464873112664283047296659450030721878991175193109993145981964968994861807420737849731515300596137604316033439248813460530685376818624337218463043943183831862581224946154341186826440187930814316170267479400758296306234723121432112397681672108188469626331408359773582297164334000290233510441910234380631923982559388247669137584995418482677243097257027897634034569405058327182370789933761578736714637374627270092886571970006619910455798016406186766804177195663663171943545103761518275472798842290127735427111550586344279029201193225480176387707946367412653299931687796132857256044219780957940972615648118641452134644175844523967932326525501037464802271485701805599869565047507776069297572249050118167225276246022014551918077939591373798598676243205942104797464488741680169219178767379938101331786530296082541635688428373131716560799561060031031300595669377282453083303886700420337628680795869741249238343176996734548651854805672423164192597183428724573960408775494619350788795048956099048889862866642914619262206180271758106680210241456660701518435889585181244879376085066589114222871185921566063448152405710628800850877506867812583199135803187999235982717535996572161687886776955112200988207797407432998111405382313746836996168658325247716444478739647431079981929215219582410543229240007051563189487273679771897936941354736112198902564219778099282835638973822878816573911144500836399988721237495273822619146575505046216102723264227618786054356120531205504639085111777892808691620139223735960824861814241417092249611108515023645275615762451217341032728708272753797863471365789493786548709142526279141595011617575559492861026350203125977907376708244180870876435122172696282631423158887038046790499093315111598003759759413052801355798371651725100745811767096624015320620599775065849242025910902243710421109498059566217941138439084847161226045375379981337969918375967281075532539176768976065247769896047500260659413331377626265737307336001355210284334338098629485753119020740114793647637828175700768571236249862085165512705703081228850773144577737754134132904237678576566674172811406808733985242243230441167131368301848614932246615007380003008001769639433313433417779433672531240613115197839019532361325329149808941337632122822208328797264322080508419863329289143283509372364909894855447829145099453574939039130199065324694769881441360574114589157982153957079770337510060435901680094271833567170257463805566364937577976993167259737564472247373837377723247972349826914800818717026682478876630834232501148556459912609122290254264666839892341196663208079400431946698049980155058170962486674238088953002492624234909228440730466394826722051248475667737010947475309413960747168679556164508385177046569441857715846467376034846809558545776348593108629629994081522089208119935274435416889202511284825557559743215704443772465103032885495503570716300378411477905368514408186396364193825485784274867836271205481364786223339234727398774938121535291425200797489201296658946035754507251358007817851801301997231823093966510481718330350408522345592767314125357790135888155328742117639472979328232506415748270008544304427583987269818050954352723186461603301131961100930191749265195123897234646590182165104127960084044117515344706298623002542987597777063301932882241641434308153282089781096290729777614161686616207924293210077748212159273376525099570009857477236778625730844027597529749666252240002934288909545811040696457567051070735992368166842053585324868241513837433622827237440609735149561309758108013779536557904566849159559653435078028081629662609340209914460425277475548480182869266931779375213172904198622188918058804087629700392707985731703504211186162023552246360776434152669244321095173558526049705372553899693070427436226547647153350268816402693743925474539942453916072205071725450156448200707780238451251452906014049098951215124893800750207728066123643025724040453847410253604204003393829655165691490743796728612601233802872854841704821971019860111692194234565055436428237158507511216313800636759007669036293215751925563271815630771056829479876991719834459909955316471421444337456039712323350484930652734847297223335305096874912573228231115748202510487363812677750730324310746390434397165070407124067914072936810642050492699518790346012692445236180104258569761205115787488896869804824153766718737872144453329145175064299459602691780457846596073102092304949124463065451365485257716190403219001443166128177083228138405745685494339610006543803011048505213419490208604509581035906510421066986956442669566836652083659271002227324580132094786988810812840959024875857466844276961494877625068437838045118205295453852650423802553401499457018026475959422117938019124387519552274256150217331010199295176134052260722122355701065962812265292133495138038749966495272571158037000223107397829150923517862069665874138181228756602302235295429085821287905206929398877299345508146108537913760447424461572854433302789945367142292949135549769625328272520813497598615542165091792143872003824930427175163103874573511851268468470210622033331338649229779368204628430641894516961846299929992989223554224708634786493480564101300904655761781795008154240916786107098786000250011765083180446839625009896102851506824432616888813710268147364519871683271236130261018236457232119527760739960890419416700929987044581816711598227183517399105669731027465998349319630033861163907558703704609059362173423441596383133132372091152424326216193460751577994491326752853301561342633845627845617276330505354113559033282967564183447859064510798859192989728410409476447453204564861336438721480321672400846400176277739111611771996836673679696124247457509728435359573890438067735909647302947682231213147940562833968068706146428640240109263664932549605359638068697013748063899425566551745372668803421392072631586879437979659616214627053342783379553353735644913947074430490200854643519582286573298158611427496679181384088981137105510672386733025700318698765641641568526146076541409021685067841857659694857266044983887196760419407098902822854410725234258242812369202136409975327135015689272198751198907700780890755044074995731768729650829992333544342737340945095275442798177581679029055001232191944680212605159449738960361553835968536082447752204585067526034441476963308735095976653975489793505113096457820066273211908181581187789485699331867671852120494107518683323085331410035218527927214466098320028285194927902917275121132669178738352396027133984657570774412217981997652668885412193895445600994220313314520067081975964467280872411581419182991052251907622777365333229514390378914724859102433407580171762991785303369236459964543645619177111598693059508593045779069662569798666756712742933570662536187061699343194374551883467692825018099443024382053829110571778229123560662619000295415433560847641290829658267825969670199080792741669266991161342061390380454324552610918097856570698594399980762919901309439688688963884964663573196222237284910860584988986134568346723071873480955012367112073881508721851990657041257872460623732262373330512579152143807507536644173448207274261763338313255484825167047499063606611724856705971874290846142583186197155471355633070084107726679897360483938250103722260256698199149840495932673789676919765229752851901429284882399162934014025929728788217645151201951765439499585570176461100750745749009041781640084384299708567521318548297019486803772681087113548263210919530096054773151852426842370157211131676872831841158818112156237839400398229874534457641476429491004919784848958259565022835587877289602535688936950875660709430003681689405633509779317304852789106844611809329014762503892234047418033150138963176330712721439990058522288200026219131993741070297100101689212105243710984437913123592253309289870135400940181544021046394768311704035144478410110436464239714451491080753246199261191426226416040077823497059263423565110365672332784276590401451424130859145257524603885158584918380291421606217513737333335858864540061356780449979363486602734619615306306541074703679680759489282372041473226476620782443423240142720369561552857776129652658265336029853931308027033584312445230860139185353104700973784678605554929724297907144973723512016990627155089288118267909453142740438335193278349824036199716551255512340458093733194043548715315694015382590568763326232684858812479382203964646935904006093168177166761546535604166638046427601708323735196566837775546829097328990815938461718752900026404922197440833757749908551818403485653318066285337551101556368632623292078560697736092605949653980288271417964852177241734502477925172516936712660724145096566139102293465488552986598460726186923426649783363100935357707352861818820180998605144475189990618596815590945153897483042338290527791776734584936162218423572112219052189042324619352203030994256027501884305341689502117697963491935463445913203021201085112526730511557199678630552458812319265588325276748243844993428305657696824688244632452400348403188662467159484702771496317449341471797028773079712323523893742661465918086624222323401752134899590841257290567892224209949521663961876511913329781242609766981411045287328813544499254653034819818828008847444104605387151539872520133319784730357853100773722084066116879082099453302324719911781181335598047057642556591283911392482539089681604736463121187506543541357641120633633836414067642649512931733235876844060846344617856506990851240089236209252152328985794192368891438154324509423411018633648285127704743176812482752069070261273085191373754220363327129117945484725955093224672152254032765883038805865162129514153245844546366114740256761493189353891014120717285582057628928831637270059695040035283746665921059652761160096366724144443953251425406916656958843460871679773122282434456098415043407161014417077622621404139018617675137374296087740339855465208793231480764645274498546053563283985850809904594768015741512970265355569319266526523043629473912461923027390798650486407547584607454601239391032081265572940095546293411958645917657744312809021617504278433656251387587383859240717677981276536601348416130783434634379496623381501751136412977928750705135488974532021035397949886168029723859750558510803337933483573139238616337666175108963061411177689963469804379085128533894686373799602752295559097196619620871646471569878055964184102026935877881413179011809256931130074785123101092688471618376496251984720097208785105802455020924208651696436236122774800895806705585069932904890487822857255242362458831986286891175177690724572434243552007524196270296589118113683996160600505420084595337182362301102794877628127914731446721996161034827146437683114935195052528613731423219597827977590498014868304541604955995305730660774905798009262332693426474163453831948711410029515133123220734980510665863992027647813427870139657941587163229136734453310512933553924836980133724747455294065226395508039043348320884670157096981823698689448960936080303680770487696646019419829353084735243898085280139659811549616058251104786034266966711430818272317908526430475428928993358204881040081405692227071199097181721700162636653042266618335063807616361717022864267272550298074405032584742545815041292482316368934551743437380771862559208470220274513580820796420495122257647829938102777521629123358323558236348644619006686158624865523615080868890200231851324467407808330080029996222611077552065378706011335685339824655678137140178512796268998095931449204136422088001633043779411492928608108561829586796697414082172180203801304002118369525996722615624449986382992743577555051936722603439474977553216613364268329196628242287336693459840389211648852807260147040710440696757649551300882706059056268270456409480728673499591452078181253813960115021668367993537618924891761190895417322210878705579323155243964922889373566642130080645414898776462886652522022508884796385748604509670676022241691196607142582385763181581848500191309868951240436829440236713245473894290116963147585438145299980409478295223937695223180231983669731942765370614757053358623358450396688314971436882180805143171682134096014938456546634320904257814187968173768678510711297477277364463013400379412300928999203762051342501686792565797984318188896505057921828767009689379784903168938854571692531028067677088709868113279231310610130979693708950916559880089842469101331500575393316098893226394435076863816256806945972743303371359102387193812649010829485976224317930634755635301584050070620276642812367897581910013315746365708490270188455269668655455539255052438287007181002425886361914209387221329315651926972396130397827135255477483880363575557833000094155324800292161979015528109819007557123865027363811390276817529443179076055097198009810698628261966584722195670452579837524879238266769554419448044246466673472996125791868452379456161236813061458920777773869253962678160810461043005015982373967023512001001251478740545259276710415959081112564586785971162416426651916630132785820487359898204193483722882296557850807297978029563658853768002722310287403984249573256271955952970134249670066577130553947079242700149684624231355524385659232848610251325259889519863012023885518565854883457775651803382865551469616863693137053042794538912781745606015598537727397110703750181904588243642532792794290222254132558101265122837791014307301215419105506734656886980561967608636393274308627831198735385979273848721606419849534268364635787963506231180016306069652207691988574008673216895282773749011663859293370244395691537770939240240735411027634630146472683652335423640888473150609374125136515938364226103991874269058596465808372474426035908135645579667274454685871297391982886952412316428752802592075373946526246376622373615787062647068827621521734002715926397405173454477705149144320652552068752872100482262922151276722386668739677744249777438507920809809192163403703400451504070213842252349595665927985583773394069416543776039477743289880597498263703256619389408280558309943827578067492585923508315074189179566980712096510830933772905622116559883894997547501111991220832226212235446621965863072863309732374279183141711404348762482533243661884542795611529697212753930064941021459894439821307113823437351390080317995869634065072141079672510135507914269660224629336317538647368175963677470367150205068040958352957383131490857474415541669695842555461049645416873748262623729178825522861978307419435346863953698249179276610877517333945057813701565051886197981805416007304351187879812767376977181329987648070064813905330547243733636894422892030360746033162351151288039013233264642316474239940665348689764667965454606019666126079658707297666256480807056922791372395631793410826404575006566982929570768790855389221349194656078908961834791210645034981959013587773848426146241923213484313995764454437451626626070602235183471057914161859391645100581251755805988038790658301107768483169903555821112921610479761502307414224707239152566649539565404851624902729035517298910090103559470666922539987155850712961167999792412488856941777933454067298371291767962148976581858797791600187244732692470517516148196652338431104448319505702357568753328201100089339221276045578297087596863309553131065453668004722613896271313615367818560415512389118011950814912562336123872467506936061968984771972734882710693048432944473880758224988589166961501368083835987759694376817867830777051429052074182195804655280447847195195080237033632984512513505269982209520718203542298477771915653412117950294392702842570960662639916103893353306849585922857985246777422559218192066274577052068365403651449889579834262783643245407401195355543403932503409381851880620878614531961215566483319611905339561462627928321714725362991911542936370021741188769130767238783351819572874264259820235192240421920994073976135346234966896019522642316308154154179317197723717450467058726511647126239122047367438508139852124368445437373266560243629441056079170210914153372862392097350036733129500639282437587119376167694523277110062175618432771209394732655099304275495497082085255696545433193838122027133988558522752372867215454975031614054749135510633796513211025608414793165713276307644335823409955964260015985737301442666124638874098876845238155501456304330713178118084994856359059976370733977368912436467541458486221137562333406025948694940460328431944573536217107935352921125719821454720039529602709759630032787843337953834291189111981670884864548478489230466815057851420415593993777944041195699492775575756303574718214174009428641764774352334478851019142977997842364826132401269770427319192180654786166426214058084238451776307740464110068615813115104061142342307075656332963669136773986455347814436696400304383273784726747734593323693476280773039843307631667689888243893571950019574624831155003003358073440958445728387375062975208314769278213551794098873596440290170569249776823175417107241887989535364794554783888366350239786949972278656434207706258248016815393332780594814681240442846320279689111322695615983010892088964960114968306604356314323020009965817023150204548143266803795525109376041709643327788252165878978642409723735644078194191841543154820404996405393321153289269257449537510725290933133802142986967154495538975587426363083083905474308752764498012185233446136709785685500232649295184255872580489769066305313692334593792542016257804146419677245485160457744149476101284789454524236817431396067548018007122757473967782769859394086809260174667389093333233924623799438637373480800523388967538139610182291096442079596512798646038690662906059923276903533052278315292423727373268125130149980455753365052289332649185630882071512134386848578898910043362961907833138152092822548024800454305361205268034895745249692875997267043585104630624229870913040718948183883718931981079628271611909125582966692498630456830242400962272851031605045285307794880161210850422421966691536777663878433229183565911102753696169502833303976909327284507274519784145398924201181685401854059835502953028272496245364834177336582795252757374983364381282549836537652215479912888119772429764774169103488219662999493251432436802104152967309701305020290619229138537600345151309549421614953787020650611734946287590882467224812026071369526577001192885490129611280480071277369001925668653983130366490900014946198059586910011153058996587349087596466906553841483566566001767540862279259951550463989748932921169473728260287129738702688676834774096949181369616404390981637353479319036311227222041184676386311399329389213385815592021349662616235166833987726222775532645967400972532464646963488896879508775700405814629311999500575604000432432261567517969705552825707856539081345625337709278894232012378357980567918593091522098221541255254954941732186327527457416707141015409040202200066729372718482735774899081852548306910959500684397416187051508802556932245532694571838116573075222283940693681139037382780713834739697379246955658792069412065213707466301928986128724282275754168872422639871695030967124413905903542030161132840195881108960110378524399542524116849444363145573454163424630785744959337449720658278626699948365298589551100800924410759891759229430536019831299009821299887652876283360004857415430915562813996573927162943882580079263229261124011092899372707964245804401633734231870968018768628316253914542357728829148055511146615551038074971803668176270631812028524850814329087615466230202550497409279901281136134800654679885655192798892841396555370632026241287927783150809257288225224349836114252664594468212906318075286742908962117140259534622162481633109118899241045004750006468608192197638033486546416955793242963821805462073762963005473449509426034289890019658884671900976784084766672038888390667832806358711523985506916049879721129053131029245202388906555302748272074671713417942705997518969329772378332059263870907738445189085728066679537046525477953400712530180356003789265145623711347693925943700032427637191945631592697582231250531652456137638059873338778461077983137767109987505012501336090344218630218379804468275479126429358573923978635686438833675485424743950628472548416692328272927655326638147938277068675475014335104281164514308154744526140731317137167844634620415433103863863435927834394332886499970386595737518915801024453067717206599053679214404737891083580123209092594049720029975863977603513521545441013784006369099812414480925004567543075487837829240756508590273651343031824230088872515578849083540252403159935135160944778790426365756361624797542485348953625009749186317228618857547566926380090866393281525646148795529839371737177970863086719683727455370466351694607765762159219574321516699293380963676939411506511355344794723975378904466062110191920255171069631835372980223314856579393258311582615402968365607322285025798126559252437472640230878304971204950908927695077959429143650429208251036116022038523793993625117918968716561209742895458098790885952416880906580145318254306681644937866869574914701554258159644156232308463008810911901865974801993071264039210653863055294455024248876177989277549731263213174852455046522033450308228621594978177846410088537234639632044479393602175019234509943739846062023728286813905535879416023595601774744448698449596078506990677532467416068601298357412485476406488464445250684595767223188747984230082964705484586291510263997729771924712097814105960154073728102181954738495392223780765233383232228772615252387724833715341393356655333586496741556783227506015555468736434447096893534494515820431400456966981455134200244372358414064710224251641894233264536270378174753995837945679032738006366901441534464937988975951978570212965706972006784322251710662851525132042699005289437361342535201904424621287895911456790191764057978626590176706040232837249841736605604342297450789099162020828702188408056297515620750436542656326259297489395533080615305491669737284789703558887722353854707368298736452031707843867963624902967380289278525501696668038951851522559227680441562945680859302581081473333068345337955785003062522651728815223056233276984656881632819978187626298664201980778286902101612209436911478281830368610131366160497701222696506466159572427765904720828974660090265061226549558786892717564062034183075742299487593986773476113510667562505041300144367086182814243458594369858450372079858204939558776455164440270801970553820663479845128875416682084018646722176374355668334212128841696131853757625389910468387319623488591750147992218350889921121107964229571573806506013036218479625710984444220621835765418173353945412628832195528064650642642526575225032003177111647270344394197866166597072852832942014608854018453117987292179243591274340404388088252481262436083508552802423280343758123717564135543408946149155711113726447220310262996385728208608239186447018097018916918636519847521618560540326103345171807340720729238166649504663148985730515182463759834399899136784814471408889272164188188535822677139091193268735796731424255828432186716933427551122356482301129074344721088059750771471403109490562877637793404732283861570369005138087343420476213689068518563510586224282258991746631649149013434608459510180701473237687929422821886930598979413354038444185319715871192286358553172914929116558395465560555108689939392108738498243951439481298166746083874283459369710289676753905388637993634202606481660185254066489048331663221650802144967970718176959063863674504711245432701527419588902719742247356918242884577917746255637408564032630586140190050063294601330525280990394001075700943590092978026890602187959922607232043811784547436018199055570372620697748655314436910969670566612610301908063916587509099617276910533558211237942490891294142475615242804826635809260596029985096018630523504341702609787374278102236338014451046184075299557575636122268897043823605084776711713627840033991263492071952765544249543852761253044194253317603860228075835364454025030086462255600861059884671811825387889302601529825634617948055654890457288181112184197982151714909831048981871004592728323429018131966124286720686980340231485905807290829039231001853330381529255104369966749738460826403541295326297242302000735774201691583040821894157491562346248810951349599642258916138424359254125986015556383005592418073781421937513488235401217433456247353708766895793761047605358128796270172651019625004985228648664851844556964658904605118828467964612173003938162489615485635867593899499041610311605624194955422863372270478699343894625091104690525345443788685943612441041550750034302974376449087851316225884865092610304412487918049978857762306921840572672164916150721595813449441828983625529537666000264686816842079513407436718128015499353180265287459054728009302576571355761419728077030295636762444011573383132394330418988662575638602719622637344598410294912864776456639649599310618642585380738618986507839827000361013047351877099622801395718895106508699131660535305155626284642447454664679753338841027854242863241494767891192565561481262187534787901569454854956203990855174816176186084548760217293484589856539523837183968192131747698963070352083967789130331373890009858274100824180784560295332570458385962661449859352511464825634932991218998022100412345236027306165309216305591717340815552863353137789990936038190902997457002138636180867965206745095797533927590571820769818877377636298873255491846850500768339951628613898752368354970684370452491042115777944702341516191562972696124338935864605618978461269828620729855877347123982445844072445748252251948491902642148573081250646137350693167081802036074090143488770802337176695125759742965031887059287708054885275023523700279563614863943203924588148155141009829408129428291559452929019336216076316350343452995709065112012010060233531902678418670360889323180146375938641203105619059491342270725043546436011477093732108462765631080994349113983140891594557227229022768321797591011615145970068783613458275468282938757649921619947782468588048946284850597038361566913125844448635169404664661248878797579033295002836465055035989621548533482829506958784932639449806536560663836044998531885113470409056160370760101223284885371027618000208639764643652554556474051203413562149254976547136951885565333842088564683315368930936200836435778962561024862130610285274137850532102107092727999699290753664333478755215725868852758674913005457229338876704827921500470725204656768123637934299046228863756915297214335715199807511621815792887098921972853653317349220808041481906397664866306097040013452127283544668513396407031662085042719194269895478922219128252804224968315089124969566907124915794363737632497447469919473334610421981896040059032028076082197760138143510459659460968289161247250138249407869246211858342592438966404658335780856784494900983867388458847125493682265196578208412132412086775117622876684176966250540343055374981743918518843786113050319364792774870449548301290248936247182825769299434908796946280708863248167830408575569682921985900093717194084260245007950344677419731581573950722148359500627366146295002007671608784283296081280471225570334793091743410381595906904894277968515412558720713157931043434751828291693759738818686748426427035669327261830226260123780431152329780449326856430915160477351581611740047611581784885297291943307017305669175677794145557460106188449665281677011133682700660364380253049136321126331430624750013404692509740701421863310899054510758956463246890219169264130828787195906052599879344845002193923706779720864193936713216517371976745335096852755491877333532755535105413198307869022952406254360693832889913927161500649093351517342394149608739543877631144790238554297443819381484542621194510670165587491372706703457575039109461419719833700147743752385957608323443736477999512405469056868381114132343315433747439410880101514013578174273503214049585642983382640733657157537630266894467360613590223409589415350220685628117405509954117965204697849536448977151344010047659973364096485558058186911655342749660578118521063973929201475823549391535726567147631322894494476062136452102299008816924810471523191707730924299701090181355279822553724095536896118006316902118207010536109590123254085526686537365083186150185708822764203618866101730409398461910782109616509643470768117739921275997208349597882107844446663536796412159154979503782900741971703387077227801372971183641476995319983572169655640323073635500603094460236358869547203410658616710212355731980044719427340665351627020856134234682697434233605102246824425519898882429034598228820088403707455859979102102879709532518629147248639978294944039954403336241735054108497020473939290754299536749563551198153807177780755145192631139255996399806755577829925894379944984492322165964240921169025882265680954907552383593234052425635976034325971554257517661794977025970589409004054341157564020688695050487826823096550352404227121249336025666186134363532109408143357722206623676861468645824914764783224707523502747629637428028851981305238835488606560692091578201216887065448485235388361955966136692745121176725922736225427146981078344366136078093193883301733150947810053540684458890510658057892944319307282247163181917547320326773921964631195313353545293220451581288803341357786412442023273288127470282707888474033822895675222734298344769666273416125872507356445047346928054324894025139132099089533273757406309006670955010850682007581179219320614000977298607073654472239007900559547912092535480332913622144670485079688134753336262325166097006266343657808262773222311404264952597656369500600960866046135483637279619108736374701144193008471920606217293469791666152491940203281852142607589967105718113400298522622177347777475043848917867484154390942692314514052703343707965274449898076045225766382009559459651267823512258592701558407765235005553933662960228238827415896415009717334630909401805646475801608351908798757714440795378151234837845679242524731245339661112341795780824212298094533223031735998557979806704120043869401262125474007357288522957741670976401989290117240838303445214898760191029085134455134608305927655711501312483252302117416650418390646494803345099421110857841295698695182761620962653427365569404134246201586002594416556515559843260415473043610556411242659580385149949105603972297044479833998444288028568194779910743512660190646643239501703306357652083982604456662646128971274769726158424405619997082292796906779686330715564966466572300665440131902905074389208138461117554377817579116373044699879766658294901171793375137387057012236683121878394130015316925836184465492086270957223835736753814106504829215392065802306534047599736372594627521398078284385870265081432337178348874004061758696758504889379556191513528958835631350814344715806633008315660707876340600497237303081722264308046035946785173244416449553530237463856654497160908149802174181109624990547436073407750968899529998333690352438755411900817740684717312678074905311529850551920294640531116214875643923586651496847602616565081238447680561135720813660183605063462758241695663245232582521323696570242620172479446777219395594334625554901586245320759031195030501098968016800028816013435418305874588635066053577983565874429499802697423234804301848886191853408812502115992901935949323530019786341809394983604427947552709162149351344468753291783382775168394648410111959070576827729758868556311527804294081309350358663265952648032039333901245426303242753704089946559186106805728432302777161723884195203927978028197198337199034362061323009073403699958028671991357994166976138421435472129701490442425015446059419597451112686290767724837495058056652930005237244888743917660550176558402315393745339701166000924649309749165077396934862671245522456146553056410684679874265134511319408791198681337436811184610292122712336960777522075769505546755004322071570525447260006532597745267214540896186674709754005820883051494255189917373790533811768220557388068863500339592597419127723405269371232976347548970082923268532030547665445118328425626058497281422889578901438453987031689362487257752784642436142718915439504324022124767583352309499728873964830995477183128344837200154843086184967095182333620357573722778845376013411048096845250511014261573029319278996287146537480838573025667892195718449887831323090664828674985905354428013499224280020586156604540227726257637987031943286619291960313604840480392283670697755478960910943485031392745872538983447724053309260790597706099232759243578971567474300253816752104816858923590388625675765512771046279042974336927107011093534701173846323085853453155426750898815605025974768216749284656683862859902988173068123029115452669460805534943254462904312386880917400338514644134267950910666254105511246171896750391407159173736289267958314068175382488679475144618003670979234990657545706262214592432871759892937869999784588804439141117668961542962039890394438826778398437280653624736144205640748158127180937833778921890651080129357295856844513854933442274403778415562292429566119308141833323626418127186838490905004841319077886693769018160531520534531178700696144765066444495259481808697827917347275950698390200470791550356858323430790770601021558189360462341331655938198814923249701426552521348286202667723309492019047425584981088761512150878072586223045914345935675465732590731703750499853013902015797716843639111828845876199597594665623583220371295451182232217628547038856875009454298263033506892294993459756887951729527441748417212499327860695636281513302235008493532554772995577367058126412784867971718800509852797959041692740870817586625377548611279516125888544995884871709948717162976235326878429823225882176725456572369965407911283651349554918731196623668521704432919801887661213204875820538885726967240703914796087186272695095972055134376590625915035852312748727268618607208147217987620029735640986541120124429426297481468925038025992551068709766277209529497111930384034373485171562716231523524386175705058884146103905072039082424442681460320132559916811353269088612911778825243174226156793707165797342378980772559721545459913532837339759111788084470544890512862714263366768064448875556083205754256748290151812279937698642873439660343463044674224451253587612027090110212945284423947850539130927960657289955988305791278794280329767602301661432104466475663668273249633782790117623825244982615927537344689505427518814472138013626380156311841495341983399773447503389639066647754515147245982481265432559063047406098939410877732964596569595579311242113090260475753693651839851379917334838349042104469088224084356200122662380728978179384110131394039968729590393227349198357375940005072337502570747024521892867327961068538137489942557695794108394630760277169237160137128300152783245460391051334825143064433430518613826429687210982726034365762963047638588175138590468601513413032194576608177916100433064692133539530827711741968901955673713751628031457946338229824676978862546448343887916914323634271672780032321224512953437364982782560825669136615077121880507563654370127038033552933664010753595883044567270999908456001452899507185474192898043930924191127490668096068501669966919504853848588266366100982171365098931873340904973277277602723783050264843912603379786114364842788846296522749599861514514199869764065989098638220078453975659298717923709370098333567807623223767606468327508601693723742934429628128454179462908992391861423015698604673021149191018596471532299745485366826891788753779972235123192954944363674401206041457320196386527987605491440367967860269373698144768500757351026036441996056953931154062189349430996016773657453073351673976942464229988426425957106343437951565251281573192300228393524791872688901526079837076151793803672604254354486365622642731315756884352861363422349496067794664405835832969170896728324965693852874101609682973491414608035480108766494806987392070976389862192122648985015988858716730768115126667549575168368116104333309461785258290308605126376747113489338230965484207115004371135627410674176705205494235227419177621939522978400165879564096042543587426430307477112481696093694759393700208674178142305125852125003648643539472884877581016242386462714451692274458353377613202405570271867843349617877995097066767158072121588028290512153678459611442125879198782654596046372355395316154112568055954874291148084535547659938333061996572230871272287414853580217264655595046348490981594988558994185848634348952354161347799062075547126137672903871826858809325679973979476943560453608791104082578921283623309254122321535738087200709979940045161599547368462073831964389435503797795165529944575718928591337367846653113614965589650355766521923847189032604665735796610106007386268089976983629460930198339611188531989044148619937805185671848619317683520119530877670868932017871331969002114693972506697813908228149575665755835425760721147123957372225991823861155994286356717988352986350996061361560801148721748457026637534318809249260451375336494751603267745014831689953197254188781581298641559573658215858688392649025146696993725299981472258828298457725188305908922948132736574100364641073721918538519159603033117376769097847757156532635869702555651246486954591547129576228889851044821272302081665546006874117573190141152096275952699873373886895416731778784362588378126045936869981447395822557742553215985718399246913741862406788715425530796227270022825498712547547436881931831075535787674600963874025475246446972376075970759357641325496288628980602304212597088455371183737103031708504068702043651660613001876206934606626334863313445946059466447281952723566199277626296710186534676649313256302254962452196347671545108409902847677696481558044176139300692730455143190904245174519802547899913467538436186967429801379296333644029155718709121824746368215369677297453386529879389719049051193656253739055565194580801322595869731588242592233846508685250992677382685292187292305619326490605759871522733258117793963310072806569882340884473827525405634997319530130695583949302225743296239429476768396637819595824324457877391291724688725145871212651221172181281784265473911573825763990828539076021599418103353468993865880300097046868592268785718384671985523817968466311727994901600975885553839817805747164688322116691384629683710489446680982104853863618257664693711124061887134865652513593310250793804857191291542676939937393121511830222119878740928750396354248112071490148851098833479397263942298836785151361954694207045254847402683926981127020777210655223237556545359886057873499099664090264703618216577563710932964275223552486857199483254067742627153588055743926431535548711828566622741918278315980557193796426683455749468244930446828587715982032253674113062971274129643120844397253194154090093148697062450945043190826401852800171394720827190528868252053043315800467182510482289111796607591125306089478371926200631318629224676940240145572569152567567323772528514099622934494577045732122532868450973446065586727708502169273577631355823999583587291815491790417314933170584215118618671332977986874747898261910815563490308704873585140876438193349122771881533378328524539345997731092403435486259017415937058799105491333291207058236997872386260511270468413142739674646246846658092402024563023190604971999573785946143797822045554515657878893019214284783675322053734140845231992179840116837684954609030773597343837798061249928729941221801545085760163947763286101905017349203183929357603345990819823893787469826596556679292105537511711833836123033146209888842654583723933156572737348565424446449866040229857941353986777587039091651240008046986597526530918510092907021688663962831843851833463139400841524759608907653838541912313934532122980217814854905923834462893237141609967880721404270109419960710911959482324286227218450108029313035072429767333040387309869434320574203193995197081351494529889974584881107471336573122394373827358320335618712362515519983759327750918387301691328176840546014226565942640313499156509234822069355487624711484129768725750019167774685667681720023411014549766116818846054660726694318934176435823934365660281528104103878505134811804338589570452985473308310707762763247110363484345373443561324297596282981176775621798744834090675438263972702105409624805640150920242410235799689218775739422538505322094670203474293035651272477060293760368037526149383693676884595614606800575715453699829133549583972592490665464061101228231883067548464897250308216041600283622389280844064661967435090036766632549548645855901374080226878063910917472210064552893662477197298912736248052005405390055333362783781447206610570291135130422013606521881973763486463569412277088137679675455714206111792624501270045438156130445345057102023905498721445134372833273886525586074014381831862081754101199793458806800520891573382554353403035829028583907183769011269012001889129763229666164087454266874284285026552318141455549446529323858546180799222411562001572370334370045951551627602463821678325465633557495060569503303757924734279494893336014181078602444955814772792393476819574311787777914009546207461320942018321020095383613668222084453024417729937640370684549498994094368269538906501640644142794146149880636879120164707771368853887219646094109762215835862371492824015420194161649161693541983449820765558348542655219447447322280269080357235258937330714248892314254371981000916832643254309117772216739164403621131495395684368787527147916204874678035997330504509891005312920955336341310084268405344049009837090748403047577238048699980471725749726408992326423404966216177586811502337246744863229199777976491424271508742991850447134872204874982135729482829399413512390490147113951393645404229278132024473844761792918637266500271205541134028225277054332062223305870793523672787253341129763895024105644467659161198059025219715391228392554426266556955280189314540357096661459291487589695463422247679896780799293068296571569874968474676867423379222548528110063492899852173941282460529006707934759987639795828959991194955405705731579950803859992512279640957383599218522625643828288996862612990619626894675470346576574246946877142626555265483498332613792628223744060948186767811101895126447048802895064743627257892445110787736222512667832233289612078118465822737607726297470770033051953811286360182451389536246543943521421920932828192327708774381261312810016150547981396493972389845154438995467938570385534106803749353974816745831283046456313192324988074176691085470165401211202148540875244849293828892527323390718454116398375448555567098790767367085305074459098204907476742291617202912152319677564628652682395245311837364826201179602158050657155839504573388467600973109262092224452838792226439944892910441906630965883530374261090805606517881103207118218754274509385246812793709649943188078263967093448818762346709758730150335107693549043381704865473600807005585382290551932836040490203162011325282563783077237648503473872375993664021927750093847315814380681254129927849224795821340906927040591871816454236720451877907400669444512885568734257201471006152166325414389129836947425857986455828838111675672584208914202742199965156984739527165310946024072296680834446883511445271559256272315723025418407135449760861678991847411142236148822825059591415385588587942030562193972939728163274007132042421845760607504024169691358970933421189813360332792983934322882736043872847260850199183192302035591153691879831043577869062466135892151265043615498533725549533856150783386052328210190897895663199014989957337556630332236857065471407982458065835013661321648978314557887853588991134438340644681537073548276600579464684001367142169830615856588584543752411875850897632107243140359792552445123999604021977999749847262620619320373248743088823642993075854513921536660509545486777526059106902259660783957790182368664839059589040019474425596849307527615672661999807530011051685589057197089645732724321105558619052842609652366700137759982989896949746823417898626675007945585977398622213905070668135230622621571768181747587726623488108341408166383013801723699657849923140265752220564246813026817164233415916369571716764740464810777321230038666381615993655890804422288435310236049423829393319009360311192196087586440413002976430099581853957921912642183753051161697050347226385946824573679694733726215414073622652086932906349324054535971658849853000430312505262528362004220219930390674712285021664261618491015105245325008855860687711374177206339892840999306731395006502001391425926744248357542043480797115170758233799949688110721821305614940830010838830153800400988697612887603741746677856395720700292828873118384042601369629540560448831597652504546912218579123727261818484773566189106334997166984855817824452501740121253124062490201832475949650861242757735976840508100749928420305015872962286133692128228772777106936020028992953550172836374134454632230958709156361420675578667060852544078694069995373034717437973547185703310087473763058131325723657479803761706555336335868992924540797710442983901454069118757952758425147522076212616691877641318709662120366973858271071015743146824638353993388150138542607880894893905424334636868235334194250838461856932327992218912229745890450690734976220187616987523060070025857891670691480001903945920738745680414075181666371396514801023028693322424817273091342254062868432310874562629698743579619486104299095173091936305105160314614276129293040713624341801151374196323407692850543187805696447025202149703685581739706356926040974941875778077770695434012982832408504422102904738200192792536652704343603884579345046603079300806550230026308465012202825310240639720467744104330475363186293429001194961126809331887761964918111399190364363499051162364664029313779468864412402720026187886615763541211462491161195378099604828893782411249423938816769478280870306488711141253459411143894967841598528835716887958222366815206702685998470753286953944247153560092465152256261092927816397116336547912564794508144607985140232041866448093106804552378666447430769371442786508140939548677901146582189479077272980091447646650186153388854536309497033949920821942883423870588325318226325972863985442089181754235881282795669177670062354610178791443339954584632979489031911610086603492364191576365818618517423232972053765481848995423077206759009218471160924061089647040022029398396357225038048729951045111484531278385178601625246562591671319725707968701677796299752125417786544599659221015999196283179518981273897290726631601530464784821101536883016559546742237624084462068860358388370598496406087369089869775793510711252382350617699398521332633790915851768321972422468756943131889137748492340677839161447328957373417912314345896588915560390849478457157648900380344766492189347570940442528401693560234065421201238787482163577040380452090866922250601287797458636774449424975934333259619726250621611933124009141177206497389799052333700215695939141628836898248669507712884641530353183636869345499512979607606673972774331347998609852000281175902178780899969945266276282407135907643027521763104656433096067056433558019438809634356272701509571702976774946622311109734285855280976598850709840986121068517318686483464961374869784899946200070434108403674166894010483407085518816558532809116856515815029618570369976208872360400269125298563764733881939888615622862499774750300629867895075038925337747431887147020119066597303035049684067575287168063058811043322924750773747050367051351988158241340637164063541131246101494967160958126920351414347803416209998379778706676871008391974918102379002590470256357201923272576136398770686688668998412182810986952903672961024771031474254578039851954824501135805280372018218431111911118264212385212998109052364639940108905741033179544932690682122820513073177282871464460998118514556481984728094033439873757747398735210372349727585754479982745595444309411750365794951797882337195398505648620056898151278840571517691872271737862229137771559195030787720039844638630690212752992517797458689967861236747117138076991762791914941968106992361208339837798326624748147455009339723759525751591288486382165508166067717191255180965862063482081047629869776090400117943285338343842035382632331457021562667744463723537891474217530251016743692725312153034493880332515078314670798707190558211742638926857432048683314320387242684532838285000602439433753440085456898079758624226492309839807607499254021017252153529927957321744891876849959090684818351319774256785835596432124812231301898898577019806136340558095575946247138838542858379905916892383016374562305692684458420701082222184523583325518066277540085725842681448594259785981718287783152356775649124170085647839631837503702680839008132845472955875717005495315191531502890500526964217026861255062145517773675179840773152119716138740241124229327336810117486658434443245488327421614842810662019749608459312824840244336262149635364503200321774901658128181332616530073522362106756700867583468942224535964199548971987717596645164992942329064844713450789844763897325633620765132887767229442762977889240829937363388857727259106541487091277064158493997423058886763239647717947501899819385181507630933713191386705127339534507877813348919581473554661093814922708874190833964123426240503010250769683972938689991271614324340450664193021458584151019588425016580008957150783351070319358542556646943688155195773022335023488562281510297974158482164099767915660208268278836065634149533043848195913587631424021014134719543809504669331781042975342501276546766661310843939448098948211123028340898040550400124429471104349944893578566382306933187628375128658201156605364571333814858173836312596799942212196417330767608331585329196034479137099129926931609675163635601322269700333841327573960422087286559687776506439851393548695166381529851954314445609519477580074231961327676313037287110360494081360261703769150488661521718907363816526899937462147222874912669962933345577890323528490181219964459171023635083727001866100528902325011450386551395590538674831242057490349019580005892601875476302954660318233800011737267957209133809793601716074846459390564928532371557919911143948409645562555709173288764406557323669703488489731649909041989499727864516822058552879860708459197086668380481305778242971082842514258600220011478878159241677196512985826086182195370716498724977449678525542558325623769785823236859174860055165243561511844319937227317295262540859091364380004179738574013736998975849499924175454042172426069492957689740289079448968876230210293754011706114219820547273682434145688178074349874306704001110108452743116212787851886606022849747855968084934683268649314498008805970837817941852661581778898975324614947789196509082915033309120471435789072488648483026490291424434885403195727372457016703702388582113481301504495882445313795589955973711859708479206940980014423540402509742753892436439691113802100575218386996866708888275390045746965148281634984592390560675841113424853020757876050929301269542113552558894650659074427024969934617025785948702272999204319529786290577410253518072776008991682823134342906473218120730419278438480894709095690274548569861677675103947586063519389994328029411827911398395929449918632342900833974824126523224751535206754770861150236809385440408001291323168628023052764645621773145556004705560965061008425777284716783571580884160300496966211318156481511307811351426073133732796031847397128255233838389793413937298536586270926713810928557902873027341586353787145024866475976066561773979281515178251595661590830703726593378674242389796230091820741990934914051906872923867170342593318127279407620271489559111847240326261785693942221543593082620984078032161103417626611528142066245014652683151046691931943169293684048400725462533854792624951281981834685404335299354247313048365988867258689425013420812319245109565594517260531452361477020783806977683114144387170837682396623448405786443115930482422732003057579526417323512692229566467400918676759156442006185393652241331270046759967046714831155011261535923152634841089067474587698604267645093932279419354543943619276804763263856483836771466183682207411167942489461384582507284171066284149211862453340827501546217893050207156259607875203463423462608011926309683434283314410468739408013021656255177062093675667009481660828861685767431176937173345654770372911598064813167315107403751273337975521732828721654385130487575456552556538720405017914067177928156852888950617061595449164113531488373139927312194907406007666079916868907567096888011013648072615467032426705240932754660201797285745297461467819095000686993518113389438190551530084281998128076311800872256105507394100958159873338623485762271541806324813234956566319316150758751401528730450014302185037907411301155326444753581192436909151467961265960340460582466898992056532914899484820107230942313090649357412554997393561786607028953320948573493415370401731136538853694907278838829352516183056698130779562561450519080998304931177549292409842653986544678202253018883494770786887580492897448939957903306264838103305467109857186808291866118938526043395171922252392901674533042959848943702450633461123390909267052574966213042733915829191584036341177123914689292167164483895572027042663701053212539718015272913632823734524557126494692640978530579980422768613644853701986227133844475998124439732934932250320675595121517431875959762806435795304693745181038233854768858227625735575838678161971910296239942890352506028358830698492308546582104374783204666825865362220591572608651377350285627214316865620407189449529877661342682330678801450842569514894382391028800690628019741282128718372909195899524599091180178026364271183356994886986860206544593650239301378849953108550334194349526110339296978252464504087859701026768825362309514795534517804157439253151597378705059195507423351821214340262277884874516817506066227903044278025119052879625753654672052232829449789110525991293200544585309586699880330865416352469461793550475119433284089203957812131649732542364084241443546424227155721498729278288546295632509762220065984123732030607209456741960608907080241657983581108743223151184172349054728079002703522395861803734286497606545766631135205787721344579252605635726875329928669762292407010288280541618948266237893167832251693623607752814304365604959335357472558549524582225244513536672399597917576469240066353342493105592599968467156210234284350454132871084431290379967456903691306932336193753000077314533004878011243186631340117427887609030284154340106077232562493605024081532513831398023574369078304512299256478551412899072788366789731860379665672489774875465834809728820323508479112405847875900379687815435886150541272780926816419083761218088081829685218129727559298411271247710787182759129900949690184378760504744834933827286992756312480021386808844940367142517663829412989865916669117087467925059650394478605713776174072375069739882340377543815545565562901480159226825702462057776497195490305050832006045798727746762956938221868375925301375844708292569283995045830000751003560900714770903878480207760219539219728282040391925929985084160130516348109749021439254602876743092887797805903530512918164006015847133403532026541698778431993493901189782364796878711854983583989344147768289864523562449006309828810467885627940014756843094264139206775089865939868018425042145383429866380321459637012630760110959613600524316670475788255728774570112011709863290860513724721687760402854225121098159939081137679336972990993593482541898617513580006867257701989666513315077577554992310099948515227789208490201148551483593998612634661967737844192467529205579282973117067222663278942976536155681952627243121484044321172341634227627467072314974513100247469543327139982586238439636434170037607314106871211461942094262272345879026200965955467485733729574739685952202271356634715235562380683793688625769630672114172010544174178844954838243412656541442582434289672665425821947591799891163914953305906007256546985122263113265884590558868808187560500750089585424613714876338079671241552022305413027386350122766277616030012314068280430384099432802976860817871857734336602930790258985225770242484704791967937136536250477950137894932908411980740838174197755647741703622951536032592590548698927208429383200999213108283041614475161735352786571950509684767611695393406423192559962233718610550657948682285232848304763466070082985730457969856736656850389484410147260192599266283923731169398157690839701966321366435737157312849317339828118332758234919525926537612607409432066400342884323588748078475189148416018180334828362880171990162501340699211786131587155815544317317384968928815644392872552777362512399925402771337571623902707392806542482245992381726205070693693004451733498664060817672863086684469974958722152252036971085626432793531727007302325545134295939723678180994890465352140656231033084432963526470328189761112464503636776923863995166112670296934375237101506051136864405235055158134655638968783915246263139567491372140963229593026686520111820687500014771418961157287580023167994152651471453976203198209181569735654088789407123964463501154381259286316736739629443537481631997402097698704627914641523626036069307642964131712269026540524194552120695878373107050633942154895033059954305221170867780927145753213532340390806665161860232165422566009534786788780348230108604460263610782474101738697086179838117683461470424975408973599658997748276278568368192359145289529867231201075151930763273530336684836131760878450621396865422051585620213475473099743382669420404427153591005746750073751714964356159398987535556201819658267918860694333463742598082522489282407426273999691194996586454726921205432942368686864199373539973269755128839913121419172656161938380042042838245024630844646207316882875079439264721156174587692734470883265982183174841464677313964357400612590001897100789684192393693930301239386531707736579259559439659622652930826638259233594827870540125270786447756471082276756750927998685099348587756337564055653678728073492283951891062693540784258063653304902573125245769324322244156901282761555270092560726248958970133738652956285862635097389783411617454848968369918514109080004026194189546184398432856267183719295545852490501414505211481507877828926468026409514648193055147654484774614717801409540438763974910029238604297335283841436990162321272719090673790854921498881863534864959788293996691131151292808033936362618927758482142167103795937063417473427728470955298777228530539863929579558531407401705143048551549161997595351887434769151469461093054014583232553952441440363981167756015082450896510481876293286243399222671578504049909399765626727649718271033298600909545519302441401518647670807876500917932506515913794051745584889490082943069693130964315303019345980358036726896290488172820897272977083097947016810328454539402427360540463316957130205113789431889556829154277358496093807167672229131287938562243900863911990942285660332432025223843824649197658721957334718327642095632181031142569399965082344144810851070717875760041734206377957467277481665114499613230587651493310171511324289764108319815578498493385417194099654912804044568362276296670046390213191395306457869054229102890653804167559108725654493100837637474809418235932752072977180678003872986938907666347847166529238476391923104142874966629817604648861086215068161957117455987764021770348333589301081932155146566914815617294882124606880761339393193641632572438916155649392297824187628461739383603970947251075507778114787784425488143803096158554836257735933654132246434211376206636455296605313679144977280386654217928831419218862101093854446903322509813070061724375920569758845697331663174018822452261394212451436265137583160711756233032359588408328676375277225441467193132497083109745167954989996277293579225753034713416457792542122855786432820152750761267645092431413306255742588655964343101764816426989239176123009398525279008951487693384426045620633850636528427453293131663813937692693562731987769613537338382727966976262106806534131044490222666303103025704811691298465243114508855319537673314624223229181901638042079630950609326261995820291301062980822030675608653406965066507934163722502810209673664585398495670420346113998216987846368497106549186515751458865521461454379904297831678769583657946027405727045103850664559999104293462845072769862867653618521458185289364475438768178384669877258487925034631670495459724791901501965072030052614945444196312692551867810026434681777045168223424462631111261665117716694385294174253101500276061229215509710898854292034871807063098700099870541871088908210287295443606834637856443428149629079020789112264907477806737821980142644748734039291001132404229147942612671858282849527013486921118875931645687414932704728820856617225710187689224030283752016475905290511227580728030874892550400067518889163062612543267217543380982544885911887937211404470144825893679018705209461734842377221555422933417587808332944884282281560969697055925102516797748429102007229131020824583967106071531695705439063091518410857711419902526467721559562864954638067306027106035802744897849974824451069365363342380725547279197947862988727535630360269640235459314931705906513895511067694595571983644714406624532791094690700979198223725222160838900055290436830729084630508128552628346232627601527778064854192873563528952002192998367042686211133652631663147826185322329894513560323080848006685708987526293438243572514837264532947306761788211798844818940711192507418032831590943002119452870063941782072387914561349533788965050714651987504345977296718709501202871929471178712407588545579542906352862213859240229848457012184380622822331399064287272111186599645706864776834829676770394696048914645189506602995570903116986587533896122226513296718320951449084738513716550066043236880387342289613825958819855860845876002113397433631655659539812210854641840362162744329740929360516488232595330527996111038090391959252701692441622073866225731830326072660680177595282505510406492447889058624458322800612781593721612263612356550499822378917550805981387727843669044491886508161994194968799577710155431621153637747679731607338712215667796162123004894979631348593305856782854654549280499767877225598258357714629307844554318591586197950760967090364787515392018279471990853690126427576038924055650357758123548815779337082502820510262325197713739139971701380189472077249218533455515961368071484640770161885575406856494970265856419717439971469865964002581580992136801684743387472688454987559609602349926078210670324322159524961574750103376165972544108164082258718862764104846300680399570749238513815174039808392216427474289539177805122140442413980538801836266313274275439983683535439591810069565714950083595944079943697355005311802175178225717703761457710855205515548928259925885167193570138096800773994214677791036557757909982412987443112295537907872595032174628802486990504418501322583252036399093254829001791962998964252601721674615660445535963766479694751195495250852282013435769192376479192464489225855851596804663635277195354886801914124254097190103887741584785096152626721409444757551635018843918140772901345442522415778170929398978512804426815313974832241132891081693698120818689199184877424159052768374628119127438263485661890647979408877971968638693113301638781712541075013304655199472112537946961103459769035796818888472428658181347606176535736348887168965792132265103164715670198723612404978177776395537282141180513546665782769336314578863223720036861125505180782136166090827145372987207788152027707369557236624859584642529380006102803565772835266812066792207972151904935471168269829700561975740211137319097089126960408093478502186796616292938977283904490280374944726789469606894223889125983803986602755386071574140678094418441411611410505460433246868648549808053550818221494497771099903431069716374220924848469659476214387383739864037136165479589536764309098624473613026193346639032015444289280517299009047453560456198427841540434035019404766079249849268982141917245516420971202682062918981099327160858409378177945813753211970632550741286079313712017326843901701266748844147006667341403049599383938515071896407525383051403560672742128120640053096328980285626178426511120361619478248103488794671776835442653023466281925972542063973870709974663970997172002353511884193426281211123534116793376313956432628413976471083343864010956757117087428624357485254644151373347949530174198787932539529571993799729353040027162279979052515469433109187239889509018341002154758065639817165462777877714778659394726878356890647769101544630093561182082775884361655699352743904343092332200960803388143369961507525396997040484792568656246674946080052581208007570571907753452966711931076911085959034887164664621184980099704817552223207211695807342870267753941809071668175877304079769315890753820598951403985120217884282385499021954120130029889035750625852043315248945282078502495639180678100051523137490591499489827267183377593557454597503679432858403130414579192314766870544458483494762182362621119443340834915621202701307868962983420814845222288401860262793249248343953745289506937893474827726104999383948483082639465282169103343930540566359263216843973219587664739562676538670609191135233903921100958845376191955684045213339035338287283467069137077737256127713093490275739983263687940049834659273943054703143629680077548945216436347974827484729045588055220138850209923739308323586228608603157781350965561133664851143303681117547899362724879223802367947042280961316604393837223253769986011036414597954250049430766504332958902593997049485798266234588210784616854772613588543391501156445457332610803112898931715388324469201555004440473462801060899486952573292046689569583019137754339900678510283900114574188304815646303997730769253929142424951296431329846708503050714887327516544068703612629330443030108256209415931607810254692179082493055291642495231629818621281360608391267769027854255888024390963165609389565611930105053812818830933098848287855299738214656857100343085117251050660884525624922107216544080094519095525715321134676691357419187464216966553769380096081297698430342901672688292025179541474157764455498799448697282680407133961736057759167516627137774391765484184777663917656444749898118103495741188343627378320909846561311918774964145756382442943410290740405165725753516729709483373136992192658976860204540324000684104079954446985115908504337361185727017675531161467172287451252081278923313352065340014019742174587849280836764843902539107586407286146788186230459162835711109551284830264000923797302110339044356465652769494002621835670967353620602034722976110980236887183519513980484358414676995076784544965695849640900285521021449943590887350711292881530111039100889547096015091329956213682109806001445605767009841456201197221814217370459605624651933906104383595730889796860492509431593402631665467224626805032509680130278100876588075569689053095234431064053061100032381859895525214877916639858531996223820344899886113851863529671276227903773563867274809405612086017010863268988344482666926278990593433320938744840776727844656302439060103490290675784238371968901238988973368434764070717085719763950368964792899153107312322484345433162908870003724701081235834753949611010667761573582655138287811894746116829071759641163094318847180022076728494754233280471503898169929055360848641033703154852458323857469793156434849901789250388103597383251789647314929050487360279687395498920429505104374864049909176531845194548759044114205800319035016404913974693102899762641083553174721250785497373900035923153544535686741069292531593539876154729331420795743443827615124295797879467223814352782784787603807241023220691148523235444470212641473937525156216030188216405501538851441020023658954745440939933208281704880071010545510782420626326971788668661708669305378417177540726097950981366334835861297304412082735655565777954343544532916920197074436701889967961222148368146181880544315368064127232182718457741103004004223027162410035796210087283976987019277090030132693860989237182571752493898014976669210966881606724041543186079223877349674000998943289415185491115822426797386616644015516477804526422517021381921745208066307091897902767575851266938496204730986866145650598357507475443783827561630892009070586431130703816835528529522663308298003179439577450790369033061548304355941852281239284480704140562884542140655766197510458565034829392690657065652833187092998700222233717375559959203063550583832301520543490509423431178577776588559387542443769476845191992817004346822796076474691290483811573508821126059535593960579325566687581700857334547637716161960980365677655143651446246582025355860505577102745631827292421128214217656990551686234318402264416164094866667442203919608060030658254833291699730807222430034968257404940919602065263911795700149157909074631099586192419681789931652324642526905407817808895585808488256717483515765223972275132536868306396207261862035959767199744500603202446634698961415321638196367022328911225643072449586670564681585476944784281734974820349169790899297110573343582691728422612165434008429919930586809777098478308304047128765703257960005609768370519026503387318577608581385858491917747979155466076639715604903195450071962841390508917440371881359702990506559646527001246088778109985590275719073483869703261512865204760365006355907976478120716152083347637973020521560149827194119504644361699561596674079793485900219714466647805257861905684010046344801890143345573050411298529415485258930073110839900608639977810846507077930360699852846151784539946162392401315571323594530480265490990942698138325301985721420226805459759700375144433335547906575315161564058298968395739318343601107012001398372963539315713332861210083340509338245259362776831660700666100756017654529494724257043779134352269167712890858762177451578920513349083281776480640729110933322797788390656633831908731434925422705727776414664440335566404676604695034173600968467230632756279284001216016993714818659525137483449422168941442967019807075366676514025761002741617254960357819643601855122564331819688879913762676224631162983694009321126428176931223109703041956580030963568883328069172117116590188564255010684920590376427294418273467398295297438189692425454961168799175178924350107344544495065371550791740746727559037080628003303278120477470144916041018861459984524336070839955887480125877785820304543362655316165512012163365132163538709323355518564145021228348099023093583201758314355848289003783032754306374222507094679878648096658487301738615252796124571414281737448730740024897080333516145030749746864128771605519347472667402826507183972732609321230405672926109387780456741906040637310354435827366424529090597572630469135174398137144990797239912844533715045042834430232180862620071155810282105481093264121474070432804435120838563534315428039148367630504165237985869514964112805078050613611492690150784420024344325313676858167141284687092154205910225861477543286876223594914541548775326651162981456737125290838588994300852998096340739452773543734815967974584988936086097141785310180599371643361287334453956781952675839884191891845745405928310602701349084515243880147169513901619942789941577078255059621454643741270158981259745627185118196604819494856875382376440720716328066032528587834222824127986194728323297236696165226990565131811803431906298894427003835190708234317063014106816076210880694650086850958148779071169162393936383571025044340490162088273203818306352322097190802613584803018075206648822108853963532776674086487103367909759822258632386848859910633703071950617881202842536023043886874493262391765889991949751460977569823018508638576943775045816591404442732461028581846058145243739559583150392900273041895160297126795362810195930975218670724183123092248927559475427942116409611787909301271449306377052111189427724553374302208355110104028083305274234723728453096239166998465102872302018321857716647364368615968238021796252464774109360812655598259074512154620230355081348798896081472044558597044005097911410452695735561641453015365893621086508800367262119288584353376294614326989364822968544693638072944090879697729998575349650936674222707513425893351610942438944248299452105191314242297959774512769129231840073570756052928048076331331763903199728427947317499905153388092726848659855248645678584717661374694353297808874888380601892158829231563393473425317122980233383554828091840043595805610532024194907051141690933747131791762960949181182241800464663590729846292063282893604079952543384388884351241410557302690922116900259691091816357882160060417325448449517010521465740686422053062427470120047699610156895727915134347983766475016136220178245580760675813030706152884889832786524529866560782812184500652756098573006400813918526873710412816820607649600080069192011897191383019069908906691166972202238613914192562319527854832441139119847371837094572505104944929376254715817116492347424116888843755456285167939229587764566866899309966766643451344015636598815975493665129248950717433612074404910147420227932379840729219640298396780630141574262914289056292048406252367055592337436970773993066977791368877296559020497475198459799368789412150626954119141469555807085423890671217420883072736944096788393289614642347018853370044265509348013580101591014766655142460343185794219798425925541710287724386377659818693181874403600763853238574168335339627070850004876463019001130696746664908197118750531836185591504039916988060471670143987181078468422115070814376560485340667678724089941391485808589800063781764712439967012981589278734203027039485021633724100006341255223675118491803730306433208899997925702820765789714592004057485815566438997342082629151826916612536636368977877769407345745051882004205290402705701365767982143953469483231438896062320153215933805380868938550122996838554779734365730485259473133504570024955492783433254236470769906283568781005966409598977075751157656416608234492080928664838935433019093333429955450510604811555062544518851947883659720512411265207604744901495150367740281032847370148231318543662439527406870102413597261196552179890182700091857822709409990274665517462169574672088800242637643202239232084947541303276652643147643598294685375883416731214949506079222756045793825054437114145524997815089371314312646794213708064319753203494583732083842697604491696659825416648109466490368134628207218303817459577259481072553988287346227174347654126354140532616632995997825999655846117425955055435342542983852357390448290726998275393915563499141134084401914506349376709550286829773189134854192337341915020338737213688420689511055509896076931347017744178007157765349195823868833708438768282327830658996291885533010232749844150891352522471683715125240479794406346542978030629545583098906895436658155423719678285286332810574038061589688526773997401846673327810151073107177916314704927374761037088152974355616616891109060135620717478129118023865329559345677529995669727105540535095434918500608607440448102355499427949800559540948481873470554679630150701153933836441839180584203417620332281250890681891943663996389588782247109044443966784495126476792892997779030492399302920489263594735355713912338870736236009460970007013484847264021378091036104735853395523550368678899003996028503663388744260415533986238868790093407369470304904027239640892639298884614314295266038844915240023541528593608874494411462453608436770495422510670831578830479307222993171715010061489045540872972510202701415742857641121250543534661892336718102377424569334371556657457086778467625259757178497794578943938007053961415237775270149220100507463821926567673192223168139034777201954939729471384638883262177232776232499712432027538259382251121639063373651730876740815796718627516749406649827839676302941935515147795868364417007290344745892269344579967631682192413657825375020860216404734225573684060753400361121876746110047770926433461300519554368974508218495833357755720061079263400316305043887920722345051904109526939548881546959746088066591073257230835222201094112304701231687631884633732127395561012588841607935515310101712392387512546787449627239320205465101661633567571934463974933952770679306022435906699882200937382134270853697730944341083770466724381441087226852384401057994705025745576981097158665151387547841338784324569259885167149695695749625015027481043193677777145435687691232515296572254459975015230181406046219279397286552979781328715597276619771716023710673151166687905925020806654270297063156732938214845918321506017164598122009074651539362008832988107615992648233039181291903858733208662492280353125028949493272734738405684284127540686732807327526710004608071705620504209533184908765972563691112606171918414765018294919120947607493068880847710068078592155906446388897177417229955538500616172270174710493328354393991700571270498879739065013454452264026279728273621292477079445680796404520039847007534133284724060381587323978239357709119546912002113644143541070179545874042624357876377219902385060857243499551244526952234836064389380094338926729697690849571854621020567901418410620111357039401888845512318076511220052955239132117473047230222242072760387467718759148773272646904530108029746207631159208514585677123132738016989450051090177039130319016608305686401157601104466374948285936245253352623942182620425858362402745121430360303533693113896188049386012780466819293754774325604897197208963174599746908972704075389962694981965615793436226919869007034550762573630529345414732499115736489904968950215833244554798787307613986133839400976703883789309191593443552615633316138430364425387037781526744350805794748734112360775133425188321759159627058658046174055251234512906916142201779002888887714041641056916213004447244966603280750341478404304085116930002015703240980715300951200154095749329406322879378369677503930111806435688582219970452496011129014347761694496331119079764078836376336573208838704713182244883752090507546210637176177496334793145028639893926366932136774673304849633349349732902523491926498422767865317145527542288228713141217258891846436534578359256246629758720448440582374507895810653937919922466466331451511349556594836059262405705644679681567259055256813497333301563445025143313520398480555163556353011809645451679066636020152465029300049937498114901241505057806972098080373786687692017847196323480827817830320345961858407754506936400440182204597159126435126131242197489161965291222029687971916418096923743769948715582536368936939744605779003885464391806251892846135988805256007514569591671066739056805974514933484420676569397060167190778916822942260024426758099129410539218894483750112681708848458666678212835034838596198943108600329744933429076932742816472281623153742335038973101922742445084665565160336524496183311358845374636184626226840801728391084364647125070738155790346342398636935008565052439198848994074614197714778671111909549127032536995088181390093460504198378783873550310446130761288368001286679112327029375030368285984850065377290941968023334538385841307902733023351946232248700744760082294962927112462072098711760151779747199981734136139410010057393604762492464922915308656771208629650669997773336718560022236267925515167765397040441312682040303092888173112724294154438120225824693447040145514057774304391265020089867181621051501046734969898110195740245577745986382265285661606392618942172271154818016013019146403803220453282678127468644945762883164706584453661173326482531237189932509179350585313269447280370725955607622040555948676201946637734017609898494205789848704013832763040440326871721740097949460142320774346716298251935347572626381699551885791827433422511189910707303679252144001976941115604157465180876814562239737986474547204306441350385875135643848746813663815422343032929671655877498795685686187143602868072437266224172008605343575194144702725462257060627963113971324266980755173335459810865877854645737994257643428182534369222707428867332012158046811819836038452423815711560856665026539242758522633258078174399910097487660385003703717405392628152711453924437594686924128030874526803060710166060108436933168373914106937709083989355067138143942147775442869914039100384478389604878590182813605422585359461289652315293308058263343910296038193087151663950675825990577745554074027636670423080367698511156578856808241925200191337025129869658608009004322875634238262779790849597075634221882792954532884445105334207883051406560363205005022400473168398041366214630204766069300946807092686445404512804990702241064593013540007111112083441485089610644094153589233351610792852425566043425569313164968067765645679627725315848782280608331646181638916275741201209215982397459691492022578763833916617422098973068432343311157111412721525589426422905885488984564970021806615460742280716307917312576205160468229027766754973919667901174940677278861261015083900732148019052843040423737307840490016396985583295301322367674024544851936546227390604213099149603350395888241391025252180023083097477359131700645812393659436176280010972202798665788850255652445760943954132268102341093636207596141740049075578917477290986880435497949744825428804287147116019683821395965108357997632395194902529078396711464169530389537886752487860957832157245705550647614837123007593164457458317407244723383600451937699273940192905253870228522063843174583460365353608407203698349274665443812522069433262929185428246710472928936708804969136144635503001763189660618474015098149978567816053017356674139694592312308957648378075596011708529949031047638548878350946983779168895033868218709380119743322806289183428375329166087082637522750669265416127005735093710782081774834173029204184936944178492483876043201205631275463016175609031748078603444679778339121253284532950212285110672041690583890354346158717432092861917256607059897778197072841292203142216712653893216506197076431179288234143861940760014213594693596896397084310928904918120971553302719514204492429649834857551380620288065162083076253734535016585403320190672820584548142721917517356937861273716052798828765506865887978453795526155682590809215727842091197470757130374600287407760013839272916184261599458937249715856334863428177947006756358284736417107976929756300553895332562311766200268234074822299011569277406657970222637733666802583406703632145162598558256148756822865284750424645640423712639855391454749890984013317303609763975896767227382761419855764607649122944381229541772736398999580922188151360356275000606739121380437489101505294012363172604691394319161537764489492053642099721316873049542406907715841932678279960253331450223278593476591811693670551959576751948666781978083095394750296208093349584320696903581471548371067349454941824727079049735068602646881177001856237706545292589991562072746687592511551395908398413979161993916656572545871188433209231299095019679196512363999220943968444442968543355528609169398051549570221417376418129289652202678621670352938642769003204666681185971767104662234711119105701927627190676773506245249233320271594937364679819587084280051826622115329918431671955246495172100374744790213087060614352017810913773495306005202544508559896476266106248093985887938803778022557419109130396385246663999264967207994722370751262330209506459078461741129259967701309928509088069630923380753069169005284917428711183862592925737961683579345650504318064563149387998707605352913695704149998308986107926626511996704365190624627815791830883182979597745230230582461431768220798342998823929623454873221457042973625147803522348741744324072717971203880141479870290907577958834905084103907962205464845090279947205519347468263759747141655288915408208853138588037520251770767633069210424145325984895263804208838141815435761678578080162176130102622810294236482004154470037539622578668443196022791870647152163799597559082851354008224053841216428339117421426590798393775003586393979204416296807871017931674508000504995259013894389860460221702843555643116391152936827345402495497458737213900935023112194984195932887698905333791650622984710546677734699835440148255681158310165015149556409163697465275430297621138064247251907348663011209771482851427884203023442647735924457948331682120402674205428190134973989940974878871482797086785046412038173743546325838370728753571938535455448905409760258357325197402565236993933733200713031137583247506094057446433669974637076191817838697061654091913020462384806246356729621704383261882288039312428721926852453492925636361282417841459815217600754426206020901366551028783406138989705744282192573282312341736651607500779604770793666358887085729573140121037035879006379794472420589459739745219709221718087973086656188734840219211165937800466453661664813686383167136371614520670023916393106133205212082561260577530421126485425022029853512499097920959959787487351320922607348006416996471969782697150095849186315740710091159323501966410361692450012170088019727662411160708388458704365013451474205810807734878996525206181879896865619730155980605299339099793640156471564009273809064352785470341231036534032070695516269605482544459967520742434841833478726201026912871052505820870857883373090280658796584234473338523683902948449426369422158498603066546360203815157023289928983337544642223558987099657891267941235134440531700243411662141370542679838327091940673629435454475517464091265075665930319310772861721187011362505297331318204063776593137964382088517187950879884707617977073506641307205351414651164524839739222925214252637835456069424549252427924060169702185869711994066285836303445310119715686194037716149141740897572522566275197235542043195244118585728676614339161476166956121153985598165476333757509477151656185207598293912121207584326285374980040782015198816463579272137011226117666837299483637160803050808132331306062951587425073224320404927569970928282452048179376151356828944470371460650000820476615496507923601484487832480961298426271335442173068282340978212759348431624349905149481155416902689330632758278674808616716910360369554732173239362963180991300311613037471601061681489193544078313905679935814901625785870714869791861515022469471151986230820635163886552235903966280669360404459283296110650437926749284222685298358802740426962236135088993153020769316077247965164957515976363342183577366674140375643425891001651313593409601045412452529787549631772251428433573110940990672910515590217217558262170585539306933959435831956354253125919778486329761376192789481937743140096145363457952098783813787131904131825504924804351137343133040875769041045902211662135818599256845199122925137224702809617334907972348714682165252994280448311248791373717846503283844224205845621610743599908276664982992133612495880557698563894789324773082098382479054790895469075342234036801102308225724145489831002139205907042105981317769042051921903148789655385955927401435175462884042593162821836397983048552114919697394020322841998494026942072088900517323595231817892017248754855821450600097172189380678461486584484765716046288402698375431470748066180476588579404704865909638133056581373812065811837750286850090444082800439609603661115507221681573633336387986041599224556228665773960858128194765503570100968359254331058983370743794754163425868189146561162746948921632996723045336608557331783581921077101897157858857358111416717485922447326797763012177246478986534065699154789377383555121584011115717572082874997118798105753230785444673012492068730970047827935964601315668222118284361706147683050574774079117192881515381734970541127689060446927854468918815771666460601304024539635220529708333646075490261489220481744576827077763048992811512476421437862904211715098884440812142721487375587257738110730998038473627625279830647696440261224989588174042893515031364148673481049184818752181690925246554558073867926421551673297009421556865764598713834924606573422977427527530182481604366414205432951778735550561384468586780353654222724234733244443866297889505075136131513087975774548023820657403102307043281804852861415308083633552815506002548916844201640726692304784003684096535422066387563464528146321273279032075551513944961877762897508251830258560226910365580919560112061124861531274834752428749836179828590918665875540788549180272078817008747977543898304939536182801171921990063392379280128254009762956457850830671189266767389076703184010837104652844192549125860497870615430003874642185449688994205699746699373621075190190494446704361452034600406660071267648932611876518033633641518664066247500722446829061690855085988085127276529116033920013154760623479473017912327569316158967210924347528923955916985320177885082855944330304188621486296616052333249755767178234895252941534560986489724591463678408424351792391365468374087711356684293903616737969714137874841674971268435543746621303690478227711459974489514184762399505830635558413637547219340398877514825316908050771694502072203119246233178807944270881206994254468711965969718952449281054490396692021209521994762864298256053444723444040295083293857816759616439929094414792947015721440710179654302280124790733641257159874515479883159289373999031156600795000015925847345911374642442837196432481040755040900254024748399393164211805940651820364030935198956342524141913324096430262438391031191566498919727976261791390863078361215029467973869031130380564977022292988372986264316096122472952460908653521705402118824007430130837736325706834970230606084257281699834329256799818965999259539508909983627568394433383906021455192369650668715510717210899333849428597423299629695068186170628736840796808228923345649560543376071241777996400799210734423591567775849705324856243301417321261337463760803343925728024046097341491489259648198870335263002695023410213286802390091961403378244116376182426169699125650890413605366671307461964845956402432194661845931812424428725928170263161483193198462841968447832906383999559000021058081019434920020790930050722267507736216836705361107685364396404929383772642163525882899651558037096483224292289160235907440859122694470182272916103136325517669313147952855283933724141478074283753355732207537468615577476435477851005017576371561322664608198482541522679156741732020360032823306278936908063283621982450285151137250664248548308247960244435284370344983461802612251710895152524466069248902275203056873342278592854558137297002254546772760325253097249129018655306390915309515023469863263897634568513257148977128958976763228226401332316494871229530488098259629149599273098385300939924660161845669147293269310320591003836936310298054009651607913286827778607247843550342541264575049395033555740656280394767721464114086173852531163762515594523043873867949983022912682927276671178827059319033705472286273834467162796301144411280370513433103054139033600409482260935903425628082985605698176952556612776741327229845273442488166933079325727427871897351513611527940252679117353412589547616126152946518939515945851579006064704552567765965276759383852841008216686366349372945742720860316172793229845028041319075579326647287980044184021390952960325215903218046644628580598430116043550547794141562925957053032023060734648289501930630279653851070222964452981136049921956700337741283485901851511130077585717230545482028607058729508698833063633322854531757732285728068916987998167388948013165108522033998795816595381875025449322872582628086950847874258153888855120070325101211799339829510640901862557954345590148864214213250269980213180760533646196546091433323403952710739174840622257269670544036546526247048811037960011359847778647989672402430124906595528051060954925396476061189090923127109161434404277918695757325152964210426039108364019430784845062895692490704251136546800387089815045087828815764729530827568247619352790559277653373252136322536345990678441904806076446229699406292684377116554803982987783491786018822285152160995999159935923546992364527560655041580414341513999650450595186029269729287611694913256807814113321524966307626055796375240735465042399208676552367572823372727193302410904171315898435551552342503191733038396343950739144338174235370094948808420079336283716071689197152309595308970549051810578261798887757357028786119702103577298167825737617735705335125726843349245542163182001286191852985608785423793010779529456075347257059864625821971154305054791886489213231490152255893186308718580080652784092243061081770450941330984039892746045715051997887630499986155350493429923976741216819394781252871209850810118924100944011641415557166617239981522236280699229884078348580336917309934500354079947180761968717563427342789432094723378046100057168781324938776378709823232313888944853953352566499202313781343543875825983538127946543887842047646714239117328182755029359626165050342680216667271459455027306768128140912437066682632917659251575683463834864238414803431498495845213874716623001951265656984476284537611865331654406857555992538738626527745486235336230355034661856337758705947876485397988026719085642373463535128674110814930678560685825755065291882452566868955698972079679536810504328243428776833482994752716390460315512569015341952754794710044797418000109813909402944763946116820381732828437778372859614176589956840585339788055745000172177933080325909817115524091281045181506821437541770262728771448109855212998285187682512459536177320633396494313664804181552213418391130054096819436736036300171652445214647888627307107746055422238857355693905398470622994823014197935618349727183596889090890864301213299497303696162941656795611095493984825536635198414465084045072451026226980596163105501930659555526385658640735725098979224307625119312246343737755740626678482857749389371831634591471562369179691478908082173462214850453498498796727593949987986439833862013592687416350909118409681729271564815684800358698103954637634695141880375747304708244020764908499219429176273205714018169572989499956462047816028265350980699661149085026258728450734927516587567855812461083856161876363232400434579084687045098390894152104863522947746662764017029089253552617836151657565456868459476799131345247789986355568415041886489844008240810269794342164278374708888124964973501995912713802816609615403518059541638030440721491261123233810158343490929579902086606425969537506062792450097953200247140244066625769196345343259901079445851118563140739750037758490984879275670852720070472965597456860203638905345022324766211286638914958004213327518666236080519717602546328282269899530687466394662146090561146242578303092929183477686305634831941797111365644913956208250733252765953932565182376610833572318724372974618287437317569140522928763670605165572791041342242906312039181545809640227602435382407381735587395540507516579270536988625469803651562127046451511934052669619739640646663630786342677766276784945220300388414796619695901015390000106508277187416627362605485229936563454114531333846147528896009392701350273666438591416201901345292589826207776173766133984940331962126623260256973794024486231077610673967171843879995820788644340393366691585005334243673964577131295213944784426699978896268868319890841092599206852299986652621396062234993469163698716534900213849803811415301961034818070083980602476893479233968838512559734553200265405448530752204112864307704323447095109906683259960971873110121055285131576670041207656255121895458017427028748033471949683170325117587494348741648451719224561419302175234050931087284055061122772563724961899643906086278429981213516520859633303180774347175805980731620636657885792371541121572140305472714629832098553020146250520428538501969530111482253765374210542192692565612336617047241261879961924185756699489701613532108766440676231753039678221244165526106700452800603112499163029528614937034346833549099095879282499420661727743315393982420489385655845835676869381486661608796042729911019916992388088942633191758844970725874347953519623186183127069802460758318046562226722855685444100120705642533197906126985333170870215502678743306134852109527470608989539237945112725100519100915514014197827138763666503755691050734225028045072786038204970553529459827557817589407580955971385086988000814714288462932509789442360111191035007583208086603966811761761141689762038140576082601664754397230011409389591678459176762369276719675883626064993879821779240695366762253421556886135496993185925319955729522031568524429269347916913855532123203117498602201297963555470487976737884517661694661519192784730075055858045011191434636397317730913614199752504898046143590765376073017905026295516796939922094991235611311756785684667049670205954132041492870667808809088983905727713596007661953564118997932806860567999828381447962234114254851282608352343953479435750180606851258375468516655755144932941573755787713195577979619439330340134263910082610585074819836508431632970506712348084562126566486131800769571572741262395724237843206765746778854141394453211510051600968548226980788753640399764491225760160996856034926242957234510624736064342761944828252745591619969698790464615180926980567729260874057903377734503746355203941843973917683410679188061878340945130510975287145089983869483994158021980111514784330731365122646914000495740654685543216446125320207467432399689637597375191778476811925119059535769346211156876591023559977003008727078579395939186807249971950858068713728044867083405236883754825822093301374376030530888611484882887730034399685226216519596067949097949613813582706767751608715589873226906572673887783711164378680340018875915809011614590484953923800720789720134443395906912904659406757224740099153750888241480415370955042076114863828573257204835367545041995403963155684372765531221169552522051565506264040175047483305402195770396674655019507515295917909996383353400519098475044907771605771502622003149691544295621539461629740761688180131722119285703088572967130885970904158994698008874877982115740563972601442270781802228906311963523229499045677841292736457653006445423837747481316673575993274101219165948124252603332716756941879156921216798663131299459694500334987607795044770350182012459803089897519724725963591788292018216475499035930203181132914441214547962555459942126948498593837760432107395347717668113153556283865497603371334153886542278071093141580920386984774645629279781986057378154152923418700147895401555790989753982664744901114796542689591211271523434365184938633332187573214992791095926759607859703556425737922341783806670269935323257190713632329714966600663785260349847628187119169139701507796937939546898423979863959108814725131007709380694317742502219323529144248824194351067424240190686945482293767704783877901396432903924360077103481222227203836624101649319480605768036998298907096253303161936981824000994706741951628182396821586052902405722346233481114485068182434374914042796986495503065018722282690398556096330073951492386784198673196852264211007761576218558554567562751783374557587162746363699943701524243299507469980548537221720056041171500513265648405927641236990830202077335964179033681475225052083367721902441893187024980054965653964734565793049416390408997349364379111389619693046061521618036431730329812508208717250759262488818199282156047199361282906789684557298058558721269413183325921572883230825175682399765330562725072374465579925667800874360164417451971579576040808409926809400722689248611395635236336466850873991914044395882364212519564231416727400830097205579571507577981071358338423411068461698111423256012195876994212165385676911621300115639597433852042278682617595002175140467435424867843321920752754653863983836066231868338344558351579386756656623747401475085375488679972452788365587581667542124112502226970086147868208152280029663929118454072272954248373141868360838855209171562319119545936015851069966444760385598695869050642570586400005597455599454233255951071941267780823776810578082556453869872552231625817900344777773884604448487423717543231442989197360356684131239952912021288136788433899386701405451207282263988046404147453241477009540888242343329632090590706701221714707953456591554886012218706589142216960083424159420874069487921958572173390669138096632699105846894829913570901106390984802842650903912638499645546905823681891560809935423755909023315375208802034011777745820643394533866682404572705463781557221566744492417048767456657415978396433928965413447940444279775906569715992113336146214060099283385815856083569471878972736070706105485324085558859451908910230262282076933176508679461476202063415010941680297835832439926443481392281468680062900966117942693460772728154458785117791889219995710609144260617732889070292386333909292202213742433404562793746987908379597785857886021190673140790530349703142233273728533793081209157473686915475065902437814589607117109633659183131301502573538410023078616559595147926296642026361259864065572317524112784635114137992542441165650157734486745777637095042588675601889380896583486269107482876718497665680117335733930101667542419938445307594654202504296059797861625858494452828373218643186451439654019254297872294924843803752842164732428180510891486226228057129114072967485436369865882393371817488094674803817721742953473880297618861414005957989802699506930367362903517803119815910294978865132358446642150115604767710066321306692848583071651473309746337449992543758122370159697612619685425357198360554598567461583749185618971812014316359499384065175530834342458779077152532338668929490858988676711975804338931793272709612093282770599705508389025370536936027529393406616834731720999346848372239420243779931300847717226944073994935977992671084804366464372841540203672058065274632071166632177202906340600331333971871969174360938984120393276970252281501642079716718320630135149095042469923457039371547178694527137261672767626654120293355261841940519317558612392321071095819866665072955733245127853920535709179624248502465619634285747883360528306057210845871283275649333558601149352714817143082924421514396613484935507350721815694035313288795769006610559805869080769526435845682880455316196332405989291016192758245214753692876259355268456564169370599791275488060665138288687671634444796939552079014994524134916863098828120390616931543958275805252614686998860527902793207444234231606824298500513230645317254580334020895541803820081874861484493835784784309494440038241102090611877821550187148125720515590872001918924945019305014099272801579834068474826350299879310615857343583500450251914197073868561770130212493309590427686676198033059782647303933570510417467775877433515547835062797408398117785873725737145457066192877093236608492844240385858565667445475183447406384600792475063126539572613272031521135405621632942690698193909586114614722624594412036044912203346920747628747078128804419627165114008567932563173912720505513242480985984344999962430290274984381941476211326378914635623993583154350296230084998779175638910142172832700382821086718851805254594232780666713728007339277538362229736783606488662389588466228030233556682691720104603990001120286006906069645382389442523472390633707595820149206154679531798685119014045752083548542712848256084939132357552136710582427336863851442969264297095991888126424027818550112807915098417373729197768401001852292838914532978896784428755700972458326842233059433155180258753614943491425119735503847904627366464737936129675626049042050335999931559278895752048990452867389067386618409156903848365335144091615382486253367741265789871735188162049570152769456823933417966587138151361126701153398728462688739133562782059951464760107796723061932959321250100151813212716476577460756387071167813067470552693700733935135621327887400116562679702881004921868520038059484595086663605662062561767759585991419411660620416152563436911496287381371296435999400413241762665897921413849571653811813539672138967845549868729602058440583581469046684330328652730273149959838499405655398157373215371258840207516444812990347808248557352351000349557649575944791770789900155274111043512940286037876908378366421889284877490559440245114003673921784151892604709537485304631176497598884642191942710289619011424545838689363639811888678437483499444288615798712714126024153130360818781577239501576245412000528125051279499994052570413200600330070077954217456502019143428749327684315643015982593613917274302790950535651849738807951799822861375567071485019769560036622247630377877870365060443726959123695892621241637005576093640756906338348789522193523986122655337145945703268025681456819479637519112768724660028798330379191734941380058309972609334697971123311414515567110347409168987575572943340417430782658647363943808775092389279870026680062511484128631003522561189937942580400936652674255530312580128539179523938832830977370532521964597215539950658905424806395063250212820523265682909763903642545642591770973928883611727848896898770996201596153611653374045076091086355265745923672872473821861929200285041879163877631466544245233862182569599693020930711044261832909329876333675921216339606172695265584670988657611631278328773508806492160026550556089323724947940304589118350136273651126161249415862462324894294982149666983404189546071552265735750676086590929124753356258423828120083638331315486213228072891559944643172813592206813138368675222905379670697626179965958608589881853944781044480069487663195958980046596184599681661323697198898881944978330394856600519705088994377789425195557929465264541503853992540776149829221353937970412963778005751006883630574539037773424417171602336706628149520762196231749648482547331862331001069927033591522249094045516378874858270970717369374764844123720322254152237055415235721124717487492746277658874559360249546797640094722074239218932659583173850265101012711329317984086687472797155044643236624198981360369879041968404801829397712209471954473659396813577334234795191570419945780237905571211926461509466758088271182096555417202280704074289554702380474227994497234199506213078415245001904191309418825111477196794173889809462263142373600200556119935389194323223202338397664834576583318517219397863884059722638874227319232164267490724389369584078771744266919937652049263743642548505920949897521997150978488962458542757615676954902133225017276691520634622490001664635755453901068809458812269058056423745586385729252325640055997511993337380818310118929497974061721758210449697278502899641206761941865816646556069282638910877321264701381389392934099771251371619232662259523710448528709858876515036522040904574439694985664074650823538548821417965049944241164505682800080677484621395494387205783068210120574412813812210342449172856996879368369626506557275333960538415346086195463641104238826343389358000524951952009551882261274466481135762621507747829347070930273903383720408106555649898143463107190364229214031852991653274359365315329100699437372761025701020707072009902963201552491599454872223922530719158173440232972700500551290313200690773149283523287639321334097277810006794430753109992236554942374415319127663002966435848423984006890966250577843488128856164576177598237454058076923686711329665316692201464442080827451773927593139783294970096918191485119851680526277476963896048032791322389137790114030506445032908885625855294116797225015894825759892931588705000629697904214623138133134411745087835703116508080047802610398793589773127837314944695872067100247270435034251837350955271216374053102355661026909630320634108903541355262320104878569844676306960078924575349154729460057007062887206035710218961870032076940717226498444409939726612900907469341823682894270998062927671271442938145052708463178159960793202539181467668861243169412198128499416503528123704550856504952235914308072099073797876943114167441060135674668435538962157413942355634968425446202514451280337178680633797520106632293132211143808778319733738499699309609326143434008487006138064995943733458450524833910608084466717882493691489285326706555808776284516622880521287974591459973426264050644047925806565825907324143865632441288075979992923411442552454215866623182767182218334341066198040512538334484220927850660617976237766445158048526778035686853659512264319280801794246966535536975112257766983648410406076524856085543549718940552082179296980973858140041506542738122676130201866558869168241615370114272057369366944756003902978871485718126532952347822675448098633559499153118207909954868694982317493475735137378258502546184100085468783382792128518837207262412073903502121248833536055899156829924448291233909058119104762031040983556011851904356876769252974622966236697894035789577656444688731777426625401068173040360737115814100673284712960703603603918685384675773729022708086875785697057625923716517091031208043146308546421154015459892906228895617017999944416805432562565186842232147179880540474874112570279962784522888894420173077979755049088315184034035457435703645893704366497832684235931643876330942046125240576168304172444854052011330852859786059700006154113922996194712499028422848331162581050765133762281579688785036157068550975087219760006296787571303835897682183313809010187985981279973627528198650609174108647483619648277143446623565472887561503065229361427731499264405004085316166057320377175704992986149536328049419912965871061932114670019274040882869277393337984302350774469701365176825512415505267574488194457970512521793834299686758366687468028336699237708214949747657465535896896977460060461521321277539891994191499265430775189950396698199049113678790755036885220379005735746603648416607934351841369960758843128890774683333479018113825608358971204832899501011200957405838831413577970604460502450648379030764888033760191361098525665612938751125049255850083237049793088424257093685212970160575166761704347286264976366634400863030106990843525077951317810395707151783471794096306103449554916853013277297225339815444684008531896655672189936391275930441671779281890522452883639404500760920645418746372865411566366667829981132553046166498941033388173650993605602322144670967326992383017991267007082736414089870161721422371375663625603220763875377957933051441450448165737679496789618428727262719749284295502456334707021741090361777917676967140377092674273902775801696534895922344238554983115431863830069968135812378506270954536230355569521455005800827035839469783296753999210125248984369762185480979243708386783321996653039313103698785887614039715095792998807262248299484481028034370112302139137462284569760164864875334987938619735135915347046826957788711804999956886598065865415609373197135602456469519499659949347547560143236550297545596858841508971882318426140740886546840793625952487865135779114533802108828710043500799852285112937346019769269762214150922022784545015616050224348535354938776254260824606932808361205923951002965714460474149134374225186616605812088875518523216706126703870774262330358763919914934115757176642620720693469152617184416692018844683291583845663744642417101514111891204701755641395133900273859825734313323899764833413895869640493530849143770963676055977026423400575730749696788329210355720169043715592236809020973103626716526114127232010794729723732430025453137215834101529108070341761805601432250556696613370600980424202841708352351879200751419805801476490910323522482134994063586913455427341333979236072260117398264491744612554777547395543735985423765642617226040717937203619683796194667879213852808630882488951063391849357958507442954223196625439509452443634393363574968980113767845007279032195747501664593535838725065774022417871904877902224183328539440255394596472525396242078342100928284915371921407135812354774562248875334349443531501561337909312470510795010657438692900387014634527738291008162088578487051239937521627454499558031352720052485951737025516667442030049323328678649059773036679962453106332707973704969316117063956749727921992932142805165505418535498195765289505209260016621938154035682855531065440246239522575743802296013708329398708178401011532000706403033286194569747785446957496800463358842509671723029652929658849570589801159138471355135202129432213394049890939958496584090669280880943609145465817487166946844211087327800246567988524579857495029850677597591688668397532292859368025459827300405979019290132928050884909329994108866862438685670673749957959070116409227209497038834133196893389667369484251349462840874491607520740851094636817698146807173370626973977356034039482249163809652960719667857151440786364990472921028016891958018866179847789272236670179058877694009543429008832415328487011748653092251588292701574280100739568150748314154944192157210926812936449032259258723759895486545518337373924964111009298280174244657797559893926100245742385513155922557560763554277661706945659832248151605583095695610973735239753023018280278447947679058909432926200596211512976210815612996606265853372871976642629767387076003016071186388810804891250016830772144169294773344007335412861077570497329557784753535371628217847462286183075292539320301603385470942862046391384964323193897914076905071340756474513446963107432170612490889593646167753099873299907763598792769772409457584986118414197210576375599523886349752312772725933672282919940503873111666019672508413129725547367015875308359600784644144879066124765894292156866860511458023984304200256613879639218627016701873823943772554829266025678274829791482471803799080549052965723301533728068018635848922190022501542188525795995242895249510065348479563748776702752316049797796068466730373731642463939171569743834094535651013342857262009218811221113215482717506386206122449454220596823354739893801173562813673531225318259515043258968704420621002222427755014285407532403950966091691941068329507701484050190897882210108273532801445539834799426469710950131990000453970126984413918515475203938681402324728212899826871978036805344771976106743212890971732508495020483013702370820301793845970132695150806224642904052600716192424172667652800201062004613768890291764260274052562942502189701810717677403050471415149293388845049007030766600425224508975828629838382989900557824859786056708530393048997623512212455928845028470136117563154519224216626282901794289867044190320391724724824768262008927444053507924558808175436677524462228649430718154329189903335463768769810328464849955063875129159934513446309886038541820747226712752902099074524621338882137233838379057894553692313529926008226735725374782721052416250176185747442831974659506314423754986753533787675798822595373381920054427904237551273702222547818209479367108735725014110582926899399450270305752310044288742975038652736009197362163919469898206278894244129766478805644922858994346023850980234982099335657195783340955215283539509079147032175571285471108567229704510486026938314635132746750358962628647887503903352333374739301863765028050443610853113540960216761004661423192300896496561344724903703975435865432889798597492434352965699725016557792201750355732106412441933081313202629264897404458804258737315638689933653557884364874136308469551295373189077675090717954253668620814658874586733579793061054069062122413099872719504004731329068565418840657940357850669966843134632287205442162713105237475042602384286347322294401995098694254462816450088151778335910484137563598274133092717837488947602759951628064542892021906272135866769941356408409890511615324860299522880423431164537376085034633032182537053255666103665718467555762475123363413803803036637587158971372981622327702560058275277305631761715102981067592315969157391253949662772651431635298574340873512863031407065474350974796126062583380250451735719161283168121768821493108186467062587455432443805435784516587181571244085499281331365529296581948565499156772473833306911959722494659387993757894139476743420447268376823044768265205509616351097174148525709316916570407836642256381627364801632749036734720746395063816333516032976202114921370171053417468333937976206554922192656569769292930376935491816069176139581030116234735454725054892571390145429355621520786665557679338215896076430927328878784789159146553973908867396531736829122291373760344176299259659736630802015085154502223120931401417765045329271986551046478718047273167757447668309859926238571619142731707827188104026030203753134349594589990470536901728557037972074998837661450428739665610583826128930455912515875648910231444026313435340487531702386215183594172981506851310655390711537721468465165677785977854329730068161178039145674687337125916823712847168676866479158734703979774619946180600859330953388603427910203897606173142198503474311167554432176091027625257294038224634868917039855275357408022147983598860267730348840658436136590150407400074344793784192942316884576534540163890263382982623680433973586820867224896507152073452251308792765185350909416376565766648132381996519784637154754217131940422374611025634581321528408833903704794542813043681935910462441898055393821548500002866679867335867540787538641305574815296137071539426566396690514376661309282749427001412422096543816182960273236450056015481468339815086975502314944304269226488556053314410833425008131274548625947173350579872372867819789417598800845482071430071094939419326107185626300539938656711679670824665076222254838225299673508838516092722607905900490327971143518933845633255993566035212784843854923701190314976154429027217641239128788899203462666511472261394322671386833354792368571717429282704879669713980413430476383400242828234961138826174280605549178063010121923023779883429116305872464942206843300312281536315065390846505336467904300452759337999859051882246158756409168222203031115032144654834173534905627568964045496785553692482714738063599011563074316153391723526488291043466353535316488097314055592159101263544231436244015959967552963740153998928536196990587057402881528518456827446265217163182507482631150097188192613198415683584938747523419587443319288791953981967896094999195214170277235252706298124425818835081691803681441322184780756749905676921046019235805182846246719521788868663040923481554850211234092888341830134125053761094861104894287658778763392792383259278337294871588668553755714598688342565505812619166339929387154863472598690845262701497362597038019630301826338479465819830393194878057446958098444020127788117165194852574688705647753366891981937087559059805049072098637030263409474693909271312751718558896421011357781043685476683989764161580134068256075897856772793948156300714221684785607726371671522976186352243636926889865268727281027699983945876989209442870623234047854225085706953429270274838135916340611921518839616060645805631392935731497214308102225861827102577812588249683762652011683803900025370518728642522362830438850559408366554711807597757217464418336090591560211932333726009493553056340263134630728423026016495086511397103781173477105507542312512246548699360245681841170562565836835751415222243437598839342234915903152020032406084080079702757273798408434291696311516858708920347460151466093902136825434827835550881592521405294217622639588092548647052442151310254990946547009051892963857120662966979648386281001431442877885327541156895098354412863345206067358821422472557723172995757568597354082200341956527188249455175134880245095569037248039167904647552639951182017229529379071206814145464642159209601348860471076024665250307535912268764328945605422873366550852935300685839479855587341509123909772867020586885959364572664134314047838668789048165040655546673911692117771163058285033563279878167255945882638245048068759807764144174879340128912398975279411453005247231795680561899880131842224016330596010195456055191886916432402403625531173895625293379521605179800562457999468378995947936022622657156238901615366778904503722512456911584416660419781165440828041635178309472127045392164670254396682388135299122204545758462997934128524064849678382011454310153349975839108622030319457360123101399392903166906981116256633684053083127095665175206105746722807140433160474007392957915172650269779200213365600321117080880952096479558447109525891825481618286359373555287677632060113146777562517291301883849938014215864479756452712383115675529265126675091336352599586866586126561689662073709768488269769744899877732935518650686525844140080693820322148473421066491537564869034543646256829664405311835848472673997107613299976015319546292620738350404864001811472916598251049528722944592842573223296364192158120194178766539681261388027826724216616342608187945356654128007487781534820738867444465960395599589843722336919458516517873288563258428961895705109248027366472619009314504677672835158868287705922218405562862705142455629776566313632223776928039494926613901504273300073119516094085257924141768342115767825025647150464092822687414295661427470555165351573432058253184094284590988866143977873018284777530929688859770686787481371391400835426572720930479470745396326487533350277106104019824876687989042868114605850542949346039507372079979804588317058845138083838813220505622176288750757411931336545600457175325999443546437570175728541332762118356907841836288449194470050421254652557331951151356956278910630451040439811212901475980824943008159846931265889896917554773334322347581660271943039194553852707099796025642124010727718358902749567430414203908174337576856648687989092427311153935750477157913621699648085283072998034617875180220078647167772230402599629053019636145928314504140051381532427114408505351340767554173130004113580822717817964755277275244970575501565204914607572103176557303450044753322301135636490651255558054809228330143019867966428977568737097183502072121944429082732501233491141568152584452532636017825042144921797153329434850966742525616446689219084113784576856819859487709886504618087115574981074643248715301126523080079454675805540002004479664361229386948744554535290863139582182268376777307196271045618954083760861337950296197219039853136658533958199424712996274453921559859087245841653391616817446893995603480479011301587075907925340368776928020770150349024696192400839198024145220101971598766874181458810487977002936606968893148991011898858294542177783907536153666658047704274817155502213911000194079985415241804540421300057710919275461066940323522004761770743049228102603051896751738514340809363946313592567198976095249392680844107864637928337308178998492865696722767838409817116831008862370285872314676059575053773927940160313856612861017259312987182540837873407459062064829994684036572560263587087579521511660585403037851063902400455767774010014808101279385392764887776539027372430041444522307091890489295733526873616191659535795783125652031936432742010843510093586254520976896499925799822782843568481290616311652556310604631752080082916886472179976799748281449178839905996958837528933553421738985951735152583418731911320060650189333806665381951906028587714967942187456259255472733938798104589692246363761422157598870534199920509767694333573885732790323844701248407875364843511052457415439721272961682937671408025865694875207462966793765111688103733336944617780473834025647744723656577645873503501699698968407527557793441173400396460920677032254058347794702051958499690896257842611687484271584130397367035524098577051126591511427261908340792402561150177533713825015821001094243155574912587139334619818309929834609290145184712127307117805323478995045962257849407960608119485175588365461392617695268182832816780879173630580140054852699731784650111658974848650683591889468399117194087516090236015976316073229705601146889349395815996076254059829877912109346581340487103088188928885816369707916787313623668158762662623043602845053991428227992742382574625489260712158648528192518434016383886709852531177406816683177701984891140237143493877329883518416850484675680828105883394993057981640076840629534684855956016089396616609162522645740008837108279136519535551651754893908805108029526087955304654486638161247843495296086501749304006747270347051470714999014883361917602518519430684095116219784542214913624742726475624794836171712170323454138874203116261924659296294689657245753643093534681366959249693511322174502445202683651055659531366913132369973060880207046530679509372265028653128060265721623200120315860568878319852336665146751816451001807211702685626804561889849630870090045728979231009124240028607763436585661638116448661617227251572493194599658979540728609137554202865399545268862210181389473119599419049911951183133646888390035798728563979289858151433467248820595686487853978036153944990960023694818867863665060111118798486413388124756315360459798746318036653369769313933804470953503963959662357246277969155804403648011276597710969961109030097146963994004807279294012454063850448969272929180627051995798048124163946659479457457985585720507957010368227778935793301630320659850856849396184896813820711413743132651087783152600738401508270936812911979155661473749065074302283554685361805450766240073929682479098607011211313788268990494669700406876005051114493259736461958103602334936754466386826052581404117175499889492347121768203332287209562907195668184687266531398333458739016916812569008604053602948539373776783831158547741423206625279006412580961594305164236458614432407958713217938758067723841997822217471944184607168306485660505104176849827227229929725106268120641199018628341164258831950350576517230872880561455951411704610759005193932757879317400608075089824565238933843805314017067713480271899058818313748423371265112208017486000066708563825916665044304040086128999208908589261921983702762630399680667478745560810922394541755241678144865023393019892019857000614971697479614920603954505502813080173418410935483761196968343926788979824267074516290215026437116606383554203695392433940176322480723202582908566678854302581449395694873762930499329616695248876501154184662416367321770285391649875686996604239871179203046749419518989523934758987038664490897066841514411546197967449723106768584716240051948308804790436952151962778903198782334654093372150027575128523687545238212464522645411931294965852919836276095727949446722101578866855789353646422661555822158406796193906026501767543725074897470910599057679539491514233620047975120504716114042450195179704879060865521326743857804350622228740668157471565934603943738262115369206645484749829035122557920723359102359238887484931154305930295218944609762188431699179401528006323085146198294393736460491015001170743795488852949528518890720703574377731391336205858893537632881998392946729929982802810565676310393519236448188878584443700983784276631284545327264656599125858802150724089320741899725359818294686787275647194418769249146818823666090387405973995481473655903028242979036431761929441232398954780152480886859737333243058337637970175237102242497227967766798924362276661403431792425487242140064270322195239287765300306740905508604457333326983959246056249160816745813310814590061449337541426225120569254579304157378915538481669588800347374284133235698732999603162377125205043083645157201059775376089381512703176083002060141781500227023488798532791573090386370236151209297976396740769668686488010108315884007077727037540910995939211055120812798886556409292682455040525429952151004153570145304191333644399167015268578348834272166711754080015912027304108281666146599448078942803958660926232556461617976974462820814231033714700369192854728388359389997903932403790767182937146009841322879371980128013406341648410415250698860337779269212594463517847101096704990995714823300267442703592099593995578546257884035083711837384569312206079837404287809309835216861691850249466555005135686756859243055500397083892861644654509922449964213549736113843210620099413171694372696676669825187386719980023082009500102843672692691733569883370888765689816835232292681922448696766419751117596937312753771249764829188860734734797175217266970567586492869350759434619092345496467116903875014117199686771294634961235352491312353558018324676319927249493575395234475339261597607380394685486353376293009127669114526670031083619601540020116590267458540547324171714644847331051613808402010258026840462911983189009674484144955576649902723400258251357742864679319039055207926215827635701014432147335973139606828221544452309707320350203901213810090497155025431723424709535852964161406282132590479426888904960994693024804803045024141512898341580792362572642916245013268158393501716994535139409493920239182492083187405558308939046327466225446950524185216287240571764240691609028822902356582664394895522809340323122417948279325917000671889141216342630589195339102297172408059212653969925208853815055005893809618153098683788618558435799887167863094775439879385073462418250637112749198685866876875911924889910683244765850284924390308854204985842098020912267211589906529019912551794701155182511954056343177153693164875600906673230647995772001798165134266984730173464352953747359611819243140750602529294146138565684313955796580324638359378276904370432057649707387794125653014784799903543710206253557375820345924115397052265801197707537401750379497670926530832007894995877944931250076099829027816746923287622183252960951086495218094054711016323516563873690030484843779109795263248470812456871886942099238163215856890170990026884205546291903254707551922373027694223913596825360358130328268444948539348417340317032852694633789316052671282234656155804395443262009189052251844612353345301027073251405501942352999446430801462172586275582775042021753161331189932072188591077763821380317529744923836236929374843096781909812213034890072667548176613968157779328119880987317563556794996206441852034705383366314739921245371911926752778600080108200601964911500785021698456334105079775654081344342460996695241161671759420717752952164792448796153850310602774036605927661340805308069042665359384968022579144005109808427071435662503977510645764492353705128071608933425633694564314445073372924080445969822354690542156608534092121855105910293691053231549983749174915061153509287101730709771456450587495527231234682190491766457691800900115572660155972883833370029937285256235464764047152993232242413121205173803214201613230260162898406952456129302946090289325726705017723455101357475523978691000256327486142992451162133396607116254149731611029623556407737636028617304458051829316434211540871461248300851540843123155700827171309354794439119817216217720410406070133545290834576231656994383114692444883220819008087264424432619178583477835898792769485233780470077728706326038376330095887520195154725509006623584339600010042042583495608882761999579760251982121654691168360042910873904756576112476249487723678532565653649194564542790609049337928323320012388811119806355317322302176760432268030739579041361350735850663483663560038942083386382729016499239557277211245947346691950581121698107041813193537484627336570490133985206245809550511377773809713813720757062319408896810415074044003224476631932016948377802487887063729289656050760870773447414359860078896490703419421434580683571238751129258005839767283259124941780056083834795606291300466011646756293784721726266940256425765735166139055179925329630499103130694436011046233483298762653250067430740257705118840943329317539498073543442753766582502268537682046707473266365845179035997514604913001752142187001408091991453776342707637300562091621724527065742529612365386772827012168587114927670478315508807688758642567762900359633394147002198975747747966270111108087836937182565338112989001771434861743527290710636046450570612085128027416157163031571680398485676143792126826526846304498245981995573953028439307407458484158988948921979019530454759931658651641466526198399922665831160647737421712487347004555256945837977191285302380758992136374307338755912577200471050989244255213606893629605743139230535262926957164025093800006572748610757194831141589851931982577078102616780123609755688399405670356648740894160603951755029808196842024758623876141279568591935383732858450578563161540780261057057822755065803419081626931700664870348617261672095109901437213507158856890231316733181998199946474392213098172347114625212371472502345824189077055344734303200858602602740950387654325316124109475342744412562549305223186367442336700394066668809406670168310632121950467156428975885919471540145359923606376718551698413947872501564664093816430821065393580132635532336758603097551821385975764020991126050840631197366682432292746537562247274294631489568551060883623736973539725570057879441414110919009049030611507359987293569800469675159032392297519701526962102932373100975404117102300413567660067018335403285991386890037084904985794344696394243725797712891279601560470704025362010136330796763407623413848248138494438922080860431754460408307434473586059672996761326048964277103026291105504636132638946070234796861049462363623465759676998550447138250550435636966894011297009319863954262053468633168295248751197426713220007728418842655841060752983740888969880079375937927374909851268278441214987005593570271987665409572182234235809491379228977594137393172254645027031151684471700384872730013700263037464780373139767478167084889502823158357849254607594737290047212458250323277795243020580210751561297651605132457418018237698930895563634252986974554640335308109876523916905264438474672005196738818453831927993521158197892183340181354786518771942273155057121094880753637755236084450873401275295146887047789588343476994103077874463851810229001492022577401951387967910678331913253185052963324706494145848086537573464288182800600481307167086879883798401932029144333988428406276530277816591509087062571895852659737815437824525870045076438251959137752385859464330819736713568917560884113958669564666890930713895096537398784490194869927568780877920748113546411459189964001907433468251205692165804132049631453945483707083817218999380689604884123982660279220598143174099097872694140793662409594693823933194473965363219542387459999496729752948597259281051195714790065873036239962367186425222268381944396265832386208583035696508263110513203933736074771568090344279323183897885732818003799211414645883052234043228908625264383572898320038377679328821409510184927315662132087761125699079923562028430048011655826974311335329660737155399490566779866937273941633547468867791469156882676441546676688475634290502405798843732724218126978718599615580559613140134567922594257112430388081262781602210054608524683431717925231853775941804252880097011202767522134114341889620856585629651760130616241696120456114984916833678948767039308843701015160814581048870284272212211860856523206071996884212552907010816577856861299503782165848344880598659249771660438025443077621290096440287102626270006558939341740143389891100513945492374290235850418360808673574674406472804992081656469021225969474018369742297803048572037741886642415043132476815507271035175304331832070410744650139940850682419551387956683547456132195399398648000567387158405591389265304650321165721924967121281924246158422091547258499576456002564454150540641648499639394165232406063272294921803270509561504243320933249330889095038848993535722371048402171341429936054554712015698790168195145095308101223701319185763205926182743785723426746672158104276879127923430983663895532497577884030432136220153192662614553328974412820815677494864048242958132550894739256200259626841250107376800807309860807598370999459188032330231943408856256294306542096213431552831545075814079124285165458106090841307604082600691197759655777400225039912706238113897606461295901946430609402489394079214329282399649940849757641986801879938737825497581170285062630160879733455025030546962266617649085625961907506403221899466985348333780270327108328667151294696200786873118201943157257888072046974172525568640096031627196489600746927098730558870039935340518207733186453485668853212986419309366532394187874760452983614497836451201539519636749974081282502306652272078402660440673712375329517554538219677888695643610888837280325928003398888591814084246710732905770346091069393075983660986912043336126117774262575434496954207234252268780040137237947306308191786135636597758692855229272400867997874023719117068175176653365111109221841271228595243790736713170178103209328913284741132525442170486203686453606444299655663479052631528379233588363269668073945122538205869734973063587346025105588847620496182103002823795889052183471780608252489626804360725032379521710432112981463008697132422876111188848586888926280469873694095909203923792576495623917572719919497769920627777185431101898327128268449245332576809972901031515369982744152440646617784675165256135121041983246179057084576522905487030088137522040594627319202316693347684360231577190932741999911408765734031293437795215899581823707709687861406860998231641890884704015692122263708162350238609479872795168521727570277401779637036890283702085992512318177874059100833410218680316622173312955739031905768460428997397294270456216563274664272195690847027049479172187148480047415575727968689596882319286664491885371071148770093743265732849663262920355388643057942406824398074916103081234513649080955633785690859098053898804812242558800112921701437075792810611353859406873120320054737573377130472460978104827251322704610684869395388699117581845162926432238522460893028203041828103125396550813420682302453447159539461346048513974136710314065974769978944447468098593708238466241583759300508837535428823961007864748463533756165048595687335596597191408110544792503430811828846396526313732380969386028556113896262653390298189758950357937176180116230534010080094504490900790906033129791290620981386210161294796904007911239108551553519829283758488864112070576040309638407356036433216356813599239261272536837555324978087762952695518295273389526649234173620739682915917938529468944717927900249940879055301589329134837689549999168855116001431343584570878749068707736451197448203582144489092903837368622592628844626399007240431869827447150525389465589891347229265782081742244896563515473112472134895828529662052441632556890500495343539322600603154873262711498589729390772446855471856745704891178405098289494964415381067935629174773589378745726368694275323640912537379724771196331744925243685046768413909870574965891165864765756851145089247057663287276405161984066265465283412099700587223766708497209251397805049645268727357257126414864166219360954099806019391398230657816074268177325342288565512897043922481454091330292441948457860636360835237943402994344339263970861195958163875406055500732108020674321137092763410088079886995670810279127373747801633234763960246163725124053194894836194226062951188754880245209540469123053694378392130792748725911408142845361310366422836166105247199218133485252245985336949093136662403839765794580230156922457602885578018905688272685211880953609967761910851513526464908053528966534905147706963476874039441251037456292278641751274033731559236179991586034151277144787434219924754512500699993457282415795271564590843184109476776353449642810320341651546299460500507218764385845209791762990361149779325726205107469079927396886958943611588537356643490695169300575707481496706802672628544235265188906782056364518401978365646556309499609744299372108769883908790666386623916200146309758879617499753681714881243409438349624176219826963952618889883238074863179136079665034967445801183751532550904918854671591363726481909661750621624655638462205043477841907241341284264081204220388928745791803564024699637167466887290906193868818733769771547018053469283588800650234579488239987724644105287580176368616766218239745204515824463267609145768719099750310333790919960427820072736051729362496503729492894161593598651200182493335225708824290950044882845100722107470114367296087712438792042917120591131530119973842429223385719705205645047387987508041232321884397440868086788805229360164424456996226215151752860850715312113178849659707806749593127821073209592732343665325763069928931936938950367213650625825865174226584780043886955710794724964179598362395757165422724308491256913028676915517243803313017312678159166225650798488006827196713770087797210324129162501485835929186846944660838906434491653916333273681124365467801387783662290108912082448458972304214083724896039027107204422652110141742832473859821160895005294901033133443948910666536126310826177075741001488671613332351055120665751052007310946155192749217948835499424627862580904766222288477222071426432879394671637635114225516257505298980677323707771424310601735861770634969109589885695699711389443688900695455340878725940683046875835049695003566987092833019373348625126904232010988558424214466212840679684618670127816021673005157532077854109136553394827643377668478624786166739963283842802563992162930671713860768172591245074369407497088759785241049548213986802721087893978864718632598040302949492774995049014646576159133862868619340340472013470316562729646219850299877481020454307212834337771279520189924327397457924425223960601133675371050595507086239909410134781948461608785195485048119681451347297667762840318654442736274571843224583344536922342272689419163971036594831768445944415551421865867763608019820388719605348284516454909093489272551293678432640082686131316276259762578703538078650479390769585590152551566251545715809051050834765025097821800119993177957385426937652438523936225169510310883994116977915536798808350355287147359699928085972618620285847789855655910527855731543915827158376580299404818594330488912553464788526216955483292157739822381095280348119632239699188125699028788414248875875472167104749156547212953415871177113983100434789773378359527421960461923846869401120843700101754563343811598819478779541726888197408274822694624770955833583760537724026440401103851019227038499536616077842563356883333978554809247032251552687652813695905298790391468407487756370303352623881880381716834400973992845888548430570992021817341204097082892140952118727388789622857088791092869796342202190662810522218654017909036076443855983217433153360290705515904480684901252560800587149254470631460938185897059162417464519856795092269809788287866787039597822029721589114866516096346799680060468935516134239340457240864456783318299383417752264812701953564622321874497222407282127663418150286016127522710913318857083771268950727758430055592988582179477854700856974040553219958990842327418666057551000002129303125595729555797791720567942269914669615304851474339851330540769958036892403265808523013318134421390518702037186786438675457978872573738817143544465120884047265020761266657677442554867827149383722385765906170315684881798680110253454911639380116936415574797266050764904109016809010251510708027105287809679315805192137139682028066739837274723658881956472114875542124092520034773687401876168119113476746691030836381926211593841112395128203900598724410632334754427630660109224521285394290259603264536502625467086247470790395835246890758202059313266531291288533035014309426132332785329315645284757091992121369885603238911257871175944578918999803006660064077041761227131954257765184215721217858010937198882216981288081195078156981339135255256861590083770129894561435616192628763393119470687262605163326666401612065533928223348107465006726154297894962629384174199973411955198638325476326662124658572157318275536184067862519809609596115130551689911754545712412321738893912071171531755610632578062962600596348694384349878111465744836953379396486301605029880380928805307359457419679744317682829417885397473691482277893911845495483219185019592523509756735791960093328965219343828218664520824515373852842270720395330921470970807776613536734106311755545482396299480987090816810602161176753938161598761807821168220705680769303884975717315241625121251826904582479652764294416368093054818421106978708749680437877943911548248063043276555982663684145197561526575140938499805755394900644329640425178177850852053701372352046911641778434565849674787764765932813081825639921405699854355406804192155989466878600567798723225441147664804154090488624759374495769456886491507352716420830468947077078976387133244288335497801897543649000447147658974762476697266943204309849040193747461190724084986864974668347323915012200450720065621380705881326346696962291806666821654117655097471159694783933144610419606561669416441933106729733433707468645940247969426717434230087669084822311357817090702893292874523886879322526852767874769415588321885808619598050271702042445355770864025834154395810157762228800295107881680886587965665250320103302313466379983143653483928824782436690814334640302419205493072096509411671132441471199463740877778827951941352241242884383625890537047365556714860591472091027387608083439158855969789167563310843836486304469719302096742192965918435803142900633844306359962866975047692358744452430909212171739581886337705207530442224931929819383421459145554616536450584037270608185803266154041387508600970583208027420503428511324361828982230337483333960462476326324445126150103173448893944580996629987998070750701426706089966432877783084798930035434675496400561768821076994087455375006493494946606460192173112163297481132708656226227415461017942726797722980609306257052212029381176718829511331968549195494041143407623129843159313194661698872929942287613540939998185335410944834821788703247182162888835010944050577008636222085703207237565696394303981959422252780104193307950235464752507507524545383920054923862434803348289839195123598081365119981295539252047560355020266775852103122075913953283749389934076845814774770784974021659505489682118802089492598758948927491073745571963992862014089815712572773710231711970975422961577273227972755525604282453319483396404972471758337766654208246271521098712606748075497236139349028285712640157001129737422753170003514385967862640210231182987804264747791437190152138297434669329657649030686782652921472415198757038215765602524420362776828326672751055760441951234252042520365800999372335010083236613679878965533381655198825951109911818594966382279902955286256159349700891684731794720302591982475829429225271943527353809911529981173252146382247550454941742925701950775767552372248869913258222445365948195896598857152800705466127708745067327782111808756401284363000293604488744379963465518016224555764768855538940339685916605580306459802754181141302150711782875839659136741794128429134699740674310482559042806778351873385668651152899102215464615099135473648086354612597270373922272264225679841811010809809618617622673012411467157129708279062146175842794502868063226620858995747330173533059442279704031881366547327281790452446090819123211826541728924989571305817423160747269062777450235358945901799549331645074383043905092019520556230003663177453440602629587481711765082934712176640315582494569895274791107109801713710821250523840788042908608026424789215516543173866714431785960447435984521564802064992860288128591937028878562686286782087735402394333486359214648896546154581144990771508412437541435620810313877309403171392282775719251619322450293056855101182066747939899499155536069404413098104820368390416078818636001179857218828890896036998032995023851082853902224942339273288752332870221461085164438077347091052486705048039849383114749578640795257121583309290049199969613002941234360993242333971514192838484620995805560001172804877014804046803481459328655374587016378421249949196597366619516464184936982329861620284994478135403066832385522358305802574480736196497605457891377406497934472915245953798808738883339705979346284256021094875621353945578681107260890010506082486572538707070050076153048044439370704104369179545480469330966516420019418567242331193140189871102495723423800802840324671282809221139423666351173045928784708749617815690070630721343696160761514504114640151741099498976588311235221393762929350354027559024913220882212022137007055511068404942484315512162517207923356243892865209469731995869950809657353917838544150445724782245770928935254371712874908110430827603551111567108993714121480089444792980754754976489702923145391694235340581540927330089015985840781005884663473526861268246407369535549300336582191261931807491845581684125711498520110946755212728316390326548883982336582665497126083974136259107405114014312942911452487130636626447924930422366638984827237640714012749949552747636865398133123696545686548671253050421668638231313887770041827139800695417008882935583571002608484179625828733279353332361412614819577826169166131905307789737864275583736652648535571918799679294946494045183563315554904126525452139626677289820419492006223595523311963216729006069346600452751174776868711341704260140086757026223437597523599987095207547634988577835530918982387757683153123913843769157788162383994022595182308451399623478295216697042896303019916168404798475803395203712083551241991918961464544183399690103691943515657006939319088189958521020047354974806178940732923077278830931438687573829643166372717502636562056550133931646051642643732704709500431996610938605173728509667698418162129620731007979990841601461326051190671599617873890734252427932235154030001591492292218311881748710320627851675298459822283667444893911487994254266530420379117776408008004917336876967668178498168779047865112231253163803850857021962400621691528974094499059642702416197721457913499849951850473889098035888572823673580474249706977797715278662263537375255278028587393957737159771897786767196747365840521763458353077164623570827520151494214211914370142164450717388813593982207175843397326622269362596016000128047914041240381735249636813879931436575011878024213310822861494954544339570011498262076002524100673130862179554198047770266911788312446391248242118833187982820470635922873664802428708511239818918485167005434435567509406443951535378244918012613252032044468443300788360521683637074033080517528990375127774180659978631533728477305689867696711323559879168468205494652950669409288289006724247552228696835642765614874497125285406273510061118269224241615650517730800622870884171221056109699708167522222894028252924666038140140205195786298137373963766760373405984153348232430091639095923108554768926850147716967357098081660533718649945619122252524038405844344925931446579168699560530006893516607373684839260056078555893207600878303841212546714958073007041837609017367181207582193387935739127893659103051184614494046735892694515480738217130862401396179094551660719810888252271285392404555021864009211058446261638623376770149770367899233792569041763363942971171400513973336021752457746971934012774608537471526281766122382618925153408297762788983761674680171889299909674173640143188284617236168629561941351807982846835273869661865075924805904361643521209424513361920176592196549324788081880661170477864550531453669405678502920926975705140522209994990485989347265303394984639597881025076407771454306167940222336332215238627622851979097334117674193111244595521894435159859247348781637992505745758634115127180418849972874657320202870200401153088143930229921485301182340573666573186026533254708634273446759083125119789418572476897132031156430199380818091616891340785447788306410873261515691932322884172162642252592358705027072837006701483800426635142878387787902585824055995914900473569516008238275369113674397932574223247981987046672891979183756962656830965380348642750823326416619168048174796528569643570440167863939399445375791535623950483056280834159877008244387009897310710279216892144330812188402913455266632761840893867624797851197830705777403747872680142054872804346010899103082048384493804112453072471602774880537085130503488167370565145868258639540346139584421841339960345414669721164371077606983174189570494181773181768734857410273763125469903048317574215518094718870551751106867599947378717021097281457007542072594239084408719862054993505469549225149936850721459986262111662851048263267266547141339576050919847034017361402288613484133727635252201638365327919505704023379095057596240042859839725766127956497998192091217287547047165665345390618635316164259514799206449515113148221143962904230932040552437499069032679730980169863755379723757585396437927846916027700150226594005682197343366266806234955991248538791864195302255143386327420346993322073662931279502329634356829978314278796721153613533816681736813546407007888374426741520448437495338163266626124375645151593579559965972333712380495810543510695709320241251237983808885565437930645569090334347116940170803529604432206969473664765712865725787033605766970665180784092663422890850333132356359732851460206254158161866124424171237340353498483189353242744534894083606500678086605616833021651187593080596486248173982383208612717372758280637779771979564969227414703477141945647372815114909197320224949839794227211925742192743528140732325484722377240962959129876215797611002693123326108947492896290118128681276961287558666625563755236423821952283713298124323920578893511555922507814084934047156350034119495123828339242886485610343158769633105337563309926364842039304570832606571526933811257145858860756664350960151236877839087179439750260957410201053506569896124455810380381832044640189374913107788553950155593236506013966760118011327734254092825508334408516953016824488423364095088075038054760387686085588119601735309691789970810816194296702487456024093052251153738933613583840032479085900217407876019214050146472357577640956583740095845002460227081102399850973581446727640871513475946520535970642456836597115538848159623977674167432702080024273789709857897221482879655522960103624100999824971692823924341161327288095397586036797263105094116686750566245076857695064085684315750283586831230303337185813284559899078716971901797291768502962591112420191252176707575741582543474988887142045012469040485239812889214534695117743335983235488311540734228261422003086422307227796746374992677268104897751803258325936306694567570123544497164392982948784056323580893532887145949058463382226634141023282176546768347381903630374680850604582094655590855664416012855405026892496593453706240109697388090088008318436616107864535575034343848526248876522021402624631856956106819636009526424317563206966181703349764814332203237116272754316604427304780004846241783391642325871272835294266496831878629464410780814133740797304937112470033211660669190884527373278113415317128950166720452288937105071864751731682885057213051448947990688514878802778076363206127276884442064973339579313928575378174150247897923657379744763721036131134009502207873411077556340250493952628452082196113504432585662464404442264290068203068604042048754388975064300932815226489177081863301928480641312415225782940258381484502021225504715565450991264273222594291429964924566135452128402489319925961109018838724433823287375498820549634278709833005844612625468035929590023940543198931538103414457897228920318806829353443186061251412761600774662234862998266085909286466768263979552847910871122256766614298714455474335465059450140577989085629559246515120609224268784021575343168747089942012250252046017479592459413603705190470262468970980248017281868858865383889889747115095943085605698442609881231291610161669488241124903806086756887096235265207007100658991363918962563037688157091665878101253131339400561859298703642600783361666870265430761153883743941275602553102884822024506964517301318215158849663789787903486338603236620071091810586473516760109567437881417545063384324636045538085280787937054786726365856567064084345214652191796786768948214664067480011127723076920538013043057987499971809677716470681767996688407212581511141159918702107489300471009410410044322547950713586566413046003757868453619344809415040394364667810122320210408633817319334936770071226060858303809311729797516708186798622562658852887076070408121923247639519942720227664284235130887039776505778094383728947924905959418925653319124885033217507214526458374332129037684579240476372607482837383693052540967031621848604623212147443839619118516698925408965477807081520284565593914193281349253972550290798202231136953517325288005048658546716677605350614656915801141312349170212199049359440721194321985021208307630660046461092638216812395421644887774886339026981231506761091740865132998045124523527723685556348027288172356340835021924069398591427635632572760902749432472926967925378610880341935321307600607394821234108173791401916781677310739749598837923598056694202880094231631168190364197057444471302316901843129568449650061295526027295996366583160159561079448909550117766552689679348097812568313094927432311713581273515568504018922314772847705612375277146738626072758848078087504873247883002103502929283507052581158752079798633689312946504677563543378667256819280708604741914057028939559964023819902847032513508063550385481372107636629396811613699108433656338154475872306396688271203300435317345130536270966919192283895540076519750259660240456962655029583532202678857432310242350434494133726447133255952060047163305069040264849811992498746227852016880641279710196797576265741974101281501536403252636589175936271897857124705089489391379257723330922353621778239031755705356564087619405200082523708184383037647570268040994112058050714169096241836798774444469646970781412768071691370144894681661844754945674303667290724738543061195215835192113192487628002863865157757567293987501015242613273164822591166690463549802742000138084110498178722806079955491433620826300675082065517957720515470137443950491302788100380802646197554074895414561885528358293210404946388504253129426585863540651582438629870552882616543760035703715830463600708263591466573513984852795966346022920605686701215731823796646429828266288836514633338457626137978265833068767563826047715632599846969920558399769157075278251784771061550846573721225753175111019210610108234585897051171445694996092878453861486300808887953205589361711606689906256592372532108562466319095475260061244836338892685165910595479573144030633516313891893174825566148859015936532103353669440286981104795132397723878834020956029517480678424934647252339678018385473727764004941444529897479732761806735704950109091185518783233923893019215541772530102139083570657299189926879884432222614784951458643867894046088078676571081609457741257127890936842193662410846230990145685324827587901164262103022440174096216990507850713051942754899781419955039014613563351943805553481788510279287583922995995310695112206341751402303829888915981698596594296976159065323786452992570657365218245991418563264989336911992735339032251304337380980329208546922816413980782865956040623399124369610826250307589223239283972927581893945604445777917750137761229262079393705860296764583322399480460613900748375423958095759948537946356232125050123063886436117353476856947466631707638057638717381244158921757569224456038921594549077749080989139178444588771763753935182014674603332017713420784724302468185265389937297538579124801751215177852412724944678043923077492441382364202539068795592364311145250679055026903620218780030302348047719929513281422273434290203745230082911034033199252229143807631655444238007525651679247219159053386523332972103927477412602212356496239580197593143440485095467289464756974454551088180913603148839634708820382577728090535027507115731713869835545818318464330590878800457848057333465356309771251118173953988527281529454790658268148149692052208330828222238078835274533437303816122886868259807498210869378531466079155442154387500504553762922022481707445581988589280868981070817895294497696801075019328984434390447616431917764734438701448674456501355463973963816869757444250056178492702593623772608548126978107044418500486452010916210726581874256741318535902317982530532648531051451105205427648586360142267229765966895199516865620051902131207674108969771930669496904130653460558352441900389584948441679679916195926112741060372432925845025841957094950398017186530639662127212681420736928042756593869472424724932464506358485977367222155104799689859229325794597136990196398509228863413289329630279826636942287218972793887776202742478103260053710298664746539901136927669455432577038689551247272519872442720586403630878706987860006297581941692250233749362227068409750334901986603768672707920905236885210725031137981755131587450406495356603534744371367653743862790005981008135809129267432316096547575623022476825670395912066908104307660630856370190545956223466793599414562390290812402450732321783216834238921635180837498985756760630574845471363852322524549075517686558935392435511457777587388214344921731293537468062134572027925914298015491005942512289676789323068686598728663916574938061443588162887047164635221322260530483846399976990707667717842186631650080357024125510288720447908162633247789151032193488097461110773331393141616126937348243061321560166028886971909654971122157823296376895115333168774449891234159563745935068256036363018728917187437520272475924653352562657099742870629215610401712066030860159181352557205265262540456865373501969970151789500314035365625324049191333294107869665923301716891136203020750078386706814021162038634038326797213128485892248522585683776000991291982063473116032562674886783514817536247729004710557085708820978020881805182184368427814305808493284850508033619980876094082617643102271728968263614472498015196945745612009005813444394747859857583042821699123033244059448427811037535047564339392309022932557176127691034091475647005670705292964412083689463517658525100250683051251441922104987445569617840345885174853505451981369755821383863760266312986367013816084717384023070510135139166876467056465236075657665131318386484070260299215378491924959293882871420550530868862078410621861656535849417626538954901655006154574139241028296976766992678432338785448810275247647739691707943198631084784931654010053058947569783511217734299276022631360562008062342212975030788398521114726962956354170431478757073221875274866191187849400353822898098384251417031061985486290716835959101773953442582552182415552890270170377701963291408646913125081289060722135030324155041824583742262165289369942606958988248394967896009965764339414628191446165695820794771578351609811887460104882436441166185377118872196207394646170541773370286839846064444664972904750287533707757841037116890759492724528725258639316215523633552066089013577581755803760462184716379854113460518391957311216253839504012746042712750221118277049945428898682523217277469704178081384688699263157333216105766698115047181279005969019804196515151013571472773924764959403858098477589111404113438005121657338846289816814031593551370161802465288614260476803961803411889266223650992611622517118110313916297704790850671012103088867116855510762656060561301718247983323286026947502588507058616851253862326623175271499474994267760024232168079021958042139758342234326973402080975870224569488067101756823663891086912567871281212871518425924530739136484619564408569614774109146170789529978202859592766006429734711593279749132655131799844640484387499748906996055180125396553076564693800029845431434115929105452543942667030285824069709370641897703101367883359918698294025701499228285946964778714121894125106334392886663489966547434143781334206486871148116306999109808497165896604753214436056664065887265174203455639019500537345323618413821670962937585750044731325081040347412433979284128842621052272319009568870342993314120002476463396780651460730960708356037003195868594669434171862772964708951249664857899862840101219154716918004179899806774064643459139498183049590333853542150718548801763615829309922899683411835342329938911560285113901221157290566102388195806734638025869685525197978006366121071355837257722038228451316147047635829480337332389426844386206080359126386376451399689740884639874312201129236320529174823852291406141950270688916744110415042715923126649209425087923165240925071478956468468315865841970234757469707332717200706408538840963553528996851640015113483290363963962801720396200055507015836161207108175827875521190414063604466118478019334840298532577483414569949589590558148627624970865124037197310390368836023271420514155148161314968710667441107345590326867218740941604553611022613169767074149853495599643996904661109992548975300914462312391745829826431744829703204641576086563167920563309117471310408680782184661393600599808465774233422453986339409366259737535719745574993964182608291544959459262671516823479374053502210028160622286105999953379054106170301213149483768468779833418354876556567691995068148175448455979522183617980554398115097600732226455422207806035133249749644754401207792165128542336021463606663485521327078973190984198307717856382493971543162931774495028813646304605288274479751697100388161164475713688861165470477514315072791447862383609071128788849344645570628516765001937940992702242023806249309918922952295354655791296931708146824333183080140116474995881226189066540818889661896016736866386113713865417629519916645969052561914208434435964373569479173880742921034077999962587033932037555964995478042012569409510770519114463356569937954859982097258339645410773244774186179851525301382509965767731209979108758831444194199935167460908084964131418448344973407631652460366701608194761537214426998770146960932488196305147127283132107744662768372305691298889706866984230687529900256421377757669878273716818793577256249161950335611737216165089321269664210296152265948669647241879200634540280295695930583317521241914061426764461546412506345493444755621040217253971873856677947365999464572857008066495434231931621814904903072811884404715053621143464057097209096393708411511137509209268704413854050214161208892117799144533729762541408917795058798125124630866582918244127533348668197861588904663626158460662463808607018681587257471945764007771405289830063055275321684144950496362815080611851067433434454042118597044962697758521224423644936585434034104879981024373914429347290544922894318567457847000167224647936584412034025997489119444900845005596996115599129384989046169702126954785474339559956516653903082768551839373241731586062475500219140701219836103908045697007018155783711147198694492635437695130747654241033916758085482234121299614712654805311399355585281249849489863719533967923747542800271564065931920542168348441954833514394790091810144469698170605879262680828092459153287535557390954792557221826176355450173231712568139202120818828899543927213446186691731674445403411382650075300741630384293593938916143396569528957707653989956331096891163183679341911336507067599358956805296919256317382407558244735878368562320735908734140133103989368633722510139222406598304408292184915521399731329864490428226803981319559677157688390411958967579236657944733612028383005499929934377378907233260400695237130006111795827728216895021122457409625444052203603519363838701073835576434549440789346806375187436001860657198994099410516898548480707289386833622987048421289861877570878471162997371960992210080105847553617570622697341342960967615500626621708912235222634046306352307976857990749234074276915605912117661984761835062758919638355801223990617082595961561459401716887978445297526044725918922401007147062456709422508261999555132535157131742732297999401567831710623611685280291191965525219371927407414959910962469764656365881614858215730621066988646786491690655807223015899887443184442724481668930533978087114527111265463947736245075657221325381058349457566773034831026035187084376173158007463921916675552826924583017631232248541278953220009060886065221187308303177047081480799460062440149811070472944475917914604966161321490405992579725050951535111735074720201135919310505620228237985895978067525526048650635676469572074714551374822112398130889344044064550649576296835487926892410384354987740946561398679547304240567157271732135832141041020436407294632696289387649003536031954396904650274977004924443168513367653638494140122187906501511062276374501009466399157796672636716079558856660529358153086763428509390647479015327036363297602943166426577780019575854382474564981423191971457879109417889044571102260371239641819027351995196343729433632002258366462711752619411195795724008768524400544325416886571995689346782938754997355896752138098432786395523270821507326589255932041888576905028980901870727843188120044148676766324396246751408429086476762731966431741549520737079408678949114074135921983660153242482875321789450099603037436146263781948688409372417044667258678785735285070304750999783826561185034545714142459953475535576861040094656981501212755865601266584293584682876140493145144966623660115476266525119535196419637203128055556274070314113707839037723467641272552062665745159123010919360175076617962166562193134394712525587492254773874404309312177933420004098076100505997124902432615953513531995698722912675702045989080925785279802814577382977218016360354323178397882904838853009127443275486299362351015382919096996337807884351215491234865235326697116690122904227695222650774723329248246019715881335799538369494061935923253460390728420592189113685972191599176718418390950887845610470530185772001191725174790350808208266544235828997936060418707642366338117452276445715324312991971752543184133815784653122628961218151836165096402185310206212051398152821435519952794030751324874834363364887078207282730675304138366403708030480735209604101970809125429023374540304007622051508185606569552672042753544072477027877693263006572460506003150278910447599517205323760856330516435640412595681307444039929104070921675551901645933094661173422344134474739692551621572504304215443549547718696515262825102469779554369494764584798843703237749898977959252131497000993184426374841334529576075078207513364476569578543690428780768922069320276599441975755667530946991515396777439245583466970795010879304639930620582782835884697733947474514188640890667534600111746486059035712324669162846411111863376165432894624026192463113310823509953064365380974767098440921051436919847119324234164007887036003806971321721526157444678050551917338865472417752186475979519356187217936189937163333015886438156442249142136446135865734189222959849953879154231755892724367616626741528864745997863116178762531777833523810470322920528666127334239725639659897490484873578455054360893623107288482501005826641694123048123605992379855620802241033045807434886958846636293735102435543613278331818461373383820278471457430336557743003295516604346021569726047915373766935803100968514513707877725376945716505578720327373234959135249677162178910067943210006376858595456825980865993790350289751957041502949804592124871072442603718396327385677539888721395976700990263588319961499633860701274974640094958328237224341206479302726692880866041791404682275591846126859596830240965423475004501631456926836050446303243781761960515642335147096482057602835283717966519740947541704937136063466245496764199915770579270942664643361594645753653643273314793991331493681633818808455034812631882656132539933472481728238573486789447884254502716414213016808720377262228126397129541170476745461584525021065997039452036814110467251934250203078855226635161730344367869089003473750787835914331779775020739072078960466699212951078142653342955765623900001391948041671020373521848144951348155129565351015195148373430084161388553907367876746849288966191700423543998645787012940576964630115077109317657725080885473860020609653525192902133100224937342180241605614961464099199825209362608382023791953481225023299065150353385590216896788728608034069677044716236963586587336152189884481839241791507750270265631663320561894416162627193390443246261383629906351985626346351635795772715417234829221461818154133933704946459713103604926491050191393865976453252408025198963139899095363902645312194197358901822598003199340127262407087037076076541485426879260150762318953825336269479145906951822838546275179753854028535082438835278060402182412741191797042154272299955954355305613828653707732443123180937619665946580260535449624846916155158367895469786303648243372152374171453722371906147103726414506652271535114247702742953767749216463948152152747445614168357864922957250798832162931512557318084189542525533147761177504006462172199483121989229472213949536569723396600428747184076440720706807251984745290549921409003566722829560232957167400349484112637716670513295614378077684189681897197673976501828861391647637936556907667619365140286249668003985246292164213396161659923942308100376768564660565939665120018728526790669868309181063160673138720703138782685437987781121350900050186661722032634256626317876063232838481809910016467695431741193561361738938231969757132755104024267657366753208044290612236671426334236691902490668042124667121828665337160340715397727091650405503258942808927120154357449920014903713652924585206147505461108030612269064566836337107274039438539640320605995569814944865482371278058415556055513605227480029354199368552382638741684270138259173635547566437236546537214353036057118383224205033776830084388913596475329972566586970301493267419491010813331007392818907919604084465805032949214961567805389212755385834770013764231445474623882065208135439093127863719129991301954209537444210549589385394588438226566863608591609894512279047476665618498603683387005717460708496789935184063729234140358935614238384529197801882260795137800130634892180971872362228180218466200180243022907736784807837217405063758885670867305107284369284217447401618814967567690671947888788570836092075220425813235486988239822955345261434777600957931875208050025241288779894414810740501781348226964241992574341876119852485383593510060593058775736560866904585405848114162338681117779365402668898866493477752245711971372578831874510938969758490358458654049917739139490366395290122428721029464119478583431997293322921061864148127715549829943522322365945970977832257315958548893334618448927751852891029683409006522164626968100327265265616761181554349798955780460101620960561229372430816647506688891667260330265922697292728730200217291345595343916298628124240576198468475944972580321377759711969122604826913350042364408183826585459834917153042608785121215379821568096578781146734810300869063023746535719796746598246588069148368366051570979323840503143266735521500456687371854459808593080808317793825316160790856734418357758831301883688379088800443953827006717467945697150748016098124185789812577608756774884810838774768648034443630867139674831698819217323847885093547698280303531706887337975144104317720854314219085335244051877356770478880427876847032782904962039703174426236072157272125750129317024218681110280279939738517518086571045918530521107347238553238609361240918149852827680222237872651604548126504293800874004207813614528766376088131973909381156296014441398931678790820606027385480502923127412686167464751654312632487378944647259929034759171436809872549924750207635796250931313599331226326215605817489361361817520944083856716367319779327141773937711491442213354340807151201939536033205317933422324920097790643103537347152673400376348518975520470092578886868775636725528406269972915804749375309733281328548540417205182067073012217950126881017482298832269584336729073401368592598445266579400977191590123204128091154112111625139350814249342639180073183807187753861919800296165786712914311949672418947702106991225182627193830748129240823940956221914170261189159590361387912496937095808858705643801243152425656808432918258797251576101058447029826109915875660029746237082978282212695326528620895186065859193942949305917441696974490271457880682368277063912492722000727518698515979115605099166782034510692344028479619476726132696805868577929569998478802205188003057464456533559630365138158185996928622163847912785790163382962801948733997709123414907910103087581030468207842470803737472759629144477520537004145777041525321736764610579978678942283715802879296915447268140510972794400491190793683948926577314871879138479782896207920768717789017597466361961444180889557951843214218436496549076510141831496993237754293731336209851380693460450245027244106549478408784571197636758916439496038962986954326129015148481848927720311871233824318796612050551942400504531164210667166285526029963440280681242009117949402553199964989646130646042930615491594824515120839201286405459350243153265859209270582622746132644960930388974438891128705060865620506594095568149280447997426857141717801025406948847582603480606950999851634299545784977126851403098242243454595567584161496265810619251778152235132764039634526955778263134814328350225610279471040151536821535239471856962936884177173465455983747646402997622130295433292557456070948339432309237083839592166975223729921858875806564122912247774673352066817897581706111465355295689783947565337149741040799286604384142940739103138056434546610197449942301677203147878542397171807970472394220691752767280826018757239965011199988400322529446053780188725935203882902319726997925102372145093869852781913682080391226386155292405134635277071405989015870811946424968976934823778616328646754070306311224743440542264605979713296312130223634150540023013440450465042496284953432743125481342955406843451037466144786389310976036960170780674617369564578958898753849395517663644110014883580270076203864105203599413809220904527270027247173000578135804401582229609113389191067856644206855725942241544776401378241739150649702467279149601170292941179751821481800801749116137274193769512546594925840075667124781364468161623018858219098624827646760867931928435664476727157728519578450504347582765633104230981868659694284997986317703632542198850392610590700439039958189559233022063699392843261072116282517636877742537155574462015277978012418499331535734206761894870545516058960971826270549330317548249424837177025629498601602654426629610186785229905780051230697005606379340460815570375482701245084015087803637378328833622700854585498172338991596815856040788555691343193901550673186416054829309751794651265828775032040670160852253903182448904823068336972092714017059414387318179301718432371719186372848933713576542667870035535608259853154675607430282954304892106442478869748557465907618781242534811332663752991711019705635957015620573641657176103404102916180886733246377891172660187345489815627686704237996905603600272390392514209515334798637941856486350921627777808606450571882502634159075944245106857699363134587889859714032647552523401076399123885451515383719716753274397123093875265902625552520016444761522401203151532992978560222381291394409743969739848910643071781464853691358634011076174802109035813008094735618238590355080649084902625059863358181293159591374909153859742923040661456107329253563686570482590279625633896799776373318837117650481793784745071224616766275791947819856902164528391583832490524887632718817983265445061316718438806855423731978637586252160821880455301803863419342133112491931848678086073734249635992701579761857822123056308611925201651860492650810529874666237398876127624299197934730660638452227666173682224581884315498477166847276746652160037539429619154219935096383451187698955355543843094707255845184088670165348277373460852972866780195354481249909890590341317840512897554132772787622454167424099607775558265184329660805584811847776385529235452729143688879470997715502440680600508834217981940072144580105941390527899021090716939813371653041075936284102800998101633465179399515116313937536998914432353042046047697689504227412280197464930042370544242231757268324633627815474050433613512020566988458820370405370869350065360269092246002049596968231388449012012544297644049450217804863143699712336402945668597240138862722215871291707757092760138142268490126343537326455029912667063793542108531892036785606372223981042904391523728071778644140382679038275501488470650990618753501239329134450265827571572622447194106177245101389416299586428570577662193218458320687017034085222166083409637940943104832231255359563346568791330923568885289224879234166212936826817370838392267951275524618158273450112910654253200531441222256509278269122490406218507062180725513510474887818966936282454007927755310592378680586204728264292616765060663301334242678417632172646404549625265197239121069477527345853520447690679475848226028587500482501369476992132744811894505570285117175964697020000245819008403427642627030540076058548291007149645457849129983261652866469096492545473912387892209222659153173346557990858294771613712438906833350914056034716138352035187002586515597973007666502737088757185660038851646258796550046788109306805982955801852041035221713896832243596866574726601361138441304889385397150780302974129921212253547578037812590759778002080904344030227880851902108635744638110445696688511425786763116382734318592706861575287866177788858042519190726947971338438648121612230295224937037594017066162894923039153188434082288361907378467560290804287849518115454409807501293374083648441869751675590866668639178167586889948294846743557097444587261560553209844296782991808803709226816087678432330286932008328879049996054567681720688375561897180562855955695181683251529510378542058287325915370548336882267677463666479401259565905275175214166900838782699093196153394117911584544211952923812196233606287100215218307783309351608063096140185843571900598598798746726946591637380723925415281691584577271824523317914818883152377561777417336023194026873038242034218386831966089752915299981173185753700458045097131955893334625044248332475176074829478389507595351676591440189958978483899404224970187371490332708291086682602137342588963806764805461707838205874008827866112351460561931304053032053710812918274468403775404631523020017585074751980094575515367263936986069094626127107699216488098636016370182830293181138563803972562964296507013998891531838763088759933970954788663508066334195495616188369158936774533796508529756198886485430895613311294047739669891460009008172852460488749394792042167502740367711537797188102335174336561126229912109064624401290328440096891966709515277523494440100523262630214787197946753978553076788230524995915400155758650260661137049520222408467440879056499937777001936369829751857583936775027470415273730465353138527486159358831883591963039980881282035594252888578938007085324573459889280266869519944691980175400991665390134162970492617341565309214847707721969215100139514826048681466183330348381462422097231046777916960918242799094495792155365110811997123808015414615497740958813253803561926257642055337971011147252823968770972691893454074289850720229817448488290705533209795365807415279252602633562160086344914437063419139416962856787328063426652145797306430300807797992441735293498156901166289862843349687935333225740186194417689101288547728204402184144026231511699044639359368998703608239007986035773852660360499753468506239096240330531976112289811341376248879205501603407824629742316053011740712802191754964285274816383342829846762660555551034783320364731264576726119631442948250825694615004380715450644642135055256071765432098863614425865494939495411949655420237814345393408157881054637648314993337488611903500485078299042078814952271094854235130395089787181997137333726525246852434509225497106730744224973084677378067545701432442673085263323660442200279231989328041868657544272377255525385636855893276314372085845712929988235957900036579127580092714842318938534621134011398363814065151277810425891851961436518517437724379118796678117541069763521177463407662668112219056042764323238831086080665434944807960969657727549754039396025340602504335408829758585290109875844935650565009160292132507129065539629501042667021384424422389433204373808253911557265220503296970052076243590848253379750365044516034157353860606305280636098164726299265945804679975726955284836659927471843268120561945676890936803435919048583850330251993112645636312043051959840426411203933646149375057661488882224581236921032560726972994683330139265935252514887528499355081069978658546360185219520336779922435212426205947299351874928171177035436919291567959399519654907508662464436836070678499399866974803311255330260465838455127633234842907631825580876716340375225578549979638976745329745448873012746099525955098684627128886540015233447821866945860222753666543031410844155819196522317861983558231631315015288508083855842821308637092873244329766260786957084622042182094370591910114444968031040542153458678014840161135786271247311348960851736230665591172984001292175503071912236683690123330954884563571876297971710924472030516499713139647576527751834832224740867522521109925951639384365311642262975150538298930546973399209553302810267171937746951143747035507033997566753069799036863750214224054296848059133404654783649187023744818798771229513982092733569992221597300079310246855475783153108472452983313926671339322888608518788779008932627260223889147620773070488034106533370863244682041989850793437330632567728469888764622268930358167803004919945694371061942114844558016373681018301207070284709704098563255627288999231760335793121672880791755076306876106069382532444132005923375037319503304251695170125019661312684824011466584435162246739232619757623874301700605485325474638455469504877984078509998675431046772875322592170379733011571323415335301969998011531408606096644722551040668339812916135499259892473223447444030398691428122264509197271593897018087968503840151409154407772976475030315055347562873795752779426257928902791844957306626129436710885221071962256003206852254638965782861318779816032428713877638220170002106081163489157428039796902824757471720139864883566526656368638831493652497709170119386309185755059226685924130266781578442272544470360138675354613093489188666431584172310756824040106397841849465394670647565256864818531301954467670978106679177019440344108886079863524074322453653570757059208715011834702270943111043449535274959690170912498600508234064107074598607510035783571731471242370439862456902413948048241552953965862992500863403162306223144969166106283071294966196971677796220891817661765526016047719158001103937372563537229143096765836887594561983647311597801700647100107785738360648946796862870473379787945510207478649351450832068583665790754069353837138780701792887654771633883892511124347338509850812215950689064832051579830813705503899113138492179844286446141663771338526554356185607507702557583543244678169014839047286526233678095580256556051546430347423473224416353368312958876632627221122378441721333214878612667808669402374400226994408801220233324849958173558717415983249605992002605676347293366127721411444902012402295385062177955481174892469335232693318689489725910229584145449132629861754649591108317372447000194504190300250763651968079185852539654138220588870720087915137000509753372070386180624996943905381581688269660521587916667826052186201692346121622053206208871955057448828181468284109017543074991379522018617688642381597945786350640356946821487815919279213634039915631542611038534590305942775373354867713298769906227805128850700466944873708308399231683535881493142462322239055445569336471809157236609204214510469573720464066217302148289439835304746377493401487811267895184671628811483703288984584194632277628440630791684798132240568101316139556942043984733130607542745983883244605769632053330751889701071021408332176079061869993712203288259997427091217150521520570538379422653880999532884712562847361081154057974727975203680020687078446703848178186240844182728653784108158083460387056895117221779230405580285043885365027941677105510474328148365012847819725125199701311225582791145872729216902224012270938142545697645274138587840835703969425463601525176031444818270936101875442968093666321860554798035148012182173348381652359197054081469891034947245040253474237437448954890009412332822396252239119961217883145751940290017496806940414985889157149778383551020045296397683376632164669338421167682253407387096011175924358405942066219738274291820685953489625540763387463792201079043453023095801732161832643923170635860113776054441993418137903373838783028165117925043408591264272411451526849064500593531159767426922474492016689835916813932815083179105130199083920558421125483749061166019008570272167114143108889316537706611125906989842222392358622436939862912762820109668987117946547167061003560736049536495206527815310289135848395306613222372838228786580989777580356851499707863458547282684683646791044049007660410136058675439867304504586448258045153283936994490019934837406292499066244901427612467165097284096944372022549084869042869258023021183633787925883049686200109337186738455220589996335721340475370177235593658386934439673860357396117413753565015752860763458218676710106167868277074588922912105328450626619407067715787625581846321707631204742039074577740137936808352420357781288013687848119476094351048103205569884648165983612174693780887963895519765551439993709268454226726152521100698334381658792767738500821398197343559191993383128886379165434687760050364233059567397613453645585836924640386098451495531648707657500692981631098492036319661521182551130251308178982378798759468640068023204716760317611299116940155865006329355833255362707396485301836240968655586511293355753897961249440710266878230526901247250344157528376928824674809594619995562004629051595169471940570728142843809884878689092229725597345912435713505846185878387493873602908513279530999569339034237639677277647231779110753461454545905198647881875794785169105924323774824810455248944228971625602896021109029178030730315562041406308470909890669132602700353379862834656385580869282567675432004662356737520876779366008251651297324962821166279822198251718337594719932675735656306848779936716202498317206502550288127549364043691529114944347519826331690827496905409385617792704316585733690797525865437531666103759696864320869880491463946125805084912303702622483465622755952291411594569227110417260143569952260775010762000235575320999344499170161976390931475583981548440057941507084353198051173145843090913930171531951684829341818860943378109465632548632727217778256417588008551237180016693096783041982296388936574507503761499764369624835365917799381032480951181869616860640342184818532128417583967110975024788839059389986656169860466630972315020566395982120326819473311320371916568839105748490657172399107316866775600522494491235077474589200941553387628850183632653483809204730865512655869334936761435957102896331574482538606919317451735615746998609990831973079351591680302850188697261218441726957218785140454421371352495318838980735210673717350042479145183039168415214952207727664344233105829401158034689993764211905691431509613908359527716958019211445421690603380858475645413618758390129137346571583873978159415158348403980001981215966360927588845895884393131633857605291441525406638773552608464667648191070441411981045949518346031066260003206092603117015583224231828106044266213269718682444459739441226472255903024973669431022565512508851877424300169034016060947842920717815502848274808109835740651996057150291219234868820153593847746923128419913466743920314345409128714075796184770603355033004442795741920453159802669498381483245393196237248164420426141007780039671065753109907535718257821429071293071995028549192390253369230842651785936915749356422954915645267216882116025908070024057358883814631398155366202470367459110343480990410070416880575971630422279586033560556301903124040094440616940047399120012904203024876692816504826447591335077665441378388084632869961182926389925220259849210408223995553759041537766822490743568164782060760248950581414660788538822927135454205472625331728707253914299346753193181077341412545112237861800639563129358768067391307806185706650897712561805770259918073838553862739491453942647178263498335116689665995744913244757830804574427712267418464923277356210488591196368329306660432514302758188644597605614389869278498634703133554349218808161939359125761844417491543979877284800575100502457413185382697881890930541649246451790274014816066960951130652574275579723675020491604888359386674234218395607318919155341642264106675696348724736445243855901519380410851282779355221202621400043243515980747721501036991147063958891500853130179567697336651625037588466329062987158492324068261301117331722603420145665944318575915185489291692150696233735140230261677895440989288990672688757273276587086138208729547703911554936941148407949893427783891937924170945528700401028845374478429212494593177066086886569473464374000876263745084950506576356078080434900841104241972127941402864123419333258154801538981136102793197849719110057037512794865395495966517979622936301948894066243540593358263905335641551753720892398555406875356343643835545143521957922870993832254766085831447518454505749275832552636916085239822709253063483775749285591238700932091523252850319450820940938301209751341279145040757910801959373041903602936827511088485520624429608666363179788478208554566338995847924401792976704016060425401692154046849368956338351674347124924327199519032666044010409999306679084856419787553195882172063400488072317885340052082070336122072167072280449816678868755176068723007179663556255730697572248628774794647234190513991463111298705104507018585338418845852799345892919000702657989122566492052323981961135238899444962026572603678224118126102849858002748215490096829320279405617686370704573728516574093609098718290392302975791887164734010530093243775312429119035385848908374640595761971883005784603089927503532967221598416270897392101095694323477639419106006971189467615685521714577049409634545507522242242291205511850501896295078683355642403573983302033060576992606273099772456934770596496333835975727415858655988331332850764228902246712678389217507621040356356263667662768245072307685310893448240104751610502623387014581906019181251074214644384889757873571445691286406813411608778264796134737916003873701554672946700353796574794861191449002313027964076813336329913397125684575140800817188772765758039183697340540494664895844281642694474566704098048099486417140457875005255679875760935035874107358869908093772489456202497345564667046592283392947700187891969926793019821535506375011538800183598324899041727624233115913541007158959112736204020291847314860706390389142937787290684719565091139907797285569278794868688942504119328986241001313821234477081972444179340180785745350365210565414114888202614786159499835164395535439863809475618883835051019501004877286908350797648481434844005479808071509296277962063122923931887190602373180916316225404956533133372545543140418827525137164274246278617631316900961420441160595480975764111734743778918865815875521329864303394710664319625206275299660758852134283496142075037845973692673970747443047863843742473538216427234120767111019681331948009454311560900633319016508353234387686993118144845764472932902123951268582250180715098613531422043187597902134538495870090627379948230762927693623541440595699134482882062562090424439346485365405120428490033137750352304180069407335470442408914087753457679405122469671759414244107479059102953240568535186357832989136690844499476710947015498890261398218049624615537596015266909810910596665252887586366860417990146734102385744483165988648126146927429016645731707849820978345397724456516215033150109856681240800414703346470920033242540710886468750642448335595606652193076341188222605116508515235930378095889939512037643133542304059617607996795306513755590447149591532963824618497927244382324476440250263885619904665325238350634848489069034878470616406546517887369273574812403408768831744552314864719870756595974036077090486766054236385810375541551297201891981106042662507728247708489011161098940829500389009105988986979242833253578445117539242058362705544888562037365029855782324346920394030493471694854398280605014967721930237066967358917846913439448601276831567446643090707679361580842114709919457788422227569709591856680415240851107350483670112639324859831723136422188723947666307672584710880128724850770914440937339140283130743134565243636575634697621025880933396679890566044466357501904739399202121858983142378835645889431619627366242176999763875299880813031557619824612612070124251291495986569817099462158145775494085883265985413309160302347304786170846047895940807145795376297056099105474518731506097551569207351445516218435625302409357820415279450781181560319006354256860838811913604371298274129042426621446915197957615820844520234459363121643898135427236171869554258991016133470846917167004300193883222696500187155798999988796596833769539040322795873056321535397256807293555086626405841264357666243907865527727617654173219461542107816625922217929599868669862241488023407577927780772355725778652059588764540986427426814975858326808365717831531929513047231519925703740096955410617317009190396146472525376663773956301940394838162241247641250879426504555606827889110254495642593738567744225671405698266861551749160911211992397075538868732075551682577987199818604825706083460634802393312449438491411255497125378753569359347522984594873203566348856447522650645454893269920457797675071738597592338833344070684702902079692097703272365203682541875726076007057368724698559168673295314164727074023952371393198880676058506026790937385010134638257180403857348749242238389115667745380492988259677085837328139328308158970733648976728484194671424847251913245760221970397963281107863830467980552098421790803667674250758782902721842606796529445052128095482231651062441762261872859370086137636935647545555418161645361642760858921286972491717292853239973962072951796915493568801797524157260973546550455366261149861100496797891028015491980966330890366873756508834839361897616585013268470354853868731208253993450193853499643827417574320696501378482272354151637366644148587052844654728044020193191842464704607804089401786119093571707493839079488336318620109850775315869362393405111905467504036390130155030007429006279367693703877280548853672152896576967315125509342377466964757879788198737208705306172469406565036581290493462155644434333528714977127994237438711654727391586108430626958897037502037541417800287943195394406997630773428268284773757982984813503188936484993517991041880901157573236782853023381796351964631655720004017628773234814119153156583330484249723521821069839287024009266358407768281866403546292889679845873897366949286088914856027802413959712699218167524659656145835929578781807979300577177155158575808477460102704861993944050219690226388090594887986200348996472705915103876844931202332834651907458351820121624374613881371713109932819251620738105366462433775020014561838999607829747715663985901366988175706368277051245462812097664331481215052880425274271126049572938648298369867597801641635227693189366787099825951637072804123360469199478513985330148337192162207477261282908592366395132860435316008016001960617884487764458574749856602031976125970497829974881263920413029394915118875907492204459094017108694025448552922262530720990710299622665650426369251294407759462809648878278128375710131517152119943681708792371147681058166198317310464295536254815069385580635476269719066641648592730308482105824520817022905132907029249223667371432159155016082658823755984317769177742447152886868385783072254974304259425113979969214256493459187502376601045813268231661240524185139576020381658342134444508440419882267403601860750328062527938482764294142467722202117317820471147185742456838451899546235036569947409247264467680297663359621369047194941194358598785383659190821692569059685386139136937878113090790869318915345792570139358660453143341579248928596908135639600406842180649830018806611288767735944659007295230535376501588385331450831079640225768116359759132215299007589164571956017851519381125034041129528685357648578018128314339896256059578217754240216701322246419766995428804105498168844258023428337064714462294719532791487701157029003610343944792587231412728553897981733673341317742087255915567450981175842401963121717426593957037475289062450734951981545761169256293880421059669526480631538252779338963547863876320364804830363316176732396293967702579970917005646089368302150340422461827875175118025452671898897085870572373811731600859882056589771755229217402853464767256236748106511207192394680120983451293591198851375328807228200704783035409372355523757210132252108752305467767386472529301150278511009457937700313682626972377291615582425581202314236756839528426179414037749217780366390350533759840218127243232309840129493482286572452680945496280547947189540846044425548893907562480658034624493012556038400908569751220498159212409891307261023422676641573730726183204485792880540649000111643134906268064804638846281988888944425048112178402272228559391414096763483955187578315516227974324091546770531151861468811829304382570396162231808153377278676428544300023433394297977742398033276796379801802132968997922217833657492430638000484988759851415043883600715723988980540642499903488439569125042566078060771418281938039778047299598779039257184062472626893937716865438567163063783725323865098222465190809259885906620856405368889426908111766738165565462795028218663813466911579486257794012530101025604946338326749253174457924866811188331599910660126674770042822840642322343790333960056859850783701945714925437523069284997516422801836687641556646810749923311920776749861255730435689349459841164049868934577458069252512377623026725249646242089759600313067390867935506037956188269276007555923860784075444806470577855129583057088352043454711563715342926440818830438254423257054998248055508418089016761411780426948554081991920291888191370393022170605012743161059934543540806403419676974580720235499135519327627056654984407601067514980365182110579513234610439568822956435186878178379285663653678474639469459230549642791667287896108044550996150609803910946527305304926935544944848070992158559829097973150483721745950765103092203271137895146710515638945315247171591194422150430063448223907002744086710056785100978284504791675026532440289367017865701918379309113757225437504355119283742594889640791973635091925468093200543402403861678417736311632021462164844473526269010005632208438552668582294930987474016139911264002101019714569245879327641062027920182395615788931612258358926777858742031625980220098564864770685413507985014300273925004206078253386473584386699782383247021061422814838635120408608864376162151167406346509460978537947852434420815827519266661763039162468419202153026134181547650285164758667405449893852749436430511079637417587678156246173631722511514516031789701686549385699642655935824923821023497798385656613671475311200922698498874669573129533676637848929789983853600118796317817514524764457495778047237232570605138740652010634557644252650992174028531525579324444335506339015955128506742775601122831630254196880391905926193492395670797083525073138848506339327932488066844320137225217779273056172706872013257669624537564305064783845017615887655327708828160296296783466220043952247883887079516476258056262687250914679790118974493720481182340848211807906136704366548253510253138783060162402743159471847560120715862752331120256358025483344252420614237417132035565710367797033953824690540831530007670634112022014213240811400100165920124480145845495453919154621796378531110811980001375776262452761198814098927492551698020819158371660242930759868394582384713287951764795940008309204328154336242260358533085581761080494979585951983496881225678302383073874413133533669794924398033945978994181426286938177759538791839807553228122299428082679550970973443527800491500706190030857660773432501472007689562630854598672815891307951373109305901137887778960514241111491812265813909505787829456958392663534595545118290910716374371690353753782399249214972262866210005455753246435328574818243419724356403118635532330241340182625042537311783813985045585453137032814587698427956200428923832436639041321588513007426198764151026294999256468005644469869477373507718913887534654878422488229096494140398413302167729573895332202909420091670522354436816665808089640077958962131326490057940384586919429673828393904067236116474215927313742290862608180905201260360604756979909411763310688366219304317437094882793690978402736709518649389419428598903411374758321423758224538085582093479144105736154006715164751339033500049926655058059975805186480799815095615781023548870880842152440735977057310725653358974167746730855764861910067329615026089293227341818750520036833332809689111722846320506483867665220395542907563312958449872455340360322562361968261951217635565077295178265213971219243732261229736633536601467238105359408881040599251637795807535493061683324849750714363500438803705951755034566385010020288156782572561201692134783454661834959930685498796244588708239149161922634721704612302486808161408594821680752419376205047012214233919929100899934010103263858933896927876718860445617764733582696878355822495507079394877891322600985161296892782726463924503075291791608197914464496258094108934328366690846007115440750288608527255864917485228610379418487459209344103488632518679898606641218890030651896501979051762714246319099790015817037238667823054468868195784151460994096945029768824343268117923546065770488552135194576527883953606213292840873233929413866904077150162929428249928354277113272633861418879074153121254490536816870283979227060147134990827048069452225145931692732995140099056044856714155597972361343337408914431722776507782909703226016229678910626015234886832878845703980702730896956705161945956394381788701417493844423053236426248094651010872501343911588062051997146423704890133459370434452015215122802433487522151200085129491882164054477937581059380929871537437789289976799017658696144918851955445913114016942766594941480812080546497181219377474842056315972899943287039189044884944322022900043525914286757766069488109633029364683122313389825721890694534971227399109363823546000179469138474341526179210262082224668146816125276855327438480306805374310688107829089780879470415835260044623214560266617596496079150886083915544663261132968869861687517876628839269818440079382905953862916327575588915060102985026863309098972269193841960293060921977963275504377319331120381463112640070329353524418859604355910855286252148224649437160771676239276221523105597273077320690260464876421273769482250259572534857392171001819716557278183188231801389743459507545483872034575355571316569312581359151036770893458422679361083056035013600325073206731177957515030065752459404149481060303949178296478793342414074489009794209425323642435669880112075283144596445239088629401211256308551263545242014561735134370626486402812343851804385378015900642489128631103982365624943107465339009504671043904705937891531036491087565175666991247630652331677651795839276070194565423154387837242858265728304022630443672967421022717217198065869527388340795322012803401012218395173431975716356696990652553396064503647201746885710816634853063434158191682269582175540020822066150259243786659883771601473643173811579757569623425878513107390028665622696500490937057192840436866131028274870145951329662438507037339881988798497149716063148333685160530941895549866317562319243978165366180617920714471252907195589693713456257859715166787973388118042656561546108008998514691599383194320616461646744826966506323134924738312137563714926673333467541804540795413784532439660667917731998762200225414765138252173927459164436982433443165846502520795270029160466003739393287934128185380874530148972465443881253265339337689512211099726501613670994189159245151621287727471651679769100307145626396211376042585822606824906809346917110144374642811818084954311381716722442618923133724124378841061289914358554745616902867125836121854129548416435157271476446915409034525292870824758078220886358934922460336104724374913804871606464412752313332652666439907929712556176607770485951402615855906270430739287434356591310905509959730209791413707227427133541408648848520958206698159081295604057894247912178696403038900833536335198361880659063796446897885310450245689311509259531945840858228636086539361783049917074427215585407681057919324266136673671455587401329454199220271290359690452937847588795813739169357274814270232889831861196047725165582879638940431854012214155340623939514879238027889270740816281555854407110891085358495191452879864342290460793062750980155614635273651614966657040121663819109628567539528282928678455228975238001491778306181771676394666278677577952314950781066141147105698463520469846618608451499635678965555154178248998240885992979529449467241322234833484208006299701621548411214713598924393339978349245524914091311485870174495431514588622431995322305646839538785204271607099276842679023614331994372998650614178129601016763156223788150627699436990687662970229924313576533469850151613991371323195096977140480142097843577704589454104754761440037187097648274651945420065874917146035055248422514602409687234239098144958238809454170363372063963876035713350470609161835688138825439233453136999396080535046963456870659205263219327456057228821444004577900280996820564727706656729806619122768674046864691541303137498669043665341682747021027695607144479558793099920679306258803293814614158380897886045558114119495408443587020860952438229680455270516532600192713701598303023637768501021680969169556037079467597046830692418185063593251457369874512598774090924918261340287302565912366612129080731481565052460659268853500238241525373404199778096130635797950016969531831477639005480720840430941792095591709946948764806766784388269243277855414610565785546531134030667037406668819823867166624592375675463440172342743865994834809486419351121809791798594232258998162810843394658823217698368519286840622352529577269133484326297912480409783131561581100202503550819533916219409217527639053119072718141160217484321088170119325226254418945438691442367684976350649933690204764366730664028930993333825347309743839679598228613197350569632912896036505997503714172527584624813359273800832196771856075697050156444244232822940648257181093035073580210284877277220515525665019406138759531604162137587947783970400871969381233884121786819164755317551585203325050040082139645782066811915560397641138946215013089840519229680236898759523338120814375959937091880527289430463860922095119225286711518852471011350865114954537689193859604101859391272452283480599068691716974603931909092657436041708167633735633738024675898821666513005504227854745819899191421621940702413095375450589292877252852088863098433496690736011851328585019522729017866863011277438693228862276983070972947533962176845597414436792560239228814143170322805250996005358695217049828824578156625810735897794450016919952103729059827241349355015380895275013848726382267645741602185151150794167017353623712090736717377055258845186414401753960161560299813778249225694166995346850934032286384983073279833526187056138295436247047973877514907170732860718170639941031812076887883032204043406821853958491460655758552783315470079144743258842135123511282500914430755269021359062801281579996281834277907451986501568940836262719712891898365557594159831461831158585902760978661894656812302575910105030005776664213676137350303212465785460042379818455420852577726391557280876420888817566961953861156848477488088455504648624075185834768822307966768489645999826777084021095667201517242627132635018957366876226534031911838268198554639631174907016950834064729018710413770122602699381809254096303483785361835475038452963839446790747749633227712294099150168282701162320830714137657270037625365432113757463124781644049297798808661096081319011472724170901226697078812953119366861089058162473030079185022580918288020099693692218937570747617358701339524765365573156608655435115037551974929178172909203186642367604390563562057393472471589221891469058717846435226689195078369879897347164279018454746349804312020808530791478968157314244455101223699654999996239163284057438774092690837292745587556408172775700939784039982585007955705209771537685893117793249229729661338277330234598820414592437215195237125174284081428542304181693469938146782080809599670111337200969277689543090671383670839924601765183250520177226408183657484267634582095109449192127020964398062939072167997009948917060217005647762335829409898981598421174932000394904645928290030785978953045070347493031756390390058224313981461002588788412386435248451662129655994985000827070629983034683407066563706319120114669422379718263279630727555500379689394147353285498986897222692996221143471721861856331488020545517216950934192421061802412300607697328126480205612712395420415569652708816260869192606632862484957952219059245881339141531433344077419175308241710653056709559081760393900114863768545315613170606082185679916723455830194958430032843866530889570884656991752328978816254215082545775626948347295989244367531325650190837746748776308229168674138309668039273969304517454483047875810148095483303975568573462597916699097966746699182670939792689536761816949934298834608187351831861794993786462938740857252690100388235707225052144545734494214416574823117477778291370083251221528093777588276571271388879293354597126902984801348280373726195058103519425518492049497042031922290502088435728760349328292268581845348402022386804215493165293990872925975446122206090273134125032137406772450001729858268491005558077539182512428765355712050595643457474811077102350761447483218923925523087829934909467085800878670483976575988049434277179536339109458753228737429498520415298712014466709320912560799757917825667412927325123114879764165043851064598348578228583854960524107523701514163818614872870963390744597460528163382398809138113631976845505622179774471434159902404949598305307797348197325216816062273347172639582185972146395682080370473406478953540028267085581259726772671142710499306649523381440339927629426682089894747738286350415492571635387505481492580555264650503914841607485182413180050501602897306015117694257548301868808312104812257807937014257051873025821753281380899314426465717863899217696969775662134501919349150006165221296165485366149011051716376610343585055166208998348067369280529117352204577616784375216826361969085739813584789806823072095767761223526703121879500054478564885216595126741848294109880572357581682693448841834038591679056421222962272744613922275766636439345467007284099915306193802930541323881314587310925017459538060439988505320915611306427229982393440931213713972677045783715422337383003572912146553012182210175683436582324870391188398031436792515392005321634684821393790296582133008596199775872978931017708559213984117092447643248087065659484197050212638158399121421316145410863491630307306624168429929049976254558161221611403694098092476927402993090089795723267772257056709052062751727427363375724006086096447905261608680296412633990210276547129083688732183140961308297929316187529504092136397140454999362415271991075871121304529713825012966109005500730718538158233420625266669475537781153835965266350839528489431526887667613604017563930853914931419200071865989331426017747645618533823658853688289608515460538736699444052653725122806913684080135379598842224237959478585655391971273273508221578514926666086187570304273307415599160315412452806113639763657701773896539885659950266896858798754012339114702899485510206650836490215995528735230481317434481567279887679801679333853597283214569374136659391856171289907489829974498293066100167954246594810793474056599570034268216052020811022195653879938728943195625834787329557446179698301705020070947156077197281575690751043231780603692062863316764639370874338308424656088005781453945231279887886770207140062575720691550231331585116618687960570377747788720486712690660577188844814930233212265337903391417963604473115374339357580231512793470220706258440434857352922287847242097135494461776714343228563822019669060514397936822587907959286292136563614051806865491333163545880620418957436571685459124321395257672988293204641698805155066443714294125392558848246007803164677789438808152616368826209164691431991731222906686300024872761008102962383806668154758236084321363603274309689557647660754818719809136677148631400819043901684881918627765298675127823945959755011625920989382591261673145663346082639224104887868479719513629906441074912381563011198168996782416311564909533664827810119127259945414192516006464785344796048121264628065865721691218393122800640120151008140018655448066101007283299178559169150163780882467376949546636975551898764211105364694486166635670761375637694259661183810286432750180917963748623941354642302187067014355481875297633093057411111321960579393474213860082716567770161912075533432905665621503771510340386246405876597982404613517688602797222142075386506773350930096698694389203540646865072081591465635125102514836601235020472811552170384777317948220017275230831606027007851226933391302064764922066793627081952419031063231439897748399728095355730293909516351634466881855327043674662441167808011049078235891959240875224368092898667669851312381580178215190353623446393956956543576733014174430109836702376156092787830706431788898667285708128116763733826355712258989374156888448808938006964465686064569304370954616246150550597135095593312368829209862492217726324663304603193153506945671445953200611840490170327286779638441761487044495828521575728665050599048605443405967245935537802343655762873254002200175894128922335565075619542780117530070574348374957463801283860230795726653231752106955794552248992509219028358395105471625264709747542736291317390465019198853686157609730551416849311026575244572454592884427683680005278042999697791265877649949688653407143410949693752806550032438271228471280866284299969399107541366063711919150733876622097032272475851443614986131481379372873942546061305779590654909327374300517511296877063779921455159734174247276644508149136612276030589650232588284833399152558864563284986590591250060326856162196643258345160204300081307086731174825008871254309230515840928460274064342621900049002877530987009116202207644114944718355803132090609640001683109472036546786120452851988183023363952766756210563510274907059829588980314477158802912408504567831600025235327609377963878902642504234953123828042649512734294428931335213532470564395998460411222142808233455110965066258493790850488366527217192475604185026018364476206290692798424906250661975092460236983956859270613214766788369762557784288818556940154907567914304278133464071008121434940741040836984805047597205448842902205043226320795251176848955141395389620327063410903360177581121458310672996430688654341504632019494880395089741045998267373494707012945678042292571800026646835323454838536513303241924760035122884836927155155460227296430365845199889880473440064329529264064135441743709310849250538125792292117475064132889383319437833216420538854605334238334236124879144295577611671588028613866646873484750362259230745453465874057189926338428022014460250820403749373769229358557421417312662321814771839569655563884451814059930654341467681823225955045585692893866823960958489780681418681961635649600850698310295352197374688782292564207039267176295632782585732290603949501483780678078406515928834282873111118485827332061527920102176250071288633113927336215439283487029883298891092530536351835698123316892513116883834218394885987064714818277337301705557479409029454959596806429196144582413687027422908449483598949280875175387309565445507637689119883677071313987835298189608409329427158105023290965865847841637392163807450277782181568429893203156826478620537418666709176935637174810983238727628645301265138656290705884761043907034875920512477179481145433466714625055856836879088312097280854130703767454823424579695741926811007914271144557922610972545109882748735164902665516665235961735355742411621303516213403608657661638507849885512268276422892456938013905230106994644264101269965235227025304680652277292568775600556596229295648355518983940434683467324414578729893834134851600985519074737173288512495008459233623224902554501386168254952441039661517053712210670703538638236058236471567888766412403150706515562538412525750423587645606883721387510018178424142491358576671337159806438807652085835105308508264786184370791287987886684328656944809821655107342874747888081571077433972131796878445343273366996803302089128411755877035408098786498159760376976145064967034922852819291145496764138010195352588316809452169564053437927793963882842017248134224148382827586325747258684445729178545525253636636028021801383982722518582691288161785359203765113420656213010094606662141872478300825039887175132320594962131410872869276906690473599258675045555849814253594650916204143967235887794987627472883729215408749171968850309056757475003096886131533895436439586348893865882098146156037610129777114614657686080461307331431736810533448343817831363436012277769526021803539871846820229560825784545694126075153128789995407835861348442711395619372479985265775220912017897823465481317808821870927381085551707759302003056596260385399936289877921427065858508754411779413042711560184096911545866250085391556085003994123821338658113377880341729159347748364200605315465119837903861956486563179339316812251231233904469418616583422963195459015195866594140035461207284963792765123084178884643448193057907117034622413925666931672434325711759858641307073149216533941066339215157425776675686266085165593835905805605703083322905796458507003915591009048114649756000056501678095782279529863700395470835180335289930829808293394229929931945907495757235472211877764351648118332990446748729500846031760100897604050878302281008556436506707312510878373082552610363602375317875195773869715628306697258033393465273428710225332901296985724847162875928249744798372731682521211639939744077310750232630648913793446064777979689472689043895010936288257683763688993410746899606505957684979918704815768767323539831742014817095794224144276902347510822561985428762914912325302967274695629108906428655158911929262848108870642076464988243730370948077140749880336720488163966972626059584745760130829834539614627623385789752290364571600798897859365405590280378016382744602540951456809289986838734194425264607236915427868906095063770477956405875317629967455457262876279403357878401711247858910189773399153876649294121804169893057565745904531317962905079817845169263302806506415297890111072253242749920331365421114342572665376123661022435241859352895071626152069200081410445774363340133721866196608126009584683834262873920226580738766020010233226656963361131705183788575104889017969635349909072017910274498949254806319099546299129010758360527508046049959202466874149036934129369170302105663339738148518636408737584283891607136809391752436926920359946443161625692726680205266019332983366866514256445124306010630293480419078652305849244328952965532398454329635049733743481084760340674298545355146851987718048336368922541088705208201669374474944165207208036748456223232153203530699685467049138235422893320677481996991899942933296118121656783147776222446129359471405153896337470055418966217192431760949421194288734495656380403041528815730510727457247968840115270599410292408975266555823763367616450983824231636305574023082078612392922946642524778102967939882532058070198338738579801233780060878025175483292290997334487599569715730642229842923539873974690160219287395973863455144155727672869128369813800308947491683802473950865674705023352892760498262598465804830263889300301364541575836653769943621754300423522568796226968358592759414748664435504058203982194746634897129268589347315895135463499529827902299856095598451734171336210653029322519526497710983930345105314075736622036129276283249212937610786498922666975698557948438070380134737441031164785033433253640141199880662707285267654784870052710544089972935112081721461338514442757129653830098101189821984707618065063204039310275949674481882009194868175364617008876621934909298979826135085843919711287666389188077113017291556220571980277928946432121350370163691809164192063994441611445347213943902206312080458021369426513089229700078424293244852999999403730486174563856773579322062898539586533007993884491032447091663333248626544715602253759941773259716184608426075617738806819854346840777687194584816874728515197110457766370830926022108050238837986224044411868326431710282966942166541175574090586099275185092338085099441415386566944208514319449711021439551463083226838526307286649081877217930827828839934995064488999614742302148252065476395496056187576540642684943105917819135783540868106689685514354826213648524823869662128484636354792345135420250889899997213480832986680613845628204637340132776018250378551359825747157720019031009355111727222701963110368525200348925966359874366675950346376244533762569571233859541000061015118501050272280250987078795126215429718723906350728527002406686985704848083014378200462590888594022878150113851827852028038540460154449109675463259653871801271315703793203423501373017059627436627141693113471111122571558693353469336827072634658318375137778031776639029302522003787166027093139053367935725647342985518070740439602544225469734706303167194949189918593204779429305762455475451012599279314696832339232933033387987581148952315338572178131919131176906641976819514113254848142743818180250688454375197933878769628901302504731852977268805714978345127107206427832914431166626843214802804324437246868550392610158834842030801346065929649716154926461063181911517937267636793224762687831706955099196144639790116206184572506305942032432651491178197512232150297183958008721533396988402321157998096122202188017838729004081273299693263039704091383792324231032860515260986114160298439215633327629426175254678689242784806745637760149042610116247308180675377396139954783336687773689004104344810538686191746975812028883915793962625297607929066683665678882419984444461811483206980812743491645137693661601178719127366248126619422093496388897447802545550991366742907943741047226593957754569714090633093363759097157783674262228052470621927328089108964658849202029953905163137702050631660681366478406283974095316363574733959034619257016081338277419048361534346250437109156423622089029278162831576830051870715468563070842304593808390199495882474477723813299065271516046952772293725551776025405201997375589878890655378046221214107890672036342641485124178635173247243440274439851749883851826028337530739544196679284355636328916641994867259675348835468996942049139231139386815808010606919469954462425445579257102950373072810894947955219419990457781789862817651176243575370799912830217344106790393095054722902077785229355993706914637570879602810483734282139318275745380639230421161606144589963253259665817408383504628290965936399384528369820727928387255044120629204248400027820444194625036663268784863325850377520195889014017012597172563198946207366389580899556192246932250047165196920523679233968121597045761898439856777926826444575262374921780774652656616044507067839935747104990648857115956669102127525789605481212639309651867450484820192355933888242150822877916668270993340645700443832739853550194994413397902964379763566597075649569271668775112249284965536503378215244077652008728059740853821508515746962216686126168768167834715546278609380205663521439479260760997081470405353657603319830989939484798048328507040006261989486971978883452949600369874331700074503991477292032605830270456186505073633528633896406782148400352746351076125866573538100217737036858466766543571742459587174663206401848190753039281480153685671118104906581073812614599863392533852945642407247666122958645789904979911908711303621697413560938658797405456552292495432133405430445654254869233270864946522445785245185277888897094709795251637935498608401075015016193224245348089561052451908134184926759175817524748817185992193236596566068812850853407298697446678102958730814717135603742183821717023595265814737190027602834568780482026658659294880414472158882703161558568758879880880678822188201551031158541557811967532182710705307045090867122834960023112188664551071759631097105141861450051879913611606678472090531551605352839735735647839388537710538639915595634610725592214587402723538870579535140079744577968833929301798730725175392858649612182871205306416786995157218214655752023852953372291612939458872264439934966851526738497677080530863414069276253136601641697712855449826052428481765555369427028625613053670119838543605294863566644014896048464659312928272548929018825976777818232354946449599796505343908176967193847722365681277672246567270817078890179435441963490150106706129624765630059390506186074838831583507799160958609986745799840757012960945975522218419338670079548456042301603037131339398354344236179334857175329423976531308390626590420673110176461062494712606316342549826131162697679857027572109230079085020606360274912782354915680832597032760450784643019397190181724354548691028583355102561041859983601405274421046690369936054944579017421989559040179205996382811564174263294903120427074184634587632706327906523428443527253022750214627111486206759136854229200988973439180514329780458159431281551581914703964917950102792728362754873746178302491666629720046801820558329047807867170890977236664647060081963833769529083353478264305732823408174651093181862083469974315051634338878129760098696543139422854223397265444698794510011185324827760176619848236510076968145213854659522222318860211985681354134548338414836938967510426838330008564522912694240193853506759025613310629112550914834930380107581591989171731832077925152083478882942467706831836541941270476944579819038626629479867403267074094593923719600357427764398619921544841078197482013754914628299266503432862058460528408689502475067647480233502038026699542867314099073651931404578711574546753914975948285337592842434779697741953206670367818317064901794943360934919847862955890115260502555915200684934318397002684701130834333325834157479391896338847207539908902085672483365169490166106956875073665102112587723385361227339439082902168721803097976777646053380690829552921673484698489373860067937306668672040246350812980909008111491122985234746832137116068737703371638766075988524871297772601644295980325338224073548388763421935942414673295256078249630944614812627685024536250391139976409189365024860756063087267567465525809577475026013631375879034784162697354017922401583621106700175698638550187720017939087879594761988838426205272478967494227907104704519116028959565981101980107853074384786144640654790047819223931821513339326336394367895371761582946533677542249651385713508421849218934602874671137178572051548171900461812797379234626830548510185744072602600951883903649394811097895488709513516962565435330438666021701060291181779934401553077817110848702643272546494730553594289827359072631806541661617642050441649449373099143214334253503124085510506140180614192915191289970205633284462076128576059128785791203546779629424312902752596588306791063202998212489754696008114171088939740783630339606693023783936206241364177216564599969440357462292418166910062899543287703805738738463557839049524655662325404809316095534369138291358261108511563696322927522350275371875341689594779644049282325642321081946480930677292950725371777921515517915017779824853883731538848486369352610728193373492655959699831321036958245629407334176850566245208652315590910093001359700245802232281872656783201032744976855167984833064621411386644825847416308122617560607661624103116590537993178579340029107789944844399114090526498424956696459839612098068569704138985162276825684305813822883850357232647578215279870142654889523882237606282953009875496810904702842950030346595228932922501009055427341980108763275584074396573730228909818390561523298994802771622108883311996459106910529812040806318771511045338101271772389860912060934385642615301600434296710367599693861765416626228692887911272265192293906010051364803209041805665081438649130285879123338282200890236430368588564626709916169453568576521329558507807610593278522131027018004699213475061272108154418074231711748918674601968899170804007753161112943797215792828492884441584453468305371382528112570030055937710172823339262211212169634637891654031389372671103497635943552408133671624540972995000332002835549290153861033020738187785501642651903192221030969948595688652071189871692377882565755414608382861188736024778973374006936531910232390047977646516227296635017105010762363425631357565422550343438125511457580846208053853301349771343759760514177850135959043810836661938616449751842934841402423842450521120034586294529804742517068726129957810157087884738849603191998873913530885467917154520597364379019718088820772943555963122300291750757613906369677752836949335497291558495063766265183055029753436404558593209147558232852290148894283165879913239276805409012334418001295401823448276539699558069824293540062245740497831671630728836185680118136041793329592808522709690216011925678528104086153191682103666635161989351160511013837989794427020820961217486814685835482681624703924698507433180940692317988718327735356628751284355217160812288731682594082964243578714752866371381426671696971489638673999175410567457389501291148175342481633803324471777088171048963711204870513991526114690938628540959000167305820641263786131436427948960437768948688451972572184832830768678387947311641467598723521652251917807314110780513199272955988853128611044919236824028906801039558566769970046408163598657972573165383000973386373977588582445807301446539327089235473288027055610510111987733361391028973410135775955530812402868654334469289614555954228275067892021836746100182283650693463654834258562088517209660044637823982924181679408931838321643058950032476995287739381545893786569388561038848258757621057563753541512591674046637835841932367096566340069961877369722449366724972732074889307258401612609779319122986428275259478487622101716484470019349584038511142440577698786051908587397299000708612180086455682610094437497191400783313295580055259069943827063496320028279907475859476588109846917692520782135042983571126667860953711937766922123637144877589527956071242124026829740759626376295694955893504105801606783185331893398503139748104404176817078238100156574449178335068621049413605911837878869465089590204950076376927203484172784227225071286009346197123683737221570148964475229526283754504237073494999843273082085192598857199412761031304506435005185827954665322957022511994410178025617232011781735601714656071391311068349243707947152907726215076300522689200888675681483386159814790042562380308962160167786780214152682125982373546711785156730051774373764456457248896424205723456692386983544255293298545843546582682456658529383044830228037047191320333435819676797057496938773979022971276128136129894063526529207690951477913694666664768140462985932740743330570131112625100498522639985809328841390267593048358834964778262495300831330753653531740699435914427364753084074760446555262497621581831780665002136873605212004789065260087608379082331146637777245274735182683123623815010700622665510435017383376477246659569967521625956379875419249191761902233722427534434350391372842010866640472810201681037848238063434401087845360049240084033593418061982658440026306524891708471615900672385855586251156841286955570872278159547518234466297412438457607053767508681413773794117255624567746615877332241691435429815277725609106940059931959570692610697508937849860218350426058243337610274501888151578634300292043797471260451411275506333766875873743946657880133552592232966266399293907600497450131669813680648171348097474820579657208963713126249435729251330994900330664386854557444977553858850274707071479752623737895240161878974038934511687237078221585652894106076999263519972091353044925913306624969964242354875656240140720599507082860356393054709289184875416241766369571181414774924291064359021826776488054774619630392087179810259342273033557680456839413183347037565542427990831852109365022368252898186383435015162736906153503362398386918270415690312101805321423684827581138479155544379471067251600162656001021882147413862727570899364543256562532131412209219525217601948123556099645463493544458300458064358740358509883187745189224526767453918483829809733721449953152008406700441203646529370227004028846268997315214585015672261363690613713269735495476248515479915982385577736567304878198048952747600895286733961292208769728176743770375617140216073332999573170471511800609964844965740877689025410579255844163060592909736577779567316218682761872439644225967767494313603234362214603499115734372047019142773938669929777433541272589320534358876699790883359764346657106617840726830104391657019283593526604305226794497229531619003977622842064621846549258594512779760673157606853960380148837510744518239998071266762856075096424468074852614871580846795627749217861895871291551372389368730320817569295836218559987237842603298233519444628001786923771600621160511732873686938525658018172751976138413910198403884106350916361965715311186383466795094394724022558592147550040275297428215164866962440420881267541699122456902148544377711200704275163364725905166307069080313487448843605738292473437514137427423768004016051125959847020138209187393688093301664700286274575978252477391248943070870324516057753801677150911398995281042195700430684446659665412921336118007417671627426165883783612674970816035737060560123727901740902759287173296492071755197872788414087533330047737691941364196090122310346172029474304812273727070729300358700065047741600652767659119384597906112224502242042215446594861646465656948995601246934088259634288608776069560252695685388466569452785516542709964909137401299780826396192433923540297079396925320102233495398896188312044671058590006120169577213705679288888804633071660554781221089810596227510063712001664198605672669497644443234081482014358849079968859690541477655945300029322482037457300769184005755916417070802654547207600685799856140299832497987811554475844451047899349246554502868894577507251607702413028457404177077368580260871878996947632943153313908924111990149258581317850035822613338783580687867144801845724699064390932574917944876925884863460470880985960725529082290240593245318159569055371445234576362036851527908415125364817469439883897370992840048810639682887509868564632494879306312306473561614099244451289478266433952268135973111189708229526658523102171124581111242432331949840872661869730302277401007719953952156473034681370876804268904051226247366849178002454297953688893090136479953501828493169394382764662828512480187977943613243768952765135372075438367706904390403813351645216000071497324437122637255887233741686057774640262290675381419579746623204284751071476443722580592769969194620359101234472982410877835301999494487098747784698757848519854784960421236827223235445125612994841241624799501168724453720155720122270776434581391840456223803631523348929229691872649961641982135611192935159350057448917544135999194292838579967735606490879476404703464096116418743584900390660941734930635469789690371089160289121687360460309939036776972562889370886309347496668091484645991094521451721835717537634418093804890664966378241550458650819826502896430542244542877190230351209356126785751335856017561152568177050845558748021488060003034611712166544087072483971845832110597869838666099752448058890548908827363307227627227191004776147929192650377815765432450750547427109262862746966095172227459065168491761962251021847133170439652938215533933806784048033614987985426947202370704802652422445056353381472578815480114677084297379646045807101312038347112273052188627953642746845434740585794140013069220101000285361149748518566574428028348023588494086301429625099974436869999251587514472662573918419853607703462482574480043731621812144719193488364974262713612790554465189202891801631651600115272675856457400249030287718340306601735187282733965018255421298744248648670613827397700827479250232141537403514249318748256656649838344370293621440948739264328771115792204801860207660352400637542718309335043748999238729015169409726676723819448870030520559108606403987154566360716854927523204524326804554689794181619346927860236117082756814853143747941626379212363739172287727129989193063623421893158335401997273919011051119201023769947324051507080863774670080955222780816100722280688733112328324736650202350126972868186685629562055019886335401489774516171271802003126534531768573273055733375252384461496605246214373473150191248575761787546094290068850993405772542270044383764500783740484255467607748572294541577296951414461433256895981873649354537227165105388047860045417690284182827578127164844903893245475058915104687867237226502043252807716930253524951103771041347742209658838791294689545890724841159017936903251540512710363105267428142625269427918583619408002410045225757503108858737662018987249931316038195373803981345482175208745438516652166902682973569576684320659882001368612898956753967333910922259813663284390668433218225820314750612602665466846825243669515864988867999959864826239578861581911923879617701287036556117891013234883981043433417499970347243557556860637013533817477700356052916328553098931979353688830871118784552991811906757378691215341723350696537834903634658845519271678583359058583970987162440764855697470407802033110004170774127167269267177107548770973249879752024605239865899404922232276085892256339110190133583679052758463884992778869709882804895931384934380353139643147120936264879906522188164456214637174513873424113152324219247006772571998210653977560859715118532164230889762856500589001391487116796443740052172828495905329693043642479794448035859212125000210585413982571988644747870311941252111518403003841843622946031269340390209263815113854823402836820373690187117931481513743834923519035579612808975588352119116725821312732959605548770504609606753041019091339610280986107819965164705439592693633723982776975883332411588708016310864041621567623956504050195890690899338631905252191045668154473790134956385873780846207235169160425627048850107103251498889132444802447592579941414543727734974017596410844965234858108246957841097443162263275248600235457386382405726389624628685570799820022723918246460745317538371905212488234682092081735756398125279603333108086067425123897507128595294625404085506527363381436779689028015748167393097939558030106261678454596679551368011930360314176097139939061637608888683325885225688062669264102224426806923398038131844790995622085422510958349369151984079914091382399955690464310968585254142743876571516216865053508796397426275925040054131178407628568518344541196716915071719585583873876780038272226152294484242937948855551576906149833041453347964161151766586202122934075308011188310910520381751020438302710852427191446167459314773370677940896397970425777918055038535373801833898502692008950513192770575483760932199589809421370621909206949059084284145429900191033332872334083626878702726134072319356234179881613165578521141981915790467720925399593375845340690124158411267741546445980293308199270634521563692155338015165836921275277780848205718869201147385408536950914128634488874682534933717566558060149348717197608389577030262320633463535415463518685156191123568139409704910758821410479972110255023045561179559015690562841307606102435538724173379596411551053275750662164827169760578907256543659839793973702754395660320368640480312776650434282734068987857551411231851235289225352191472253333230097673090251023550586464075119392873345492569925519760657034918822515623118237750536492506849733676042877014672470799448674141088603987661517646228087876479460048591989933028272850024048633751178971991075758836159351367878275646626272563146576374542754479759656833680016819499749030551051027450906119596179076264607820007471387646831762568760107132693271248662493433370934310483818018267989141285765939337268913413652123857484156817927549453410655277693226052584996819874494746411417426368356868278648849485639188315156428390152693832566953236620102205796132101741765688512275461315689041551454776329941865128331201701315664414794318900012877653472522582596137814451863726623443430207551672508939108806645305652493897277648079676045283502876504936808976939922000193629248416347716597516391722299170981346009499638791621430015133364390505276647578639269539966795426997827758414970855092193123683243214135158403946530552388361559829960553426635813208283738457103152501032218576747253375765996405891997391966201536075433173753352055344958062261765208679539061107479987571927572463231440146053640847243258189194223273210321712306915743528259088697241167324403116811054283611137420240711285561651574428182180916312241562599603149374754402790308842709059878956074009725533891772033544586207317305021410434234127720025953213828728059857208294493588803154912231431469382774274973150896072017181422528075821863046284138487806390008612224123409233773547533675257142832451240686172934337049443173357906119698848830825809578108041396293770792223523701587571785176883638915444656905469447217569038541751364571739099871678351137040473519174389820829935774437545212937260422797728020066467743905386078062222326456268175989711315319083123697413183737583709932228389405600889567767844730765659620361767298424018138980388709041966320810019918453659585207928765615869625004810734535329765284115745811897648525594394071613017218006330689812024936869490376721390211047972759818802097748512403822563330172881449527629277007568446314757381164601636946520043801369821755950371458209126675187494563206907066154037242112277449803292692424511641135698149189746536149387960927696513375646795498722512624448672764478689823770643728106982134243222087174527469145843858612584668050947026622531379915665092065397588910754235329095139791715551612883287681044810774737582702016658624778572399260949184979965119417905394969728247701650864670645743455938778600015190830192606809358761053938341418348431520870745691298403465238099429933208049514067029758517904760473103216847085113006006372874359974644967560351949717825685557618727280336813159294176337755638044464643168862886547126461066741877931799206072750758515035386226797367788697832734669226927922011492497536408745517462458490080548963488287790705309262446854797285927874026711900779677549966891100046853494913859961327721813935455784964198453749609443579658428885954702507930076603404037068245743652968434317568324678446753281824882665934537741519088580788883688121043360077815639605741186952937513732149170354272093537921690283061160781620348989544528092920649285352611408191870876288745805567367490247154278796183109848926429903338346986637750077883300587006644103282580169837451099636092386079690041761491436867870764081218936793509955088032779899964720904866961642266575571277892712318609048868562526164785164447009374363366352435134722563073435750019250651608022896260985156849999815920347345128313769699202526736271403802214781780929934138328598384628941625963760590387387141274097033552500265910383013976114788304164694101068712179158695875840963024881448019849651038014218515134219419415416632197050853783939775500725272401989059465124720655549996643424083467636820445743186617764767149389808905568107282563005400330476556757846280875242142257900010964565526165791287139448803681739292928374966901495250765049269158688866372495787147891738857310489525590513104735874218876296836063127625329376993139486411409103938253270218925812849251209527063187037880258204776694333952564333819645153540381393678191889382815787752666006992238961222748783046956672345413632126763897106952842715312143397690776049964468865448733652023913592057124154812227675150744439721973199267533426224983181253628616325814133320718958433370476880999461108841506498996392950763362283547470538873508111593848279365029926765679890809414876889916384300294889627355777512205820161891994681553343113136780690213916480550166815126864523413914840328884789961044650153619724760492746981547627063152695149535428445837606067660583114014809595171699130513431906494964936874886972366260552250143376604619723593129062832765363848276919027550170179160700187066966910934870806568106709713204535759023543060755870559141823575485780048335060907114872155628569340324992489708176040744342723507042419296894109590379330112186745723964748293719667061126848313141372942754680976926577724292618360355760144847843594892730903448440325655561770030035620984144707816853993265171443719188623880562156840133633217723126935156912964844038336734047680066320022293315664579312299584339141133238594973522935002186831154411372538995353447127837608814362690563764267136736076088704601830683429301089797205950393828943620536369545021526833592324207239021638324174164119934630887100403888680197422291678211706525646692728471598176144882865469321549156435270420484884007979780182284178683740833646295422962982209737695220372034378758478714331590115971102564405191725184533863087813739541888333439306086403771730322222596767828720644713890292855906154810800944698441018812508349076808340052669055563486396475285427559977362629429393333369049598378285657556750000483976909593357922950503718155261712658476135463417513461095853896359213160505187731095611822342762650516422241008129663417915173199073263324677313743396642288109688686749928720375017136449998613286920270888586339388379390603548196554162921575597490845981890587315600942484330785069131806282473160136871224643658841361685570479183460464851532502875616279771567996094970559470846830888048635975123003969845226101356606026304548252629498261965279028379131766955168615560732758185184321562287955929938566642788316421121664939548273441652863054127448118813891624652964335334664358169166843998994437280008525842818605668018156733674311454098300725501586792581081882217170735375303337757455033557545018384327219599676399775353276464935951093075286452626415803811054145493694669028155745966937427075680876311595339859877328891592370286499219459279328460814753312259804735530776050325739889599352418398368308392825336108316513651766592133816528980450270070563214386473059087760639418009521430845068414666560010113019502978727224246242716127585661447136652526982028982107514751247986692735460359738706325146399135231580539798039934611180730351134309990900277027084688086496966158766471700764029811831072627688455986521395276276960146860026928214207096027002470044710876101380497263589064140886433720929762608361458597163570743034475462886474879984040398937957349700597662839780053250216324065503842285373736617378191904940879541295264714747861448268108174874438492730220807180135795473774899997569322119229825962133187283609422316794228853684930460561070352822845662717075520096971647982470331855639480136481354402451488916465676068083507832400405764680837834107381743247196567562717351445917336865054587503915325147163750500995229772660676361059887074575734535281291054869901836899407621219383249329346282443849957224978725138156423506962653203809679061031772888777786969822328720749113378051415969403572964130174117266628329151369958825816783789651485770361450353904641600732260651399937985656057286830944892841720695969178874048496986386550061275850490335253781817261868755592104681807704856956187467707390740920641371530024446700310797091154215495693605544395770197000805959346924838117017350004021615310284209638656160265403168347178126840253615282206789776498802852995464349044564939878784615114828532976498301258032220702828430973502333541448460584756726068485367367840613395609738965201432767022261776399755085968902121456998002148142098589929380296737060672028013377560067328607060637701495595099793421420455066210041102323210955171587604568483168371360038889575127169227232708069377104173966051498740648316385685711019954582738625784320478668762221169528450353597370295284458433981201998130162584433779736950380195381596755879390398467015217706039540369170556500282335173674321674003834974570220901578191053983920585639952316243991489161015994181342819868945690613380709117016985185559616604985154197138365744282666147392832017888746171483969501358787747610919145217158922892229795881684025076221305813425766715718584767730134402979978393343865651158395483797648981890838095616102413039862660761471496437530845882543109274190908618563148820909330912350609740923363147793835665415310538737419195251376729165986927373441713713133307675447233805309796168461703030695257541447753175565388840488006781112717926354941594304026372121366149119836579205131269748502258606022253564929336315053125043579709670147090071028320490295927808753279355894194340306412675458397854613796518852219039636256206710831044829558405243624192799164701694472897985048687973521101790419204313057589986545043138212117940119742038141984648164300081141489569953492135342577700011072919693296191730326391591832390831684538406013729078543466799106669590374850954569678673734994112073885373762712326998977822043351405663277728690483188095272035901963277770817285947983601851413526872358242787263657752395083251267494756329923449604901371167734245520563650899223836572729971800721892124982305333696756966981553697295763211746412613619369729781267436916520721760120365213106006004467055670607788016646128614460559321987133984004863849171011016887362887768143283487529139851463737332167193902936337222628796694998848460429744709006696404785590272031474950978580372103253825570920874166496722534583820446931720546165411423582059874799666387867733291628950034957730031405142212659726008851024427553183365310450315290059242384059317928610864590816446581787691045005619327760499718485449141998397450073510296497396830451799156660824178554566378839170815718502596729389643796871666308184215253605119513536412509489398108494290585979928212218861637329420808459407963930966497909350938319252463712758025204360278817753354509900007730760850586752320140074145929220736511457261739137541827492646486201724910030181995413349130533314955025638502929858954903841467966659029659392770438526540580803505869909544921173135912077205477090319008463999454012372415301208649277195229288804725385989913431431607047718046136639970864545531860994579836610957375450048197882518508179763716107785959025550480651963332274892075749841709567652253882537396572925452440378746711759635607331576136010157376752422600268621312944048700959869468307956340069987438256210062413715035801611495121941395605230908994577953605075563061858646203792599406223978207027885494654696603180930351392877963732392944503338495528434563631402086484425842693045849879360867308916956631580577413497121995509653828497973518122114309344905394187864177159420209924562693219373902150390979163037792557907230009993475483529001357006883604426458790963100603059608979435250517644954651113963300927444744865375050788858267981580385366662659946119246036496981649319393838696145913508100228440458897960794879084652702779190780496556600594135453106609433058863749030385361073656193593384670594511867560789275478656386596592726303229803573406753963959870550543728737826160606128366254511174777338276796138415332724870960879539583726425080979374313367343930621595599204146002969858410139924717671786413283579549517492783019864000831797500109668390540866098402225573971094190848366406184112896732829796323171190471592587372435243166492736234345751528360363489456846305119999567540088438306535873573313254665536285087164334034336539431180050289124365351802551938682838096012403738044276473441472157496414738932640426520772394379778828350195114081218908226114073084311218355673962031599117518170737022487029665895673702417138178656443608221913401821650787605785031170373260903828126020562308963859791345123061271102082695497459079558919268528729990959311012605395372754561475859243411920713541423106663203179959789689590339513350007737614121555143832582833834835995344852310186531585014076611215252716154068393569292183498476691052772521263295218791640103118963202441361833113841440910156481873497302360000125353122056915444440304711697882625769861788887472944408847479356414632271333465747763893268866074798364875096772298728050470792467356960111929093201072274081415188494743533044950873739621882681788730552671384561163468378798543445329665121638269931792330672616015279121348575281238420203914328795201217514844798520684141124103377514247177800516842048216367945705264103070889239054523223978484661933113449779790194713157187536382543608854036307461375215213852709693178203244205055922308836991164929017139451617750304501385358764051448285346163868817476450165555055732687152042375586556897707121432942388071960812458766307522139152090405286579794895273226197142073384978623385399123619729551241418644059606374970569812985467944156374054612893960070194797363638330764592762312048719404067190362151168685713049401439162033256705485666729085180290322137404244321669799296247397002847087313676213839021295603233030191424606374010675246111096301513302273295407738318938249518163105237819094962070492564404833504246085907508724693390780286384782262603834761673759536570689211459020315576946551745409932041442019004865914378829049907186424146806309914023138638786176261248575992907904562208122732260799999752807166428137131612538351685783128811871618273892472064722669080162332392361388050108504818507323097991144127536395960520957627234652331870255364683467815718195827224119364214693731920629521207057368838549969788720579980148286893269038843672836498525031607106738444547418765115764921161726368238307131348099776515904174346068268277410144274861823757992288010098711189454032418102304926673771756179049025614553487693580159132556757735403304099005078236770204354647866397275261950636197486683180892901309270204071765908447930055774213342021397935210026740841673839995643486135077970321418785418045048963084997689113826150034070674822086773242268402229417963982678064924022489100764168516582467152089944161061078907485358535936387465326406351654979194990437372160754703069308171709690976640148445661400324047923269253209140663891954503166060953879832446517449626600791570021886043905522345182310200996627431688885538903170112554674596106647955465381443919550922796488981235002934802837120681881174474436363307057132630558406421903767433812758087340466558352771273639712882623581620963192302306264502101802475817936362736903059615504868619019014001815939901443400720293415312282459636184246844927412571486446822247836695744851879524791917454132321459195653913434642390021025098285459909732208388891383523923505317654522645571855506955506493967516119635835004153856220597358247259571954246660227847323793681477344787920121819935178896797117338317885212382581582662412188244040213572235511768045686697373354006296973132449217206581545067652008939756132652343550712370948488505937284471701911922355722557403769307411418547934464147437120490171345810433600798552601273019080246618226935928880778104445208919179614234047828184136991579485056771375135915249214285389216122030790056273921292795447228630218748358532858941947023387122130293547231991259755221690795340696122321934091264398183152218528127384972207761389265739284272241798555646230007817456820257757414555550611213970052345210259964141689762583149775878598018162047694386099458330503498606952173023955589978655078525887714752410560027736170476482028883634563437177074643749399543763177240532037175610146727124320958243630020385898911639653593384121638633505737782855710862735683308586952111854306333195728426829723400108534989556214996644564565314794195086649786367637078146410850304227970232586268252253446694363161354608870248756435570799551770801126943852031804193425249437888399910433795526031289100230242910434577046892197683937724363228318760616604234995945188891061630139613094430683910672150943626566594211660390616035519781139830694299080847296662938820105435705706971906054005338112605178992400452815652295450014757035766207479349926121657113706212333885745868014415483963504704269026289197169087600459562937906157243165752981284858634314678168133852621575888090553035878856021851204316767224161487022100203283811802950067993180505921361549496890328538803868313958181178930182671902421347149944752593920579765486433356518174448957442939061421481694968091163693354083824634988547395132590736769118189700531871021178662562191038519952898735039915051759373780767259306124125128344538771691474555892784217709423007774878890439380553608863655532925003929675977496001865493412734514379070760543455439725018951997280479851758923861402274443139669095842720736649723253249413656614216640671596038716601230765903030495232528741877089383602313160835678415696170843056160049541172398380082926060919089086436816620963441853163112431314782076026979274999255845794607232485989165354965150917485185692243423503291050381158277455994947364315038883523728154876500192578346425673902509722902314558119016998071532559559487508292418665158743458475511855388792621150434168714224672584174482391028776926353677265152255272541206115057574858765639374315087569391164926155850665949468800978701601022085941918735359677461953540916285396207171115794402203530650665987282481297631463471072592723584524869171974783210885561364556967993891465394215626130737356929654072736491637946843634323979222016169390448467084951074315860372905522503637722414976105844484558031684797616504378257035354546636830852670572701764694683207703462933188701260039752647499708895104610158279973640251052338230994636277547043918169328333407968541283938003854217628708086365993919334202018746877502720971681320869784561260122023335650319426773818666757462750280089385305275502038747618354734561715745504929424314805290317522171947084370796485836336807151527600034444886645091971033923445379464716215594555641233206740045172678299651002829863697140399783160237241368851773712166788861060447782993348596943468770844834076739116516572855403657902988418773187574591681691243592396502202735963122417117203611408582025399303233682355578886311560521889433456671063999779137863993507750216052699553989844146080673849090790114967446698767824844133263221201505073497249877856765543071698126300011696422081263271793625029216966014189011584144334158477128597808340049826098166941944487188927649741750374742532892584264916866251520510753872430475416879267009709642175388712169369692643240636100633528787726155270051828770838345053285649872357630562440203496964852692164076411449309137962759011359612271946794840390589109593794088220564966817455845296782957810740935350950420643780740340852902562341333553402211512489050798196566243879801180869232499782832871134208590718752437432455997866712330313338337852423474384501981722498792564415275329487200320630650715948176358668076697486572551539665332965934958567063378244296227864959018958844175983221744859992313802866429617129332234603754960468205876381036855904642000017881023072893288788655360714364098953183406281256570521887290758158673864333337628941766221035940641693359174455007038746487993970954084111715301740885701449544470314513420554035492140225986960512349440044079490363492809143039420116302105268745616738279218506184134305971092887047100412299090987008200311338183639500518053511326084907674265175150650296463034827509193879258145560075547008622657286582454278301744276880547684198378370282527176701286644981645833486260276696872416435493841483332607084005384969633380572957615667255593293600870784638705750315558874293560752594131811552682912987871939817483532874619189208626595832230956252850555557501555899564500597675146301689393825946603088821988319728056945763442609923979046928232440413842564635106058508942225676354475240639957892401118063849344885447156977956864711652995517332078206482150357360972994655582507011533623682911695605208348798043238959760254233239495467935584013502201885918638454220469481027960187725191367575103904057519872998472698941869118264220412159732694782772924931703013973382262221816247671118726174369797703374747398347885409396837919407067841069858736992431205520741788182532837249863959917379965116119196741548255771567638788940398307052659841980375523671967399815552663427045494910164106241204933608906022596371263586751458056777810744294443963587578436791830873258318997528087170252343432185506190508792337165156493801127447009298978973943535316460828842614791103862881446111340007303467997066722959237576978510794288432334286386472638594712441864051248192111891171439604015126062221638370947371550000758940833960579887566535666835805933256470320052456063995730786663062848050499547444328138499056831213658592329336752211309192557505501178688827034737454016790662108947690399020861798370182588012044374282216247999470953982139106956163296764004465105375757199361182575365270071376583519918674726773208157066574296206191990006252761734403881055064222185222929037970412639377718740862363923924360139582248876846145597402684787625761447509410634983586362847854014054630428615511307274501654635601689779260841400821125844853127693676640080517514879815300383938258927380866216861776853627266392328565221837803811478309545583593181635215052511633591927481268330464338352507686825013079335175735887541814309721457927889421090583541407189502263406588957624002495327104246060875083971669244386801869946271545734741334249829782259341365404369262646124345918641192613867097816284839571729079546875071572809690875349480640169446760690469259608308114668332806536972709358291912237151889933556850224026354643715407025605748084098468955926436949161208022105147126279712506900864634562504373078987977234975494618364580673597712246640567230147576510505885730163404324368087664908543066264900295481821830233239965598789562549508956352603885570028064354321036604493312687732669118544023413089721277233632884546039840832501383015282398490275247245970361689140215965323664639305688240249285960613254969204351044825847016895907060827072554985981857903436666949720943396699387824852039037075646000516186702593863063769987662372093874997902240909487716630501180341041821560770811826690525236181034324476115795808632583396463642301462593225752289204662788058792577408026696874533878956193546609017682386330661773507894893814675994812684309160936552248314555512314407780667801163880345355454655711672782841700249735342614533252213300351467216884485731123342217862104019054352018486539948319570207522316725977717783562665301993592760918433451580776812642385948147074338818328136919957732094914082211244836707550246396695094504250047026657981669591053364267521051673755631276985620016242270146989537742691570331072146164283309127621979316948687685928608375588633805823491711789455403824328280852878745566427011166962852045807932749273248063421627875645277917993660192519673871802432898785646689635913771530713121594377034594148770637563617079816410739277538279107140359876450290170766808901004466569405707589460120804464089921526843416482550647626193050240469735702187656880437768355288335163763333661249939028570511865672023589616655191639614901274402160714339858833459842273422517756291818664815551447494872540616043372176199057359271957764592594873260526116339712845915001606105981147012908318905447125291137895984191079814829158999364805451815035270940837512777828191656959280234848521874331200903545341358584557147307628583203373564665812713470147660722872381677621494631682342453046230399684230710698693649098474491787498968181239485725642444965978090175205302868569447162826233852822261101168175232566410180289126509032081367806895794068327143765814519940052927173197624642701225583732836488945493858057160598640924170618155644232916299379427619082407737584938543042602703057629637734531587592946172652124030912440359969208711174185175762054119171368082811594028322303995467141584466792134747942650687790798092115935921383930188101170075596983491451248940122459638665767358919624070373958192228983395273161795360604612377674941450098925455833901359315857015658047606235077419530229640973964239663631984568141520215086632659240220514617898172297837580964658565468518381103898981551947427226412855342764991804460759651673434179457761747485364838861783714812291389722695798682560898752660822331602524033994537071986601404535432495802833433243444924787589086496641717946663120889423397500972543717452949103335578475670322585746967570117671888063580075004758236420581478417101722982087479398594384738140127067382642694252004553588792628750220965001073503742402802276922862958932098020059346979773142129096162366963512590138311748303863848257713372341241935370644248086206301564240347493650837253121121513474714287493193170948285799601518622767648339467072956917973973266245252077493262041669157801463335577434095627060606971209002151718716905864118099561494162925644311443888591239997668210724252369637314305188057841017967987648711827273396092360132435076408918135054151319663446600210296392232606508867183477281843863221864077888694776314431846485448953692357213986006757755963714394628929647710899164179366077218952195808177358941745127886344523566267990043820883848066220957608136154397389987956499742510850031684238863235815025177956377180794675330623815007343980452587269857482271883087832002841360632775148836595457181549550667961403496044832374196560657391003701187900517386056891011432722020729677846946081971741079533186089456835727364615451781055941054860285748523937374096339468950264411890116939477325856332526369890453105792122856636317339464539842058577876284525143256323513976229318077707522787813102230689652363626010589092837721864086477172086260901568528529947936684149077102021262945604099003962295862607732651319975311255716607080028220971930456708169377184525702490374484048102951199464467317767251045971659716475158642796467928048746736597671522093977775223671125581344260329996359144613616653408828394855033761232123111370875175607022438500283806336568068756763061979868298468781065153038058045634839137020775064603184502989332606642478614673693575511069056733641964303641133462961862608831536837859218330463866377141638793897898569429787981723042220687123123775390990710382838368102866295003397941476618853579552293279584605435111685674177635383732717190099792326860497497527668986958515155883777295187459114520087883598739593058226354842660855670028545809591656603067759595943785189588045373383469886692401863317489524739880353614287547945715523575258430320161242796658840066798757594988231931061017583631036193265748148725366581160653066836699284304895607487511213973876459035054962080224551732367099806922645652718145526525700418452471958026295412424054703107834483330589056219898336237996527505546838963105782712888925244887757031191632416455824751651139723522029691398520792242735952825369043824417237470959866495588250588114550960214019058074442300218153810597834994246449027775453528321652275823422527836924305611725762857364735383736655119365902076995626529326147484937492248165335876621926872499652952673610959398145944016132850487352035374877502810499955722456793692478259397011494209185775818695386805290464201056701612386871203242718429417826174764878983472846215027716096092767888243241256715366159976736601010499518843393039483588081033170505740161822576947637710913662350265083872740957343204901608698998551901904839095550834699117644194524515658351092852494258705263141575636468459027376247416370706802929376343026974212435191375819326637727995694757156912093051275479339634795882916349483591642703185267816295918090751056944107864691418990857295750994976996871506159526720430490754606970354032438550644934847093171228391388595560476694235868415869472993673207932437661725817481169948124263031192709075133243347025369697356288697856369111324209004377714622125403153581797188824527593059303981909406395797862282518942037901470482506996740050339810843344909213310020991752911755489297285588721824304785774581621593670620148768319305744998088118711047328126650738470185800258952873721394631969835120900430403769821580162248391453735196438145369036987314666617058483683494282018413821945132600528588458674452037977267518533646352820553763203312583116834601290559142347940201190126580443854027616934347542523630065949738872441569332482165674550919982617358044582448596336366849616750595782506973851421551959195904788478075074679637382833000168654257743619080930002836129218696633658210453800791922850546140285252244255951809804410309845152420599459385480448657303624265523672145052930712274097461951414585755512508155701975766044472274048739189213990394864375550634800555417562726505540497981609034865268523019093639931692877385807041358318341332500028318672430868047512622996730302145843828421751605126285252430396184385871757902952565795308964134568118561574930968608488551509126760701304824804757261999931472535746914974502584053306020704632683484198894658425728792280375927520085042918133368787298653280738084270636945589776603833945311599297100981051357719150327534431397089655145456851376232182746842549405647973565925149799197955568050212547245591231222115038632757275893714090847732848163409033684082033250750796733474125008246028036761865347391015177258082333942513316788287255823275333641083102043339145591992593903207172403462562456601490040349010112289668368713113327385593135719139207814131725213925968388345684678695161066263533294725866963789965580774767926500698645650317527801365499471903627533812394457901829825074455353408276928730118097026847516607916661522255725920140107329912044656738439464412145369110078236501274446165406642328509384593704740792256473534927623444239605729823146350128748402594712383821987842976622178074569644321820265654098003461053180787431241560348435282808778929588214792904367194795973029584739358614510906286416805561189542544783791356699873557072489454033049325641245824747036432067112624788907526519390203497240077258594241383315015598236184773886768701633708624909862575450446595551549278939231369054494939529463824991533010690961850844623441890255221347482079631565209809532839022927453482756562654811889152598491892573238033131709068147273755168304362358269346185314496596241478430109821925600654218389296796496631660303212770184835583098800151473510512245989266337622369693771311762154014790003847055276672932359538237312707639569903551759070621110058335605164367935225605612464111134414419468630497192048471995259987215924163936829581433030269424215537249635830702770399381883324946149174764563013402078082512182574704808062686427891402703961521130423963993877638969232954557646095789942717538681032638402422700975860290418347714451719298989725057478684532552351472358515279455439247049858398780997586906607115538110022903380228874458563569148074987135219391098667512635023731342374641356712805516436728895256183092208008293829086644176411024854846032441546615559568177143088590772925030772671262245986717605819673336574369967176296867799530041792369683613510245223252685957334299216233530015345986120773930641566936855354143838412150919247731655945630753825885609553046695159262332919857559596997276298912150813217345062720036870537401996076049620377823329056784558275766562579094970531223737049396876829461572618693675341803635187611761185748932744532397352846719560923402224303419148841160994636666534135318767128798739104442601114860832029622892219363946930978177603558293904404951862336048847940486291660470782999100706271756961825917868825969181577307548502817269025552117510621956594157146881430632548858962570364075161573964833209174913413688260348638732665167642485258640449163903484574463838619440665264857729643269769315373055218681038326673173421202836398003937896969873687253204478603569401279557006026441628902996413976502916350690225299753395035121351907365130514160607818627927504930873507729237909274695521824944482928090570746756718828537774816246657415974393803369854011187760791530407987231859766451568660635916194453328774075686898052814050482506991605582400128010223102380766777358667223907848969653972426760645639616532935931003904461150164880126073852492476382172910796825048513128348548999430526377466135652762814154632815315692906132630345098078138034472294373276716373596403147734853363839678657196238701810579101491870800045695104149817992487651488059401394407225294724801675430524950115764198931363502393237080511403271048037874829626160175378280420215834067622183668166534928929980708690771692712202219621971672875447978172379552678096488749489263031083441646493426750504945948244327928724820626089979193771559055016981886568124046617943508564697900542487150132105040095388856375582610093836956010826323014079784651155574785529955061541581197623276489904569052494818803830848758748575375659516187807435774415930992949190287098662340029437850260000518711579242904440998808480919548316508332419038652419131840739014868714634810715663859078935317892391738757468419340831135965700675874954012325904735921092312717868589528636471441513233212484683357416739282044047934658556845707068871986670463073166029308177189520160798395117010504345806082141033725288342470195274025477683804079234914306196617206971286890497658226554219073023182450500708263792540793816342801685639401087151436752327749272090771365258333675800148852201854880363283578622059304902257816868814945220955570223599269553120263223451410284651427713655682287026684852368125747788266903943334277473626651123204095585455253426844471190098814056308622055440129669470369725794942408515741204426005324165940881568733928284501871907129395112395059706108557832657620826831686721990118102824009632547710732471807152794641951215160805358672585127785487470094014569533613299391044420823626487177566221528885161023823834747361784379352098629048668390039471482093711046946733634979517395760726450026337713607319863610652414322597653188870922122374498310986249170912023578247201184761172022789477801129298496644883739793776866322920108864836944790133152078457569708379272018563469413071036073593593750138088096695089593057020000970613484981516637710735014384406032722471733032674429775702339535494061674079348505945232955161090300349401013964745607377188887995076231362846559523034373251557287529787577595538207494479110761118782565750234971503150382772223262893533298499807022928235340296483680915454155463905690345195438209230047180407878372817663233992334201795162158913715531346609427469592459432623625132308085598647841829012368408869330014969529052365415023895109419948439211029476463267589701584053955198946365510339629046739058722666940924805579977807916912970644595168933396909373124244895387617984767101300626012923278835420836694750401890198126411751325561683541438511963834181800535633465877425142854127429540166731260302598402916708741402121291095786555349629706767865884351371423475924865365588182901896602852373220088282485564804964322225282038965803603555269896311398035976218858028381334261565127664097283739355749927665133248106765420162444078694436411288834866716738657736134868045695632361737502352735001408885239506203955271930557045542236480037703175252369121171292802348596911651498897876712269857952827991360519663108120690666071221535641601738876447668240384270131083801075154919455327231355639279045293003164836418102229319358516993235302559333352692055371373684242629927652355152075981139489488126896154096008871850939803196220324189495760504557254544921986312976910977749002830881167453809512404303642669256135530645129593971292080303000225452753163522499020304487363936361730680599134186717420040786310064629346698455124256398482445296801959063727708959493884251759290215156093166551795450303054732981655175943889788625488766517905372810019231377879063040474739965777835179162012099045910168706155808108923469288465677121848508244054257323078789138305100441740962363319637698878802311880152741751801115553745938929161740450982571532953804161013238647680778753707649832016700010132060344436381632267552065287067124751586466095139333026746577661384201243283999135548860217420081345777142987673674571506707383145384670190149088754700123255820782537005558400943442570692372564708879338300740378227411488346250896180948433585520725511286186218043799867009758143886167507018006305858419427668031784889967422032790677876771933252102022877171300461748309127896237823352085828500478396893427860550806471161284429104651398303226164085168243649826907898908242460468798890673313256684152415207107201880040971257026835911075046402343297409821904793789406410147246733517663700457528554103932605690213156364095838112529242998941130783570936132113541296845873579804226735369860072117767893609484107416700970521979643827261920472569777858248412487708427893407733295084646472727940181554319910344723605974005696895393502680666245420133728065298491472012175230066378938813901636435176429800259612421440514201411304352685520114316105478221135962757524173063490962294534203252908787581482310894677058063086766474759237334449885548807543888536665354678238364784211950410259522349637441495235120379189827060794019810599076668061013089705632540906447283174490226331545807620955782544870380501025062106577975032107406124232218783581218767140963118913595550964786995756066047834076714569787762330363008513482558138918216849369367986831175725304236873194795353463680853670735448474263398706785991818374704655956651546830996615444595920098185824714567821173036793631216103889250008242001957350716302979487214026135531769776695969330244855436573872787341496603459893434526524299557708851443332935341404157271354333353378667932607446056682716036085262916971800911707579351259332423125984911380824652386915530398460411142175430577680763147494948063542681040073720737470426232577843127898452603912007494024374797212658215819798416056537390433949429257728761052313184018473646281945555894824270803983240159968701956519243606957674175136564446333013862031250934824863510567827080225273147386438655093684738073790577819025495296560666861979199863814642877260637474828870480683676346196886208823600258364036654518530149687237463407858027988296532148469820026756707687908625337897503024725048120567643789073328464527497940286342868812971568946689774587683152136740266523644065145788014732285939577016970560377406309062207995755585719503122935322702309916514055906244864304392642891588834620598484114994814695863711194992400376845306500679020934785653430668902232375926361468657454651266440743849126621192914455868845121291306730128598031710920404752691454984836118011006461079056330399314067176868628975628729535740265028169820651817632058554929820365097997674428133403475341235305264343278622298178460533808823831961932818618063360727278954516597502670028212146163035477095584171563955745373704553951486907534788708803317394182699376294938143308347730904498280695129669495666550901079389970474310229762068710973543997974963279300419250196395610689391595080062986315238007224141427319012538989456877951245881725806018448106308415552474255638326221864498305188573183867896336715373802373735993137612584016782719010078255734597829580133677470497961501310055445727815369241405810727016240742870669873089222384408254802465587005492563303574639092736437312840539503542616427438092189117170364892974404017833478911025968936484460686753283225838720823039334824545539008680625871779375267234405317597939328528599488662751050757078327570232107729845631830466828898116815249928290504854518580705293034028782732032649638542520359465982049019409172658746628975385305218527116689816467815492278818513628697426273606150721643107257835545042790875827348640016626955680202957389146026352768710153866274273671439357234377068950909497311301248900963435618636421159426974597814020371465678031333571490890653775543051630605626230121116971220979915725734872222338018309222194067150311929588507515800648262586493492097928323925157411182552721232242803828614890011109790528320717420272683266865135458836284577710251544041643111358827068202959218853274452885653921315101945073126254751629570453229671978044252884790904927073449308501148511849484039116802697383704008695601441889757540626516778186043043055372338997759783760564343336690764908609968584568251812794304420771244215945910096929091889169868854069429799297587191956829312409171261553834582634373789479504548450839991014677932373835659018835814945712993445204519867371487344854006086335231791724230987519919596562081080275187463915697402250175020745667967161528092142795881875186666384868804896020739956053396564723232047199090123833967467804225804454691523258377648513339223879954604338301092488643840398379919123696110823932214845820872448168339911894752174354630862197596294852797928966108922786104067071759036266114164599442280734012407923772544155004506721163913291104789668114901925305483648703640518423696566380360131539025742864804427203498099735325173047261850608850399352891199613546343772628562994811377505847360243969628587602995749528192471763769517564886004612401142376510187718041486350010592510190300477641783690718395222313736793634500895452003629698587970584627152357494565006645236877597505298651522513768789594869776497397632395577271780790014276906172489626018820041370671854684254009809540629023872871191976822017463354946496555298070407049928457247483040075305860183131429058376762309248752453401050966310135861787025047277553832634246710683644269993093452825331757544113562550848005325774215848819440410770901209850709189031480086361707584458605619793137402275437722955696436789948707653727759543788430777104965672365288343805796239967263954695883219459860686456059609697005928831249559438972349131088101392896525418546856879588606445524897415159626972661612120314259340797962830132638710944188544120574306411563335971131469321965082098670769867621048243509710522909691155877024779294641409959299168123158652455230376633697482448277891959360267172551412010119201588148435430781105751077577013470122157865727259024437363301698718543094161346960453545918089951286535632055185248163324015410497971860748180388052189805051977504781662833183884596709434125938194463067021505085936875460519416082143653597639905887390243419847332145015675654808634322289069933181887394199160433682716762773113914194096354727659461095127664534599545204298749094644633281159855295260037201167787599949649004043309950454232780101042727958070050833795043894622547876680418434965794465118204431313880902829346415920085837586137507034025806866418942135169258180356700604261021684101194138896505352545802489298517933865635059513956772530277440574451001090630909487527861929403066228517137478565476091964667359650473240281418191931211339228003263559959098341718137213541169347807321233302102717699280844562472233507595478480087764876839917339269304059249803051761764108481877124699253348632020242783569806282436208214058843716847116297054843106930086980144343943192926941954015943214831738027467901768991971344133441837914349057422645088056628432688584661387151910137437359456170886623213270080383156884626475244254181905738655499949493400787342147961402011003697120646260130683089284393042843341419878755986396103480357955036395665411505515542203393247354122380210338505531605327039719425342356498589539779876394681128879338743448309177125768052117939485664182941940921116061005613543441961563546050120765275828855869440002034442379120554191984473920189410323873337881322390258913540303537916063937515534057811791468408318964886070156228281820765565725066328629150936909110188434931953209166401040552051196765664751395496210523813228742552312453878728603355803025923695965328854663031943028103928461583063414786735265784209512222969580751628177426279765267191322834711005462309545783657080661549397459352300198823156943856746063423829804068731076297653730742328035784876081218398299944776018079168638810981881100858385329091248049473351408520905376093052640536461003922038954803822678271770735554513211724160878886458707918045798092219240533639337587160375428206685839120854914484562646298594470547300016490401174073990857111981768956478808081154916465759587174449867182881529071172392124987646553582091749851801988733459425634490806260099038151466577948861142425351881353874484506690515569571422431397874979372314305369905947543971993394783383915269242650366230060155045564574336877443069833076984524356224528810797395352884527674979266464451055925982410161136118361519029789025049192319825441090679029851053723276490798634674227769221451495946023840351313952658301691693361639143365164144580137685163314901554983677659803478724774952967043335757299576047305189649057399484116458911939535987676764630864434802834718289212902658568808776905407447539477399433800692764778400523235520536616632187341741257485140169088781984560021075029709946440750353762145158033764298072109881050016067829747887023274783882200432207801874863020793846110132272946924041200062095654023806141129940465008281816767901011383234704842498627079842396736279524017555803663400532022893796816865234732489615452585749993653124379733796426651849185362615746720053017307050007708205371925479952471092149085507316605268501822956531101628357448759181490580830792269770181285825121188884502889369440384076487271432259095509042215908642043574131779641127656588717298366951129395272683170269992653795549877481526265481791747046555452208976218452753408141789219041147897743882892436142390662129105339959453307595661612649426497583785217388531093549384184991872961859216182662714386956102867411134365274780074540244375108269032928149119595279538503091150200127437734193206994565629011700381027703269484323005329584966393813891519206062602172404652245104397310666285199166321953306589044678952870714409263535744415938637780416039022162738511275776820153942261636496350844232218877442412696771581953232042843638324850232479004864818966647866960742869218848355412149690301815355439494842685280459291143282336024880251417618910465194483050213759055990216150435803419279899184508309242441535770621082720306100122473994555470554221016654495876394890513338245203192870749275080068737428964732939965567778831337169063975501213934004926185301442488645260896691733846505651310687635225539136578897631793095347417142659363499059019316205877606555224159286938648424648042607766165252516467028909968570513169911144978295248130881967233382955252500882257504086985755106385783029610701471242104130894177799644860044251873760065580673997641239709097482895548261838644895513198327609443357424934690566483790027101654873174331028520967708915902167520966814882554162032062685245192781489416427208044056661865105349996193025889100323445308150870845431497237964873721705425739731364228892159795452638501318130327905376622677402261104697190464048339185870313890940440917661805349446152541006145843341223616680678990413437189461539379333414450490424929745945553038745186781776058003273995772969656639963022289920053661122905741140774608656687116743915048340772686475486036656317228631904766635555940657207529674131175638460777949927588331625385173797577090907230481880907649535803001281173988545899429555208332771213449851330443005294500212604905452247189302343325437422139713946254522127794015187604138664336576256319972019737040199869180403524203349031063563118148495079413838571829589342154172108388840119661918871053521087646736505474438936565396909644153015225689794866668060439954365062336178718702139329678570421960447591889350615744230745045346406537472706604531813723477752485684442112563490463634481530999093290343935636208081796981967239218986461217280944493560827749733824821743177933253693035816164679484950305251861674987649312741148586833085766143527387931100508739791598301312497366911211604343560445478440184215544186633319568303597776402067748971810086042550387896196826335672833716756375306235923696479182437276106604089216292013949612970408191890182670507042652522916139851775137629885456094144756886453687322063023617866943666620650974726429127059094566432194181100528060270543662604387161874327519336553556464587109024873780669381892032495207670392341966946102948836393067609250785944891723942433756710414990632609469178523799930392732487884360361463715525027445886166011087483997680440547633745512773623189119872271334460764337062680384167426437837131634580219982000410186144095662671294739657647061083470934994700740924899591743316981491581392116577155121398621032889850929873663841541426320035167849610736456599751223353096134298016027077379363577823273803361084925750180282390227798997084742911325104134931676319419666708587202747965092944873524557806800607308637607281643355367140942075048536781651781366370223765734951854531721919686994142732416248496635321701884943061902645905428514628480884142147771764485182174998441763170455393362923714991186037971385319489683786399682673472128812107464798122503863087571693101097481615262797145728047230607261305347904625530361303211038645944225821857627069606114775459141503503361118572522934757864957183413046338582263247614310460590469973833830911009511613037477616586466338924675763883947199324759552913149330014776835332322598253919810907656176404305205187444271175261079208229613467716551907111786055500396816401069660269229982778512204445392387441912320837958874826824794050415295984762290447432702225649220934678924875106724755028058095586996089269365309056509080573021669057394999881794156455037265393218630353257532920114269818059156046566756774479927550550204941532630488897870015488110084651173653387236146175281615605501478391167810672435129717807860473757226579521005797135719845960911722522833129830377686900450995454063187162694701378699010111984924360216963406481153888664157571009145352497242360675522966296295779232971930508893110946221539289971903213298079254024305644462025140425072131857923921854418144811104997298521062883562563656424875891588433234640759492881102708374762913488274426894296673276543773002179600079814010381433827558375118679848596688845442699629272932045403948866449147544271170626885568909483004728245305389756988478895022609904356911876618340786401114049912670562953705958314168876478912209378838984262218852666007370832194224662267267086774298440372342752435268121171331496617658931349128906911973227198254573284126495885875099964643978499233922874416743747312687488200766513269684047422014984388715229251779572486250910670632761153565991818168360961835479344787270058303161453057627731884697017212540628373173102379523669652914708255638236014187847415348251525671670833858393000742875817303885369917225174428526571737327193259701387219622442362784803199382687527952618434346188557409784089884978897419154189653208366556768239329770510159561598530921011254727241370673965813639372523435097287167345704547639676695275351153653729822807142366970522665628971131691324876989142306800608169994049632245416262510341604989319718877979040405186146251724371878174784368469592310433422431584346408086712923333383989450252215227444979114848887989798380516567523447839483157538103897293680507438956383508870653269030085423499911818612684952861978159911945008533061897122454340150559981039708984645940358688893616775024530883114119607281227361217525999961038576586087254535225759642950464731330798985992739692941586494221915310163167659002233916960778337233096215906598055523799512083809627917145105695021969484744307859706857972237026493573724045583487465930786620172340866233397140030242590711015552711435539662291790031307182222449683186541548357236325790234079375290596396007645809731438133189502218068737700190823957447687527143474390866488497516666786520374785601590051506277870356803672615139500051962069438957223674857602247349334625651899641379309095966332596360319711759194540735133168402627871597734249213493172924864001203428287380811975624081514719350407353607468260221504720292217887081425648138189254025976139685345860988904887175346499621707088909776587071506008450205444716719162686189698634705677952428726612753944504803152497299148861273177794464061190310184564529891725360555150902350759944262926549621021076205404042109021493531116130927577085461186058689812660961046988394858798425053587387491426495666436168393881441852699070038927246280684930022932625106872729119346101631099493784628378272752522457190357344296025161153131470546157415237893847146418775847703341531949299422664537505767476830605751252858662568014868161514720244202755848270729958385238461886250389500198657119555164207465798246279585837791883113108801520211472251892547488851187938750761523837052545921929235306569654761347421284456578068582806806194958618570833385988656359030039259130337804074011014825063023392560012700709269813404154061499992239676539531552978193988818098776335764216345132354515764949039454084875316950691782783253300419665999489400883728015693394902794487077055532105239440666247290272014105929651107430556124186616994199527294637491213795765642134920783816567024281073657770937471703500201560190818595829367307697002724381963504119366658018499004702034466263446807562701834296540986380291961293031786410904097114497782293914578621241684614648056012332966444673325765825164411650826245079198124332099506771265429123114969677881074830719847898060261618038495719151038788463080976717373770774228173865860409444332673349004068021472371873692269479811840000202111813555328575094588706461143422061333713243941115791204415336857074649738275782714569100464033761366101701425421815034417789001665596708906120272388367985417405314146472325793787968575753767739016051195048501722597044824533217081795788033947599565708122721949424422540751474068328855122228180734888136237031205718618327503562733577581839557614454418144281590913289737274342280554067459451607151757990192771023766404287816092845923748634834505399554967012254605612095083647517166751009731648624597639135898928037872088659521311508762461633063746799133762271133859200926245744636805388304132927691473924879427052112320943201221177786195766023233463678996096217947722412652755792781414598097852948494997647629041939642548899794540452736228974807109636213667104601991496376054739146772377392575824206740946203953362845969668000509979527328375325044640874687529589978410940591812983397152262009357142317101553352262950948082360943728556547284681031031183952120998096347162547214829092649960726701887094077985204574606866310613633365194031491281639324806793905330578784996339717066623049677458649540982913320303971415403939785609452692276376808882515590850684698830756310663990473972049277423163521297959283879132502577312617974644398287641009588814345447868684587810465147765936663100097959489380711547561971151774080647504916425498720153128930617868720252251811889701693776196878440882693398901325000756029839531762791579336344919993624761984577477596990860616702262859710156075144112168655383660688860106690836622056807979196592918564637664678402865901556720923759330209569819411334526045632349860261556326552070423984718472499807571336396543159798957755801719794112970321786461928772760236809566040841926559570813022427820753483235363145155402995316867494807653672667007774871848095007539768124091665757527407439058460251927762777912972812438600576304989861226181291855141693860439350330446420484254213841215360342242495776140102488709057070274510352151445502262558894146527564479411021871683241105157491463873370192329139048427154224461554993139814430405890007696104755794089639695565073233588161491431277854240926906065819835607441929774970240308638270830737700850236278262125770541111710003647424034119220697824996499849067206181209492733103021209180437349887086601347838943872755746237521177385704474224274107928264302757561577947214917862714026537567718932048765710961833280818736746647428993190107897271179465610522820881971978205419031663475865707531647820021183065145860498245552344519877901846742803765268851691519217819359636939115441657235507935863610641205731475881217084850350715424697912914102983835364037185448200638323742974305571575580716607827909716733938752252460947915068525423689055643867985933319503471079323429327700138824858376882721472750160866335599762002511851891232459506003487762474107341218620004292037532494323527798971884017840584443106451170863516180034245601197023976756975875104661004548009175205279524008349066341476680791250725947692750901655122998095189920398463125824954513663488579730089676799986080891691463333311994375220099239597234650067812278296921592883098182797314063764758280360171669510417305228024416620354890335905986468972262091973873848883927699665125539857121491417536882547835858445779091891204906645184620171857626125282879651790998338127274239162153860341390062427189442350369392450278101701403603021357149373536013860224403144887642633257246766086497824640123210946321258276951096048689711849322550944901130718443613603552166105568408549812579867913473840654807764390139084530080143294633664493672484260548222649776434519187631336948304702596223534132108441014772241686265700128366747520837004373649457516324045909293810607673583565715878748457526255179087381903487299171769108552964340787996498405899793554173756568087430447833485473339921233687096352747643158695401171716408611648193190858765809283120169589244031740261632818709141560482557784608909366744257035358021108379790327040456303627151274062984148559353494168688308276510265898666656825178597489922659137723833305541987181010176587730461260174674000465215531266761758226108319861519769235400266302969260484503278289834024357020239653000959212741007429880384680541396426894855890353636690845731897329778526761749404921632213396665538905544879966922030309070418306876290689548514435363671886860644152104438981818043911912522136864963036025463662820607632706535065655182932990770055517908852381701874222706290257332118529845228357677860597408169570281510827717746407022693563879404783732792592518913166897624711815190828648797686918680758914983035806207942977064547953615888851274410162857254699822873757434933866057045268131593021823938401503134814045823104170106524063612983049726219939939761256284965501451437758514566254786576689394974856780764775698899341831907632419470200159065681285963132884527777267012929107997038334614251274087701210476024137870011091222577465546372737712040902489627009981714628402298491072009597846343270081634967480935513760565561549064627876413175772193429052910685729457963498915428267161217493241380123005182852228404661784409132266831595207475309019562268417384588827638978537892837018279315790975212840702565063724190924933478545077887221454983316397568206347339875758246363380702666554386482629901154278147767967792366361649884590724359109082282051023511508776883916978654565799649874362869315090526197411790353547021696936973037571418816886210707421690681861307031957855776044756789679219428346161479028506969844992673097660691798735157523086688344838276296384070626642461770798762723526609560429639402508272016868689319288429497820672941044069004260369365359519645547111955534576248853907466211525821293027607603174864231062625780610252027698974708380317359483092340219309118473064914643821521526696191849206263289655403714435395877095457013233986140501447612943629638686541025841278188351903330906136508858354061938945153792109748266133001187706819190431402740328655813015386151310496940393112160342027783394175200963104957349155752006816255949691139184745719977407719713688122281426059213183219105758536979693797488477689614610934921063225255390299548104668306491175864069406952526531558989661152393902371926594313954743439259452450194592213827078296703429622424014020665214317131872353313218044544949839180433852735347231037786461560381097803690584349336857046049566462985950205320230646342631425756441940196626357507388377092411101813060538731164078019444024664719895082884425274272979245057666989688530498088963591314989830592318831172376105965761638563837107354268004163354734917888874503448066535807387560946303575757137435651414833024933287182390103958638009007019974434683429059039958581048352690218955626942355138435319745955589020671443274850804745414768354362304655582689030709703075144125723511845718124021884869166403593611640238143021539563253751424300428633818372489508689547457257122183101254281432006590333788563884901577529869085788711697043290102483335476056924533783440148614858269805681770048345655564530620989692194521025636909496421589759263796548571370186793626657666953697846843748654385907084499110583351435223204793778862923041250083791071617586749437314791191931015112886246312957019458382209110976887984261598954514518587621394616727504311203840146362102106524596577173161904758458603722934195678849066251119624692472925174630893569660229829306867472091370296540547068337469082145202123431432522007495356021521865366835519377918607451415915658135932047513479798972432313100596057759274248511542067130719675522508375694471056230187662180501478313152059300814056251339014652515482654444138068766359545347672618697168586284724195535642039184063857866475329963794578204486718130392941708920009641324006590109879378259998910749154942988712764590696617596665759122244450897559503088878712842532887381994804263239921969147482928120933392704224480331841087518868338063084740862726930968498712412871729320413711992678275965836928073951146732516503782451508377511211166140353016199791645747736225069720974795808668204447978047165794292533670915137739953334521823158980730032712956862526523406641751713897777548821819366078660887971088051819677426585586778998702760948347890256058842765956548263819271304638276614974115850522306418383412212338147313713211635225425592228130623570366696694052410772921931781486838201028761749289210424459045143224245810500290321542903980900151262588880565936969600569386948390828152417132246232074383907828607833922152638579085466461422728304897657714815524135365376629010645410854605047739675492458397542525188646479413782798655239259184021061106912339895541854480676886599168129261361976421560061690895250307231451009559189089914096419058815767696031757464939057279640757935701421634256426737071178587948681403304669861088455253715433252700196121810960982579831110476729517476051648857789366798083485936637564864128158628185610063025110421722244215074238660067541506773941270485773286213856063381049471148296027886192462860847853668557205592093168656443284138772390610627883987062302540217329332029424657450894224049288575754740415226600892009437509669009164869382198653638060387021967967200101607023319120102345787079812363920456119159744964042188146467322963730915384262778928737429062710123684846696283019645218225208142744869251119113518185464396018816394331455016332988237340261310679782413796178598341191615783283105006442880938721174491770922223593691129861306759172067922599119039345591147865818761768529591446064015352457920200416530172372444378974136181833377529142577743815702911793294428732866788141703723667290179959396561354394706525809170629696564558590560709581794813075983407587214380087072789388691740938146800437247090311219066659074783430946712696884882611080318914474677824919940443424162846143431348116561360057102384246273756885009288895896945631975840021396890876470344874492236191852973528261273127624214256101949739703557852087454061898320903686002056909153087433717674461815068296891478423339746861253351576768110979685476806044119657987378023448767490295136505427870521740890268837757676720589900762766384122489192111585776149898752727067342765540046903452516160676273536146224344172034443163684911736710737870123862483457051541003042807275324656275679037307853537012725082839562939328987054253201937517921229345681059566460733327146713437588733812271666715618408092121964367853190460439684902606413781250232138782702466074803895793635291142076051387810468400854457069364589742487779236565443518342779811763489527592690393570422956571275396103685294401304777883606576046023467416394346147344745555210183215192632387618420628451143809345099549457152994511545043441536720823782116279769258704724178514348802816546327038675098292925070070082940784587728442382549872670218889113137698964106198899496940782801231747020879415253297445746777686394656741880019818325084063256033871409223309641753884153484885809212612005308098198912632361721255768674088074773143865441700549286586724287538237292017653396361932736764308422724108881750332288603423523320686131788060625078447575989726147487215793694521699206157186897518614432893820438361692533161978606478182641967510826143353982233026989520677459263042946008261731566469334492865241839116452705491890279360164016781982858831639266040529777219965961501460834722618107919629802121711173323788354486720933559919340177070397235224746599449510735872584006549490220989552370554065799249469670775700685268789775948886320926496097220371224055624570478520152408457166078576435311651407895162901933523529692639506217854914244919382627755122704326216860147848446334506647914152616387175975848537957763724501215616359944935735320642043655792520444964375301012302178058303420917591183084861351496127013172003107065194124266951160985760785368074833670408636244882398083190852644375456442605013424442190765107312145197329658852965622885886315365921036341801882920385389388719839033360835712487824221725921326623953107911873566010639393718765237357415705743869841095453595379588146080449582656971305510689744781921830716018051116674264556679671244601465071065446525127213378625055023029706778173221365283803009311290956795271341922537074797527069816205518259900751532109864265171843900305724392131949047273132130352742764214278131517402352913669991989462185607313015194009225297299693320786293723783881950231286445270450765568734707397895698188998961481422539895476915679296252405208700736889819223516785277834788400375322976050411718463015621982218393389625063213749200185740874875986404049879978139095855871546579108291268181523466673215225638438644101809027879375790635274240570348575220794637363885223514860574702118802798501050458211468706791157354427635601185222342288996307295492478042091889416428467069136647684399619403309143301376652233453020628339445839400904954419843798156105122220361247612140238763958823931028791420295773912694976515493341605696024870064166542983535592130530562819291517746764033523231000921587879250254422770066663038701610754448071423122182386687004672553945810816443181290904945098724794860955423459246286312131764487951563928248911326319999583660677116895213007302027666360397444641546267321060582147508124226781838581423021632035898063861918589292970929248982487670986551683265393545328837139413945343349507008837590097221021243612153817110723377734783231962460405934104663395700640134007565797571213398581207200577448882045253126172686487588207742200875661662313090809860431228900524783730381775375902947018292878060562959046488227474175883376118230711691474172799824603406990211137244448799776151036047492576702030091756866786150385667077128855286683957036690909243232411026451508546496402966488061267765558591155681274228640998378021927310525690950927389942168784685922609331691831383999398001696245641013328157974757583824077218166492908879242127986145865079655875901059963390956248287382430497228274370621660596036388281320996325696214589154137369335917638137743471270724528585599166398072333122028935256680333923795657973317942603000181616096777836385408821330759333376403205593601459457368802956957879106000436883897024213536483882033771411145654813459064042918952766285737014511837740400410883194541079050517544756247305698475890451597190096334586793282279666428060559181515127449628297309620654270167465198869446309919278267838041860583899117120017494092420794015033415516153427891136349531047928357923921136871093319639247592567019199295505223588641825606221992256469167652289612686698929431526748058838472083740663602016887639871776601367838668768644062983007532366027808569835103730524297854944099727244967436737897620989424786476281153953070174596010472164532775694045315767756795836644114089746819993754706760867357905034357596424747396143835677858245135971153716561857445145781398766828625818087823060580690412412476155496944670083697457261071170527360043476223949183874567778924382181322002812853580015678668884617015473659190092726471304659707646552809459772635201517043268999093639093318443245593349620383587665705077134647769235382535357561404010768650693693463226455238623639890408104738518823521334840371119660223496482209054814442096591364492986425681766245364464148923195267720210840872072101923789708044338812506910274322003654620962933272691745479552867657220725559879306538036887939985462576926165797661358014653844998881793523432072824456982533350285807533555421424538686569541079986324077869082873550439730065476074349747978515283470755407549963401836596741126471396730440675183284934773847688839831439250084016870735084621650850426372455350385159074972810393887802658217068406702731717148020093341897118095308129192642130151537149278709334916331436318689516445659549586391288056711709773843319851768451421211331438309493472955433204420311502319736879908141195677600501393657277080390633587553525246544369094540744085576840174159916202645787581048731287763626470935516221170442686950631376488588081119830415200348178885499290568858971508259381050622980967438149890601063510142359813834183909009754978265413623552846812535216370474391229984707010368192699058520013607759126976810790282989292534378953428551392000883538444617033802174141395063626200144297595778822749472791131415767714840293081655383047726536844079759089927492530124750945502626623744202151781724321993734547259681055232469625666397134353130146108426663372744627233354847878324451287311386958658581423162286092827277787817730642401977838322107306541140730609586569973172970217946489534708479665210253280042788408046124546154860821845932637537811609696622896537052591791518006004785414860559902184020974027233643425751095868929466652556908973775760677736368088157970249384560832323806500183961858147691102884100167874766600681399858104791361784801864340899770310240602689834050733580683316145156201536600265026636992135509042994150122294537637322239537440604423878049751267822865967539128470149684320901368110835165620480615000786083341170566959121219050354051013501233650325299467568913070435696737291263431051090352953889285244734605608548250234114494685999720091908713894418146647428328422552261155233191080166955602171162933936374943244879241396875350771670772899547272456766220784114263019227916885835948198185748649308903082318485142951585350868720330515050304563091870269585216966225009843439593250710596509792341033274884429302412165782878212605838480418306857960189548596353520481682398296923635832979912627562970060741694339209471632953985642161875447474121303445501803338907279115688893098446010494381317145867012981229182206048317188228315006839912320518041253203472248109161337431415081750753178637529179121534714965758451784170853822846540291662293065791271743802373275495166293602813181564636174196931420181237832233579439374308681058300695448759733531697844777605190865607143720430425269391502387176219389980376230794741786954274280005629356073822063062524999627247606442589244407157984956301285317646466314632009892469001454981714746111624373815283339179555079080057078767148643618496548881787785089232662902015666475964190521160770368024839851489758665153635909279045018087158804217498236001011270921764911878570796420492391418899628213394468818524877935498675532612937652555741230159082919113087199681505777952959024334153548355777571113297035580015915505910549756661313420138922043441676520086505717347901133536948799031189295119698567661243648789272115959313037902147912977915561609270274774279413707285878154091205078596922050178049290562351634869380348833717011038837780526110363927813402536425025098655672884497818498761310703219305990948219260100550013749518872374516438140125787445812935079987482444027031291880015847114952225318798677915093051264686701581095736447454486857561725502820088993910996565120416966018020484391337421590665395145192102942922486993032854245436926654393886004923594272521047275858593105299487626028462624367101446183934190852041089559844130421775380194613143140470017831146393164311685542627692683491523473933860668305670111650646092277419411723112650633753754350657625729841146262229742430096453654298461207079343028133700865749810381856919610314532796271501381788940080753642027370551987640944549908001346077030645661305074279866608712692392902492219073822269339489386373475975458279005869454239720265235908143902790491771241128464428536373642837424926915620062888473454355557006266314060851758418893979691408710347719760102893744520376481575365609665213696665241320521612234945004077619275623462952800783300076248046790737541788706635004161391027983652291901900511496877911334513036461404262462318435032628650854338654130145409344845631126973781922620257992916529408269748900546254896843621889973206582509925701667293589551144819736390959099727362314398593989191939544650959791692327920322577845748947189174949008213828431570546660521992296901203135456565779951720423002421362599728877836565528692881459267488966010449768873679700427899103523747390451273937158751991051140632760023629254710731534012793821667601704896532701814592066462190076129600784168196928435175124117311795181185984384674507705128753910164881464992634787988521870488369555477507155138540116966347535253567950114233872731285167384825867137234440335991745825397542542783674543048887917208878889119831558034192798197850429845514522552549437598408490935468534198600204210519613381841712661635061883361339211833643604421413206535405826354664627491711210764661902917618121102606451264018999054950596192189490654192501375854744456690321600560112392999821920850182262653237642538223692516237141581878712651105897501301633818773711187514847852050718418132613136368348763466341854709200067505811623252926642295168310501657212379450137643733002531571946186214043242166159821340463432355105902941550953579348484495393698830725234933368528571535711337022227674516900265326026798210214750989941152278589470625988035505936027072341472242688538957906902151341210435119283128048296322615665979621158147018134190238927381505281714820377125664217156377507262922386720944672548018993145709629919991862118024095128172771839360575193085238881326125810880863705163755713764765018484359323092207247847119118965960648261801125981107256881166260102772107064628237418707065031573323580698640756118360628704471225657670829951847732186138316462822772895937199385949621954229702858268338453495817149268879023051644672255184647323193703047841654230062553367491460805383433427176163246624103330929920769313890322776440744808623478939904455770103158261437993116620705263423857569370699323699237974480973578320808725484593680051166303768225122459715446298676394127621088531135285871897485504836799751369277567514891759957863060579941374170718581160616758684979213896001894897319612639872131904733750773887671251606457272504043306235027922016984489889372453725565948274926126649862972961447048692981738285295886504113902811396268811421117030744222136408824455534839035495322461610038782143093675035920338589930720606794937812601878449981806117549629665146691960101422788220398862147270318340576707619291229933186292332234951649228442108438117964395129794867392350121854284522648821872212681659495362145616347342523604515097014339133296919371885267597397032648772297169666732261087385101865362774262646807125858155099939467720921323836611946043401353710560102752695782481919180627546027109608599157943089367324314461139847740600459344840157581435023827039272285130715537932668653063815417220894523141158985924218148912385644241743491199339836269372982583566104701503538117531288543478612641072755118826838894897218214288501993143388118853819872312459753963534277307328961921538419365237503785258593668800494077479540713867580448336362284078622169427749635558112847059641145875404781762169871874728311619010536411297328960460081786248210257535550950589516166752023915317591774562982787408598475616636447237130435098737609478063072935605779231773391763759524891453275152972400761866887920645426763251051370451250122246545582448436457007081431150023798725423571591549189421914517185646029382592370342011126914593645917978030866969380002235408887152123073093633689723577252279264296863081212960920698201682907999763799240265036386818713076985763157080158080222105079054819846217845569610845227653699409758666787704032158749525310435160770445525987065987055413554832218621680477324624231749770109410843194727652635989368697346998703412222240345467727155564155253193145617037817094641126792320802724070870057407753292171360843938702099294562958536317624147128880043036835782899255915751841224278704948362869591955182074058410752348193235625828270600631309456775884218457904345957278785914596686261675696957585182796875588207597340222598113657477846958910692949547078070201603967051341450749912384151238839711549113897521628125869064244206119501270673954814620874420507488048082171230909448723029598582245441000005693401870694008693043807139552809885164803904448002567903403735325217282118060311600248165098473938857646594444836383434995721280113955329299301396464391421279105368523855104529198442618440550197346908148696141393237561626457426849060671875864883779079791304953056309895689733281017192169640867825521940529228658493409372024735166723845725842943204490231280502067316475926375748191373825968901424249095534877179820229972902984744310432022025731820660793662662114780695226921347048415012351914083873585530614873504028229507511698544309750104397165966829655965806876542528346873391793682269335847429025020028327697706550564140171707340938064752950710725971908220481756613554729305383508828682690022688577051444263851834016411380126067657481843299189153506289087980536181686967871228104013713842784661240892799979940153635401202717011450218374807138116001889303431464868972112434417032293165917603071558102159380009250171755903537795824092888481520685554133110556408395312405888189423270677451878166551083541654433827665072933499460029125307872365874570323694824762090234091749895966559112628558978557016823825931298124786527198215603814145926017135162327174607509330888009149410604381367031207765045996905005868799154138268228160375284363431028583718784256271848048735585029778084848497228498194420414743684284624160447721658172204221394496933520310891684611523340855742454063121505843907380376585318230127637077062202562183047013340540997361475710193379195964534387246698862513959142571078521263762176746732844241416770889139957789420803081161865682013818613271066375090079953813185761924139235481822627509033857125667181964803996710106646033077182804098157154392510530174651869400258131289556997829461105741826095170807007859309568068269348197284868265712716545063906413613007024190626386754945031665637705068872139014209662046483172340873503580701961531122300268817208454120034231264505120703221583995773888853204491437227549135316570756620610522999968290799226608121482454015781144644379671106708661186984552970168521180960677894191331037852662405878761393278322502189768864106049541018340784642334580727300386212537533767674858087674926982025239226733177247624459374827544940129860274836345332258100313868152994470404449315140056047294170788962964994780481857087082613372621644881501076163618788575278235687153739071292155081238135709731145374316970722039392768819094963708294508783400246985469660004755441515791022923900758135564419928402679808015806562687045011668390156659542965227510187611586698942337692652436621992084245338632230089378959653994476063300291473436700779890624592114990471380591847527929324553180737284554162009399063176566903245925504888677044562946738287161112796266986148392002517472299629046603194425587471048678804153039424721064832528104766988538692172032684704492978633116846326513712359519501718492866478425479460800184430871414691333076457948060949345917195805917825700268574354426922433754456026587836471116401359094456123364038115132054345307042161712939724142491201070423759584083835277644738804138207434054017393067164310584501238514655287738282131037616204094136919715670488964289557336514098342374551241916472287340370417279036277407281648639335481976577268970599753776965909319264741958485137303516679181198612263711447244239229144561020361523545510206272043379790260927621269127673562361086090581848967780357812251748628137865352291033038330435571665433287422098600459393367359743334778804589395320835613703038441087437507646569764036828476510729013988003584367701256632172781335699416923112764128965690005905993710778736891780320642504660290152872177344138460667487920694233517023974199252293749705048985776224804903192633796151449863279297080175423062664685158104895622989775535840941596819120209346571769452110265883068018918524266965743026472945541084985795088091775032039807971254007107375829503879473748951234797037287095203503267792550447240576426498644716695598925469228349537047612610995140652836094369680000061180167305220641236135522538991411582319660065757752497705428779013637143026339553709837716142909077882782419532571594786168096193878618229152569992688602693685547620978128517611930038398081236858960010683254702389726732028737732716480098875270519493933587528363145405511117472921559765356208854202436033267788071792482695588308114119136575218277641969667605399912674622207585656147002792207497717115481356133377108961014727669684892879059009163191059814786187269930554840621732666016292004350081333234437217571969489208193407703619018031034355757503182706992012744647017716886528968474734035802046001014133425183156580646351802515847971856474431980011709131587785436388055512366558210585355276255117964565528551081439715823629293078877247298878562362364931561827369037985515431990822404986413416376161990331824181272421774588063843876797825978916287770363963363700307672930395219701342872704885755271020883350915267919082120838781284292498445642152236939148661016458655513459327521213104244298190790881218827265455024464561760729703571471906205236749484118243529387944637501537089026792648657445715490701584217170908627424536037203652336836979553246819975587411234428908806262741090789752404720421047090254832780981173280788711366982697667890782438727914861500230997083886036687196900193204175559588777519853519570662535558609138550881238127922282756698180276324738051954815442555197036519250673292293483892346184339738678150531259316637479642927517426502308654984963965110978912698520669496476802315721836019245832647034667866161249028724509942585651458560035666846002274880429426967624170497882777974107124173756792610652450705788060895474091844079864179953729484757158241156075969799760683359280587054198646207577373867557011378086133407455803130072552073599398355583651759614629347324140310442075189388227947326627176313511573012051978099043028411087662442386061054534468965687257563575506612608168730936777223016580616295226894087471342837452212657060163331298449251989139059484179051983294999592910467089096818397812881091972008455264710678015980918072392045259286489196777553883856795923460590562516506665022425343747508832345778587657857665723902063765689887522145995066324379343265663560887595117640928232062970243744239297525090936132155422008138352876558713682226861271491839157612021654103883060941582592076441827939499820158605303924480095059709585513274755263594729322966305761610320339443956185713697398487040597684428832171186272262514080334684656811588190042696343462890906410349799213928122955755827047052436593936925000003058360870278618221707417441007522400398790273640599868271646627378513416244213443725692859727876666333654518566120699585919006891311528691192622175934874373355953318266722611692776812136278731266925211931371869432620046406311415095875997149888326926933031113882030507886299301518144176113030114363344844431999092711173338737218557257211539165025148978780698145940433948650893716432339986748345730251194194064610049167437454421766659505760020538379558704089866297297136090722328480452688961499989813310132986884257932817017844508788320116869582155540110797841051870231230850531806366769396426865061552533799653170887006488987513994285516852998426864085458514501407531984566695881431563234707177186619866318941171898411793905585008769455728243351018267552786130606967078104833719180913464798176153668570937463676447272931078611853693890202121135973189110767290499821074168118157476806094823524286529576899140907569827080779499526224268918845575794128888561678000556371266552414135569196814626872182098033904865902156677373048229661099767431241796950395417713223365779444447287559900757151490241202579753274412247161105583320868786028935579366229245791292081689709932025685460785571616974228348365244323306015239318569727752077735073481807744299191468927028982206559176172629478510880233219133437542395580038764668275451927385972966193757945023341135356912304778220992580519524742158391942930252948812688294496662262131028945024191748455925218987473963783659537051228003986575647232523785006992644852815403438238192789560023437497103263808647629062368898659133092792571793397674363827513627894106917206755240114610490290783785894081479148534054480984791601535434724121709801987435659977404792479629205850059304688271545360630002491719784451549869923686386658096443849395706801755820254310619841243081942314227070308845914110663115494816680400276933672121290613759185281469611485469726320737396079280791970699594825399691320370366908670722619356458925626535762107132218783700907780214093291299066612555387719744271610412575113092705008593069134953442886343269845980978998745270672400569151349558967573635215366716315253191821910124485012862419988148308556451806309904161985240067444878354308338510656518114453318425988081047425982297082643445176750424642063756756193493182999729962091675171198995577678737229732691006753216228363798443999926379178496628314414610574195541423445619740350550793150731890869113743692808454273552900482723471135635049495571946311709979764607897907806137175082929719734387509465587173278134924727968736552633430724977652516226309894712462060464426319029263493639058431913313202929422595237348001364853957368930285242833039449751308344193469317635855318183648595148430813489169245238649287965140277099349360483256252476241274905653259318672570768853093022893640994950161394784700941425538948325602025655747533782566255794529118028655202826743946803213425452384038523705448775652643695161969315068275291096478040085543243523272500625106792290618435919473842908446340860816158806791439648851620580030922009061480441228161933562547549900596011266226445025680646140765370333258415854158894955097475934874264866440900792187218895346138876155785368879808269058167824468692369896980279202890848698705429399733182819513929520132946138996789968223970006906104666981939448743682830488802351405370667841266810667343195877071593219764163953986179831072829224176422462232035613573836523049022401716726228830379115947908927917116470002201588654106521193917296743171803217724178047487011573992492537736998217449069518800350058887667511691779383890047268296801072318440924505456243807461671603814806930633275817110586412771357868975410148441134355442859980084900323418119888695686446662270045585164902374553611126521757997964172159374751281918981279196162637590059295731709078816312264010836246700299412833210713351344955352537347677300003598191148658544682565784304655975693772877662969130598487908853996021274802350045491012262002040934602032032463427011375582273297530192604067243051709359170090681768776792934757012977289274557065661931573548865596014176234235028526863162911059983794965873614493304579337979095740433190545728900515168818975400102927681321382244024672524997258447742388238951938845042387757388235606612795387969452196746197611949662031624735483877368561402918686063940483964258490783825950008065095661232427688217861001189342950030804216423182358001655967556772938855955134747507573576283440663395486272276092629034890464621528293056315511378063927331271686269848943658637748724787184497559461302474601416179039914343683164847064525943585533394179141693496689247209447227969938203262679866049594154126574281612772182106896208320970963191975082878494694348026370436893055116155448677880787907373963852702036580432888263960793604762096221210136363018772464175619751211153752063658531344975841532685631469703756346760566892991686501009650984325366039500539781016900261746113080895419054564999868662777840805545454491851297840130134526261216329899681126024520941504964627967669402854059843301202024339638466500887112541293283836725201951241585016091900031623756837907485855122119092158166336537269292249827376222183642582571723538043184662141821252789039456379008682847248983348517341289812285472541359741989580372020142044689464977832565626800489616127832052777027018077319602370515050968422645600349490188173615363116276156063846944818698792410720976976051442439472602599338971816834023949085549985497574165420901646015139293079203893480916538137767688172155900621015834977037247564362147591118699751280231175772598443656511666491714592752857563802024553709857739616053235205857975356894660111164269408025280170835403167099421483758442583097086531558074300630856181657029510912238465104083877920177646059960247908265822546385530730330582052577773988545735522880341431957502077120022872349038991208569227465734853178508348294566888438923142618067279966745778295133696925053253099569208279045863597613069458229590932213817967656127626448198675772038392131789273710524299736718534841280751700502014728811167865026921198183535258538167266455328427232978648181931015246804118263189821412757756977173460301948900499625640593974596197175733642164077260312440216433748199325977155434618754850230914598915237290681743883064329955216055378203468049946426470686568251729983190045005795424075231357669814643081528368740711178270292534865089421361812159452166373928411537043058097961582907582970756473711808687434924682250528599352574285372640019848899371871679199704373232385823106633701546326616650128706084659650632465365300834510521050864261555711385810930315925658524129741801224976938509889287102494030642367597054036894563307917077722703752395652537764579396938082231132928551015520149497497172005299826973584581760197626669046620928290365152940824243087169229101534383001617127137164238649005183481534946524908726923945929955615248902911086527343133716453758541066906633324769938920377754992305332531121372697921414829810329368164984115360450147405263309438501621272402523025596862766293294444109618776971882502301746074799062505435123359023804895242721679059404431612054900704622822058907725746878527676958623813826445081679767902072503887518112494351731033782236821650393159070632320203584826891268094988573595860265386009914001992009842407747183199018277634600226256562827330651417308633564534640646858957473292754950780091898464529296449086231012168889271730570182037332848584087181654390705156073324644046946701678173258129399509799943389147786976314200461048052528639355005386244172534045092621490048432011694061973028467706854975323693873393276855653646358730319500204120007891446942518770574272279024282476201773136673565490441350472221062224171957167631366346331547478407995765252905719054335859408412282269731567350201390181797632184446060558239084515175335408189338289539570414286419296280959159852426696234571177629709160729548820657328071262903110559096233491138389755911592796189938286033532266506318254424767768183758765407414048750827150544866620404227673792514099014100667950373117246624219828210317795288753778173439924155582458504220371591481880196239887424800206317578458070669355981938061499844664892433337522248396837241963262799614400777825867261405573585562207781788459008381301360880604138111161815820771408417386706371592406057184063316487548440668662960308911054355509445339567851164214758311670560400319053696968023924791399590273397337576828896875991273329187339828639324391343261467717295713377386134318915935672962508968745377384953356495064004763319091373749042792338359640455546082277567759853534693094303110250838102858315703143537463469781289471923272520557104852032167413886138338078528843872096487571155921179052546534323185625520084965058523534700864009925757746547158176391570521020133540375562125405255359938451501433157910625840710677814796939023897098280222796848877418302941788037633923483853895713296046428468601966187686957296343049715654609592795158739885826547565548946891474001188984590343364533588697759678061413188779910141294213981128223189662125337884169738614667330389155842328875043558418796732055655685758876658407859224914412621747661136957077774850189104881361730421596519303966073053507046828466465437253565723334409417952234267583373021389552731829675563301983224800726997953704777628206112280343130336574874514865946373690089333526659773299171341919337402367325021866928202357832918824883442581526974656099949824747859167061924185493655948035748052375165715793723756605954525727815060689502714817117758014694185540341264894097955147514420049107004998017887237886605586375051783353419450899666794578762444419992017443825229757999180505630429746841771737192473050676125729745245251713698031260062710629810066488966370830168519548616860255231694461383075094920837319307175001018785963850039935988272312438884318386011476300719888074795334750823453062150063667110567501894255481972970587303269328625426485415574803509428439764253253790234141621362114817762450674442352445973801863778347865441514092194966390821223859268392781133755566688873801286875433426611758072119340775739812185350527529711219756078131231054384195828547720890892649663719460123315193523677531266053038804939887896605590946519298914923041771089564435687903298792259270154190834087761217239825854266000062183014611025394625239266693749830705680722217336152400233333634673007841801723671450237318901655383385816104435313267762651753362673735475726450216865868654477871960306894060578002913615101015768783138797736097020882757680926424077011425410914098005556227411590256347826339685797558865112380538186827252603838720072156184187871892499108743819134714061483509254272126558791421322182541874382916761045716081517997769167244289995258260974566751195658447758984813591220678849583480654753653051716697094434489390811323613722194611464489583445914691541260696206271321426971144118696359490309885723297324829684467578301137005740348565524184569087106749876145594833959919457135062897227307957244932791945639321615403294950974394343460905032198744196281527561444855163036815987520759673762136605721019244436660206120317858166611568927247154703329681277556953180128259329230456908200226105185752126083702149093335285075005269968827233270042675331916891137010003435880285877861447491125727313098483965746393063741670988479457172297910098325968929406200517174874862534586154500254697387854056379077496186878951903414815138017498518989023528118199042739576376859839917269145277454325803102502536302114285480649136481633249659518665519438794648304729126283357726014827302265635543109216299295751088457423273455859428561345094658405670210753926054054540157513952057730335466407698078237880268809811012111507617696400011679783430787583323911330500450053007885261898765058041300654758370870900308680591745185241150037498974435339986115909936350442258659696946800422530494722969932595399072316588056771217385523755285266138575588669896206667258880419899499014501430968861805629796332624714589176431317431956865053529501298086217170337331912469053461549096998095113715144495997668751448894370013402253643225719015070389680759954995246894992734829654152317350384225956368283022414211547021991283945625685345500492135134221961770945443119390572419037425692576461078564034408742196947995205271575295870685420117704478419344780511833067977059166746095722742592317023846984881656344077878580894769669236275935905307357322610447716085381563445148976416727296247188258478279246239159967491042815190091275787183480239847730139674416553382140254825592316752505837022317612698808332644907713760987533563399373071475698769805852235119033707743192606506291670638111215060614071463008984381297717934344602070195510111802583989786304632215627550966958321071420176590053087455951805886043735680657429909968573886671798202306550494404914794906949347799945037743404330741416594214903278350661418658247833499760980155236205760102869076494377441094340813977291847916564416019559950120394690303743118792203825706320337734538188953960475151545403541034865039889060790952840575342756759941874708249287700251925158902239403288242166516898748249765045690921679666843468836591338963765918183349737667548501995280017336975999242538764000729146280303111150242807599103854592094622649366922008354943408472042312645624182193982389884425626148328783586550138395078908381347261523155551576397487069806982371989529249379997291015549062541160490572749228601886272380740125976367190573897881891016772708253270903045673231427478791227181378406534602150177125923589263207622398204504617574699467774700055832392030232083088708527399072717699395406318667055721288554880699323463897507235780333243029795478830176746711962426644848343122250340087499634026065959590655420774887556589110961084956870962896926301428878563513236220913196277846773875050277258708581468420685840254603279146984705504350570606809487969137569508239618585705399114402326142790577293049339762554163185948169153274407984608047213513156109815099217378981465036794233959743228936661676080339871111082172810039794628742087323088020458125835211911206624879066347301617130241301995824223181848678923824939429842154022153457016859092172711132544169223366054169023600853815115987539281202269511662816253282537209668538883230224097479634619814237594134092325843756686739882280582715332477877499766280129988804031183202328858384837110515621351327000103084778457306224172075648227255727888123051279036316515483333100620065581381119978835328717586404562501805160985678765174510089704894393146507305110725190618998200672160928678880944482196565052525904407407079616550363684012109711939566193897020099437558195381488525271765584337693096367628155524699802246673027448236615175508853420555306022654025396574463198659091817098326656137718507669996299117236459059214896823082296296900288579135436206357639640814954144735210794126878705410102377614116347578420728883174729313063776434948820587041729993502982816392728371372462257621552006651491809454057627243917965413378849289732150893955021139215108082340248701191749476212753406115550583127905941388879780308704841143135091968421755098429663179301054422536775616808293541787868128594030209646829107113117841030406606420359797830982296375660644268636720772568862257539977138949609037845694100854081417648489299563447494651504609888314012459250928020362298909692138042475982626612109668367226411357176738385645851874095162809394861141730602115987974249989045301840900029562943585150465564281773173211797655639812223208196950844253302667062333171593750413001182925742899108562690278200496045943003384160651556535236534499227964363737171437001926035760387226572431454748258737921069004861933938056464141345429572221543649150350518269393792380227320392184223011010468320293898095315854588040203175801570331424702629631992078789784205274822690670740139082856743455813945219185995868637314545245080841984728885144082745581432573303583772390168352941162028435058690004083119831501630435606611768740118014421400113848180435148503450804978319700920250288520983950660575712165015912269669903352121736155479010475036027264018651161428596868181904851070088163025948740168461696347245453523269814429038591889078123720256947674301268863738265025961583681503916580547853556888041841144867547054463693248527628047434844461094053243057586423411085670730478383700220447876206780529678664247161173275068390130704317633822340044611237746704560729730603436654540059997325679372866407706850234195867757623504120311076585364145666183355868167378599078358164299447640760341294051500805821243568488396243451974327973827362762147466257391902117309106968557910565149159014469390402680221289077952065507311450418593118260145045718221229818464667169172043717246659151898481478340910009504944537030449666373369524522315356146606065029723504042793040070918355856666391570117558103783130963946692634991446296157684090448601299482604383221263692747184121158697469584597794572297372507507126037962977488708770416331631441173291075841725711340497351830149892664025930570336998443096531447275031273725653480269143343194085488847372047157527290395791592340372488842075511779108930694275825123016227038530435046552274269718844121791235448319509660286283209704188004640737549017042620148591634168026704793334907209308808481977178133844141483814811315653296555735618476616951097916893647920501899590693660948185853508084023039274418640979365507207562705132080311274094766491137744501657895054395977679640047116921034569650025321224994465027563033095527588643968876976455415382787471181876729562602069166587705467667780108290638132827912998455278396704443654041747739416909484769919828457204419118718408815091199677684005157123822926257532191916863225035384595183618920968577116899352455138183631002056308994931368553162602796042602569438904168367733412225059729294179658494305688367922810631379825452161513287356877121351912362399876956371260987362048398169718681278314876350494699823791381990653486931612952302757400452375688066949386624651844172375150421099081675022929289957779080628651467749336279094879517327528110145656220474076751979124972909806296359439245016600505276308051632591910921023863359936796866368372555262731185343598957653831545113430748638098744236367303063207779909029270778819680847879764052373259103290918997088443859681806925517825732557646276796571862996751160077999702255161183618213058685482588214709645329467900169868903125400814587596153026802292338599356270914869232943373076839641199964630427157800149035418115774127806554389790800513915995735091706360962782106759611609962359574434192750146632866087404548763365399241699094213204726170368643951814294738996106700618511775934995245187842045086328224372545144966136091845097438334057733710383425322212678982266641185078584847188921205426488920591180971969145013599175112952289328377050029110867843472989190097208667967089666260895073607175768082368077710301915561866798864689361114315657782954109935057073511348046073240518325069342567391267671325217255388913446302627666397629387497259815397463393539758044040759000328641719673006711505306035294463069954297294466799588412765750690023641722011131193708686519738398533074329033631200617014117494928138915895368657563763928397796659183856070501395815434261962915929286502528375028930206694993667374748525702571014376276752174451230940588766284823175949419760679723193352894509720601018231847533838785948156823366151392294526705568888699240165317397265479837483912455441423748464692448583740507967010393130096121501267103819701230875021674024224192109325077421144895074912614608424937482635855374611938510303647094280982385681579605511830594608255050157051821078070953982064874802833701228434271657786437614163254294817274780155166928488547671634922905189654886985347510553153088606067395783025969212700619174872796444479707207492792876227151522113836068866053378965083626522358061406918793278421754878063168224108683275448786878401719267147951000951436521055382314364962447424640994007682069871317047735253723060429234885165594159053844564827132188913635701377032885659167621825832654329311459735622396530002461333411749882928177230796165093954565112640821356773582113938716658935118342501421462078032966159987061642347383842987381159054004688029583906074429608436990183381542405204311177221838246779909370124595522033201075103421601352926258287947259319187962724547043908583188335087412012177987954502599128645205630414284760330541486111094114901455808362946486988079800505568166055049830591194387779634811478283753337901952170179045615841889129747026455247230137761507069296938033587114229651477917905213520851140178947778662842799616354421793573640183478223195075908885554525456093415156082607019464601941084216658935071735401672926066890031743879278465822493892681471773036786485246912846251682693037099396269301624365649053115023153466997797942977639114072080110103021782220262614113017231782654024119974428366652171048677017480746676843497124148996080642673610193872981774776520201524146831472445369491342580586111708099375123419856214506495026438716248417103719560282214839116635422249630656356977695935558632757306199561341482972224811701993173138985087102156825574332620924338920263172112079489127321962960481041495319397926403021570032580256271155276040175642879759555480158574763123155198092863262685260191271674281380837372661385383301680801323704812260274264777936999394301446233405174243673887326277870187376501634386541582047471553457277695963328161294910056950250740600385300755695074253215410259890088395410295382189666000926506617506626352335113694305348460119238177304515510403304586472562537953699608904723938049304764734747903806742965015096129696551545176583838307722680281242273197653129691138612800793425926281568116188311518855690428611508794063493156424160231791457427733539126498547578359034377231009092974725105192648401900207111930577133745617486960962163293177710469304962910322854457263857488681794551943545630176412005377032908426553991670646332798318458267334847473638289903700496930118324436613070125169810628789302475555595088948896937170270368423392286257476695526422221949392176197877943141711296774817832028322667198407321425693929453479265443820487460770966263097656361154599455121219190352247709673948535882709445343357968603966786836890057188784260370918804784841617866169704858004916085420794625151754251384223704603526770279412183785300265555821387141544590504527053716328757234827154942326613429078200516489262259856323216343905991911798726413641479724803008138507074016468828418544177644711379863086364438689745922568841542845730292649101339891326676398460158224177946697911314930826022230521451171448050492547504965933874999086788954030353162484794879149527401082664133931862740516396423731926588284104833338225383901529173710408497584008085110592007346473662277917708903913913401230864840650439022912279358318938830674428801516925757740647385707382350263019322638697894337592012186720695604638887945685238778516159567179354776589080593885716805636967212162675379112892319051155015094524406896907275603021459927358062043504051105565396480461885924932117055822971237858542464807845050918644880256215856702735451397070729315489191600414880181732855712190282013671621686777131035671649330375424297375674569642198879992137232902882774819462741019084722284124599745965089109450442031557304583966089093342055181084636784032327869239476030886147348102312692740464108244940230388790673786419720409838494400676450002659500843137438075387176431089499827381504341826291109645111070489301058510069956846949405306420347943822975543216940172982967561886409359963705254994390416875382483247558657243195241134111511036507851888726495499988565359700400964455300770184316194283995881553913571825213979932124555800392718798621594137368479688541688915513548544937599179754548992845441465438030815987902815149660420744191525971646237661382288265425250396701722321233916559523401222221930146560636763344456350205517899733365590059156621219606929476612739265583606719549126326638166317761180691013378481917577319696151943096265624177325933946378473016936448856040045748060110735159368346520380626850047105723961364797388312920323992682181079134409703854437359331173865244256674784263630518503847806992561207144892283756799942147925586222536887112712176037215744500034855860539706341874142697201168909407362158686647121914253732796766533589587563204372506164132404617972122099997026184257147222605117838010595531069429960385184958742416899600828999401069064932734145788575862143737025939463432470173225336402814928818797524190611669228143795618076597301307061141853533531245293957374618104915679300222626635920086843088041548331918905646002044607004691198625528917239859241402198878146863151499315781151429705247939741060711583550176313011368760842982157256495716546110109153722618876407065263933981876784785135406958806892747519629426163803039938501114359025571108995234594236339222468188503820170750963313193246348718478269100208787814741979342163088031888348335449145698293221087864726080876620655739719880124060403405109225202082259926213584070053332260874572170194191256727335137944322557979858378175964825101940782199437722118263893777788433747657277666600989419278437045593762861064844420747509409012469028601388540612485568464167221542963990921446655614146905875285214356496420517123176680748897535073524970986177903241348009201485078048833353534801908576093436386737339687699299670415362643682468827855194112720257711085100264437003598089408136314937039084228871912294202463605921870953966543063245095591578722347387753239074796147200989023770485933953484218657460750193695880255930711910517610971609160258681728936644976080191502765365773046484775642216183678309241954470476477014549186441720107997562471489316079607505015912205183016821704685737545412483365484261850342188489655714187988254065547367606901517897700236536039006278725149306579535586468894211265754373369902301101120513786959427822282319268546180622327202175947510631808245756461372118032634596187125667718488237397139078567362075908765474839125044326055925158836935954661101716473890725723917944209212423663229551142631757661295728588903894313263026088271874135871105249028011870310828862897546615886934169740964890803539714870138661019443244040181462646043596490481646760432500579669868946171634736246354488140287457587554632968089591460420705267929145489047697418383719467018345910184482169943244717271848893724224728071681980860334200815535180605728244978029913792901243591160716887821275306457537545283406640470287906523572459320369722000890201416310105448816338784825972281128729475584504698530459821880586394142850778823464975067737463439004106649485516154887262332268139711141682342235757897768207520972489714663911264950086897215913140753925454338470256029771027426008785676805357317942328956224870541159205563143825778190369263382045545147195398929929914915394187292368411254874122563623837243539554139094886614948421017518398452496381912458750135460085704682099834960250171416463915203128389933813568982377685348244179819135719967645837867714223465609792705029846377907727069116233024520408074564540968055584848337403348706523724301336337372672563714883151831082600331309082618550954928818544443473127827514758886814947076271312917286444538921724517706208898270081563086398215163312733493865673943132401827082045835428598475321361255520640169562195401841575051525560927265986702061222327096294936685935314742663173748710194712870241780171016346734635835258642155169888407292598926795523374504564069570567169464620097756619652696672552880909422722718348739727213642530127630811711798604287555555154257630868428351715861312189087113368576718844165108619131295527195814165556850165670320148549049245498860052242313197086394738593764926362867353103607340593696871571097267139602017860558834395786914126097681608908440253631946093479875130713071796749262617909754974009263270682785118944360046378030408044540501205498313248939418383295972356625549929378626741397090767769329552691605204839758442151507396231108483405457031876213160306275596022804389096212051937831397706196984993815775205959760956927409771045981918498894593118410204280455056224230537799571674337135256784659453654503459928881451340186791587973391821000172387665974254292573746520651655140884603738862585380088398347037018104388783382592947075844698572885526837683630032097145326155878922672006253610270793013783005565420071021847960708800212082231867729405503551814484419859075205021878229475391777717654711414876597303795076923494277215106469630031696087541021628388900853288796829093452887222631643971712177028514007213080999450947966890828434174640730700299415676750100300763325691413441207084720035147161359239808784887121799945776342573568590478898740875932866759747819212576803701558781820415619887782649075638163692225218697141638358512554119536036108095000758766915177578250681902679024401023434568857812622352358089443709093547845726936002933855785770103390124797943265632459671471954385782266475596266887160575084997011122424575719743570667520376154743219397100545433933628132878504230462147331712933284689239317156361842431853434406889590290809648957554154051378976560185715238152712638056186323747751542497238195316349576405508098816575483122897380495075664358323744677328870083108616302827264779856047568327006746674160592378226926642378302896568619488564347051117006631722569234248829130145061150478265591525552661504183591264762537310023421388720003520791258550012535858017272609725906447044414601456121285363463150220649397136928908562462971138517536924928209423962859158438161270708298792361792060273902155799780439260199847983346504281038279319930610368485145685188773219922219098381768606674026818632909069484352574388207216795261642527665748160397248933525146794957253908237123961426015731679256971481638754576550500467587426845965257309090726872688781432089200419329604695307654267456836390775453344191995255799835730531236140872518196030367017380091366807464175203712577409252094359236251420000807838974941426948516217986362677756575384456145318712105697165798183814398733034805475797845783936429976457771069866871550672494079911738461490184205387474331689975665960784810396989641472150354013251184462740508796042227629452520271995461150051401749870459268182698558441319136719010352944153502789819655387091737026023852134467964971086310373786891978563967847224946565651222542072261422288166275336093742122902890999773389441429729058317154340877643707644799090196472753442621379866375655864386015418098205537096981413185698125802581234657079541667799911225207258776375173628749547132910686781056217191551656201364848775952245933183995398131291575991590287233758267092697878165962786557664570636754420691535059909482228288463719244860363705881874424488209005949316642219064295949285439011510795864638688898960119683249624446496534619579372116616030666648281644563325641410560484637060395090351116853535518432680803040290637873045149713243572395891067635242474363995365361139397860915234566898325416681929800138564236522768662730816293783101742352580639472640611469513702670702483943288517273367679571833334649375214100874371325143656899818440152301984948206474494972697156802198150477560826882616103413547632712111369242042862177649925334053803556871937445720105061857320180818492237017777586358429520177238368033703588549049351659277771621049130753715634555906557970799594647718404246680772491028868301182063769618141404176015142896310960688188844423867904882286406753577840498474908530411668722829874418492306791563451342961861459597840224248532404571742086285766668377317714700562574457377926972573176101068771044926705129191726209493866762791734959631902051226394504312926392634208473626864332312928119396212073575865088153237840712719494805488491888678936960721764211904932422513925416004021467651507692420299565686080568220780670027563453991044438363503558829072356355025654852578875066660083651701630973283276211868787265902348445884363289627926938352170735375576881976277575661061399134821596956703984255276361751918312253613646438153596408415596682269873417130741796538507427766696896019226856228693210490482683043842543181798746436509043292942034204582672258372519520511509482519672238308679199141147974356256183397903469718493988618045578136655595588658814307490921810614928926866643160999149736088880521189112455136379831395200302895175484527254568998559617323032143533660636030604150936575585466387981755954471637097682956365975999028403372897262643028431077442761003770315694228584452589585946694859770401994883896768325317572832559696688226836665998995861841512458093534243734892922726360225479961044335469164814369356959859266498829068727303533417681797210710929252683193785216239555798667032615074145166356687792048420124607905295901193047387438276452019153153295268815388718561692494888051319142624601809764660763373049199799095290842654179284967001167658973856952760015868649115519670636499062547829853272574153893380008410608126619190056983563734267100166536421004223049483560416953648457619983046746575532400207739770713071685189625871203532701670194938064549852294922761906475357590466595043061731530054890982941481271762138704169856885537586060593035150372985044921932869402074390100388400959953910489153194543992663741438869518757927256103912989095423480268420893853652597891982199113298004363776836873041185725880829711792307818492934619752533885765014490588480051268284060322014689749589866613480332461029501347197993362372137896738276849761907558579699016554596834787174952085504373839443690898780354276517214706812888221468147664679211064548059907173403240544365955910052157362797476573434332091966522527874533255099454523097587319014311575387680332116114474053415886710306350780793464809188550982618881591720829640091720741597888076402436611825296647899380040285554584676493415869970294655432907041642749829549883429054197146759377557406972376367040076363194808894021274298820156004719788048953140681919832775928040812497430757651409399743647326569129386868195196341743218059816462454959965530484144346321059420159133648016062334793436896229508762250749729540625346851024737331040349400290736927035394404134603997077815008020046870808509094606042549615198178509135971137767365869726481299905007225775210764869599202921733910778035190622747622406614171043347060919611047078967632145476885165973313246944928599191326948766394577557113756825018646200646605833993964383424531365130932328413717588060840143069914057183037540835485545006683459555317790747285120359797602329326907713480409607884391546108594005541454323785011321490181925679814221809246428689217312632204806360692803527058395961420499725805421357503635385451433742295959755526711353848284698402029878230801011291707106373479853775425359300731698184840816258320822324946393443849931279638330842658304250345362878100746552033894643498087119319610394267473765968363387744367730892199531190673399422843776688217626515843097906678823649928081165085004983832511460903647993998926270814543149596973395667104697056646758062691494918682136755839741359461053094159049688881717329939825611675712671204615971239678471445566576313310512705838717871697372483807577304654437339552618952618369463378174779263690745596323056375283634104696069580800401903922088713567581190575929385140763322782479316212586596110488452175745397223271491590721753378640306986325120430887263701459154659082214698471034774036480331455390331476316870257523676495650690009257416843394323012463708679008349083976761916709098492157583039248690113668346102871117714114482646228037136601605363983094251646760131849060995193881483161925974951616256378669495574437584436489985290763817053842962094130736383105638957167979109539988989018695470861132528263441421402845352820990615456433999478716899388186527649122428032995111743297848621948402985963940783429570223848499073496522209449874977808502301263277509863069597124036928440672505489486604594681322082353597676902141751928530283133772869913851210852497721147087634757518320400664122709000320196554361239544375766261466500291235997271121283389067501936252485531466715253566791107367791937698327442243058642541201501839214077121719205394821966362577493128492407823083433201314366459860874377151759579313733211785817744322270874686002630712606573223262249381661675845634564535681066104936304298510717692177477510479336252325320569326741497723565716200681826781299853929704702935378358659359269055552885727502405768316585692478019305350330486285832204779421729301763719372549533755971073149987456283885708098057710490904528781524958369124674002709041724218698793560533968545484383440668880931924411410053803181907221608143623586394522564285688606222766653239833476839441282886383862465565697846889621797509726379126843409381141670997649232002288131908676733506302763655698021068925661690198110335035824977283661470027920629787471674767752533828042512247382155891841805005040910263879545312412251089789592803673577851386816707094553146615864507874668129913018584161450891824075358874973647166375146365599572174180236954320430731152538160308390356954636620297509876031507223783518459440268294303923564275566907773302701246885234174100329191914101051506485606944507110115852762000077131601254452354555261645526465454239497169852935896460146040672128982993746234867267509898940207902923294443880831629694087172912114849600538067208755452314844699512301800967711009518434425229926107143338792406915217146130377179442259501460137318415318495026783503011741712300791904879455987471636287111687728509346932336461480641810245466239371614809720200738090837310241188123472326604162135614466728240822602546450709227707680327172929950347316378741877453099245009052075822448577336751469357548667123112634881321601870314253293408433623511527458452459055347768636839803226838768264094874453949503256252680146806105349321284602269022683558649953191111208693021374003316355276299160623271954865259343618365476068366748033459763573595064333200769102287463222151482522346630396805745945888804262080627619987092035520549685129335989908083964394202310988929264921604621001337183465344648353967791547121792713107072506199995752807168760575582147233341260584242907310078664515260754671808494553221125958509874173629571148241256983981905921887156137512335635156346519616796356971760810428445767536598812536153495886483604923516435548014505999554200567287058195777081910556130434028742140346543791521714829991164640485028711293094341813000258625497238265771608471159366856305721391330978647025941229536429877651509144284864030384733602018776223886170225579575116177848958273526312345190902226296461711219707470927421919631080227841641799729273832167524224759936298548026846731611551876599972555984421089316207933045408936278395208399086129412586348285415772487799060880627494480386540886559643313311079358347978151408718341333996418476901843054521722117018270148008687291566808649036428821658499605335867196315790634001515242530696876488307750474213268732737361390575657354145455875164531280164532566195628064936193629216562101892197065217605410090273636921220489596793740430918397391013827725387999230128556717844334699821726501362470846640715363144130686030824627773534546558080800817045975530026678851616454911607537311627683593464490700728709006002372987230898985107000403516583057783311854037160380057068990857821845572429519797239384899350630614426616024871328357993514640201976416892582707053109753848960849412584560078048841419143286850945472153853332994735883375070569548695966325811340777380557630885520935426509794025665752865692357501646169270705919199020221826443844653486272176101015299232941010674751710169272713889430145895455131449494435585629005516154443792457338722017019637308952070187230499563696565772981761131836580854638663896549880910694069740075046896377191681029401470433617956122854576352350474493552984882568146769372449366021182907207724551054206684856867869832587447413098229306417713945655862180453134815496199350149156881962164439323816123562961673745749081184615382872752953683779398945074228851935806103404814861040376841373639868072292962131614125980465500548188750684520992009162133546850209652023471214883290397235412070571286430873521811332451575766413592099144401314922876641461696836444176593582880256980128197554282728374122633757283426368734150667113734971981383671378234477280358775280752486491404851191595103124584472117800773045586749183780243745492061872865100765916556672336236202185707773247839085082051295441285032703891956559581313481700619564218852136742235269901243035970380795792863261493610954027414826153164385240735868965638268548821432125861515799766833789382894372017258309840966942194641389247864574196216952045215963082791928139891571524267093062178639526999728786581027127093093721134228964699495165873050554405087148412847439535633094219721057115258838203323459195382097930295409268459091654634887274778430718252406706514938962698005470601096473018203943373462463890014626856531704083258925687292667241734480280731137721465250904089907815712824404179814616234484256930462757757122815515644068921988789045119064045834573226068347161734653162708998520276762871164127038656131480982007380023403425093561955582539552094875641362359839992258907315668794349094952690502698512099952532438851710638605517735246738766052163625726247786925003074445043242074455999798040225803284660171755091956395556329302961897927488143081137979921690133029816265492526539215580971686200433697629845004835321030076768787296708144241354981164489012453824951137657840978177317622946438609280969407282352604877118320847310528799321905802552657366136344742718897891087992848614570081208062907203516615799991273638758276461783250013742694789046185116398437440057953854455717062872815981361852377892745678043736597022794976374399417915589428703625118031469872549397959348109182242068590355150898549737927367906565123397939575359513869386627052450119373697993207051761263255106520362621282687755899917118111789296094778359551629229758317420021846530680640211741588349119213355198044390816143429718060578216531551292511327012975811587649049593952624951640318097177265484283820864227892323761747036113957155506794990363318083303782589744384668253737897634927423381141785344361450467508103392399950996176757358151473914537634340454856204034228449794125343599061739644728445357122588683319930388684758074289677506223657962954512008647342304384658109807001761630308712050959106703810574166909978365847330451320476438263270406826585078358652684720628859764677287541320486243392136583727933753976696074601475470302621494997803207633975506574109713119767656973951600884598921037478843084647998989464145815866656226792899299949456740604399983062914722876398703093093004915302527080160735205478980629832046591972786754593100945976120341679048856742861277899320219950424304208448331680111605395566247837912640282669434259093054694108107788927917377706846771421285694884661913027262070916013806440688662055695865771257568715287128313395109037142351918280607279236170894706216032871650162212497683946837492555685473026442076483120452718556093454329816105973611173089021059453447276952133111525615263257646663114532193398733088638905772356721627015878225728764293078718285589609972005786144741381794311298373314287921073071492609165178749291975825968309428954898311959701881297188630388630930922642128903593040090371585691225189475068116646520739085654823693507064226417188471940781184989084108723412254958751856588160661768660743749768146877371547137225866221131341018928523213233696410323571564983928526644144846738419642394061948111156465640886534252963698195121150613579822030751545317052895988121954928600911217428789468474765828696871745341275069815626115901787677187166562764686093811450107182036031069390372044446173002335105860948626588612351945178778724352814468437492566547681672656264470731153108401043627253819047837871703488233669631611159343932522273366428916305644187954061709763716555227257953191878349852214899772899653042251069361469164304073556426020221833680417917425831792166633696307013180948785305936253192666719903150404312881779095554070003490364570992273326688980511254015818979284917178649483507637193137104215402905600717797151691532868123068154681365050403752347374419223254147157865079223149209776159375940947995130536772361638951289744243861681416640508510309718197403424062893357010296994247328630456081503517577562683508767679820457755161537430381878230172585942326278768063004333647881132853253156456309504953454727956828283830064308448743421890027644219052773825797424785986853527122462271653563226888737868633793331318471820360244068851601909365797806543418178609207284089629590063805748369061413883265676213488832508716665391424872768892584628194655209623627918564455638949998129703800764431480522001222847331619036042208002308964648973578441417369208235657460650407003323673590861133660292899206975976343776208587969618894490359949843012051323557590036330168139843771572154342816022392387759931843248949383191246352314399079228943158679651809935986626638541662154782464174972160706160377738585992146138436714704038054064692633286904036540195030289503273791479841295652610288140239883058029237830513292995800104660944986443217495266857976993662357120278827431271085169627864955471875501797728209402834894533117401805945534897933408736744472388024039556582456201184109130308877175824228111949472190661401691078150195211973731539557957600590907320434931882778526805982488929549007968418637910302347586828698458811136297409435451722335485338225161039357235175703971001785170002829227079543502751488357291921596580487384141490161122647713538227782524339963008086489639741977078923135205621208794335746620331428542523471156632447627929851387050249896289599935642652824815025152378123765357409017559773175157610454039182150690600741477880889871351100287841249838169693137276232198837450621254524277231664664452210332860560452093991342483236075581632844383392364193106945832157357403971442603519893379743100324394209120630516511257666387493290984956717244227909620662316159976609497830492446011905014903004154053090095050923158385054647553112969187651955932544257705011498101897887207408524760948300866603798670801344314547193161170478704632302020904880841569235825420660937100708525517346342005101514288656007186715174857590568875108889401025155159029187379048311026814327086991451231033047583887959069457752140527238419733419297248692812859734633809089400805943636590962812788303276335655601854461007927522444908585178740625859765502718940061452824267567757723060883377123182124730752875469188405475440779930923876109568099772120563170696665099924645348060681495784022241061772227909164010095921327873453387079966183283450151605725602260595502837165311299196851321369446033212306656239962689017220097891718953872583894576657610651720794608070523318364609057424903676870851367888464460932169818193568892123609664828418995049388085393244424604991598413305429465388722742598144225084033493806880450215621139462825469645808310059059459667536710877830264040911517929878696211040146329529078152279019809996782541515420812353359892175688035841797446218076018439681904558127294818361715328589089605596235618311792204009216110741100150432814495327627021319423130757365303464735445878531185437361143281757277654259643706933706141188527507294972702283722964138420746076175186169636445486892996381973186626975129727153198563230053945707619311659139030551128091996244824247835797569617183810599542572791089301465205933383971773205280393885377505951449238788354188935215114235456166460569730329249812632204034847331948215713351125885376237820852766045415870590766569511827929774512663456359771881184059345411962183930901405709923855935092747944229613957829583247402350147599852550222296590696515292888675296296225376042866573923949358871676952992799225474408098125308783264204545175093225200897101128715333863395536482633187877589368693564997013383664709730113094310377153631679773463102241457184270333812782478732872097440651435694409578767012627827860951404032427318984273599535044260760576330722670128585453626189109906431767678307289454697857024737938113209861701141015398211692199691941878903457312355756015701184569466728723109430889345835320721096155449735238167742550985928494180514883218697859645819092029231015979478500812607337079463694011845524595735730742864878842697957175420957051314363730310231544982364419025140212171475318193946477420244074718887699074778863292044604448284467923042287834694865549256083335666350651931377581393670577201996540888958815775067353282589963088680571241323725253126369945476908944671628769736981503623496317911482217023674119175289783670611828843244381635250324765460466038545305431720547596136904842705770198311915531255461956034418039535795857568925596133131381290151510454035212937296010009341101488989480350273514295748976726136588664000850046138999918878788665413353986336412916627762776305200005135990878408608051780956367238690290648099607837576790882631939158788271568164238395621081439939531473039647449271609737663740182944782224407279817949529113926798810450986766916203584695345243662337878017463119326252674921664417850807600168348973118013809832524510101163744526026459154713798784964618180750074524627484428932418611352387164378267582921708452684211774199913859450389765816983201120064980218096217083051666177074320227223766663162535299744920020867585459397727109197154398135819612541728863947131865726476818080513167320511787991292909287689230378178013289871605858918516010352988115756385887093899173684669881585740750162583543251036716607216255264663221662629570695722351196762064412844580192087539570120088624683255133231936726130463317484125328952106508564342129013637171337489641374425619832206632621139463139598970408185029014742589480314124265465074007870706913615246214092038228741441680820201420785854973312326643201351615403074603417976595608221137355192508615823475281118166909351671747954974711179986083337224513425820007700756002926899594258769018399989243117458267083245363888152454028313505758077919225031929683490780827723834001483096507888443464221527950489088943560930294553481712045643393222392020542324279098062260208238614802582358663882344859402715303963192874643381372951798319481519501761233724698165912152793631638912688252966195210135336045167422219825813160045057165380479489575120381021162956684947390083929586192367914986779725604905929019284718243087523081187622812457741757080311779450415799048985921159124378386512589248013023313724652120147355240446782350573878113428718168628503977344670919345685949049283004332876064939778321462047730648355207494486512501053849666918470884559447735036267687861506832766102775900601075231024130133855594015332664013655400684757552902218406732473909027992279960031777460408939957111546895680952789860527778794576884009895694393557767798129698833291158089173438072126825347143099755472057366549660501050890015590250756004226504422737747572284872567257095308762698714515879486192662988771702296665581083333289781797453016500281516376489622925201552843516940360892192953696394923329857453683819407996022020832890358707165620292371355922898975369688065408149365786843426718475185246635382663952147926206449528494302447262667286676171211367295998497814707812729386127669388916693581759114830348562835836974616774476862343288984025360924608121580349580182350349323929129610642799855626322348578758479342088246010135290588554639876850968304218215093234977929672228804075988980427377020443776787332055575963046435333250137230784745855535634035997774243081453660038286293615109740980674480105673775323577740961906926479256889200183697562514635928163940183721420532417855453096837247567859105296575245093919177466375558920178447365312463296283826713851717939693479548775728679703739469433102805445321021229858816088502731094753626700211350874020990598388087630489360964600366653164790635287939431961325248137100168155920249602418150142392059250298020095611516141868460826194127571464949019771472055117681582677633339229950466909529760040531409333934171697178853057403872088203176280050174328185307864156733571240793423061760678087454881464517018907517855541152345822432566525841336312319016469419810838558299397202256702065352020804290417524547459960364767686974784495824375824120074034545219072605271482230563925404656486676942285574352038369925093107982511201517621047935496200613615019590837465084791123480261239649555769703803622379631488398824354528001511576343598627098189265805235789629511280506816952652474644342975962001796645533640826117725403724477045133271104790886448911052343637622208626647361691641224975712130911657392600555390177300313685117234562806126725012989225171365936229124248071155029053246832897698102628650790786857603161125283178710386956510204256986608418747788885023145133582645646738900344692065212851694594959764596448800061894749090160761313435707874139457363940433372275310624408540733911952852456710875312323150469832801592803013655384583849450962799087969520667194315243491879760265490119005049057714733833612027163937701044383496626127241105467897498846311944662029243035353587282525582246854859208906537587634609039555328397720195452610011021165106073567943682302083640695798520967184314688700909224272170195644607048463781575139992001775406291518393894765565291508622226020776335722740519832763947222605773236791578991385484744083772260437089399840626617270539612886764979014214199721705893963175514153797210455918093948857556434894966160732953371075602010830132915861741319154145999125638202168830533657354680688559222205370554009084152386074865976265453251338841391123828963447696438167720727730777661441040089727081109832898947234760594687345365286392747790681686028568505391888982224391651866640518294752975915890245031473094916143348982942314754523297018313770714496005224566228877362086762253110130252078509199737536045302485050465570884646707087588747306491216233347239923635597840668199547797912185315618739785388300536505963545826141667638573976876007070166778687537425254307787913135679454467729332129740567318289906697042453418097963937635969535638363289321382508585078423788571210609469728909313028709100547634188305565233822545617197536456553836184725924137433005501384978412303268347136431489824822885338019824536819431070406892892361078838706027379782903181377595820370128597148304075303307489228351808635574595326996336716350058281764927593378463467851427087298801744870753231737361444328751441470776861029612673713600740388414939411623607191422840349969578384158107230499166516159716667007072789071599891400595726202584936238364536200769259253167573009233047793972970681388753129476495235147497642187791472574153527183215451230859031241711500727801930411657180397819780591439853933092726852034400736232652030706374731320109772850888077609827800610208610710435785599037924675317933327131199784939248031888498227662436650039836536225807703172792919857656637279435633693905276688013236781475298710028602383562810061556600116645040770997848831003686020503779814476365355170872427462181477153918054604003679396997979811824254670943474566788772175462143531009357035555736901418733467409611004605430716799597882482569737365497432186374831036023772614470327833629388008068148351610760224373265937239589955210358760984498893918727366619226291400326185806651484004041973613906541367566016491037392795927828916450016796007546012806776162305961980092256140969373354890137849296748529399558063002922521479482663701242900103500825235765121693546704878292639834186988835290073544197938304307571711997328673742687517980692955477751802782026835603606552539034032856931461338188286760142254112757637339171636626420305520820026335520173477512357480593079026269008501683987476051396723744762924519858615575908088301963520451000095264286854201076843671103641531624418169817760262193325520028010280135532535765621595632265824289449615872148565194038314828247336983735070496729442134831345355831968426683727290721782756368083092254596362987671936488214211872569687531119965884555963465434741207058077232342503236707498203604046965748476562759682986285799459323752794508627518859504595515515196030828436508922594118537918298243379692459637732436535960537171990702930340453543468866732526917663313256762322489551159270540371040894946863155705082975515803201215259575173336401557171221205109810561783223563266102381633007512155045551762667779017100820570365252271412959816933874847053912765931529118895506810516041443157402367623661808131395356023705229838509465496893833144318882754424546025352798080964025201519771582991759131314363517543556301750751583133906661587883737269384665933501264673162550709165593410647315460403828647410642675002433299951718069724771705024001493333858615011411231622819967783353868710586127781265739576905752751537307401258982205772820062326132060040281440715135259220287685843352895258452670629834657014513357632425700192786929583517450795214442872454167661847395167327073363564177228481986137758699744747699586439806424650264455054759601745795064591430108984434869267506517983909978530098301107155218658797266726714732214687057346463971336237971314680370526304150880131069413163680614712775716856766821008479098510703874937815993084614261851269930395086926200381851354058889916102987500610857893929567960120105538975403698928733267248689515012616157220877747029778321241889904962666890454000135116518664435647981082153665938898221143967077141179830307333114909823722992679541840559062895012259182900618730182854652527815134431191997954574191746223861662317948223126969699681541683156927715910872824131605297335550002530563289739593988053155815315556359727852969276592195199397172522516566047045322616923187986543428548198791892000184632143474695821261106411912601969426705881580220266445827951662118917652558527832564840861854762995573231149994359865541980742227812281340211381107927454226307590798635406282276693363253589336595157000259745013219953604847593963897269190751352624284800715526831785480142675475825420423640498205211974326115574115979750832605650237028271884197347174967348057328056344602762316750729582002638078410690665546438258564013472348407287750951318612472210099716641463559814326569265735086204449939333478662308197599851718215007625928545922570305754741569296946080599620662697521554645216787688754128911015678487062249263629752285147132064017782760678087563056439779645356895712607820884476209487149563486952524570588440042286265594231229922179291031927821703092207344503749959804884242774858233163816642979192589105760087400731250851414130872169839111132993050398392076755306294173500754588965105600035453882074574052798271428217232964261792970065398278184851477095678847570535519110044617385464978792496942298369765151482124096930387905429507589268242739226287315113306829734307341587566637791554683134362138664612582970208063867925985960932736221717933903106193202660985469621471135090207961582659076855311794029683627131490227254633174012789671356894026860574781734550461947459755053082874982825379203450762955162089626568301782833269457082238214031471084126183804625182864393650994086678706040015664933619680529902656089333379266067886920671352108750081931653768905565441914057556380178430170722179055789740913041575663893611453720583306142766198684687990586685730236014561954738712378231382768762571076947763039312147880439126485608863532274385773551713153597570493681273246227615087569780283363793227186811549151193258086747481516735210947077980667095325532190574409013817280106833859887497415417687927544326184664371633255730197039055494558955573845874794063277155399125374891082843360736664810330497267332909304697833994907272023305403113285056566744785596819828784607979955402789191358120704649039682150300515309400540307903006115680129793865943024143674024006598653992859924949470498042166220455423989538633460581830998035725450197618567234299550083511595427758823972096239140285115201843191318049337465477375529043081652963203207983371666594664026158717761583921306918289544582839540235775326815548741133982784820811747789880771745953187456019385265135861751644237609226126350380639591870734114397867388875606420525729225814050777332751919544823464508240451103406814350103480905644396226018629829846764725012055952660499711384326117228864257843789036937272803204067713318694544100937231661647355486234586167041662920672275463336341295227003553943422168255897073021532882960403200269635323689387040168730594257939334802310070358014455140757458195592445701538959774150881259265346139102390919368726985515531522538444622617185456890811379542521738707311889313193798273322986619392858244636486483742358463905618873911313660068855241159198013601580450011969527640434685887643982902726710835745994115865813955211986828647717056833369615984857361854077866294666178145776901299158799693878070581611225221296201411369804485235788729607425852143684354556371504323831487381438418818393393725203559094974559317955214737619564374677077832951868749469803378472343343536476093635030941940333078247539131490640262779429826864912628001795785575267070630100585376173634832788551324256932913216238471231122630939139973659262756910043506222049343501665397829167491231635393850564879763053738332696455920812950977111764102772309974631408081883540880656811829079345658405178834536862693916873704768318858180080475905420137990426077156912838643649729142644640358719111737338883321355735740715104150518297298460872738164983062954931536916471276355368256192539911499637007034511617658063503782351231314243011664586590202387057764901597172035924642464901553103752292495253977482678718826217102581108298128187511605031809830454986403242971629907297624077895533826309932059618596287417902938360128103806239892925167039106892951492249503757557309457526570155711440020539000623991021566445008759988756508615932591538708374052949735061596985740878655300508922790822381015419362434955729724497908340527130482310879173305857363290715104263611267741798260260410639216526012288439449988425258425897175352135617952679172251952358267937913299791802413660656856162527881945272631950467545665638018556394382037537789903219552115346000722076737194128969255025162778583002107466572409327693491194556647724607194764871717299900572051992348778381084851824125428897138759816468830977452180487051093505782852543220006443981095809397550522543583940003590400595874872314419601259601515589321576651189206892288230866426551762321233921945667717152622006695142158934770969202135326903292266173765918782244010140691552377417115061973805381829096254730270592092822375781766223963661618488647640543503232299093907826269623458554627431653810369602410070285769219019241905100996991952010883823852615701752747737284590381354510210629550265782681591675676171823127455274592249985184898156293871469616298851841474435312255521925902727302759870698424180491054591461198748632755342851333494593772262803253202855513346558303916992440943243521343247205762390640042639787189014725290917268798883758875438619575251033596574659195310888548299467654494022284555447958830183889941555152789978897743659052929214454775326120366081961975111905839143646676685262955827006427460017482358215477742161263696113983231751171896398117148890062637956617011600177874032354826674203622269928200617088719603998592276836429301229955786843766805508533369534234768846176996241988138121088470366555979167930591803694469527845033441284769142597473844177110717144500199794638706141675290078776325692859178088665956428873062313624712030982590073129197680196814241380161345970988645541256819909847541232884206804602133722880792039282277804478601887342672127763994457608054310988914263839936133072094221670649866833402304131632014192481512776394867109736886239553624126477307065172979968321274963554038852102072357750758555113658375924874338550615179149295569871126415931879443627235960391026917278645054588171330555525975230826239657383001752352168938361517995889186522727597623586403542899457299816202851772126799410675119549148080481463048399685748157525478434666418566597088607640923357046766873574206988165654535676390623142796230765664260617988405098042171248889890369847929732659690434964470389343655099111886762928152464839445648606465170671297265260122334697975027292215993531697609369781155349619799210305543340054609947960683840377554832886544555575704591074009375652940423032868736411184191544863168755581030813384143818615978322038009309849650370226877106905337638558261196894870279408182368772446489379736912817575094691424926058120927907779426551018778362887191730193849534011693543607859118612757476694588860508823793986037681665086950566953464412313225199923414847409646666913462422992342249270166488387161809715028740667231667802468573962886556298645053844057121176507674423154634655107438548671525170947502754826015480744517487901922424611714279884247941795603191030809395943021040938106203442626902768966217433004965766914021221088072306829242956057625765212785695796347091246584278340687255878645979321159528743642008812940960552944722521886333827750833928198790099501724743562102910537898885809308077020508556111835193209839143408776146871932225245507852909956333642537025331993195225567898021026767190200024666189423880810630074942322587915081333098913134387199621620380961112515117294043577658901224525401240053892906389343086119108244614897139659954075229883174854752796693931799569397782182019565881895335475769080279183820107031308415407758369835128716316987518589169806333130075853425809780916142454303307318408667243490941084853450665888084236948706739322404632662333860715226002681048961379779004089916072784573877568700153711250101722770203639123296051102485068417366999318149702301573939019020664786665951092875277575886345418162301730369187010549519939372330242744181428206124711779392173145004391787868322214141960918659414275393777018151628199374594602808546021343603231655082608071429750472139340011816614414889451032779478211835733238380400002588701757090593525805257990712256340706553265751549504781735893020415047961569873629973260464332740188266595910120207894185631860061462339972726857162378349082267993259815141462674789581672845405558079453414039768378203163925011654402931148647864591717943191049419705015470233667221154296025201463013541457742425141402646783033691807280171075083651187830556156266469750853235277768957509263099489190423665496589478236926855657542163575908973128404100299268133219169934812221705143365260294593071143370411265454717587851971947101958707758781477975222244084406283859007583270386259282235047587811089662577976819898808250650887521255119024376827851624696796908600002474577806307331991013630315813134925451095116935170665586420685340684156960299257548228087987410590243792165808204608055729698757502726200784925377362269629373196877736450328808138409341456651516263592829154598186555573512898899908318679884185461839744093390002201477203262986995232798436765328401957322185342847711613935076445826510280305744228764349649049707043207668324325747082124097250888679029141808901015085701416173089814714294989774584687944176901764147973996076161408307189298452270286838863274318009378880154894948363729499557998684190042398656969956559118603720947070868866432391047318936168781113768672932794581696296571118905264432469675787057906525599495545864196353989360770017426163162549363315108472531259945037231954568462872902877997593127881293686122932204305196811518032519527559412477925313981045892527280997961074712694832601920641078123272902118231337908440400828585324545673224861653145002548645151933147042450874069962557514241160668423888443934060011886267907282482506872392518696941887936804635261254149894654617656942053754202187035570068669869584795493831094735934980065535942558533487378758496778661720216040355875508518251938473259607775398012760671982843205342080250576258750290240083191418192741592191322882710547660878338331143612875050930480612541701940403950749889240522940910759569528319883670331245994284943573044581910509071921306401522397399735728437113375948182655486078578861395075331464711160892902330139146101986593034839572613463089162006121632926557856738146858211059440657364925694531726324528156741946568494525142685581342905811206565501955253393744712908002468851013502852204272247182304068838692316919665065974011116855355080382624272022252746074073433049539184097309958935862612837213381161509354367184791736821690238698607550587299396495227148987485461599471404686219947548667912493899601383440564403885844280179523964843117536147767964770898105076227270237187817658039281086537804591452513161525774390084136190904160443223564973342662155652294490787682531862798678753250114756630141372328397471359744797454017879434239024661971094033101657124703850562752400208882980833959053788037123180048378201562086301997498581505918005020683676185795606884034186756859022824934621929548118008481877689186129062563968689607770662860581020006452848434470249490380457642770453907077373846012666792306957175683743822425274762752829220380972035250897080549853680226915821599292988635235104530790929558714542205635128126695068977153406917802842849705308014811163124600993847855832086357934042290329383092428345815669908323050193031842814936069539801905598742780675657376622592341114676573191956047438975029029332574103184600822365894830512059460549789750393082132274740545088616943927468370475010414815708109499944035572613499812170381898925113285704510990531954752317814711076753526683092873432442029811107337076066165758063648149855953761899786022485127304357649536483611842781178043317743911258786451294322380704160535781723185241565368853871397541645507083142375394386297026588140339656149183905369195078280479864170625961628266547464562703616198395259358765859402106801917954283348336744924098488594927951065118366166003472241745687824351811616002619366837210210101166985638442238644465158369379966644971541764732840653802891297154456547214454899358806901587360933376472131031511258974055556846505748162490989105572773383663282010207600090898750992697998522048469494519687495748790213019612944602135408592354001993228029583176496352847454368071897265384112111784850677649188206489572343711708177016193404118847843258068429593907955283411974015936280184355312780792507648014282408539523929105607877742946933006986281046628312827383322058799569885486014158355025487761191205433385244250873155166262266272920763859065164452404283570297473191816383154057821751259705552989983757842103137904465971284254826514347000465144012769573766492036782852413744429369955584615185200080055716528486924923615686867644512586586777711221024072926487395040485738774599518861046767629994385432072518997716978066263956826424571136181115759956362277960822862846747481470649591442035844376716891587822835142750366543110632083982115768580936101412833873705115274522898878644798677085752205663153527833736359744596883228606355761683759819853262753721307076438967063173176755818812874591900951962124710039168086599966141279040503486279469479293214375589821913330126493487043077730380892169184172259033929467872723472562436588848145868448537901459119227264096563163195590550873242263207494150081909232187770965266571575516737180421563751702383027559733073778335652163204630388749240873031605301066200830189539053326383392179899678125080563706676791511493832741634917995688514720105764345310634343406123992129449495343878164066511422413244198650524954369554559666523982661404936713872521864435977894612251883623942039744247749524706098126549865689215993949916900137183981496579053338084835613286673252086415456660149544349673095615762172225419184982910838242467734794515459470765960966025937025046420548045264116251505247759692247476408621396246752009405095113453755496143984392864753621090659108538631913029918339874554886364156480559873494101806046387013280004794387119963975717857242494597201014995500441956772895478859384817417132778492309255442274439604328459889987170424157319614001492217598246900143213772970729177283832329521655552173595035706951597408578581881516798593552158100874410976294060503427938204200832480257655773459993548018307813512295709582126992066162267686850703264701285588518211619351725521173495494225478574855805419275058971660295945317474060604945525565029529731907924407227362626388313771608412261484386851162203222743810008997534399335593959204548807621041225008733081402102625050624675899624351237831627340588928016207821089155579704734039278353303377451622579475458817934239302195457188680764819399984563456693323537244058026584854661202054279049289660243793908282919043865293348301223527583661904777500529972266557961282549601827766825705193721663735753325472562897768391005408857018336065627784171700018904602370431115860220097410398287705772138097369241429274887314132785455407271475423672832351400221535775873193316812787319527775118317231943158391686438713486066058634826648125907068792931059779733474877952856107719627328870843638431829789707403764551073232935148610191865300864620318088303113096794070410513521539695722075098098469084972161550120438622259601249934027011690869546183366372421160879480516524303078505506351796655560142897237602109226338797108334341283782553860160430065884992843155302810845382680011908318544363924795390603023253343505441713364495166038423795935349005190697039806882001211425227939984428025346124074944399893015235094153608574787587129622765554686358060020827684689343706489356823282213608621659363472852168237185874490325269520147630499186576831968982434210257176666635514936873539549678752967050773668214874597885529327960102382828286961713083700406670582697592731542245985068429755056960821155841297235666828853383436435028405166032099909731097661227008437296774409227710628100170477821124783635764362981896255733820306118015887866388554985408141062852565981363647204126302384325687969778489094287577586364467298005040438430457979713549132665757576065253628472873175470134463246324996074453876323126356555562156247617400317712573922593229652263009868133508761024344748826182064608946569679996586252408845976523456459937694079359947223071723946800604287936925510542369158972417921648345837916353818744142895645637819915275885946493595122783426509347121677403555518846327178504900666013807689920777582464454373287193417071686404499620298987115254145588082054483763187599064649635797304227784212549385808663645630789697315947765123800940714975269341279306106116927800069878212961142105532410571918357244009874330149381342977624562559709686770466525996947250533385078869267275186283814329259086878238460538889709036929497268707299688142059288388605684480015724207685590219144354365180758569231435824142747171285286638358569782714758060090703031296110998645091841201071282301004988120827196352215613093150528155828779657073871216904980409923012659617558740544753944657406272826952209694268906460299414071839721402444576703397845673498329792948373760576029866641014649324077871082335250270128545357244800502385805357406528393952601740955906770693906945482070567210324780866109838846009280556395458373258907391688064859676064833099067821140179151679803290103090482167877884626402845925943020133859288010210016876984629394330068773590209233298898677502875110699660729475338653804210361851176543924815337168965650619551278771320991166167340052349743188207366405735843162174718476345894092329026857919650537639841283412589686278401975052844586049578383194143186225501300631265150475203507124777435499808110077189602626983782840580049622605670001019073605836949327737572046212419762935772520403985309582362307839675752920142977819091734069692892488674313353065205304660485191894969966942386400656571267809480016194913256829624397967626625142224337074296509443467144180078789124498017417381821148193517870583068154093114435512222091113390726378697834083223829361236564530676280598025661768101444898696901110186252268403766047576929405241681165594895214640966451145677659812712258754761596189237089514650211944610166682549141698942255692159307891154515262998982695574025240330915092087042801560294475306546179458048965789088997093875016374612494996602382871558488443103560451659710981504069445775854374620440371197736651252159016667776844751713011563488208223119300993737482023464931024446329039075489822413688556283237515354853201841320423798201274291855509609843139020657240612451336855053207106211996164508377411130770458524766568040535853106813542808693852456143808228365232816905015331358107495518000244600911860277525396343020434538974350681688173617179991276785261002287047192954008629883791792094646217661668420067219759391560587547879935905548076621488142346232541547008875560785151390903502072350459707328826245368979590000368464232840117679335159202355856385837507308640636308238049230081468686948182876836213666085254095576705547893701643006505812157844617056353303244728035894847122354477384034250106588317579930169234698350932157601415451052942635611643239935794479062289625181577187198945543673050252666645547307006289663585939955536201678382993356017869675739781350168354122777213210487790494197323423660910147355719451047404266516183270039447652660325235640375010345345894906796045834226061214234836799155624555665120164090259381545319941752372313797083528235532315434349833207903236489043503574318888853246564469165898240073410223475637172121378135186394707955300075455346008108215649100267992919053326409535809687207900515491694151722394272446261113711931979676425642843248505721645796381183097994754195808788137371131031997224538901239611311440605028888621377796947924876932866887477712537687087132218402114417101522489781181303059514094031601177708011852170554572295779869734565367764974477108000062215493550900104664279252907228918234043493113302604471713148246752696146824734780873055180206290556828027983189336937205656983824095212121603320632555173750587900720327762950887990676616368156476590154832371400577616329978550137296856346899302839188298690083758392159726366100738226736779086635569198769417794972146730835508674574494981364631602078038742922224609216670691049441666866952125330203738754581329251929298689680755751081978651377072843217771533919785315981418516799268621047104073300025612233631317346640162578430674012368529508453959173632316144303934604444627775047327246240771311070815316587693742684636161509126066196891187455165280293077719461586213602728936881038834886822425240108349937006137477570241467154529645387016067370171397870474126637185363056659647356868140394236174042207942760182937853250865971898850643319619584425188023218041347777974725356142225575317932327328725862674583053580274502828646093112912340773933352735908730626461238560013362817300032575635534391799068236903026220913373400507543392453529377546311794927321425099601152077824915750078306907091978316821198798527540836772393429912057099740123888965313249886854087954920639347107170610484612514785896378895098793670687192555933796628324965606320498422804500590673114582352449382337637233786240787974838732417514857063222891792126207516063007644907419825808780097336190151678327694316142041242416499869612470207060606732073706054738284783157540954138049718758389490753267437333662920780023084661612828295135248351070557612907941932974721481427970820549029078286421866521903202096658297143667934631973524361507437360918350080203894522906590763421153158857117299628801502097000478423823237729225407476283843008069889215316652359818656698139831778816346663394513101005146983401736631990637967294433303294626710905904464299664932248313026981059235543370564723554646645704979663041747550089854967086993605587741179447393807258702289047188176681650012031399510256385466065142694848021156859865511333890547322297227112444135288769098264870921270695864554572595789355346250970394331018004155244427084580990675262397118080825701798919798884275230787168997548970789832473243515572929507616534686493745294179148465169840257115174051004379871299372486905999519538814591296984441434356031633883821951676333656001909223908488267158473310421777734237186244913527283912893712643320040486495775059477857405002824686157394999724393068182721681715654302152852811938819228474078289022314562481725208262989944456231017506479623350811573404281954725540107014660285403473954513883013449584593191024637007577354623102069403341668371963604692014779291086937215151771651591062901936814181761031908135752760198020389654348460210537836062444579007662159527172800118433082119022788733144657875380775640785437257563896306480048955637887911417871312267363460296530118088002195252646413478673841286219548590616637798711213152013711685519235671482111819349871908206367061748021689289928511041927447919727853642327797923312725781866274848340735530368248993425145409321471705312069564688576864122460503357316313889106820753192384199448118299452484090905546940344247605995774389517555790299582637492230479031479269081556942118130497740532474780789332529776587066695492444707715724248785982552138466423921369975665020368605498112128662795545710355959394614132925654549883371442074594177392714880812914690488259948388256541595544508113960704621580149468997577670003020083622436091667002948892134831717983919054497790470155509268778264274300478581062860572231679681209748811845131613535491527484706257939973362387367261600673435752031199871811621619092282304283720939368273975087076678731635672515874663875923624915664892034903497704253763049163669477731759364993938511075774474040912510940119145738170531319340930015586363333712223884919852550931339065917158254597574355534442971127857965093383661295529116105988913095461785001927777922923345359809913357756644607819653495674837866164398826517961570467780358571905665182356893127283869632795052911762041999840093278604944150842853164368969261888107563318890500870008075212808034682437215641850484972616585062738768431846874000168053504674060433218330456572585559941741574933924102620832402160430187907781500415851141640828454079208429776982123493953445943989582905830338059731801588005627460266167103303593515687163422988515253954136709488549933632413612866906660461715969001122900264275680696290947356461296467678158318457084386207768799269645985933026709238191295126567000564691514006372615995960966658607825812887982125869878783929298251526954317424539004586010386469872343592203497314733744672883414690413428685677389026905592796448869944903444587019798183188624044324537997825447532054126140475293074916006946953558520229424607013386685528471726576143913920522529383624231018657898591851317686089852458697016323065543560798291434058760456676522168530446089979757371233830018355883274200597900260947058089506250656991162470321749843663113715543001799861663631444076711160479962403761334268567768075555601957171596315359822897880115316252514417049373132181971272185119494075911696810227771625315316312086882443207655022069827269917967158554241451569880337126800526990693695881322666308969968297647581831940191936224971735169490460691315507203136314891385910178823960889510261155296850644351615928216815003598637883711436664903203874687450954019927769320077002089660503360433347387185240809541823647817217034896394256322866999050739142506007363254180416387574694949336866543293151471087671252548174166402005498305822279863115107772130255974763517470263693033897548645783594279372688504568126600149794038962514779306540833581197841372929435737660711206471761770600544992617871956386911067084223816721981430976738484738205049685235696510030722398916734710193730101566057240094012386346690178603913465190351793028408867578275728287823916949747680620831719795000393840894417521040390791991244911789888205551876401734548577370312264827128346163601350276606790747322540797823171480714175843953414003381011466816013947283823385477266330077117873430187428328387895965653615277671012825792208355791815919655395008951062258005103821433662085850573767711635278079654903321868431297787964246232931903842489958050229753709742039063265072754696082480406843769726743346356427266148707262554009350074185224523815206207282547597393360974076912515829725978310841498105967688427566082890064239726644272796503129219018696064923644182819376533628035259627900995331542816150994090792398867034509571940066134235386356851279560594254250531017528766751312178388842019143402154702042231892983213550092845165837196475003203904525808587476724670218139684857482408164816977830404387230442057919009084107064417250872882805258567340881995949099436753367362984130456609280622344228099208671089000824527211575692752463465263835141789674131302993487630097167022230287554797569950806401038302958721457968245421572943228615877301599268537042404903167592965338082964214955056247836322380199925937406972516830979737274639530372032647589922266877422947085313067706808174963515959821569936603717938062225587497048005857551266119852343218433377364810473014915471799230430543005908303253405583921053312411020227528575343737977598014481060524862374887901796334724421505153594786693960542525081320183058099718324238858216450873096088971388689326997487448718054800143058633669256636751640858948888931086014888676817457811594071002286713195909434507623602374850834899739342781945809707959562201281357115195632240639612605673925809927892088195036639838987071041676481508410497533210577125558165867683845459740382107041332936898362099564571375124605697867582356385645491357676363391932309598768372785816889110604264643593618966331320598282310194923336844035962860269721516812373825836764438031518362201587373153341038652252037273468288363535086196236877196062127754879144376801363053574595138350838901684581672437514140087385564155368962758605168462598510561016385145018743932398890202899024869305628606233270436726904797660057650037736141414196948936886520741241107361472325504030868233380111542171620535744439524302978737808235821408774890296473492439470756471024854465174521554821402989243971898989220983336613729466373372437028647292727337864843196762331513510293786022606400540004842240193295709097381836064222872099311572391626704180964229469750945827378781140618588568565418777810424206926065012738849869393206726051767442135524645636270666934890311131468479480183998105557644196225441970562181605449295749794135975747236419865496714644290428091682880557871706662222421448645339835956468186591516973486842181025236509775420507718206264225386280782175857193479251788679926554149477154120879726468678374759745302625517538168733515436786389127409883720545043831855712894165194597658304021556460455124553572439452457566638208886426676578327117004646881319739771523126022329334487939735846335142616513233000557041541893270718878502983387603833682616596481553345150149018309177227614463508145169231228207033873238209803994292012206857637825484554709131248569581068952577606514744782498311715757244764872069507109434896220411357591005313053524380234831501090462093646736083040932959731158022324194069447986725742984076206395731232995312980838704057055858841790209056832889431671666128979214713164629226794028633610688368750766066025717241479698842294424381252610076958256973169174456231791430890394017058997778313113090051959833205634969533052919074361451438196798133936579649301036237628324135111849283840678232477138505469682998843840608870100826350254287380134391840840042937346545352082519886468226228831958339538546388998273866354119767648159939114778874551490264224378401154957166567340117300124553963293628715854655127988333323575815358440031310111791086376709789014692470962014183588412567862189367476602984740860166298191816376964022809321298468620192034582706308449750318092447745664211026979558512076426215086661108945048245397784619053606694028705875774045211690174674639173790414039666164216648965492856268370319919887464423188482883941421715275618150052332383442399998154350626718954871040384313245609036819637008578428237507038454435985585229360266259000804780791570078647603481188092960459095705055874489813668617569806569815885209985913959264002274597667447081198301521580812361717872833133116836836003865908827326435534849206192165506625620319928668388745239348592532103922398969107781697385902950833136705889688382872639384687398154509011767138291939858944176017520274255610642319017004109653947199207476079748014275377563193942147720317640074159891631029706959067392241284196261049626579436673321863570407274624274892512825239063193055383336726433996068662253260931012902823383118770829177499491443541253721997086153095292666058378599885006578081678931543780274986123748521230163230868818124842464315132752195118390284068170656969770307339576224721947704856915630336943591877576344909909832320928105279470309512719921512124469600145143913013766676084460054792971694494768371671300518686265032262941727088271949772518896916827545847628878624634077027223820646005220894719662155057072705686285784869122984293558467209514477446962969846723650835888670449362933482276887741307307526707924930547015741189887532658225170433395826827743185604698934620960567606852137893104383116259280780763216379832756836770844723212007789713563404152620399171141378535416209851530259465771433457596003017415459292202606606836004346124775735504880727042852791506533954040012994910134475436517587393701152632654867523110519225347399161984165943808289237728750842189620775496987817244928081007009579979766998807737240984448872273308798963445111547634042653884408962328052248118045620783924359781266491005214204739290607641285065462891537059262952749007918353736563145730931076146784546289231346918716743147506175577223867093076823048517241163890907003702029912945039401930339102251235850659484061956283736174777769101828940544923762050178569266368882747568650710715140208079176058764735592465580242859244226259195896092349912249387864491821590802780313031891450087393759831280580088660723023645965670289752049053920568956138690712533755869125910566050517979643049481912954841306556012149138610500884205482051875778269369208234368158310895396022010991091614347549417580985924195400666720510361120458388915465745131951039431189499772379496591218776293472160883989009581379314510175046669487968436909634240448953462432093316572167951304778437729164390003871190615448889655378038336850132176051178902787037443544904019011173055714854905783635378198092836772602767018031363908505569470739852711641504757003665736867935777411888030622014922720748982196042330058717426631725316491854248148745984660949378386124921046491418242178241176026838599341171049179400838551653771527578735639164366961426560571709692429853186508622082578788580898611965451673004569268002046706034739853170204679598555444680590184150837735366843014261961686375320997023691602271341437655731831326287016598740475052066377509522267573107348287139955654061636844309516940259967408592802435485926220213566097954490534260870289061923559588896518063886927652122671158867766026972539319305271632861479849281798570397357343388309171563123873586395007402581813871389530006625825639211656654328559635614287261270619695105166609479568222943271547727804208336916530883226292964446966569710966159674726032413618131252913937872413800828564317022199722766347374444198916527602885660936346096296101179623393381467105128309417263944035562599791275359739614094525230049012790171229180075275651076116099801640295362281509837112297084326261056206954638736543820603641649361395723987790166843581197713439127781045823179725166937398505242061145129878331518902780602483897968493780137132209168207654864308922929043230638704390824902073373493252836543156418605469387403855302513380481467656213336158943375148424775214129425416480648128440454505123887232181829893252351351842720221563551280929461019337353781525535286305634363303749103026099426980193919713210327874900853344307173589625707660655463499805722076437185655584549704169959374556515844445868716887018716456863258124853810184550202425827040032883771058142664680743769681731706858395069990874224605153589329275464588986407870413801362812890630947480035456175105856679313412489582736082472854451430975956468011354378827614158590599529967913312062297143532632563218951707607671326342227458969739909116027847903510628852544130893381879407163734362020447798029432780760839192829021850386870905342578431438334254643505969318234551070544555435237969500724499834029891417300631788137500901174894359444888027903600980313627398342598339724645889403775997211743465392000053701255216545372574260459871693263027890860695680989639440352768276494137453727002387988407305883390141443716141057201342329166927298410125220676168553603106828017943944913486731032372779117559329059358196931373235185428865891081837152646763111551561057480802685857340582473334919932374953140435551181119389732931069253687076671870413902393545480468769975779329129567442321057485610458729604550945173403878222568702080181494681144247549605517438035541358779243745744725201139364722489647748699257810232085914386221793519442155330083286185971158137220626319518662776244050602047154133160630388417177437883509234065505441372935079898346676758215149187690672653740432160516645964167025656159893919900318888638868390248501789833129780103566193026188656178338262772030197768802639659773528576083343290855894133129744306589830689249752952250294912269592362307064120609382670248732786741224788080845582804352768555133920513045651023448383363613453467449788819020479227928688148819502439411122346242151893441152118932782044038214892562710248992078525054319643178611363364480511108375477320210637973226169502461899075805811645759422313854319398363767992735168354272586849339548178943165010207560908024660947201171202711775054539520594922838593542402018667511097574838900314921720652277124541319427517703530858827444824856274157751760333849426808122232954523371631273512935022455726211331992028650954645730188373117315555254631416213838050081161919674321570912134699190001101078876334476282082000068149707926847763456269737609108793523513649863221879480103863594250514655911053771909052042777777380628504617027181301257647475772920364127616634124532741155047186415784888278418850769944171286647450209556055440685323575583179072720281698161333210955874468362610645095602365848376543945050752295896985722496625800513013506471212532234531914272546397681303112032381949305599410143473212933700402333463337291796764338459839839934024994729930387921539163219233739243774943240843951099146388794759192245714911728033701591481615197524643290055987983311361115561058998928760745722302490291221506446162484135085962576375196427301687507179343987087187382058494924047313914328345011576310518010333721949155821558457151733950733785371109039869486580108333237452561993346464021789792386929245557905918102111331597272895769848551923547898277886707487557739884355919506323194980786590982674527410462090825366137114450049791329377544218131494143453890535115792006836945933506059407488286710148478122019610410200123930756498470346698220861215363763042897266497288929878743919658299183555164387366677462053590332723062577252382524022839595534901729989661735308023614169716220080979680912697555322259262005811662172325096938456718362068403951478572272408775774934907920838999694929135691332204201435917594404361206354712984039134373217083344336471855898415467620695136180038875164264272214897220573205468740858761780685405879398726088237631794193909039462244358246210033261971035911746503023586714288375271212459183598407779101371763023935967601914107710645303052856901031329517235443823166832079766441806885246670703553882353055599713519067476789206925247108908986072465108338399276279607189376087803528430811203778513738674220566743091655708010742952939100797052319947345754319230594668513337127382578730778980725354878169254448231028585722664974065413580814117573175601705111494601429482901634014532090585068685620147088657320763408607288458438201799199426168181451106802182055500627945480028736954498527897963166382147373617215910193867111538925894353673742684688511959343907885226722923349581500745414303196965931951320717492052915844040287018956332360425126714110701634403883838797237139657145829213331414940064813843341405538130615567635304631250068748837227296971281945803597471215022603149017887618810412428293324496749274033740332141136246236853091262128397925461162138627124572657221088506279848608009745728507221491719197003553518492688344057806025306040386680290451107009007094717087829364510894571973104948754250234779285287896141712872361565159473835732345384599979811629823753170152544923524760142182632521966411748728892915786509931659882417648454275392444089494682497443075361231294206356877559425064209749911163237670048422264970620220250897651718424943778477277233212768379956935774600366128474663732668770481347854304050019406527573224111604539403726126242622435536883067259288245053941920480879020800440585323322344536426170716531377703518979803430046150749952218796855284533826263805755818516180267305230025659506397263011846834534019818233674609953798213148899627877932280301615023106433105245273638408385616314130224594029649491744685250741285652469433006640616904570297151965080557608279097194956903216494043085738947939899227717291580304467119059673594071017313020859858327325570151279554300418317899386114365203095990355913433685418920317151772964064455194257948978180670174085063606345277469929727440249304106400021261810717502230491721089955975918491172660084030424463569896128488995410409314467070523110615207676669780103317486592872253410850543321985174884779547136281778928715607337256113216781468078517317672835718312408015371895854092321832351730909599777539773556249431341749816641625070518154866632231685121757918680949547944041594011619460267333868026900185027737060627334786214358114163591925273253328212070375744438625826062833097418569852427602116772114791795062328484939508423307214373460375072360567791198644810690362833715703241409483114676673085202708383534825425111911206863643850669083274691783390363324778892452570290661921392596281993670097103020084580566611829522257981728643941328424948885423738035848226768454142024273032133477795077740566757838201069299742544910101186931301637506132942618365154958771593708290395279048073027769073374578600819074583756660153231456979911527973070049353285822576438197201313012882236083089565500605698202187686781346740698986721793483862074204878462777638147672090711953334111402005091299032891311869868706546289559486773591681192772601417599464998669265667989902783773940534617858071531079165053249170026734838117457176067985513928270175288179133661592235418872037086518042643880613517547303685178606773528553865705234154891780882226631005510142091274452436412994551456115606118791733814962866812590424926834812549185191735782493094890666137780920029498579566643299664297864239609124194384888962983560827834985471594401950935162466946429584311084292499091203640665777058980279191979345102540711353203939875929637898206130156528065131161159400923612633328888408632911688236894995187740664957943867488918823405483615817115663168354913546208979441339951229837506588161849852721989988012371366143153891137257391379699695087585712659037745259243605941403468987347018785671458108404206343385631137309543886675309147250969280351855755085449212668976094566526003602748834642939767260736365260739796427267782596550669290062909315875765182145624405457420910335621195432766811976135345462825625330966083230372420256574026197176643793501746339823524893828864546886835365791201505432318475614219644221380536266459336835226033094904127348962887459696014079911411942282104589277781082268061809433234080577340063713158219405530913508495680458739977419529741884727149090449033413578005035640390865568631526882759428481328494284002699068953447673622720223461017951261526588563491101181578868934211247206765084593264818488175177300833838321376623316448301010783982005662982282960204402329569000378519289067260702524982613692461260591945338421977458101605815380463087681405648372545846935462453688767231057149173224061515303551164498305599129796386865039416861144310163168179786522757270331629026302352104486717127773602723961915790354829150601421051844041240959961211077407291233297059686490301336114917422542940672571933188476289498354888969146759513576667270351569036641126575525454960991132479691316861207380910287866601926462303466195096155385649459964486584882874235331497785806476166740983729655366090846173343426253421929443363560250166922726887449191597891159239531379500088369234329644327290685326919172578967033652440441127946183517593037059674945541211059542845203819887381361280628168493287320912388856069235046061066680580845337647447307366159313632835500428835627582089011099133833009778493840476476757587842315326556378517395885815161491729027089947202270398140332627383283672899545909952762004122106827650145453654066545533744534478777811860742862650642943639910583056073451328626449720535171550472180184786762366294975405812380492284540835106525083084559068322654350673572208447766455849334529452683613676043447788828562730910389489078662914077220417576788812422371737932707294326007736386722495666814909064422293558055869531814335238944624441358185139004925925565673188362452742888042001183541116126733541444880261373700609209921287117167496468611572864222568748044634699519555351046695727792436905245153156653525017670626565043782399095070507481899977817707487353805607432008693290900307467073481530189163685957452568277710528436523884474208522922237351820884384044504387908221772887033349911208304552031509063457558731664825879972215655797463325216045344395825585500434250242468654124870805903910263501231006616161375177321565312371325313252146528994515733992080381812763220036666346841704905721411367718139495891014294035094684656212653996124860263157176650276444460422601602193634434911889931403987170522520503889974271729876233158095461267519038203387749034824395623611084887894035855878915902246576256314137568404686456653702436914042006092274614788259616611631747096367319541783345742312455908071435411850792896995773966015393417234776663854588013681416379906637740438652258339745068317259336722922302875168951722672128701466818742576904487872011089231194514185867985421578798152601573152502848025137218020140139052548932986368146018455034763414488999136956492101033970262366267762196592745084267042901303664818332665771602070764979124603960981834152424856555252925681365808660077541518577155829557221621439597349252677057288676782427783330208769484787684922621355605475751352756804347226670558032229055569677062304108244758630532696395417704752651920347541727618762828631909814796974335144943562889552914848042355942589841440227536190122578969287564908593514199710850497098211159947518868415767774452736782539551461260909774074223779306543705936196778187359548191275791282557653375828479089377657721080530627112625678212283064144313877747714627661322651072035382285397178067240240855902531668316881405646613929310688435049078549460185491737941607141307860313305086079557098748880169414381312782645919782307139670188974411657479935853649097040428672677060470729222766414250095493004797433601547370202489047567991839364251892747774289142156220753065176359275086293727626122032276701030579045516843037997406665534612107503983839256231695787812567464140843473302896526223017200033455442923260083618923865936866829514697385999654825099305902627308338266148914771385323452459837473630644485570099479976803493269653223249419318109098931437986835763670669798535251115066877092850867858473398385271661389650413959201088127077531620517590548769117075806370196628311431297459250063948693076814932624349395979839727060894531686429843814373514340794981300101562821652420466498224467322385847915519607558818107641410060405386144014219809807056394596512603950550706917639513258073626840982561812177611981010811099637103328272679600527619483088147243084276122319585088623089687809502006835890541405790942507071661803935482353578197744652682537124498983755630509483777668561695744801523896897942577037669370845666721190081984645032095353412804231385577451421012895827560697872176199669643919159208201228699779688545389434510660335810117911403662310811645418833282247464539263527367302981315505134154240082306059440589976355517989195697402356599472888641913549240060511118430919414230315657481117117980223219262688688287762227080480393151926438374212523789106317538269905253893430688797210682341417586331673086135895036729398567626424721914023130715763612762963660499267560648143747239771588392898850408530917161175613516725614032386989985620637228187005209337215860845603193077400732601086646464807289154743143287597778193617134732656155070690242672135934769267693869561407194981601446038591787394803320647732847489277140486476186385582058835413625117258169439543283993541991548301980734112264062051941915710660088236256045843777490083787666331952678987394011878389769327323915202552999846555509287856175991686625660006908460268746784289460958981425489393083073612624342758723336336437402030584654156916175608272849646449499550000636990292934853497398838003086475827689642443875945910956187893044866539754571589242188168535045231726945972144878208435994877964662612193562529696057059259751458346417469397061614839187457305843985521142487446836129687332680714592440912828702763558896852430614649867785148475243242954603880355750692478038473326604958824892928009306623354531169783146961034779900728531251231220744990948075928628501233090384007121704939738416154916054529765185715609372347680507301744985268923302127776486640538064722036561419795302320907374041963252385557874538272438646521100621295494972314669337963750241196238821668436109562031318847783167290566881117938230604783298389035925924563678549112510456891464458871689540000680907213346926207393102055263418238205132044213136039596556214362759581077653906286361095264414312710325307475053102490014636588884415154980598160119527403710702110836373881572247125081690241330084432847462572114506886135475223955381957632543992956295340256722623477424317502098238293129368072402033876719783371331913757900471411411910626953539809285996181049754389013970232949221563855202616645078552567603095339549957003927856777744341278323181258100750478425507935880820122281518574348922331818204908991942390231152805988867107848482530132993125433643480976700017776367081598399065944291360671390052800380181401396993821633311822317190557039414870479382794258236599761744367945792886906535256585291298080792167657154994469829096647428918347272031958761683350120720414873411309616700288958412412570985841470009969449988373915544247738081352976335300293083098728120776741584322403397101205554227684823692506136383019838368648133196561233536869878525105076609250317742251069814191348281736157346059937367494881205384720674030599130948056961284392170060729773093079977688865513587780217334611591872991406683548874872227444256666944737028626749377646127481574244514174557121943663366731346173981503970446158013036701782368797646228126280494211311092512229607289382832605108182868931491304606647668248498747768287001198549481413791903044496700776345962266519686944616487812952261118431559506136933167001140325398975266401591311661265978929306086588114149333914871949916713825099733290909771289513683358247651398809637408914559704042216543314487823092574712855442398437871453061327258270169160718588352527745082201544872345869058444586649985699395137095148660491445930737888805146693198670739119037099844839198098454997452135732333725947924063700535712339120682781483304114864448171269895526143514786102303798953683679559095892677570337470111180265879381757640266178731172488756529220643549342579002942335415466740192467498408207070437113129912996425589532701930304783065665884870087910243620298194658047164347470606983553383333452896357184263621852699018424425052905580534025451269515858882885122802577942521803128961509252029192390837627962804498874342272685101758128823355537051779154619854357291791871791999267171756461987350764566600025354967383820913808404881463677261934174380828539443906017441228263075792771060747498755198465478120756244292620104880693260639672283034443914939009944198449301394259936461395998792349486903505069611118540100814737088343599379005259850195938845336672748384551658881837540846377042583535230315892406368437917245656127591465247538423465641245612202810351496618972021897108879641826218508382054663970839842539463563875877322474744495261367719809003539997508748505377262814798074582587522863384466363414373342546837244769793030985808854501840001064437235121655075657527732115443816894569309792465988156704150870200959267594672653247993780403108801487383225148474842427432943083441216710228417751151222694063029196066383291728380323141687428612246777502348961055954080231286992936288159417948699997203908487611128995690584536507990858751484728528221175990198112639512182924329659291190139244934365573287460117708360732442631588400367996781626510780796283939543749204183304242611383369149815548445130912631296347896637314646495685546079897887344174241507087112368406087201989884235319049891994480164079649293496341290878539277127903739801393192552706808474531684162981664729663153945516675726306410933440935242983571250447400537220120514008322733377611607160320864768157715959580853909360776424761662567659383302851117547088669672694400655072292378029761875825366779398577113444823944963150507893258193108595669260805213653861868924475890994504803995792217089837395783436552325520155944524708776962250676063630860268608955821191012046420896858556124047053678433222745037966225803227082973653587785805568804262071196399064579063514099674879781670437749922150170092179711882226035552020749580929844049325110208909676985138296526326665168355394524674284270840790588671349669229314679562056659553136872854456291392146146023758780597059908154887842517451160199467229279590393372473703746860282182406184841321586073796449995249718917051803248171883400167208334660819224103236910676696382675519583912028344609695028997482114167614209867485568890964588455214775144488348650451120733631404431908000746547815011661471570930138215151059912776378115982385440776706809815953382273259175265350967559489421601106969921165379666720435424334466194562779286718393207794164230914454820029286661674852057554387471920606433252476105035384336798986892852626450368852277530696656799289691746301474559689341017123200681080146651785089476925009987794864769728199728189684890276739429259707807811687712480179860339480617602521934950015880246921162881573118137558513653347128578871046330643154850060743660374010900375546861009257642277978677160822030137427433474669051386400839349788754794878916801272714180579677606975245318725284224173737824023003759487203276990212525723802984007386916611644915722549805418093657853781342520987812752771682454313122785829112238577380762777857533290202605584622382188055036437025741998039291752837421526033655433856074756831463549492390902865153711824804047659996796653102989894732124445256276961690740262193718419516908955686277739125756190969605276699090695658529581055590534583664149946654623877645034748450184870545622785705820838911670361463684139865723999055776565502958729074788723970214908451549290276889433631618568592740504916078509010391653298878140884000648179532673223953501059194501100676903616268394082633272598875166990970059547481188831812063921571077194305465338822440657837467927566082724407099001876133222964589816965390018591523802036387290885607157414806047401986476464052001431539511171914835881358614365253097821374381680219336158458626173292996942401802340186037598325045965698532421242293718501038412147178803809516093297450452902061603281565015986994925038857798697822482946525065346117350190291829391455741274117798904031517035606544281371069457657255508738966214047777382832284941977719337723481959777720456112002950248062532560402259148444514087139418565746087553082334610640561462588097284731730725989603700917815476392660310016033634363771024180612710164928148269219625094119553791258374378046948132184831533557281149757768374961563653452883854572225289112250275078433942430907952120393741176628144631000114496962424239628940711368661693176042081626540773629980689347767542143557649391196632135635074424313985567189355813189841521461457581738654724549138503798323094966982593480403325678009402718525325880920531600779090808958152691041104757051661342071842316015528457633179503030612099467098843001130098715953348503159619958794344548868027302993880352044791850789243103694064340404553490406610014234243082229021243547345103268261994628958791174501105097067526029125985191761748850499445753035564969986346510104653531025448116902385821197690284890116586156559254158688592720750162610536644587350694771341575682506493200422507911093501973206152114444891684909758936233433379844687789053134150295321015097303842306249803901483040151215239298653054395938212360420977720091549304898294415501725311869916790838271642216359053746553259830586235762680553927951727645589255019313344560587335653109765215852868108123591519927311044889499051321719616192249980506628471720345822620340772625549688775087319708751340547809923415243268506340337830129741594492939566588338899610610620306252115294609474894508901186702725584658418671697169587933800813216608003359887356036291841075485391261437104636413551774707043985259876114752978043257266523936568964628369166143077422549175495707357505763047092658949109447480347528935295812514028434978575590980102421955544201357777437859729472324705953747563755163071435237353036906457723205902937299873988508790824946585710950210517915834673714005070920490741138870737630998483182603283692498956167160071886995278610300134419599956074804723210792326446071061198637778362914276383900468693266422091809628243607759671337786405211511062755213365502362531149326736673628164826174240750610230969256940698979888825268761610950947170115937509488223874411368338208543240294978133194189468260446548805883106725715994540583588716951513575690893898517936247443737390373666042033494780954269010061954414183083030148390545613704447342803842745580623492824413052472314529221418454027254283188278682999238455254072115937750738747350956485290090190827391933853656413665244304184337480551703311733020360890335677156397605701508330827319764127887252448836037937023530198110741395835507861185048539652741831418119110268557158707401597678469465073920589230058235570778715936734114081817783892526634457121382733648065440122185853420116327710463001982283079116624507111545183872185635572590972954674666975741940611849631258261560799576402461227035326358426643599040216627239817795700307896919323288993872830647941964352837878314167824933377143740794592769860855430929172072598051636589340435946024357366787840608012990469590405347251559492332212898381461699095212301957894075743421080546984267335466382645327043576592380204393437554806102087095581140303621623852101835332159349997664615826184644119554358617808160004847078505015480105003990774301845911377281042817431230422705761657427893349426905966167812239171792023512269593902705281263795714162278374406534615229484434872115390481447280117813126353078342644101480823187745532766915375836405384668801754910790394411055359322537954120422758603607839060359818561163105982637857704128044599247148336518858179725922469526361111867593700642041659550379516719494857755667261772527095317342956701329200816017204056041327659331412662238093747641518596181503980890364644949169986671188201760873550716240191917247269216053558838630100425746114612709658487264473366739977610059462514636368131733831841679190348794306275335000927890012228755188643027591894118916393892029458245735632779987342071752631787095851968174909107564427635606320188962816430316121325831083106742956837611709958430491494475233280269865443713886122772016219963651191635817942017009588432899298468887034454487924120114509558693631894455450133092160527585571115776777774401501671024000919905951902619274775510958348744929977835010304061556122326026577534372597889408358227306253756768565374409327053568182644809527013121474976059273946120249344855803673439971110450793310682118502175459170839146483958067133066694120382538610364357501048470244991857479644508869532046112760488420083488873714001187960841823668930295524314781462386749118875233432060571014079238241379682662262386677104727152396811612953152217097487278678873215285994195447543566879536979313080435039387384858443155986449248901737993332981097233818163132505151001506034535771500475832444766804937206460201433545067785751895976049441441122622295891353039220321494670413964870810102493914020084399672623341749831677912532051330855369370335527186824339869816819884607703647688894634652299257087567909909417805914289684221720188087431138315306148956320889717473534226514840597650944247333971657612865484689570823677014986358096677062651770941165201900947233476408503750396671778817489379324647054564206368502829417270677403141887328321039725349719475685899621320931003886571256071445883783246167866061904141557481286783619430315886642364474295775322637302743448602877969244749762667416768590677711010618212404138742119593058082105513701278795395704515770828416986755233871385092214076885481480769277746882584377629338313375216698936552170696943420986950857149400326195083022167477527443026944214791048287492670512950010329400322591107875579847746485078099755247635429207192009622798567876003636043542360738703222197722962425277153717158759344242576190808969818481200466687285919828455494111018520619908246163891036907844006157559421940304929461263473372109940979798455975626211288273841090565722635301087915288171125206960364250544404996013821947137379614659679244207570853863460402745151756872154432508913322110912450932485481381227971437840748397579593694010142497488195045949262946325144658247605782682520563598262608178738795366180631178185309664267531292212422639559419294711375136573788273553109791052230544974240010629068067241337414552727535899126387848910010338406874258534771829148655271649658055809823592319780755493991329019795794579096209089673615149048166798163285690500993366807746508292040496988595201775826509814683843906210635986541958798118894258341106918349206154483797429196711700288697882361641550655235834293315568923383527917751749701851108872445687648051087403460180068572115537391405817647479722505646235113426274488915129343833577718875350991127359402197146013959091475307118734001995711223325554138283404477351467157358956126015880802335393488049738495717462522398031049068325366425789148925326038743500135466875921894409729307714763187114092852779440716086422471335943427162879186593271194408488244601638973425663412229650348824882353936888107570764368543225145295581419384607231492186405182002719746381226132236927270616797244548207944764277990278666566613188607858119995494811435752465808880905509316412376108520479103055483735744117150752303081378435410275855754246787820873362972790560849367202836768648860984637801342266438330156931188108845902331290852838501694899548979090451026270973624282303269689301385983581707934768567126812693767218265902803421817203480576896008461690891142156050018921772136513685155223514211908258758611649477684669722470413989182713252909624885591670992930290595552992654345147323361011062514216729876900602993913333757087611117652620732617097441190381046013990186465568401963794546819327804256135808148755241413520189328596608267604136796079909413048063387123918686140322069387852941499190451312027513538195068442644712730778746443214382245692516705490229927921392019389437028521946108237496147340866094211860241836699804119341561397132251581186069451693491113151371645285747657356253728904583803592359053977814203978774096310654603083239410732122206259291658016996949477240363474869187166875528683462657158916882034927123734544712223606619807166167176317810551877118535036169766167177962579510686755755410468657985635912355244731770774230391496233268243001679020481970975429293163990402946577466204589666448949006850110644065722850273658034589672883883678963923089083361491858748105110117483893560127570747722177452189351331789112029294850999832061857150215414667994921402811529068747748200733242993276694149856511424479453811219328370118777207440020594070891414488885130442992050072102179582007322188540546799186504526047496441579411707551969609291942246752157963179171930517335058025851414726833702626172477024090563741939765873452116265077901790928485731919064910073792940627954958272388363983108684147895994569169866748798682155929937380776135019605445900747894168532510355879557909570938925121590451514178095556777910422842618298560885504379076952518370888014997085573104506042429020090856489441374294622379828328061783499124675909344815656055166110924506544482685568279657660448341868692171734595253517393730458223194965463929654730562281908297207961123205268419302437165905202529256038805467170499449131341299594074877030379516031115292934756052580934404894036537513556285934666139987100480959299885766309506623158313675852745752306842445081203310496416724835377931987978538905014917928233565497607688292824837031416364790467353319796884176393724706518798351706137923749615054003314549839878416506373665393267409918053065707950468775400615998889531566604239716775287776981337331514463223124061555102904925809381258892970683094622664505566330950664915768678816807658981652322116434087469437459512670184953522368299802755298954349312577013596864342357497220921134780496191629057340073754746206481437299979780942104782133664890496126296586873312671191661557838069632027469221123205327644549710525559074233599213468042502795960159110887946179686890890670134034127444061730135677059989096475194425823957520954903654978343029972615254843996875820568827449366592761936945843285011518277020858489087407633483825708925610886433099120941373663732358859281946857751566233925713042538539735513952026571396208213113407998497785350900884594187634747192350526615310591663903113845600847542338270124578902080015551470279564678897199007927205443286720105408697307676061057632514493986581292802726962566905532613357229291253901167001119182570662844663671218386408899428915274296815323743699510298032610563425279765953776700823394875208803005981573506297375238069059407308941065035426671425028782186314616937712886328609442408515308883442058542271933913944210362790383450284508877840018597665094279091501812689077617071624558803563735253744753624671576846409431915691677525013597800160410370243289815200095034284012229120106261637386988027581800527122296158744674805932073711305286920294565764391693837196167271987815122637945168079577102415611633952161201154910421871790753312172987836944924214415212329489411531922255660959149035327398426687670426491185665566725380306728663456807968368914709803879286649633269099371205101269174346824616516213248281751149216536749077970975317239450554339633186789224778681309541192498037705934542723185501227669034161007210468882113745048622893120289933794167777183674787256417880051105433418792961898599117296570893320524329313598508238907821023924311597020050911467000044270315062508721952639994318593524473996494260186634093107147062172608558510958447967429909375277161890406758948742334695738654872272111534146206496773478859880733538708661314920405575588038855592043540300841214454793230212501449854524268060674840690275045260503931360098047069683973551681381438167216232413433267869886705992021888478067176444615284919018979310379548387858202446287815676547145242104806153629645059073189112639010671175685122221738975833088448044675525618085067214681804699961723484450624133791754042642557277019299406774318589555777470086873925564047322310013954727224682455405042007292781308236206781193256831923143549556377505393992427918940312327620158777849034188421140268922845634222912483110599012321230689822945538529482483325659737501212053647736349952285569228822167177071014865071866845711910017625296619923208751813593725899538950949266568555176903907164868794193072281858751865243727133249942674509231604299182776385272927413268951256093515517106528526377946444900155226528381000371462679862566124884125299380278827842170284596882854002509320267086596582791669929873596818829918612942919034459787371558620293490538047506954442755784440766408415321660709478207541924657206008535781360041399916794434246809225731179941067588047671364389852398118197907758424312269622583570084325032035942161610981903852355638311068287842669103216955351224927961825320625532549712493730396660277553372971992255670595778606512002351396449040323960318932951897350154249508197091046241508744315997448267205860202424974521801604477236580559967381745918884025054537568070253477985698874610636217427276203651418617429393679691252959450036353925647659069172724799271145175475793667261039920604550563337155345116061906463486337148512269308160991942265556410919396119453198244279957017424762611926785713149651369112038955136941153536064953052689649752711601383493392969315071938199756864640492573552976002854678668287665796097407089939451932637967146346470147914257988276397940798169246177479803910434551903263011214855827867091817541236084653707682503506946451154270243403756216880870626485209268746538781843197042714422709496523312352324148429837599878956492580103191290752849773787831824911198969103296183157297821226485937614142212188625514191351903396941664859667031173188181134082824006314890728462459420564870335667207838229168845377551647900452038231670590865498611554757511315307208089992946334451473294870240739134069572999453975504451081167083388322796259674904274538142100075543921777865062745738886853407641743283996972280745773082881158127720769435398589946842679441890108948348012310410414070234897220734870873976796210840223741951723692287469893809834565015265062434053380088456777439848797670563558211594097751263540306031783194843285099696473740529541813606588320245340485563931161893725572216995675982954949985279156045287160356992857515653910909976223381310379835154588125118015853709688508152885081136346945588942038780227565937137892109029594080890946401018272948339771199647379712646278791312146453986990075187543866988461264895606450020699393482905383132464088591792863962048576598794464399422909425062687890488748819350751970578479436835799043717623298546410036938036022472157164204989397072316722569031647384531788057413499336032238697418228120715224248982606511009098141405870770196202110821956458961993981940100081309714477243244215865462721693720138573617834414687642822907131248904658948285097624883691010412959474838422405228241286331772048557136195391701335641016907657663600337399552566865507332297436555249328344506604678079721883727144920210189847478672684820761945452287475489200215515285035373730224791713788448801110639847704664578944920573353657412478925486723426776580240169225994466241882764082571660707350515288452359239571103331455172547839333198799783447053627860670878506194077983958617527107460314520430180829942178202660455026841333249566572432492330081992201353172165964310492988313369445982117177324049901645529449245800527389012058441975941454506807385724723253639979666696602561469631410725958671911063075666413125622621540337097212168232836259132758228947980984904841814512199316509532765606570379432499785100535800832733244375339835460354707008584344706199982544476571101215137069785976421772781235489453809136840089840254550447830511953841598040835768919155965480832256017513909497665326281406630934805624203758257974393622648328148381080911715858832444505868436573518326743712625496610527370793273814604981669208139379090420011127484136214557364495467895259774663896124224624803113391967892890849029343680153324687939473047225070769537257757454104212767074935281434530748609386129771604376310774321447299391765914769536254510251628041014589803530199078628635844038028277859861328757549627117502288434195000630444062306143034070887377439253739617404649552566080446464231384840652858486455962104116919390945397001633881819683619381186500013538459690691542293515195745728268711044756351630301931714725701134355798425154275960291643877076353197243538185323392033932037971186475547707267964145002763042329805926341544225616498072618462745184161181998822083978305653200243116457525951167217635814070208005162767810651312390190725103165258819478827480556180791395451881302765476935728990711668622300657185202298049639546647939461265504017662394231665069144586865455381278401701543437130366603677969834295866840633096496943333156659561855087802052198538790424281871251198551723589313096993506700788909365722700184007099680259880713696608007111103371306819204856067536595619711992294460381708555619025879898045485037193898255987709261935724004597405295964124373469807075904264250215948677758379763347517084378053591715348067815946640286294548494386702009288899812105111731618155987365151581081977845340328463748212260796086385924648639472661176634154086768981285586761430574331618083379899319039100057982013515246801603123333231009817647907146040197761226515805499313919161840144457704257489339350612500516801532052029065062743301377306602837073745023919391758564348539484865957059695396834003144368208623119622195404090733716134549981960660361462532199331907116288073407049611893438867681947664017642547768853862121198803051161087112285598535917362194448216027305257536078475112367925043677498396893127105096924485765550443270989156437097475090787335906016590453215108996496596475821256214648757582674834109413499004579597627084685031644548096240674288627034389729305289018428113038777407752731022817551837210039320092306149971289698356803930777496867976378120247933975880638711816127919879877705389797787229893697351722729407144820710313857302052917367532065399335040436430134314209462133221386223480953577535856093119202047398970628071042740510350786747404784513031354113356503015283813368189044540950923375753532012223744470984553323228183487047568787484503983262880752210855553653581430760891093525463703148697024374260348330519141952118783695689927839929091850295657892242168138835497737601593135103936895570940776630200178797480931983224418821762499966091627137796901906702605123599902789216556844402340800051291216161374210504389001043216235133650042233456966791372397694509936562431300924847021032510712748920337441641387832954686948068139056602690453703220022919007355675846304461384271486291894510977512517145743164424138004480198403127875361125897978715119268296457376885092338970272754225032187880098134578396802971641357320197936538429187111615622742833317790921735716290801075729093402750459411517516466684923233253757254689594702772266781588870637054123361755359320323099188746358947336603590448835895049832828930306298895069200360551115544231408042996123921935461020030627597781026545332846043888805592489778639486451083624732992826317035718933210564146508627151221460131911871880953376566819036360465585516589804345162293172061217870108707892133869790253549357622750155512584111307656885287797511829692579118215951881789595468383899133983716240565156781203050476053912696308196695102889815441802336075546424663768795369913417181221634763490066513218069277830390342749251395292570809138953215949859281655357153883283964037443994751881730042445779415947494669303413569192895350405567005542763078586210418048054012383561648154145835182220924718476541564116345044186001245179450634334497185945109802106713968680303008918660260010524968373921843106563580293798944768468673278356444941115113426905476480761973201162459700482780219044809414745649966304818351442820889789484378916397685459474812399997031575981402115428108251349239064698614898930805938932674386533328737045670656982769864354114922597553247825053644032953030470524673281527684208057073268866374613637482997023661804148410754140582891526550209077407034877016989657198662953793460523839978247297759249384467436352760077795627098381294502845474242187317520168420632025950824378586531606615146999646598718838903290760143972424550926821200956295788786289214595083438327051465792666314180514320291361362649490295246641660145200465911600823259668592246382746083316414205263562215682279889637968800015628214066033440137555446219885976414675104949805982425952436606790810406699068375520154491842931046248917100550319139901014024306476504388936655252448427787675063899991747721060440411689093584103749649144504219583569357792261950172763639144924299338260388457874683264828120970839653361484584707638339582496924385814227294877683153386095274017516762730084248583540445718982403031254841563914282112387533742200581793714731352142446822296446077406620430702490501955365010291128625459811286878428894881387468730239739388575247946097300335089574685277776395050302495130696056208205423136209339081256330078344497895504287040586699389866180060969374343614500278177957750461009358832625324098109315160013812557170818936435087821110077048407122715517000370923195993795129107329050125227354963195551535090817164713809038225643013726778759842206248085994475112742755363540286953828967589147499077149986185885691261558924617524036483379447083504844936855157395770711026707689351790231616360348361056000524477879333321467804824190537006045813626321929051021887713130213015973764989524125255900180001397375557118903256626511590919405628214492985419207697773094439061828696819248884838090134524370061774624480277858309908998969303133254512307959419569050180102014400910793003734838387266268392428895407869963779638870649601473097422878007425110254861852452632370344075688009662855541367060111530120100728162066413490133999004770036347629142029299621211854373834208305920715726050204658121927921992230689490336357115412707634517541348697923004866921765149442458745883946815272348245147181313142372847139000732299953838613280651339267734964940242705207832045026699881869159532777709794713986784166827576618518668442613160452204940919189366475344659124033690493000215625204790156868908021328251131202034633767547589201161569878916612678730706240791068002132488449972148215064217524304635685385113828054567372534442817132690798431925087609601377734988762615619774259231965217905972509822149419145529975165747406179989154164128403388460685323113978298292246326592075003703736971582039690339246536234834417979786619890246975302899992106859098696110139313772818620016330851318089594548864325273440111264567142389476493623116246583046638572809142402291246162238976394187096829761089268965473557975313389850261675363953642647577542120099121884042513243315281840715909385496003986175737145590417929300082567323702467563164221061686461391664301296688340535979802637704597291724976696683243184561022361327352312704337176275165367114519091311560336336017071409927991413404200762928775374691847174227114805898605732152640468713199345459370416542979487141491370602161529534319827875478502027322221220531149429890638031837700245648814717399878695912355198889142116735538484556120566977778726684586790030323422853837380665292687160862031575248492937831381710953103129025881119347372652993514756855536156141793663104425445140955255238608713230163895205424370717055125623625239904895399365840468099682087783596042184960648435687424959169554147801355020246209106238982597920372111334431342264587782895812701768749128365483849204266595125467615539394027070787585480972269564841858490295066198929167956331319268697134691793951151974738678327972215914406877380258642849558205107549099823288138547056886332611451565449635165737081792530604684614688514076449190898486450202561776625375580306122485994639469325047899235114404795389026871446211003462918796675247379304801223684991670126385432527461242739119956949332595352793565244201866781971865629593055949068893992221134130449778268367164690904542165959111650301516421297249851338331206907000783246369283502105202799613566207630857798181637736062091952242892644177212115777258729950118998359518162467038763147961248668585229840368869415617417045783127281660136414173782953485158065674998704734024150901471646338721054635320566551632337864077607009569038411379305981002802229452228482851719058024037278308215706313172465255842150056429536939119852447111080005263615642883448728545593733110832076401953167332192000350195601831867946064550888198525323420131378317668886787040993699145564213432728289156142996984322348795220936319612580971276256857048975997165523405161098887874877416323382403495426038782768731463617229748651807814972831553099480874824794785914737153123447573553333801248956686853856647214966597501992871987090724002569327693596677165969787830503710441120440381284610083253167502392516772780373008248461531049292099001484161284288478293508096856220532172398277299428584826462053848943112384663042797554319663848568435897138977170804565582881344123535808609578894491150559105673249963511454874097574002081636439946590671698530309565658950453436064532314380553221149498041214778506371824236765333359472634334406593702890898111856749517055360548017575535240065732827151959334498499278766525457958305526995905927329391786716202162022425565979483819747471957370530243898224756349333712324662835389824925659782611175740456252689985002455359165754496688528552988632391862009893541940007920032268246559110757879005212720316520429639282028072890998378405034043522516222117042974180103257769332759852867616435080633373892582427965090489293900675683400464411689485312349469375985604627773554629510693968455149964989329669729723396520174557007822494795815990653540955554022950246800435726326579461079846214618588485314791231066186285232003120518682101309676749621111445381852413214848540511757704652929840641392771562793460157687760686262381509113546267538879927866040664344620743833576736016994128866420361045965573349722480219967669244747926384954017843593651021640604417676552850121114648765923286658967511469312114391619481693792010994901247749446849954681609598416462495249553017834595885631704863530249938863757662005594816339157501522841985241731854878542297701358689619047541352235513072629972087283950276812125050967417964903837783388992205345048397773608064524078766233206721633989687678217312065507238335306044944857948317331614249881412723755965952580531432770850689613271473205950819462641349416483668624285010074916278769487364027554552018203518729256646300090667735136618278401810362461410096075855597760344053043750078833160589318399435505094484260243511763135046386541892916177935652447925084476568332827032285540616985668263559987067274327332097655465911914958354053142193617322128741788425089897201263725350538251658667943231709706165533844515637127183176632105594509374287832128880617382320768007470629851070465440580064554972712947156626054250552314084691045164355377165448533758695618664373482237146807700985354413224237246193711305158124721469759542176091705213966819694690988397238077781247358935142512994644569478953117469458442662221594860288396523859991284230768706623032815374594614808316747594518950842021715042069559780330572848749287733086811523338008491726533674273605667058859942258149298223298317242088830937356088987257997411712505664447168652626074391577297307369536416581449971912862402426009105156195188788873658845184561661049145964322450289973209460925160469686470899755985144994240614752837568015528369463913349414545701273344615713504665751101136956526832188175363108342017361592426343723260666420743676617254325707874658884579087645405231937033486333208166145091824446725939858015829835811813516477270516528506861991152952412218353038940683539013137171915010243799717127622983352035887625916210713099646674605794199552570691604493276225317659423131320833416750272850239057768261497087018747450374951218567895843186045860048615625695864837577766203026464878166879775488040947698238734939085904538524041085185916064482933740676454328878889822959464381897913831092297664057080903168686046185845301209984810417162863191316539970573880526026907644929468872937923479713056522754720524913616898742319056121178202445017326006719823416291573662309035130899844028273758770220915740338844209229422947743715803479832529114060993868466865461097721952001138923588138643557890623224452379645619780003934266821264960701829094359309274478002443578157567007180256600299581451958569845130977888355748887793405322665902556133962298637861512129883715052638874639249378522450288905542605537087267302760575053198551139614662406029979141481464433079936152395441287750961725790666287004119267790956128528844222846931067220738092293727759928529864287168538185618429305929007098090723797770119490850928716586554224658146186843198560267973572130982529790053010784062675329344553147685094958115993162669485278075579340253515847317181423401148820191809631510249482225686434700789091560892549700830036456932225356850005668215026122815601481271373940143752112694818789545772750026976793255598701324702945913199397019836419787986411331169205860369673289489361753092026773119003073134935794302130208706098244969802751264612862802417700914140839819769757932590238630454925633037168091623396286369194300581348717274927141999449280491887044274939523242872945127936000597834054001726550089410264044677334172752534744461945356678619198063833285625129078105049219826892785282774178546504495714210712554811420650501640384306940084641536175646916244475348167320170091393894140395444253958833230002939030641884779746250415588295545229276645529764788469260275526474027946813867555623938699593054870213617483134609490264352401860479422078235186226734441692084722240018297137299555919292704893161183043407855454470945486315288694493052925340553547271904260005464208883601341997106501715201976884314727005353641495281809605440600071208289319331155932780310820059088039800605222276989051375295688130829656220811998209042051610490913163719233026163884836926278606361091151394347876460448144563923828038912203913011998448038178586049203457804827260247523470675951302878418426301981905634861725995906417623700427928389907166253694494882254051122567055022826236290838879136727149860304681720627053496177129979581173258142321966687479463890205513336831427939916717549674284653978492808619790456612813231735358916269972454124156862594165042460059732531176091294837650827943322772063888934088055898501294446698000691801024767922951142863234426217611675452360821721815221377962462252030818063732668529455417268624859948146367471953063827057592168659498415359522177102474457079271921707363283151842490560215715222240642152306871912070180138354185672727376435039638773185221156407612658809238853973705867933712480709955245852302898562825177259697496173595252650648980503461980189223346624524167951158716613143205388009634098492243557590610788672988102662845208510637770789228229644059493860399342928226441896425475670716167054331704173510251753263604844689054521619566846532474723852923054107231243561536822362701965002538403492404108520104820477489035517604807050174736857481806970546815699942575852059536217905598156212431282807108128576761298306247005625327359380807323454474538594140206158868001348635126371123231748258370215927541373068117111364015012594717548356464367540906831385708061203560689383603128762518415632980149961552215879642577415740469693799747957405293927523157060758196797310783896964953936830668857442106568034145978197750182844454750169436126723591853797313009633398498653704366649929775470997346390894262817108724333968277767708026875099654515181736697435797811342218677103741932494973129873536430156233518593880614418149641539181635689722236946182982188587903877643562944509577075877578372343653677843542459120472605358219037094898779036779864633614351013346938522036551359519978837207660236003750620187375912369289813871696146902577891256122735868830055421075764783070022645358742991463311336323065031775685803048750215280807220888271011175173252053747521771292424082164209416192782263780179383286691515199358458249414178186614719873334053461766915627323072966254556158698299898724331097607912636541381865864012313573438545752284932610629877915899632524732129752879765297418990776458282909629826401361916622719679242396462623978019191845278289306913205646686670960046627671859018458577645678104971709068372917545842373044518521900505661792888671623326359107435529034162692298212781421988628386210896183667005397234046151902210560311278230793990650809829577243768887644219901689243809272854757530839786682598047027200379136738334054938692253135498879172839415292738422337459916659508665491345240515237000461533339749846864489425335516428652467182874212497104840986796553546563605227971093504862350041566937478574183631064701814976638126553881589487061318199118438654070818437373699708470223738360991566040822113736989824454803069625825057054922749845116622443682571960858019745473942548588295954361421791477283167242163816574739321991432072249568467288237031113269139534397245861354425000693931544846096081614522747989851126135060399623115165659048040444348334151910343759231889501731258725940100486104690891663169836086455605912202445456429441184958040110856652955202256700530581972641061377651185464628483376226432334653090590274706436863955663679835199480310486019882150812550786676676173358846529328460449111734637217898580820046746123150717848978477515805958288807642095335411643277338842242863347103331733572994738451433954591820079128276370085536819597064283325528246867563408395509244159324276213429735825316449623769844100490385456671996012047810802122017461652796400371225583144041045276150587556697044834153555427321863952800270448080621912318518837020357300190200127288233305390078498532255827903438171117477698356144282516517749420194110823282521401194539180049902415486825033987001838898479407526748084353130006791205926413118109311200950376998381074049413687041121176373502223351078858715502974816728806577616949806479827263774614561394848251536530587975980446848764142646137036300261261665936397795508750418224779828701784641255899071358655672955907151067278614426046538222821225614550449835818565894587369007405178315215368125975495175261362547442752778541473724347775193317091187348495655551482718681301926428118578859408778040176300311456835509749810249365442428206050674665808274479085744456310435591779127348999287353492229812294635781017746348323704810397879876368053499657128102554517752550331689587174635302971915104025559790570924494280752485387055124187656834632645504671429359871197632517887624707696745138964992540347828096532342673794165118835855460176834142526001288395448285107883600085205039434087723574698279867294480210068482635084119791948644197563972680276612792995540023401932417083709047173304894146883726625117969833435485106598706503926145144086732162766963949945511572763475602338221949062169199274068832692601766145685042380984447866057311704650667056043695153183281168295339220276808492406558599396642578468238236336798607221191291321457150279851862576891208635352352099728284065749162863972282010245582585641414098326705728777114010335236133088608079228535043612252279347829831440237326000340122641263682470812371479713413027339327776649822787350800672352975910307693150695212104039287706123368737780541471532001835044723680062562766704676097502077606013307844016106002540045172166296289155503157918485747407777531691459209393658240135147337285530959874083715553081733857822603183527101052616987822462495567070064606198949411624690666531615932129256973254765142326448651791565934161538242695514997507202977226578208819042556524341292793806509697637772967879761828676371213188238613455518528911247598156282758473218969393346405991665903983584851759387065004003288118801222416191256490540121255874832359902550378393879061227006004972711271840000912726550602369475057086586114633571283289710484938656867006498220443300580872742330572038295216300860518713985845273290193839261663291407684259218196006224799168926780691825662458225393914437667636112597481679545613062163794045039799777442272428078359258971078152482026509028382674714864231094670519080433542574896334923208693629012299253799260917876741176779934641495215035662069273116403274586744620567984516672501458506173979041443867021079878663460955116127302779645957076957861046026827759392648962271187520540692744721684743702382588391829209672326293248161324458043169915086901112946145511693434789289138532943265280376196903313317523678869948949269897632315444005793093677803591732517987258532926632859649778107309474013243117600921766254758389649669155092975844405501620407882680404330847892992858010740952732033354894054876863026609144732816611883188503071761918690348110685618149193343516556737083634881978660294135563581114519874647325297995899883429148558076048022471238307935333916073362631636706522815654952467810826627455518185381531658782724201656219877696189558644495326107358843678593662972137874891755553211397156277044202075586825156344221131320416734726912174107034641002785394922723932382771332068549278339825918169221782098442704009611811518644419859584775109802108061410974687796907514576806504788078673344190758935052402491101847392113524010264417863527394160264492186147088015317413158341059010313012397165159717764577942025165706759213843836789960474332881488241107904254434939311769672781725819793894179011111366220664683218547700655406481122329182733981138524500595382923937373810143848646248837724601399744403027387275991752303398530290660380357158354385532029867442633660045094883528224226092852341073536611887003537818688001754947118374133622254571800062300861877687011477179274302682727968837418458816772489458724677304007432971015273270089537758149275598616649738557836085220854849213757884635586730167192884344156573548638610717916601860162573900774754067090602537702456227064909359409500325679509995614985034019286121881312827437492978726604523949276606218460211164143694528913124579445650149801844961612267908748427044214398177888936877195991272307629798614729490798277482970230692106165994944998884713783386886166563718181947876635840639573391815077268298022318576040349443304137544455508645576214418787525170380517566638246853090601602115269097950393816693726632118220598565610347572400641262214718198672718233686356087812200747403468004860043381194785975240363713996265501570578082900336589051082976556108817991091236915332206213813111217024775798536701341990672931033643700667581334859296353775494890253877509349521590389491734377620797893777880962286581117076677382131002123857443049788876583463807895932050606512483727809034569398885788535777174871601820287973411270097094485987867744732306392853894254253989384787734626927473208289185308991208913026135885466161562040658856192188761912679228777222464860621557139312018507324745055036947140162108835340082480779304713381289686165006457734226428058092303306651825680846529299070860722915771033928551426816814556929453987960439581003069957308702829524213799442430424939407215195882499675540228827078314313711553267303410155241666824428885547918892810891661077233328789688759576272472304409175543807278022116229840990142478774629825716025720226941523067182174495604251063218657833858979767437410613460635903226821410597879095019348446589320127671749598481121690150247446907171353097062540618642716143250753316352314496157402615388332517771995717043680275403110420327109202410829213656183179982717804896951967465551314640228131658658850379701981231715308746353845473692729963732713256439954683190597873430926329334574833342288286437424082097240913433407166956752122405297398645665952614586244238403524829966839455125355844354676251901695643460098462683270343596718545647705095618233788981854713397472798233912148693296250286449452467337160618716468486664557379612701627874718668687908797341528792781407806601893149946323474088695148587290265667016107683593931843914720162704701989308809936636920321755461180107325578903862499691509770244576161922085688690923575103798918373837674972051242982318816758389701333316209049583592396802650958577080574510474948108976223020134200540985718642579512447117719004313869797546289964468826764717189404086114099016644759587477061346103273595026528546377944474348378956764681752607181560672957451887204753940312621278383654650266146992479156737667973378029730171259597639009883208615464996411950153523927957677712872961885948342510074965968169217773989381569311476520111418296159190495112373492058110362436417396160697052491353874156443844413806170003424502897735724100923456604455096903090175906901173441667878449576202644571246335391187756498800474629603144579222987894660086649537096225625693141008334887663628796886890870600345966389822167447505281898506814391311638600150804500841605374369046924681852856035539520462480916977606374757313335348137433870735543065291489462138420711455905245735258818747682137981342596548045995869685203107884272574442968962420114621063045175589045023780584848822105870017911091749238234613683535371650912663260308908708791291592058863014253422231423058866447677585465466416939925921093350874729104062340992621577202265849394908059489022398527826509193264514316962901037147883374293647935994738036185249105014693639338217055188250699489116192584502699986710458811435758496626920038022497382019203911499351972177332008304116666807933982677540263760829295577043640424601870075623006229060930487134102969741411827183024387596224669718610300418247046314307128028949888627614115733880732084065678173496929582187666366614924128448252516751992881320375221979751053088930908829694334465514776890835774863359680200019271417986972483659256573160640812344786736871318844915214132280384632300415100403510866497261584364933474601201335840696115852620847566243383256621181000371170259470068905118640026071037677476249448819630927420225731247463163785723601025306925012382793315378817437713389970063121261865928995622203401422405764582487732522200587517058683314176319770850768892873082050033486834153278419165790987545363027924268428165431156095611847301777094083333513436805333795764703164419091712810865039506334010314336968247560162494544144471834055146065939618454125747304177143174692830727517577043172493252997760563475997367466929915839393101591207167457291747481146820426318098936146533474339160467611908426092097814601385188220579936597632282684354606881126814131219921460862945921769950248618367956644528732264122300333240853085408903158076623355161285613019436721040773239616705556990624564991218911647367291814174589763072042690018721649068304349018386246207220005710218432941673201884590264852555624776609884126262739476617721192816080970313248313392707683282944062243540935011108520724594509741597089937575018620646472138300959801367738421601484512297168999344221841935988777926528676824256136474697717409911963379003570616762117925600337436149703525454895677509683383607959915635417775324471935235773648381227006685447398568774537167771558861883852733812954042352011180610267681346877291882828207364674617226872297299249704827728679823181522913236881058887109997726926425520389487996253356095955446419187101734378417499170963182807841885823283751856568660294365830805223706106921249107606535411097630859425462262993769275278930238451032022823840930905240558815649206124768421347431166032123530155596065251047902818851110183802865465885388338517064788674399275585525751897988158968092670554552110876351754618684209078562453421834466051786985570708176426499100773942334963862395601378158302991887373454184211741724229634172758928064851258713743605057568650222705617894137622291198919016550619155265449206589846242079583769737201076302568210586979192061499339368797421025393956783714459647244715426967027453915979331163939572959325598295888032915588738747858601083289734672188444662592173573743917195283037769738971877846928591509681126162750315638851031366375972132783908897636201217527146125430103915827480204360209936447703791682140374366857686475773312428600478077373136082101371638616248478715852117759819693216893605902109332108616827758570883610688377148999446203465895126571885148274204464655993847716725721077257960354184484190076907446910444053096776641717762485547409022816936711985851283523770980040126618402324361959996641145008950803685521219781759955921408243096101114871856172275906372988594361467361378836050900429072070490773799617577098555562345628964445660907280420063636076279732844118585542639821395679864185948716095424766397031162931700781833173295958659645129086279548506279403729752436878863174082658681099088185328847967526871750033924906702376577405095924262597278035929779688841956114948944815585487917387079272624315145268700463384870349847463237742813602056554533991683523306676140736932840432661392572573966805400721553152815480701880369342369220895536225843297259948745461025114621341577981192189003519721172881887099130387920470305358502969759190458538763138437303716411602627393338382005943389317914562500563604576108634878361294885295729067731302778311409932588823584351776060900954226408813036749872451809600697322129529172981703161148606309654476033473528366801191817046617681852321337305280142522088327636120887041957063260579355658002674917835238605797799152533202339115366688404345501271301708599867405354121994533237219739894130309538548191785841090640927397561656102119853028638635037391490121515483737230343985063337332018792101593046827422329553662428360927175149106300443013676979380674277117461453602990094847090573410255403040952412131676283217797498249720471212917466097000771441261240084776341889460334199781837341031485409639088371342295919605650462661256816380991137124079849427457835891342266677640508635071973522257127218726897519963967028253952364542931293218679814427397917465813771145516206957785538064190172741349485408901900779912563526755798691749521476486352015023200621142624416294839685923038384020221236903351099773396437143456256393746469258876002303381746609580288232219758380167471611374103163113473041362918932115854968897416297772450541337038846237344833962724741816338305108407513232856145498913491142938745656468625331646653053595028442020591248488336396302940632840658769072881403837977795364556570010602675076594152248028950418936096410138749497056282102182963483418257088573109411063909040354420168986254627337009310691580242118256792376126303215368658067206046635058597224039952481035478837064161925909799916746000516811892881335647637436178573865240889641986550421696481840989474099465536433598460434746998518855045987582422884676425831242233604115845441201252725763957222771506791467919634983099876988420880160158125580026857378948600073949504093805426836974269731404318192884087980046722186495590989380445789625727041630281364281665105068682817827084868208227801804324989301852533290390564040683470407891158646860332381183910718623705080533908915931926834813051866203045244694165234761392341602698555224310115412188680582158741429970491400606506983911301437927442570329410793438442825748793283259382312625449377313650810747468943960430331872450940747578573774980347223827188655886139887842428087957132038463099254316022775166434435208668755699659457563933154823808795463406504102588431500837673772270575754130307051506495499913862848677713755332562061595530117566373960202940013138691631983943665890984009448168142216137067063348759501712311515671356268574983142892359946550404044466915438673367588290976243498095270561589898984696590460248927556542266629976985869904047937199485729296639559279305813302853393027848076951026966442602850388452044178311549538646246196486117280785379991725713295711017865515539272410274472552274875781436939566892720942838962358629255394964833849826498989684251998852515386798044928676790073622504938052909116335799372102041075130252820760087994978927456713311249431205497873504926523533780371191286691141760235943654319781561887736733279510514918536056311796603668012626302756826108081449574078977387059830652139913945085016295181173492906886069649827922089248027643942594531707255731186487969354785364253088462783402874412434712921576448797674510707981583662633213268055426591321879712477192485271133148614150899480032500110912554094961554581206644297488069838903319072667534038914981373128675077512978785795964505718838222506464531593290526817512447593381266623817649441028023843552531885296117287216955752289207161343738385955391570187592214144894951889974384445294801357568856094417387370458054080370784881785219958965870380141322890271962857475561559369761573136327946469192413879965254747687393211563464861245798427927530243305059182871869045616071443280399434913316501894264196747062192452800667734376872393342320447623868395501210964939885223182242532363916359448930192513163377902590474818532577949662783841710229172745866503235951656781466189370110871452850996011464541389489965061960082251667053601082674316679605838036746837466738688647352566181816726975587750130882477648302687823776087823137983725208159562904570687488058870232521596430856875424609347125846126307750198225070598270661588633476920916582669090293441028691540108211310713251192410272510962352672434722248965571862477812508471861893185067086197079483085114587072441872733935766201170419194488115616006311474941644909108265866817842952237806249539895284299233008255754336783027072069382660580208104793748988358946884792943157827090284364927017389550517352110460713082504690527438472068600430477986916658040531436527220815286545085670032207809687075549196223287525906723443194345210473607830917011792514882532570904761547043484885530911386530485197444090937457046865224157952947669576718370780226329744422750426237997538173099606330558739801691974101387454649993799365680256919553092815369835750393982091487977815016836610490593166819639531422121173360888095128960214268743893359056176563086837723984256538274490704504936864384595723813660730239752263866160278596646468390022068470472636495761623389601944374129997370158102380299989121553150619816759845505556358508498006301291043027319439124895113319234738907663953690492415382394015986563098104729493290509504254594898068584434138017563131606857510124914507773428939894851023224856787836300854731527316128729942818330454165040779320972987039308054343392006778095674209072347417058708742198947204209902114458892836829477238476413028846368371200142809344509902306761490705762837298043670701099368232580266783835410258749390138969956695478364226652895904073686603644655442855932223967755148562870091302424353018947269780228453360583281952745601660759872042026048201720681972751073854569407872286278156252950768666465649644336555732941469924888700639578150146728770915509319628725636851552534121060171726982068726816566463566291233224964925532748570086999211259113320381407110319749719900742846827349324245049587522221485360570678159733930348302980883187420557155938691349206054862055408042188260836273511200464538500575609198438197320822233201298183806423288807553100355033949665229884556826436075659602401925785772645878936538665460439754074807450915347813318195876306028384003073188407770687648328810430154164255062469541628697440127319402608628344062127333207360136639691731832798475295468996189017200782141664414324862272444557600298841603775657001870225669203791551546743591689414282364450434823215628744438902797934825587601973558956255670201362137918203661037187063867434135386750591619748607724927740860583989995281706201725022254429209500051902857320302758432358614932741315068341350461732909895238897832820625915814763614463411605740532697748542579973964866464490482414893949478643235250758307155103095546913157839907825928930206726851052187034375351706867253737621477996205625228142357730028412396305854478745295778960573383263981372634647923613417595473160188234196956901692661520189422535756937655968524944772050799003858507741758926801182640704805799429540920676547543512029658421126879856157882571149418793155130215877596763428649498640664492596388478398722765990063799675523162091271352033486202619337797319497078997998572979175077383282152644806085450803928179666527015274558006204882981834631339630979918690233057470250224116880852794199754111734273375399634961918609537542060547491721160902221221457065554365009184428108296677484036916525611992651038976717220161253454655341821193018701686845386205139690573504307275480670464705509517617718261958748507784519720745326100957045028188735997447787347707237623900312022367518862772223792563039993344552752933024141561135333211417172458679105696509478589978138566213992192058147615938785496732613798438589014950786138018934961800254349117612572432899995862739647918354618187428322315375390470022058757028573119260624787796827185638344527566159663273846132517096458568398408738703364989484583854950526168587449904370468302861267447060094555364294226797039494305912024331750566756723131564658063878825319271475812664681352277426445326348834783353243708469503426130134955176403738099355738411194713487590511032280618287716871956829065619182771532714841710491963327180794882706834992678564139688581278678913841142191243490576816059783109256756211110381719103738396230146110819658812143604396015984785033503293010104731046929928519769312660723935810561354370821683853540533425824226557372483689757084087739698668182308395203654835861440495397724244079941375320797116026933151525097125908017112313082910524486876566184416177272021957135882217450093503290478591197721769741698511027587580410463932706141794584429839189798155978410590955785680159560676256154686220870236238755608935407398891257119263314019025476364287036108182410574930112492461699714771775581520777921369415263914373420327011644150721268548272461157697547459698495477925802293031287567295058416064964275673093606626000080517874134160417372715985000551058371434626303657118281594466355833529080610980141189128056295889283580398400510853578290011635652687069793158223473287354609702126057714356671198235664993179905060669859871731764788712806792675165108447074049602848107635781984636924811045664708731279573559002686116577723926872711080451200974425507950234685668321586841187284905105938798565148471884307831561103615847919481497711145888517139702209778569428260642909343800802009642697692672670860978255536874881607617196784029381659888565066918084250296443383083387119919752093733540809088553443172007114506847432226592228553427237818755149971372539068506980570605279410955319137986848077938121579146466146432597282253455050153898768300750585070848475680300252816618621612103319563977522975581637144855304610659762082809904897756414003698053612744447536601697009724710098864066998660266731714459895676452424580649632057008389010677691373064260359207514297329519890360250296721689086457508380178786524685859721269398942891606768238620336196908712212789801827129037761729034827069891696740129864218597919547588874429851244984526830499169046281238622382981767518455526189147848862698445386941470675486662880397503812317381451150045155735714467762946393521402567237631329679290400141598679164577310406708514541551899109605610475126314285693559726025089664417575723927719914107813080086779620480135006750189978007981100557014312742171534133431241591526971127011416427365191491813169911095290321630619668538048412289336213425840179559564793649876444722005956078498541416960747173469357689436548306049148409333007887495958832835885309621127651254058246752198806442213196543822907170812123737039228386809406572419578802952473337436962156935385819886815188177745834771639988317122257196729221483798091840301653754537669725358490282985468661962656962898555023780239407686128912582422135233109718127049636506343052260655013375211602824994550238363266518023645417797898068941704072834310506212515734591251325521609412727884262953067708895093988807769571025843548763618898244811670756396878438359344556024846348951199274968524110586925156131758047839459680587992318034024677491528454882417461096041251665276086372811933848389693245081072914841326437782539979564821246949138949863645618838877728760619492983408554116097879750738284897524742087596456265130988326325253536793124556668206437533069871496527253943431061916449660480124742597553378287897894650639311874574937346359502700883463738045417321705996378469852712313165103401963602272263605791098485861740790889134718223495502989381233766556766881948413431800818826582934724536631439437494814144231876666769092600352085536882462854572685199217899294245284122231315497609563942971131611591238226482994409574552391913839002716154600556915923632004900034263082054060825345093430906793282230066483869003053550797893184133996564485701589061238365852429809830983560933250860346669024707555732318400941797358179777414304712844152226845659489325696071365220310189705650567157649796654616531435092095048883719781361066152336528540348051314368895620096892828243962344454563837830968544872855508664565752999189331440236786025784313897005181997301840148089775255083366915075169855237702010795702844085720325586806582663246885469572163716801233683639393399432479101213182860821838693526518830201191646432693185264525781324896266702934506936484780172103890842732929722351550867483714076937103248898094670546428112775316753775910825337018744292312349916582294153744521083438421936076441173139220495658962568675989227648264733565861858033292305644024490223194960392601255091754390250003262698726034705061128392068451395889888965126333034491772433674010679211385534153257640567534820881655343950468792033587619570571880986123709659054076305986114201116879109724178777354083762079272460196959976772329516416814218372723525426330558657309773400541052062053263038173642149776280167428233311084926515367824688403296865773149848943373256527491975203749523729898965414651986278418030119182624886075417723573470913286607709035512759995092803424044120664573692641090597842423980149429078524423216571192426585398253319793656184993463972619802000850292655542224269547588804981618536983584067819645221743103019411711903358814799022029928619503771553253271456836205289476914825399861002093152860437856519566379415815015162739746723210084232877223115158389196944161030215398542959711056101007799998854098329511897601972848149181913158398835672148542403432020126821663298844676645308479880029336648291268133231299733328206796667718860120233426816062354951619672030729488023628423133394595875697680594442516250128887293618449199156277606558183576254181061715941330613790915979359559005874127249212344149858485659114255618517224440652612448857393171196348271264594628014262797333042355194591739074138908050003787643929967508600907544027749326016863217461527247902904248066901180811568346543420568463716263256616626105858592652513581179943757657769065087836811266009090173118051725774003578066647979959315711288942461942135079193417648647078031203347751878556572977077329503012128066922946382941126897664493951037867007626684127604206034098869899554712214672213083973862917672366193610776545018579710275398028178488026009014193081483675573481843376863570356627951132648038138176290814321926605844291848785037798846283999989301851863980420772377297159125647030060244709076888886357916201870842272538752255727304782875876841302752263036646979947245047637174980561848518906658950004485838075131053946938761114760079710315664271670460237832809861729772463719048109371013458573272873579545072054764188004741145897137361678054227221391109614238435279465922814176042284854879455793039918821027798172762947020116658900017707952235771832704043572528166023451373509553961240016782132185882068248806505242189307873516159538627636235381240499218886248386680652707446534311736554418241345428171418200644023544331019964212556766341501960024464955262303621161290698469109963214854963153258909208019720121860061651524894876819993306052461295411370563322781440723913320925276443185590862633829752171183577164992092303379779351997740287615108938221904461866587669034273250375866080530488317079652888533976963526807926858230066436073855592440987735737522724424137004936155520342373175081265513754073550521727530716235519942378731919395318018324621911428144826248445656363976306690578242045760504701564579360342054334862446627086022083402972888877218482680339160587462905759637993818006617778566353321357894589599360852580244525541278844992001046736135519838944297022336161483605270657185979260774798777061221174546836170393004024107136336537713055941066525389899724098055018318581928042665400877826093600486439234272050881722779436607995506323996424242194689131658740214215585785959217451654724900375347247765897665375856752234954712720445052303779404591627411252401319721690933913284397864784480671147836796408376912688202906248384376525784968304301267572130182317484864868264448171239778231940130473419357495687698826978507919391333923810490464721819485865956098719644273859731249136726539113494037652751451947639601107147268150192217891560921570557823603430169393375062271778746668455112263024012259732262450953776883722696221899963587391666722592713839333313452010415151303929618385451202220192247675201985552301455488893300188568273445999734540610326895397845958175681031014349337397003302515274178349850204510736534910280976018771557880092993346679371419058621222268544465903636482587012831470741362830051189641548420618233925300746146172554376704250279947090124870163459314927132097210540213218785268516163971364358685336132249545070366206317845484873938510220035661046057286501547619779086195843427198006758890358836774037181458571066155383920810227823209891375259790577362214198595498409281298245838034814042649090618393611334769386742263111951413454314763502438919078771671943391077508333462746477237634083583140925343007114076580424790498340816963090907668302667799082886611482110016149059096584695741029833945226168045791718152779524662976076453190127981821370617837778459582983196733209119038020621992818287008973529415771613869233511837966536457296924133370068547266058434770960217635179660371609296433140106961037403997156909766599107179345477968447935132977817758906049163165761650450799142831700751222009113449126811045199491786609613341691843610112951505103677946717937108667353889252286545968762913502139008697449474723019689130646247240462727142489427719686429274048267317731649299760362037589839574089744755679005950049113733842167466084050193525262287303732281947550386605395985606204677104209741257524578463990007732616788245020685701437313596088668767938572353597307984770594292532128798406902267756711500135973076995455433805362753424443275554225800212566469314972243699094047383477964225769522135051578533535902699919354992701466418092648486105058307503462040142964923456553462794385319596751188808446993308189125326596080038561090513617785478845886509371216144945631480374147632820423997338039336692276684734211044793466743395286579971546899060961454327720504887711988213184908817582371374063939515646556432685556871472821931206101832471880251447474140301840218585664666164681193447543944459892214494609254336133540728610219520390765867226360764925125364921305341879243329381977380693064444258133887781135787128120333447658955423184395894339280985447264588209213984358424549242123670635704431805600623639248522201378653522553042030107055248210609836929193470755158766986417396362830276901535404012895539965979360135133190307128766422961343955722291189618037264134750008925583924996239985424471613119796328281986762215275368122570814672561184314365061237947683077614944594135844492288798462822577099912152037775193247033318802712922015136010401411738631580980161951159247018711378174764648147947009930723045375001033580913524973359127429060855862191463125616851933982143350152921367091276779190255815893209165232371272600387529692609632858942117671936527424607900444731448614626272404393863536327456051127207351985606845355538835643864763491660122213628528127550478013563771024376704861314272422648401765944575602562650052222095701647217645878459938302359579643634480058066944081640368591875994399889167337897022579833599528794961905471770286312444506881873609466705741679808976831872053068345155177182426389707260117480992511045158171749862398851115239316793717296342464001560065867943799913397816263196134689339707740486890483619880007743954965889081553139809082116000154903836609013312727852064672967550118096806602594351367704850958870435622096147142282826207297048064582754513597857546326526809805203867930679184972117973753620034345005835814225790879631769955191479629294697673935215786675080683825366311525695016829554690946168912245610019376332176176259676768009879021787431020513713120418139414979538426047733179666517981333060240849104093171192028701871045931413184827241076210214454571916976610277583059485419905822866459504171587136198385046370719389399379274137504139091949104231044040615369409281090476694933780693688443181942267873247786417836150099412497172680422985153114369559232988114518597914594981283463611127149090552948450135508691830868785605270935880984471185502105025329253073616303088023868912667079750897265500692019703884057078565088615047586868936233394794000066797669402641405129375703067856542353389819184623759894537305970913425791629925019261704272759034999079460970280724923857950088364576650606979547227720968122362624942018847300514325691635647330668107401023605293764938627499894280368355744927615634526898157251797850528567905002278754375889770140115593355264308839970028186548349112333858100295483701885332832060824921760025162217720280423327780601126743469236271363427194175913023525284488430168795855376924363625277397104632315863599272786278061298877936900050837829811977610107317257380472104475762489288732396651720338129433307863266182074458935475001166189440013128885275541512895226079501932829359506974558417740696474355827012933543573323555077790137030322500939547115335012346753167284127923091091286672738305849466885493075329629970818781902465169298801472636174187435198768578955448724378717331066893138702048098174272163215977444876791876397048912568495291707446711314364710481374393931071250923715521912151764903685238202646976652194181092169112280383434337194797922661605550328191794295157123205119596773378703068594610774254456404386736069466027730089857385650955853394974343364905133403781986520475973782225114891210209406033932648904628888114747756918889565492252853459639016982754073432179329087980729070936039017337641273908558473827665377114430715904215179559102053809226657584445846356549022845217350709515005317574770827173465530361717760647611677263642767984146298519618881144678806190419210065548302589106723806218025922339840274753651445510191059640101715728544054430718227301488456455864028974582466776150017283360921928975988190252229843460266963703398281674786236413267052003587933341891543005384201112741912427427577137983696705536816361070775731797226292535773325943189558501196245784037764467713178380142941334540277303540527316418330601521077865732564524074966387203953451282085246160594742617178206175439925443743210317227359805486018513593293111807142233937605693232028914371692635611610949274742868642239490670102619283679023163432609004294702131136336786834592723139146267599494516348662032042190836669312803511594331612504031642373999222274950516087074927681866059075754995071271602486242147043625962983310623647765264746056322339043397611330803122140350043004147400993125669822172917378245714482373651898816300328837049111033004057106567959871658506246024744412076705118547882907564178332602718419044216361163391462015166108599100823810312038650738869975664523063062115795307815808769294006065740747228132203715155928397116849731440410535848642822689128764760423325668004195718559773892988969531148136417269977582963107967382698803931300700098210559083367535229542247116923313245993810802302883723468628647951678506848632143868317740549657982421490002574014019563507062671235410972871424266880044989980024249488864021354820925154020800145318638208996767016402440541393386618913176355572462761209936769141544539141229995747051946965513253820691385792586603932795050246546872721809818853727896820886209973683920228859688325656447506673168751286995212148780165831620795100076106640221964193226012630017225981768004965118754279816676512907640490682666087615446849842811420400751316553696940961670689156767333319285211252241709681007936044922189183586099852062946527623562368774693122455522636641938366199752772245329747046497071944432297431540883948043186971437803713341119425254524935110684294032325723089395632106733190341793231572936387835625595883306553793025887587858305028156996509720839222250270895505369567007493688806738744137700200781644395970633619332306620413347485458585249173264653113192999393514178156726019804043837757837403473115060688444117084353718217095095057954644727063938607671790802687882462797895220391830127910441354657677306495201874525787885144701722139415951827568417363674183718251620159318358641221410273169619513665734463935250650300080285084129361382649925719709840642062260635129574992918512431322466792987150738596592023977188368060182169995175993307374586317964628887290272734676374266901189221951619833644621315758316798811730195482533257112012558078691604015581714730433407558328714851437188295439128622589128126633312453120340379291291921502372598413315083317993234232511465308368070613253287956401564377958562379093606153698593897042061565358204568625325811562220015500909195331164929216426957063820710729220178847516696715664332201666750018606497683067814302167389678921209636221987159284551366349231473509330914158742878210062414358341376605577282108534536980419542279629736615010691227223001830032320468512436641026834214783493910076972753137872209471011146484462849972583296520036633806630739349185031541130064377371466529612975657722578488275837693638417266119635623376173923722527097938694844626829747237464288033211247362766481141957527098626142189686625178460429511934602879688408218141023090724893563182319103455332694527808696524722560569740336303840342784261602004046593379261930084557126158471850163265330174156569570131242324766280279895897228799590155155304119286376031877254526116666589593856187521291471126569317152170918334777080834339743408181652867678484214038120229988518759087110927823757373804382576720938468523372161860788933572769256396994822945312107359254387547627088292749292211458455610067129954858695359744530331873076724815888999024497556230080531177728104619207202123635072681677274919463311693811257283963042491723311760577004592183429542836888866519909322771447592863121204061425751622198070226784998215244711507578908162747351096748552410852443617235416280102782945817454932059737720753998184589647951721134970050230876653202145160988822969330106532542673050660646408460003254542991494363976721501451137830513125574426391657716526538159377208285887896522168268433010044948116666098000009922741511013717285453459157036786177387166867707514714047184015304140301259146151575975371459749659344546075889385671509695787937460330662449248765670508908617610526681762983419950337961923725720427234899496391440083692186348072049373878403245838434568545866133118866413923923698740826627562594988565925279447049371296769685647067326915501537577360905554069335614283056341139731138414978507223597818086503164261397647761658460876380024975330212758417885694751412485679532158502247315755810184892413313803106543581144872072159905597628612667855383732249291347961160525580822939614474679467547640690542600404172882477814350553123843334705537127834086327157627693659746384276335866685338053624750598664496492934300100231152626754912445718105008040426432127957162973743967509487609720221032307956486774258023513266174344755870357169608287798534798025001322299545637575625632069155702485525445360928330663479086631446047748261430831684971969478694539462507761942793867734260339820603649873968510146365451200733627650456390567952764719675762901056483314052307516054488133672118440022630952218970045576828228469368712880609300743585499171130492364472505747903394077079451576250830709828936150412133392545378411723711246509725508220942037921228677819462496917567485074307374879202161583892311106691825272877600371869191409601849367702213200862025781867509340134855108462460491085881149410236051023334214462722684823092820946719340727536777403147949392186321689420617647421927606852528270431114196450109650321900123526736834458004727439705139650478766288817121910247849391913539995396390846676766493212808086562715900907508695055133474494831625279483845766634968185536770128490922337202530679190794375048143990156304333469055548311044286257366427141163625589128387014735426977792864439701191979143194731345727075133555958464860941380036510587992068010919167775055474525917341113573791951825467825626157953881006666744635530511552903435367081310763629183718000736193607279630507802539390032312744835619625705917403667089761917415928581742395508646901551883987045722339810437691962669718966233292386771564566204915966458327408846591050448754437486646337234144397558058565532508871248438885655215651895103424796977583204810481369055896169543036556111761253257731886250274112195435114292913899785476491516575623942879875663716461827733932264874453837249110044852460936562536221427684814573263348044309354505169917900597562493955836901774216523322085301098815441165185255708041943889764778811845402173686910157701176103391806416119062849601590735080826974210456139731749171078699897199666889874001609519477430125797928964979971701097536695663741237318535785348317074685946343733480822041923466343684808583668324291777050213808994122062640817900107445530991682379156105616940036308719754549163313907723505231637513532592845423393704005197856639638753701787168258346095628378797437658082862873042206728701203433308540750725025415936113819462273521593538092142530654190004240304643300985413256912142661138959044999083462361718634121795472118239908070823607089928687419070704046862295475436398674042109186367678476829069171953153037846536491102736059590742315471539896662774020561957286106194870984592369633487746873044719984594599339575146812043102477326930187865011186695975415934156820127507792385916522479768936379857784083808761471906634526695145479813754008503602790242308555104410008155190097989601306696366135886904128858241794684526800316101614107083433944433871636860651938468883698333730979487199986722148848657061781466745383863444205471189362319772006165698276183229638590570732343490349738717545098410695778270470029360787792521608558279201971517249033360168908492083846647891979984214778987999827211508676253257526198367020776960254403141505342172467795955305864976656850952269392321739717302587768959300220262483914450540729837798350407851496246796129807509870884333737583822951431494537903940071196181084945615919025069654306720352205110363923494389556570352238205059437771562611379661040023019400053885655328209095437396322423303325834067307564796247781115214934627286425129299756818952897552011196999778756063634946854349083461751723804353955270281446041639135827705378748470024335036964234980346845591549493612439532151361284353052886614336133767438152574993948284418948817069069366477056106735039371528289188562741558775886350890703984659575303043542060420766674010013405442660503420974934211906734304135531722858115986045816805811422072929446602904345998879348555431577858261151548929483312586331227233309526982716793575214719212220685663604737992258721377232304541046130390577559334927327565244858284481000392750619983687316918864285969000092336101326387307803199858390340754963097897775612437389641624987280898985121151216928404169385075032283961976329507908134041822837182379826244306311968020155071512671928439135087993093059993192702887460177082975754299675193976465549625630414966366933457939905272075959792776047597162156802220132586944554588451683135478960016648243623853263001517136796873357125910053756594168617638589743848435000154795105019695445859730840617706221998147269401954549503294605977332691490203983263306177997262680261447368102537420259756844176111597864235360758255502313705267086007227192536367576280840971413210405222053968009439899502811744591267096959069340457040629802766260953091477456214962846812865927046051793466099356097376507952643170548807695067390992663188527050761715410356338703857135178569822758637992890450687099873882888412556689756392568555043115060860026607598536681811290757522806939816049595535688557422360294710429767167037052313879654800663736321329080219198332634073278408618629129951333601830093108992381967820995791647966003939714010682790527340447149410329084684253348313386376420672194953590715770048807505833131198732440166143192412259538316601268451776126541265253041701880364619481547644604142714475868358811763805052811349223707703899847857524345792816775751765843361485808958717372059001084098267036835824290056897224102154502611392552162915798437260730373070894385209166052885035889127836023384371226521614292467075910750376955644170132622414929083747231564638351075858441571338917094748303556492572182007970843064729135274098016826950305947175584970141753216333451472479790511232720164540754163546730420612381810139219364122016423144291715019181601484043852584058717295035071423063759973681322686913876667688736398729253300790992811342205680420677375480393662426231640828939756574054248068729804442739816775645266856672730728143663750166788771137012682075059552343577178855621989027142134237493448547926867493150350724120751791222858218344320868801109496491760247504129332737703069620651476686758252087869505954872512849582253944239037929637045721011750921150616882412015413203135420604630062480087230234856277886300080121077192907488806041424279244245444174108469041158499220754409489946607577702083298227475841092998253129610641914505561713388230569649345357604280264755226491068329109493313036416009581389490377517913712962618659380433377423817145584690397866007652046434141738414413600026361654417808217910625375515448524809888063572988304899349314927891530299757303871300442398116931242880807512754230909248242116193120438099563409266505387975547813689303375656091926520922473534811943145839327438321470680368647315301191506365668737648225950215330769942359311718828103871492666722518310632933191999675648388403804846975388367590682455705580227209625500158065132885402946097150060510550629780777477327803831775043594202680771251939351167368982139417669063628179544298317833329413534016343140015703614001942759858136607698731702626140030352057095574852978359032865183810185991320454463129078311588019904176644958282956420976901038839336922474702911865187464426774779770380724745366722586955733115322368729321011952871830654503667077988946328485366525461648825944559342878736565586909408156382646076629830629938156479273366632094524908594921984859612543336581026882390564952595749174910170586701551117639439476918410672735678434239346772076311808363962099989965041753300342347487146511870224693045796641456402785764159019187834395288467691307440065539881174672342355539496588328966382126735869511163441898284604067075445016416189307018186088443271760591401880257411968537470529588131924298033838111108046208993304858865052538644166174695766495968964122306343160609347514612115453671353794825253369898128851330344163661724714620372769745924781805020175716441436065089220074013318303236123977488508478580214847054001855737308643453777813991595874217740067142348420163918134767532148857351154010915768671469712785027257904210522156926633862054544735276053346694501132247888618107080422710963508850682618459892688925238453242990861356384648801927514275173154864831883051033945583767982782537802249744725776527805616110377990451599394196339969108463412139702514787693289657028558837879331373942221163265677442630773933086139182999367678710814484489154729526874871284901489478451469842482292821349332247894717524518145263747577356334896131877582333124697303193927854849979950467997061824485805594264998919843512143791768490308421785928297157225658801586500044323583094391059256971194949542789536373182875904972616206217510022038746723064367537603547945110717819819851357334492254244903083365847368590815812765682300954137105778351259181648016706878920589812596821475974332353241163657307861028444166121777154433563712573779873318522626743145937455093283327383868727517095066124841600782008807933810344537881280423127027703762017156400511479119332864964885995406930629258175017547833717258810337524505838256018158649862455775732699301785315161991989213571862040413945499659025401430985073748712347892872865656162241958596583737095577606489467895947475035602001865858843564210375461908593843707401057699808011285338945583353330508491397401312500671623576602245519122816865267727925539784199906639513529678576764188799915318486807720262982809334565918850734436069386586296773115686751380171615072232921227206830713497150531734173882995396671334283736301356280346335335417073867858304848065052175819373250728047557576528699199682362411441377470709822891813218888183563389527041015709038584175897539605005046765794546541639014463771654502400081530942021779598707796406248305615747526044260165081622159516613477946108782916733504647450461838422577713772169167276000893712005873672804848602406964266341101012437676447608699147000559128019019586147318665007930149609656819828956505537208807781716712363399511021141722382556796165651184800779541878996940596525915949480148949390308548398796108316129683667766202197483568292674330180429365575923822459751884582329589557007097501965602864285791757752194109376653066892671422899005025002171899395490501440496516803124566679820768466790176627434458506993668775016333453883854251423215040169784383613210134724007538947934140797461801483376663807473159398317201361162495638920051902663927492192961287430960942731518942117493339233037833775744325761814039933494558914067084536551593530994514534268498042422881588939092055539803027505611331568810647737832371286260064986317622621079830659574994172469082657793356749443049491856130216853426326532180167678597888939368454780161718182391689952767140885762673750875363293143500650611272713483542698078279067777514873468015869528855508671902795003292415593521081280120614334044203553054620012215212220124113850217170275661334331079934286365497555462821072998180527836607636193327052423479965118566136652850909778347126179402105074426158257506466201998603076184733198171151111631626126748042538864281908220509072854087433241189518010354743711372692044946367018837018166920906849148060844196179512960005002111198981114438243765742395396365263384736000527295219804067431757859236448173126901646092786691110767581298559364228863599814446571703399665328274614335350823311505647056095173919124135520023088526077695748706803271997854834147395281306231027331909718823147188580000263218609274292530526109967559054189799318817803489187316814378233399503716724669373776559589299771845017235586225569204767110574627019616373667990575039983328647420846734777329593701437542465544932299978375137139589399298054430850746758588723051073208348506600482407603327552489818576683471933387420676686716355775899201742971839726784543218940323752350555243271159705614918986140141431956867193242957908886301751040342859140686420580658438684130063842194680715425892963826911722833762851277577188465268088733865607962942856208690703333406822076035693993082718165063708569337728736676365748252980556932493746667660261038311080160311972171540672217375784470499393601113508013303550197271769870375948079219044773145818443604047055621260270039951300754328750497478423686781280583779557409059898269936541720578796175930980390506988079078654111084917477317559304226633136241170398966236290507649639694255813528282235899715213351101845530366647376189355180297638360289950565706255766146576664059138394518284594245110449207531237057373409145470428797129166565131459100346728664043069248794240879284744123980727675382115135323666139052030146836651435568444568836786234334862776717025053741324410026003240882030924984274140896137631821520111892554864555746533994892266502634577760037108150346899171805919836337736159378827314309767117946381287196014247427461435326539183837634286197422712116988653192675727143260719930757320185051623480048749967452529804778553792041564029919047793363300369476440957710269109835885633397638636236177976298309322676609729191651316671379823779716509019236138708137869191362858696471644006692928716948438269886467226246151102650960935649457566859994176625159590567011041624303820017801610153275272051847239579488063668354127256395869818459772153138790947948910700628829220267183603160060098716990165941433801856973456817330144672771770058141850597650277269951046349177875911991474578491749708487315551343711183189150708387991232290026432425652014793943225225079109543960922579718225810853180386954669696876000309820225831328644483814554385912752248211984271770375183499645026982675643304658612833417166459507028045964574505950345490855059176796425678075138033143270142821810446746940371907641388984962336789275375116238116234281836017327959643586886848846447445879840771679753357973467357537100107840242582610719280926453807969448180987137602515229178507781942510665701038093269733807336186689987869777154155411382657868495428877997214970528081020720094366152958872509206506198095080301161746499015912176796513058264535281229939833843084482031814150111391041471217833202775883477986077992138110657916337085132564585654316494442435765341378044341172162337364786274065785406472338580563209000063984519153022743851976986850059472524182186241348522612703973584967553466915324335439100505964254076441822573962382751134697073056400581052092963751219354122388141335131785417038279410612362027794478733402936375495237976192221325040510536654053746875751223476175418869866446423517155836946492259817574443618797187360915273869718588630836499212547290010169971387278913715138105960055152501831933301861900352315137220018908262475700617514518779833316026946331342806459447023783238042952884322367570015180757940362880698805646658196717115583159478076356218400307915494435399060172477621700298811477264782502027430185598608844414522826870488330064853617298495341017750614048777530850872157434469932492158229603260985246374307379634394925050285427243835848398735604518653080838162959323799777934991135487288470506595248145585970692380041260101098074936894895217663949162046211232796228686240249043330915598057220283137962554358419399104883025333941380079406804770463503674330661673550280100739573656399525746669772194870842179483021664607325439875365830093492420737796168867753127388790874319406610506680068665380583208197143552079725745704702772258824211523663311753864065987700641662772210429138342736326763472593445875521873421220630357095057412379093657705525653914459071373472577219508009661206822238938096980794987813351407858985079724061165980375316204630521734254166310534739896747850656825892589493110193791276997525200000562816504969569054926537651135964120343705458923991845849165591546883293910016075463528061749398482471180561314495916241946616581468785502307926806899591778315310048956019142268246674097887769151791890120951198090914688933666084725888703118115952984102064611131681442298611738353462211308448687873047154756925857329999574643839705778343926591475644892381547529724417412663284611650612088760003581710246437987474995662705900970572098359793008557980418725439717471405086732495791804442126509281330239444971403616973957632877242698326163376497048643985484896655693156557117287012520109183049194308126936500549191654343329005412235999668561709360220284115755183274410022694576358670571283895922163606875264491283103909259546414009697946952851622718124214168244477634121470181590170515340388528789847912399760649059006648361087848447552325519067273561683554042009109335558662544894946683513278675910541050669503147756306539710510278751463837675851294597032154837571984387412333779023389152412856266972520177803965320612480240646771713240823566946202400279583730949882058226919033783247212013965251118961282225330327503684929495857292939096677005705170207949896458769275012154172963690495069968514599143703956075318665587983962558094172295613705274548326564197724857108812033276097261880092932689163893028748278731665571726880696121430861768476348642194262185209242243634148910447895484622887372891203022256846535386932195937805579679966390541334401531335115207994275898143105886327662589429179430171257173531039801056024454290858166896639922199507387419307849696244262801132156177873314966808284380787548549230920822769052867873501819044306650997892147780721276556131883607682775887310995304653811788451232588014577503332531256469584877282996287365489220959814742718083510861293619301523203107127648786301359350713445821363201641261343021551111967985860939151375413193165698837216806722341075692260465541941846215128559366872842719944772457657547799544309224723324548051063809754079786432944036649261070226012481068827580859159932352558091325177342175482798878025858849478871937261275521656328419973667293118217229959184988161228809502535879928837297251325540885695778746328197105632038931697024005217586765914475514047540325985882409496913495613758064816255539214092473060184766019052642990688660012022826963887565464623637712254902071296571117038401826527161907670944002956525243037328399895846354133447237480956058092423930319455027110730548515222200758594874407184918014846915302431208068483961418100793953122148031262494707878569563210697591878614334228232938374333400364146734745492537913124330845395617121970222654486777562412936374919041616819335079262608561637714669362686430709519946011583103299307090197938751206141427259989230787394464665459647247334180002403806047479766611908773916291665616048755568080537911383762817570168584891568844523233540388660448288084276253192295299248869618417088848333625866906231481078236294457219466387950302237199195137102542627063952860091920495978028232558317350383673058417406545911934573419951244970785018931046151347132770638184985887947247538375878341880702677851016554948968008123580453247851364605917740158738457958076427872920165050502862882012667992530590877295061650547314927383574639190227269404547553780948364395735433464568242705520825560573268644464581477333137037551022653662905030702773077909773936266014674725620862376178878276330536866050945057768739851845112459109865420524521556046682995840284169477215237678188719982291716981069788102391091551125027878459175323633489611370147843964003706974477688106149334704590168300262569726714771990577591449628379372988849712661997532248001682118361769907640226211830848096311454941029839729766576900048616182493333949751139058447660415202526764254817540980690354658132561799067862409924628225500817077798433396385276236925845857636275415181769572990178664831225982619087262606803876947877768179629684700222397656881251979757100194464558940556559807331184350379481668041018930136809506629345931594636038243151765497573848052372542447144143765508516850479008023368334380852731679235996213589916551041374410777309350131543401544921225336729147733537747142928841370527729456917004844540766402018803991749546882919277200822442878479582244181711270184594407514502273536629245414588846095507774136604174220021858647312114641596797564865789374186256758743932390189629073234385514063833395321176804966931847812329252961839394012605459762022480194003563055082358617216511451722358937611135728513885115613121210045386698565747794033910316717088268500141683928276862453318719197929563045143917309367594512501877523417416277222794638953077910734536804973720490802017730830195525282975141482212848976907676531383510708481484208209149024957305115011388607092982456650069951731772172198135676831679722364119013012913798042516478238870223832221345558163590208145715616495620968545787129249709896835695518277650052581329773456498045849399244980996329697452955990388300914874250165149197992493569921772891589919941983031072174349456237313903954192283673449040567346482334089102319835395438621080050612967560443749378172991477632898367856893731111319151193756953374888905408852092352959512730481919191957959882746861401350704889938240260729275483311353941693002674259252769251680827704506496833666025152662721002461365945922544457252219413812611636108053068810435641763947719213006883847691117353082750799088413500260592619066353268960569023696972941699427096638621170641934303198233455162276882428299744372700346197866508579810592353275820354510308043509003715794277467892764879404111941205637518658257160070917246629163159066457563188798996704243024600922350521014101695299142871472415719229659280589838357193580267920995838869921072841699966887201800807579828630412130085362997376369812826569875466491160575669983119196832733527568705466250186456847758479038943132553636105415913235087550164799478191681958461948445396729066061533844438769039082386322634861705307786889620357952057931548986813318918103458846408633458373223281964216925151207609945467135748275662284083578259853463420028870128898854266850182251227918804452895033923664907078242451180856493788746326666753462320564550491090876600122156792978095378858932905911135889251490748165324940973371713015956933575298028645520741171952290796096325443215605965682263535128546526184172022495309273410679030445482307514188870275947226679696209617178761577452062751113602365563851047304710453094307513500599210624888719481358047902982483932434887664905855968322035283199597703210069160623754833027355126397983764363910687431308264085706399657258288998679908824077271021160368920900743106162785416770715683389787190144541702856930051193176852516554482608230854489366875889284288951560662468874255237090487477170290800562796668423914592535720258881879686302651658954770546691435506516847640888397527421779834064973708454511748400365919999707705398426367880389875043353972765306739918541524374693541283441682545468272241911932307804109944541782475555310755169308566769963671689633335365279332792117869903896793950001607809056888581412137793964558039462310953289369675544261038402908229213273625498413333171145652880762113697547830524759319448762155748819200259066869992987453985063630541928950453853691794799930973840059222949467317817488995806069759049910378235070057692655288910780065231318034896072294363717476051522464347234500156760301686513917688868127648137819449417748256551705172462914239021874368378395521760445669810467984743154531712728715702194693014358518106058390482428368475098366336415112768646621976873537162680944504804429989050098111779122315491312488039939569731847451738312012958692236070161875879183791906375863970507831078570884776444812233004515150909156117846748692142506090652135694569109658068331389259453689079031317754582953813279726263024430507324514041342495520175477585999700009980180051253266706787635195539173396359277682452179684877022963927458082370816470438265446188871046833770445743927394459550048964588612216860647216415202798637303797352181743182347526417626595768210012884520878742466103443931528683935479419550369016856310756574072988151088764066671622521500441511668534130377428788141054719008257452133680736599537620051711817936559723483121927072164042406506686051768515048984784741918951439997836400616352020226363061068061085709436743654052992959507182105648444201919354722364334247658441930955226314132553208142539745325381372054865536211049809980089214637804436985226900207878454658898555688423327725618549846810389708597222791533687024170768973967440897047932174107937948836151018866209594963299706485613067644543127509092480304620942997809678200655230100516557931149385851096474562547011125469647404628160423345132100223760802196884716972367952654721969987114520806121171863930756837934267302592701219404158082876596256026262717825437861013743578889806075309571688223113689371843239074575338614103676892811035809264209808872612492834116393986469579616358151117429158108208467855856925625704071517443632736239226408645710671873773627638541985584504712638359832332063355226567447805205099850524550630757967774794778132610176362718951571598501227609283882740435554507440195521197586110013544359383565140995220640959974520666784578501122091272400410886889333431575902558168801313435827750587353316034984805029594308576119607022719893392353008483743824946034436902123945292272590790488757220804108795408432782673626890962736729113790479057897603373262303197550002682997295341091880331424589348269431913058250561500446224205659011035661637765293178289879800811889880108627202127527270231996591786142069861940866941398619632881231505190971256698305039286662930690102846066743053097260933701682055328835001152853649296577906469392865928406418977711654133248165448074172717635685724817978416828055602900792901031359040069177029645233761313312850408012233262846140464779315924456167327649385776278512606135677362794588241798380917259911066995099632725570764601026800412670800675446243210173354951300060023843359679888031783216241217106703200733663551890094653274836883730815822413797313114037055421381722876095238119967958291303280215217121779482165292166789045147796213368103502075049384393435764537407852728389364201678568400139122239691533632165606706755430702221265691367156239295713987531871142234666725953297606585071801016382443961706334067724656678429306272747319135620231375934274267175280872825936456643955892359448990043804639121124565698858064248673131229508252481554328931102394843933725558411324489203297506354007935488530206579795129972310031349809389298392247575689132095193434707512177444237798196632745972112805325439636615838264912318778320156567075950893504757040965119793238235240302769596190015623987722131603304956516065021009068603379618403865620675499173964209352159412213722865045961650306576051467392919478518483114594888852454304149977025160373926805719153075344912372742283766680498897115857681326182501370118629817337915680840144910524650270539397329647834629648466431774378339028884050324319569220080960720169098301855848241976355927768599557095733980937979106332408903045197298925614272643212823128249222413872183175715291538298256766912395428771534491120354286425606130455620281963276375954057095067126275745496658228644617712597751757780461316779251227658169456824970647383796501054210000441301180211259700926108237153824826200198351572495404010223020338888411513343352392847225568875190544827883564448232106432569098445427713094330783866790422915259176131590316292235296164382877885463541634165771894451946069618660749937812778262138629527673528888413460397588853157204093402727048041318073450919608041828287790703601389568073667402656789289029429177399523133472242387908367441240907124846119786316128104427261095851654146629888712142727285383215798211554084944866726138724001172804252575963643773466130015295683096238643736129982086985858939981108651376783545903227092915500512675097044449422707480073101771052978810385843972030812715148295348596460202558618591429909535721292139596466863909146109954575656589984283058867759336697559437633481126912130081695333180581837309969577774092094847144369547119022800560832887691435180444333125439920315314727621812749524202805968356062945502610001166298609368857383145080845390548985328692080564277979041396627719978744982935062043876492332122638195160226846928371945788831594475459342030408351455903096248845024684558737189577879965511930964732818735049921095122210790765718467165265453105480928851659421749355067653278596054147780522541302242718461879630182088709357759409849045216342578780990001720411542312028378689590399335960759813811528003816948315419356343425697332738407523467748314373077241920749245781970011282347255989543101290179044076286173652114733360269383035717656431477794451483473485114086369264995450507824257049787304176184684500003725717099064403488547375061055573989261143397168591000393583071644763670580428264110051887675630172734191497591041753563557114357798813934824593437011241054397641647560763274391677820767575894616112625741568524987784893627824276513314873914642254733568476961673043346193743154955872789190900015884304592993752374644239980179364814576805239326010337630257543085581648667781026390393075926746365068015041079552972703668634473649643403715090234000184320192287514608989834314188451948866553773536021400866744024010638970313906496506868873796138182607566883282706536398503365176400188019607928846600145522810763093701758437809161043716989205577167428056057500418810757882947421016930405876049624713487676930136356041605409991508086291280889140707958484839354046402340338611415131840865636149514683795728946339331283032658029627238435584876172389203328407188456599268742056206666874355199249918853644645714738495325446387707977180696161683788004595496170453681690057824959836799495803589285366838607702309455186596450656138860178700291408748995589524459738649690566448576703564250702775667575975418496366172185324651638533827052200386885389661914142806855583381508238110765695747988972086887319775616465719638083265723267342093305888285324130137943826134320833695745996499729493691590857707135598146802536132567450359872667456154305480537835474105036671913451071090745491639833566699317593633991193016804719455296131767887969082183202429828111610360541430249795811530934640169664596962116355606623759208813053635357559965178759085063200431809997037452660141084693946186856887485215465807068884362739889392476591635702559881505453391488265501410372767706448746834600457284165695488938789577552302512215184209197522667148422161448618732435153563085483871015975604192655477756832227633403913073130633635708252708846765454787370936151972170792789624650581382213462731519460725666792983496936404095838470305635911643894791924992312641448863150657457441092969334396267402066465414457572285287773661511506714610982662120025845673403691382702802094198368499435979132753194768570947364647878435007855663716123881014929595901143698127775457043141329612453836565150856040250231065206082430841443953136761931176560317514446331550158419991082432426828070178497988799098121790772780547019500486525913503628552123085410777216292756176740536415025950766784496163468684187506394945851469153240963353254538730564251543845769725039474060927041016627321086812363986146125773934709708864664574572278576055369591459287400544346619055093134355517332296183489970566357451698127971887660916516516255996614375457630678373810951963132649434369195378888693719102039403974227620159496349209238617311505478820122364470481773225904713699522311302076952036029371943781820269499285224052339019782846258641666140644541443067404640867482076362496526756944098138746864292190132570587891935725988587796633646666511392288064945624969613179305435495215422115999164269162932072393969722578397272353126306016965547116320738939821273327278894114295130370242370091816902955311749245295908367203667099917164340900690680620455710927032295086938217555574938332344596160862346420056164370252610892953866158304750768940634334953461991912020482421158375401757362295194223106738437588419410456541338396103061312264327794491738433070291175483463214465039879541574795754702233474049021413824034836636042116592228295706186979847329191304663308553938514934705326869972440812753016865213220211086885338445640193999468802153916959233169211268116434984993415002509932059708932746631289858386545816864740402016206236020916011090570394497678343377953787384596670388330883354477640452356886742497387325203445488938488895419502552899892899878771764568623871731385069738415624836529242464787702802272947384653973693941357485605096544209891979191613042084213557915753100898778398581612522765598562859069747394969643591751427351036702222402826865162257063838436068023025307650697193994809444443741948117336847617197491728492121816546206770178912285224663045606445524628094065514891404616394258395720485757239170679589391426780754750773977837646853556340538613335073011111124863050393364366119752455095189400726668372714267815057334985604538303197222564150756691669084289519757671713251420497177150729855178389577855411303367440862566638932810525232656545901805933760488283395612309070534621356096196714141424537137633348983626329441263293968938232876715302676823619679086619327194249216044700594685241105651652086225118929833062294095513704986301218486515773489242548616508442600826475544875157857499389786011153163928902289935797116458582323813985144571972990138049664145685050550735020632121500936159369533410496747439016626493827040532469508249003312490639394596702842305010220066036432492164697993331561025351706000131386882623675949293416910630525329521807289960468575889984571513528559801672370529009770639722505306500467159440126002610415068918320179078383876632184304793162943775797771879829517196966931562857273183124413870724713492512831035699997427257630301696716779914894759104933621604280407224292911160483375721934156798962058803334013029689401909441716296165076098692237293742522912230371464361695634537499547613113235412100217555702464085533912859367986136701542880643388484610630608735136207936887515369999904495978234934595524709924462054698160784451770433895259454643616075778931258453244362568369079845772311762355290125434458701033085778449664645713330517109494482836957258433493752829454674067743495890668943890789838312692411886915390590442857838504935334240351410158592309329801303992059282933371968095863418076824006702896677505670182148430306431583739804399496724449165698149760197313895100810831859394084567096237057256290792988862350325014671341592612584807648535058029223908788248008783520611748220090057773250064073397695662947980015232751661918369446450091906869562378449767935601745640083814220357859464220064988492680721732963238653489377755831769308231723571076559751054209814128735218669474195251665769186004544284208682048580157744346128124355668315828263506029091529391769982259551776836010925316094816202365144533165653880036523075820877949864220382214965809464316219483750446018217297213651325101879031093482589425704518235426398599999402520772860453424747281654111621661279034661132442275909464370654524858213683421487771351297001745476337619579113115436655779387324128095864606505912015086390545629354464857896326523487834689486358960057770509212084997683634203236273924570947848383200268850197504031241721242556069981737442994495918117863291155482267935108745007377034069815929856673911581205566032432623594538009053299714088273045516871392483061271042701215376345175985297337298437492337207654011053886374655647377381894138932368112798840175552968278261332319115545992280833358606271220979207014149172518705454256222218276891129599674367868408732513809278439393537141697585451153142492363088734612200402951651635480508217459638794569691179364112360840630693426438503276745111898648959112448677552748660959955716626272755240878609307680283051800892231701484699359624187559124329569056735552399316307413938918256598886823461265032185023915517393375166767233549173560649096420676466265941006366086407978340233794514016286458511558156176286304802335578221503381283425396036842615350446118966989201051615134206015927904759189310890186637553979714370023709118726641393346450671097268797027899571672009668848224141887074716704727910602573194065922210889887535863879763785736726740682048612126245722083854640224068068162829910462225196667454827787561382984465136821929870608209913056759192157210415622196746758190327054121897840475299510810337489589734001700710901706638355872640232354661527630397778996993019208178274282150729646358297748747912192790140365346209149638462388186815566065520951630411789046367631425799432919058508063370990815181454717595763904405463445817952541916435664885475835828503826718837323748203067225338501114879296112462615406210657308609478480447151643540251359944800848052194905597063663505990449283419874985891413769501368208401123867667245265054028060802292682230210428693875928716415660033818168361478955967853782657390898398356185993864124148656099358356182785852949188736063377872399291607829566763971633905415639044644555151868552538157359862595516434247165092564883830998479730223667884021633850687554192525840127646669453592896288661004538592683062975764236742560652698104459578941397543640542194306951445556601427454040562439182561121681451289264097288631025676915227488298944803937074749718163328009698219620229860325624518546600036074807238201868495748847670541749850657714911514225256137975062631456195188096062885062932255035230090535701684604436315290139906662059470446955473316297902585873999459359011450075994901590939095460822641768714580399271616390407938409971560116439093911978719344670287009135095965621348042226096455668662753519859254504674515580321752262052544439302569096574733148165791625228943106292519799444585309107340522606895882342052266075036634754035730718136752330073796247908234840472675671004520068144162426595477245088607396288773037354390340889561929273484618764552197824837761501005314504913067568457423596613363961160688397728580325358483594735737699122042604732735082779301008402620881618920745513120878377822756208188506578256791653606653114639418033876557083750174425054670721864213613518202677838572930855117373295311520363418639341066126858348323059294860314730661125506969140053819987549374786583708375771827307432839413944961623808966803960848627838615466706200656165115419849322843413181288897202083145548436016480272163262603043080973394322147028289361416026867169939198519582783750224550967269937881946784708795668088870715701639792924500046197257952219688725079085891326043925210627638628985307266444686687496503357006584771415194252820260581290088923749683915802177605127118947342612307822868464314573984980119837334145932183447820624343573018396773491534748161256844428104022457028196593758321400469387642029665963000055544356072094292519556973216659013830213338676042373996645162927191956721620265713062304519804916452193646782240771984247808161696797035672236885531684938567229622662948803624073367996286191231103917142802449601049454600741112609069257316459991578751579548121202992279577996453548756082516742030187391322221005767552425477373473895265615259718482324465570352369244342897853715436187057676663914255945236976013159024389325106838440807141814111560020042527018034136892676012936814364989015998020223086307126285032711192485244914266047030371783824766928742700353061696963335222122280329661845543303498999616121273083376812459555214321559587178291747379477664099249213395613270324429798174309347580906000805139400782061703228087763585770309816555380302369279313127054212882842653136593160252863042409524181052285477223500870505999979004305200361610281134630232994728176408732972048754136979711489661162578214619626785813878866483946677214201442084019720325358844451023692389835123034811545098501694336626516208133007187186925686748751785721781904510854636812918652369200482329851928227592231709796778737991492924958907107283075367628148276394600064826497342874483580980390623959853322648607060614067151132611380095105352077263267541238473313824362969810543767319031317320815624634853137775977268698401410545572751227488206077567410309403727137362858491113821055684821184586475719084019534699771578123387750488421589460509295539043549093042062996435717557718892034153434400359503240655440644879533161563462341457259307863750495146845083589875776567293159461847161462656670887422533182894036290163887205289104869876808185036931851877433460968037356858698792292645575483560409910154703751158027947465229534003078703937673292208131602996529425474935131026043180691165423044274202234294135189909470443485375794944669698674667618690366104248538137522976672338573672587739176873800556108133176697245287853608994447871326421002368108164973353145821877544701695177013954708882109888504566856574439593710553267087373260097774021771957871330461583608298266177576606807150260316676631968999776225339655156866652117621781040025137582117164166179029777545633306980702964989487024019471621709232879577386768993548239725513320299778135170819053241457142020136747846179850131834730164071452451900157862531438463820231249223580437105910126714067210426973366740961727457116973942932708237605955195971594838383206743950240559973594109835591843741790511920069497136155049651486841708281928646244662625068181412718670578110728707030739454602662839192590478161085258997966801070174488213596096900642574638884508818249739279879703602291947460715227584108343867562646672497728984040253777493229618521968283151075234686014669981229595640012194017443392532642620465459022662465936938645494517052346832093731959902109744822873713320321871920405033403401101828556306980504677727294941352967787464601416847848479676446085998456354156008865691554909764247761602133676505150379211219730999560077491558144437732010582548352203737724402669819182318240143170411578864968371705398711074516879743361895513196209682493922324511502716539363917047497336405357045539820659796398935006274171551957959946231040582395776997599868134406643860578303241319200689558431722862803536725321226556454337655958417158129931718866712293657161008610594806936752102717440924321222342140066857565083041569551704300708469436080693732810355962126187846279063870415188145974153167539882951645795366968399755618569720649823158707612690134358494693477039318731209580474149454859286553476278930586369507119216885424256114141512627175811336447033736000885740028963195222828413908877442356478903059619089772669934609037856627964757200414907114569869542323235280383959431379708072669507580819782957929342921888465480457907766289770709253223105760950048579074186849573774886249361790358128125532531951476508119951578377405439863481762632809347657675064207886148862659216274168915102207179155398732979905113293549285965323737923010967137840474361687464518903779262105964286989893497292040703054059822694631280458928750379616169314189493246408019584137766508061841278217134739407955300397564933063375403967203659671329470380029511135938670344543928593428132975501087047752915357890269432200243255852006422288746264984525851028232386842086701020724088447530561634367861031707623871356661855847618537581923381423785254778858046042871923352720535275437167284411443137241970572268576369101758687819566841365747403756355740226463424540910342636940623420800489154745836477553854264697795040781470961383535720299784376240868512009329725168022787243540834067086983049315012137584478710671320928056753285059410422674347548192435933093748244460144374522861398750707414686127882419623350140534546583496035708829917465948402348287291575324540430835427502612019898718450517372689580016260795277195760101071061502435204369430210519966895851042590672916222554060963034137668843490234909984577007436151289947192392090217500294290895398169138779452486560441525812552462235091682262521996873397211329681142457753958842905600172173427927415401496174256754327264780470515477346640984408474874670849638036623800501916442161603236579646648678541431323995887209708236913116931648181713902678221903964537133973368987367710917356534743053808891708330443908549553036327343573119038714280298922407619742030444719416586344480820598380497187229974422884000443539983791408005376731138595532175954587651286925308469982409555974569810643267465421083039572947908919491484277703946276385248358391558597929927400988548505078544667249764034153591799719025457448119667916015061745474173328112751201151212712176367896410494198175320807156682063264909971414713129943176171466537477082131950592664523856253388980397968675764103723124145344538916789224342776126780585380101360382018724483424126253956640364230815806427078204016633569588907453880588221579358680603133797597160489187550188402837630054634188449455269738593336043157270998525866187501304176468901248345501078257545099561904548469474927407980318712731289447165257422183319626071979254996059889879516814452895473590990748730873602356963096258567130988162459018024256743980258372894025797914448719976200756613643406797941656986057796109827332653434201391556420544342477504804947622558467397346679937599501487760874990127689226845983895072144644263062070262973392749651720945208497821215320332461486651895631889298456479437557137055015567687527884904246642434095428164561535776955992765805580096951966909926213584085358770030066660168148194567073921128549871733314208419924200795841163971544161568856082564064598786357184577615793636324298481882173143873573380705013847210732861190954319732999429916129340681947846882849145504101176738635899326704211489205338866401872839296479164662382286932644071164934840877317863137719736352059629218720149880899303062134237347699021173326155414454343264965855148256934325833864039949082112716307211105699164903200749265435595774319074210759659368626588067184923226765844271995687809826192756947371878484197109181805508757030280858084046181964420950874733459621251902763129028750187031903304341432690918099643539877898158879126770197192569188364067562693138183501915241946412211491956486349349070059552075040094674418582109791957670214857149862946253335128342863149599451728812994628308782718489757408020758554428588085672957400253714601216610052744312549624316593426565038723663648431902161423651409477678965911228491248249544935583791795709400434010622283812530328725317127325679463612192615746393687086803645006454608338964885556851226426556034153466011636301803604920771369527421161983905878585139169459371643060831506191275446729620631206848340131059874720847153202771152785386687233893026423506640757012850563485039229493482845058583807691761267195288232097758453237994260960331224098448607036080836214536094152125270960461422015233615946644086735824005562030969102405241019273709516440746397293240108325716926301872267908342821354139416265675341911908864526749879871497497613516588827284990969207321112624914861909260017010169789405235815071953820904397874016837574878988284010342501372233527868957020323331625834163402733313383272427170456618954697915654961939673543055700654655585833358473232315837075921011914943148827560219179347572617682657834064969755189775713286154966232604867042078220100481659784691888449602008486699200061023647342115758627735309423028795710283203508953961348191763773090727587506777155953487582079574160352441145799860521619021017502004891823001038556447329754644560190464980053073425149976219119180356687877616463409198809662636715688714156168861670762770063131830349992825734745364718784475441713977001135477540883628141345553650682244170923992259989977353076182963379074397007193929396179092400351562728537168414538466876075506115267785490400526181008685488547012871699785543635755000572049458213645205318453889916027293419029646407623735901200536517611160971272056313414408941711443545382271395768570106654453953384175835052522349685301288448184506610196439509101270591453051221869743469069688753577453077518975530358426258309481371074953021322273307553542723263069703516102661613485328787670203196249886405679653272415336950779486833584105183485289001837742788776864372929809915130536718416433085583663990884505722518501757263566202062029355599360220577236949650635005820530079539710996507435405951183738223700707371485751107648613650423066636385621885879261552084948668904662628567938824294978580338410071472114180852381757348318070994631200430679700090936865565556272499259096710533185752795940302206754998841311466957232574217515058313418639854249137084604972734367840952353945230241214350703278414189489751377295820649382302840192794696958473381240073013140313038079651395048756379111818993843220707398785155843236084973622308498530622488301535880575967560499927394746253324962311024052918413829949164628322462424011176671590832422190268067735410607080168149374270713475337673685452346972274629857625138646203457074391910486977138081516828288685895008080296866229187657006087231040064504117426192638195587219976900545183961018113745194957319847502788768025013422956521443672595925919504984116221930639262579406836479948496412494955955558619877970876568259210121586315149061143736840867431302451331850502764888573753011913651582094893189378962670516501431521198397674584414760182444697378462749515380173863967490561435321663061859658139410375741856104793577425428719820023038733613339092288591935895314301598575522874020940664433473324434732097219809036670958041854576595653596968220936621343905159425791992737707135676386165534870573659625201761964939106229611765006166543997079532356181993675902253123609735629990268797472801027100418761426591715131506340691221783151392924879178042979071440035105775606595284804996196755001317695848508876081294425091594472176361141038294151413618462434348129646757860419174453506434108484928675479578120413535224412334365331647903596402560049630073258071264275513778924948017392850322648534707460457174874442282130120416600121291322339850372679721637847821667224782671413698173484964428722656977365505060752901160480050597214874047395528222036803421608248158173567073421266041647422948929201439546970615862691847810365855873695752158129673090123843148190422288028343800920993578458566539388854768430816411578929914616795934038110517639337470946237781799633196608610016656436068359817318588422404985021237190568753299424119281521827186425348931799828758969928506673653935336835562207450548047598062635663611565324428964973108694104212774621847432961472500439975063898082335254607419656504455186102887014200486072640897688406194213019272022244054586870550717323894675777236116613202066248962883902721131174470285438234789215702128088859414167554805990443357416911101827470867636947047685278743775403898795463498661009420338352294630852121346777533362097873001302096118603098137237327568426073850235814316064275594958062093735823013750543529906958817068580108770193002368282742596225800761577630862061512388055053848199526037747435430258439745374609403236326952974303637120638373262063417367623594583126821410193500402746771601218995029081535327114215808312794402115980397353241996701466104309051122365438193829324290752670671168117180286437527212626024396687614243460796916926986142090842361634285167068101337621793751755157750938222726025094239545129026354655101388963653170326027626946206920498946941218211388877322792297383514216667661318264921571042765164947883681898403331691845882061022679796208024257600482345887259133287386920471323442740026678716209815943373288715488797417914192385256373467104980074428442191184826091243839725006922954224561284978484114041287284261738682420484859134941868261151422580258583236538787832537925850030669166787876048830510573388844291708363177096586153973336550409469295451045068722515556877244606884713318211577008783630117249284751103682303071891675000264618645842643197817251000491857446645501458223176788553028184006089895872595144933493496877773143338584678144292352250306074019706018792641318755717128296430079302450925958599158317773249330893397438249989184730905469283101020271918702097778048719589010572580300288749055151676324448826172474834988944090335190515582591612457751638055568112865490197754450327327192878499852371015666667020268763809890608925835855862348983789366449872606701646381512639677489569068963512203047949112914635830241249288444081129292356591645083025331039731226791527704266997298862117837682870130073376926599122308061011748476236284349483508263107034004772498515014411865086025118008659770181539120314340448743048931514042316695096171685410469922100865069320664018554974045433591961441397598087018275159072997751918211805368702720921168548988140019694055652807856592661924685064449503538957883853522376989770987179097130368697310480958387225472030769257506197755148592624176656115222766344861311764733379876039346335182314458491552990797690228161768832618772656956122047489712946449929489487828227250545308000237738467314148313772859855450919013137881122191289495034787979071915771185499601725141553845804085920982726492002917989806525885404838955423048065027107622406859894724544039940810171540985899039884667669015920603717217083793675610038632990023195901013149540752474996883337337749895130582441749809256202984927945816922536745965040914350472904739287526206760895124657940026095283363628544563389206215513486045093442687612991164981215132101519124256037842608417382258224021890351454896601155904206487609805735255916126191119860889486482962903897485725673485688140344266364351318608728156434745265440767839418821472788960995874134543017159770947130415457992118739269092078312286789666179725934408759815614593018650275065075001231345539647842242831564782628802812005242598396496748088914916631150641842411698654773447472803787243523334920167107079878844292575157596731266397481739050636249380644697767983676785053085798001252173216341828737846299073974990610809141096128042146492471883316725752410580832645596119063994067983219845265190856844310029743978165866444117371994779962640271577154311422719747763744293589662679635977017121655565102317102426599804943948798475583881121919354527175677641283744755508202817790651073410216827358166042970433001701301090308469752551831333140684660653306345013234186203619886451412432161174521066256905739662266684258225986887166526049982345930536268402061295333184032249813495767158623154574008380365785669697797542428932592507619179291087133266947798657514573852755897823442520753363955429143883181701960336332745092929841189267148864349141078913817808050699234935864393860653096293826028474367065407812310876140164228399681803889137371977627478249064205580133320691997360850051629097140114992773747104571389606826976320218403479273831170226865634642457410987872327482127947644718345626772335993689554374735088422505314434850201824273514201720633578584478713327189725000402314675999987127992175149084388979873998178200956075185888086000897682078813202912713484520112488361673828884474630068796852131237257815529008096289349646159873457581600366813875217885247646838425554402807402438614189949275248914681982649182939209860596887174538264301332093839128396644636043233549598282437458781017191744299051284195664932972179652882820279736252038283397049066396333146738835984827024081423072723735737277553140340266244794977287444742092178272910189634948891535051633230539063691835179093387389991047097014700494151638931833760896549310079683188584358596109904330800172518775684388374933227269843445980041129415428836644312612910361457141989361979913027889047249350684862681745929043580940116602499939949197035595853251224135194937726762938425923911326770525845247510466669183943972623551297823222617458297824338469776462527713521117508737803692039185821511066848556426216911382012988297373962729491509999015705981025398194273660481698737786512455300061010723407548203065106327836305263166993337755295524142575588079239903223418397982104512966876532423254495292508644084025988194367776304371925367898477569820718196377054856387810627844054312676993057910222702067213719349329611616424225887898176118340385488821228309644264949030530552231143473259708049168048953348492924938990978802197060159027494125658015394798160561540997592288308303002433819399648128648581169881632598489445442944082293420193350609273326493654535173102494402785271055097480661209303684187030057933376994615376416103304168882793442735016607625554863443727987316444642719342362037181210427058835853794070516284327356356904471665960356339579509548954950707317906245287855142635344654761197257046832017958265672312628795615901956459105666201587056231780440107292492602798783900027475160199008545505055163036824633980438380048854454686810459387894915949206978504317886089295749421897563289618516980565892797834923276500683348774929422671644045234690336490282738682345709096967744081851733773178370813038648488240645358779289704740893114990374701128927077173825746384551024687086890983709976608663130184740318065831772664949831757818065526708665477714620850029309793790915614714499554289439840375661273269836836665207357307442607834615994424670609898401737884503908257082511700651847140283132350161441590424961904601409041844746826395870215138650745879298305400500327682187092894180931905380677146873183687936846476382333669382496376238752980588672692836523452571550504837723018023453631470977896716642263258705656072822244714203205298303337062450400103642783018069074280462950510991258790624678817395769748486981377191304969060736138615099074972706780931241966887802633845062252776978540159046557226408513085007490810893272951301797764537418779681663737688986704474039114477973312119974977863602293735200190968954740962357560240484147421321888403178172405279089645334335459476016927265167819968658030080595616637220519929129036923152619433352079058058329755511155091988982924556500987794664175440766072318024981096607177543336879628289806171318214637112102214518602836907398288944937827754408922248244205594422155253250424850887742889720862028882531601364563298759575636970103787403204414577635406725369336149247505843710681357189119584005649377427461471363222333853401230690279331174696835521969496285241541385622061424218601477503196476875963800851012319192492784961503443986334384186751528491948608590110309465547694267034231218509436657453013229716859660856470108961392978782757577404214932763402232513628042321151283932118171117328656420636729084843465109080178124156093502558247572690151507321883694071842404553994823440582651436578551736925333462927576444823114477453767791353564596818332745587676175769763199622270279291617014084500039371253304379262609612215505391944320812191087142597147493972749077856535408940472226770663936280997088383453833665752713444586258145851752952168297107098867649609681649856236373017541431219280887955144691943343051761052903541696017397381435186707012723641590949224763649808426788591160532260836938908536652409266439934338530914510099112173517495265895108163627659606097240944380131679720109607023851904924782940252127560525870546316468622130022030312915340005428798270950598149309705211956523130956126290170173473385340003183192295414359476616941560935649582127362859236842970757552251572158783388174162256318454908276218055706054893046170304186541715866975471855297964342120326873044358147159515352247162624208919022015616706316537213974537464651634193036565877783894782796605218800844740954830315099245601801639084155952448083555407525447286864608490312193514731792113472973316507599286850292667275849001892695162824926006031941126467595732575607763277160674592962911909954661642698738782770795696302534093410704408799639814141022432569213831477854873797762744975006967995210286462304351366101687161450970325031025550902630952849639245068273204109151687641671013840871774945160319875015304791055355394067530483790369932457612484416126640463027910552466651165995756194411163920961724843323539937354052572147659498955652278473381710353702740490347853737387845456148443399703693142283249611087700606588016840379741769931706024995855215789456973655602169037190315030749315552517270614699168518198479914504220334911271577860130295073582810400216506903038390658080764613852875718452435105432096670810201814138076421824474766365541844169772326084226843890201843208139707002682981609220642053384836086961950719800582309751354150642992167809567006539880785845229202331778559678956598999383808882881867980028649802971188681074914876162447011648667736675225405219131543225815508415071123961069161820811369332562215756694075072916956246986766459473678945935259639653535020255265304207777826170702376456367268193020268294374996193487243892518209784582507631221204244673704367903201008441591806787649502109811499311772151817576366844356112563428601497658118754647592280329777245514297280642267394303235026281073392313860966367267010630541688728235360706087784251364954075043208615877432130078562770525563542763527701003923299068421297222255151698223534554722000494386875004287247836934355600311150192578272145749645497703997784143495028221230602906702598008231434060110326457272659009210035376269884462786138433624366432816105621487989275844853855835130717522769069822622494654222497832663483406967646674785280063471686314881961573688458888992073040886741449627518438038529317362264196249179520850020962029241003884080954238145296199707429233869815910011871250400532771740141561413656788178414943052003509061586177869104728019796335945875411840154464615637371624435628380709512800759676296908733944713731269177821566360043272598154261002046644333363141402486342042987919229014140735545122883959318449357972942688541297710996187818142691425057270369144325213447376588309898274304596288949812508327069275732238311968579045980467644458568470719220848477931537710668318251769329537496437972144432042166633526205307713443421533548007524044992805995494385084746804387670785052756939067924500319697550672833009790412939776719074559041952912543670704704060814721698346445056273597467920669076629955886558240576076420352520890551939752146315233393927445411238661044784375607239996201052675584934730700307754758707665091865068706232261811252530029951104421588059829013159902704372953635721547626776494996709728386548028943395737561361772388002000127699522368779172796312313513764388336072324866215464897085879390312506440062411181716380212991064030325229281630483150002365788634773202374478340973186784205456981748790895781605134662918054427142615403197618089159060044528315216785865853568680163277770306600104013696090547054509024687010114617390813075341432539035816971712018845905573578749310733059995623831483268084024224588257245357735654715702522577428343194701283297207525985916831838166962488765893468828570011003780893960137324841238603623067513480940477929862636379366513624116147476143168111679552629722932217179442771896202237401164185635552439638577617845041192909308251079870173973887447378128086457969252584774387785433564166715292620168878614069145642372246224093321542888214490997254647693081791486178858590151473792557560264119809167725862020479537863274035993697226307265783816561071037025092056196623185745156656018852449777707575216805016442081026739687845559237490336378005368647267425086710185908749233018367946890453461880086514002029724219009557983530142572644513025035309263389155903554078022148173418013832509220508619033058552587284996481324237728624047694029076829421417272650408451446695550034334800801190236720917082275141940368716446843580334449806691234099172446410635775029087286972249051589056421971994281661332591225004590711591547257142932373081825954694760006073189444452233090687190581971015070961918803996394053834601519412451204815094314428384052568638399545478345831207309078550852098601605935149850529023633350015211646366488928051788283587595186693122158625021864001047940234824025105373954570295502187263733163742455202574918694565161669397376108576262928512376107451370736482635646586738598360012107482409528854752106008805055031791755530432323712911142089325710535602325777113754822522581336342541740255877642391593804516941890703032620587952807595114909687110922644785818870888376694349638094582444023165656472056509013263463377678616596937502833187762984860430469317689768196020536141683324505722315270870897989131576255238605394424748405752009647294526842528430489529924697320487163281230286157740374663458242838867271690999577344217936274327488117331454465420681104491394714691927633843664568860412873683761504883984930558070946724452087784216820575892548848947481137449127448913914130140821544213476646866256936297903625798259832231280789422488904513819031653053218049078604136447716419076951297245771286949418313028081073628298938871840769019550295313984361466279996915466548429202341675720043612497337976343589384563747518801059316639955121513901798697390976770641668519578122556516078867870026610662080127749313617176056337944010759929436904269142223938827634645649092084348760237690405656419103512255680003198094747399974205093777065975120278193891430164294293260055524713972091768267016832143260274446445136981327415103774625774615361701534806017471123437701395075645680065362393898566919282925580374653877191018706576017650634340859295519707216689567575676852455837961192046445301064995317824258087881764604170851176892801541064273328805540279912554682755250324556086241905716098334827067130821998899593369129210465777946857555840925069540575290171325960589301278861811258160913979773213032751417560359127846384269224319724455617339576704601174158222241202657681738841584343836109766954335672467626516185799245958886355452289690237196280254521126307975051339822340033250142471090292793690537100523686894045232413022054601632499496487560384261992114149731368684266884368451020501493925717479066068800996212240535709262725521055919864886714868650138374148112860362027123512760219239700101216282444702756883043771686086054592101303045135568848724912972875087776658320431357019134320678523495588487474204320773576321874189069091923747698446349130616732097951824816183279921266469463496163833872028226869041929880042710192231963088178802174217748062761180352798357871245803346050797720329744791855364762497018961232601773648801675228679105878147208950911607384447691629340509108838813652818295522547970025653373341699400119621753205943347545498415920554013834615147877784611723437685858175583571450994070487789535524777893400022066400852599479344439580563504408410598178226285878091131770013570203629992102191038718163009145664689868041409362181821738833391810857334623940104642504939355971091880740013774371744019243197975340774656193147444568197107581592665276256795687949795293853603866307144710327730479299940811574684413389639646164348203080158146900186007357837132834400482832885498883854613400741891291356944899942644568650753114662483413293955410664060423886112605524218580014562545120079515080674629608167267014241685493621947150924304593143792512629998128871152659732686116585501622784586317184014393298365147770612607633181443601354865158260355692426830811853095371473349575849986763719233697901617914646701481727238827483157367270084661934175388822992374629843526974326833795341866038529019796816615546863829020326355109961952344479730583836936313981198408216406747041114661083311799189305049316482770729945924620228168499052857832606070809397367884501109601181519449093050623119902458391368387006439216465876450959061815576090365255361039568934956575086435285459627930241880405049288623179698575247941940209623560351400527891260583428240783042039683151031056580455336458381812091943709169837617795442898210525379827712061563247162685310210605519372050273136377992048929972736016350556740465025681555013661361085079456188417581605940656304703904672166304203224889706548990152510080885826005994382020059605560139396545278498612948349162668647654817145759154725004840087734320881401433972019748123864652840032016596880324808243521677932272084825110859060566890929794487896356447577465366280424309965141585184670111176719521701413647910859625315572006896331566874466512940765816341741482683994378099211941058011492743152733586356397749723063020931101548667592514978003119819037775406540653560143284082418345395645763742712735420786581691835115279875056814531229291425710738901496879019924399305527739359978226747565008500306303981939090511067607599704398066721562414700353781167738063616946228529691391616155974578849592024985651403594525468355202624113005955688754286413162054107674848388419618781407949298427191459800292445091317344058594383217638319311570050315760350520674273707142255980445403680929915868611011420095166517535279648861677555854693618043100869108808090071647904932443331932793249865113223919403829058735416577248366216316289755135110578591033838635575062555387083659179367988409572511479405963207026238266993591795774659728412564729563537708578210513252847483652904210925732863284266443559010875660202978937401685944007515717052415155722697713367600459132038493626740548770489398669035011690307433114538276452032230582347777390330308347909590833047974578615059105229425427030060325872382825827250358899700494505796625892451802433808760026285681601838972818400249896436442238107452838023039737239002997161701209058876451432642201486585712714309615969220875885688906402616575911225844454835803935017153974773838219218460219066929924755365365229214956936532046046126579417437404415508104408564893468017249348917454366186152423035349981504638812593737183628698846053119822145528600489985237250060328090181595551541113982014721875100781676516525755073269215229780010188160328359643395098641533113721407541785725338571000475702701918492994509508958892034640947561039516231840293675195075656620739826473840452839968652470534569937085337342212203202285173790321892286241565069852981303659725410296054763921133091728262365421572037506732201001429430411545318738682601149133452099682962156886876052333999531220317950224857877172252952851490161934584859309257391292370738395321446444679993497373976112993057123976180525786508304196136906873336025444712555027938184764588108547129079219445654159069458468013060824019506245446493026701906984127948400429243507768401662054492479190998781118465688076769694319353335183850524912504684808120574362220067145014300408711896249183604381548186330787118318246187504289336712504718373344575969416792018521648300977311940275619618943779611968618557869838328848279742316821001518531913913665670642788602706208493642746132299204653858805214217565376888823779456586228555084581878247338632933279851298518664206465630870929027101942418337608026391294828934944258094898546069589375738680724157472388095680731037604610673766273729572134893122903399350914597783963246306396303129016995742070303253710391117543260310673005129182436471382657718471851695921091164567031764033797866877793517097229558545896751633180365356855190131446434113227705939809517347487767117135410229557593870795568342734029443312285453183971109213390159741808920877535813846040613926500121367342587108652400086594417322355461543731292304439550142138352052359754567365029353976230518955466989988951917954436611292939064427790552416454237807089504116121121771745035895241368008837082218691936289666681278354897330071312567479111637051757660924157962383644849572022742618415604067293631584384419030967051086964539775772811313424606239078931475921331645433705745863103505536806305493594406981700885905335156873560926588467341199309350081413522980267426377770700752178921300018638419217594340543335132590900601165227679430608646427484574805685885006311329492575018175597240010740805466264228151683269892781522671968663123930521527498880181932934480724364974771016462790950817465570547685067609632051552523801246542932452162322523202123195462165241782674745814948727494696571022944359820126918354231965436675402404102195936604906858939253887608607709567752346366538380290667138577590211225039979632918311410579920551261285634370614067108037143572007091601929982413153855842468072456991761782947412493929752730830615448330084301511753268851454682010685695236488637291987847494693607369325768903641883813826746668435944172499326328392558188989789243498092868284152439447558866109863049674312663945779787400461680472776018033942853709311018258969593257156279173213973638674090025872984955062621290593443313857788006395855713198670015208776591540375043858863561614344151482699504659058888546846884208502160286604950807495530704229689448548226381498651392526153587691967380450773325386141815768780369056097196755523716411082842655243216439891481305296047962163580552790903739600109603748518484257826634726133809552009396334583499771245531104486074905432158428527951506582131891860634229322447246219889832661736170534387736703978785255213421709470994966490469898554808617071304109948039599796437985928691341213635211708320323721589250108764313437390544004233912215882097549252535578464520331459453892969838464538702565112480305682166920067477790944602833845257337403464107318982323915767470644545578609276311488960982215672540117955351448946896535806517061334723398163165079443138801853355785936363574845670498169141330144134926172651174082147907272881369701530716748375536646753242746984363658914471986488867949553200300312226653769268458064729845084131350774982936220998504557953365907333264727422751002409380033052501318973036684104161965009697044704177374250140433210294423972006991135195595703028491257533663867589706207442682246528699522817837392371620647824000568948302757269539934690361728587629406000185892654885862057547997437726821314807878205797719801753182885011138351580485212795363374102532650565233129870449651406790122540430834628123739708942707435415268824444030769766996010650861370906169168374642667460135488254566017898785069534612240500257817809637611155886632014588180681030814670797719950965690445462550112646912369358157765721975142790945165800323471750065871273247922018546004476627394110362931805668984217098038578803460843883072068509512532175762588984000671850904319511614183872472558102303337861937418751119418353890165397458071015532079604335414943790087912211789689149958439768377371155619083902174294268352600231011342303410080927252929618345698301167974282830553992592372132670600135542211169242821476423709376963227525503190288728350780925948562727795380634637218750391911680268636710384827359018359227916586550550155063408132088685641078442012898259729179066538042683660934147173965288998342762447086112527738183853286954914003539278887711285160304926068859470097247555903967894855728356089530034025508384004245080993571923891930097401816820337691470887751213060620673996913067791546497168244693349762112119511689556347689861679639278827125164581315214988651694711547898689359357457471255229915178337131200586831958922323601467725798698433572199439491111802667241214462955756639880878999612343765793363291917629027916501506232941364635657821657831739811912956332450329582179790008322506726776904194225612671179457681783737727679065171790935913271126205818476170756685151117710963512189659483192939020770304632193121024147602162187826088102123477980759640611489054283849512230825947330112786461824158387891773514452806427201922379811724850009297635501576122204379389113396565759111457827355227941525581660619708335718251918430274112197880731653395119008830815325410668683039415799182387014387389165926849569853589737447296073735304241067401098071290561054128024840054576754649673730271084643785778762738757069026257105745909840151814170659447803076706619885988605912644685603612769854243413168147662288092463624438762692547533808150353054219818736864359459481637055151743948894281359358584144963505528857684705061517785470349053286751604049101385810433410020888437426511957279547984828868092975449793751147590480184726600055174548947322987976029966569361895406092440243488711033754280859819263479033319879243017867380219106128827049928482971752319628284848660564448089304646670209262291838443392609050911213993056769861760845300662872490989458420428036054477299809114504230506818894689253066811185174156173621515219068965440752259224973914146528997315537471121425314142161858002135063433334590875755446806979700369312567919612887647023322697707581713686377920853943668656118449321894013729683646998534356046355172252556189556007015999340439069909610831876340477955727337143653666524068102366200802677747971479505296099335679730306839599174388265100577598912061771530575261501686564701013593230696386234402908155999208927369139359053240167065180351063266956834675818229226623635648802576324774360754912769600838524771608897536526547365978008700772533114662052561001722566810733010897090123815485557043433741195308460031750934908491155250563984528629387224600419590244385721919876876875895549528482761868043118407385233489054261016606119460535110650621568878994190787145087972137517810592995230947929909492430037467832805105876193429679485106590206902620855195085137799632792965179530140401330127703294079013756707624910018064097254442422577338178389551949208791952473013259978306997128254918929797640131490771022877084999757145888997262843100989722434470757146777826853011780215444628213248932733753792914549983015785747722654991268496347611248870326455303510500541344195922136552452846910374658380769384148617744106275370198454480740557386442323808042139584163567080736568927003209012179983021135200379483882007980842304662041539262148611923089760153767124717301428042198452110367118313503092701153365315184930820297314327695643365824522337698021825895418000338241582066484604051436729603469041885860354383597726017907294815025560750742557164978914676285537348958059140006092599938645733844015421947269185579363863548192022965796831100007579934422828452700006115259267891818881715315463451038373862076288020391114544226947066567021891462664184045790301691154619605264720520887536460199960421665077855395532338445400554910493315875644398164878539217370622874271738901703057901740128905577238856047472537888846423638253686901864377869448122845387852518074431615335590133792074866123854057558168842419607331087522053600568039783509146230052622292061164110204306194267147655803014609812056276972024054762631182364375199440488450116458546293861919964066062100959579403600159907154854103368330572494133425333626483447956581662840053043146001987208003614473543244957128775156038985650452257066132577329036396489456056219657584925117001279892938869531085905968498860436093613320295848496434690954764137046038383949348011252556397824505044276833439070838140780386079123358159012076212672442362335094471096595720678206298990578004613573698886423936736029008071809916566546264004199286433478080214096527080047863083231561189831807353954075857589523719138883740169940939877825831776927373580364181434722940966767821049871346866143704894863568001961776176935881646593724944892972195586810358465473469961057348716188901775587914033255958368115422460661220262831815890953197999373640185569440031432249592953439644365226288708107269240947482936977362177396522655507524368630492947553328346196217741039877146933115946986742780526402527767423307848683249232416271356939889659216140110448853459949849794197200746193071931478373779565909298768309453962221845215987461032241605120480986934429607044740025949481833641629800522458504664351978668308036178568564501000543424173914155575250964250940789653824730409098416567296802287709657338318946408477752576903194147415787577864872986901876732149555383418990391350586109372225696462632238007041846491111038888826902836426923437642636730357418245825303328745245747867655180980276937930910358138411864259115141743634110647452810010336512690870664040070769672471145136109654726317879567744399100189928463874512665770083979602488185437674706017272370217661272934540972541477094200611302684152640402798600084275855611259934546024297723331671918528957033981879434600747310667981228589976091392423745724326055579568109321704925082822758210538570324401077472159492678387383821460888756716408525363776358018955492071000644992866041324954777467998100024572628401068189744652483483085394262373478014332915573445883808606067993122475569114152546379233133076612691226506779765544514298625609194260487377022723378821110034548322789471937446541878982868345173369774159591621858418488251328348195566520519904908802447890859588362826460709347285240980588420743235865849196421150844165103087206464762359694424643342471094023949714229647653710463959919773212576849381099611225211402473125478711515259592969054865483365158625740590504687193727345355971639785540707113137659013722901780572986597427450191808156331846007787481121193611995750142455459276316612024207950210553937350475566283957630331743294941930792384408001826165960005166314169841087264445992147022258600487043303367754912236416153204529055641591004655515545731117790567252591715790376814906318952947479399417432398958246000069724640217327521639401529729240185990254097008560918337916280505076723381228192354678064816102091941516006277345034928657114525572202254003559659386452014430868538516991921938559916595247775083150787024231762948686553968833448477706079913955594857380413568032260900982688670342540742147276025244490521293802652677432890695934023460360918077491370931985374626226638497403936112638981149693889521059850559036173613259414376297859921460491535437416398842260495033136821833151363278977552654164867925856580684999639742086812723811688772175672861473308869328780811051362467865559837874312129018705635223308646480508402656616609985937028412109396039466311200210851038245661967843000288868497271482945408708988028487513764628812177236978925447003311578371741893465850693346784417900429927193698381098887088669150410889704044268362559115063321037913154753388982681445699205359739782423078574943974092909100382487269300452133047954421342549660831040768703218941961464363390550832640670604577938128829021167076181588147920495158080970169725505664387153456055246397444958143737602819730352074189248705180720336133553634926215917512623105520875349745319478012823959345763724090268573695766585400639433181681055475948114311003286719937166658047498067912526742477557484947509464175677476534099867259781811900052589584221299804989565482106053015352675389196760527357148664700879392264622266551610771612424839126274741299064320076659185691859345797343744694726617463756228531756564048027140023654139413864396176087125133924357087929552388341553659422029312259709814242469557755372837477434702724534191997880836159637449481076756542285214866616774626271188889345373750920841088829126136571462786906392754151422587953528177807576487169496416574458115846820800583406746005060559145721511342946603834884533657567979108854206986065499372853313504444901507446188204524661291484643543551579657351579219905480782588644130280480862001168928091652256940063662876638353410557708670186410144175897363014437799840472346047482244397424539680696786187898899376681446688407339192097066369822817877024860767701197601710394318901339104168939019378454621514340942534407444269041413005114613020136144753864207536407029375116615516164165948499430490609791704830461233829918808386582784009432414393487162113745337125975119243719203874831190893893762159788698130098886469936250073334921869164467034875407913246909412281792764201502901496664524274600570884332419043888168161513341807906951634286023838618734484195048058622674273508272462039771329770361861173787062112183183266516776620644116644088653804314012507556058023492749599770424431555986956378578843453016168183228623775930480691203260494689433446585558798658131773194209485928810235915257873378624728681103003625390382854451238493169119162880350748310459492881137615192507883939926010621919210898418078299588604238674056608860800549075387243955106768341390847554372314165606374302847748161221194011850275215480693077699255457074647079674111037539383415826199662003042502236042590777004437556197538330521989860223452635408828813194999351690592102765113882574552136695380068817077742655127314214058185877708472081884383556476689523002594657666832036695438269343829000527561111485005908991453314658182588183153959407176067671642206164795015473962034379368883986839785022519172625944309635437317476899996386251840734562394610651482518168456677142957831079849881683253796944166914578576545320375830012823480609313517949209144710181045888602164501901970296110489077673460801281112023887385618836161177922514923015813878943916782156249028487323756792358519024632080549900139040586396902953758432732508388451465620532486620477875189569914441716228418231447394002748025710870028367557808623868006485877523934029341417268418821311895835170036348727645586840375913384537245962460616868509572444626308133733155930563443794210890128468528129868069980762409780837608798856030286799021096719171481661826004226142443764842656073909820242351487985908545127932507428677572663488239772822676046172700919909697153684212071378245521854689759446007088356849842583363007957192831026799717319307303050032840023555231905138151748436424803362244895152981610019042514247528130944941456663511736247372808601140467958604978019507045364846456281362052956111860273989405563795692152635827977120649522078003460733511030971646277525017561135806136846806124139795579319217094209851224867301010647293394148331741713127493987030273514655398611139739168594499061475073082834689495365672217530173803207835911233922617046890197608681068369205555897139297072402712686388430076764405541536915016177893648797938225909200418861553670205802203278049654790748487009489121502968126962559282104915510562755666389142621964854946090282631401769098958387344779369186348243559564661086026222517382875907232927135643098433022292948518907598582654679276040582830378851098721076232162495069571652299199155455033942975991964831018445469279192435133044509918850399530499163411138261856303989489387736462847945490190083380192094586529854238422956315491143154583720794736079173530137660091358127243216998474834566212628261446821005896674170979264777212016895272606951727119549613282293305337087111842970858238629196433890378894647059832688288943181276786707151145515074472541042206541223536040230522858611838414769577653366505132763601326628118077721172014396330508815835518752117028314261172702721792386740446616883430164459962940780155753122146072337118359820041212999453772438625695169458117026346231833893447002804709057967102532432753456238960548803465154879028040675974310971018637937128650615718678261455458189848134605761413326675545737894072228574577108845922871226377256554512830136286570236526677959435689363456387015818302575957002174921291964802872644592382528708301580835862322588863420099439887063880611696234856859773425178810873127459876274330807306496922834081933055137408182066499540736103245993153766261907672650756942134319246653510465791238662432735167261159506886837861507486275807899752952123574551618164008338143431045903310344496731885263610270036497416947171631005181568036114264480258336181040908551262205843083726072771838441291165801740794892510261208803020893912957725102796101844560925439241474434903324480699415785001651095494133864944875756002784972162161498706132168109281965453422606529436035349036712599731677074596088769201055458009281401085817148873207682648754423667602512291808224587004161585770032305184484179167185088816210523808164265794770256977111759622216765276392231811120652629999544345840770510468622896949351438799454470952560573896542348134570310825363336937299205453734915637440003460318475067427692676154062901119117133327019541886153443186654388329574415088466757136952865037342495069265158474342149413758568884373656992620293424541221772971794353700362090550308216952388902602038983498421932618727368371371145443012673823930283704902167105494824672720292984935065489841550239029886855305502553243481740685965631101520119914575815901042130679970372488206752887981990589615828850852441244028136732977521651149318504207580821247381297825562977034892438975394208621272743807751970970846382171300610377183781472041877497795325303538894252856354707106168988271258670782319021579452793564625579006515400182632050408199529428177109579067455613086149031771069163156384673587143475765095603805958490968910065648446794283804438318841038310619968824087546318527802579185625041463788441788392679394294987106543530360776172406263691323208157103265396327463260933092593955715871509396049493203133809169974471252639300943700407655859189091301506021693948503806122461978783084889652184445840025794572442294779060101670060427896438440394508165207867656207695429673644519121802776482186697600528354240541292876744914777411062584542392096869407597151840827830962570695657786469524847178241651389028281002099972031789594795396833249021694359455114994330713606826272776253400611347982313855886985017614782894539845216211448748773320420414004305872642571330883907643171359032400422182353122580129140817280749459295452294975960135591504196375615319750381525323813465205461765510583412784968601639999416237829858881435573927938450539463993560233871819316363589519397832060287408766926611558982228843343136873507627862634144998749386610542475688561737177892794077922214901690194955959251107775214095715882108896823849263351901247483573250918261987790349548291738891839057273369463274807256435723750305406763694095076920141718081927195634970764811742592195453817579028049041335573004760306032587807397648077523649898989801667404736367591376061603935785093588930453493883151344397714826427071041836510110945701922068558977981408229138644488722258022273743971079414904389981720361770222153058632181898888656409346493010635689002475927355044527314453144233874605271271113561091652067270970412287919051312277526187918537298328868330395405407624586464911004575879776815950563878094249186640398671322787073097132844983141661845441217422587221325493289246265245213374958117265448972213853358844858194897561809815999706511056086680702974544783672107396216888114563095897465484703289403912498717272113961181017485217465076799791125320480952794487209520213665300327932460689877039820636973156625977407214640080729513580928238229135625747942998455076536474128061922914855050920475743633996812892443880871151782082540969332624853241582414261887968645346731428550824098650486906681168850331258342241921581155805094448481563151046814345452745646604694492098346484003860290160750236062685465013359768968129267982067553114884315570307468601339684432583922766653684832959245161861100049430236112952630675953144088756558531811471151622005610766353559006764145392150041600252051252629116140768835732993298786812986416972883160646790707984745741183876630209372833839338681938056760463400614484952156705054544802801947255331646702907764087988830163366218121033626681712747440603069082841220181755765012194065662968812955465538030374369518177590199086026281692874807916329249676909134342900908786968659058218121537584496079830372028853883079962418858996271642182597700947219162421284770967787237084291879626593376389352757789798706666071194692045390845865997285911880916420571848162304573287244745935986920182253033929222124877464055279858586044587943412438523467174067426659192801248663608015561070200339471053034621093404951672063230145125349889819161670219775399070077852557857963046915328789125966183911931923803559766202009153971138038710028913083734917016741024062151044185746773929112766782008061831761055341063826967574777580197905468868874939503219449050760877777066964024177965128733399860244111420822343056891679119256433732352776774815716880247386957323917383425897313198832418308319375651216283349622010415930176314751427768267389612350541898185667378317450215504186827042496172971828292051588428833723902856493523481681662009693775888290125721853418817551428832399685466740966893499094173957524928065061810571637360465692459062308766910956209985666059096525644028591901236485238238795184706120222835781770555559984361824550243627729115734615660431397536735748367326709358749574017641604093984019280706212501099281767580198251355416321327825873504206265795356603197220266700358390232105770347849509468418645875282762324741301514496492974707675107569198893311883204677045461831092723809791183076726681996881355055967227680134983892987191087501640347590185693281427577502612127956746373919604368953708935781131299386099305065152502516912002918778075093889399957051822245372811167854204498207432821975778144277290774733083918595632016767743773138174695606207313599353166139390236078747038274232390649172824596370873839452790253740825683269318271703107215707319082176515934473300160668908656471013833502919495095499217637785820712311953700198640753623635270844128275053290852475438573130396074483673478044518481288441374934012379787551838548729893162020213113005459700100294288981713066967706090546559313805596092746796124047328594926092131342933435917497960266261747443467805189977781370506451562819263449683891736994064170531113839085641650622811473952387838812974118836636851789664790832850568879568909086728058293185864650706597768855184556628594998688367549779003235971109563167473951031052334050667194637825743765371993525087208569230705670864258106203429604134576152147996977538125508087412898248022300814673661642284281860114338256285057441338168541206471696101444005019721049916090011252103960445666422867086029197960931780568319534874612155486895834447353878177399204526656444951232793890779403638912823882175860718595554628268790169264887362968322709672931520027794729604213740221087031650153925217655258548594610616578177640216471923391320538328392575093939113460763142839659489132085955937833432626855464021342815640992089207942507582747137147363509075730763549981410266869783253709815266200942020849119146664474519882550899699993777415033641007914486728557737252891172686554148253888683725836651593353920981951216678473147918763538807959900234434063825384801220217292496696628938981255991777564261920925106695806149541716650340120732877573148616597104306427818308369826440179891921038261648674424196708172254899141358313534019828080691246790877470257466693271602028047939022885165336096800570318395309751540186883768116499485600930786122414219565153285915595851135917881504392993053059871511498240456798269261763894079500760166506154051618396859373400306288819283139861584954272823965352016328977161751503267669980504521038609090372914370483015553477094221058119310788903490180414465705669011454732137628992809817502245334823882379166529057028624902362214615995482320743511856106489730895619912529806788775052105549865632273327775925730345046539479382162192273795305365563608869195336503256849739365903554502553619540478302825316073113316282382148930382773655571149854292990748981015577673152965402793565727973170375837861173481588766467413942688895804778504550474611773184402598370905365676022006022518611956380325194651325736689053204179581247208541493618116990401706070842792293293277499239048550244929053996437937385107989817864346906734447479807249239373050916330740593206460837796444726729549414398291404032837461685769027308676472001327680686771405362126413032361399466204429413128122947438262935458704696117831601796615613489033775390893379893884300375853057369125696991377019634222359452039525670091086449267910183623164753809476831038785551240766233506203509474903572582609601358857087390868189776265645281138255704559650687438993553415970589036159379716480831805838609873125841928456125822631022927318073914547621281644153689403897384927449355045535673485409075770104885575858241261297936053393741225356793527949129452157720390542514374016103367927469463023163163121246187274131350083484630684048597186322521502447698757084067179693864333708662685645436802736609253198916245694546811341674531159786955845119405668402286737463668299204267733762540435476800844825394881172279254891159238463450244386597718665502223110264531822317024177105058724231145308610169568667670008186248132473408514353317703444852150760762706482695820000741890102932821419718401281368524687112430320894197188355418302979703845939854289602009750945570289279280480441745155617787509407020811062677557063967370111639002881446142858048566573151506119435448198278012183388578819177304922980806312743172756693329798993299149131825449727025230125525896217816127775508530454435716425982853846344979699673714861220302534772198992337558722473146055646877283599319240941735275018707715136585680870464814710745450045528485318963345047792050729087462756985644670025842481718202668584896055239547099532579023030236159400001859462755552246639154338350054107228379027742907435091123981461154558649618267381767845683388010012124737559000655754434069983646414202345367282411507880403424231531294314544732563778567257337758797702670126140075828298040293132159255034918997537588387430774702043438506891176185032227410116980845785885260129882868120140673705244251348688038578164171268400403618133677866728816704967935929099903968864272688586123406219605956660430543153286055754519078454202383863694261881974785951324895939412936821272732354183900151797020395461367031721072468322017199521782653367774022935563879687589831100466659149674481619280180660174758981137700597107234941253770646445303037893869055115655073956176631890779792370425424279199058804043754075308135017225930504120077426975725172692286264778823913931254292133963891629912438028015633139499494724320839712343590259175016018435360705602541616967900522230411065642489429653901516771975928744227418822980486922875398319716505700621663084616402500190963927547278698038105794187998814025210844228394174573684770257368200500215513187220057454470941846643075771960766834000631902806306487180179840976099062231087463812927957891529104353748679806895675779144210564920744958611757517194294018802242642404213839621322066441363592369029488992233879592167553201161793301735055915611902662787295929246411477538225651933269546584285106591675441555817806540726666603957832520759778669718672052170859582329676594451782739362000163762687536692939470376125916956439990872085971782281044445450473887036073496540795266664095911127386358381436343147803221898297043091591033184237700776665347504412973282892033300832024428212752668448653543523398492321201525558598504836609991213768069173904707729189545046014546461193023216211348789530756455113710831843966380460957605491346271894234598471999944064138647173189482732495796785677917824372217721575443222280480743114368990538121437583534228852403656903954946151568385146630877548738164423703324787245266764872754389283924475817602410768431904454863438644958899123465667225049103361358634565788951946642330292175761319171374569066499883589822461327153322932683611484460028436369329269713136699196851910347976667339125850571882087988796019669829833837840619204469709657148493168046567128357521549287430650969031065358428756460239762263378848097173319394204231198830224650839833555549207475774890135567086353111723031590440591725645207482784749073783498366839149758566218368275953837787940755732634484245959040704003660528633019845322602142487630051864789152490144076500919358012760148168421012424599318430757550154335265233126823402674815729258869358773864897332691981150069859894974128215481551109489020319334171117256939839741978855907697591325942950699675883646122399472027986744517108098246473413345959811678899532654641424790738172538742483860416645780982971906438219107938052131297886248239338880658731099829747918989307422296705250074619735523064870910366639739397969914219817318498784892789413232747786197532007306924916234758958951534371607108081300100383977063438875060066932882110831398117498535723125377168079150577187296473036890347642488278275458192014229219138345885114047111360517033260133829811669246704855171617342729638830073653905500542567504526432947712375974492203919990836793954981967396343863450686597562705858471083119464401400278392178769574059374231410727517126434234762828020424053470726121417436301012325948459906469429338121966835854008637959964894418481248620610896385649177550721109062103002078790061568040985456507760914753191728669419014184453188845334230008749581641059066076208968231621997112662858315152371127752073484188843005288370060018937444980613017740748263161041778129117172319203823620444780408348595004649748997578179030084925510374100624973302861099008260376830363171570841449783844373287361864564545570580519450409404073681972980469657812964390044604035869961748957619837383430901302786988956027015384352284891724448034174591477524090837772086755638398137579951000642916231693332150880809188141789497880202314653879926454445776438509759716176590590926731896635234841160771364129521990212327754734883142807340664778599817448489392781297726506646042206744002589750357004293581867441929653095510879727345147853745846538441543210767967227674233130315354454236062142523747671256813951174916176314934478083948797499785818096578744638904913996205047371071975420646425872407322787436209444533535958996874987659403126389401923339094441267858943832019190875548404797860964322732914642630713798897047780521278592475621911319870427717766821947035574764574331737183273524981350187035094329412778006040328933549424881733435899307625725427154264527869625621873883874974922670945795738555345018159109232729639267142132238429976366357769188884732619292084466839299976984950496030014843059706312876720002548677374213117704665856240279071972215176284108677043867110304941749883638936393746335133779246727656233072928700462038373943587718958631756720408408031858220095106609471961324262479862252469642893231205492239593002470387096949835474899453369155910084046324487827143061816553751747095472137137705321480382820531808160045701165269454406911838690603050061856928583140328800150061728933584935158619392670107185181524717819939119378377197989080840733967856053778425713110596238530055798286222724049348036329966648123927458669843353150306499578472087236972338290156738674069965715826400172058047074730279787806382594467841214423619223766798449079519082242636295841862332503232106527442315854478887415170608940104210313158490462745702243548230550080962195758329061437320974671318370183428656026149686622004840287434087217635302481997104681270516368876458662103898284472431366826754889045217375704155221857186800039172314067542021036154869686707967249219311709517125395282925618993673537211917399343423170726647957858363415169197450067063012085697882788518598152441643536550205459082324403901899932932779554004618331622507035324815779642208738129211116204317828575232359325450316088700235507257988002704273698071478003552914448636310615755257073450408007701220354898164036112412703826331692489347091866886896302597473882988225915885182570978438282339485535339316461506234939357170740779317824574691358017992922662468235151173637023527248056788529947756898717403146193506724653270319881556779849923489375257165583011340978638116814160820355357656552684155426593181105750207615687845389617345837189445328072458003469245242592571848524523786377539359864045946046162116420333870649818734310677516549531223248674850456717922143522234361965538774673740001823439743680524696453728608356903694213631192326927475276311651642192619168604555017965230318710105445242150037457204169345780709412083652557006134194853440328778673636905444665810340275463138875895669957577617288023211566601445453801095198780250695987629333375119960246447711380513255334625506890432551333057623006735909301803265322945635620413428393156982799180088259285624635436564220306007568377366352976054310314083888077512742430205851651759492345405241387068269093463823970745075853438919075375326707130874223692695096750824108204201051589275975837719912348834560736006736544807296180326566864630666912075690789193418903636807636858081758072679926745538193234427844852234460313918725830911848147638056215333259064295815051437871334577237868820465088985401290623750178169101572733299757220456778836732543034984445446539237827705075426065812323824434101753951053862373987262001798661506387982186272748066920363828134344638160860419570598793994308827289357752658799728877363260263228523222723317949915229341100634060396168996638842557260158539313591365463142395850989934354439906069283580088172019373160902264727941314771576122834376661435422783892362771471532714662467754156973990340768615776943919568021379503156995526802363245659603704806902576421925038486009016763600761633165103408421071463740044202832858192939401605229735148497878903576932426078187364089602706339884297235382026020886711489335729233866917860735772098204812805327445588167478324324005054091753078164600309180068871900752150251118247051180296173162251240243691684316882904426884748812007957544181572965667594207198468879157245926771299715400678309443277089022588292230520029555285620878279676511905819752076353319314542083860205366525600231731354492688439984821394965797946882199702364534996590409070013830897692152904324445621736435676003696862589928115100713670443331611078203657709575782889827810312970565936329664863819138610093533892772866771434845519916771208180903917447848373804508345406217650993056480695029839964418729877573030963777513595967230448861696484734286338447507356758456903895254982067427734161494771208676348033272869387151650939337540727985047584462120606967156272397691812458917417453974013969653630050012653494512630174289572344948848079953726562648663065598355733404884584963107444686906647885774453687096903523974247383834292812989551833082849657112248042748580971715744745102501756367438619204992256800179575283828161720981230088840455877434718129719498799056298777802405666732027224387379793190845573934010652504396624892263345196560302770767320435175382837515473442424426062593814433584623058030276104102154927481109682921182160726441933432832809210519618725258382272902920285956334255919066734082647446910818682100498734825630593055203612240534279415329062212112206851345609765162224587442637893253373263293478789098904920098970130047043554135234541926891034041850297857658208243323811096963914057910423977052437559546466982288496760497103018738829856302941640670022261240914479805301946924745252036063535827247295265579374978755605059573927017542644255813064650999713105977848398770310711964822886956019818371381860860340423827415595765768000353213511250797490693277755862513607960144589497860731493760999832650619226391504798277899268691767616420811463832473645642270820611475461275335373577052558918110536706098588981379099519810462952098861369495243486947428714778459304556522953871263238789302954517524057202111691941437522099711088165122367161563189860895110203287716858000487309694883232564941272512875258585637314676950198417227854876170284517765723587405807841569441317799710273391816661240918200943899542763472550470717002110090810311666001894059677792993087591701643986939754508873296348748675819907184717431343572955824106885059689072692600359018236025470881585467618550874507986975170646859488861303814129593539154585866826852944385737107924244568172696090106542947602005356007165992253153656428634242892394715574175363877084742001791195966984271610570202367510943311327652951239170006205011971706567499476568157513390471229738687132432994634710521476896088611140700071662829828543910430934229014423917981255754336857906217964669649456664019012648294129707315574084826774357555275725207894585785692576162958965188255446555494426466494899273763001181669416440371531559845401994625873086077225902042158347666748760960667496513678304319872708323322045917195829547526879383107882833453275649114458379312693557765512733170034997593363433489354654811956811485876152756272725370879617579731336385274516305130194446527246750665850573045685207051500507366196261129576827208154336004293742471557598106487032186860591588980431838546572350934274495652575346623030690362819515077163388980821615482618240551388034726967245027277528198810184248772629765102304997354312094405590701827096099420233744948956549104218093274496680960426653802045706666971385829542618178860025962819678832550329802840451805995202905358140160680669937862332995740775851562594374154771256193806522322512922790257502001540923948044823651965970719789483065261758125649871258991439157001075946834634251124048562356040301866334276147948979219686885637474895907672866453067380302957296851838540952502655228109201429163779115084727490670858698060212918825278664306710825914744330600596427800081590851921355574245246276530543736285198484806023084761204421084321473249338411368233517807960356914774452730421915125846151026562507041384117443664155569755437385584479183565606841477056618550719387462174301629364597719972402719653193605908168420989973613419997943614306136151928740178503146950598906714057192149759857198879436472841730246231746647211662733038260606069778486484870100741385147074594753652836033028589466411953137690121412816325034031323241191744462848095942084506412695349003234822061862726738770468362490533400678825174857323469204257712951560164852263295995496119294844515500402490348753861868228228830954951678535241596434567411668278094920848180078593553745149773381722784076487440365930094557400636995987243847209120193321624338023775124541141846606803463405523544190535874218915352487327423511105808478120916373058253732660573930639346251489096276847726960380184946734560642698214353587910844057188731514525477549386417621867453286640458823887347901131184579180795021843077484236940103140886537296113453076785347227543038109006543306721513514712250584941695965885550355859930867667009308897694890643058430947658314367820158973204362366798367666001002089459192162020726984539483069071695014118097914291360551731555531114303034744353009453966676413398033692667374353665149491380564416768747518706962045661734213272068115167615832113718088950065650498545597543160623811623339776260479205214030942432156875830902146163748582973283891098777830740115171619118972425192263655186044435114166551849949396024183361444150241588631716427358935390577341071926919116520610422770443138298629419318499456935997041574322719628312187148043851682670966446171409748739173189174142976705335529614038158775239120911952666180915708310438172386443190925664383257158625089620092398234284495908816405674495976198702369576192389648848875266268925070805622181020018375242864004653422360348949244072741623319329011338136486382936987601643018585144445553434926347851644468793192520299281075978612828782187309661705259845747146745660066450333049601146038960615084809295117761580201867532969839746358490776784666907986390495004042877709326102462609575966276286197690748916267436308168232347692172221332222707259811257829400393801913184544020028065063228838374445716339196387554684646750763236105606290334470398909780106529727377997731347387000608079154331632496302181214410696411663406230490292884633550728582075717357969739786941429395229980709121512545408253359123552147632455186602677381671483001372425389635362706371821740465577671644591530914749597373637615082029118853906307854758393225816010948430297393075742560383761913244610918131820910964481945852745468963926195487538260477605377072121916183586754185954250331394879734548912376773983324804824835219427074775352924015495422799968529762561830055891580947343237097785275264675153296939108449788074162480260461698695097101522646254093455385071724998106323535278006400869477336367767399729827479953101722499150631154942521244662195122398660055156904140132595740102059256186470958721167439830174530662577058076679742272821710204247028152573079407147299872119310808220296577573218576646861755619432774911978783974629118422874955337131340129284067085505543945078013316771025453165030560230287604458303312378975335054627599763749806574471773038527005855313138850015149995749002350859009716056622138529358213865162257410184216438305848380241090000273954115585685730098253523106754862317312639522368914072487391142673743362227947970729555243448131576880253705771162158072303504974723185184835805916129115201786809797400639737124692590540365873500250166405859548224335356583166179375993148977213145585597399770180546758964321755846928571977040116856338569082227577993998447010963884787821875120520955637776321037603684527553957523380280571098153371458514055033314800135832980301161724980630683595065926673212736352941928895755948502815151631584658487300453769574749311943700694277971251393387503969877873118915477294182092824155819532990218888246103683102908172382598355192589949032772775027193018581076514771071670568096174685281197565278989002991327713288462493888562367885955108616862867061472102771103551516462079773275851399742751595542284448086229324370295084818496008689094022438097358566139421998269772860363836662434511845228779532224298750874260387528736577788858539696149923217394877002823236021789839750887351043303478831383493485344135705068373150206762948053124606650457825902525981293741834241379932740328368166373303183396278614720604807409217937984580829566606533822460477327938394317349624859848368833192968915993695518897824815252945203803844638612387906774092098389555169977389665433032149715704368348375431026047171438424868960350504260590686129440605103013745862582114095547821258384679019261030861937984701362934257781645889027779510293255654972476803684601627509134188112733901000313252850762874604569507510783172948724597510911012427966233972107217551259876732564232356018682805428483676360176514024371548457849095840017498269718092711609160553936154792937225057069046687760917506248162585580162913383798768598371881422187908090514853676978557336437979668132990038658969005725509145287457789939400072294143369728141623946921208483582674196679776615910777532200074558320166364178227178009637845585934872313285808412048548655349705063235774171326797006158030454210993360275916528229509086197964666759573610332772937075983821779617116776656599772754162165192389976046270519858855062774898865346863059559588414544941870964264385506371425891380879808619800382542859640371278334711076257503973485240088179041972315503246386906427938197060250513549891983120474311475430091530206250980398524724767069047747958707557455260622739210259517518344598574790868033679783409226181299375132860454080807748897083542338839568880955872636663485373811885814072191307178333107235955519656546308556681275074107865328652214295438080707033559827668257889395452293781057017269568763588372445774218494196183446804186231656214595464385857573566128112579061070870770221767946159410006435916492023829752974621989303051523845138807385457700786761068711547104627716592461152233986463609671660373932119363064101558499235261998359172104873642401398964899680778741557298056421288015331919241782235618437365201247067211936060478492466527251171988117454335449863167312900565331352497207284378979328659821780879382028480576325051700014869430220543765582672198981890410529424342779982687306644175512844960828245272100724628857234710163353139071420283097187839290507887918442610822354936688567967612526636221591117865282766009010372026929381246356476568257952714960050932722262044343896489276788647195878685186014339052969103686119798965875217936522508720711743219196964247026924505554188506789095946326245055957418152617748855047667851711272886822330316081805386146291486764298561191839815783024065763869066458090904215810583880606726508682711943359769465676045193898173572342789681260474661789436208748119457409916076170949092366711446158657977844209264091656272046110662164003757096327883738633959098790444412564151870726491421685663412834345207400550795848887588958284260098031827654688522136699900902128040922128079561308926236271272134599255349695242680163409887660467600450480758187203120836458679020540545501857520877147532561947693466780558504507406057436258419392405089393665538756860050031963507152981818571806291314657729585286525705391824446346576281905119380501956483144925023687300193102009730193116703844037763897287338217173539121348666890994138666919219849331523222868345132918750672588980440615208314004039275269701822902956553339638169413460747840108716490921782920346872258862182129118481674967314467759018711115457568016525496617783473432197562429707294581357476495751737574467169779458541341742269973462875900856954499250478068717440647213164360896707140461282682646878834994560207139504778444499013131327151016024131572308128119027941066342495502160960964265639726417164255196249414813794432700431796566168891236840036869889532722164179564024943259795249022544926963571828219806283853970832830952946195955141861932700228631283623540297459852073223954875677245393339087548069189318174185207312214084866416563266462040467191438150809553832888055408833429974860224210355368813233999477270204803455687977176492315723892490890268902550049683589436034079740852093608867348086503729103591342863883126989140628411409910936388178273910214861714292303276547897998607063763436535055371379729618532194044684372294358926475784883402320878341500905169520565965117395458824021811274151879339483450265874414283352036284691665295577746958102785836322403632368435583704324501816383205017086983262598208137644333300092206119719308111401405007044823993402221775075618798659446663970473797702981541346613359760793036757743099554877019296500395115628476623963598193263970594440317608772897900661765568606695687765165811026379330652429769650101940839710017279461279233158299539391111157051285407670112305724928972379029230391053747783082124152145721033396838189901160947230521898718234058023432571617268349376758639510423654466646011305328965076220707985763161828024336405547911987330914965918958961208158248070864921845143537037750481916506904484402261902673319397660130779766277062895178096203554302266475115101773136218169638199645004240453166446394752889846019568040035127733099957940864722075769799806154458318045273800225669549718342919301294894500430043484549016829878756121500040389431814367778757013786514345569189350182365234210395756960922259039513035417900631249113855486732183438088680315694261274503325612202392767423694937340087111402572722650241438463824306308629711707817784765417587939045886848047502580178875716327681826295938002736254887690438266360423979607675364053532315223624375209738769264204001418032529531023954681437162903518782287803086586293578990592020328708460594475345587650327435251254534532741047185917572576417279727711711600960699695430980886094091965455517699834151920085989388249441141888455599642285633059444485088072670803595974941251214740072843063337150143290820387173474656128247953562085659736739480061667026195220291373655754307850469877453106632053024706139507970230086836754945051647288772179705463681346755671767251792142140242460478874350629171997250925328468748353928801145071065530612734460906020559128915599687678137569672247461637399596068922441281928146863818319150788439427795701903860814881804784882491452596319250998955511803032097974104241201296275115248234579170626857535815962427380721776481339724052468821556205941472735525058436728939671708184951421497692746104567466918184949033029512200323788149635561259906750281671544324530671386780390242016870193471821638345446622205489044216063899637813971743087888036525677740101284440562005584624910028725787432657632345958932383980416392093715229834142492840300647800598927641256480375118899373153060307917449483989336473367727710982069920763570368494967897026381632715541325248814289000298375716340113161451880039574644452610781091539470810519396085137870012149822874686786212069674016065394709072944258591914915610524153765236383780477783139142717484604503397968606151380569711996886596528028264198009820986947775739788933081301951688441718575048792632176770827093438470297857324931821025509804519907284121264745705635558423713581497568685155452279721064354193767033125930102303296271831794445375210761234973918559288603657486088274290248400610762748638792433956320708218683720279352840997255025469199336614157623606049724445828792490011777297032913280961201542916769142846594917528156204138503409021640485387989127986383960751299149526378302370051224187203952841297229151179213677904220993751390999071949588156215476246577052797194752662911149856003609374055704531724512040046350644657857646808808793375119800956299736653814336475701912941330489545819904101865152595132674480501820184578982807668578390774379689382149240512892760537874608534736042133968394257702165062950352509281276994103452681700337434794181996353680480707636067912195596266553129594159777819437484492769246277016582514939350901884999058141886136245702167488541702567427261363181131498149004853982397310507182288937533227193005554072605765276657743931304098784745604814160191239420826324371023399282637545204082663973321164637504022876594561076158996001708646499587422052795936528877327133823070923931732137008147758649842445319115387745462422761379976784867799950198701767386285191807789101916975304766748348589533869944233692816473431053795100613421820063069193322701286686894269343891467633660827878438751157085352703138546522582740809715104459522737712537503300916283683266326512163012194576875743550734535602935592920011605810401548531086412297540013704160646759746011944367828530884576786644693170582284746749173509186851772211161956621243536029998559325835487097704564295293833293751697298164118293369550578614292468899975076604861888168371475199411058916703135186445420896637820245094291521502416963991631416452093705580739342160190850517864864281375933443427834244604185074022226861831821639700623725284137505936561818119008024572409034235922288842405484331894448933576847250878161582569708592472754215305841348496557062164610159242839628396951647586030107460762103295764791436427200911445690768325299145795122344526437988347042011336454245164165061853461984769545158833355659648580573212492790984043575032729458426996677730188966804714938233678695735530777327808542137552327893275020729711490737106829817611156472983303638820153099931532230717883871812405190904679220635984063362929308618381157162051275685019029518738345179879810745688467645777628181163142554940201004309734758956019290275548441759696279573654154132127618796193346750499464271876108134398939586514877103357492966653371818624512933580490187747240933122840282566199531659959792472405945533885205925810216008390434517057647586693681807053981471409230267286649613943732541822333342472412393631763916854259435038190727455269429047166448508986135125335622811906403312144871589361150280937852970009726417486842221950448896599611545550044445321314521490733760883411601538309390549836139905417744427259563885860589758318993658338284976446369491956796202631725426873552140528008887333384124429907014065277959598095107086300638193437684195965944977016746840882248024420289593770731642267368677551913641536606986367224922878566072943640487126804716790729418951717417077346710653337705601948176872348547327894346159630266281391449540931812504354410013680072081435786430779045173726257905307831597784889006407358460698805745329682143490156471836436794364352960442268348549506572238917389655444061088352047649017935750648580983199044817289073918825858178825932438938173345485162407625227596523572486908339308902521703873214793144068167823599816120401021739209949178550010551099667331877151742199223092957745477025068605930140540537897652445972076611448604484941210168453231658390049590977524308965218646010946238058271017995790188372580325836223376268065255735897221852307443999777941780526622103337423734884332906724033111060596877693375641032534744957961354668113571189877946613368121554097107098910993304030233543911097794701502707440049918111063399479296914494994053188947073195467519709186911169337536818682245349689157560097739671305485538334876438515766956751290796475467270210364205551321484461792941264502132186155046034565724335999330799157807005614097136102177881969865735939432791957214831313161067045216562873983134622818187915062206700176744583559120538822653146015548360808475928527450137635468659739885418560378645090721356007693506853717372856365237759122073020960356153885457561978002156453348304854857164507287881804050019525885471741921737728426603801016928890417928180505171845131544227196600662079811827216634189032572656874621696786858833885543456116352290126816779392511709586407057692881462068763167961704672399423638939113461293578996959022105628339798159351505502482555905228977988614110437800441373960399123428904324744988305773037244536917456063586859081235024357742823421822056833729794999120735894206212429480206927721625408186045760192288023966843287640326590054764681546399868698079318366880428758462909674968786706701575908474444721791536970100089801785593265890471088839609587767842918033646899474750398507034282613796107126829151365530748376205341193118991059145816989861944407121119837426380486865682386080015640897993945027223162851592416291578604182289322694746626641379482210049397319125422523227826955547243252927812877977792468699893975053913175438205107483375363992081013225997771628058834094579112523288335642247073591887850683896622533780992499038156444421802913378668383506016219036352582375995985755863798946401807504506830826388256764124510609236072966368043619756401666921019182962635149997499970748674553314617092133722926717580242750980465186930429118181174616842700255992616128078564923318515902756093423344016766718457421362612019104109060092184017378360878138247745488265256398222768478503421864422265191719101776186374829615644695622070168008388582769217278300383380184620125101226446749853060749449208771285052921968416646707943682631893061017546035234058189520551073628876591121662081178455326188713670761709379092609476843603268491816263893691495779721349634183578422395862831206686838795699842760192537637220753817372666596870026256190607443307601047666071874306123889693814512753128753099137603093716046816270885820898784804575045596897825030341937185338267130173218328258258362757116878405727282448455049000000234846748954517573440398854630573735595331762884998349671273329654677215800265598432160578227586736589182830420249479117820487146108536491407080300634851863845585795996570687025265359945691045693462554217743854452841534631504761962314702872861630009391995546692608332067274967968662694541825637955243550995455681147260559434071994340996471587106749381585598091183383710734169870676259213568019017879372225168174167825853607047841832845871675985120669640145805125438639877528184293988693511383776812521140210012713071805277784174821935497431393839897511708205210411341467268291272995913619950269467324642840260659018108329438778993690674582330843732881687083871349477368862042816647730633260741640811456157440009379220214918114937841545218773253124859587017433717786073098270604637251488683336580422767476907148328995438663608004429632801931207963689478942756642205789681171780035698692514587071345565098886145813449798792406406601984759158527605378232478146968740275125483481391461460429407318491510482548149129272406610259568315193518918793763307025793684549183117560531827438975709720449208746652069131238967392710856949854012962213134900600737847820724767314093853604390197353508553551867610087066774617488067026607227658933848658034642672010193507355377221562547812629352072938139192344164522460658721123962132595803899092636891844288675763366505509731720010810219403155138216998092700569826389420462747068941561313815481233163980195128826729801991119610973660724215181435871066379792197658641301401682113352646561960538789512415269324908537411158114538292408321094373499100881520984178307670925412723553676182414560737854485660175561080301059645391849250745371784445883392366941312049682643838473870705494971776815528589128841607265289176892677104979214942586373590031422810411319245057721892114178920157325385849520419967836472001394715268555930398854943706836047661524138989218701793070642322959915823653484361261408821647495479161272755268053699627839839064483842744309116054791039721371504284565730060200512598185167076475454436350248052543226114273654498559729188071961527707319467623629269762518506631847311442536977239994602234059929106510454689052542982891078108420031109020614735422172181465579327325579195434193111956917939610275801716968530435729674377345244433520484166871904915902923767090488070672618372521882997549736302575631417944103054866129173118517660925160603869678664126286486208952657640777566599155386223270273499600021120106580235820849892160357391257098702954746355180763820033786070666531848610953668516700195176146317993070525515999462514752009431609907999614894848773622327328947915333365277018131219140426994240482372123944425559032075478594591774186079886697439876916516194972729907143534108254020991295399944163270387138153795486132087892216751290842843744683101455012918482347513754218483831630673776828174468843464520035795778022266173247851532738560916509897647135636979827249594809212804679823316921956276449315695600647896336558223384629841825073954139249182545718788818266141840443193654982848903430347012864954029551138429621872405027708876796266602858039617207614262868776138007850089011506004805578649849497628620193487071982223543784174774631268373662718681645631473051131712974484672950313744914498266082897630691695558452410758497104765097105555534034642611891975041703166190555174957057717546303594185459125517321093073262211050082204627497590773013499413872417421874090200298403478915953056412309401094191493496607694037174045852530055502834843975976559122666923012345667828431066991588969875026447319678450301900224014851223399547500208471552739842883204930162501206812597177088685358049358703281710532515987239264652954819353346514581640701399594125897248084906322274623328389569407729315650317526652057749953338961943421967904573686339374060570043893719691214409904802738124719127329821722486888155274284420055876569058723011547409798906291470384110104514368527439692158172497144982983541747820019422023780923541701218276117066335346271117093449625927781567755590652763585822865756370184350612841219660836984000796023145012017956945818032062283338986476305227843969572721386492443001871118522281588408068770227286934867602073822993454595968538418602767755433768794496614032153558142686827451732752465319809066909156836844149862640753444301902312376899876850604073115537452532828746533334108272712311946996905843568162467539090600739198038136744951465678530949272965692501377846944747936124454390895015250011407450559484263669840880559585548796941444821108311583664241919846490227584321550696849166017043311462022488390477379190135049226325938000316793274054060727382791631274163269656157520028655313755279033799547652879063181582498335916365745898492354960243016931269769158370508231418972105702576041340628741077951787157118277790871667891423926755394786572909650919555716293691014098899431131910157443872659450262668977573644394029206961072336968182232583588502339705858379760374068570228519157257208067629871149975203156619661823561626097970152545826491427276186693489244734655810219723648505181432485462942002298412863171816994630000049244157329206757756284073523581681818655113273333788969135487589710929299402727657693855855183532567004225348421322988535588040563419600669080177826961736608628244733429547483227398871149797385480020579670944220149467222632268041894366080359880941065015663140771093937624613267458611825175612674649424334528712913737379892730814791026557167888667349971025257384580079032463501231674386605070165784760447738777142154653915636484588412837527052761826551760004847992173110805338264773390300870293683359638470316779080347434347400884887378521634421463213031059010668823153711922827000018727943441532891700902876384601195681191460488538297193139515472932845999626513189882866227839539081436697509962680346328800644684349176648379150284192249047828475220688561972435764468044015087138309558568828080041029410353310730229726172983879338199612113292983247499661897376393988012614665984971407367358675551671216115363819552749832605205908691086068991059506024518684465886995094141307976471374777765000960377620976155682757601062791896542897961495163985180068176458025183506158415280835986753231823737092080595341020312554691264854400696842563316084337942543985494473202127620127994703370686908436450359560487939206584563806722811959589016289299885372029154503271880500530607019355014244089381843441709078973765793573775923506755108377352701040662876023752870196486761861950945034514019129429246717229288004693165595848039072896905136360788264891181028359560992295401801187863754136320692748313052429637677261682302790779196767785548873966191930382926712977025195061646374050597329039696816526690170534818362621747236326195507021640482043199130424843012376291683420208866683607726796919479678746923324544781715591312797013171130295897055586609416178135860456324409690133921061340617056975845931828631188634130174741413476027130613672735963045661012941242398257850940825136378622018858133273633010288962511954571414717697644910114961703895183639019079357809645944438325445212963654499283152434140867179030930701405964272726007208209878533284158101526957684633225820744522245681116757539164740162103155750063523935794417634697559710617558753283541240461626221226022921954527769603304372341489526917130225637681756738262006281291549189779375404179796450289298356975961771144580982076331021785340586428266905298918877858576288319552456375476627523195213816879934084467051414107933603794330485878851419034803688759303513058789352934105132827158175198277344773632165194755965618547004591880416316202147296881755981573859608189002365761989233510431606365487569376076995681995779997034412511984692154055901751385315382777036591667441390512581486628157221514411367138969909224892723531957955450906592511435421178552307327211678101785143316285858196185101219669910363850726485532957653507119079050946639880999958139805792567540562043049658474083362863611884985591404936033018691955562753355934435701609260561711893908971216616121510641175753466345378586695391052154744080366067656034733704732372942613777990898436292129953385388463194660001219732758889306055320337037149077764114293915198341457147090737983184418578284631197058586978726719270713166199348428479544910237070108516864048872924793943645812815251825039719245833479140372464638445319289092029691517232288463485086055261387218084771207586310643267875306523882637655024315123528784732744450651408641488867178880198646795471651267635963510294233377402025263016114017528749060178414897150790563987529888038370577543264567844700509150269111993975361118298585656185389100557744514915609688081415711888581626177208353181152167926169851867557004269700136641675050388274728856593464929291818248740503337148809111294315652909786944881651574166269738985531703939431318244096669425290303372133695044717520198204238284433091255330092632906646827250002579178380124276057833191537167907782858995514632984347775522693305735882933363584022020710133588929733646976580051482528753560833864438969863754517964481009033042811099742215892439859089948345937011116979966998998606005157120823819098551834397813476148904487297832607647496341224963420275609672358776957387637497403235514545445920094877583072947433459269434974290132948387031561079483530746060018394240388762081449805595640530069061297140867319920275470076392632123650041944326539186836425936990839794865834814974436141358081344259219111530729487747107874099108218693396484227096020306976185604723814769115245329539135277839087094689322965005599993878511136031817305463644860284542792888858592569984516484029434616157347779809443110985609671544643969064404898878761466973430613075297094240578121577423053589680239358487050992896482736936091328964498735205653299651719304164962338943312649759131599759789353973778717457235874434770064488609249540668947104125334358881712374245591069192111188310140214588535407267010278294621647504504614643514900788606204026326507430028072023393461867887489331246265709458171888188944035565140819703691139742937920042836471289440412108398221553632193032873540995079583847589386650184895010791918238189069835325273110415192890602824314272461797532216058362476561790870839691399986619205709803467480924863544054146068745520611666356699555085148560551887818336995209756246926213337235977744111236405392017418540421300706896191120036894045797426831254544838043115810063530428627835039043922029466317522759808661380945610201157603842110933271213740937538860275708049716311670301356249171478482453067325037858373128482940920754659537425655328386424241257291252009259199578628333030297800676196084186070893073951889563805680949540291469012475880850103667350112049106670537713714877425046306034425354034132684830940836963234551515730486335868540721886906803551648810466730648869226354305645319328480952270219005686044050537846925256434853806153857321354702468897951625794138890466009194097508932648500973663398058828800137757967140883445521790264404553086286251849883557151294980704909485209512449086965568504315250387395437360000748038288386614791241243766235808833498629754918022771673583952851961727802022142656397835791020493538369154607270796157686351019092999969545908167207957709968584874927082237604974255615419459989015047282161327800939244435451144061229979854749253533627857655374518213998661953164019774259599363569698204765563617755491654693744034947449545682074154548374949714185890629052630455325214358363309311844974222651127145705832148756518998670603087951757830715080338312903202471547054631806322634431996502208104049407349420975861078843223139819134732742302640922789790934830702423627760284508757857282320917114939015660420240426404331441312660053311943510273607259281723742694050448198333623606580422144380790475710811568117039166548278400834802360714417309531721624829855715926698722523244025597801578033917616394838126921005274724152747463520629413836512083628398342394845092210144502842898942287909802252853080230767192663632136800615864292809452011521863063770120396672264112864803630148731004407210299907945576622623016185386228719402493344250134345378753905921842492443068560341347732528481813623992881288892013476275680027204509717147163191684629617295857544863138564134192955737525207131957096351652727858891394007322327196140130236400575955365192038874466768300837720893388543765297078486146801555417255912976209028520788976508687761546457284445743400524942723133445655833341341365080534394726709975173102816131494833371587188709139883240795744840250610538248474896920274318503946820707464598212990960281408759989485313336898052955964259782896463270415016382321912075527349141686297491858525682133243918789038537670482091056415556176740841715857026158105335723387668867053250171581967514065361126593168955805909327697879862472473455473569768282758859645166285203436341847282844674309173269804314930945844804577890906110029431191181479036180977628059610661362637263149108755293643027425161729078091890676683920328036351085624759644564323056287435856524502877131380440634028587319487605661191565072500951427062463713471045840860412623543073308315706463054861988150125777700007778530664251686086585973442784953626370754315786324289969180362898232828335754652605700577988019242497377909943405355398887332234970788678586916479224782215435940320513712653134728971126654592201636810489210593553273159107928939097397435366522601421226610037936755110589353858211356701877643363096636393718285444098582446512230746565090272506031142589252348838761785921088642759360826883744160880762648222382976688421137044153935992486954640380103715609846335191012097128319002965632834068001863153965188899920428167974738442266147003483569712446850057401657822862860646662351024407420077365628575969036592995310011718044888162025309172969261374801735781152266838003513697087379670391586695047452132415564593767140140337068487863110702194564676634531048994409540111748442160617624485334544543279218252069547484907076664901068631637968037682753096922112659164414058378884579286576029528598596116913212647801352842364503256073908915201035125124287489271472022452675381260875917931444988589660549148398330450134403605192100562555001463877852078205819877176544242675585480708385953199484517023686140532623632941845166072732295075121643142082842201096508810675985796345229504347664907370314705772634561337500628841635706419120210965491812265572705456987357738105982197773143253925596060345627982755246625563651443767225613152290982287679230428959151764461001822407267647057421974305905494688790371445316369246417431464990025136523091807950619152074849380250598667970523039023659801322191922542243004284482650689188393239360700454008303693346388333880275945208528471023874235820561677826284961889620027168711681814896373410071042275475265841429005654356174390248053045464194078639492188931473808020213259318092857984664874018467861979197847715063187430085051615146534049085063876812480555017297497501532649356716670270718198187991415669656619504090210493234908155914203189187596974655046572878368993517209583457000173504536698742593998342893793856933115817180990367442718002278505767645358705068723128815704361835606240550265650120405591848540819137112436903416321333312346552427927624846933006847552470404671467913609891144422081037291997972390326341317434726144365002987754412718894062844784953215884047859804113844681441263012244369583286727851261800533413268965673607365707133590813852589417125667282011388691143011472859138994199030476766006123091481605569449206424849877278730546697468131935482173067734688766407470264784528540017649939066684990419855576763225001613162470308592048826350102812402204018667222036221582142912146467658847987750997506723310472159314703003009573524541323625252195523646191141106935004626502038524509322959000684007906608465710732482695188905625640175098236657124488314791589626934745791538210158635983271589256830489273442542565147615870458884501087813897759561724583439626796395482463923216131546554914161826743814796047109586829262982084286616075991169225979787052462878357723754768832165022656832860267214991560808566390286501371503128740250767558572925909554319072538644943836873007471363457047850955619216481901038314593844453526724963039195263813362296509032067421472372234941268506233988750447730908723007843538865234529929096950519145585366176059886482191733120921541746669088571572121545330620347958641621398557622283939984951622342478695030577693787932055583459170134684163525577743714343504356681947922174762032461262183161933375400988306537549784399585958051704286557646836117024247548450809944436339294111847066839673186149109278897710700086836000631880205346504511704496834191520617503492679145748034666052114697770126693487597364190862802760191419108583559506680254611315719778517836467037251666440913652129000631510588380037292458925437532896494322090158082660179299246340256875015056064898541845358892135615019132464067381099988156482625810007353067454834884519571231096566966959357885080433058940776621536832404653398066537915865561937200872486808452830498664335280412673938606393718468387428459982561443318101717974148478024266664322878344420353053494848661943953346543306067572269980107197063844602388418304275768725941515965796421364909767760461738876061799002381615613094792035650785096272063493970085635327471997793137794789134096327291372966381992733673326657050159180649029671505357385327296816798944563914831596715207745132127452071916475040404325407181583988070371117349640608149118357799448239042709381897311238051487686914911467124777017110045976587122754222106372060521032150476622811370259260911496380397999787934155179091897565985803486645461378064640197526154589771876433299040442608032599224317698126328581711731783918613398629285261329373441755530705229800005846932444873150659326032701884727325180183261474554180180242226968657688563144743977099952905524021027406376216386519134376594467739856454908110758819711553505234669912998848757833253911832691602865709867057548959524550011726325050377585394373330705731485775279491631898163889337708035174571050052275520881358399215896774893181568461872205218171812270853287586597976792799380740235925687544683288844523972442171506053484028728995464664167527855299743829214180887464269988635067812498458909939871178442190092629906080035939629982995194676639910741856581769629955805279754589212678427137203217890989028684851582068104115281429034506541709291413309260505531516468309576878650308619113814443406082694610080291201945680566910697204041379720899958037127704215419189964473504717758477407553695977814643560140330020593165347582193765455956117395908610671161352255074697160120148377659056766425547073519485870886732534048636699136617582893246225717348933091830172860040960618909050489139731565270055804875160250222575272725858504651738974971677867627380285153350641338917453576581342452296416639241984665053727687130756274402885823171328924085895576440502960225525404111482900251684501150123414667430472064726642263700949013504336088713135662059167336785755490901087835408872487680003249020928180046666054587841608214015185231448088101246390299586532802627424987924500598977315079195875839087749146309205944377072520505264726609881108727251022166242336625469684441822785099192671240555353797419990832828776620820162341400216019130742589950937339093885155292676862389872042511962812843519883381441861708670936009809492668084415509125526603005794664095692510447672195252352331792541860207308377225524318666687207953309746266833112371624166994719332850369219332374109758000751588110076838837081787985076362979202327895631414522295064221787699096758513987263414772909015403575052182780420052576360652236249547686654665325153271797439425178382602176473898801324482958843087742393531959283840990310347547058687265658014069411761166024262121423185108345426081893808419155533009098466370586454715165997952415416642902466546720438358050212147901240584113371408620174144016039250950883244473755919362033553780624258903538634276973340702181987998698542200552672034795116397184456544413405633589929865343235941106129417648750547701626033693246305447264905188698004849258543540081531825024476156073249011425565252543996532814354778947778442461832699806399628603544007556918188729751086229356003831545999819373363085593821123824400659672340905731004914920419705303809556057780227713947720134918254582361106872533471776178801221416042566723777112334511880694545301676680070569160648965879699110459545780733188291197933535851657582966251563389902822235891866376161955184091398673582584874485671858060747433321884991741502613218017278191031101818952844626085880557533351393938074718994249122375680393741528079446766165896645429841628331966995448204838226136199124859303073768407657423977355898976501810498399481018675663544704764707353015213031692313413199838827589795286898273345682948077607889577895081255521362350573080319849844874071659461715325967859055220490124607581326266228046129961508710937550814554766620877857113527112031815322223363053655374754100985980202226284138507883267598990686584862949097841070679744062581075290832655331399315198803984809505244751765358955280406145397683411561030567768594355161783993962194809832416655835516562958551173771523463585560613944441548784819551782746901721895577701168029441215308526689540296873944455561581198425302831040587368300086621361934315947231937192438449211385718605551768661644564164226647611933084262151283197394696909601968217501133231880130202443202485133835864299251284357798410357683758237198742634061874646838019361203082221976552394800862863184435035436941546570155303886538742447289413881593485929823099494643544006171328803040479012477551523841572612720346787257013933183076240998197602851955027939080815714873563535600482909112960552448031035789722995345911072362570357294260968878054069824722746556248163113676581310755133056821098368794517502307304460255682705244963548041921178354075000238985587868859329230417147845804710535710835721393508111420935756918775860036520914813872131510136627882653386878662029013413718062533982572893820591551906972687717514021564829233750986282088234270639877437781291740718208836105506919713834802803366983063950581535755937881758852012524806755391031011787468043277963501968414854139797060958757544812298813007849917975561444099052555111208263557018958929508715642844161257048963246301662398712246860306739809635015925395071809297404301736034357450030630727371069096159247645546455880215232600672781955503364587728676639563035806475485701860039461884727451807923801755946163637346048176723635122288679097119215940189766045809702166934675801313855271411132895994611541590377881132322508118039467502955408517096513978069484091636045596663113456536807356273809346597244833746579867068204948477814217320762475637727173812869303120535438347406621779313542655205962434675629164714679374512099417961694359560111921581417290284110693756865036204280213411218596746642522855421731094489586473609014294087581766721501552605213369657530420446599143984062802736575706601262178128042292023990618933141979922065254328320899962354804637034559912397404081994483180825933142862956380247026489145526886672286468041278639521579151473391946462683276268711203790356350710595904203952651502389868620000958297824744812745723277776338345853742994879202109715872105297571973695374798923522884127266183579094778594234941350295916029217888137229948276707298383521477832886108003872858507855467549013952891396849701383429895922713103956066186041810784500601409799275288800221385931879831557417848074163461788188865618153978364214221399401178187091822841924074420732767433265300969818169420334389907276804072644971760976516824085226399474643466224010053937301670703746399090861937058914308168858058960631272926093795661493599160484698048670485914765446847022874887408898218842445340412417919517119997244888766043419551736016704210132685054742445181356491433115231773160337861332543306577311570437545073085558258411585243338246752837959103604510795209329664846924304246383401483919235330082687359330040786948624707694104969552242663419513820150298400722017723752427955423278032339337236425283567941007575779091007025715270601574826173689640694934294608951351650567200689932862792687196606540201445680240251778240240769161739832874179235163272534005141198869736115498018298062437306567900792655706742688592945525295986683495634183375834785573738062019087500884121435723438872573028581324519996872870667639362627352308054598765550935185117743763403948581791326479628625590068559855369127936683161550005680734676612307673172892370929671978346274108437230278044535588337721340841053440881615789912549138514151550159008494014830009397730556154304462341796511771945553412476007746345429955897430572142866375074616033411455361402236710620848640863297177960872061604364636266368956221460886503613293210230673499210701382132462945580970577311974184789952597981898377313328717068902578359979716609969013554691684312666614232326038912408684282760561458480553405221265598076406051352290816888065099295996920254707538739080621112315167990758037523930913536438075326599848015307455159792093719738799067422388733319064675501900127533767297176573415744754113854474589139533250541473968006991325152416557149370027776676036451808616143972613705385579304629196352425139809701924419510142355548677637582001802451646493591190432236087813429529359408178385096575464690421470379090168275504685440216107517039681232740271696105786323848074672471284969522013319473157796554567978514604516736969984415458420330796962952249844624819556202371820153079403841513028128129534624292626511309834978056369647244723609685857875951531760758007228024797943597043848936179859991329372611599314340663144752403096137672442382993897007649834930037382242472651146306531628597804288971603490110018023400073864934034816824051565496164766096152966189041958403897002617619500569427680451341203064502290201803707017074861210258892110609848746072836832941740062829556493878464610900074357200111955696505291005201769056088686654938884012018370871401875082878399638149886228021989602288039219815912970606951615455218651280635095242270406574109093453462470315617040473288498087991883115271747974531712419416410256114845327166383557288127130401667674944478094790431636229131719179472947954225128330928974065235070547466513883742511533133510622123275502596772842233432789665906765297115435963294684789011086209462238898792769195608769355208623004801865445866618579695968611668105776394896173592312730484328365044505234016266318631526829663087666889773620516969343277304538364891446615009009901194129233084035489838691696067366840354733306969728933197081342037179155280856783270666402239841333556474652745156574167435272028280828314971558507503054962341380756314855221842989094080877950162638713371962611607446793351440163735347427046449327112207477524808316246548470810194674961878671028839247268092720556755859519112242888834521130988556022630755158669657883039400115859499497894155491928270018406838672304059372727248355238531258048452309464919331083792161512930313549123321149163800828474503086541294447472660001728963112492851902061509943167431894177750628509526693953043075112007275580778842217496884935563018133741509402688428439697383666765074119945484006090588116315245453413162446460584116305788495497668965943027527539646591061773338147429722292989887908991484136784176731013820177131701342007144429191322895625393388421675137662504736705654606070948029461251890455891221808548584842440636736239568372039705035150946144026330148745631595751602499317185680875520286785894020049278524623828588602218512275719378917128963137703617809198929221416518749392339019570799459302222552477865794577812753082706322125205011287248001927493360979924382270033056653164114578182531583334250815038617069316133549772065932425469438173826946039783424874061259012783498206866338435315158705412876363084028707092688329524431148716484105791366624492241202788767753603000306175247874742356241443991758895263904202798587062332540895633004705260273509873896392729315230913529413281705243100033968443067270198639495722816971021971345186353107387338618495248849053703920806803922946452345072497870577906200440569225748806164058949297305758112546760024851813813807978371394074629410664624566261949303471287885466871907445137362269887013225710817197723111226935853861377716042354064939573581253927251298238146387875828591365268921277918304113944284348785626467634504985982902678725817223002938742272566541398576379313396168360945655602877175053534651747581631837542093950589132842307800550672368641213522427246388629554979395632592036962637732721762018195658348648214269845505527414215825842289256563193684824133416319794565650881771940301251319167664974187586892588963228917734298010294215507117053888640775352017579326900276479760845452945845559045179457597511166368345552045877279671227946289013945004479355745679601632286992119686157870671389432921132668533197739118469386224474885667652521712615959595561239535198292075699238676529566943007052539677505437151538468815702685555450745273131060092509735018590719009294469293085068524029208226113819822107010521113447643383721739923510554079291898810922832412037406343460448392857208978433547057211623200616997590609657222741565930251647718320165067901384341387079874094139764538097848990723543766016312618184760195630630596716847727597584962085607830651939821537556031343804103833785405568673177356083597964152203971482289738640025837121571657506540705268498092238976333239830498293128162563509626095256054014842721348270928227101456606371788110197699755441989350897899891562537677921934452000772912713419335963966571302711385998636156149460214960600899822217552128973650288991162085492394645441823995198028224145909731168927726545159332293469678179976291591197273749194519232030502422787188631384546777126529315359428640868055490061372337723284628436695951256630295766393635290545323106017333808648140478700752734305467973705504123968487212681666882037017683974685694578287267765311391953962732791189859590676238702587103138234635772416146474902916422439845472486159397035509103912974983685148037921569737366325578044159475130484622866363201291911646678992093787986610381122242194142621749649049136514219867253993346122444169185602523222604125786006266240457578558179737470970626734312891032870241819095855995036791651745447769079601967420256907516321249441517333869467319327254294922131684282329985261658972967218114627131542900087445126289164677020577695474730863280262139403787387850160307497879483085544962409359796989560128847316073482436913378007508005529219560269539632753371056204798874529636049514133531130829888695368937609447607850982237339499039609386380997030004192209884004720799697167174914303675740828441688254885206494274039366906880448160139416181508085642450994597584623190122649752468886262509031577804595468304174624093443715011738374674915236748700063592528942202051100630179153351076016069759755330560140656856308827531324625010429293610341600721620510105523787826207466187051958986302090692958285909397113082250709204531612406212118173161555378768747744496110747009970769495805452590471487411192281916722758303194724710051075405156035067478975552635633008792469181881159680887874059251882535477206206442935689090025115678174602329960330042170839993287402583376078179315285338181211822949756101907220812820450032172473409875342343458788722707387640092592017489660092050392249956091974605455318829619726955863107467885409312303389232268469679571245684265116098283350834438597729699950983435706506583223946075450289773547759537607269049867332323929163327230591416353138141728656601604173573474431530870257405677443052191398638691895542078839906385850758607545281432563294893580173619057224868955435751488743048573423716950979138845754225596730671098126190313886623018323807487033740449290970503613780363857894838441982908728326912962193018435527310942778863201252866150133023340548164407529823169078750633530746897135798432462935768620325161347291524235183035249252566839204187729352666115462261506941949763950022432487655822814705619988935977426110271102036024397579560409360081115651837688497149712869270150371446822195999929796463158063426384354795261334746386445365151620953870779865277255342317451691632119048521966302047677185725403779034249376185992367068940558519064047058871458967228980849520969653987747161321837434354283544121897372380176307388702782509731610405537599995383046769741224320745907465119495944417860135609599818527493334019473608094553692518922992246235896072277150728719098338516664076308774433420246403221102236385138744283500591564274792654318829102906988235373481945600263722941621145483335095529123661866840153856312427156539444051797667464377478660602867207656505370756545647772287536966767245419538715474315604311486016566093346301316960964862355504318229112782853397434554173508074165652702959205772808253608973499204218844385298633917061422924950362583238451781986708603889041800472044670062050801965569231238605830204802179135317477371336057091238716923350354349905677798594727979231948190400772197007269856208496196974981309182258344601916353973949262004402467503911523027336316287579886898283504208911489444534875060779367822236983445504637775189613886463303678559650606780718588845507301201141266136281745030147352723720336626057387110013282406292624751538463644868515065603085056747903029726713782680233813350899629594638360348826187856166675410457836690953980509452119078048019601619518563941595894996954682016373910943626501744776722129596761164729993736787488233057145469158076439305658011377576753179845195589034340604052823773755757479611264134958204521264232376283831709454391214317928569912407895863155299109167290186399271424791285237176327704212130358350219864154954883223038305938088380405021343587058007223401220754425055183868983435559476890416824198218668995834084122384867835090036193396110840491358408580560947951222419721969955025701825678373299544548363280533271728149685894719070691097759644943025877473666806822750571873020610919439505014038533424786375856694480090484674931992125902432073805698537564037524071555473755109873150947151158733284774521169564044226987954416797805244573901133002159514144275238886649572348000502518828971367825088306050392825255665182831652115606131626311590506898534720195710854790792078072330955753574666562441473485390524704975034406490512836703377618576612821017627653559932866104691928033470180522066001623883275748027013414471700766248397609909610673040360680837440672615685327919357791140202892751277101680092092047050767193728140770962594093990803131731727009056382169879741808429332846993972514103486034309969769702943773272380810775029339039733781011368458264011172857864492784827035524991617462051377280825106034269153007727554430351394485486190846015646996111163038887956637320521487447326439104499238085950238446524594679708818307534288084579838355728974501585452220386527398348473307745368819475102028650288356880215756545783275112678135508333229342995325349528587864751145816558977534152184818158879301896569072321088378081888752610813076007495054959761803094296428623606279260602368187445482854866424335868905460257477270876845269410943362913397444214637574702841841110329244158924571837374785738879337697773602576578929274347849263507724540547025166864914755351040890182644615499765141462488505559176682355955768432775384993092105927162324017960256098833396657838054855568570583534870942043777607817103544192963397351308504637275516491704839226223937468040803595373033121603882132714763143376716166871899023631508435652166968162609082002018241312060714891198956983933332075071943205101059989932573786835989634463105068902443768341001852878526851969759107202953962577399770240939041254708781585616981314537853778076669641668285179576203272661000889545733091011991215454731689153957259540386067450624005701821355400339915421954961346479831370382078967079974850661219485989367934391621596253161810721380349529679974262064771392325450181153590424839336006928382574639797178542995926475878431171267373715692976077846729803729317840162146030142029616042361772288605690835638695258306139859023649740092151644564706897946897382472861933077249267750273526545230759344897304455934224241637007726504639891128340585187858145443601550369468447127801830622118542669990638188246550737285972177694002979748549230006686905546222554204060056566025294767738833276844625786835134710630334206062883269207056949042397428700227739492320957267679163552976377295857051239793904087737004009653649589344409623695047465905944353661648831022210382942122996565387354484698555976098234877793547036828389829485718039653515149554536556933807450199753844560381360954700573824046389375736161076293310108349502760655479902899001799210926223423519795272988599929850440048401503449682224266240556744714225669077566673131693730408921209903076084883996987391437133792634342007797530185426227820647520202326917640225322776719576506385561128263585001356743561984306935886459452311506325095968212918329009399335231185219094053077080326805274577212504581853481816558336457206072715017077689701969144459583776601067335168750418056089263099324529204990060922628336841002100490687516299424836172152086150306983087488614068358898716229992072878112399940333588095184527167242746756278804239455313728605892985200278908665436847430139916541767165812927788837620327152754688444901061490405925600782897339683673987227443044468403411206702643005046476587769282623683861673989802992037413415636390980728421988255723720758378137798383026173957147019344988841860977600642169957645546736386023188275200420455256454586742815749493777293314323751611134354856020287919265118820821386583596991161735774760150082083409377997576190726605458058563946755057007008564707489917029032837949746230769285928216926895345129900216040135239975153259468110872400608665501432211549438760131859681307894963833806127396830095976465211021274487582341078969682394875939095968504285077880195713727790887289698010539159705102191821402459210897569342339385774856635462216033799869294372827635246269383095639517339153147533335227817813059844135554930450940103218745488344570707283442170728635830588293435119730798021937772183066506053852919067437628738942745337071150449418892493620398637892256926436174659937540889416584620153258896167586696318898278011445856830534961674816510927953772993854932360365892603071666512493282694717314867996446826597168623654925319529290892522509542794231333672599909824660155290903880256937947388893502419480869812375868104678956137405161105239837584167889327264726568287988735774548166773590257241405104984396177311374491423764970222367489133080763967185436954387870554780391042800074707859963386514738918575756986330541244399292251555876248663224419784580459961368865963225228833646272757755968499906734344709947331628066117872170890771307332239530444089540847849348716699311705776294628648619492015690770189609239409775669633002906369133395387333432381263115717032771354907877645637279422307900541315186694506265158615110193210655176948740628497533699969274288484719475363363279836604684554551970010386544837436624513525123588459746593343871876791415448742431509279844397205174858728232684745513916861495458753711140627520691488432448660181632321819365996568694499093201246028578617928344049871019071955999554788910282883305389063494276721432700213054542785705990969812989832014117618921311866272028105028618542579730359763851849423026174327684492200266831518853522510307786960488403900517114967064207064351687053583123170489778091928171907353653095952063958620809674849054570633969459119022418119422204685322165527286558256275349958671310156583799100119797621906842014583293332025651937236056114156240358704351328028937737247550806661165453229584990859985091876860331920086437304937146493756416777687460293220412280499262097681475614897075304995859358446481288432025433327586036583221814213018586526409772476312554206335980417912956546023332181231219230840279149465173143331352071807449057030027221687293307631700889796888319204732339931212850754011378783231917891303472726848665629364849055701390160907799713565206897197285991710671041589360622268650226440747649386873063964381075550387052472600560669683956495338250308330546839374327068430540661687125296253445332797610535442072203480167782385721106680081914289778926758958789771111821365436839861323676045595651753280888695540036606189608806208355132799481299825128306153885436852423965791209381533554285198269639531948110638622165316834293839947847781222673704089942033640770811176936604867998413681700449594691280126628367543902899969660533385025880857253630528374467796864769165673169106611446708589909436929735553780638430449742663654291348411378497608174187411262932392598731756668963914664122481563469593285805381253217750123817192425182084589124296156653023113893833188272999288257311131935691780475188744753366895422444353955404707066061928335242732606974763038563060505002749723091779435477998986333637576936401604665097950992936558169084478770412783702700405555867627765674627992916497053113339729052330231155248130049209129350649613643698058218614850955631149979689872075152629962209667890064858565656004680755541155782508271316224713568982816800061934620565427502246048566541070464656739592750554232672083660589586729224553111244822203634136276032758943159926837240011649235978737284872645554160208465705393849001539876177723684940196291405002234656827222961990159354256586344807527811557775811259283227054150398524511342432372698912016670043132551670854117169622038649979160824357544069449205992533141404339734989956850075194355529144398686161464619699510012645727346860939715505701749327075561646290749514467107844144929804001511315731552500301198921079656622569580806231498539082342766944975897415795611243164853452435754243190224301404201264142788610013686762567475428605567683327061829118736499380136776884780011850445373347770932598927005432701971987314920284520611646101050706571379609758498415985000033654216524111378219378344173669710500274212873396396476656185956808616823771456514962302823515079339805880683156895530026446358462140207966510954633846109922098917458954204591543238795995548807806092829540366304357509649316400514719050168945680462889126176956849153351764498221301580218341985488991384692923078953903420348827396994019328703004345335756124760791522239990753814502280762994994573039920731615212988644802008297646405296920696556574138598217272086652637146652168316841671318660828011281979064350651718440451486160488898916488421259785141322256770634886680491098291787114251294650313955418466240971373009532137231992814927204234720712636582520710385781680183732945200849609868266328066497100672504070805538181681458063226961666010075006541152517994353812985709694048820877462128833322526429499100634955591322335313208874096555371893493813714797920941291389351373041412250759851834904809821010974587028939834383284693325472488824339290744161701023506263285514988761692939618755506672100034236627084129829717508984882506254762130177799648691362026998509114541258588308885931640534676367719920997055371523853238252695409750237934421035272103853721383100408536491736197518376211159678082003414649602732423683601085806842522010674830290991786526855832733293155840590717235170334592111423115932192798337069288765448336339739103810344067359249242330603561330189314275499801718280453992577552278105436200057227943751797783079155018729987734379283706093119971779441445597203181417297560215799860268882011048745045870487645510026621350751407254894273029213277787719089862885629713305885512089900079260612394595615205860396275522458415454806424907777231794055587456114515440663353696679346262032199936655254240281067665550153507897662134292446303816750964650665952539596356604502104716246198655206385465509032839605684462978697648442875104398979212224253585875020174332874917506881078576793191844461647460075623969322798800818593124662733873127882560793665069063665795724406486814691005803177866888664521267356233668361213932826270170316703837629014724657100885553881418974295051546104830501674348233477313784458131094904131545014564852431529966999162493895457916501519877344421830239002597719183483883878121880757769870683110961023920941027096275638756339188872217525327874870620953864010281879719447367524672542028292757096132448876487791917871280991666709422958683897966701062335067153273148629605626412335443628344493414743741172583021900767400905320668842105180510392182926478523524346906379955543409625810536366718063297510558234067858806005255194305456493046482561440849333264659011750755103616576464215250269344851020249889869526799005754225828640812559534110681898384526062120715746412320187687221782670042203985195542727301676150311239018779244712019068823505201787666667989863776385624692037453763077420861344668995912576027435544358516157608952983883216877116200599082881748944864576594271213933342508801824316239816492549601267958327069326990029478654109907304233282239408298643515890497190361844188941676374220725764187041006558836278074447592250068623196581369538014493181353343500679377345799755914656705394548045293875972175571626900970635370836464027182091857876570900798006335249892963042480911560993666854078191965925718307749613938805371386634156010765339067235148416054201849264965835058747117457948245848326583074941212586607302345995183603986388274492628844500912119577440360355541575090251325209875741399046217789795057954967347755353357096797104333394430350476928045124554428067216658446144304399227378938202141746277349730251262878764112009259253777324106874097424604279283060135938912816497215367363673986959268070025321439519485485027633907912388014140473440294975568754675726777750098368219447282306305998894448047961901820490801349583506836012856830973466139392503696149256605826316447089668541843704386802355216310233803716741281454154053508841561737171376897637436657071932255688826382821858434978521993506243198174765540979836228687688370702373625958406609751762561604433218584930031907572611733115490525952795928558827769385771309967886131874569347318561389803753396680306402582211121967464658323427112349509080015265373635805658337343857435572900525073543931093429861565862816843087954571195479709175102874215624557177341313180186465077273900806396992220298529721514724515862817190413344901470749095257342647341265136548218359854915836000012240584987282085531254577034318595731985811676138930746253072958560505923481867976082274696009447621955753960206843088777497402413598241699222027975376874560980422915096446338047890584988451540141088043247240485976362960411435662643905988546582718308384318531606882411906481386737751486418130312927752049641887854582965055509933894719129824552436022517146242828405031474923742364846149731150722770276038167143385703229038791407732730832919794416485587989787848521839011711467756056210948449804423444999251161684167718195083233044021630056985233635608489350224330542314913788987707332603477143817584863561369182846632989490122405463909466388222301592207685437318571322631666162324454831090909741375443313209909593473854668116667170180624229678441670191624468013233429416318951553546268247103536720824886775435021374469492124249536357960780076885782542102253586126472936401002887718802783148800345352820458526964107986249226712784524379337774268872777030728670727912289064006944948196743931326055213923657590613197073453818681543281186643194104604299288937407443796635743225363693002541277743245723501902966573537007536367837805007503996167322352398901524105734665257333101922974267282744620466685264570091078751377920488040054435595824358751462849348591279347890096285136824417581661548430471910075324691331940698553152304610751890240698030681662584531081175518303060923645077761040711206014394810960322597146885612472833171542271808005429911842930876561829846580578017472926013563198512983008736926040936131379314427542580570488015635996103833528178724454678685448395229249336471455770601048491975999009404944029061019760924066982271485844711488901431232636678784270826008123556559196468084968453248582059759796672051192991101715216987844048046087986992549405950026915239822128287296460371469101937046647644845622286592548639531434695121250580422901220406641944291679766454336068258448087460650347454827552072972299190685742481025261476403680129085917137300526539248753564570165662144860034789096126700607969716072343920185738428141114539945687795764285392726417750295292005618812209105668278198821459214626319504136575744224563291067552255472308470815038500769262186611488277849761827757469625440609282661562392927154497208117937010046032968362468376249046311603240510064899843379594607921479468252926662931265848947880796904653602895112048731463510625455068586051649183326160281770647065928573731650399715883844957410805716862410082936993267257964752750459493082242879404204732261162913104133934140516826786867978328336392486287528775859996043959248737695104429792454645723272188135030533838018230604266354780334094842623986059300684487002024603379534196586082982995115798135907028254426691401429678626484716635626807343239155509732832821193897693345339569647542752783239854245746021271944284880255351814456218824061041672549330746330909957695500238489845945364585520399849266193015564437437606433800308655581388125002250332157812576310825211089658756265889873503745074041119803720684321115688169775636978858001619371787431614096031099717042964413722470878706150998147151566801316144724215606066781419151633744241046955231365722991682417807882756909946948736284105447913447035038744632059407186722790939837532938969237116451232333010946878356429671403692551678404843115837611018474793629940138394699337702101735411706944053483006088509392625499156982443334775294376549297566583729665247594545792938575028323059499075788593038573339016508177584040059561499166758110529520231288930611893224659036442319473911869537735569099777879375519224757164046288697401576931269989622390980281922176766661809820953553421196012146287308178288105037506934337606467231356936655534482141203552931648130101786108737912716159467793721519314375823137136368764114636756386218856427489165362646735909289820331517365110053173782449461496556995961911792658752611129181447034533341432922052471133545257571095222216349575062264249291863562509261828354331877153345839911602675759514094954692673202212343409229833505921199500363280586823877237821917262640899503597192077984611004517861899732768116653916467173244276009882546538044493917761847175821936104820561019271034838139458534109706268769719621876644377318147830502087269962028797471597419486386855811051182574017622129034135670101815341731973429249544781726396004633156852784577375368873159861590933766341792073292967316756482129941703724151836654714096514170411274426035722117283517061717370486593368378555029497348093501239308175945176665575582983091951245155009865937257627098031171115832829235431023220012640389649379575818760111419036718526087148440916604769401793916080916983438077693970364302685048069857194637446527047698377788953179641847480733070283869634743691481136106847468485612273900852279953015467206353737715377728460845576186116474501231155833417746166572415004933787349944889223947647770761282666949778831792405261352969122886158535093139983970630807324638735726180639794276895397915317710841145259552437128896017947145510906191555729848793504886929096264832028205663366178484198486926191585328027457966881752866421358103321694416921371625693417170264827552903324508804080334799904885634593437924813053697700381223419680236488398627792743483847692956164451966043996799976006354977259181277466532317572611674772792645032743735110432299257662570612297029749926885688750573119988256021662235033393263818512391450836404593862113091206315901650878595466958223020884938136675133447592140379430614952273717921202076282862721609451244497046699657289129555735147298108859245162762964322906560748103439318202662329198918957913602446072246608748416229002655905760051882153865772907870721882404839669412649878421989388977146271377907127985972378865214062778012237090134865365146190603080578149027667568895791090315621631225286093379857780488959141284721212721132371936506211890408717123222247295273646211885555797604570533263082353071359518271917979168674806835223562191033976799796246983749397684615256398303270150636091196392983589276964407411263025946740335927172457934140299055235281443073443486663940655129481471752710356298138750440519610000263555737298924547823113176681262571571853673425175455048924026487775985147488794853339647338849448172003195592506794042208987885194752891605887035591537622810200761745399484276195266388363386001902691218657692487708580984234176374500989839607871924711870724926488270056365317082372045671911312991342487753373010494762398091357688774576875776366659060441300879587191409372185572015738601523587622457012778362754327185989025652708806656804838303374095173511181919677530156270177192778601087279259523002787566371573935636640692379081387807321537730778638873334016657923940361849436935641450333714414695766699493910469822456138121375711468838840924087711612162428212461540185396313189828819165227320237590543519816922621157107299193992485919385833421999630102500681864131958276053203204143927482416591554462249034333882270604525039376538545448807272707236857136869067839841129570720881217927842954830948710548252226551459604635622637547687883732985224018856183140993061023870793749066392897400084222174913715736316393666387281834786081777765323784655587694075625288171343793243847725395505349984159371778295180982223999704496589162162727042543473694974859275995148290118091361998335530515007688121877393347239178679403707989535520688661409539937041991252880275743522954820385350733722513338879868182891353007783462307071784995436941804547216637459817307175931498546496302256106497882020167967022856993293470783878200398136563362101774351869655367982839778378533501417894484433003088319383836833410114431770737380670017071850288277669393489852707288540837558425214423681786091476044440439819606730081599070609169722951887627525169820362670586203716208185973454783307622035541469348488949562069309281528240608116602479899349300746110710284322909953277679788976419701944460125085131089941110937781239901231103340037915960383850344265745532460003922069539155388720923931713456099515034803311747318138551588054467224279982224227438988641243216417144651507831870222542158135753752084362052191280616078932082618296643350940218485155172779544944342913848280384385781181650617055020011589753497941341111372958935451978147581983845497734476809813277815348231661633320876134951002581963911015164300255698700792785783828768238853459332500316970113128334772805978565731648964459266720385113571232662113260681897073372955552896422695743116757681410125663267762034402024029402634791204556241802884035427034672160230090466405654303713914317857973417669731187139799463675181213828435010761181195665247539308782076429262113322079157398422800166189949867207047571744135407422777899468853174266816926620753714185282361576760018957131767564817833528738354981407946759836997990015777813478533460742452295431431756616468030630084349208851620392670797929561967390488921182948284062110737019909583645298183271461788439050804078972759568584712423785512036695669855286129969956547681612207092868959170853799661391142785471593213602903694215931100281102582789748890715781521140894245916755255744682813978819125847492113917482543680614991771724764055483598676220436390270955566831726661789443171571815330149015014741030745213655662428719971763475798647139662703589339615705432274573816667633787357742932991855314882347632062598344537673684472405503785092838918745580761075703270315977651880957516659839881286299793513612840904582836598038033230965624037258736170071676574277337226893981348334849329794320912374536602257615566656459613429005078109516991195411282993232390609808979152957919514746132855098911392778615369496669087232754202694112448390643723050364162625819298241072767144156629113198917480326177354871514993308808476072128485941614616707089853860943766402940797949568923265883434408556988643236198501870504714422297624968994037178417783182711123948842439651299173386184222152263792017669555275845564983369277047232095732936929472884819555930504527805402776732972586045606281974233076130219687464731395301838566410349700941646921197346567763456051048092218519534655153619593375869771369706330117307978255806462820493703188217290807330056955617893948401429264575110377844908334203384720613903638734280331339098855357761375305080090584796824078703007655328714385751524292592356206046173981556223618800076032492674011037533794720252033912286333644970060596502029835628270170717412629588478786249440030182194346864645788222970712124565179662994975278962842371057142647928239931840015630542602990306943099196978153108843818842615480151788469869383492104232641420070773037137387651936183293153035478289720609374276948398520524771710405734571365104543398904540087290307710663742579551272183614356845296270660446754522306382475553076901102528728418084395487775015635176974737861773140408009559995611974966561634549392200677353797326755809944731609538250444661184709006191016165939562217826275136881995750007962494940443994368619875188736370290247655189999895519133273209581868735736670473940421744117689332087785684362326452765578924450572128653041174056831854430920431802889578357736329018110075379731537109560283029571857959171675315690558978741483533263252393502087970414571057306297448309772406863013309009773302814038598925794249165596154432033904540361738295890114404017547927028382754276830998041078725119258733623006380213764307620244880532785271396903967531584271857105112104818460032983748812613356746196410792355888352456675415995018584873850446105580805207293845325709994449083152506772307990606277109922762154845972649746103657996607478878877251977106630060378049019015790683643330993897117493811510866843331312797193694644624518914076146138590033222207956945925120008505600501314664879433770986432438954053788278241578357491096826740993696802025381361277760103918135892122924051965595405029480504836359002690413171360398572686319981137175197202299341309995506143821216302304413211033371306947245541773185471063744676120752879052611866383057400719384566630265634800471163174252944745449659316006233020364753147666979069244967383715021822852208356544742625890157157485488867595136928522696754393853841595953259542503443033407719051002678239755452941463120474850565885792945805866592396908440171150995511749849698015262929872785141857581303355871397038189829948365427827740374823284866113340354577702063337718890358810653689114086943317170571511811605912012141467120561545453486295060990327656231210422738481129378061850803955584094756510771388330005682779717551243704233609545110623422597633216592071613411636085039522094724889863986862285972900265019020554709506663330616873853013890646263189787843874532351399022826063776665920812213679779528009358016311311103090601367687498691967767936764240821445232971646556510140201485105433222262609357166481935740776743239835940508765277140383563510523469723714469475093368708953284922018614269802860011284546711585983361212498147409504169972940700726878158604677717235768256717290090213624533730010398634644824799570663499157731463012278867226911173596849634064565578582128241406838720061876279390064468961459579825865500264769179937903196520976481885942206562965861409662353341471687227342575865094952774173619063754759931111953529310509757092158600080305228835881156404104447470534648187050400621837280827655857091778520616679138743169538038332668874195703088293163678483914109005787557541276990381685759141717940818742822764381594992385412559442018089770574173437009693625634651747380662429188589100538673622355151473249971459514892436692560715745691203039105846184882630107789035063651180042414861700256183884780893991900442307874671976260114175643966330139274540069834635815254592266302311057036834700858702366400663446935169363736438382875023168817372154309999086476480394145142376673865617935903079709260240607392545151697241841754098805182166428464557413201431817033222767237247581354709997694419346147952326093592492264931134889995701726608471225913200130799378433218228639648597384119887969711693932753738903197914928451960872956742128521624773513115228141549044933352382434567946110009530517695907069713933397976660909378788084419057545415851256336115449155078932191951619781685515730863055709507536366453309065374829894127069457222408405817093062788191005976048956150513329539442087710513809075805828791624710223519491074005677114073187229598886653915283943630274556288850958828499623194798385946407756257598728203322097701978650873429338925166322986832644934403935316593694659133606958588726041099904387828020225906358411396664254406388027074912901528392064562654044729569887501204786192120327510181102804828832987307218018017946614844854732331430367344022625023708446178290717329418096902621123544131434453023519666778509012849014540554291614975545295845387443480803310988999866114242223091064689943977760887124737651929288806522320108017345893002258871801895955199328179441491678682787405000789564215271966329083755110367775306614627352471149084040810321056540300614223717165462317189227068554619401377088388667726956281140576450489008122364879353104121404878767368355184409390411275804920376387052059487727219967424522430771651543396589886714825309952062151936011564474722357994187154360745235397981157702424625792485266320199596052395899456995250811074348048751867932427400587670137845474216428685554388901353324402680639760552255648944991264537755347517206903185699275162021610623506691913328781567800828770745364855275327692320411336032265778090216444441437444719461897803911547959190799440255311858203169118024309830011774917009479044561678564574093412614238414975347737070850062880299198746829165226802077473595720508442079237046322027427865154286991772287286753341693623225534380912993015929560457912866988106323936431025445264309165578038240739920334974320030737765234077912741996077087001970644377186278640406989080220866270531882734435312430598051390963879075090815882318223712963129226123746337716925934429653678411112041890436520740630067324881853413354388987029005259212592609531420414255634951103707021551188380983258878016413278050157963343117406087490207792219609571976420072366720426743042069815451985078396830077168168549407865068757220220851149843070741120154009496509179891826375251010688717664427641629091337476754389107900257375096563989098151671385981387285126100407288028371061224151837424730963835777372004300692140831771590601181371940476303178663169754916944431711058405811995122481925377646440993035603464555541741054516848569751468844291126464094081879977882420925483025003073585793802304511397964958382275185553896979294285453327925592806100174895221672010878902111397015151224028685000466077466464986719243328462916359766969006674738671860237726209148823908112868291347380070610286069396533647235585205256722386806217710950534959186675537763492127890020976525063688928539208715092655473841973505562723312681146103855688023531103211629245637827444722818608730296890321037605137321803363756114582699983862648970091886327928055186495997446905302017254075535074327991253852182888068018069684899281017190347368455058371910461110406473255612080097857409921062929207623846334108047309020578148313107752210914692147461882112800514530910888722349777461399839375396985974242001170768330267128495908548324679846968802007465137743938525432896187048342707696083438345942899030584740430752006224964939958648937710794552763208360187897594739809624113621547966055364240477209577916980989336524583731055217468887148804901313649433670149966481305100643295053131041572889079677033051317824261394945473371545009863964302246336794020832332029403538743347258860187178971038283824228507292576127191939129134150950694519318077548190829243697725377452830786269230101752759855422777615192576024415534708183962259222600874108066683466308528541895120156074556552782368051236065101774779579004913047568870344637191181577542124523176598522378122594655259184991530976382258437451832754731559068098876387081520519938319104187341279332292944633914033745927670903248348578343304195120272393909383860909748368478155482017912382922643560509607525383880497674638355988853121044110002318106208434234390117226056138605998859007042477517825291535769940051712176023861662259786066169143203517494423398851449401526064441355215777958893914153411300158962584376378265678884758396532552034156615948073173070414101614241400270369600455626012432081911741754832075646696362839825226029307607030646666030434051129191476245329187274634882386378077026420191960803451159418530640531767638253004657828535033888373672668006636472267342194943490610371282838449011207915517484152591230615649030762728219230939637158132869059709029388739838155009863935787265140290149193602762122181404579408617849382098233018059856226955885739000805408966584525685299488779459558164165372213423249581117615364237858594965090058458223921184027068072985090473996605087694171897078016304885740901170538708057535500303136750607682721266614381583413772476444910038263899927870130144432844279193584727464684625926339894922515689386290753154978493018679320326430395737485188768970042587642955962657331837670133223286440113050684382021991767996327699587983174625210798366089883533103695428469656779429094359818011180046246025714360200400953994752038529495781886338528135453371305649826162198969475807098238709243003459903839140564125422550975946832192651203890042397307724238845609322877576169434600848843387222404685703182159648319224990943214208954161516437278432926547408681911493390565132023546057944945487765768747726107212863085124235603289372159004904437686099725556480743603222874927222257084416692166665287939645404138016898286997991734319414072468879817358304093087206639046951518043080041144511263037222187569859344458902601138313196266729160266748626451275727759663115643815381739174132932946055832088511320343060203128453654101913418828919283051631444737845742717545602314740710364506534163365559897946693489082122295733914327614720568449410786612045498600547429777894565983852789171467745173667374804516543717110597727445792391759933491820423535310696534003404323085857054065757878735510114818987044914678400506050276606640231615653227586637271242232629659461582799501942822591746132654393391178559655723870741788726967482060478880381280482267329503045275257003205432696066121278465874279854097275177851997019329562889737826114075898410757447573333815701458938160464635595771232342994035436702810390341722936860447890373931198854702241824052173674377347829733394815787137869008339131543965390684426274833730605723569630873409511947951933504141438562852799308266191040016977551558622967759353111356613837472148138962516039075729656256165277909278093943111330350133760868084729293369874890945073954734272410734943902029562270133367114272332693983652776377274237279825179132815718926081441774920903264643882712702580510645237930837589230746841717420164903677387329891283297710098799530592329608990150164698719825673088361368361935849940684947647951688733326057272549384748952839349735784549707817320893302581433318982358772972605202617356183546247116250303948058789755911072587857187653838306088017780359342800113616124323875969835228747952186273992015166338740219784048836810241191420995951897814948754908583378726224184524024597586350180133840453301701019270307665301244050866476364241855685169283143025212694882780789132327844191486404514204610798861681099747101880844216509814372791793800441120826618915851182827041151181747127493746579009266276232552294883726830161840624046629385784118531648171117809851249461982035282672217247189898959398671380830386781590255974206065567757781446178313172115409396636158851187070010287343134483872148520314174179797702777158990816321535122582063820035355719157663224986974774438231324165075223298878029609351324539747055598762765243049664398429698377677623105020102162495129392054951671453915375781659925191626169378879578058878744555595795009321576410363847561061870976606496727549771657327469986432565902549969342414588013366907537382794239009104115239149644965688484728026355992304025356592239935947613743642427708199202967056270485144855844821575292850149366208085402639997004265224707781941245700079819193337885303743903043348367265876726557043839631892082980401009861125454454194094795143348516872384974771370169046369090998283205736908413231750970989439958133939671940348951616305439807263408642721188186396839417291981232945802365335221580569526859209956315413521662087993022107065508970658035215678124262125393217856044684420161712457471181828089858287054957306918800830303740307934655584859444749179872614355305760077422877735905163114779998924093266898527646438925006134397756190260383696671512742400053816483132892770843653036880100306616180875457230689808707014227012212183489166566819062989696766915882921333352536360917004036694503619444458015365054505021100018819568592335610820125705158051308504091959746868584687162640921710042011700107751016446054347403836784371486545130280984047210095085221240616599744716278027592100019648598307497719849483081927605227304895711178308867639695653616767433126542930449088906381239302505223777425726096873190110639945192210108739959410558940349470385162209707399459894382170854276178003527063986602212823404599376438551735843919931772728186730648313952241311586775219368631392843350018117709497823005645379934023509392805869786059385624269555381197052593831259161283467049933418434099810461938401091145607101146355700832208502272710992851655760710318030090825428881842148225935786422902277223466454621168881314809906099571723727852729183276236471910512032845198014346953771217758676774653639056319339621195579676974477247198919282100254949313660766840838005765406816530614103781882496512890043738142874307934734210582996483436393673511369226584815016944389736846437067553439290955105114152129363447517691120795274829116614483081007478050847038620991833822430472159541105395255367423363225907837964263640518203093047415603762409204686742884097316617761985159588981272685616417103498409060412393127739902050970985151200133563169701728924145635317427973561675831834624518668483361136074237643968538908435860740318625344261624762093132930283965912922215249197458705461244011184425878356469302609587387135360545575359024490790586120367790113591843533240859349170110006872912168078191809785277629158468306826607032500052270510326751244080478220438754816693760197085744435483478131887767643582111094714943362980789880582382433593734479172967441556714314527934327883665462654362253542323445783058552303466495394799480412197625201507779862450394932347734134491495574318644778314135334906865599286123928965360531607015673837419311652342420179500807624506022425361226779141020449653802775703549819855758145367107919985014036539724845805050241400861291655679905416557335924511861690337342638296225850282275043187206835348658586836554661238712211864589614524951944724034156213763018297804584324794603338701856531430313528845169168286440423386002210974464158577606746568768170276480562098301270924064055576604502509382831208495265034680789449242868475452151053593494424135639702857603364225408832790284870356888306137155184485742388784313589605754438733935848019831291341353383248187883704161444325449120465943499915626235556611479568428712840220634571644372299884652513846339079493039050184524392183021049675565803859735624608874581085661665474794248068229518850172810730317355018792706759546209874367786568498606160690899619805174053209545861638153220088587252437626259663859504627513226862143736574407348516844266086708726309447670798115504298231871750362040219773240175325266656901709259881598882641229002266680126027082416621795841541232107120549649892651149623827091274005088794082736513723343175577487025862975104793591858363716502317146735903709539291126398774192247703386669684426243524141525322923751486456825962181743430167789403770868703225278007876825220910852083411293157275138148104082787636466244821414704412329696233630778486169605255780581873711977126768466956940949831835890752381526782069583562549094723463626608796266942128937553544623532679589446061141237103719438550042621778437081846795845589040569349653820587402018713472069461219704400376603241367088812159369944350451237960529786924845170703678787108494560037889077834959429356955775284569325762571970331298639753749570016147077782922658751190882665737571292630415492857827925094367597249873349389885945081948738928378394091523852691715556653754328700578376599816123676359310648447061799794500746665524982917269257100627603410300940064165282866926248534327861006227225135558091078378659031184213450557860389952501237337904171104485299504467955371852951880898507179575776263623618859950281509249365202970126264514396910723765185490128905111553039047315887577261454041991048177231293921362890425164907608269772273611262355538035158803867848994128722439877503128147327672294372218067686675204970239705101195433884971943553353814324270064831585968587159743195590887056069140297158349336203567277266668298011890319714177937383068526655061938474881917964513118172086947153817344001787602456736891367900048878063486391990833737524815225896176847939541035750050927492873626578290266051753253140147607306253436121355989737447078630419801106636328547109724119371937461224098610085214283942379267867622383861536151899558063789602527071527189591375541903616323653688584380003311507702301536181618006639689452477173366395538767062011939325162308356441463442037332304071049190178200340008843876909219642994196755795203293979263058699039286168581518305717819619254807001555315589698444024667513114148502503701463074880949171732699710966791052355462583589664141317591355343547920445186597050634608613419855741694354915781136479358140401123041780972085037134892907086289951990464659465365485495093347020802867499540673172084825896071913892304256248831106215830622480481436940915686394389190506424979391911915225987224337360675931855378081495628886083149534172167520233635978788253306510280504465665856670949911677126010872712513757413551964549924186659274079477395800792672393764760419737580021076447605847351018551581886006251765872640419587960948481983796760537499347900551323388932763898011200872447870329558306104638607138318015053373147996775849162898470408106401629177044007122645551108026956145620456649401210927188765023541806931941465486514213690193064200430517780135360119245563846913400066780895846774128092330847459456662376875356923105514215955164345205426256587943652790842887600953401427176716550181887023988269869909139992596281916386460175447505704303797064889775865442452434905039187872909294331340146284563236022785626058480818276710489051906412941719384431233231036320217457676364603370226949572595229822376877796893884171080878423110373781956816663078461459948652681053198211815274257142415743112346480810125659833549646109397962385125668483284057717278855360641678124693790112977836566581347906760012597886029531800105303719988820998256141546800564527927493322202573709649488245355672533437097438614413332060334245376588872922598590090652021311242791291075142379454226677559046832649794518624103566114597888306188838242742996965388075980710475033737727606448747246364549759819443120811828916487594664696838309530029994520606345314307491456477334071373437028166764499157181583949429522056400517313180428948822920258427892298886488891930991234336979548430050297666450171540792517358898466092901927626604763234144025895368562158207437079891790417151335863356638611304047912898467977447271421333383662991094279529781033048780213507136122665399607677356379950295512329595468963949535533434064488219893664492949428078198769153921837470195031535961777997815303109377901021945563824688413771455186713291869953369996263078688615387523629229378098072788754183453940946208322030267988167523015217176700442468658967427631610088844512819439662296619448165824986474851624211850778857146748446180977909136830056788516628878781929665218938493856787016472610769673938403556097303689901929020371671223509073292289574757717506186845655560841312003526244895260311731596024535112050131166603673985556258116051212511260534430466306834601906379377794512538940618087055378429180862637493857085184407063101780694518317548858558783602341219174941497492803383892393922311767945035208407336440993620644075829987563413434843221990224532692579813011948781760920354217724336422752988618455745502700025195956923136569549956453263014785369988936449824956874102934774225244571660140833869261248550519774131217384214863563261983670499154677570663637548332285719555876669075509022702991715818127116110957147948363025859932987560527653720250828979899148102270030817466473287926661993332225258568979021586330850704775417811217911767994628298470961849551040877162915852568503504906887024753842640136093377264821053771457059922660538318883780817025017963485788027677999432817620801101532428955691518812095828585328384113870931866636813738098972690152116129757984964066846462343660108480692008819703270658004674038912407393683630230249958517092467062365039183416124626694477272002475647919993486461067627579928503273348908225156079077059691959185032094788014352602627574760991302257129731182871157486148811272381354242272468359327029398420981382456412180968106732481009058490635952290730958930772237635012040464763311236299947337147177249574459777779634451295475788679460770091643125684263580634895093409533502598368300985187059734589881525496958895795145070891097846641443171389272640704091586181413255883625600984279132316028963730471852966937399858504148035120248075862957451281059120638382501693962137550143788952739537868692402626064670488741389424410412510508104572495168391526840260981426291671395265029814053414136272906444215537691365188535723233382952011659373436745603126767367093149066589637919615055547281480788898752278609812085933121870370197639378111583153358159272224987406995051821507627512968135115032494433560905929757678892582876144940531663286039440517959559666440696509518280221206658196118695644396199739553217265799825559435396001099646419938024406096752789873238530334953171067756778885826694111593580299501303664433022213549558416958817203948323345173070110864264089813357739663163769011869979998902944982019333050637688164462473319925962095313879332263840787780680684207283597054525339686876184444326402434540311680587794114326667063214029739912118766564805755126336102582478390556780676327026983675028547501434847079918987083015882108132747416680950320900042432081490925302011450458906124137846172701002616300838465511217625130301055087625276159261280354377451848382903234907977008470401299862547707292427176276184340614037866107920171535442216320399595822847424534812000804186747974442035376908081077495361971065452964161529399173042008331980392442469422693230533589724819765121071155335160480932777319944077472782534227138060785908935445702737839441868606075052355850234833205545148877582913883307156483591036461275244564476195658713581664183499998317466426684966252553425222134592100760199749415024248305344412849282636165352468514545900638295672599071045003214684262905966040860234512811012805669747696360830511329945877927811967092695343679707827215445612067952128495851366555244619280570368920182855472258526310689538620888084485653139255602963787238615173630137163634513231576566065711458408484396798247072565359512850464111995126732252337644805089264679203098413467886823415805133650939152928081981398192197794607434484259695668768720405689493351974400235592889525648200945464449581124190309812099756519468875922842299791033712090805729377415294601217532672125264237360808923531063711404807395676771468128872856047768113979087695923567531906238870961653236864233783487332186645665943712164199386238363466746523016404886246394226130500329991071599331854165968720054202229350255974559784863693553428029806769669905700746383089311984298857598961314053019226255593744630262378252273736255174483064348343213212088427144521284109939096394318153989380897376811866909847532577217594059291739780545539341304188390737745621366149290034825437955848186033545590377365926786677775299079347109671836419830102309668904947210376168663575446001386604201001137645657388616992578192164765089328617826702557445111646350835831353266931944662999817263568528482678452612253593356400497054968452224863894151511355805797251342032753313823140044182629268500167085037868338410953329263624111351820816842465361495113292978706142105875623869296801664196712695427831813449529265968521424625019548573133228434286131543132306198133041342434839281529343857569302384203206348506280544676281933408329191314899300308378570112351406317216293025156098694384316806450651117068551521470340707886312409356413657291937557551597557210094629099881083272586964221093821023152723965552508895987961193951208388350448507400092741278646466913022860168156450303764474431476962069382154593329289898978273682772070730675934721007205132107093733147395491073536174717712699534239164955771479608116478256906346034098517215529857256364217701345409665589747907647556820759089623780300203497628106094649918964615504289079613651212446924672365113231086232334164018918205151337555163790130657705771564450792577814154881316663746395094340262954846028501294992891673151207130931344289761740542301336914412703152015793685002760078556196936600293052516133433246070042137806002723908888302334468008978084537338279217613513569648869618156028702013581610236117742884838163074647471224400484199335158306017924528824450138376905157855425114253172851614073489151220233225239114179718312305864020154846408716641222748756444482217488402411913993809408385536024301614112629322599705793155038627129535117532580136615660284823923588115659021174917994637433184959783693071553754996687391636050670398481782278676137838977297083465078952613797168400258680602183664801594227543112826077027948614055375651896631143688644225822812747666550593703974496914138989686348942665675260792679613353106923418732825628353903103536832988064823815541649340701634231396128754088678598373245307609332073571869156413490442913877061328652483693664009311380792287377362688729447599666596081002220987725159773190250422677264802597520340779167976689866345550912556475106624122471983432167963832445876783629384995937553633496265799426770144705917664431928005355579481423143144987111367125691608406590560332515474964415708668594131481101088077420255530687683644582010537633621864522903451392039106954646108879273621684413477903726827770928629114859029452548874736453711678825860692925338201264274113131808703880017172020769086443767780314229261849636998612160210726751076400684644936199579525220407391773430750609745601285652685904126147206619947334629936369166693789189536226239072082726450868416775223622406132151196838016669447151691309851985582154207350429877263819681869785449983890380021698568968440236194334231059164433452746375381802946326857339403466322339225370696762562592504371388459525972689832099700124421345122248270955294535869079899643595891651533557071293199628445921894529124001111596531560066307304859807024084707295223730565832775539736746071342574021071451254217993682065718814731048586296784133680758860431371713076148441393735664608166600417498534026368149512345943549750237431603761640129237609041218569509511590671848930793490464548249239130855506643520660581534339410959025289076411227123521464821565081390027599330919109261443797119537799745152727912351268486477073574946848814970068251150231134527452217611719967706187268648121686953457199872221231734578945661123676974792552124798075791202316296163867342027802952369856718389216471916935301351198891837175621473149023974625759696773097371866524606165550325929389794232114471336983235160747930775864547927945688784650738035137855713937719576083104616606948397366253276899048857420594980673936238146784350726188185967847657026466132392729922128808326099634199093873023247875888911735478360931402270682297782128090607895394639719947732678697565405692757763688097067549237555176223115504061956388966296932428173012230469375404858461196371348202884470828915508105176263769387410794994253155521495623218574225143093587074318469235223061607915392031839244215807441628099489949993094262717931882700289955033282601640430723762224489017094254100701381593864042944149938824850449495772901707352767292710553732340691008932474048089484446004857668450298049058097432124751026520342328184005102583153603917306603698331963396510522817433463010994839644887348618868312182041067895597511791986447904303791311612929195226700738879183214373880686982985608008692809479654686284968857991031644217574501525147544248531306220212964427519748369205083314747035344352033287738505853043955927533324607707533293576158141199798089918218547089106203613356581208684654726136377145816838072687413409436601738765802615590371041544624314832404203035256892500944403922326311943964441818808539214896543441264220197635548991491946186826317524738008749635770458191068103660225307398172462586830302887368269964540930384320467730360500772737516617312842058302460724781667487757237563261644356303055766864789660467210618680875101597501600813939591866047981558686968125668862515758449849252719520552708635748849521625432364590639474090716935468662040546750132596411756114863580534262577492905302580266371058915123596126020466220083614844803346562807476336984687917626395491012942802918111883141272317786592251833772630215029990175147820087396571450916826857176887055463301425851125273558688239151017482805654050058642410764048482854778541372255772846423560131938536177877605703689686478201975417516115326456877418340614071079433307917034180792045097309907935646817850604953570173946639790532570820502627141312191973992213273456275676695511434771072254828653750973912346903458479853145755824417727452389915457642920596620633494864205503643245981983340550620763344268081532587927075613165176307288843293235247264356597663654342227816014035998186592661764458394260318750713406402155472304073844388177938638890449456630617704426003019028753274049226978200868001837149990247246603536694757139157039910898644843650176984644490473104842614399894704131036103372170361448895914317016220219698062574382416223154228982037408797250374343237931024335297836898018514050805909910488607975402775434552665372684933408098077947251131628333561645166386547499325094539936199947272539989392065729198308153419166897911749947962179662941201642411317382115795132580945854896984608138132482535802172618469091702278378035509292414347384797319676901895062404325022772245109956081292759903216398559483849005273996257543851642816004916022833967479655389788372944897307706840145871488051559209084466129310107820091813838344176396333430641316316482851207959619266454155797233323645355912363739990873680682772258395444763573134253097780922714254501225991903979004486527060920191189003959017346154134544736054875394937666123441371659163393170771144781537713474259304724984030646107620428955141457974280035920974681744478828030623614800372861827266394082668397349370286444724625301909955691637508455445140724418170160403097578281046259583463375371729505731169721270404636635601837638327132551904141655044220330215510462106347435258900665258327974191903659022058143823810617119217661098065785715344410250330932803523798723280880959655435138493985384004094499064826806152280192665315159853907648769014261901488328744791375389454483621280204517099569572570248498862284468873449379322249740033309450742559567997919707591729551895418430787965578350403128984770328485490177504984470769645733245777788380677340947140664637923535670216325443499080320891016239556732483207227158641885643688003821038375253447035340502881705987314064063719254563793341354791910297264948846576311885584357786999535084420088638949392798622943359714183500899425987344702264175814092540748181868158899305320448595297891823803573872161450661047973532982789721320569829595889601921185988967900036788506407321922977564064436474439485493625401754162132949773086733449996402545856941888449141981169474172700273645402061733919033914784378955287392312476321560085132888811126374835225231122566620438522594595949295367601431588585388965616416322692871494473167795460909611408780091698379436612603158189756340919651957617656321879621387987997273651204885499286448368406056662494651153939103108796414967508306629317987753818157651816250162439748647261285863472536750671436013647174038968959895498088061576477313220692090443432674125583744820435825985317517644308922475165919966324903805851078312320121984053001607277201925432608894869128631851368035489981357549173580101826371590331083735205128117947592044341231634055221423478400101960190636357723713453889410203960020143451819072428015088454256324151785399531301018263701915894572816041475740061482124569267910161313189452032817282878976300579794506665396930365383008328222798250229005825037647895012968954055653540003017226541168224386263057271240807085129698358583131118015595092359340146022797573521110079544651397009301521687905264175760877024306969002488806262484532587214587746185276140668285375280961874148335192951851313650022070557104172092009719766535001907974316287363043222514756787538329224519598364649652848614081214360546690215008186736162202346438045817478181308357795514249023886064649305187178730571310522646936622980237098024347077882264473487006468916024229033686733036542779267685015211108847355718037640096681227609311967582141406484740106805902632859179122987101214466936076745383207436421492687633647537895749319417329138169957995752438390991345266032874728601754409573200131814240735359872098230065085487140538080281867936022816073911666446703862310999577779060506146571053309751279498547421320511844506980640511526895727255169647996609049229557341180472153293932982406052070375398715243351318323567538522061458761340021394440455757730427651928535856025012544146381876481134112741232523845136009813350294634997693908531665790770285322225292515082687670316876911219846107399397528563245863289756618965817288705416881436301616548705891191919598294891073895957110226963278988346117950696093065291564726542524335907600553573956431812891681218260902588842642569111076182581945289917438549359112440329543194032769584102167264279842480875532386974556826680893079967837192938827473938460859885714147511426897074207957614580573551118719753185771461491224420425151863880563383617445309194688292111883228419047537518319051024875406246137671247625928321970256410131798849226694289949833541852405688430147379009757298691514442863570830979069508012152667819513175642886581437475074934310761370241661380393091192636764764085497730296856239559024930671786140686513443141363196147158355630896866731815237425877968125624449769496694924077545165986220272611111259721119454762901357750870225388077675117684654527959956798100313504751110670244077053475193560530849790897387898610701054696890961014618116888933294548305188030607397477502633307801898871849242599620770521521367406157703098063796748587714573246938156032554253405596498009205844757631820190069947615897306140880764014665443432859209968847814368291171824723052960392380233621388783026058910223188301809528007638334566578452904739464750757964238148749288709930327172811090396755047606116274723026420590078045916088717566804030517304723146525682283187620318984870965566054011137115142884229733769727080580977036411216256302735063339506072541205601430925295141078941318831385869592366311255731278385289087576707452117242299639714181557440169558533316920368847303101101525722537488076482562423280364574407163728705187426682392376112317893636766564345478875211637167685930764468046743782113419780855487423536049244680699614356375510216381256373417806040887366310331945595588574282779694797387896362356761318208688418358926418969698957278855486010056841742409014250103591106129456626607622570868395769923364834354472810606321590473957947826842900922879587401436261847493969035029879385339180143715241205823265160336662572873524779037357105795814125483553661120889943121347910171531705164985049016051335598372648971019100385761320091286451191532276852947610013239688223978309417734825525430095133675667790151271726590876839177142551441211848963677960714676771330819229706389028321647287675189030254869993664696818853704033857738922977234845823138474189520151137766379234399504544645576404786319584880084946385260240869983751536946366935754045781538766952475865986174176166514688404114130438019416881214086687565207957885893236216044724341681466479611097099325293130191611728659523867944731988938527587275069330717635419166236385833477188142708440869040873998464439846375787718536772675154395385038329165745841556429974923544299720267128027585741545926573760719063841712474749547559132077674246502711131453968382102299426099362774028794708173483934244399424012624670085187239311918838346431071126017393048466917503190299629115021846116116613890872223683633268453910133634130330861242227176821424554814443875070060051533355979860597777808335547353440024703797161830073988203219916096756167091142278220631960352068343482206586485400733717707158802643568109651669436984303417046551856388447942285902433929980762741672541259420148746240688522623245104186568755352162705743944007889448124859441575325473720914743346403129353452939214816119800123681784189754540501672272638436098871621317481987360844608184136112525405671501158689413205382524955474898602615184793387118450480616377901563632041649064278102507877776951852952890176696056967678200753692825467023317301852233423097277143743295205417775335960235481270419162935482670626473060570718539362839677475371362391989782911083548081237993800498497788527329902861346642503390242177591263627382531921544258984150620187486239366100100357001752819644327795242709896836057586666950429089293784990513367119343232266056967022599001898124136581490651535742313758790772269814771983807226335760844606555710143893714025602660520602102532397998348430052763180572404104358115464689930814231145614497059201792274080764605213396020100837520086982304843816021277588932937009334271225420214431813374056568990810265843836805722583838621374177597251419682787616670604846051923850867496033609710355877521153319897489159470453688835856095610856341360067896283395482406641926754247838974880406859283426723542974469834529577723970116144235204884130772080481084657553260913064913710210582614869467928977012603663120735851824546468490301226233204909743748103420949535958180657909384159041141060986067636277697431908767539246234425904929331314244212707168553461852086862031270003411924931465719558976324681214021717962228372584227684930271299852371370844497277348563443947594262979948777422799757596543438849530414501014577949575509744072477565410268064542167923898128981912280785128473788301518953668460832897441190958488107494015871389522377527161261983378307928754556018338029589320891849595788948018591451425522709463323923357786051644361757497231471958912442727129445961714477902968518151831068558405267597458396510118550532164280422638967441116395030938342104948513816711985232376054496476429065082442842823742331273955014938211757998399700498812244294898979501400702158848538370190723760181359556225197793805847224642312453320019979097396314422369147357740257937262206199960957982192337542577270321699126552519523480526087908759403719542364774955068571400947466893700099257781746814362605642408527530244181602222593546086129411524069108342867145110003521861257638567119853339723180690846474208016870910161454175723758363331918646869603194429865138649507936107544830960911804832008605361218421099828042611500308865454445737775826746932971186499372764090086746753106722253809212799726984715070445259161042414964180109363510216783276773082535943934542610242560621717010604414539291498348339551164027276483490527797602199830225631588032842980554816536952416701865914796622184435267454700160514509252911929192675038304011959484534296786534167266253356655741020673587977003987576748630669153346924130392768292177353004328065044643206762324455418594172548924983712062679564709319260413872549054551585765664043692691849686021802213461463728422636439570860852178189420145589543679419401174952680905675988346830742944863205243709666855131440328406888837738475543280722667477884381941588681363069169512060017847111487924550505418592995048132912861426564725346728505313034414468662058007036072371379325020288014543495304855738448381251663331597276763380804186050993449610334493640008746317313482146136972826773009669858138113622206923457477944604079135965851236955669897052796397137286014105033238183278147249829545322865537282311121843667652388698682115668985650622432072052951889167231065791315993322046592087562927267044300051950890768116166468552566321578865979683685498056249818865774086429590156784569906605999112830991846571200435088840832304540301811321644883760764892489248479511145789849922255631227782126418526725266145163846571469274816928149450135192154305323851050259788397518162170594731214432006783224564709249399491388020346889189918685666990176879485950248257660062961973548695361826462413371636135780529824659483866802660400598633639581393016624174861888745033180805789830973704273608227441277697717444126865331309826996824045885734153975214523389424286135497190659653965849298502563807002489152717909919807515242717396278342342593047347212171192384899474374299937963382254793228833390279799622714414210966443552939555393829016507284645880971960007870347382908579976379518402258225441569607337195151538992127280583266824763482304019189514233430404483776073035458343845718219113538334766188987955122027762781171218117960566532793523683662471991938622742859535582907096447899242796303610415736751764492781152502161320702659267766402387508699322529893972968249856228786852569898465673274492960681845042642730904388897281412560940005028725157491544318621771291842808153616651438393258294728091816770452446735512724298274510925686406535174260834178106405126345247398112752256958702853855526084565000322183723116425480658265119766226628588205118878763266509161979621093237498523294677419522308497271566006261891096496996693227066912083269449222901109390839271038463513023803345668384016264795464468362483485890559238901346757720008987299313743047812333101466258915961961128509074464456778197802595804661293498047243073675148386202653483855602001522820686494827399657686516245910710211259062080255985540515475342072019548541152018779105445100683026624340963992612946782132153967138771465738261576396570781141646824497764612677869161954473043525262073702952044291690864897432914796843719022230736386666097832918314550339842501226975068991573833517712652487072695340867258948340678514533504603860709757942355776231853130641989337956407826476764002697369461032317328954407014179752120835575555438403502319442187840571075587556340414619139906883445572822489270797300641254847002378419530830579767384676758845300668516450712922332588812905897886314618361237869534255109273054244542975650069771769145553193925721589512616197244645010948297588707122746919216285434276801560991421734082461079678627057984139309407856011882873974054382803171524626067240837400853640658668609744582808411585630486525768912312004331081555694913867011184095300299151268873279088540964770657432817869154166630615326787682276597999084028216645913051576754917034295936314409356243294985976501483361071689555774582940016131795267997872628013950124944505435605864981206963954683447420135764277576830425859315724027854555834646016437340902001429824437357357822239708039503763968225744898612982782434829592945297929221873285833162457507791766632336374918080661343925120145215725780501664078976861214293611795842301872875787918952041070492734951215133298838178294989250997478418241878474325231375455014523114395360527781206174903492844364983706601663331329221363468224787401005221564522837357873583997078292043536047979879332984145939187520007248922974970345501230391768066556736906681555914373164778553523667273601875061543646865911945203122736638068915564636569205106077359484000835003710186773181939636059642191894646186240454110195057201462838801816908164799977110272312008734259105638104846037123322495700370775352354473176796226340151216693924736736009477438933533935006471348441273421232778817515008226589944393530845243089206154464275408537120509296264034577720311664022501892520791247516532846842894773486210791870677620669258567414531071869491657565096495203819103065282238275016378189669604524748241623587917937904477408953289713752216758111804005926638502283179344031463695273976283566129279976627418697520252375880071524373419906982524032628215920145669812124710329880218037910956634448145765443357131494070071921178051024545045940544709337554453641565231408983754553808668925652843320597889287241734951471207733494475300767239732681466629450919870097651803868375870003033232608369654187862527448547952641962711371617600484771948461060859781911649648715361846158196008877740672578133553687453807852332426744970046787674748910404981851500564603512997432197589588501080890163235705536553591510443619737863460795818969633757245763971461368232539541263060911142680515671786438063806280442628777910692663976826881515713962553074873878336404091160883558652783407522005720389385908109024820345466357348451174656747865986143645062177956999157478145172430223498405089045794398092288405516533552299590687978372283469597310132810018201046247444077488345042788802932226997794862163090667246368208894723273842092962488276986542255781901476141436811494945893502804908904145547040511446881234880514139344686884185531585783786194107412426525777382773487833642682689917737155831025699328474611813633986703429407633254081135008722568700857767918383417323475664607168223904072294144906936479233031215648075094723740342907127530413759273254938137813699461867865855896045566678762121973449420936148733807655174727443950220564954838517173824494896659732861851171872664227200349538919906544949569263678985659923421143856741632509531522184642725544793198157347252164455466026712616104263466078126640450798501719385772599785585772132924494999869706789038847102911203646894565474163105189112151662459529427236634457703846511330869392070785254910226237425613360034010445878801144365485068336763995745045593396687519658636532011753906847354144977225951576330508511886186451005117703937676854740413857718773194194074280070381679044649422055106820778477942398723807341248814599256851891353329324916698417632516643509444416218091012254359071193370347307510768472563502095034633215172493967445891982025123165115037059343865450638573075084198226537894092254085783828380875654783270909268964031189419783631999407706297346676125743875476763394510123280858567927937279382364506379425603606874204619797393870405565442626690059818363851566944665050041453753177291424470083862843890769840492042630216853043798717541248450015979299717489157925919120767836919741366335979582512180162277721752146351414354640473159481053584074375689335028833588073173242096992747097672548525384239735178390118401781085817806844224528887734729056667457442441614023445556555261808981699895456332139644695310890009790083094467132611339590805603958602223395943466923557486415262799550866515371281398612469659623843809750580316860314318616498642877476560587587691180324257498049275235263051466894053648263995853338568928567919165778795976523365013829954135321820657370307513511408707066857339689201738470663704460251450886620306511427381480139967572647147802377062724041507972599883469845538071348530072480317658065549653018425326297728975306462189764568186182509313190608471622108269027353428676891097277594698626716410043221322807133335039411912941495887642927058404315674998644926395734208954323581856170434824012423703893978158961356221606460489622066422128905334473029740788468723488634953498417211528863193728296879265965911117652026278373671684677894279534774922974225001786459429420216733556327036122319959775900860069724380864955404317981144059067796068992185975017369813136070757303348774148529939308458416057052406646555710649363649695590608720992698624951005097576770126289259069595510784904112233022360812320502321808685529536892119201450614034897238736087783715190507870599506463601754910228322090782094967436791273893661121088675057528342709055464271849188736576550384334365910391323839129582977579057547570590546926037537792073498260222579380604877379592542826111158819230632042605695461878345752869536954524689518066138496140223635694717423862301317793638693828975043908879005246687914110737423323454981271055074622017014443560953983552978395065687965341526686487129291213065611037046182866536587809271223994208595727143319412838289772363234330101764479313284567281337597789017488796826668642502630588459458781590393008875340172654273693186957127635160702822611978814154132313314311917583914086399607918238674805426778409372559057055486770957829995132795362763316363908827267641570883423814338088007213722521361329618858136855593986690591676024975104482185651144492956088003070476483499380479067361569143540967256089596892933055481172318857100641106353819761422924137097041586416467878868546001134465738532374837979358591756871946164274623957237270318433299361871030051779189220969441443952045430224982509417036561704971841620094623690746705013915366354953380229973367442741931699657702198508746104347149401945043092602744683019548090947080000808925516370479438790348051615337404713826985243615486446326834484452069289158600689226119478325589311215193537749514052314165154880718095947567436940883085978869607954614441924890190553194619784351254433510803244167087618285862965204723180625651597685168150123528617851188751521713814160153033298989531819459747881372050611640225759660657209911001982145763696441642125748057046349904836133736100100592840723890318028898589530514744639684916342453126334104264301019356052159642561070538036212827126235065242640445388819160818745244255734440865781143728183968638000226626181532915217627492559604626762937754714157010902375936606745944140242559393450225383969959765299790314426772055024348538128978248906966786236946167172892670386631811442418986673204476455493181560508034343834002992242046638785240560381077343790155555403193185949674963383154750218028868729486784481906391023389377410595345255007406119545112986045012515226458214495806489045805289780351826372485726456555382346015830649201256143520864085155026528349921859011065013272197497127420536096753146698148742304975946413119904041400559977712620431868504757060488667358731935360116504124248970625765862518351733189535034635815241658735615768579361511340173310370993083338188422413402794366223038541309656613659093695837925265827595542396939230884674540750837991541276624573622304906821075710434555706240885308631909671984765006274638174205667222208318600371013774129844266778084016550305683628270549756320937532279559345714130689257639397889477103578033783315069458394642915492898207270424870219884486376482259301249072454524831911700647645150412901383739959684501146813500443843586340798518718225759152639863129315695425561737508239049442017201995313302489024140452255909183859650469857542150464101074603649334689155724092498059212249018073570842963741252454797833079863648268587124637258863052674828972263543083927188954887340265348028981158532594899746460101406571612234415601777782407975700264094294678896722177798499562030439419055901951822650519537132520396427086293022479851451242640194759540374162423859655192003975080746438734603109314321596733899319151168658383751525995921403904674487780140722273516783906996850443197225683111202688048005979153435508160444537110377819245625268254912305925820337121558450866872290042968061181643478483736253343653081166901528084996351784912386582279038668202823262513118645831307501610743865786239911045497014324714183335909358319094493241411160895634924053140086159755242318515866314551167657471414033866110024139174106618838642152879871835660886252991331277147998035660293992369874842999196104563576717211752334650819076114655046190473913652063442397918226540062188056962439983535720830277419528010784690351088095002133698466834803611111445249443358403832885186709088611895402993866585761125842695682384964434074323897683413165846541945330369113215710343575859730970138257151365397828453887895361352707177012520020629699540972214819348278360778379183887547063107316253495718540562218078790831458947536955163426838186145526834686564180955593131251462125681796415107954680194969507687373987549894513246659956034507653078843259202824986970259406504560985147295225396883226821249570595865050592964230983669388703519977553500591689699265664267809064796538935967596888037483585103382956081181723926989696834411763678687951879975959113019568483358007007634281564467342782131038956640103002285318326998291449400213669625350570975119810452264089013984344347655393409066079774408280682326129361750436385101369441900922869606262496989886645875466984935055474744476003791647578557636382654643444583868971112040148225939101123408193389482787510927466590357481010109230020110081366700207332321324639520191350821036066599370058884526899042482413476609025379280641515200459826085235105131820324824508761788058328256959055387131757768382895770264493189267458592733555498650678007744313818473903611735659454582181313255253166372453959316750140345412789314753017344886145613643450446605583402013810523717819884986143562465977681822354509239109109152222749759242897620346943761444440604322763894505334327215561466514545833102632312164420536220296034072412077570221253640236928637888836753891826112842895198630431448720451410582387221265775610297442751622907405300202991042653045034894816765946691092669417121187917321120890995249772242203338463291747446543856880882890595848328556990911103478511387006775762673651478695600107149987068332653307268525258588827124405386904292649145579186916661457879232294283360760173398801664440931956796390526667435877393391811060572920725795573579581071605105739439461065044954166568174870377745485294718424963786795064579612995863224362564952732398053710913531664101281944851067144931709295110527794973893454210288422599399801934101797024388661745086455449278251921912836598132692678508589507223043507695526650622906959289622930108985508248315203628047552355488596739250115368364205637385777274574930219825453309743622505539486899711949542208143216966335198726939937559441201268043368389157383825978724906184962864815460856841726986435533488942122564179350044894185789578067780065696254598890037551812841473258440557968834866050260351817861422957937469716984246528613039212087982875181467863312542856573172001084391838247541441583929541638053595652992517485988320674554121454712685519509290543734208831397185939007486758894846072532341336605642204893990389108693516410257171731039852323455016393024330339152315304770585586044508664024851987796177173265095429469795576206943691984600017861753671015432490840820206965248740557492240742026109312350678814624713678145422303974587795253980213694669331569870878219816578601779831322469732141735591003505710804496380080563160493109263870769946598068496495087108134906759431112823333718609484075499292482454106399594739622597329862363644894180630058928245589302869988345933698950474861721864465161407143354039119914463869276660044148381595800203334997818222666460510341354818558820322449652578452923158621923595000195980256131742804211166302614389672561783717403589759012526237424534108184647017754791488790559919787678378750509922030350309688688502912830302487649826450998077294729107562035650952632519589372313544674476834048740005553743614898194866353473463725626416153139723759955557979859380820931552051971404977507143444988343755424771114864969109802739020380392468236491183314757620757789917027737554285201469112743752850828694049803182057213900685943821818291017444908090874263239851258454288965550903028723348609397015265462969411856623265460649305903490320002094888536534467987539590478754480017278789905010070232997369251389966986916248902047247729214640426907494583891900326906516235445025423506492799661424487819820987887477694736203589650910795391861099560532062758241149298420067329942297176530712336830865508936600866309965932546319923675278018978613608894200959873107195786434204936506823314190907949740432281778222031441638125957537233121459118970739788906078961701878099096999729466669313572044044343450022631033425472966766242556345906295105749653977762581576778795278135124659309382553218011268433780081226978183237829346334299715150011867276222749773671429159172247490468861741707015161607795372127431066507731157076791076936111768667543506913188275684837363236909287643201360347488176709539604867239471593459334836383850710544132272850703090100938419589823191119456319543550786372377874734220442295187145438293578900037856320040420806950405911602169336173841615146658309500183355021911455441829291862956822444005645517303748515954331518674099282668763335022976070398621162716630457634521368280382204779159494836526934621527064118854385438333977881296404143109271220080333097996024638262869200518352580110461910093162003325330802546085358948649351851909647370138514074157222813245082971566104106610222957424017807404822570166970299319325350409192868830198225467932847825187733877376645436312918290917321276754386338163231914051133501730262927710063507240474694424975125438883459586657171757270003010803357805565194345935237383238556295403235612775021129275645541029494320207347630614837723896873342257938991762789600795619818313371357761834329330494058014748349334257184240567826867726430876996764318769485136289858283598960876841413430220383101822689636879135938308373099557325407446506460944113573417994653269023685418425390230695927693220599625907317410834083123478726329329246716576937034595890456263118192500758003552766984517578687776355633063886294114052279614667868170393225973060663982534430075043920954896546748657122802781885229235067914877740882060159202921936079839070100271800219925433887700048396629219718231110901570378874621377140025699815156261566147900592681809559446682508808013964447727908253912280083098510064728828811128390341939630543892723161404668737188067982383605681337738511600304500207712848303575647265599279473410080937319055889566638541510192791292418904907030807127601772100464732795823357061720633426295336649539134577003731393587903232698953453289555057768038313574553770632081364489025515943289593671856776077127118970313818487309449753415611897212046525332688420528944276463405706151888881962245276274683196221149719079228056177294861437821050874952976282446261790804114595740254082117314765064801932643418201418209966335517505501014042428040098828999160234010555710651802568974662251033493160327838442321126468680771735510753432998751677004163334244962955780522677674705594698227960015922451142318839375724642556444123368347674593412897296581597095752520202098952626607998858192535293975783978058744278500823253101373955740852258537426866424627366715619957490536215083858480132854394759025143045969211969749137342203847850960125130372874128306332849821482708752728711941485753827604044027604021094649983968004235438235302045595958550553575769585808083834750559671190198256427463314757411268501576564462690952826111244225206362903122202779726844346800572614079695176586291492615319850594983571057104396199904908865382001705748999787967959235440895252122244522330764636349218779261222751746699864726921358049640733091080462937519621518803262280097201698524491790727825650962866008173188459075232485358826753545981093419120135114651168102279690260896457804992875182675069033670399687335368569206909224422426332567643102014841214973212135446073946168251367465281921087469487059719909107517869204829168215555433439018302532417828252839790565891331119660583738612423293458985216413494678722275857611242634518137993690278065135549801618656759488285105433364594600462423247968516965312823183491828733982326248407624202440574861594156804386329563708454098746547525265502625438936364102242429668263196679158992574537880842905101397978008089832130886431894376010317676153870198867188439443492517689483437602326518941915801844763086749598652318013295393011972886053671926733190930102802995099278521636928547057278083314890272197108156748652466867457207461947164112445561429026626887449608637031227653875193029112809746543701557721380208849082690300507343064089420539342920562071039634704360888711329458677153806911811605238355377772737753385244909925982324061289640578353029716804532428163479406840140978723242824669802902150805298154917384706879534659882747083816462378008737125065084138758335484214687704414343698226650809672502096618469776309609409722780709321426885952942892544445853148620485606581916982985012187414119966800368644541702772015334607246384818784084705828062274885019241521148867432784242438819007756740122083425382339334452546375852297491766610332834518751161834489541073880269808210624616212040284113298260836695379898997694672535307602044003787524446151680870735612271130280714094577433250104407602333491554717118468546776331163119866781711830124414958610213631674382528367036333331673169188867520957130991204307872245092815002889961444623204533056955456293622974796533022654856624178191114613985271340308151028497405340625352662462068397122013095503450759442467719310141921132519994664698165345681142725430419783707886416360891926533092381982434055956465632652102756705465403583975628764105423035969053812794921708897865917540644676100646236631307235336644469765742031910864544986353229328099998948883712788091178963679713199166013181749464026613616098391096256971686945949656288383324090827752908266690209408771435902132628676758840753801628081961705896141378944395530900451548819128476907398871549700712391347173579679913154148968354767721969154095012155727018940786804410834962524546865788567051199632450442869761589840874540998374280506107629451044177952183591864718348447969291007234011487158141153017013495372997175760468750348960898636304084332492728637672503042786799735137782802027468094918985399024071876834335731444175812362330166728937081431055246632384286643286648733504584846646463934184049397444312117283080792741683960733906744913763342897170793381155343606061738475743580386576279656845970772897090097747918297022765859208032947595323131844059778686468942260942449876020622082282538614552504487841909177844194083973039803249965024626300236633850674951393025882496413576724630987825434339095654027982898239680051891415131385644597144717225227446594963042000152936085643702473540645430887488605496338912480168594488815453920324228976778758943790521525789353821376783887922030358716906570857727393792