PREME/G/MU705011

0333308768076879567502818965336451589622209821536078383481578224377746016645625711903509559991413791400231430871115291363277878375472751939894021995880039142089541395359746722474671882774144005793343578534050191814950404300400321163535139209602352397084558509280874667167851339014640186753300804557210258362289051877282660818273207646850974917434508492215388294577488429793895255257254818078631354504405992395427751574939718674790917065890431526077663897246303184202862455153670533793759529221166892359656833475701485572072931116730146462038017122277562913448919181375494067503238422957679176832950076765588565808818926380717786590322698515876996404416237248263970729349657434032384829024664515620265497964931133778884048424233105068965834839949007647758746868093111108928947752445604260609947403856057297443478844371599297726159241801370514326320908836300271235892203203105799899975813170441377793273919290490448577862446620639188055299839046692300154434274909376121681703981191829960246640019525717211445870755957992448348687195462327470542679445854597525414036681915703959958685648312695590200554371105756188270984483758390849782825367172235511501986477295292525960094523592542355841118906850966395285159188525701057173459178877561178646076748829013688045201875595051867016091841928214531055393730760890526159406043496061032675622803345626531049316755517717725768191205807806852670807101260848296798117294310323214719743342437711681088488880005724807114114505355048536458732638903478804922114764689066579001223149578625672622209095991009388607923824314185899310045731083118604196841008898527058714319975408229676835134299592444506144900594020125878193612371323553468218481946970131350304084946422226378241432032811424838835498793926748023365994172428747583988158926508380021238953837176255567245455576764514363194682384018056043094771147209334408964709140451971649288870681750449514557552670108757763878693063175414330078103324295173635364206000539799999042549296924519403247989631925126130962890240636540619654016214788293746495112479591214116882915263773394066037417893247961504898500179580137941648513753243284963565517167252055477222567029388442442176181978093122898202155722515409815978016857702077666547544657404071596384341192282783403456219213959574627268393685213961168569657933275424973931940179548061630197220419093266183262057373770567961417023056876660389909621839968838449401539539847936686315946918579656291406610467314867902413288220433688841973249534857766958768967826755421910123484797130792219546864529229653390901954366056810006242278783833563720872057687143486763296630630182582756836711098382056015303509040853960009576132762618488713650650991363497117567528467861723465273838747923888647842806509617054166909187745298405527178181154659483090929941803752222365361398722315516381093916118695329072432165896613534746290669479632689785018791926288850686042190091595890299412114995287700422376101931393787744720482438869131416523696575074250562100817566962459667708762664263828895918187483652496374685302505433889498065350595191266489435405427101228917440063476102255375642316113328505401934087204090974704727979071113351072463772153312946858386793161768145758352894928927552589926611280570558882627078741707573344339723569738826020545735891969709662787515893047077063596607889509725247701564073760218413934825251826520452043450642403718936319183518325045968454065444763926103665303887854787459197459094084555368368877177196927662681528302374914892670004273559542668481637746977328648209137858125196063632814816525458724485696368807408755100053505679830748627038123155910982212957991941607063137928842198672095398305829965250344495420503716077580441405933999581451753484043911991737586828386158351027010762518534907886679508976851874008651410334927821585173864299163549794617277677740393335178487751982044366137909183171629207812581321380825525240662864537425218481350330876907301169598206211214278786902846200344875373708297362045363694934466572099626433620522339793778724346143100628030781700603392394507353586911599499416619541158313666798970582664586764661600928616765330468496254400473260727499093829075459677726592723806632962566581351049544516045670469393180105903054698569931601700611288602529904655524320675206379453811617941886442325141367944313925247533810280998616182917563771645164423603742212462989974559841877029032125679950269821833006465222203277403233406472041656935384685615733889272395474999727030284042310202892265128462757653855891365770469336190869130712233764912125566994143017450492100098090108169982596064436495077452934263432761630059968407047679756860215493773957230410350734239933857141538739299992559608506936174123912806051243153298364533393017588517292438898237445180243148062215186740672956186111550595151430141087530891054436453323952019142420610771722763858921426529598491185561452822424113303425097831797213474553369008949804061255033777251121349623615462299891940214896384632226834884789879851368699177556804132622467679950308731496045138008060583236293636938868257493396400443507524228007359285307879004362350387480099599849024837572722292128303484727899862983945711523937647200808821855250883066281535810401963282786307043635181952647724282117617539458720358116144045499416760091949793973707678516832835063535537697853513958332739003139662220406556299622193162609635579562247760367780278255648466718375929237232147932491239724077350854954003722928683370391054824273893873196976432482555604061680688782119679629066360783456246824822070971524102425625022434299709315759437278230048630899376700485307328703324256786952021652729151324293767143023132081066425260338499979831657587971114279118209407214415218322718080215119218110060340068956833607632657104385139980285531450890218601310600721910554600347785799710762692272907432908952457880751563684551950196135304474041844193545564255658162723755073716963798767010773692285005504557744251508617740595385347893925634046215230877127986840556517680367813318987980453211933920134325410638594188272421744431014537721136601125247140130621282349647846637132890096297082490775253171224404977170130649683517813918716305546557272559289464834197493916152243721517706590942308912822769768614284731610360537694565374222581174892035156243074775742614747554996728599010021935153221092564555394762562832102958190167550952187939908908509146763185767592104936368051540365682563529867991947523042868386929405914534363935001447554632169840546045745136046246987127543705674161804125707695358355299816045765073798276781031266397126354943615653173427429333583785999467261153860003505912856763374019612489674654446020177181224902773539847701976940553415873164904707238125420338638660189946897303453659967571415511777321663715701018514099221690144075153586666110574739281075848739907471153055192182701764265255068063556934162264023280144666338877588181456085574638359071954526397716158576181819924696891916299166954976494263262715476872303701391270567570167679429323371329284492508511097123377678146530674700253446771056175666697252549679220804290167744443814260203154206560905512264191026946048855190501350793883478038037845044757665488887106944281552495631368763087986233449942792347820929969897435680680268303471066926340626904306138892951967644350505267244459525889147230680800963355547666388213878800892329376787559358698094220998199183458413056865789161572307213260513589316288996284494407027009035604451910039623007252246248995515256784166603689280476081494654196688405013719998302841772141057115429326533229873402548726797224852156516837356760529237165797488199706064793212505294464019903018538788446374069351892294460170372439413309447824885122469536812966492289003218565947187491293491027181299557024444031705695095602498344882641433108676282323059137415729059234856817347439922062321471933868739155234623597936497228639898440335796748043979097079356224593533887680162995629761049310292084941286531376581068298102503851361567231727768193295020481072494777418899393864314946475751101019151331362950616358549211754434891590868516992368336563069271759093896621179007771355637448917557792036776739984287782322686610363769636684515110348797958240941051944956557799925055782473077801779148119569334586792112989583389898199347898437636472722230078856161473546760321625164633600334031195489003597040840019561612735351560915135066480248996888625820577661570147925222759011039558676258247100097894812930949212833065062244297670461152469949651928628514565810634532909995904912999189233190057646813909400104891136157541082090043049631305107970090138535414367093587725986643170403253460758678291666652062375112760749998679083409673574760672947566535756215582246626528164445628923255941517648405425690884713901541921836528940676072387909261537573422497881160767726714186421413329173584027022735613303167017923954762720788511208170061855584151061374363016845909048613986958024561997346516649486681004070523144015561370696532882434532706314827629507164619351447012599505288149812258716845004915387274794888345464784572214449696180033751227796129811843041616382217768205158693462568794232040603163590983938136017176568639996385263004546316412944303658881172855774963412847153093418413958215003836759655918734701141461850911928061303354933194621707148109160444900282131637225232933361220456832428659097224248733004746882496122113397754925000724172860320674606627204731415083412984355829701075812977607901892339478760647276076208818242892613414856737339839507349748426402143531662263687612004595400121920863433795428393537673646203076879679685564659679221052326192542469523562872802797524569064122005739864076621520755372646342856470607904604013061590156066580232111903916031470819181079467147430121683557544608203976019430054091469242218744622268126440065377642264937896311912598433037419900344216396799839193303216546717508011156199863841789795416864070756125605479703250775214367382382151951267105472630846544676753459327409771391219223906889174046613288386161359895002956864582553195477090159685135967973231417443848980217810290307827485432029652614286335877194426506672740988673776518195040605696774000946105962771695547880574558617843380618205148211407886534259701109398871883998930001311154455922692274469678136469575793273972722387613785048148595304334455832303809446317056798446746229221752737948100895268254525584328605778922494936798017409319816295725151788420366651672732922999428231431647651779991496926883958924236597496950567013555224498019856852521485091216492900471980089506902156398188898515070946428381452577497561786580589773996857865423105261673804238942468766497804294225945361312356880329484754382923123726020656790585650584069705359671318963743981376155907208025523701395455251179123340068457547280117432335584621562832850760605030157955948357982438291139235735927452109727535094096054387187268178753729374998609998868265925707829230127904026401978569305836746595571184941864446501278987149974422484263800464764832539492056714017226581869309007765137660209224592674889335757411902823491253730894492034563837426444889704016914408870401866647350770534557854504354387951042122484305713984268336471914122212902101006695172205673900994977810938510426748163969493506505214832541567205877494645006966279416119720832140841058759023398079962884905339978741184455178751301973998798813964539188345195371370541505318445514792168530109937976971198865785216016977338484430882640217665725609099986894858674429825387526749160065961374305451250928318002143873148573902253253699155860532413661427793964768474478587831730329970957426457688652708230849368393059553618764150015542142180506844587284739198895445872005867636911609054672109221990482348442764896536977604811965864772324858002863342435447635108735639238369753712689343587352266866415236286330601056354814335625944708172784966245609550773465160029756994597180617156657634977727147251537509150281221446726369193975375196237243982379705127539394124357983904554127936067961343099574847252534812757883405639466176348799137282316992795883287240331414440234433329656483591864398385219531627187884535733087222559862028735570572701193512631328447459301345470043433172994397947488590267045431617755977614899171526764884935758280518818034751350062025545230376104814659326987298312496232954930526523227201680546211684462923235891471500818484705374840609901141131711090370603538359775269266924417837333645753582916196025585521762287912827480678487344435942125167860256712298416107366815108114748788427663524238639537017099455326432271948761422660954642642769038524528018191767894563290763044836833159650381242998201419604406904965798878057034233771828930517144930796582247167390624544607916988934262473237720119422543021434021797215888780126220884343165085773156150226346000326387018309257132578470014501445845779774131858983445977645604743772264774204284474065626320554375484437770789773939276926127401389358884197499679752872880439410503080797672214787754084165378477230042693031208998962968504805232584019180285572707574909355662975117003172614670403446963320009384063966218634679612845922126811797188093254846904379658756043580012427818150644291902060658040097803329384453156717166534878548664850918730394504591021392439885696322223792928174194545429254554877442383069219987626025781125648146621500599247997794025558970087933034985421029955487470528685020253181552965916836515960524838071798303447410067266903153084559922122769649296920675899067219528049907019245319985548705138447300590811253420861993979133131527368924219059343816499330080078057989330888189721360937184723582139322037112235645785374628011229462844682614506895075558889483965719433249499039054045688536338772889017075678623143421414155369642935846178803733973665041171872539372810499412806381812715203746172642239040857141029411167258564213084074221324350964461124725756091544511757712695303055402757303408462545248811884053555736361604379902988610317048451755322999171107441844215889875785830005637516301662113759578268720680553849904547546473387211589118630735080745552293063255484586125878140811585639935643570365329915184391724108248497663005450737511582860071391542531128284586614301723477682559284761668364513484341542349720173400915924232777421303962843307016743123535433590753182470602937916564338687058285212619752557604190376199986017955995719133849188660741349488944148293739101610695699730910782489988849066481972920517013165167903493761054220782372750169502868213883911267546631732272503769829426472499949431256995393892338490171108895037462542913855291513758525100525017997458783347791381270761058782655815993626244057751721955974858508953244489226679369543047853629153343055433179657155263001868814965793578584911583420692904515151104392085407485460411712391714892173544014079063342429053769146868497476197654146619965841416676088130028017058487101805664204769771608726783676821726383376508847636018395585371336631099724573962186285083161007186524908377227399270480564684755681508669259507723619869222818026067621832764073996912450813265627032570119591958049808624166448464800198043441557169111770308701294811352772780290626894352239829059612093359332134342072646772943881846686849639137606834613639743213327170769498589923034504843358200534453945642735490567556921503123060856317263413332084273138725091183812816504425701458426555471472657608558395483288513474096961988396923315718265135756862660892166306026898715424596400644460724483772305220976010978409641633031261331088997362914989170400285169515052501289033029249678350588653857306055209408197384921652108396572500520492757131670286159549073227522790110963676297343753850201626467101630806670241620999373435800456081648224984803194044669144098915999455178342325025245402687271945914287268805938047184694893592378770170879030034362309943050618266175453085739461308426258759191102235693531024541493751034762286544360610219683585252208702609203431609120036829632162395017688234273145895968497914061252185082116715724594756098085213885945428799170387314742365990639871036918246689003882177400935432357073809821339080740285306821736160291856992697525537220126317913840019321595031923225683194088911704137741480253092504421764096036986611948420319062990472411847281772205794309379769628002410207922983972215480355723042307628960955437607695468478506549542047172116535344114617399534907517556630011685099601799780943331678758379783171265002532681091110950990632410756819884103458233773478180230571253780628071167628663885360089492701732298838574000310853500271790351048980919756721086218897514543324668001691165645593673387156808364360777004736995133454455997478996082801275558478105226413550058603506425679573035440700614441524743155437557569097949755681347295668216396996862486321989319180593935439329662264345060441725775833998331226462347363256180254082013415149436251750093902315619511610593729252605708281957650479716359117099739541315656214074281158013708230368685479370452989535420169763519000613301649415256091544029300281651395890740303664436432814546031181797773051944751893104224517565909697591941003980404568020925149947256577608009210078493097213591511486782587835711556625792124880972720459160561936869251328707263392598278596172886351591822248754971645747601944706153002356213408569047752144117248687470331758122409012573191310762723451891557748185562961857180485489777121916678661742386577111046852885585224516320278504536709719846359597975107736419226833074636296600242694620156977417265233262803914598791070457754235469408938474052269908692480668734606829253660999479944950036671666280702877747647069938555640840590889084402461257694830858846723690418980638365129394775781108281218578704518279086585154591763922975161144928098783881156511234115341091333766151084362297374807108752396032013544379322858091831179485014113959920202207722474712858038728722122397455471084942006867064924007164771940046344923413046682383468089947726060968011026531161045870978687336263569218018525911100793080424128854935383043471082821624991361983583415124599506278635912183363523809107838866166611190517723955939552337687107832741693971518777515246506226170529396949567365346055714833334882415010575012879435974761964932732223866777259112626441657828290011647177529634357722953959089720722876753138102692885415099410560081415588579423803927243663133739073472178238863087966916794884180085381716965682221188793051350456882104554543306337335539184839448968788573744238437262576795865156994743269557747217400746667293056388960471628728184457449249903145786374221435746437710530987338347521365776065695332011246905408942665104628028062865907302122394687128344005806514702131814854853881120457254137605440899328529916212906305261969145396343439201844570717989620953432380318839511003587418180965664822789138258317555461770956822460520351953206653225614833459238109082089323767616182780094201111044487722680943958582802525519046571778827986431548462518973823729389108920981838329891285858082262424804080996707160178022697389635212125949128221635444304605279492158876594485809753958743943246032488746327644501226072724239989651644148782745385190169123380443831413739357018250603186328385510353462528435149869029899346586619303403665647679764829989947465255312808950493092469395203129942573080704500194188269872588427969167958445782051672515655022502479574944966645752416817713514671938735725975772940080061074549138787742611114352083718274565280742898861061634579142375950340234602123455806562246046026938345042509830306745115874284377583664941614057016873438883767524610810812809574372932471693887236372127271793195583423589530510450487617084478375149122860283685498936145551063550911792840721895183707273785974479892015266364123874377671904462629434670827141950811093555874784091545309123918692799716351675285845985093976816852202216895833827407096675447630343031045737407766206401757505065837792516543166488908291184581519707290746450278514240528194179900909099637430890862583308299633710660294163049864393679180753460180075119630821205133225126911556677358303943767187618376218853444918890177954297741537844858793326076398121510956401839890889241850224345163484008112904133893565249378085327988796637785400504039987419639531281019121563360309600218750631165602460627909907680591040985125569690219688101654258564129175335086624293708741763350168595619781317282447104663172524972097550227486036524566717015087565553251095016591702665985634789694306500335036236623538048813607443984861695372683726130849391012294301387544515928305533423797844618626948217997845546053434017596880552616045635065283626866920641660498914899237921628388866560703476124057985482728439799394007367743211979645051788602457470959496234765103625715045088373309548972157794714421784880133241083885118900740807541198795233176880339092234195638146644451842064613592406416455960600184838170893794024475204864438935270811285061385297397562038629841321690160832483816937730961088637727346898556204699050693260318644179208739572449889209295505144684199845782647841063499463213117264300085934220392616520764618585204295888763386357264499521408514120175389631647910941606273025082901833662559165753202093166008429105479097210240573424045158244509643052705240929005167817256024526845706708624541216346591674661925193723025552443126446289644162700375149609956096400170591132153765479388487692527122534275880695755772167119942392015839001682608032108192421934132848728332535488009871995961783641832716310805658662705153630264494368528012668668690735392401815650823537724271494716602616160967380223361990252503326683551888609959243312706653012746658758934448430242252841489182613712739467241744842433940112868986637052547200547597156758306315898482403827866335716517127618227287886669336068691446688454030809213206842162857893908625579578703923322012227541973835320164632650079055115323541319269089229620182262788841804746678185589405404118197950753023584768961493411130347975433186605755158460363588620711261012066449293920661784317679159664334270971198563328051234046318559726331980479291748328355182070551056699097476884334705228635802522885741184232932353120950216121821346771148668989119567644823109352189860863187816665372720331411049461234297863767930191066007714801704162307293509663840692884271547885332921970761138329535270403335105486465360415725856073069987478670659842466272877109246680819088072102737082664089900269217906999082756941319084021234920569715703223806797461962478312887231492941582712962196928221260872127237668591452957418216153646314022224847423960910986021776208127486540225112663620201572554726535310362054507399073806394759620958902838033882086909924303726886066743966527176458961573710994667804693091695168096802463594064561034996597650141488604553231369072540114787679831025794126561764258224460965579385365418470368763476493782670381293264292789550237049782041571825604024684620115140194559118815531304679541939333696400194846434356323111000217175564359741870219279018144644955771674436957680990733831620391460364013158886431050078669116711232925350235434553384794287692176347497583386202887298472641072691791206164781384567649783695508430031179601189719778257765829269268587239351640609842389667430373667227558215061099405873426885579343880343608006772688381694051214219708782128630018552239037625629274548711650382839122239055093788417611261123606986265529588782911455166424152092780822840682702173095209055739560466198782369934203100658276491534103673081909681280989311749863807219565826550461215364927747632911760642548186939126968338583962506063036256163533611340080534922816931583446206298764173600617418634672192179504997359199926164353701084864521629463773252984873687617230217696175107717767271420432029468714377864219736746115363512203591350213019392473144549973285819631156433320900902249898521489554036364922639728025791668177776476275780668100460791889459480919789513103531545753076149672406933410104769043620357418167183815763752290661283532763853330414117305414681987902849795062049016711438515837718983236223858693515757242008244461029257002021183547801627514462797873166014112124044241597446971310962492890425159954867142268387471592612740236655976143746051884500129200653957101231871208441076392010079545993422030118054416240367004020137409384854636569647971501504960866805361099848456455742183184759625762312747789594958867236860119542658073222075941629902731571219017905136983520846325872433376613486488495409365752804609971330996581317642057921758817177040129628004228714656861422656508581952651270643246822341920399697523039613333303051495053543167890437890924037349976467326194186375924860694923518101588280525161935210556727461195576274632428750796160540486146625400192650034311665922500857311971416688597392152557620370982852761178398546714178250319482967937052608221057974189225401999921652384153998407399330569342220473593797338714834145261889386310649309407111455542301079486305679897882734975169268903931487180469140358148807440385847404595583071773901417382510915029806745522498959307776282360983714398079469960412918011564962527928887082567738028667517112762497446510384395196120038164052708471797805793981664768825355136288222165598210456065296824812568928380606366808375285616572392193043788679573042275769252396821944278862582643162089820464792437430662541065340452144158234240602843770221424825546222342209554534927655233826063834045505932299980753767185172751860439575315390518649528400782851714695662318257036668302592063799836734125805437943418641582310083123775701174353624760137047552228345558096416742633634573301734528223541235897134257898328016141983071824297706107319154751434044636255070535516911763703641871273011586538575239286765061663342057421884536765616034970116816420973783613644414000075718376016596374922436420075663138879181853534719983309835066397076029361603907613750435623235319321906727795120854184389209240721427552399014981648034214265883297156177012265336902995799911953727850829059951364557084016033394099762873513821717298032072004124172438363113575112660228804712364948844683683537273650968209573677784295849806357275964080805570518167762316792291219548769809599169265415088174035023242385084097670508905022181667327770694043192252762271565562439616574087492190899604268497733912157344254781269956774298362860514071641213358707989074659217996244146521343012344095556866069442896897166765040274820884362408589477009630746559320453960457103138898632055025721257404208236434110677655024251883614358620643325606898211628709982248684217186883347262900721515294199962757850248130976914361709579916465261035255480539181892222776901240181922584575070123137529451802327766877525336666733158419336905276056911808310444838088632971942259488068479698824993349881612096752044515369061232040612498873900157808665161557622713775178911382598698690460365068450416318503090518824727734390040553067173924487899809194903062656474734829577198065427899938502883284153421725055850760556302499433896394886123973749101473835750876898244402122512477751121855120600188552015231933872813149211955643651370574086712720744687990026979368858594140439270659444175543616976498433852979095183147879183116633142488091643105310198194757537541574668126628932188257849497431359791375194820175212507021377086713870118632746293839633751932985774094276103245137109104077417237085138805389915661624710328141777752563924177630353191632378984550530761774684433531630481097699346168608790937848009277107526955802263345953493327928630705670082981944556489635156259231384658505982519749160577933775076270214305476765341913108693902295727734030968218914515638807324724093195582350219493596207904975567706384196745520288417066503418868185510075663208497560951112847714232707244479290539237986992524942778475296421203468782411859453734340383540659032516110279037964080655720208133578812186970793531472190044345113501426924293698478322802964702407613988786195714783871190806970748243115520271011051353078888790951136577978378220784457083978633231955109515644073766919155225026497849608581796642466305209219579739387036144907494175712166761175757325791097827128118713796232862852476705680765974767526148780837546398647196250564545217891287585334376668024215131252424978731723758391416124195207765864223081785000283488891371293602284420778089564862260313090293520082149342217904027189787615977023089292822761317685672810176906160575492351501122938829893703491641910971712925315488432984486702861484048526229305001311054279129067489559927150241692062562449314556454849076569393650935559269980762980037983943854632527390571777171257738294451019757654035156085908800118572211181394843409602919959414382454761297403263207411664618201225372386504553050746740233850425981491522916459115426296697492920873739290434395259617188312386080026025773597419553248446649303646050105900035895645884947091095414853189125647337168542496160335581123813548256065048570692791036050559124590779804073763263082725221219678045159228038444731092736494667716762170016824808226037530284544327184038051904012183055991156887308709496437475664505675711901872117431677281026069343005052215336156547902779339453691727527120120611555423634597845703670272892072497836080061374710631050537773739935034040299869333360757286202462587017358325769589392350320945911689638562514158911657582642141198938762826857737846087555506713681949901052639328543131171763863102327037196493267267304425068814370576670302602090222264786666263538346275971829429440498103148186382545250931997560198214456286349689020997376399552538037991570470389696882777264835127335358650838365482950398182333323176599428781773511500748709062515005500348545517517444199585719626620693282827174337195867493882045163465830251077279376084043117883131718004525542445303928004015476713872672179482362798647073582460416913213051013306268029416367463384397435861429009325637500237940805976771205182203058542223639399990498061528359409611557769904386251188877234174045927755722196849128384966496178614124407029522859495130077568192370880787840721581816506460890094657571972213761393198532641105693336227518852184197370660870467162433047932036832265340167232582357429105269246149465534261679758499099933182963081482239519013490301678212810834021243930034970146532845552511476414817456989018361378170386188365446362374684213901513241042566494082275682328363423850962781385202760824763008217293501874681756188400697586987762420743280810185381581929514276456297687449139123432116352227523334281210999747657426259907694571536218800975361371896808932742068936671102827183620803446836316819758741502270590170221261071582639321909586723234931627034794834373378777840885414143181500711729164631104606605458804329056131328246089734999291786828305152437933692957759414090889243625890896148633336853220471803809718804117893137552242901304786112192385757770667201440564088835895500426836024485647681655380325164819586277291625682906043910381733097144913423557402548560116296140997744768708343342893308824424043742297320844939531053499484618421939539406746330569073292583974085843446277315252646764136980105679000124396563293276078440967593028766516659459541369579411695444806726560734392615589560177146184066795830175324399795192512054537325741160002111110945166839181006915378931516869223219421980998237623382777947391045320466382118566743766468626509791047325690376689032987907485883981012161093884173884653670301173385612426948166751355917114692911234542633595986070802684473371158011802114549233930885650964606488481765165533594612868059820939834428203981156031988710488419781643429144285601097941417929103500459749842274287913378480656797103443475912678429091794748338812018527020265115015876870379630532279852376780684458681449544357276016749826026152496932408440900658280375532897577704840882318744954618420393797185546832151734657908441767957985581343603922799578556546786428141769627764325584183739060084867242873717255107996513596535559357257483236759031400048343253428592514938623745398212266439180035407691454086190694483844214482959028536672427986762505040167997535654913077859239627521800899658873427443298475772220603658285581457861145070599885206778107544145780256178000993788740857349472053854900320921391884336736899637133602066990258115863665580895051489253204293047494723485002304602269613975734033049256055344813631014459866111920536309195418492420801966704661500088144203733993215944847287616486539491202670655772691378608381354354907928462323766707320035547636550673171865734712521371882810144681695647993346625747751176137522226824060145427390903891320948637856270519232511229056742873380084077643658727455283896749165627339557773349088542580139118697707936791467070735146304759162467055935337538566490492590944163127133244989385194633150499400714685947810091660377897863985800305047099255536839942042422838431760361983900636036332602911678368362758478551122938711566354897035475716875127239196368740118083076445207840708561942273674497199041332336142912914416664603460026388962394538250555599276779097398060399693297984734056122129278848654230970625748650820863987271553584791542522669083088630314166241149312706409103361202572350554264572439356102240344152751182058860028025020331346729677188131623362171802558244098125631521829299883128977991812211150721881341911944706899109603452675079279831673314136452064952372011942502114129895059446257544960907972515772187741950051758873677365611921609637644268740640321460039603231728549868686842423431965994177591384066808359544605531295335458022762931052829538742227116301455115226153801975897749249890827016369160914885192641780670417674614727422489583506820766694084434883450568238024215833553849739996995501813463136317907211748178783798658577246403895696974124812115093693942573376367772893049898004413575092685375338987196088090137031369589979934489619702532874393036552406751031992053517327650372864674114093776322347568004890481877152670378813313044815573321721914277019180617373269529083823179287462491144458482666581724957965242076845269030746448463519589961666504051061779721708459028412280205347136874111734521219223946343421178351239795313497324192293750381542224024661553838349541661165194047865606386985985940422158027514401818347626384963593758786960445273772468072119501569421655894534150157153747224423066106805043096994363465188392222350521099340111396264572364347023439433478142716414933793278833238728032641999488151252121270566113539037005959866202895855068699835161368351002936102690049032876954750376584827677227644149371023068786653657904167210864474462448864224956296449904983686121005178297794324378867206742409732657095466538278881837267604754531313773371657695553501183603271017207650349639491093368544787273593978711065717707455645504504247818047513738187205816630768230612912640901066196807575167266414529537884284029316916808158823656546505569435874747503795926877548314159674896983411554192591298144511884038081293299228002982964854178256870749902034436477848538934618470405087845887289656429754758282788428152330280940027263061805049826179486023200598218675096197829730688453959156938097249489037408667654311493091093826510864062305663496190675886309247003024313600288149876328979586654650262749506425391956529016929308140386045924271017884480079603539268371042045501155944004323380293588438255432615905395377637424820149946179084495100413119113425005899789414084076540989802848786630394539483530796931422441407189982539262578758281451858939923868968814580469119209731005254456842667284327402612671456103799881712216632681727269888571695586095053332982753712028468143315049223452476088357174063967956112822000497475756518237174942008023324257754621073508017929175505338717005182015745663992416844317673974596716729798911214513306531100196265460226000200259885401640513113755934678859893365506372783189151292034079701499311952706102038761182508163161025462901134071413254432149410500745986154465075268333712309208695305045646433297456873156887844904753271717384304015641621604664769453165530039288804954432057880759188092593908945218008374966611560401191733206981012504035081152633360258071564465599753219609527978516843939834898720755823883562972764828391422949432990654316958622896766829340735414247572583094033642343529912628932233222822769380075459967908549533158881427060014543554330724295888124090723893280858993032052961907063647940919257078486362234426427398424220966063354180181924401649078560903777954301246841669577427481297762917274850129187883257861022138234554040327417456208089982318534662597066011974114528400987505452803940265727980055832266503523033354053361780616543803341335825572834056681483383355373783577754134074231311888384451623519799974293869921686085469259046544818985494125135830598365648120914192042548870243457820178047819192796715154701667128320697961862989048692853914224725893206744384327671269035185852468845342668919840262360167447360844266546960639592529655380846825645822352340168393763121934269378889799665303111119948899510606413808662911619686999572622088789479156492824507541425847934050778752855132900642859352960957066383981836522996359602245887280034773329514860249971838357594042501128343918036614654657564918602686040530647601015626086616331015890155950120435120726907018465845675830482615686198408792113456312567807085559743336238892632788459764028583230224940875878956076483197036976783567222297673967626109049288599682459891479914814040862206037790066633092062333284239849938628862170915598842957296049229089689658342248997658490743419124646274555712933988580987054103910871286907023406077948789929663092643320498433399940342151221622704860234772174498692663217933202292414888277473082626625360785179669312122014263466536178563127519806622413308907667537902239014286708821545542233105293150712086844296104966517738414327311928012978357069455890639671265550216823915432463223105064673801183289834666269582529491148602222862875576833209392367199974769639227565971928060991196180212293972558084617044566126818243140628525550894168160974534383462398751240020586475675441914352034850312787107880779292715002494046850776886223926491274616668476901942013398081171311067964151117251955496840780283971932897578675287194924956865017002993789013983546597699121138131462588673582049448474296192200010320810738410112017616937285689498759878110188741698277042750151191317553239993794427033589607604529764662148894359622060550240112582670365729672527773496120970238563087555828138864406442333121068191300170160975491257530257095693692620385178800837465459869164512269565595747161359838393219191308181621055512493632860362691270681417839989177435234664618921087340763421039204348569923299519935426758270276597992731590640256904094703684626953628460328742761712716783182492178359770503397667926457320393513394549943980988571992113720623183219793318176137930485294992680508380626287440555961071071573565098687016846746088923938672583974190446289729853001735561312318150149272184507845880263813669282078572989058948577523207232835019415607635133708819863981619760227188256202193815152932822882955506301089650579359395016370352114807871580108991430614716604156643479118551192927637721179160295471041822187588374297241392031773683962597617859043315833376967017694299772319240692210825717471650821414895523968935506489749504294460281112069907325376013192810527827933760905694172161928258068087611414719054359603481411608169854084519300886854329093771836648482448721480951071582288664970409419669812237650753857186952120255785260554478252317818459943095117129528166988479272682244690016130744896006987268444838677081509004733025224780136984006119355041249469001994831788639913806078076442079568866433621647565141869240178205959169438315466052973659842517012971485192990950138025824742256639551712950069972157760604954366477192851657810760603050490585624225765128490047424339930459989043434074487988061134673763199177715871661776708806925045907529372628693093617256594962573540422377598678562663011252340187795176507353957962881408660665249248864632714384539792956461254199304513109567949504239753552271820135157722659280030460710364083029933379837078768455851640131701933579624841742602731590072649374403444312037907885413316951957483079010500004840000456318208755519754374147707907817685226966275353327882855696121320111276575776698063489890714200309712034552264981997082235616980445771391274408888606012849975028369698679533380022909890095988038542541582822813232295632256008627681652140132649342030767963767065919290244161339646748895427483715060699216511216594198564862349158575802019541572928832393733483859724403897186804953444170510556538243079009797311553880857907458534642885197408607735413222188537239183963231539802238871482505375307937422978412166677223292681429853550526505867106376153774649776160806677031375568055666929813856835504520290624114779318086375694714206907415839389041626845522413478907822030638151171473205619218306586656651575320132690724959860598615513905046848637232507961987451518275841418766272064587819224720794850788780303505070509578997714338105147003768396634895213639539805868029855027078333924286163590561412670397882391381622074517204241082063659384571049094416915397008487706558552515815403287186797715606900531188507512677581474299955606222948584656512567193075544642680943328333285414754581123849822360988994504654378984545358851255721982326997866719249262531864145486490621278696996905025839454102283170694442482231030146015272837539330792800432753127044644379235021982221381995283230887138754825290013798257509257632931822334463289522192195055894278128840473529526045146146748204487822609718375357056101450929904634515886903931438079383196461795281885297246446602076063936198673850022638160732236795370403434217398034872670272910988443023001116237512675644443271448019804257403948437065914387563158842508340027304308975396169490581416704600121599203061667054664856677122531652844201327797099233203164027797722031349988240967676189194982280989362165324559626391816783153009538506582954246271740612685773669979028994595565131037208421998368321496772618494752578769299375390983001973842767092531530499421603637129510742646470106440579252656761269979339559582880481459634914053702554300679278853004064060278746117830753134707779275085678888729394247692432863798302735146069545282392837146560576905397908134825318599748274261181013147587650111083009284025223780702798885232865630995201710870325170401646170588502146524847769631523588336387721061878944084605135633946707336771088515084545220552993467823686298645344010257478370166937428807601431040391539021459869707695500054172585195406587853295398712546667737185957190039455926843451038327004926143534850597355804350769111225982706945777185443058952870912429690544967234812707543593439993219669555820351908730524788830700060192465675983775372806144808013851882926013440575791391777614695481182533861740320514390044378194313179746061326831254527382613309355735563711847708192036774285310285759001744850877909684906748565971064858198888082323949093752772693219310388580672261028496638144045745183106912058627587331016234910391872599731227971683468780429048382120983805665437506183372732931719918624802716827038996557942604866861382459277095505903203158301244419424939929923240806324078257473595294244459238748270018334057692919448983488067017868834499287643290783365787071014272987484394156806623786963445838736938598829151626543857257310329478698002414252452338040540326479812707574172816062092774238233392014707916291795676384438848752360770202741942930019073275058565234509007771687230414164051116661286784148333748954837573041676297864789659121344034899359580113587427859603000847782981762914008632149399977766555685360566428745800763157234772721180785680961167670099376547813448923520148677596883007786255689933998991315599213092482271592256039191159774411163832752540219867777987766440367703194533218140103208825049546203727173315246271925556248061612332474648216344169806768164427230867461064558364456802622541660875391821066478306951965838135414662815476530796092974641399594329375479499852328486342490056400368211843324671745955377391197101526564815100894638215355931637741860776759363368297889641422253352675981802126770987475499318640891605220183520356876251442635013181597272813791636133599637241156085439103335953386009415701151475839097908804298878282589642565126290379236870529269016513568272830483910048382053747841394718469628589685415304873913376099116106384260464276967641093750100893846865993968217903890614820888552519361599026492345748340322490756677764358758142152201279232651167674062762690090645091941523974190620033423670950698860804141887015694089326153456420948747381629234982437418028430011030941072309310096652453692000513147601096316637531130965102911035865194198420762528867244184181779676929306769962459006648375294061997447227798687552190042802085235777218812013974374050977128695186319470904211959758406306583542837989245604565641053481168111085514595834056350523100000028819066452344942417930967208012434874742796280551258726044479255740439381802378042326141642604683338785034299956927180089588391886455015112428510802064855985433207419051162142084001399122491903074958055217024538996393769714735052601973472416150773888128557542802344674260460404688381690080704551145026856367607465818803336473927961757333723051857215250883920055232249801885724061912785089015644435316508757877505682245695684136632238601676882530162750924686362276431813998801191303654080638109089531222297856040695284923395223131170789761648360504197489130216530904339717984014848977538199659795427216164294001863744887716725435537704710769542411881915137788817548281511179871007810847627994853388200782350978762369802471921692146171139133830703068564020133318381543283335112902393153473508479586309233224264565028552155378207141328994975240165725924109568018637230035594190789041990516062090940960416181711510508811323293955635823840274236469985719986757564353673154183202215580596167848550584592608467330266527405437878051457750464455863633303711088806753989113181444634180862182647298427881288101982260828544431029992497944840743610940645701170640557174071412636936079395184318265016836408778995095599098018743465786507987597594254944773445319076951425446345380290851643039401225530190913700944195065165110362088039748014587807192967707863698382931304732925592023244039036789704415846853592976164233659339207097668556969680123404263478322556497493754572991952861252591459608116870360358469605777760904509267458518698177987758395317891550145465402464678538785913803538296390686632588689599377485261274741889881598171003796823415801839851323810417799310946889346024792276377453006716194065353863469049753791109398962137110637095013404447378102192974013453134312988922338284953979962182568041946688791445758871269643941819371183418541419212100455151352855353658340423994752390209655940756284084841334483974658202278788579988334728798466418781288433396537173159793028929651747946358307488027685960660843172441727381061215550894000761222681214673968842597997459483837073950497976772497992517610204349744471727676017079380150375575626907009076858891910211487414370579420837716665504679799628923569508107210743576163040342423414935361349484446810793903180497090286425622932217831013429482085503172111433221367465480597311916036573986647823756463647560910756659195997423515653972680394877546085024347254296001098987306042251985093477708737087246190670821238213330411691761130325563894127752588696363273247883445593277112368863219492917893009725175524295087462310886599473869738752089198214288865366483189729448399171180681076001513904340510634550770589186249144612686852820386713976423530481129805500659649389323010312676633473833471793844273615972656113261989632065090817351600745656356801728604892534424306345015981681845207749011811574679817775535680555305204250640348570130055064914261736915584301197689684490425473375834861231682485303314540648152964786322420897507984131249605491885641509839824152391172308234733578021259096662893989876368010977804966072085613945653072903060239853876198473407451949062638546258979630621419034542634597625782247906039313227645517417911968410764747166827171443765509650264590742631573103881151012108630026142747459998673586489786439117259687183743454706728433710678407448926384989454027231206090909085975558196649737119425646645549684902155526382019662109051714802663199015366399047253134821832408722140575542184160242521146583024904774668560383171267115349219270847754295761105294507379621715600710019392215875509023642805877601794903145311022213254816811961660549275740744633830826914701351589293544828903194798561976223147682593221009424608857247005986969239897476835756092472298238469144133972481114710433271354998385003327185994867550880817193926222209078779019660420613450036620968618718064548276569187056607439964950480848608553309069753028208669379856281149926617377918999589771924104166948363676353181469902082240467093563712476607567617099419708557514427607188523976392967790343252240072400983231363601100599154874973136475325254598261707133242940349505651730803658748088843839684382526271717753185626669729324899314473989151641352333339788400205785258469916658471857327463473855821778076697370290982765952630146048678295015863498293745837966081579631969458295051290285074920584411079324905828808543274410752627213608981740799080523213580299172422195796971525911901365969705133497241683156324041109731152133279827780017034019658088111734877601717398410145467308722587357811126420076841086006114458833996298637175643296974570829280888142095538856256170245828712858818149787173618089522708775921205345034924714893798940272448159845776116910543017555066368818162583938715720713742529764367249430199984934731279151190148007525469893412158504706151854530913534749017019068739113970308359595789327833147476819227772602805563297785724686534379294028248549856366059747642588000127272329311679135239484782266483727585822624107495298747256258354482394393980749102879964064501052252868147151195553587957749673262012095593160594031158731903969635851602165758476141594519119005580089956691043588528236833265337515084026487276723758909201711457458083212182742141483007916710546931911934551365036858282928966868658507864407533533198159086766297648604172287961839797766755505077607066205122316934244056953635312603007251628806852554238467012683887154355702784576165009930774435202825875106939349211099034775655428266194371595857610641501405576675843979717080130763942673112369939759804989234448255826366382678258625911018587056960860077671111626100421215900484135394923224734822959593437977192153685943791059503279903761702213138464409773268796121029693706992204935739087118562109750803827564796847990311993854081840793088314927424190584127287312702173520831513042167025287456571664723607180902833507527552584592302630960298586768953393032705980134039096459661544769461355635346977521429177943992524481888783710183012188667673080029965797888218458569896003005185454842061027709121715823281305231424938072991250231316038461397662597894696402537513571599308433433872135309174509459048840729607823076595543164160434575800155602952538787626338640079731086016571002763538794664669821768051409657236790511111299420744669898727275762437157712976144830338292168084153884264405054763463476142400067285527967810138788609594767274353645285978165846802037373865878697087683049777584941799981148825566895461821806167835829250623727911100744070349967536714392938809165076882159412703148616736656150408042783925210473686067583335360805207701906372979036390533861383407789427962959191118055265276594064943195575692192482721776896928070464170887827221659665147740903121383282437526746183037930240982092284288027855986720971447479051193981261095237768806821416370171890846306973540901217242718505836873854251205159440614919930105440226083578316316438041374489124365293640771207270472259022333868377141853327761575384845022280492091816379747897449815346565558595745212900642686359204419680411949788927657768205337603763394761137224027581087788610470282307498349457546179382932763093836801309767743870328483266536928990002866062840732763335866838983930433915503386971149808536709034567477194964911539884273934648405128488673902718369960557655557241272830892607339944754662131249546256935038236855323604353753051451795602625230051952587429933877898721987105197420567075601743116852375317487721739677528313429515432672071628692480006104812790741541662053871834527702203140360276597139120250418775335977913908364354628833204010041845609727142343200704783370666931300714338797854609045656365273073501641949678771848878165283398669988898392015904003389335178244450730116335596850282358773406244544304704353493228026040336744861971805653003641913574211302027999169712176755698429636606523325248555361548183120690060972379291088444331089763685309186341471788447540624472152668032693307957791692627098573269593539851219433830857573374142956336032478406352915715034028814486399766022619585452183521875106903090966877672296232501645866551987097041307194778147493228544277309250133426349652968818082880521305894274639631565159224120468561137763964044576315740675617459520582290757225371622605215518086983199041547044561535010477925900672292760418092244205218460448330875807967870145940302976566433209128697548843078373129556334106857936873456792893866209624308584075301894737981736851523815991603291641163339810957739838626246966490218022710961460608883524135894918200535215308376464679674317330193907342479409634909808814566431506109541876475939437089754035651088765429108785791103689515720948866131382511839887157255711929035033447405512888095712982969190517354327855892619432584094916729437957864230871362452749302033239830630755537256366813104819552955788684814901698919672596906534556951614258754611011880546300912392159438537525521646502900201625297864710000861525649576283437813715215796968113059170515892964267683880655917001181793645989050754062522554561224307661782683328835890213427769400457980886177193771602509105209967417572752336815355091888980279639696501624214804271428939014830457410262230304612943060971307961855814999498359596465883494717977021256518457948106122142147449240043906200145089493490890694781002223654765537220604982624942667104981060421066680040677056827033012089706184197495446814753670651340295684349964506277644919199263445894538527224369056842237677865258198918457411091362152354975228788889835168390090121452632357734148330718782505103271410409862427125843430992343902672369935602258880178159292851365415760745827139206364117161654976036975958020144045544651338375164883737539841069089120683800710016383352103440851720159621174799308900678385875139966031564536425452951528451191979178562259760032479315041083154387699825496588601188447802883683489287422705134118514497846823856244771700900986288389000921099091746447507876737182410729308148877054228951418559343297902019872276163569758223599763741955449167941580652573710049798174571206645953656101205359211287479955706150849621791066493762954636248112234824586717118265970500864239282964829020855515440815422197374381686114796859441652102636716755084154128621954524483040650374757303696877774368723494744571975206091600074142492598836203872247185809745459706610113887755997625672917962913533463558964669323079486890915140920882226450914316758655151432885760760504383214323345513657458876485277832504617056374905037149022977037969886527090383918300294422196134132469507806142776961676717516763823840881840502216488720801135811363539747956416230040667111083891118688887188778096609826546193138479422450699317339526345322707031580538386134107252277095635666302560198336341000782095159614696088924131502229700493065969811436766992655474084902483401653692569562940674536643940237082468552758488238635867196828273566852990045978534725955374639994619286049381309547403973343636625375416631462237627023088340836103271746807391534451542252099343566019964653547241860535515739506783518469367832674054176745432960853596527272392525371026529435805385216643780979910720051642273793247917092201711567672068411542927126305278312554099901052040546685761066668723158305467531720574801638530358950803256001986057603794847213471279369470125983792401057464834697723825850918505599106800579261683690758356617244910644006545196815208586496319948696814986167266236676507460764435078423608979477430259966657141515464378620758138605964119356438537496801503811937658084567057164328331035668430799960110996815595474176192568661805217641347253712459009559046344809712642917575888337632868021369562810594278579475451244834891313620458793244443079741344454560567889256449799289152846573650838902521317659868821840393136320209668909365369686116973916322938842407430600980857720748335973993588097018953385425403105061149226314588441825573781565914293017394640965546524074942315456560981985744402641801015228303387137360064790907173289612749560720450784826080860832722932241265646739799932480659261159127183979836532948384563576596713929714678362406687413343941441999392931658626290660930639588234330748390232544502880659404179835901347862390424517708449272511206817059673690726298872001709629404290125667143006682727663829380615672194801070679824334549685395414842089568875345710861203478939276919847410959151454327585178843967937929577230729686960269059437878667147055687952272270090480917377814303684199517282899940769266887374431801780427269975061115930620732662198263157174940492659393198733959940073156496594785024243587829898092622085303233109658184973386140684089166227254775975813470268799843461679371104407155956344240444157661899258157008234333213491258187939711244067118819562765255219720703351342738238260074860022258376417752033354805484026940900854252434831767442959032314749327553286011282727036237153044480030476482415952963003414330860602490000756029294319376049111650159822833488927536380820646085859056511980893674200150934781614483475708582656055990599143883726299809543596242732956847563799988852806747155400394950771328016440231605778806617538802210276360607949658446552993137880913191530358413309589369790732667727628999326159113719776926208849339235594769082943576858034232747007505077487355562256646009929705624251125808903144150528152194545437839725445037096249352955062036348217429551605962739454846239462423237941620833546126435632612755399785883490442481318619725218161608095754483575431936852671967196261755251045929031805796901915569638867674290450876816237709496660220289733306164238359055898190200876838695339621085185761322795556207506724072879782818542505106592113062786612500242859573413030484879555768842050086872937438081738030200465689184899128481102321789729873789245181598834859388337303751954038736871303340470474758780420711895269893846180015233219734069275244584401962742269987592710072928333221377329701947977109902033552534777574946800106545300995641649125094024437004062508340771363277364222231519757008744633322014888506049620322686719080421681775941347124210531016981078115076334957108467018420095348478417874815293880148196002713910859709015973708621161357105726202688677844865804595182100588442393284321601414967344039109640867923860060370927588870725144721305393693295697818539987449413290103636511058937603480633582632518356138093703635602322775534626477409604944385169120171814796813516928914581977565368735110029737271142806362599843545498675790314634022358982136388921396432410005418859739936689367884656109731953651967255472083136492520314465383698701274465713005243291897389052713898981673563491433674684498157328140502279490184690456862639563589646829979387028756610091487556501770977820721141861139495769885946668150734878414393853303378020786540424576578891207562361717975073993512489471326233796971278041568893844707281122866228820179843540384615331055477130229236778415566990655582670721317738927715930231792016428937236659811054950008543512655559087532273029220069917078702190854278323747115424214452571326099421675530458219637673363528317511226594827210703189877747493910066137263847168688547204614609848828193897089646448729946978062093253313193054735641699508463848101904070319928558111201249071988293464991417352542044851424562663884991768268968266368514230987062562558518839953655847473069698459439712985692926215563289648316735879180223353587345650249239232087311437442613664340106017604896492442334384408436036100301799215909399300436437574056237712078116679773879809086424752292722843109061227995434698811926723580508250908454565161728991670255077061974635056344257562386608836843222956961768580314678841889527250153047640117163536448152291107510842924575968391121230461827845639048739250523080116511967302408160243006081416029336862920758839774613113329320719813444515656481714402570526017888193495169852339830536050660108362458634179987201775990719157405242684998127195871551702762383634257974154361719181400699062315726116642219794408457339045686155050727317917459296742214585597668935464088023289485801882914723236847729354301218191349492845623048756169572433521433939085765644738937710656164536197517825624899730033835075593003295667354530068712812726197652812564675890317690325115683380732873259382895230860479748147953186265142399102945514578422335345136816035358903083679815997685208330626219465094958957286126120055109268693514908411106911577616975385489040879236653205273053090439212715641029450686552262223302823950740764328885625749138744942575825469475625788104404817403199350219296380621170687901530295369008874143752125108914298104693730777157010743350714389789594619454811135958528814897277698020186797216739991053810760960579702302519315309823336656490481250388788917158421087199894694184339424272168656001370090050365709308934366812740391484032355463691447138073936218406842145664005895054107145234004087315875469172634155317941006098931282706672120305248156798061645133644865263068636361453355586788491456219037032524420443105656136718653209947767185835148852186401784322064788999040502713386454691711111070780449549352842168602027352834309892656337226495221285171530126581682302866218024402918179352373899339974010740651457964619585988377352133833562680280913880000054487093008685419511722041990093056724718362381754160937171981013825162255442683377841437715062083429020981260178476745958013183463762318047076239024157696189976749339450839574295602692069981881538253022550965190735326773323858711803455018293071291742088671618799576252248292252492692270777224590952998570926325917700674838178749816303627844500657050908427192871330919556262454468088634714446603899074812451158774789756482997891637032034819080714997144885242360598899711420764756206342464262655335834727311243154568647329636742247237271787760114519158258417250370579066219586388164845065879066768042712536465311092343317623091473217666516194763571814272763551321609484792775822249481657240968416070603574329177828580776079206637951109949118883799811144352170061626040002375125017205809069182933172796420560039568705968464499855450564416324835659121583399585282933255070857052468340962177941778823856142965513363421366383903702503752478163604175229620315839861290066714815010075210317319079918565115417745421015004547682055728282403440214974756745679627611715397820622553567963987172577028914863650468772843149145722570136078277781524691221207124750723800439512065397858020858006182318895453524517666123916076294028780039979278939274870971927030766284867337098953196906793605941723122573268132353788705998954681651541554370985023513190568085575466734252526788307382718670476751405567820749730149742175991448054708089900413346375610889126525188446632558834854699012277857924924340992556231296157745406888171287536275816263337462495164767837010803795191357556456622570490033242473054190307765603706020383381387294251632040287505412444125458072114211970219493968281705324331197688170563765001888879375986749120395131100371055236598005012702552354160495623386777542493679527577634141768057674473757661404386670299510161498380401599185437517651941685949660276154611803090849992224470760472808663555841826881004859763944553580290929571481579936131259123117171367307851425530488273250350454329045655470265838759136243502811906256165764983208751992183515493241812010396237448198873652378701515985755674769498957165170709055836850979648995197640702541778611721691082974295575701260587812001951481343872681731841682724928262835856397666409916311982142373396070896222632455459684413285586533558797726279885727500579213627044684239314300245992490440913209900344119982927490583397546581188903979945020174167486838170865166153613696346625311022974712646972873077057684822652342259386768677882747321985703993373416783927522543256885494739702344652907915797942990936481937730068059445301763355618967436922730704460319846266435695339835946118265957026503538644390213679045224481271618463397542185189445391185915298555048637386929149545939037731323236839586436768258788896871631229361589940148104571627988725270478766701908058183462318430652864019157353823613851521096613871596096006265368291816520835808192027561959429093589023692469164223445769151469167937110601828154704549006173113264845766580725384044907756431108438972927040973669775021166250914832814119869613747564124791080971003947067343074794147740431373169395954891814773128614291953172832850264829453099688842364349407414990264847048840646010125108994195798024640232027869361024153643763704439998353182390894175999740544471433917543998552138035825931011268858845602065057033880642178281416289183618365401063517729357471478362007262633000249592201459760201073593704114965773671023923036426513603556852750026732355770936544892370407596336211365244899105720589242450238274459922307854190692024511732713564469254453295703740700005842351170853861385166844815908697728358768950816424868752815443051114835235795163001466881646953678928004685827013001841031831574003388721963385801347965039214848290033623081730227343523560115404452218664453107030138473265494307810856404118187990757812128795244350921390154228920855441169293441929898532454260493388705037318930868639096992250792653286310401632473857760076174278766055539784976752651568136653329943648223995674685586033539050662994944859525692985929124494989018203554352629267109212177135606203627578621444147474309188190264748714035027456170463019834934543700696714759736172235802332608050314166253582220002235493493680679460946954515037586327071630310921812877492853663807899179156263329416129408204179572959975153722708912571281562487445607250138368451977954474352201153650839750360611466708930111174735081679839302176186287003949091701354837650138922010384112074049256151852403284290718636698250406160949044163487076672004924416379339992734272640152859813047326581688460138979044063954680936115963774765685168508771074705475014627243719659202913586090713572644263175997082211398827763754081254799534432225360940166042620841992937002970299911519928865200541402336589483378975257322877623603244943640612840675852743636924990826768232507333951795993356906603383291987370103650637345021768202894323698319843737306206690311892131145823049870963939670357062980779304980495599767897453240586163355577249276739208723303826520225463084439782458578364466814729701003209315638432044756352798219775555839213869210449733904511004126389467097248391500350834446313750515786082722314840060860515543089476647246433719200665932388598460539206284650558943106170650383824232348781578998078917018369099289416241856433183432726582784296709108890276835553722923049445545080873222961097143407090852850104349105583016744626212338703356511704101694764806760605351155516643700474239509110320704403894934738368440068539904103102682829845811722929546157089126542061096265144048019828557915965263171779877472967207760186505141200360414412519239202882483379047975474283791112696613129671405245593317967737942116712154015039114722593499364732633851487483598994247009269845870911962753154470053401419415327190450940982257975417485099295373680507977256765770772788362410358989253737258874145466985117770107377894286825173574387728230066102808258165282083673539341090290261061454983798722738291408655134455296116031980401147300384328023806351456953480832323674671062715511926366978654920371802147139622471723012812826897901245542421846208951697312887812868159770085426480582169544617473153643903370831595953914730983486705442903706437578554051820656027167904479868901125335715654951998366423059390191222325153018477872904872143792923570562378727040808427111231835570240796273866139454495554960792051226156126466593617750366789951469762680096166731383823486301523627982287719381653941836900850320044815847551457316211863893370581388628310129612591713319492385839473580722695223139852945774181006994652397756414115823420055771922118789563966390152537993449498851170259284361277900742788437681146853978631085880738325058274884337216649004347174708307864990760514754244790297450196022497332829240372884473374253840267017869253870694270699691794001327444380231341493810441748195300183931429092863252231403581441571859239768036492437685387653745756738744818034985651936041855426479037596043654196377377122435558712706615579525987753208178507083962106110309142331795149317823380242285181026934253506229257381902733441445678356033362104094862331020105633395408044306022127652983703661957880497372196487443714906846108167195713039347709824241994724850089174017882175926776777581371284877172992192338986560551134108270551727949829952227080696925081303845635189890653710434535010585978031548906459615063661187384658852728380993507117713202541979469900468148424558043495145824415767638544975160239034630351432243070619902974676467879636278810694402201829631316009166113558938008920085771581946932471553577387025753320903338090468272227586871218427688411436213364015742985254205100227426623270540351892612575285543397058093214508123314223406452769130201980500399267031641350785328396459047523360521349830416495588333239047633492318435007438500250985737509183135225734869402380924777906629731902537702037842525294358264687328380826090624521664504864763898298060989978934397884095602751795380261200206040406870807228301484118183954757063619309274752302656570608708872374438140582061268760500024592804573581622067012813328535271828819897636833895262147455606128491306417582053884036057412091098366632153763759663793537761545913292216923630019608877216564070896009184244497937939978789535755616248825334027492861350215757398719774766167570130450903005562513783597221420420043004590656970189662339682233896264418724025595197496185718756742774568101664283304246996257959936333300861905537788445969070413731447774270431522705890012702299093452634674169187111506726567353533045777317250075560870244801584446644972917302100724131883663655787696906650286068362191410421942605642953663192206515402221472867365515922584046758272542082205052810624805515099151693051305443391210149177458258671069729323222018589136192460993806249589676293958313153437988598588126594133429719020744463320189497897574923109720954487626024152190727834802929702664839626206859867952115855547458637932094409701817439518942460429063889099638202138457823413389536012053690710212870832281957653544165017126957368335778532053257721346541286429883902726105536544861889414400363679313757312858230169532469196827146840148434207328156806880419514284486803494948747116145739387404469872649560963600525362664085546727646143044490492923119103611477032762152199980560042052868278998984934066676971677790730012732900647784502030464165997380508963051322021082360991149718953644767858126949705162573873113629315289157902004525895495904895745847452997331403919604749753107310352737678683720317846710118434682360972735485748071878122273026139629276992790696800384580630008961059303482660797264485830813132041000130957235389259406808636440625082947478821721548836391349901054880776489128388579271305200330184088575310380985811430451596238819536827982302625242280907330097219193857985273823519979773436046123274104511883042433187170702331396165626423519816942290701320634361285588935585911206378227270637325602111828652692854390892045630526328612296746845666759173929040407741850380043468797025435537910521991589519780675542502595143507060402281067025847190353291911808966906804135417079420685524897479933176890801620493213226151244844469395020988555061819323489119521231427757277635083765769540411640182213471224427628861031544527272511718133317632497329197441665320732827250049532869869268186918717118454140104881885901482054721775862506223246870878110027195409234966762425285876513004875471441801731414671032689497270561483359263279634265727254367743982231134770680228566120908685388910452824648465959240575795018846349766152813905172315879061192108652253729404215025722147937517345940885107974001493896522751751026355413211786590835277066811881405329259895478611778440618211194936239312657250624106035083812327195762831674467127836648438888900077031158341078803846458238102949460559869247203065948458641959655020231902070193255714636957467547261954469784271857479906069056842195415108829654327149926910250335760414719601248150433175588845247705075014568239495337528063688780390840766541750088841981034280617148165396929364149449787564524812755644795685406505369380441329937660488659896429918722166632928051423502619873797198119074187080432188400959547524710877658923253592343373870381179768338129436653222102666916650610575858411248721928368252657276070395024577918971555398851979635602031372396800636526519743535584552916969039160645650547513959400154276883279900454509490563542741805900254278612195557414213768356400566454960937703131518307647917221976624760570860309552053636693256254352678211999926031095332934147414951300154441383911989215637211493843159625920495511452178608298729857049874515333186052194309137563151217444727157373765891455111764245550508017142624860697339446554335636998340576754721353652249414708481835296180043513134625153226611497499833850408308232473385060465378610279196946586449982550767879691202988348473478711095682417018533946550348736452615380341768062115679125978364820108651139543101209586610769178552092239869464105869960586947898510637016040526595717020107139537792485593826693787523752774260674908356390991614347747441333923791349089814917260375828396204499460217309329616001425755642449731716854617158550962686915561690906638998019487166422025656236801689940575914927215461064576065826144427546012792815115898270776849054207776362244019448265533842690200922427369498084377000269423518202043683613950385277065809858868663470826882231172029475424890710153185985363754149415339483142783214259825957938465806385878815333718172250887938488689068697995238032214180774321141381739218057817637687074519784485068745278040860385651479370066396671797350572560219514806811250535279446308592361846068110868141802462682319159379230953348372027064279687545944768416815183851676472229268763276550680451012005516550817263818271817709901984747366402216077845509895547313854679640236951825370521695416417707991760302346555666490775352587568078806480936800998210971846757496977042948981476987182778017586783823941948143216138460998242731733729925931491329043550854522580635994562300837358274260257344597751749422117010270456638748095131533786637100853044706817495202213395950097835420531143488990892537872194105132753318714346714362924234079199561942022935624321022641984438765900044310720529759996294209436465427437315026237239860464994370726751135571067504152263171033015490572148127972267798757346220164214193388798566037572618282774797882669842784144749480327543407521315371889849234099889156923710073374141630866628430872424238227040880999470902072207404490581623973916630477440542844803094510862668487029538199384844426234992564205010760543168553592116313373777209792765900340952580869798198943785361110922507977565229100138340756318185734491313490860106451107229638867459831765738046691577461827624051999002288653962180344207517776363690322874168284006165487299907844452040598093447464463616270311630437328968650126442957000367174823367637226663666725674764097085423109189964179446023319430263587224151184345011512987544779354067667755207555672442512352945800370941166631434888182824714360669801848980690104661581885490282014657340892858919197798821841757181975403174073658161153404916327963111391747227713659451323118682950985625700144140814624748336998404628395009352515046429672675943562884332750962345377264499975056545596016458063983160083255072029691637579922022862456732882913744638460514242868149522607273385989544192293188878449612808701309948604553113876830482383666453647730947545570834219954686331931540181203963286418076716855465298967237935350856085994429811903289787275130483043554883762692694772155907789604853356034993153490249724716172069210041053971754945127989980453014781318670299736161302904127117621283174306705168002859508632815976460814647105614168658913968973397948141642904944946677629032883509126915509329131563735837944393156170057656996803337129918671108983085558710752754238801812795796103986263548800118376418045913965966033650084155159993809687922012370108692887683931157424014495204688219186415523834641331509314377171523720170129911203399002293551799875890044173900255117879993041112494133845275926692232163149243148628063334705601958174600139917113112032170820698143626855054971621152461375980102629478062968631072067204626581842057613217202795862500346908552873813922240884916910832126969230156538122949435165943460923043079726022662937358624599605376858258270065855808661222642216914396867514772594993484035633196445978786700237323887868080738336080942826891884720466964181344262709159233966740950767846371543940403930050168474011094305421541285243765460388702219366327594649415312864172054531143686239463343044954280478512792506163032185989043411387557171197304483660362130373843941285219440133486938363262691429856191064574436153694163397940186665611673525093007956859015481817874946645499754911513525892177916518664243127130364878357076688827958352878926544845161981775953556078529466096191571732346486515215465222649628084834613651075942817333114801461882435769722854725044511514736296820075846728310916991214380708547175658233327199716388626064246811345176274257996943894555051145636510203947803411713875090669262646459962917379770301545205600672661432793138128551407819892400986716961498852661714569560118507489022387368690237712301430861333080810877368891513391597224245445148766418899752038481505590012383535335742802590908570682408633021723431135464700990595452552805869631082643410667100295312170250684711566619516590366498635993017778263428086121123227771283963819550576346957671031561177360200355770520221176914476573794448669552233463031994917643149880490701148783867029033742997608200885109578977475745748570270530536542320293354881560057910364485599981103750885838636821598195389981099441857345489745525437496579563106014631353040181065747339015238817245190172019796829705666559579143735668943524780494183072571362115826277667825207763220681332204553615030298604143606324277005802639111346356140037898869694913757394334988430918291210149638542510913777163800555088176922587826166218129034273202544925355432736975266996261760590301948928598295759849340979284387714650911506073865461012591160406011124736734653863140682681655166875166912116217749423725370293661028555920264066686867435460599808776086040940814332159898137524115568057494370053071434974843763482928560028605327694646840397407579026828536924333156831099801038094630227236774444418691163272409294879302229148189738729554350908402301239608037818913434282746947367184205195144666356928012069475589683770769113767839842843322592224508505073622297303098720144566741068739879146201873003803872515952558153616373210451851495254048065860507214080549125201229431537569107887198403471698501037150597422559880877882167268406838001661191704029792013000303058442715876742247025881591225640587082196051975750929521529009427490796477537158699190829504018914379303696572604376094907862886141959205853999981476150086183471913700545616029839709853384460146184669331012635863612578221135390710725083428217920363136282761391464355524780650506944077485669108938236131378649916777149537586086211274903022885698438708889872266831522760295972798061692616225960816857050902518942200404072199378278821763617212111135063260714320149976341697142806816977771149729237639325466854289260154544175665659302454701883723163661079383504366264107053425709541535965174343991970090503010907605880373817466546119539152546117884966348362931143027317355476007526692661556545061086092449428122229586060575962288188326456009466347003506821227609798190610946757072940831663346223677084990430214066928855871522167685314449150613971919911152272954015754951844423219303362004688023691804635019167857360058401125504184431326481649581665096630862404275509624663135781460699456224535386251432518877988626536241409193499353394875307697407406226665575452418604048165526157322724650529459819467771205070840878506389049609068441995345620450651847335817241207778354757326612524404204356731777426978880843467754881496482425277691577313914067061807702377208430441112947753367718848884505776685338108356704360680088392192118636252740692689997389321327871537653690949694347665996108819921233746230106769527356413712998045199679622905307344655321414798843914432978812097238406009190613019928404689022373652826187780757850887322505109519201041349114835217636598508991419557641971298073062917948026564792197331915074570117434677388926942849469173042601362160655802501386697546804897661509645299813930906546778881049968061321165242757342522543407406038566950212208577920438687763633623150116236100499492788378305497931295828068012504785990967381905740038603223090823892220118016762089236785882259470476363772431748570659341402506479402649626054695980956945485720870993244430558803829695131044435842924607994544759916443069258011430760156981448332597684923334072405806157045463200055924846652413052240460616675465018969539656378497886165355105096823888388781420305430340330241309016369809753745896601786006018248927612098619991497713318313156153257266546746734394631751462150307623960262552657633946960943987298272078349554269659935051760794518629370324215025888574131880005084177669842738092942511732784027214312527183400093423936561987771184172484927551676572047102351297633910061771584396028581683990385110497144745643612120467571829185859068260658334980127509177234016715171413337560222715041449444922709431900533738249631325416665010730475149559823238906550752068041708949215568059225658476613007029089752969158414989198019548146061884049945186591209594269331198062627900429304274994068142628620027780874593294112594823028173675745708681697332753222777661611000745383798653783261272274088153514997675207868223094228663728888842418310868966880379178342598020651093380151982496185575784333432318424941408436842451119582749540141268913847327266497700191620904734643611531511336381758600400879808301483460299602439200854939915205874074231705257679678600976371670578110670258424495624039154507646131720997244380122553355164458121457580988410455149028585095926960108854375517806445323222970713010305427515030481504144297982660551511602374346839382805272093311429427969295935696171387108979295040693695750279285305721937388916046914348439109466164748681178622465712125655001958179443389120117237193544435243887752031635206149845605379482653372561254411681521915849217860968372457862486965703596948330207677858204926146842371894513723483244143839069456518039503761319420430757386753308575305423781917541844100341683673406129621322588363305063488463226297506557927095258397810636587208416172911752870495183312771152498489740624559486619095850631130120326950630791599062012027587451567313392315329076140846168237692814826078254488946388864125840233413062528897895499000820515570901837121431832026747669182401866131326728981386489075653793633166367145053005445865905072818460389913005973880804956124193466353175343314591472393294975395456195410288279825271070491109451846961472027484203675747547482200733512616544391916254535968498423994790197279913755218411437997778956561962288387204901060303787418714695691110723727121336616159916901538227035021753093687036155453376171783105282386033060661902374173745965943464956905164863690610505088287270896271826498249109673480064808003401104333344071041845690536280621565899698193890576983274577766857758414540471102720920105314697528830795445293573491577026529070700999856143480526778663757966555157546178222500806732848604922867731092063507182559216972960733321971871447965748669851946555133260428972540378256359942349426957535938257999667452696546729689077532326607255643547749503179496643103589645531595603325189382939976787870883585106560863334460704324108262701855818399038409458701036174759163174538079523264229635008861533200537653287846749670037500483942810122496739629979164036871788559129136398504275698852644073418311808378878082838684131838477373407385079634958314883148763786666442802706755387390839590335568468555879076475003475365495611079934370436418682515934828891265229235781024121735869716117123303850681305491804949776877798791774718500439872334834031475649982927127678227742563094233163672310522570506246657857328072032561409565609633885825526941714459004710330677136234057078581116156834466694112840248950205390564088687398128312477651064100883055652346255549443102516179275679087490564703282737631112153479958559721539209901441885339011077769078595415426307335701384811132637921798407135692712484266166497097318746273329915976948906010420328943201769808972865164243461170527849718298700679581408927077358805327997860416419780115795462153319077287428167047905047018200889922182480461618501063652797327630537461862528703751457353357842289254643702441746699109140874233020371621536121543238394953037810529562368259492665979467553532285085713442500481188367926966815406509547601172207142433553065775832521806084769066007009049361966355181583653366812587316527408485594033917970607344731643441000168417810555385769113094089066536484922587815885265267792789294125567005457253776023483319721103628491089331332033692343434349581153573275447712306080048024522211946726763517264589630821671975537697721336012167477675823103870553764933724571313716827293889000004362988274802272094436024258135051196273480734941163635434327923530882831101997777837495997116646917716198408115025358553385098418693729474544801442163362972480803628186114313057294209329383073076462959854597005625745174006825586733265816242863477028883602899132215856766292683736013389994719434716746397058859594239622845172071580400052110033392202715103998524895384410266852476216417781049214523217046075936204639166738585374334847838701973387417293494329020603751428631173626103634473401614401534631032393215414799985501463430649755872243768363500984245736721026071626184385478510934468720467415852368180182702741142106409002594863270945320958822030787075184583910954871214577558921044182610630687938339553986971399317408267754574148375981623942898722844010941992510739693309650874983652897531888220024448184494804764823376079618644697680384501379562649836512913842584924762376827910483435602394539027268422354692291980961547987802450731119064342624091845980424212724754962037987500941830532265900608245249226352401735066119942007091593619301275398197065506638996009162261999319221095280655885425870184587998589957110899211060635765048066542045722979788914040297530544529105630061793303277954506062255283273509692782988598108307674629076082282731142410533739350277540905324771072624540339135285569931246679586856370936228677465053144448479411380473737459147200385348213790732503222852821001395062401560471836405316964963403358747580009154263408784103412451595924232472747983131278853050042331394174786692380708719616420652520170842393400808278152402580983180823236830480387933634386163866367922489624839634094882260326190343472792777189259199930811530786687362633786642847108342365271497555101212156024709935521906996068106155277678175422500487370624202691688621353078132313933542672859750750658115379113876586297861868469020822016113045242503596376987815346125848689966087060504425086813201290065112272359545518762837905890654056082322800920656844102983804184485203691921038629806073464361812457315435515853182691135479118825987656908948789621585656860833210866856709099884220720032003453719436510356249258781361421600521403191760899674770644658747387767942629870773678420143016486736839572706014219837047117872987011377743430771357371263068590084993170109486089474379035609791108107103914687811021674833255709430283963965939222766218536289284409064574766643669581198963215439515218541895606490582810851340153181200843908345196215879702323589492583002804699212525295013592836363229532090384727010538403918006502816968267316865630580698257389530182293653323817526663919470359076678386230677872460915773457179747283844372383946886199353884274776641059689811421831682943336852484356953445626808643205976564214361867414986509687775566396123276718018483442235059609308156502524732764397960125025588801527745529168395513816312135125549494930790906616113077072162324476343915265263802974914396446479481433056798798588008088197567162632590198380280747084959542485251879054713841020425792035550078113080502603897860829460432987122486024186268079865057502563937364799928142700250297274233167395535693442458513450488376051395391393710217803190007902886195784759820746637107766372590422955198789669095895856232919533488135694560068268069298235886520552907220608393942458360936154178614007917023431821028952807321135168834046277173799787859758239101886842062554661825364459363003792336977088981067414277588963913189505891761259096825724788009671351362692113011680092946352833223086189900133728180075439596571659131811373323920325424982697772139179626322092281600801537824372199327402427938111382957941739787539180346343266314237828253834763006014336088079000898222858725866267943217718987624615176124459875656251469713747538280435388517831711047666582686738544827318033647720573602432003524156571625374159541843470417557693818770747586256063382866638072838197096817321818644883735850456730685631608927544124314990210807995272555467197949762142557109084938785820034005236473516832022835369569823795395507297173386079886212070153246287861211902533486261109279297911216002479687624451092391779722608222650466776486550075470112241320239769115674007774474040798272297190227503786405688014613314072979525947416952242036699146608966851950658285544040234420868733377194309275256691733835862656719448094356534425102452545488016341108697915948972700580035432604938216690022859600121087801994769341706773311566819605856004511556988057776371216394321444928959156714413495464805422326309764620790030344231588111200934244625537101973085165092921890323283543276305127883700796221851901669120186440734224970665063250467051342836742117087253144814653496612352747695993669912399694692332089225141451609606654353568981436489458095953840310978623270769661559614771195559270680896869782695638891048134499123370666283602360032918002886931795598563179709194616490361681592949593530568239709536159243911620834513220953386518889149978680979859226948878485712909797445945910868250971610137206133536807749279944707444056207747957777462410689542383117504064370702803463552476636921967780170731831414809747154938868459217474632075779625758966032141596996337216809666358660898437398505310670389902382565269674626216091609028589153399345687882970338512970502125502341599603101941345764399108995746918044776856738791004184311024387578861062639912923196202259818750438350758310034308473058118975680105412977219385503270097295775284012419866594219974570122141862584290107645999981051426565928227106422739187850024770220114307993987383130658361678252672617086058517664372393936631569066788563881230403585356496122189979014570710686228234036011786117563861162014114243166580449799018116007058411680774493645324706701021109470796119670590649613225046238617839882431039229603751395547333209422581453400235412862455833787420409148997479935804856769185853499525468278234100749642726668247743681966230679198147313366456222229589620341491374642444681156288616288392912921887110439816618159172495290305087401336041285451512723644112852091664678904143126584400811247918389681595657430129467347985507823268253095152799058607884801215053178302731940041712135074703562245021081510032651505664602515966002491471600964891458154759429406968104139121861872280604904921299141929643005279348920753710141732519082105681073878065872848571316126769266254810722534169767415098030989904235464980360771424774951416554212329048073554793332025730240487405115047252951998143880637424076821740267665586775720464987796899539940697805910267604408718355901521278391590705973265236044535277510694345232871083154644458764314960559358604209426316323781401841667736659792802876285335914403382847651086206279881570250374361674644645518697443280755468115808013423847414060615805291398506675371486280257818697661451386761757561489965919907043846594968444963925983616446700708622364441090168983885565055779149522235488323480074134726876568940092797407848354383350954648607295860726405488626677606320752397748157645099514558912116651528871093682607162621263991090779073714062103549312775242485773538812547028416626170953534600710193907378287797529432667009294157450524538759736086764667513577757656839018629986719083479216194943769593912721329482450433077338621312656621887720531614297533538049794530616660795675483030883433994872079516468225760363752230263287758523562749912964421980789212400633682820794990814607301390573547964166601576187846410803939078008490254445631590294611566474797290438195541495608166489871916288892140762990393073205391261921563213284619953746242589677035286144546301513416541104835917090030745676344804379220826534844977210070893888911110504872459816283405956654179474550104077221917072330547541717742383084442357987072714774090293777819406082293463283771569633629091171961727106238049650300934419598198936140924444373188046381080772920664848140029615514194900766464285395527325089015312422315550283873118457642096572928844546528253320320452024769980038961689512062260436448272919605521626200289369787699285462850497063756833197825631654481407151760104610646313519285719623066571806326522313902799318928694657483275299152983085078648642757117754209556369150589357394397733922459918185239223490653404481536851358456789224652370740295736446004000156861655676814678623289688108959503480062805204537833885403108360684363898010561038422000452812232878304163317580840138390029424217773349675648055510524198790919809494907011527431083190090417886252459531024412603138342392264266962746939461738858732410688403788131880147455920386082996761230402956126580266924125435049394451404595653269753960413618128722675609317077560256966456068286674817462104571825872881593516036208017973904893291396842874899788065629709624986093927165674611786029718482806987298669481793935961074179334599851215879803321420046097537007628270931526282848990096554899104361083342179839628713564743057751542475846174506823125080459106769397881538995712960093416137760170609377204715313506080501231546273561667076127271032025394535308301060911915541790293619450694609438701672788583303371594912058346893604530152098735260492609113594073096414248836676544001583691548794683559254718524893323124857490720558297747395639910381551199876742430617875032288377665783984355298930060494017478770734253404263941600373618759571506926200331493165009452716425481220405763939125048694976451695377051228241876236665954061825416679950033020801054442424026686828054027154560352278233435683165546096595494127358654325392211194245464064723434799988090256848349400595550874949500178460861299169739077687627212948868310350684226533953369007693460794882758064658578639536215614141137982686117522661808882249573038781270227327719444758133686451247754559323190286209649563968954307979087834711609063157084339541092338022273437532777887109429187385294209155576417727909365062249420926089529398605684679018086782452838457219066369267335282100373043561040000949840928267927542156993803524922117596080501562550528551552786006364887579322640430492069320211574368341193038164274649930454037379590882844509835542411035439169075725850679783881685458994249818409642252405543455407078703163262276507442240122458819241468162996256272673541810121139511449527239852711035326571244887083532436041899206682031570255255639393794888733935413346460901992565649961209100974874950225525954414408232883626325978318049667185011919616969967952486809507840132146427972360012465205874239787017911154756774189323439199289223757880687030785128246913277950995624050255808880842617151082939509313247723451149430335438036184756795894325960170056548910248487279341068631136922692243210147111225504220235048675907415601073340707048245492945148041887891601780882491956328992701001678387356556845221645649208926789928481040390255023801231800860574346213781740345533580655948965119517672793897039211262138944656743882541981966204756917326071238260902293585341228244566591726167492810004467782428093200109880129844623265192192641565290004482673753092660095653031382777935883927806180460631689340689295721270892517658783874472918896645928107667118596929631830419501576636972075630512129109367496615640457548321343782559548595484964276967031063516003326461215078089393391092821363544764918576493151442722244750706374253184496346914455361107658411968347745328518544084518263007784287794653170613860801508192871001711327153604055943741113396925010406537638679062298070889467640794425245775037113434676452006303904670732693669285528641367462304360148780066555254620139227244704580328816921046283877152735639639511635667750972855331280192503350989602688040863247183430238746684217079325236732316429903955333399514798082200739675353959941877033029362385233461272406303816209689743112558143905571363132471257831653452880255633900336328696053247973923517009351225362436081899311797555733896643296886920076264457316559036435461132386274500538323765420818892217991334329583252421188734430765869158134281912662980703847081824142553957906253050934814680112481825607566812573408792213946887399130364319570858255486632332895574389235616237420116170040967503492220310480028994613085354813163603214445138191414268488672634058841091577705487294721999243706436413699565668921955141345190674003615720736026326714797028539626942734393962281727487791648490752572303065432623467830087315527830449861382004905907629833335413815966139031836204947093542133452782685213326461929708793813802855895087226950444560947088403558374940592253328272784823717726758727319783729000700293600268195620706058353489060592281837981931930268871075989611470842441905238170212105844077925630502750549082757962760883258973752206454139878980170561263668134816445713871978169696375668410890197360481318517172260898528292646684564429895461813652722201912213798949169192277172772761365763205160000150610373576768682302743899812808543362685947170716077539557790962312981763789011146149113073086601886179698129923067573153657293923382891801993499410707608741137858988633013741788669500218786569983613928378481813309242750037268069280791362734045383011788516424316077935567364832170010191445827828092598515292005130755880581722412050027029730638279302273113811214547957383781901856380557835611910793668687169455867469360503117185801982528632973697155150749982502224422311847920252781807558338307746705355078250246024439395741854344000913187966997967522440405997978825583550973742418160966486061030471821965231830784188665832164775699851693841185475201940334410778672700907374622168723378686627366031007620521748024992747453120945112186584562174328746845769705737977801565583476520928060237078654479068903278923618519341034452480185480712640599725472494129453836141323911760518724919985485757070077083263376592967598494355525798380854910722629356176752200805446013469296103993129177021728890793825240429343314156908449811680508716617799830661475271536870281424982723015178441073464705638771408798468150728068664737312068915373255124063252343673931572598760696963026164204399337617100321518053348766965498186535358179122048679369208041059184677709017867990917420856949438239755291640063922660050017447807435658572493641993406508361734660722909932178708345393513266259976822111862501935707474800564997709854961669445184686812553776195269499833268604062599878262092083830821851427356946449770663817422882629601919642798024986980536677898300717239307351557662660002794451531536444667610789348634929498476698565624482371501852950141033015982863885320023934389687640232247055330711378751622637516628817801324490983603324306227595071123131131757919627013880894561090534141195377689718787546175506698449190145032594103354017494757316509390941694326734082038990175880354244782034050429276756879973239991441865258852558869434547757246070754872517211674088104415721173711934269725357715435859905069302139423118393515152946053139999569066123017535498084909240504231899113322466836194062538325817069429902238746304000236070036816586779325778102596708362311713598776928687563486569234044037406791961435746813255244292423105331758337064009325078761107987283498391826666155893729157858210650899770750557390379009991062772049827556707268742998810681940711608053103473978756190084418054399635395898631861843571903884993887459178528865187644011815749438252284301470493698419184136491614500844396249051560786312559827027682027091799376264140620361388856399729340370562968129845017592331186471567015218935716904053310339935428626400505063319589739855518580893988609880695983270611148338717927074817365342167271983562242592597370040234232946883559266047932674624746357016262931739457781401334724842897301668883442125034556093147994335762000709778498188920608619919170672349200016916662378904151368300322318595762387368303117842880408459572494995055936205484130067036299719622967719949767352846275502217309914829823493646436968555295521737198573259395668847426502281000349677673769719720744842182639139032800688711237513771405613214186371858932361610120525235142363224674958210659015962228730596309021932630139788047309148777684993326064329367158080129421066744011936914724329998265603607384473387981640826465879407611213833504872019196090405046865851063755978352059986769568783022193976658208127709040914197629911705064658195484673007720385035767785224948483177475120557150024515806521543653341503797120509891136437307489426226496763870325210649672228327605340019052951992970960149858741753938235254134146143951586183398352048317232185285419734503025864703919757312828106558094858430532005149041688957040958139571442572241667201053710040672718543955502453079509867624680272470579886356880394726924050099106421309855214041369246650666540475095745900862106771465705432093640255156652410171889378773335712412705601185858112495952555454812932382477371464673768992659849606507228568500323019439260888712891547670149162395783938226079632436678324080167025028534513843491908391857379709951367036567405224761929488462033718123237301616263442003701868698198334112553248180410389790388440945853095093931311007858421659004163478939186969076901239717811136359665434073734586151799012972457378487871785024379378787027444979437211882426237487023704378413650413094195650153039102119832328466050443381030740030963125732346870486544319187298417935134607986365464987959150757808417940066472428156912730941979661262549173015645530513422741838281295376342019045677810710327745598916412463427767185244193402768935402106787937749678337096606502892661486045589546418933736466526456734581070832021706113385545282848171582146366575340831366116000991070836635304760480244554375294691901694884817938851287185991224298553933898123955638310379626141676550939252477377641579845750915315730672355291592139056622826089085746765725358579549269982509360061710350963495676240251489000456332111794811025340894166161562280923182738593386942495860949289341590043563349532086719524844800439341062303347833524888804766099574628060150185651839360519801326337507519896949391566366949227553032361163790055984066000076574453626724845807937568113251745683325071798722338489383598097457365029097663709390057065093331280695979511564725939295570631382552978580211734511634912318353692434515620266775457081625094149664728973196247928064458071613080296358159158703192657537003789023086568647104969934153980204696174271981823603863428086648005330926837496846098587228303584237174245232033279419117388551259155668406774503165476907364436056856813778292056286390821825031642344170394643293110070045788245805720584013234183326578216439477640917745982519309674775680557202775287894508142796262412952786824549967983255392615955261780992532355081182597261176194556294680692042761360666297431375902303917153483394177101895995948614287891317536368920459392063296356546190339020456249754552197318517207430518614869176015922138710787407606349799980499023404881423885596839584588767878289965642096731900715313529177915776166934026316848799850502129656778257947083375122173081782547662943463670348470304472571064526168166154994513288905877363982239347952144593614216366898638118425555060550398144317214117180310647140754133639316987452554454974234625503839106133135668711251028711051087410691998777592763555078916337514676989615225016120307143793020290888392804044789573516627216708573928085772962081648781941830666843668543416365791357354333422771942504168288900992883890410560613144047537807625912127298374556992358312941900942909023834370338306998351892781752300569788526517183928549493332227789020085716795227945517021915199350893112057934804383582422730471504270340471458856862975216296021426896967300762741698212826315703249407846912887368848590030046838797953929305553039519762191517770654086577512005740849552069215774404943183402017235370426803786540283942423432503929173044798150553826131863879599877576828824691918305678327683677918515007654602650306054539047651981445468795958082777635419710252129952679831601789698828658320417446790381844602079745879276659678443945635168063994655396067412677849346423224996997905305073548055534326254632310441506956299996818039446955005372714151062941555763913631582916271360615087571108754949425082113372613461830331996555671560037364177126808486169949055287965017166791617516594577077622545869224626254525014536766539720848674464887001797031963339871760681126223305560854229834498472361162986840116266462832942439760511241839294659534357228321673121372253082743010094569297293681220516661466518358496685323628427513291884164605817521850408500209085208707056715753316261638421233359499957295498757654275961574054408563536233713574893523004022613491904402915304561226543873513353867899814092411019682240329955422485739293611350057747017346609078444526241829220797497477036202120174013267845976026158538262563228597226548995506228735528026955813432151770029177308659745893692015101608439749370948402777992410661434131053222002866931273048063711479127444877930609332058379586333985411953798396769451275351539653951623369341338098320874061503279781237973256835606534517008460610430917678830798145863799223734635020998085926592925895844570572551358022873889909554481513122652209892476174296303367902257773726432631242978137404207796751466920483856257024504801383849835340872463533208387979540544835886499857461620386590113009659307861506475845843727493721855620751474591039481314189192643935190682030708053965468500354001946167767159011337021705428335595531509278390946680164049422816861543539196515176464009099618359725838660688942598811865299893737046435380647411312059239457172063366536234507985086275064804618645878090958942227548060573062197435056433710650513538688796875378685514462077376267108431815184798942180126386067457278417088234200590261352462476596336712064402754379319449782145687560099679949191731956238228101502380333485784720514938049925235398329382764628386714838385138571138937941302525557497079917151437241411855498093729137618154494210849461768669860893591844641448828226228942288507903119454811818099403681603528385095212156119799575338642764916073768145422091284279380093838013386944845981718513803072214181425021105383353868799544566247541888198644833083222670529381627843815570470177386107503157364762022548358909272225653206238539238970006420982905697692071624515096726533116414550377627792407302320001186738265472920557256279034532070441380576903270827318404600292807484522892318404989970339103186726382770189342742373774303859692670136698472698745524884944914194142752952016003097151165385468151012800952360913145800602755504687582070237123805460870491994081188837510766563038962931566926116277428799285824946254098313276946538330431717768104285112029322571935725535355915002499802478693557640911406826493852820763128647176799299560779660492557657514727582574744901072907142288869334958851169830549163123123073257656250820782992726318588329340824526831696770003450515422374153120046581796685479283239763225705730140753304438027545770532763886094627638490198595747962611135395276934521757517010180576642394750216020743040692804113902212093838048707363028293339926363734341433190760433597172152117109436808281327103009658788147873883709085483036053701185775899284889967206144924303301342877234847651949104603345263243065709947673654261187807997945803567478179400602917800858676802215992346843732881517152164122537255694261091095183589927086884339553499530021403995895883414959900189899211539882219351650392132881772231490985576924322082766480475616037296009191918734591276818076575170727193715305455566946148129341692367555679914571046478681278650893530953024852106056437169711536322217498291241151725796579433408749426786242655646915355651420491939080046612118997871102724706240534243754380658802053108618768431368140283877097571792873221799475332523945324523956453610913674822626520616474997016456190750774123449387618311452752738888048385997503169921518653790147142691768553388050194347193155742435454610914193027678688176645924053463015660216927168169710615297966037517021196174746671698647964933459723480913175189815015324676959451204708007339382690350578928429500454825474427011822538567254858382723052675103672017414959992108418554610397888212023994379493150096684052938237499032084377948420358178411885200797042126195474889720947682742545647049998700711221423868038834828506839575096876343184519813270786925456743531131485111969897728709745079376127104714475036686900367400721383418652800142829505858293249306193966904016836838652125255712334178629374599240141522628475928546790294845855347946155421342230344085758608821444569087154666467646283181753326920246120256304352670436933562662736878685374890842018314793928602107155202275226050443667432550071210076506411123275679941723444502615925270186764690328852779866065882167229400297281834473870148887751414600114934394626378831903298844442966316542733075745092544137336978076589239555869248275723266101163674801995526573074547667994707987488228255267764712687871564393571623721659402056155400124318594392057193374940638579929807099492671972175748730042834537902608146336635609237841792429019465831492752012634669055419443776693692002530127033410378928590613545670295535116110029030210696156199133484264688794388234403986003163364019860681810497540212468285496597137193469262267832090671643584193168283193052862330200976006478274339826379416316792973085617961950619738390571169170311786415615565662182739479493350786798321003522333976162708766268972305250010108695513485168294163596455787195718141052770370710000712918981001631976996820863696863716997777732264060568902049289749906520868878879707424880141658872001762529377670466462293865072290723662580101533166995209990918286968897462442784705520826203659201550267347261406569969447457351955423524248537498863546796405461190463775201635617716839752300620148189519360138563705523831322786087013582968319281130014295991538498090328373734351341901593781284354827673755757601441486062305200703593715600499574673356682013956205433174988189577127926562586016732388348530551868170660126569906526404773333261833100623543368409908611179044610113380008842785121787524192691514908385239675905422606081289504251228786471327865071123424952434398902252833888156542181515114999994929638514972047792972058175490979091959551301405620562188821921770266770113614684307506978329285600794338641304041402234092402120664092032795471712606661662678733153019489672793215967558030418057301682930032885427963402672277616286225815650984951026654152003112495839785235113905216669384330652601018306289439280389375260798571738530416056761918331374527083761110492245190178578754635031450548678240773734216007957972205167611239877356033345673125824722090942321632425013763198572473459725387319141078713814526208774955146114016082688830831243477487054526919410818419682851261440913039800734542750670687689643573120562190502490506311151573810268749468675894914014506919152259912532618522630599288733610946487856976479658431397674687138010548770983220861298135469791364162018895718754492643715012028069769234736606583823401144827331694510630841985469468181136890491274885833601259699979342760547976341756446975590619725775424812936413479505685515976211062142387446182710158714212638438602992713890665523300987472274859758986967137878764190527026705654557532170330353740692011170123043573072247818680600583539739377226416442480439898659784413742457687113779937694639869738646626314657857352399128976257558911242899706864150837708774427892247951760941643713830961052840732379281045024376676284739964883860666814027039681613404374145417784622509505450530886651015024007269917837942132964904845875349513485238410291319173203495810693284187543211932949846620117850366720651358590486679390978099341324406817061638266018350366039593713834466232345099736526850463942773294983543480469131023225089027371865050295470297867098838028524610813875198345332886833481826330027646396749882019183383395958291689145248318346080931415289498459077644219312903432549321260224501621244910932263284538798003623877230244223003640480802585482666129393340172285319092023775840381494714052442107049607432076397568459217054457278838571225338172034947099764628837114839184717876703078367535837216022836491897786580952192913464661768013319977710912281580347026480555312827050046586642118762258901714931705660431330651691871771791482754653005449131316023669487206310044337867420866600164434565634377887135925511341181661679936344046412623830077938557141258902732637334168025810635199837829611841157311582350053061611249753031316615995091943597263450500805450888100307817098801996815663437446657542243666609888704354974313196443056578123395413633371084766663041916451640663529493417611274499584491939770408004526536432781444044801969553816367105489294567895802267751339447725912866381218276600542229248080494539528434306458634082703220446850804834578013768346738988601031863031889894407340824148090345249410870146000286235597243073338975835623735759841087613951913182421278264130035569828859411238440281177313698072982168672285200556050680645878823555244109753332198180999776405254640690293015569801206869668655333868659808367374818528008462797389030821354213848995609498210843257875636703296484282057845493483902957421873235602532213292053567327087254173686779821909747323596456110404974337792645081899049840229479364382429352082579217053780737647477729913749028347485357361463803247237169128878351274778164992655640498810295023256668252464054225962307881834182197951972260631646341619585236048326590590987114540848099217248251032412420203792330357974067776161905567016111663538399849146721800070162399848992120104693866103638832444515206943682639498035897711749013363005879855391118171778078709602996462011382929105744334392184820068468321284248889083545965785697947857729791248097395541987473949682279805063702191761914565338188906365252226163678539537012484562146981176844478721136197576559060492519320668616444345079779103593239595096752216594842181058717774983224910518980330142282070760143648600863878338084607605299804081011868032537922421544094789426275378381245342615724577389758285660599763114453014284034108073448491066010293762472148449060245405844814695235894024990271772306797593025499124571455160315464320728307347087432294232074603064419276528154863719789592268324707483401146980106550907818245963639439548574473108924634966184527838318777245801347175323821868048213215304008246793728902026297739058455313666878617761270148487897600726975622768116193771964901142928232048347870014416050089587894410734125256520037533560544633720606453186290134705083376195592739215515552987353493614194657699060042050558458470771729030156165521479544917808990585932468379178006532639872335695335699133285834820546051084409046956785943192633416627475312434178025999192021986255381909991229443686800611649391916173834195424538198207154324335812782618145555447611700771691091591379559557947683131353832604366629398126555855159505837193551898938200524123174815425668406717731833804127801366041179403535042302593040574089017193738691950975508789952313555109574004647479543413763855255384530292625187635476508101688047020386612325605693727094465662496336619927278141507695177217406803221445136050435269219552009174104375389429601698289505461390340543646416525407994528820860379477105916546642575289566700314900599922741914093534689893854073427632298881323478234282800791155757842260229068934971416173224141075038610626106549619475771195790609376473134296052286153061528382185150489610418117747461303721175490316677057513560590256021649982864456726328518404229797066561370696307936880230480304742013466194205856812834608306758857913994044754118985518957596432199511441448260723971869842111537353738558845498828228050812976332165878560328691473529500385935045386217230405148007193589610597373912466349723316734204921410555879475592363313159063148920784178281036430958072732632857854528719715957645207782003236932026204947507221114414989359257413167284270509403186454285328556517631986526060170716394031710737993785825693561746133434717546379660170653859307355592536636376335252609700503475231281825949473294980139863064954800516157153371359909405862360366431129008594001312344969942325990231151317555157153879706945453933601379609934036478161524481045109794982996843586585838930453858835683290759625512910447670165604473139267743835533978984615485314292341618529294464169643782692020568195184520516548734399684039162491255929006159717494620596906965691256257452122124095799814189777556158491130833080697549323355852688652508534696609578472528867597238063685963537890847669932685393395121243084634908432407859932559185490950249101293368133276419267520693093460153608013188935034181849485962852863882169753719580333723575014626676299137532201189702648505145270633401172652804774343142708379433951178493264734540197845782378712906365041436624454219904275438997374988555696516999158515884105233772905360923947480969881896568436532630927518126140151766379062752167965910929680001970388810851264543973412076804026270892599883282581500314146263658119256602358825611983990766944521625414676818632870622241076656264812731600462095172607119765110317957794002692485183860132032208096261467272333490077941762038744724585292652233410136783979664844413833428502509190052536572394230036375543347692658546227597670879914769957722528457129446788057405005606714671006269908566071726033464330471435963419409812854619135198852730464403606600705137882794538258351043502138577036575247074602129408295379426902363530333225673351827675136409296235950533155029187325773696782521990096760455829502173534562140312317756351372929210165011932552183722861863836173934646679052026935499910339113561672659978340801982132379480490947752640805453618882956523426302190469811868159049373623894836883507326461794624261852823079599440920711346043071146191234278599130943837745934208679991880872825576445768406180313439902565144706019057996568333947122306818711278754322021379228612154870532659646201090490195407919422861634924199427059885137021268855986740490545595378067432808902799772154923057834330820084050769782803370790181079537631000409279405645602846435861901682234637837193152865847719473944229740690222143218053801629438978676143801026261211513800581403567695430146209874370050575009783047188178901947777538043038596846916721488207598634515240136345614600902807263270094990758178924090087827383031722684682335285290559589048496277082777979171503993251982343963788466641172448174820535863399490647318359273391364275562013364207168130458214295293731365194990900664038824653128909799078094513931152649153655371873652933173160934723039485237792387847766372965298099344252728571966043689185712172927849052611365580850664200897589787817470508339826676119708475044913865645625775514953738125919476086227940091980310908894932061264558365594360838367137574251164357043793914345168032388652337773221504626431789764185134066004990686899606089168550601656374465153058599504402382174885894164295816673679687606026249070217927785358577906621476742745539886713693855136434986728008844342277650481986429936383191845277385041363499098498823157684099128062024974235045849355000918887024637518571689322209712422325812756216726078362434256265320683785634354042991665640819844045004211773226478127189702544311358028637003369767054915569385627706457699453241934484073109178946077995624982371912348842568359360705433096795862716500098843200772989583531913513436217473467530232507432636010871968916574704545732913810625596743667848590794548346337783583270618700141710949762534129712388542592700427991100694135935150442473545714409438275674048069418009570879863336949539222812755709816869626542178160642488420028878985974379772209668823789193392800383035306037377316057764157516702480361852283387336627955106577641509214209322208225082231493923407686026130098390864042560397526283757316076446931102529654844688585674724716573662141613814962890383416505129726120924216645805039219782889771795235199895441369897775719496967709183067166752390552367724176907834480877093613015638988349928057730428699830981606882275770525738121034816204260977697730341479010161931903902760156819441070839347656463527409962879161632727043676258163880729197663425667218000575163262149512249852943805368752292220184080681978235937766529606740518994231885746227963893982846439152627942816205007804529361305555883532305227009473917801345537989022449016508126866208705779448158151555330049888844215457821608399221697943110596000220906192218172926189553923554473236542852308878012072276645335553411610208194653940282767493254707733843896197794924740182887623452952179417804044136761343525506270411130853967544447171123801991416718249577443978280583490970613682159963837306025674384353752281935674138607424418252399409200026997983793236230695628686472523340902933523956482160003661404556504567907581079659676488884934551497259008135226964121247662980589323111392719003593264966683000787715945432851163656981214133839741807240808296942255195440415084959158197514621727292211109509736613984493443737557931972092532099003573604295058620556209555427846583702902997080843575113467081174846666549295059324845339053325608492836077858402923136237147745664958342440607471874053716901428155454113009644241046082270390597984977315381746499313161863543802602768908463975082105498910132460642013194896568806764597144182731777117041834538596818567599799544649608088999836284184556063685354916570413687693840528311114320381639320336863424156048531991758289261540655847464862839733283820304324029752228990527449605740499712831787069581941661078441261410974715456626508563083869751399382007468191037040056779497111925650634342326213030518943953964175304447207646461633385202602936852829904757447829716725225285044838982540132954854673142925011825230640847545298367159038807537031700305115094269101599226311435314952170304217739348283887522592798768208857380110022157299328630790406728315973127871106009914226344469070233335985242494201426771866957377786731260285778187539051556717190489524465306247493524314225340166053520167515175359736988711666826651879393234704314072741651665753206465032139636148769920720193314022995366045212248942333768991181026260869841647250726111208568184727065771115753325540803691662723905688253769508772978620941463538090248790959891017135691365521705535300483713497704818689720675425124771433091233802551473855594579641891123801245676219454063890312199266149649305532233931968060748524169521614841188963147061829027475120863754986297665636400671396237716464437762912625053805538701883104419304299477402968116193143896855505080631130061000161746410051958497293425899168978527458649005693300714339046519931214871736631110417871933214282947668198016417741608440608857750281917039084922870575623329623255006928233031513663619957246325270912117278134094304886620690018405355688041009004925522932514276474654328518015047500829286943358137292170661314422268262828360668701832923163706993892097047447190536947692871167916212868216724937401130455891443325372238893561681128416933896484445800430760749383491206781682237257606317374231720740026957552122594178625768075278203291580222422981799820853061493845565026207919916409977406212681389551778268501149487644453498753227386522338537510838601246509875995277241899453133106916585757747154692900974645562781128118800749373898822945098605997503791274369764698475940002705183106599871421204930206129100661486281810096488392627366478293968290497843123631999446855249341626772958278009544280888951621317028424706643789167948597627919569467039680670584181059754649970669461615893480723316001873550085407850776654770531047165539751561839527401424333602033974260231485181091501914900784458622649319702096697019008503378484784685323031962899509387444547279041960794034572147700813786688803530862961887260525065477109692161071491471710896272135573899736966531199860042241793266191527313473593122355861862204683684007360015296497010470885514468909254035336706845369038463545833693703617153905925809616543963319539825895903863664542041905872920686739253854463680066467482742256148735509618930834487783137227359648990123336482787633822800871492164953937057131302892924933427426259889331698199344770548969606192183992277047007354285668148299913210460422430345501728699963598622867904260086059962170883263473833234284477285745645368251956351067130865247737673105541589334596903690021955281477192693958469042783004894406940621041541581162003655277957181101578999958615831668020718387349267685820853679936509029630330989596080165671874580251994759494248908162192730470122953677249137427479700312881425164571274403625175616605959457610291851347267819705754879399491633145727553327738842114441202730391874695611414945894993300750299480787188969894944708482814267061134193560004947865611818803802461270454637069718015996771294043109575547700429077119490082704486236832808507805636448154457262382946274349806147636852759131286368327041020496554380187411048912488241237670288659491205878147364198742874504406731449176736532515833912907880218683479421309678532652620645494686917612880879414284391807085704481058683328092261887424497515875245435952334603807999894739602579231579995239851148684483761936463469195195120453433864224182904047732798307144152291047578935588770660808127962681272305539018306712231710114796607906696410944987617688534617412558829292226332782478468974943077094374021256604919075719972014648465469979695753332403130633909239081766953320907002894594431402331987646476666899814214108012284279904463799225342956782130975240827943294622264963422965923023832128330629855427380153822153415065439870001781333857834806112468886857818283192397872276945180643314627811107192536434929004499547074374051998783289734134097550094437549551896912401753327666070627191341302860978498450403101633709982039142509177529348891458077773794177300989032756755363701937111693813505954035556439396545626785848938505033478832656340116379394934361089995039802334086152497766697053530482098170784823807828737730135154005417777551629784235781032979240677025754886781318511907005175945908260368427736431305755654286634422356649367028077912031783226943501867694523328686514234674948645452074531970273070664908730055182284431231428517003053853356565669423738066868297934736064708874414189667764725600699647234125804854764104111644956854660601401506090131755249610014073301973496337493745352777399396689487834420842411485651625823729390099523429763301694708175504558772519607707027819171790456927521783039436200488541858176900474398493282472265636268892006907073724157390933665792988841160382884913196314327736750863395540398459588090695987523192146343403743742683589440706395888403509341890766651892870148209283846920021605103722352609065688810247790163240911215870197868107994723130843375675420120976666222104250077811602023232519468530042443508104294784192966360056568780657944630767790413428822414596713107634363681499358227343904791399649707118412781719541305590783004595656354976740551395403040679529160775004164385723861137729245516609545776375394597124818143146374567140815703279716236814282903945190764539876974713564054885947588709132656164437483773284210987687449768148753035593136363505698625089159854240603236884400295369128579900612434353555441178712834657180072423933352293680935025606694350725077039218289561189686901575256924763131066866683121948801566713211856203743954546199875412739072988961517609901611089428032651165879797718982037392017512148827337374999816567404816086896348513394821661699978314168082534771281520669993740931549476733041161095126581620505809654516572623520648838583598606238674638685586663032823677270369071732868690094465842437328337631298441042301458163079100757567644186082369743769561933626102060732252109355653742022829560168925984314734044781439459242152845386669255097645514770110918413551399480588138752022661928405210734434122229148416818286226400096377013071235497222391916139954909779458776782622025903844049866004212837750806067060340432349681167686061442849848175102193110183163596414476907743523976111781024343828342720413775639674606091810206021454545164623664045870554762453187293400207761592243514088684404831840931206809446628172485981522889096819539939735478773139635283874788223532047498568725375745585828969059680156964374136825192220470967766693918064296313411059118486910681505544994220399826371707431587099017486884678940273404333276324738735235598499594362121232852848896066270479759645991828201033686944525077654158956589961681668897972806348664659162567462032572081614211255141880751380365453053727531973618157924321681551325240434818273499304184298007495396633414548063928110046558122322159155349078266164324412428841353621727388372534127279273234500210359757997828811401966511645676764248630380319964640030344366414321297149273948407070663789140848700832943203221691487493782976126832001133215832651678225760446436511054603824412752145420822960011423914347957086690509446364601314694041946772050351357274916995981844022749776591079862298983491216933474260472541629309830715300595388904961577599940909683717801529015549181383721339201420506873138317749019623621662376375981399397564494949753495313402399417020954813133605093460487808447055295157922259625837702326918264944921714747711966788558372283492352540796835640196344801207611568075801471317449355825037792526012700756570386667387636770689646424037223739558945696968950242886858509638680497301629971615761771194996227877061280289340887289686592430381728614887266070371370714304238982639308015137078334222747367254642577484139935316951423657309364111902360542040647493167485629237295359962197538851025801408288673313281024819320297819574691716932500086470091870284743527389316331420559333073497334811050209709879416330402154383144215137609934958851781737503942017807062408641048180890785291065632208160181192044342693397267236397574076585320073127552619301330685369292013477631509996444279803192964475399700797076447274672056941269808056897614273828960542603285463956966566276441407074324039455797263748585255319945965077447218995137665440424548585842486999917752425797085927078400508721096865143094100008291093760115201385830591624886979927900838102190681147796193953366360209796609642415269051750613974777788484989188363970690205442261946142532806043635160427155424803020388367766388050440808261910491717570559845096332284797219453321563483854742666869929503675719810083064305202379050036600527290384408733555139291964511865484929112734114071907541307329627056144599632963806638320831517575700294501673686544773706809626093125908899018996989271266394655521319372822023155534254895069451080952604591541262805228672407024647684012630247836998897703849062959146412300286331429723927106445316980844591821215655824620711642477283818121274187914899714917886077616200386471644168163017912881862583799815387609447284258893959662268208108526341041350072302507154928704110888718889255808575849829621873928917679680804079813102753208305229047392588576163590247852584981272720038379687876718891462421126106805366264638413881910303366650481623327028964680689909063812209823057358204315803734365240204164348458129625363032223579977868254337609858347794376295518548849386669268553612241799132594031600296473518374983357650367522857691480732805503595522345413840795336375626997952586286277675043704180056964560589633467481882767539432447667126721101447426676270564849569515129270250074839430915086084825315899847624505299806638705732649403217094642565114000144345529909359867712373809191107925257515682417977252807885629066532249403997405338091073122442684481892666393510608023734335733398326666910877627797742920771910659431390365554879864888115553417936732238556479996283218149474244209262717007533177212205218045913854132827771529090339734042553926099597449941276479758688685196619457135168474196134788073985641569072118703505822339888473421222700564479722639368499466913376192120031504042840565717652378302819213411453363391496202505030797207424294940131707208888023563603219010028818866686402473763539123579621059903219875154225249884355570761115177195616276069431053395893161918229142858810640129207861593122757617147753760093175646747684957958645639847184974160067145599264462100364113180877276087573334306694704447101999645262821710361275494171101839767494222599096717810602810106953305706131537447757853554541415854990157416575391307645449411053020770871790320514074648792860041730370041178397155881554849268042434389123490221014822822755735872874111210477964850631763240022226020873048874092192026843808934461986419909640691182875175058609147177080464088567358216071048399545882393188534781372853704663676347069817894357664578123232026975689458683936854503646635773753730544007262848600639087519534930819319078550107304414162587125077116728460702194019854711829620558102234863291706788852574785933158328557242128451058045023074011851234409161053841760855858599940939919570129975420877991590990577688263394406733924637539491746953558019882047554984569945726629493996085234304898603633890604245303471728317166248522556258029528855536340524933370237365811768687183206684071453249109604631991160077024593917860994185788076430341442238357895607656751390665797403721482230189618998379144995667391025376509046852053412043740900381673268276546449896020402891262841652610363285289005374688767187460557411155804784097529389810895897079609739039916391898931795092797770228779943093332694872491919478463291346875495246256029941441541346384178491865578764593447491086236342137165808793876037435964250939511199636399777526799952279947365041388397699621094906960946743459131969461879491537472142797255999334335786298552653662081510160480238672643410863252310921060442635120804024739269108005213626102319063255935036499430456761175281995432668230392726290178978202230840461459349456573966917419294963023022805098926954195191344452574421870463313422095616836914243966522878205410977421484849494247086379664925994311026482707485843022383262946039994011348409417003972495348333605596615357129933486955061863409802051749236562238940410535153423421330426239306764322567970836573648854781463249413990935428562294590673923660634392656435257686014529393198457648741564178602175303204929690786867369890626974338260037237880490638419594499663850288261034208530293078550780847873403720596252864939631844312981646705944300363390006526811222278595195337853713200353997667230034675888376959076599221194706228303547102484165907134691425419725316592212890486770205274445651351475176851879358419403705004830504268554515541357197667118623653025528752371589566982734895507370246043027436331772769898636199851727064229180976660921667635171842018170991414426411296464857627335132656555606203269310313964866926715174661151214598473039845490850184085927242195374640315182710502153657936173268928828502183183839393798896739669428472818131535672908984831129514699730971225049642785664295886144366898619544221747320497273094319075778888899126213100211304911194741066078590760997165297262874915847888623275927447422966541183448507347949538245882277624963103913791714990780526145335647503759336574543942781478015095215198391374821757447350875686134124486500730839927408199074583365195493973691646812103338963878472853720494452454771702260009981814225271498196376613210748502711331537199417680376537340425453032243663701257233606640230013718328603644007293146096512082399233417325098346466834222767648151147975921025304445752945070548712756457425624041053111158403269224157200992816625984715927349177290398205242921316676544965877171131955090149412323932172518426191705716497206710452625170201994100838021734955219517757375854397232559340139152878165113686455684551774544564341697588363538364299709768274959855494907250731816749407928808139486461797745643747518259929861506337437138861878260468572416918244333905834591939532800673833082681824258345216684708892163352664299008113238310246380275212483794076919415635150511887497027836671010949179010586830989156395746376584445125683381981532044955161593463407521416809150944375000297529734261001954359068169343806232603782920865599149300256623734221596536927638236865596793535455358466466052122118531171272100966931231743673090946124201289567203008562092735473658639928652294408073940598803248066808025342841468877707033988242715081356779356057909643105071552218289823660815253844943145766428507001990082296146592966921492496831106797441078687309497574507720176113159505124850034272769987447105619218266957928285990152964294363292912850274293060221158310730983930038164539044440128347916775427269637397981087439151159958066213057034312666128257992225515330337237096243025510217281959262531831328729967595070738830483813000450323634085098810049570193621412251341181928207494437830680636786044195580397742816371636622594346920997623858544379567539029571072765868244582926688853811076802586740081339013142638323591251182851118356382801094287541560207928561301803919602411675363802601618894776161985535358556348707483911715276523434933548838782005964259041518115507988268668971664163132920536180724736276074877347096929842528572505785208164480837564689078194701483728574500938710695866084240524081156438396465337291539800299810860781848411548744342966773703904151438595174552580731341599668043563504406827530427284959723701564026763292111304266618422557009453244587300285401087566040272193935338612107122844243763299693655443826113408968038907406206865166614280662249963155510097516455770683419966615045418127154452923032737780256720220255580712277429784410893261824800683450339630312136498019215973000076256774984722577069032940307263416919703593755930959965455655352572960745436355451664814169605832766395996329821918808142020364037296860392720810793362182776429188393901157592153114569709263610384460875745439214944222371820800718361397547870225043390828894270975553453333329252615406010383582332699147350070887765167034987882335788834232361643631648943606171082287942434590325176975720545236723246879203204668118507731326652534927634510982105871034787452008540464463496584943652784060832022755022808951248151817334284125070494056473875538688922774854084395500658403111911278479375621819844263242364945326386195787900990930958761515525906893024680811647062550274083604914877575348809712537998857766248964625292904862026381146884214982862517581199342119740898351969575139395650251790347686755500477662402124142533912381277739235971354483957916787014245369015967420357920978326067406936802974715436962200318819710412911941326152605164142657191179339953463370736088802674723598959093123781949695281555373225749862680542327963503893708446395166052991283377910575486616188759927199491833615843575693324367337100222699583859764515356841024726335971232103757127959240318097887778410090092374592872761438053822462462168057303165291307022698021929882736365467089605323084414144888573962580168971472112578101158591919106256253496980827612879833731530237385126699150298039934414467462053450045557184956199320103665439901495052267355574042881795056368780784886369433514318390170895569198231402324013632260021979077169141281749025152593594616078755876468579886612669356899697593926771592724833612988006026257818210197055571270014049466910585450870800316760273365670853407227584640820979970982869116570483636786080379593907895608899467753694715150705847646864205486840472437378868096342774286232945177369162847091864412815715953436424564993712563385673648877420014637630790395433186190930830703591080266112344866519194189706986755406318312719979133233381633784654006594797270679876254796419985547149804909094655259546097231319469864684021061517450206118072644342144770214237355924272800129471919320476903478347210914702257616960547618573229868491884664002453857223399254671735890375583372348707825653649094323299465945728791365345515152611077053944399814755157792162679344909731493663173326852875750839719440870948069003961005849297324345219795190919308346553298577222060203949840910680076485210457933180755118357320073663187435249014508005538895752188819513770344581592950933753556196523034128264982493059924170749163222352486262811910104312987871917138850646714758672914347937565377050452851962316659569503637820752249189166020155198100096646533696383849427870748112494735351562828434070045420117365073386702500996229420426517241918511198655267038584728671826892255325894674357873775799996784267338213677335345200730115943018802232521875337729888382883375020296442483668648550950584824097458972380865796461124618446014767605876497582660023988373565192527052042135606027973348913007692311200905562105880289445362081939917993652305562581943697799638616960139928734270111433968138106069215876171832560332354639607305789816672588802055100108145519377427787154284049846103777471931595865065214560979212227276158912950302774216144153769162885694976371632814142300146169310006042710120366892104699777280009014279122445154383633803003943680218510882191577950475514787376579857638867168444711883888770886537886555661448687097547935567959082120603816598119046929679384018213122905162966541754533698627465630213846253140187856815420302601249199285000645121837406733668710694445825542252296031602995035981216038757949981062069436604999777859473761485040014103100661862688246467306848913806961476577143310579038003798340782466831568200091034220371904982150065685375233981100332001185383230489033209235433930901273778436664909008376123039328605023863015343933792144460398054087897021156360978653136505244240667766576272868784009890652910144697707117540528460696609369422187342408793314901941267260401683621465838996205151578449663770577627754131180640211173397471739231905740803977013038299463467790543266725390465450485095602602396981627630889917443989045637148820500482198246474922579472805905421601215238819848068475840904361301612373674238295115133728929633656697674518286687330361752637786943323572288173167947457690963775354742394259353554990765252486074739974634659413914975236783161075566684025575673842344995910726654425126925790415789381678210328432505925490001801493501142166244595765280821293111872244271356064494924749914690966111713439519966445874237430787184358679556818214545612900200783125674919243478543784342585103646281309508904949706908020809763923248721255612710484382153238247862466846150325353536049839560905973095852226168396540357427737415607102871216193053332900041107412212854444761401183045012411275471688822514156579494804296393566760004817161237015524027863570948228045233761301112850923614232704744604667160802102643198674170172194860404144420438874284343748179570972511280801578246694107605602606424743076813564325312004328654222939883307224862532688728419411851166089993232650384583643761839198642921338261416443751817656040141164529372707721224709623384479578039356654053028235804342784335357953812525945999469963613327763346450823164563389589688831854620665346381033826365606154826506968444053386224520503966102464116501402603355656763332113574928971576281884150304426818472773365123315852692729517315394640171647531538557865540409650225296647393309436327484564873409320009865601268717673102015500196225722794118201206929032313198842686963377023257466663542644330189631056006718007342187100344354303864397963781771815128725896413002700381639304550843422446789109528350345432867418322289645275818761880583548192522606850248055701459851733830017754242453743315412233539711047932972899884110361519530225391002187275327134560290478554697984705067243454181878743053339175275130014690853672879949299748593367201532554353217679426113000015692666135648323498340283918155762508412505037670508829084698223560585393822598784942402569237902133077975951812635666150087685942279918014462491109344853928887970262929174317964436970997092806733992110989770328400005794846706296037966082910404673497126785353295730842376974427215931072032416164951686699948426128539317986674108339735428266002067493710428098594191032002741640190331316238098479673645039514842493586345177392209707373968883052944266035916335439941706826165463164512934823695688014201111586132389672128878734786237643793580037471498022662477362025972178667985512218414772086097605495713605498745139201799297541313832905015805028937948462832936670710562419089683706818334199510135575318743855929197407394642039106777042260391478446913747441354351960693932081685927247442314892589615986111801046712896610905045575241751997000955938805202457333460523397056864806430262341097832351397026714975525424709376548165381891576837042761268175718888620205188411633684209654257901536869973922363752959040677599302016204611537677643156442806896330497434904689445541925355625815958382352228737261498921926807403851668119085102052140469653300763076768880478292237956862835446269414850450205486872310625022946088600597775359304190706997611645217965883450084120126446045684218793162177174768369016762816055845492609037443255002821826554905418488951431740950348946698816895428782497245072581928880458034612251697149824105600584712744485195069927388669326156360858774606196634589478523948293860066851081867512261999562692384821154454833363929015365255790410047046147367402454788630210279438198191643645487554301791388997789502849986045177384241745320585924719988721759523348909557552436347750590910998316182995880827081296958102963237380544832300714440104153191074781526505862870811935209491425526601503965052253296633984915051365214906708566458369126724645111444433368252077062403131168165036225015299529372887262939624187675172942967203289510607601183970216113289295844611631881819574585510567612174093660609069198430079285821487622365953200564055125217535214126402949708159778479228205862138733064322625894530579173531711908599087836789181298596863620642708796431078700526318668080174443412342569582972024986345949367666718422901274220870122991724027228662466080623845877758937044987180554224859469048302224395133599753189773832377942826298553221542462774643526183527309988532918066879388161008896394501646694795280666716444198671960886260608256033485721665402386154225627005564407825718317861014034938029050321325127175950710260414892271131593347939585134027910103264234226931932703985752627783349595623981598413977495907395709367098577127810831807249270003124930753131850687665405876362592406548617307646872116669884649905742574584898126465900313728158362697131305933547051623803344522775935882922226342689313265423931229695813393173277527492789574146372205114709387350285706152601827275184015575978138970225224429777026115980649945028132229972938689381713205226046670838701374697313791349415590969027106667414797926508570312160542505444607235409093936948916821925934280172186050067331071363592518610669468495137986673855617921065345800106611128107227648015370756204044384183043431079010497051941188475261446505394345067241690609521930174901939616881682982262362211488612593186489687721152121703583139446640540612809058898916313539278753363086295442926498074279514057772851574891714499195811771657303712397373250166925483232488224021380206452389793488530954712255544212121971855886177134592516435401985183847084557948943362618671438963362794020014645142124128772450843507584518738066369267083935399628244911574406540070903402638461461847531829149693335401778515001606441789041703732808202503278571980242946232234794157459966712293311543848567382604431821038803127547664600368676750368553668932870602866876180086827324989392698972680377234985799148690763262460140028527075733834079117374273396083481380400209998263695749891677554809653647250143167293445127405564770891404076071502284472778060212340627158280010256057132130043108678779965739853352459606078915048962938045356913512627803760582561641482922556206663184989267289454979961637257942816196985499320645667374900015643000554262402405922815149657144510502867929229232086472679288579115616081073225890425953355048941988797419996499343867419483742798065186293765543318626784553629461338946110605922619055292850421692702792007094424276094843233489374822098823917948121899506168737852075856059939708063296014852128556536813902099298686680989967595965077341655474394030335549698427311662356993428166091130748504885023854649408346743306200339841482404013789196589545138467204488511399029956596514308534639276322383383019545811927729031528754181007669241266110519543085495522031299488035830158065912320830407354699198874820202858663511776804993727963958104973680360671809271698949146135816357417561112471177152684326374673270082683623732680262310715114913588340768934942600637059224802987806046334687124428686615347307716951712813709799897530442067174725404666200137514776645713826620199584571853374713286530144971086988066185734804359947892174500746721030298983633079018230936166604946914769565025288495690730418335291889602249494312352263500808777611843228842381760007004632747534386544198798568761830692800272971827756221571120046071418310855933783865790689512791159833094742133789689311550173441324964642274308267023388205003866600446681478651371033630615215887382647116345284946763029676170529772854213060560847667623415747377590974122462630224330732291673628954120917083043127860406613630609225145177701272849836346475998940998456594142166267053718519616837854971159657890222684336641510255291041223485608277427159522366955314607964305789406543942666158360037800810834779818295406970939742997174621520364445520996629829885633033760121534425849312168208130029514167813806060083823991382389112384958717364902058840843342331741959383239566767302860482122289088496797393402159803464991885509960146671178125840269109387561437821560582711076375938666507550006945350312165210334872181666384774867437231249905332304103257944132979400350462066515352295174516744878721045383151591765336140603653366725078388298389711373108458224907367168008559847159319369550088995018914256233904607164933537507188698416590034443204142981542481765907523391869486015519092748502599949306484052534915233338680278015053712057476846905099572936287337015058949440035342838344022194258142667123623944929254190577283451108765003589403253356262542233359143042602189008019929106682876517769841862364160519717366971357757414522694781802458108112143496085488023295490633480019762324612762429243828188932037369045160170847702651147727779032041036925788219888886146524520239440793528921319804276832990964868946297222221256189021751456867614881478203139533392852209557157415494168834598151406502710797122461541462422261365391718318658511082339102104129983053198759512535897323022923927150956872135768862631508854446337672798465472260362570284496608807421980180556829576155400818789146490243046032885259125874550281365463181495380403405313247240286698255085221343027402805872644345666029428910696473481024002209825157805937710627610882158458901021544916198566563349840315754973034182726516161722576561342338746708952145657695657525132779362118544848971929737425745276764108787204054895177829847073400756326507234197159704045374221779144582183098897578202221779244245602723685012006636600632726514955921799075822407144098180306608389417378680182375329382518219105332522654691347452026662501891187091979847966327022150503420021327131542261399199720554000266584219151875654088516698865502886842616724358818191915961110110201122923064699748557128284160762494251644938746391173126915938510048451254880742286366028605117184407619032650282314419070473698701297347870670188105228270964647946965043164534200764351573551481260721388371243956298347752460232387086023158812935133492136757474039243943588337534244305851900904845113080439633032901894031137552745639625426566424054618344306994474509683801863792333438491088918822109610248630302255070279265802383092224568235008296235829563113219487134739504551150653490641270571782145205987707730278696973202496467980784178569073358287127598159902971638930958623552412410034254349036045226139821103338222316412945668110410807159292148091334202359564297184484275014436149967061211592658865019548076636660012581344025697685493433342541244692266747667041506350884089832480429519575200085396614009574882063655923431475124715282736904195598383156315770612939854637770804530312781713921043286869738500686034486859811798619383676307782226419528385792545007510337278992720168813031375957751877764132582134170580662205263342120840367139961882408513845237491532747717214098900200075839510790256390187682775958307569379211057887979374834697302547460873378410019435585421893670039615859052007868670785776547665056237017089977701659337477896157577387450281079679900615024129759479106318256917915478016422750341787360384971317794482844896635400438030137217962971699555284051365325242538537609335696361016685305708460588362958252184584641676053695348485743343184387733745313164089263033837989029203429447587722108140797321861003808840381923401778130758264369043885976630599438894755336295888150937279634677614815215549557293166242243818789584585078465220112691703355152326166713834364882210866981804888767957970967362389410023350428002715716823879489882452277069561178264685731003530431055403209631406976417835756538594441114762196245002825513105138006900613891191766837412618893230757022155968121935280054292980417045495699167828578649709381996282424832599565879955555205273252699953839001004404697801426408802031191181709246533899394766838396461438909651492739664378013537633736329500438610029464523161072066083978039567885316451170966293484150950797295844426351147204469985204753036964178958879038140515537053026585507677861546781381182440922849930624849653149031495894299749905157411644767651981232852207824025533921286809439494484435992926190175307763493180836695462432055121170830009957201644317587203506459936885520565992103498790461120675990323525890784148503638044850526234694466807174785772317800920707840102164398791913106678652212477078591194911603008327156618771796501373012669738570143977321168540657523291596424943154244099135974375163843352259662628071040160535281852624431576418873684317436782358370842244362589084584755508957096275522663948142841690844741069190960780011098988700166621329317388920737320997965006979714184626946281659419226944754624896450289019552739497184009435754913577199598809177236150879343518784839893572496067125674546791489962290533867128004817133697936543513503516643848802882193426261750921690119610512860405162803164784410583705637912438176155393489893200996119650834091658976419066508171321886518709372728033913876419884823104043110561093201652772888899166929000757326376508422998073837990622330882332995608972491120475612712016969852850879017099345382466371714044986107180386966247195145698094467051467577902646095381926386572944145456720737974438581820561704195941653278640851047504647046922948105964263784595442517405022966855453633083048552261294070568613293612229380419831376681257925105432599518048171592714129135007683099380470686169893197364135141845233422178836963773559114312628512099448111675745878963373029505654741427225352114840183213724816651861960410374296376477653217961670067060018176516672774830083687153583258588434749042354828566309255549707482107734059534366780699331101387490369107476868529152574160627635015960375437195891753187432707418533952935495852977088117474718277953091965228019758529178221781351960163463425475206622214945903210249946644888901516615790305003227830973960754675889994778236963824822199467504804762119914140003834370683181621320372277558134168866896015800605636659042296694534339738031160557886665975064110320548273623637532464808845813894653127678401645263070019151238705800708316766455975106789403741245995722664560205093373640944881365108907869666887789809030165940926998031416483965982133509132818553156244992875736653606344014834898758269511095348524771656387737416071455582669278158329939773910897641128841101620833964688915831045285620418205283597249853604321724133191336970292509627042016123752831362064934214354679783006520548505667954042741519307442412218562656534237605328160133343070326848785911306186772951338986682559962075433329630728914369711990830895454761434526963080741235773178554614589367595089795191033309685406344034453983788574945025352494927779272643117573651872160733663921983791881997919934165725912729468570973383850629795350595625656888654246976379067294815692051587336042004356774586152317793106403957726803851410561625842278939625885796244942629902239602097186678810672850880009591142125730080501560983971640409805966348981374410295712528909155615766609701364731362452117177564506392642832244156407176670115344399908749786056350509825652756313822355073992066889147208677540313891941826212957243568604167469083620110419840189528206542242301243976763353261334046929724723059283429425763549175330006618089079957123700230801544997735126845378278682238000424304557963259628406883190778151377728534631201152737559018296184965597589902101434798751099781945525759469867483360520706906567052202953384074552395039371831274029674156162011680561956899885490662299903245630096684515988704261114141575325356503614943780675273460890157074298987574016353671947114901325688882169097661261275742305984049066995479314999781523762632233571322193113210940298336582063336157098275793302985953362167622864797666061830951728760448643304502165925436229152431987505535487224405116249650086463488823144983083064080726655575969031599810796997185493178977052101207342684315501461359474015163912180114935594726096368125273069522715709857957727754521032344591299825687502907739371393832931696811361420398791427249576060177063471062520983517948842908441714132336142001299171538308933657279049765357007645228457281974573300405930642114039065028517264277627781753263255652661733443247173993651312595089958900736352799724717646416295659448207992978926615825084806592283293664424770950281432035353100928546420227628806634806038495471083495678728148811028089561281420982953446320883277940453518217542029557313350368957095688893175214857184160445362564238411540951323129382578600985337949168244042244949251804505851346487606888496817765275514884948131702980271247900805126909395216823262501994043530455381323185258209833256666022436707887925361435717001862309760213041724026044148149152466728949145572750414230103539143586227304627599169189641862984046768024920543540820354856169923332505051959991384774971593121367166359559554376627341112388781671943461667104906809592223203059163622255228752601251081468737057067484203064080805814176165839235651770561386056817649353953301003582697586427747479080224308022610655723666507397773523994076337416935268755328875937841636882988469017034895116878643257207471016013408978198875037708039280848617152477592560187816569554071813278661902095505876360104547313700215744231566321196384995561903302793456293791413960499726956225502502163747348272641941428898194874084671693290868812837934889050049624991828875041337549708224017181708692479118618880526454468576229424503245013375476800841382157111428624866808927017510988792021350447395802020116979006633202710893799336594171143509847075364103826930554723282342307529327263029198538436625163200347965327863345639045514270278726399407030585969335011084766500040283733548996949893124968130338626787914256789421840904271704622763847750995252081834039945255972308992034738190608825276041814461464396896144964683355815524490776680655656574202121893806916772846243443340874056358178558191055396984544792351054153495517342416722816028829354299313525641614930625954618264540091693530472440811378757919597107292214431994440032183682156255915777749157438452552776929530772433930233617297175468277997739182395364773095199673750196994341285133124817833955199254182800102503279555188854662533889469449328321323704899829190241021226031648679213907985140491537373803840662379581041771006287072561269891628234972414770787132020609920043388945612540563082965467269085499290295920582998076889484936024009276764257968519037899992408828531418411476633850013983787130969367465168226171924710590957897268452414318988121046224121274696082734487180966318708734575882994767713576721768702860565098471856651164860143475781460747812410319607683151719781018334127879809775711257810201906974011966975517612911546158172595498661293658118410583947091120944529406657591287980793918845851077465766786019350780718838578096052758174116919007068837256321887820090659787433364247254161443230361506201561225884719014924018231623287160427056451846311434647362385076368420702541486601830019710015165576638909838175283540767822203815480055116543946250029492947950992705823458747666547142103287181248114912344213650751590629701723790584032041022034351999032913761242586357845917692845399403418577036990578392054975298239033048543670721782082426896261708680313611209721205822095937294073699285469631303332471465281467033918394433814283822784833844188969827714552328775156015807957764013388328979864678686136583775996679456424918724202816179334015123521052712788244919955025476990061590150201888827508045642664553369059555959405105828462522913955106025504316848683283522307463752864956814558489564357577519910777941398510500980221531288066299267735960117327552330387833110439139513948422778507459871815206817642944912466748653001022417038993914424810020828616314095051784223931598645558970071926249052968925422891673058115199667641693718732341362047641439379843349111640483119448940170156457231262776153557050597237021269644860493278079891026903010316734711139535956929347722669718127065711513192657370059166702480911182280993178614051166854000145609674600175952754389400722290559222769276023825314555367551328226197587072003726710567564650327044937957711261418233147466427894795675880295133221770863387960798907774131032851111089571349220899603977838724567449073241299143671114156331207355389343497512243768397850781652537866032946314503480929179168017967363204577820326220123076096976089452324497086591161956109929856631797312410094338869596942080920390052721561320708132122645148545625038949150114566676137648030644374144827873386707106451318802068542262520505688226442441654151942792017598615057297220924988864126227879755309823299797089811069687319046412957323387278656137350246350554034039488176107053679094478009990026381999283460520064842913499253187222605097720474559549536667382624093637235391801269359247087171680468138292016303068849245928970578255492377068282198295471355179748947775325996728494110859372463232335787021190015489400443159440137213531270382486444683714944650442569978123258991570644064268020445587084765259350612194340956213700498482995317374462262417369971226925063608342118391184556289218842476821823686630229225151815634041818964228315581662024740191435703444182738925178817724611306571788589959033904527206908516883630812829207255636960175523598958589031193676571251151481928774715725424107074174144016853429060208516410953971352150387741283655388333656934992361596526634323114351038332859211586508782386120420593724035867217548999044806684221112080862617832007107678168617505001506918217721509726406646375684196430451626993532690805748623435089333390331347196820179279292956610154041202443044027005794221254980852360477235380772085013545983676614276036370735614041173851802239192787896387216696192359688855610368825760659167608397918224548912568586951608966793042321843240343550977786810417092989286052439071516729223287699178568655120302445608795024350934784372164777978704854905322504516638467665399390421328604216461473747896956974263268078244937317431911188646713492258675513753241009964524806626229817931951960837189845606451279770192051304043148176813247263292555532274355956620272510798103780190346697400042546845082137979021587997942994674121733225520450575526397085879760737719163309272924090854762400048389292610082547051851732459387260024232389725127093678117554404183146248415396917375103982436047995378671689877162231243863951179913024829207092678108718083708785499195969410090344789975375898933472363298395291560351265196868507336183730408091055654981472603707402716702961880802414501901792984693038470801256067450034019598532756051973319434339524893902739243125547291236778995963974943690604532808939696078792317756334846102615432361076037770957006470171909691722188826803088501635115734955730810044988713665362533555334163175196868736297035314299786639121020858014696331639303017309351281950709858235724787441136373740556591351330005822426320689946230757603967055627075658602384333000709316290322079899228533953038128308541829767957048003745799317765631752372026163537217312822390451277285076831622276590390820728873481642539617825095082989599646408323431595960573778045316862156696787545260225908947354904530924161064925358384694931594220945743842628807015277043178097589802981385586827775104522883251036692839646002484703343550390883901277929812885986544469949142594191842488105257237137362675844917723842240823192339676993202937407045183536190473109769860271468497251288297519957404579489682520379555375791703953671031536897065079764834454283594308179117111083569117530019726315475522252556576599566053541958352772116991384406510640826165470336379167914513956645944678017569840301569255654912083636004355450117220569298251921703179056039434966344536437675951197406079864247109447625730938699622911676657056682156667074993567832507348209758183533335592855687667618022779961233420357906620579911963278011181847825937040667980612868605434707042373620578395359443642622930293936930873651561311648474279077172696931181021098125113604966202613446758010357746082987510535154689877444966283810433258086785715853490988332620310070288882324481802591065432264203077305499631946836651597240333399597164082207830195617950079876463789208977091007403534278214038932843184021205061033995143843489802250679647212498397076836896522881055543115934563676046283406314773466880660620851134467656702232590839543194156855835438751795946754462185365869216416466913893131950326055119110647894755182195207758774458395968243973055647225273992297449095443330860737695231928784419606795606828453124939657280401370158220883461811520517543660679692709427225240234133546780425389326041262751689695387488826802758708057503383095612113211513589372892335043632287174257142351606906122520286783757723040261436175494857373793047316593510120210195813553757042246582842539780393630299636832382842720558604968394386445342832482569598452688090813242291433524090640626216272610224595355732647189342233280132938550170652521729476526750797370973972559706473091154074922519185680590061463522997561635039371730739353007760099401235396180759132185045455027961544803799170391883176227109308739487195818341786434014322148066307780444968704845816934745740160508609768671407885850595680611317839452353819731683997642148165523696249250466795042982130540287848984158006935094018170161437073858885640457680596540382885748328839784053268367103635534133625464647805399510121843408158788565929099988960440696346293017327940619869528524853057389258408155683622115764743619566261258537677533074276811368037929854608310862937206765920400489187374246525513397939966069702823848368037819549869842088043914611659629424543882630091827610892744074507704349563938970714251155957879674047538864882605744479644876316540161271527625637690895672929276087237614186317566942106121313045585886431502991518762106938284109352877912977220341336908793529441034275266256341628151020960450154087071567947302214462662966375695435464649011128620312120811950983992334859527419659657682811577056938336506217243472683886263009795409136710208393014333562891958400575658444656151693138455389475141183083581343491278577579303181968394986597289267735154564269756412374023760575165879445553889516747273662755004520514719682205185481341170215143412526843904934893424341997840202558361881079640584405069159054318866994646584307386109553708697106570036300705206578058920728156572305772869910112739801943757340467760443483093289645225597129270902784151201886651227955896687097601784792625851328455658196412312584433592576879732225131353962199966536545931680083280827601085128376459172186202844027100306915258408920543646494409032312819961673026022126184380533839681001845531533890235016909974087433127165585574104204993504442494959006035242238871962430124913993780086694105658527486240027471923333884089429561729031727991468017847495325750937935768176344484649434031548781400953809993588012201612234905003938647635165467193829012961995395339123454207331588832929668143421361380420272313175452105327272257636566249465689810430366401930222450758999816342859655914724666345136163834857693198923516820693866908567308705564938444453832241551230439036222850068660338151581686248603580096947857087284484461526805978998207518431426386028291604627015066927365490630686357658301429771395865711450846954243112053226587792223843108868404640645467575999370010468035605922624385818796420478194145734377208756424763748642906049037555907778872812377283958789649334625168128207496990312053534942329603847551682966915503583881577643709939387675463249503013290450487453152778541897427028432910525968153070096895922613885866645367096601226635260269498581525726205910295463171119676284598439745429307622343814621033687666126551555669013663343812342272766210795891956899865344671825733189620170197618353754711730838379662626842911649124158761684277202829653457473141136650618548557169221316220630018592525176865589553237483119638159975770832255201073516931179583038614933511357150972311312164144627706587233230160672334343525208185104095683199927293781090264691208388134563891526213662584443161954806890915818527217687784096356176158161657968391652964204023872021567316685168953368922665212978247518358982777651373789622460301924623254329171769346219081749974080767105804342848164644036131863442009003741303287263330767469069546528432937000014551389938084371089882339410765663563416736990802275506496201748928081082838916776253375498481384230596782225839462082445783596093377391596995309237889848066660508874348935843559793420654224812199340769822608306150469994400205523218133183564319284082500948567556919320712108937125274465723023226982405295106777203612261546562270775265757492966655757671186022124360782765448328792753226820000822000850735758272038131238272800929125839029472501960408019803006886873565811948377744696779632252094033765641766369924357851715420306406688412696056141771853465632707789484123114124291910607511680525651439831120851811135638839788225457197523177240457351316599479560535968573829779331097060505520696357382701354164905477615191503311542636166329915803691357079624688833802224803391657975060354496913666058576793015037745903204041470949796619637189224700534501736951112562196829132487075022698478782948646149088554895337870134698564684300630251742089154296760373729531258395297330133089520972269467644759146338772464763010933951771919724817626124905134699212042391069173017321607744847304661885417457992617969196216326318081330631144772890175716639133920483074391176212860796921481290683620679465439902268754629075713450597388616676065642770239766380191093721437336469509335436118287590619994231030128800667725336501578469485267550397058779221175407397712807886005910970909330580823158816022889691795030003477967655972000277483148462249630728120847923679081035125544525867721775876734454411309416818967091125114159025255004430052770727251288190322145799977549082572274743988193455945378369014581453089928958409950940783788249248643207441417260364393705527073801002199072083449213384973956490309538130559755831751212031301303180003207614817096541765123257324886957445116467420381094258983277014228847716966320354845859405632298658424783608558757039315437855937917607387832427271320825406824395177545760586865986010678790483439932057570741491943564165113491826622295826715700851494677372542900639726979686126764485768770707456269595229675489583317889575697516091702052847918800586702687168201829461959516723832839372358927642064402630253639486824753406059522741879781897258945277949261892708571333896338583489247489906921804050854296656910155477402984698221312299794246594798550829863715086648737075198021096120131639003232323886264302406915116459877362990052570513176189518874920715013878866027419507633848333675618986694808299825146623812093111093227533385176626189938044705142109110534315646801398621629290042394663867250411922345344001811026469123940337408325740847890117057935550332481712107539314015601211631773564780874805764994304325667091380085556502545162426987692978895396164453088546604920375761113167973279009245724325156972344389777475576931166375792895855830633456157696970439949988262392166115210840249140925973070337347068196573351907073026615653847161884572507521239109340890997920695952631074142556688958615138263971910988577872753712145602893997898780602890850309426107294991388474967503061036665043131165838173062848343575944199852696253107913711956677567164102843105065755767064337128713042592609700812946928675084924342657053539009421921152454554290330814831970291753083430680040978789719736049348913448284467492937523588171470807573555367794890143780239729621608890275180167440772557222338220042634174509366282974745711181009962077506083427185368574984120816074306955962251083275878773142549474167797752954465413467813856662997549597113110690168759705509663440030724384092111239920387929143575330044196098724326623322140139309562039417199549914639067053706052713384823725636015152886942561730032987168924177411201042957306857531603919004748402525970867142899913668463661744897379543621365324384777143852760610607010044529858156851040983303089215411029029508545555360538759660295949503242999461037328222750898286639683233779552458517403912113377560943599771668497495873184166653033497731102786378276746524208771180643369311119079775335832021077473044595595319089822297093439014255921147747159429174878642248183784497304325333860082736106638291747009889984184504068384727821902076312526936688321158517835833301621179138369052500401686041604173061574199275900363208755574023880925272138511491604125390313742670291438784659288592004843099680675084969346362853759489404610248993587648583455933224101468674231380658918166598366390028959894357652501159157804656515602599944755869318969677856934742642564249509555077323347771942326764145919396701632860889864269966917883330025641913283082912009347829884358363151469403034481315334832939713992922797601540416220869138529380382142277040323113195464076907499044369314705593923641891836896471700598112513455268355071965740990010475088787416280750409397440662360581213963247696640393741795391269189566359810057211961214202289929431633209410084341567002497993862857271214490572738782715367116870803992011846335904823808646483811829491259722387469112383911466387185298837434854371588623561578173773418585937786252668928166191021914332877765486451805558517965723130750650643875504968721731720683761856641967573195391602840961295941380854635486342840477609202592105431279367438126494044803096705529512565732941778117716994948282590640927618493977017788419644234401615835967467600593442397555888666920096197137848257695296906938197547934222297390487633310513986877176066190857044802983782998240006131728420269167854712744340124863626326098870686897795508515874801692752884489624046562130946072319683883245333091466303789679303541133181156696102729628345895545896112755279898707401531906321426130037821642407105966762156898454192510073463558796316131456190161617722575805177627434182167889102714908914984793935753720886580757275843321940764280320831767323351804363445631151912015355744371351260004770571736906265098883430712237625798388915795908769551658924874465710081676690789710665438342809604332844156328258865125331030600309540732121417546339459114126920915763863627491797863972922419512355439615304042958064733410728665245245184938748056460467346458768704601894112044821403924849083635922251917175166209581712260528201586619510421960717045998759614961629408124592469569818344944504113888487772976636420074592691986006327260466841600304188110523538102749679804563618441191886086407239044608488251885171739684118187018332848734039011077231537695362277834084752086365199952358407816557048191224467261027445826779804792768926347854650946852549183856279899894579169883625621904515855610826941715056255399916739381672954513390202360043314984035729767125429412171685933697671305535125739532353057727260833343259344962222500571295063183935610247987034815894423524143387398033239156418195821346619843857131910888441686780899683729671267257737899987731559297522281264561108942554111975538152471023762507900320849213783994691504339571532986546297493873531544905780160006118167937711053592600406627777755987129830110862771860876879410250754647013545839879346183967008351003789581832800324604395732122972088689078434511361526624452755298999055899549543985213601370157014963266145629272543622713913937522225122770722902413663413390918626549345110412940889025101504695639385187121735654097525318097502278431003030045127462848679711775423887330909345145424703360928594791653004656063394614204743632591850361335451151496513679276620856888638397701550608332700806617265569090782880709459996121317208804991731431199889835116841310122371505058221113835766560903403280103604630736226399292012301328996483607822940838584289126634634813278593938581920968219141652636278150070343223489990293327174443990167148409586978048268464704112352747356585847840052600950380984591471659109603311533485403166970956515628145619314084649351239000806071758003414226810506546651352588617639193362899371082441944259967843582877382471230810638968155595789583275776614605536475958801322547604398753742360673630134827581788005244603014075803324467096944193640530319478693817155286747656633423017591491138950014810595268782172194041501297081773030811806801534369080420796897363006304689838351728259091091682856299928014832723008367025076127148148791789591108975182268928636168613723803853047942024888924241309644003761089160586845510233321962365849000453711968895912673845585988679370779110886673203285527769095503871347139914040202214588717599722069063627940813883897349792270806972920909759462482675111639542974413884040688151728492589493266246986211151555708506104511114751657807893273111672091300579517066104085627327580937061339940670193909240314596504832046290775232442689887878784454952242586674992011912132713453120930351929333819278742441864926899158534769489759064508411092422799570815516232390758502506099624567545749579347879119725656165646213258098453778346581063263345756543041629523593350975629054637593927969738412517975330123016177296807119053308667596801350523874002996093984209209294877555629297307346400031956396001850609636060141419098060216365325989642962149834830325014741754318790636525462844074801729640878839831872742907331518669251713960776303717490765103789478658988977347141294179543865430363714246914070975023878498752136974888574734677118140504861814626573304283636748690992258802110922685521160370478502774544723196207891569758069571799924000338852393213799838209091338355871050494950354595240732917807406336297983366307540512520897758698460493421311561724403574844912711796396860434224003487716553708919081445153559680956878678040105596128825076120042389015707301938755607754927630067386823289243423455807669549962980397957735053423286553926038335588584739354567301175101053468888500309880916683732621659782777055374317719998323370127818049236592276556306445975696446246443417386658014177381611171953205293630347194827641092968519783250167611872032719890089740260075270267054823495471738948661898538072434401211331160276787995802827800973946684107888159873229981945470426862334479645926475352716385485850414564639570016777018606504884647621247028528399844584231908722438127863777648669991079027254312627791159325285322226585294566021679263381309227285972000280094771124627233936337682707238582870065946751916504775145381873145764130278399599178070626843067903948592480101029583645419490787451574294059839543426928962846465422892682192989426751840284082148042784767616418531268780359923392540159227215119120831504343724739680067693128638891305578129719871802972967284437472009262245727521477614126780568009616058449902118116204377136336177946850554653386716683136492938436231815547110789075972681646304988801392862783303644415274289593230361751786440700946389688245405751477643432217542333653913754116195969336491025177526823713160625162306850511654420362268798953835792742243416149472733385873259003541511657387546406616088675788006710492929600801518423070873745661847367132926573766702790375966403916190508095452316366090774443488516229253846703668545228548388473284924265319953158941544304194185377303308899796763693311721441709793554240389664005957568805939991180540878617039835193491578397221304012412078071109997421823155687656326634339952322022760410964470895421639571140390311589746148667474720908533273248705010379224671059327263841857778363042609693801091782795401107117436890899900664821042875071362198369774806413739187220879199988352376476242901583052075607093134604492408024515822668551614826828030696974890320676665121213094135961994683386306636264830866251030995697850303447345379517300997637233067716659609639095231565566637301495352938997714829238937539928308391114002432536038689990721656625379795298171144794942824464069953231142033041729802408532135394307552877195544577688002189248724116247427046176266449434862228422106210234499960492417083287783697946769645402764051199649841606609696647709676203241054340005667657425446048728582994116520182990155379162314932471931622270190915009797230281230333379531364025477193785097880487418349227907138708199881015370088067901299248183591896151707322630390795166065470236453784185743416340826973283443593555574134374475250876175616443633195647701448546578469820929701396111044423634667521947299918797454069189187138163936564268817554110527852120500911963177355685829250386745753262145027511841849499840436248193312774600627792892170763999943007834605140234165368193621497687894383051651402004238241131354479732565007999481899143329737022948339099580672001182131115336141962032018150164021152627046111275868360197973217411723102971380965398075644786519945641779208023828917033296188770916542516114935054747042619642208053573589101351766059353377959446548557607773819597682287583123135230499288321648463489226424287797163714283096777674958812370084706946156136275390949534180393592660697774263840222052633998225774569836697004038098525400795472476742469125310892129445324657174963002966612468582455687319436691718994756624145040609347637325844281473212945350105694770534561954550833986087471956532132135117334538892584152150697402956020129039110344542490204234422040036617089038009791422781076569182968844809275231886420673799339484490784434852356728135895341614215626848893141095880297111852678956231930690297034573695413857813935153245103317459061712133323278354061359456459550507218296769415304925019934377921072326788031671597162488820260176865511109977746148880116433854835136296462738393324280911822121489543409824903058264015079713761209990604884340994337693492573977121474858137415909894062899810007986900175155772369442658720052147403419071837294819612737971558079044339301104249868752826213655351666608478721753266991322735947683752501479518671823126762110907921188022038516718810322152178536875686172985913686290732849273270123574547936711510489845666880607428178440436960157594349416255762310976942355585689729527769926215129009112213358633113203101258431465529565109525144845144327083676450187209418443034147020972557435470620279525969578879731359639347198434295211260594622591315122034017330722863668239016337616241202770469860270121021795295279101427410481346186741357980626326162119136924704037376768343846743805423018661769702688297181137401830755791063449139729611491250806259812479521001384771377377469465208523606670037242266977251847223514549268713544477990157156125327632879801068064687450591106879475434359270426062481230802705715426689305433436221190086357061079103032320053558406245308559988540575097643948437654838392589988175361431471520345393941933673530690731147886656397118767647264741856094718890248548504471273982751820111956692185011870777365092537240152305187972855666087350452525006106509193257663436658750114300150614601469601396571715970750638419976337134765363028002502390572150620203718975531191764579820008783501699452572716123448797913805162935240699739470218794542929234590575078568063699298322096622638101487678894139452651626119587396151363274198667282300954339574714334294788447570473104304013563558560789669987060933108266539599894062008262855061939768841463088933254108083226176535992206273514712173015283114414183490676068780873148369313405411025698674050264300235529360086065281335374173658400560733608533940956069261862896742250547760052156902831250600939764447621215171479146647323896777003940899718884192903337041505636822257734675194228639564512862288750486925324157395129249573811254500049336831614235809246125798409180444971584017366881601097545889879768586617727378774563252852050521720482041063464283289932240898354117868817248662604392260540230736604544745689820247375124067068649495369684444810133465417215252589521352289097148338214062313195716160720474514677081581855452173089343673513947933736020567335051672963136197289723176800838800928236023500404997032623346940216932078766096103074933869923603435226068842727520454992225494913327665027197214833852516138547728494425346571217806377484555717152843514564589977685236514603623521362805827835246877669719531243120996467590882873130582157897990026092673185708641110392015719821726589382220926377958407440412774592903652092491308549416417634810983548910553355703589468583961928698734192851330235337214308321308136022936480986011735579838619542826128129891530721884372447341170356773962805186047352224728595364275686546148532082710149672618687807102908444330293676619044407199799570691764377636261914345562811879943302566259659968268223279334924164078097298827008665948266894971129704118132653878188227947379784720993934056716737234900194900354600660560673211834397464674432636111025472934821225168855005250749064545243040157646932624855318761984951267366434876440195177690901438354078479075082890609152016427484724127132345630168726512825820078855975045548057112562688870059707417633006163547463198887530702642198662732297841037528773759669073068252792388533530846047972367545457595160245633778180134999599684633737420360355110641485630279270024070221012485210689554758235209749991719731796116845914212814595653353903150766212623418914848226563147556793765222556509074480176060085075239124326623291437868441159311838800407530171544028978138684384454829530639941543771906000743735978837994087475803904305246614504933123965992325098927169936592820806580712249862804147983812866949339900607529409716418863118612725128970390810521407287263056897817008764697787352003741831897209200696051191017005188253098074911357679720924941655848774203705247339486933970573115075597939564478927438323434710076331241824836981900754235373120647320137430166830894000601753763835984121491575299331779624828358663875551844307326847903618822701042816888826851959581059279717854887047029348957378774317890781268756372109127708953447182471745314102522287121068616232792082515786562798564560009362827676294614441716920131485528612442649879392048480716571209839395531584600861496386400079180937215892754333952481432377164581839912557825634128165662022346131839890800933909371103446751408044553246885996697060773536707531730075510217271832700187216671926760710236168033267828883548146503664778737786587105639191058624864062124311727243872790233710516802624134778053006209308587847283020423369875644036469378361232085314536066654364059584259141159783770015665730736828863274478742458111191602935692456500853960675912931132749147878516663979674543922782978916657874207723731945494871725164622587676609351612535388793237331374132902966619750634201861512491067532644142929597395861816777907321095235932530237518912173234716414171938577122323098646826563249266141917281385319876365613270598074241504826696662553760697194208292489405140485983059425662215343458974708181136511570501700043824922220473975061157309240863325751064385780935010202591422706803684273236912173891543525084098608057679326425270493072653810314759534031705084809976618560807127276910925466928101075523077564032804522865026803229469973906442700345503340110011085843373810488949560604125937511229065894046043973480341050440488582138474724892388890677912077361023609368716607163322809636195154609226944089911591170235411577465885587589468261781302732516653526561585781816516254137404782915757367152119893646015034259658212209995103237407485334612812273924039666877787389224505639918535334692475532393735579405195683413201056038301534522144437366134401097415014938502793046226000497791404813021766357189348019832568193217225060541471013221734259637399772005684959739725180906360814250549771511924131647939493975567114639729664914485490211635487066497264549156744009291794006243936007857232857710625474119762063947234629249595235123679604519086902257769581517326475455158267671060316574244856174088006810434806156351053733722140908023575928031267950598645553518566479714275349102114927683039656481186416671201949841070313620121355714301482611783340870027823953275619205189681370996350843907931853252861238205938446025820505623742672894180942884519261082499018916593481930475747336834168465864844730400413379055929793182662186592893875584559597269534944862101469585860834575134596418777776524635135555217507591694346146697680599483679048277723023893945327908073569269557788004475421474609054832875647877038444420941262602555042275572911885604807142528658906930544495979586838725696648708181438801509598262218924985923225354486288639772348698967912384549177973949546188272481285579005265861033455623917761499183034765406676056525838340898376883009611985443311591980597308692096425995837578539950485991649631665248698516220684770678122886345824473509187225506307377826880360019216139281469427540610816376625171163907793530937968784206059493790369123755996709704867743965835437090335664686571066573611162657494316469634193140638298585415390327556612427575577404316075306887702601057176147489706191923104737479590018239586864849267017413722247413676817819607641652735498070151834599277027106325833103908281776163646726131997712431774918879967500933031407242830614269370044227052708882722644558663650071972948658278541941289878590474829905039403454303769876040220351720291537917579895040230676271810517824217619859756490976934228462172132618984766392344335812521317109286015237010624666827960894395884710883489654621704929336885060073201910988374669039861944667634542656420802685335693589324558460687886139060246302202532632681666517828617018242832594940777858978075150766490384979141682490616388011649199564022073998727035955100521169488577745746044508673246550342755468350289671828102704339203980941585639005519452991531556426320261812060398926430415856035155546984868512231556287552521859406773590126791627731774099319154343988019619129443826295187888108664954909041486866156585510374789437430383629476725855580960371521047422690953728331572224167164211483266634203470577829558606755314209811257216031330362460049462234833393690379513745196797201486026980333883747860670075129700373718274083945759238358452888323479515004933316005785923685612750549727015705489678735766214724884990220425094663281568261099585707411034082051164241871530673701931100833578591493260682710060677890665248384324942824818183597830624662208912292001964819190495348773575931628370612672653705037263154295204601624101590977932711290352888234511327028364822378195252593603024509398680984684374173730623524195838763841072232280380979110195115367137393547967094817145241892621580675457144989199487824122126818515399985675871786116182428693786390470803024504767129847184437976628667798440803928589200974734056477672194608920461775902274438724346669492976245755377520083874114631185720076738343687649954189171668397143455840583252159008216769677025317949070232081158304618274057363544704760278083060588695336481290688237763872404080917351200578498116701705917687280440932890306815844158069817250449364260627895149987176480415956938323564269570084922027321591178211000535801852157623203995479406898772160502736058974717952249420440195505416249610833703251884169104100792074635552802376813834128755880425452035129348682079152540261620657549059811201023684811184119729715688343266809739289517914351605664408677963346045095754164837861525785101614316865455673363374181328080212056441779612466851812451649314135126523441199465773346040290971780362749934725079334325256862212234310936021677264224215815844427203139611154973223905411444961010055755658305656566959411636287898202769426829432667925934868837452548665009229804968365754851637979073572143812867456981947043268104570446113825525724845347755406906520788360910062426513538374381100355895434034377371706198414011895987946839417831294881053997152281750926800976704542895867865169106134978123756688490272427213068413057212979839908823144224504247618071873930187495868265876022019427986613927139147014434324311413175095398096343416541490011662274091710900643178026894047123343397024705471982556801647519423057759597056154353275699446050678142852181502870128330506117232933597633789214223503839731896844124493811872384127808282665005423560669938691918164849651327456868731629183713559901636850890546229338622053041346166436756839500860363952263071893430230180087528381670637558063012027142715162436906443536992298174337293667967173253721156648337599458122265116974790880000178600135706110876612778291013576616224143807600958759753267205410236034032778127864481010770671665391208059368167049398579383980370794236218537927307155753369937734386266360295386644284451751464289042491864435312226029831082516842096484349833603982316098493166269763254549470404242345139212337333403871574249769029400728543569327210386947997895318499021411645343602422415661025217227840292103353659710284228127206382702508467842696302498774586191782076355353534209145907757606179361804017256459006826552277244927001383102829246148636982722822440390880724589644762228067481191619854466022444215966794963228523187382275979709280512749310478728496379883178144162529840659519983710640910390187637069039494791664696808747071671763564181862104975879951579682068660546036972909078664900687072559232241350316309369214064786447895444939232994434535880821827519220652603287053961828130221367714355437314548040615930967603865806971570386475901194218941683303703535693849967138110910681830341119595685729597653660579327670150355586811062057878080123140325482630051692736980043614020188244870156957639000023166478479214824056413109798559017566045947421306581889251123121653669264751425352906239599518072318067371340428670618023401453144526252961060356365439028443435280825680051683317916545613273009764265946586939069614819428482139884936281105503498573357486778263657936532324849034542189247591259301809518920770517174749513612341843512155151994995494501691686974079200280222429300317879339806338859314696121024134498889115997194821173725864572398116333652210356856535845692542225058934877169780181953469839614179997856254274921738562361672408421853755133526653094510003379942309892386116481217609810670400390255223910489485745670798534704874922786003738531533326182346135019738451888197291003155014036480483497191803789115271605883421624878075096018818718327218078678525694995650393056509194180832011726632969777425776175302637515400813435798474177921858468206550982515216292939226063550980397546126963841632562107201848882839307902891480857877710014121605167245922860321769733018290928784241554399743523091933608431430640425352441078951077937180205867382640551267375667085350112077528920451996771627606828872812492854471754426511432299422923145593777824988415746068779533054014238802450076121798329003889838764997220006420106669480390840199660516671894645800917464393863442130888252164040220154973021597044832286022436707167457386734061609065953711779418066987256104352398988756916064944880192919761209175472428392314618051974782441917694894553675845466024329185273659255695306672285498897260550286564471333592789030071990215886611237336213042098053472474612911174493554679775590696099164003791332159727447820388519511456351668430070027262089366636771493182740451154838508920132809705398840645241328729706363449642494672025172861106781146172212957079274745461159535716444869425375850313416467811800345760598546638060915171095617514668476297197654362336032156830670642230876119599930140131396090704322265302401414817783455912681872124798776887672025009503701841935029327760974061084441526582759222192779709288652031999314349149138822024987379885941843328396645807381188708188921861200788064919701211338319715349195941635992565342797214301239544673859747600537416143020842919132917396191155189238119361956113089432597864019818787869336866182014569967271943919065313948289401098701575249796796463298747110271163088269524846987187205357634942388679565993579914888153433677223186884012420110406710045657305233661001277746665077187265962127581899704935023279680437355579017623084414702005786673457201787364730156820610244230395434891020614321696725009558858278026255508930800580879190714044645032175558743606005906430644124829920297358420860973778995554480105132578917771290702423843563356160698416950423514889014238395595964648933742702121602401515283618779335067520354736175665800504375716351401747711004581641336492139511711897713905049709064644921308867087297566303823556098629779558253796715206969447029512358526558979150797150136814661545241130696936267448925723056641702917134821038577415637326819476918997233109964474317134446251326808759282334353463561666074065692790408527087454012324452807594144966664112539548298236678820431111689561162892028303040928396345853541608271912208839693738657552503227899488069763084602782476818616963658247296394416391172279737210592605153291069597446718344306559301435670605369448361444043046395945039765013291438729524354816112442624606073869449009087240285751387153662225897558565261369018986295135280118138475790292850478406357306893302347569336874113332822374754494972128165577674179360815822523888021906278158462227737378281462159862625014112166427203615196856799206938828916929468331158855971562636813665363000182728232546100409392753291430130332914577043973008263621576875699468879348843334162745664824768349707727025112321177220119605181103044566429506662922982650810334733100113634348053262011278485783895251556731600365946095484617248172499671918589322927612711477993586145315093988355367712957687055420797620760427207169037591820806202832778939265940628262905200311178258109044393550062968495565522539799470298774120179943153117637828283663719687330299963498528224111524132088858624465536922120772446029994249630043383338518505741240676601758240431770971577989606485049159481716774901763262725725739181835807363118451426102852446980720794102724905686323202219571944958352941775953086700349554369347377676850038506255603684504100853705846032440560312657909409446932548112687994453724750688878765623030612429824331763828046533252465981923123370264677079854503274029837235865319696181527798821083692528622842558708412104608739928222568971802765731457777215589447607876705137916726146998994974614773265123392267367871112755673163365443374127395294043314166385862137925656644284200975397151828081897994200273374633225538827231287029317753129046332516129320584155158942890594693385764667160410702235778059778531256142660351502154446776543487090038329237450247494840553473753777878159322992865040528467661675518922262263315357077064310568157782302517148868790391624126313072691918934873713435423504413019291473328512025229490468479694704370700109965359771683857701129080242921395686861855098319414515086729962881441938901491546398675979623815191461737590415341712077431591375348570129594305655250578124927625851890776150977271927501818587966493197205336935980842355506679805619261507204979325520753800194461675394603916985679276632539309783482330296377121682643873093346330532659257364861748534540659011110629224591835967656341139025184018122505855255499223793220067258502032890662838535647064027634301449390298007452507798555305913807645544807905740085602010333129668843645569987315371683985545738818667295953005301248863608301941654393330157668468726236652934254145968643370694835766687780273053618355198682504852986198747366651086434715712141714506992941210225768434035226782269950090717009197764947335286259870582184881259441942746551376397620605882880320002332307321737989741898403184891972431672750349731712564990523877554279415226563653267754520204223257866625834247022067414338753530938906782927146310781628162943569674731914192274659005731954631250233868010685983961958629298029451544086814877698054485533414862787457878672136790792099075909390071465595115651081263106125117141505002982627458388828011934595904849379473908657458088043592698232782864030866083476019057825940766359735293268387043472046813593183361438286978150455918833841865029581406266930123114619987762015630902003138026251586235917247043165539024953095345600576341104958451653198433761205615709275229223315741470115676977910753178031620095386299249528073590516058166046400696975846973386378209466907531257541739145094113119719375145222212940826624409809806135775311732448915352020874362940822213938969742921905662557789447826744250141611675126197912273085013756723662982469653416196608863529216543069555615286469304052074964747886797971710436481729824653607716339390304765208733378307156568143811139736293117018377860656469825921262768260650347841015355533178970334566564791121236184174794040930468332218495003003526464945609195133795151424551035145324913180359071954940897575280299965505238924438796967430264504677552259191254717196223167269934409275130374398866457389924203552355355222683270117958872973728537295944471290541771713442700695323304116505896429830817998989138882444413782411891747768117305785428352388688361636223259542705206413244512726397172465282466479540952272309444942064725658978577722632146426465040901918633785305554357503047142277004233366636867777497045455532952006269130809251737021464234065321171158904465581897349437238123348048513658222369064279947414131749663831355453244369296171368608523565838160849404460514987904198624608235929229784558601911339679377988169634751953582552498920629713462395687064301169518901416625333075276879500588003134573808556528017289966470274203402301491115581451784036553886383602952806393234973964147115404872123439354039526750922975696630928706581261639183383294450253158967130343535610856943484689925924375816662617126464689269710300163114495239479154827236599961688284844991027659859928811646794524440883834945145230421083847927382506925211392780377713444275359368714408061638179119102069472685669697240904551965580541945153566140458636331656897223550363741779763830605572080435278872566425462848852621738497192631357106772004732159996123832969030780300817497991142962737702032815101907556862964384479488356068300499707015899044045422892633835360197231718950852909479135605199132892933483367734635620860898056808988476586566356706045103958173755935911564541158134181214162643353961963052446646975890955095355903236370022071804267641558656951175062332442774642170914958749758684180690749366334006723561745646785813181201813117812125639702495715714037488667837986248220125086577358291924460406776454647356064967815354936466133550743716229503893171791365884939721189742290591441458453490954518591570159704825418675032534955699054243802714665848819247122244918106670966971706134345604890021888299454672002036302624597974697211368486262914304635524149852688447267993910914098671603469869647018079964281762430920955083054986989644937150170769047571849427115611007108689817452930650192833679365222116593041802381812077067677909224883119729432020746473749209987903595916715386613038501117096422713355500173377443158339278354772273006567859298371556478344728800555098276926150120018265806117103127161644463599381544358128777700453749163613476745259290826181781007425557362734135687744123886303691630549289967777123055572734310827517363249722228702479577923646345874453572051173320495684184522435566456152712298338108920950424165259990488253312846973776739339373431171428850015706011989803882623485833799601029123127963704527369190693262274079450718465220970973214109770044930439462164623564939705334396683267756102672740959943350215686141766484909763145482142017004535477835377368831554675700720955519743156798576230301805240231153513704962156434133364629765172752333147583281692281832303790306262319114602869193662164553814773283567345441931446128456046876453357729885875497603681388795489430580643797656949836575873786518139835673938841553107211907415932651357560478682340058370848566694394247885060914993569641806304983562956869915750022210805263130608915330444893673932212778681469822753933231260732341552506332190288794623948707381775680260758606388162477038315024912361207224135962087184266809603880806800813501563511920986137911840481512923589476182538521855426918996047016301234785402538525890856871486169278173469812364663597965511752893321153601389274804896276419815195592677316378786123452641578039578012747470086516626400508563589694860872805535622924781723161367285199341672289995275231245612274168908329641725281216099359472024870440101632645555625421437756003966707700929580622975602535341550259771856092541812088772677825944794770134050954651810790115176156595667307151107815050716607520970360071217066143040487362131219414331375590026533520300632529714002555676314301202891291596206064564438489386889992501629601320059336108943069284585542767122840991138651684924282076050266908945576574680104296935350010324655836570529221436404522624857442706241247862309402258101521595078906612182186369387473522702473957834856612592366777245689201463811501769052837459856834927380503778789352985813243388989486250460351734928419607061159644270005460818316461899604608777629160216081980015233589780839744459926266482024527188904242316453979271615957764175897393961871404707379933822370462418430595630974995860313684986010326614803710028889817967673223435539659680569866819466286704973179514704158006853889017585658524118097224845648658091631218035937855326143568354853230416511053337627835400807364031400187634620934082033644592939861060705828443250684609591334731466498843260070147915125869369454341956506743680130662803255129030543385207891243397561023308788472771760675404660213173904553937990168612528811296951921074583767733921577071290024130720244019845172523246438094631387029957427099118064337726955439849026353776224092080337700199287515183638174079311107316523366602957389142129127240681951507284680601750740798336813194079886969688064193093728499996997213249207563326958747710339765227729973843628400166989593983379868846288267342567026190945586109169118043317344627451992981672226419667973281865957936028869311469469503456658361061907050541264049393161242216547505090421395230489925354207260502971312316753905749363969177884199023095019880191405629070134685748840198187886844384787054384444303289468664446446504370307694638727593061245339806842583880666040507010412016011908905198634781424033539638228834071103826122477587131401944000049725233495570481608642720630411914242416450918126428455465676739100989385721611801270846111109929384128694865863963328840521815849788175500074539064188815824326496624027775002921964242376184306849087778675418532393987649961385785346778513792957934584073388847590061907004966604745478418215782231281438802239094122665837813824814780444022701866794128279547023792901360047639591355919284056654964207623673416593177510373671589627640103083148972078939553573234719548359001177259349957682438303899680601538008080371173558801843948912205348537931162475990344612092633038132562198829475394546569007881583118299811473528902173922884804986762031475300989169003405665201479722271260124805326792754917807969216535574692924990666351348232729274170873781191479810302655609766504057486623597145589354396373388085778436753473053971973845453511655352137651444245129050468011422386465361002484715779399798258857236082332017233919731807375436555946744629220657757738886551491861107953668625975390890358662413960988126123090779838358928391825798794662495541052461816144228270832171901256227959336689159318007821468733223502012716418505077676749560936394355884560186211380565154374335823831455075461773083810267590147098791660722429791666625937789726393794383071419514864217417581947804886468507707124393488367207791926991157936468967351919946367151759064456151506257869789373607268106324117869565216069172274131738169844317456418615557727783587045616191393808268426379312877807508521921499534851041002261737967550219016349604789108264400095369140271216983535470338179348876624197671007177437028478732603530850655967772672029769347802115054103482609190139727290548386734500554648984595495104314136309941731639211087929139393711366400683254402350486943793415698097012256097698956269207466671566167600407834318663529603065804356991386096439843845133747055983059014145140189742118890799355734078556262002519016319859178259184253446903143956385719491049815623676877825702658959298600715029248879463507907836934009673705186974045450821509026624072745956660747141269798218017809822915872074031513237685756191269494133432920337001020260140598861753916044522367567390899567291662089527606789710344258281095130313434977227580077048583640910359840103464932312063453154021740164275516438949791491760665718022656652325116052263017636193623102886928071367885863288404913589729939240460178250444128384365219373076096137407177929344505099610181175468558847600958921823370356606769513901649502293306951399293684855899886307229654197562671531955001915557786522683355728449221825637052301464656663781100073339207757001553127247974731010738492813273343682617611087818487285591431465190889777594690060964133122157928205755775039760014887821378791341895516646667972441733282550325431927467872746724239939438380087765159182113360055427943655344604894314690521339464420944936004089277087267705291792060955824676448392417164275658683753815529564209120937991863014177711115869385685849976670261722313297031679146260201638136886662477033947164664418113928161817362571293220351821750994173662101678900242638056697265114119149180487592320959260331610405977384025322794024472633722812644216200968860586934648355826970474618144127907637253516605629236368155645134763208833869402616134555912989120867736219061303511264745626156843661794465015499683577104524612589955242674703263972233323149549214188337189495530879413799661704319018982302331779883852411719767069807291328564859390262501379989685996136750582198420755598635825538119892737327194032780467213671263751163779776779791810597647455851395054115045732042447697058340703825741299235799356738869743051778394195918258357047694114630987675165218583080487332614061287778382603948274961559883552188620773603069596973044736503821007980979622959914968569149010335459134404783218327150268766676252667412794733818579333638865904029564517059316775050782225291495446813533158808100403212167043477399465537906163863497025585321528127504475405726778000417358308551373475380091682600877017668696854661827837386897476806878288684765792045365576140527494786014812504596467112710020236899603572766192895656087215174968010104889620154630487181914448829955973795851833187909326730833217958514395055963377569334247993954786506639780514524993834701477290364168811608847952474199429048469066286466925027959198912000762234669947187271727013619291716890166961882465452941703476927136819134771921997795659852205966416576803666847505536109682530359272802415251949929960418272262518502619146158955451360367480772544963680711581085298231745731133019702700257885789935617834747255055033169965207565641781489413142551231163960615084066932547440927175138027836750067622831188643767301253772200056496124673401009754062951216848584658007887274970388312108502886666332272962682232889585312854657866361152110493751818316044226104202553469139259360886248155331718103115132146201768127250363253087899667810795166416805184271145687636501112217786096296902940453387219717386942218322403006091385323494976643678868246748752100056246184236589936263860933300216513565171423046641907963043110858190604307852550670690022870140878941956450022661178657794770813958697012537247776500806508061130987927806963004973777229374789470370653912696632417245395084552993631799810645473579077913712226404894663422769028080240989542298801006869196622055853737382494745499383374379103002482564552947748519997282071155251561808913369455037725452971523706346448923331728427083960815396352623712155080607116586570806213376138259282906948531325120488439652857703857836415251200747402735442962328051884349011260444168808243325837468458732422559857196212703337358707693285302161622692441562230358778825768427392680422133255499438743168315646818282718653239977003980262244529313873121118715227841051458847270571841313382463947840213233377330983922704517657066583629170823215636609584223949493489215989518766562492243264350791225989901239770957169151262174683899072568476093963378431962111564553778516678035551522113018877785875078883906221710708471060508680054907770987637229500213521281282488834165264682138210278445895206102962848057989577685209834736374328162873031375141728923435262517522487937591753272661241470611550849108134059513492939544929235118597405565900602839279728802698489173004865102193865386851835602853014224193926785980823141747689566984169783272851108138919139873310477727454976277388197366982587891855206520321153538298444755184182482661804353917895665376584880508755357382591071905472723033522124074147117059045627426182283482539412708148583085508920022497860071714089136465514521646993311048609969089471816086588886756065588289339959540063319703577726087957688039984339273274299941591137646885098940631180706147226122099722645350475934798040505035559715906811640135693676610247237808517570434351756424205241608532828041072451767363349263813943998992255541981763882320313063129777474018461500947831118825450329784325604050369443050729111912767969704730180933385069173318271810684402384649677237900893531625580272497093480508988863485440740330330780175205632558629766486861431186552245804598014146460398855870405349499085483221758847838573501815902718134604681864718911054540411689100723320851889075337707661820844335224281281201866034575764468650111044671665969219723286390054005468754017672427493996085936146072424704109979361546080988144170529131779416998083909071940591505364809629319433602201538230307581021627530980654823100367949644666096436175192224308043139878522801407039534954132149791711319243745852493480158331820732089378178292129166534945036999469316478615646989257280008172139026530061600403390814482995630394839988835922644048929536038694718329441939759349670971592319060646748662280819598994596803311537975170578045539549847767177621727495198056654089653919243319122411810507809173958724729934008153785848417565769672247947502233214665694984573392514361407244311589099645959696262312963878113931590391392648385504750840664297242714795199292225529321578678370637954776481200019761092180338407284295537815629018148055677094794492915151390143320307432289012149548099722503158448948714155225423184962270846281500359625130998098167685502301506414032538417548912478857590136787540379903834829664485045630374525789105738139460892023278110741641839253078586341795167673996581287037371072906352003711356411222370426437989436682857113140638995631387249738222418536032854447380454647976868307908746865460533672591804176730795372613360812149023538493913668519286038147324452226392970998351804404385879875774925090946775950992588770577359966377250232988892751954610345220232156535686262664829050583505604069161340720589030701798577832082059323653527139187255891575037186785839704976244996907501198468071586794644435156843690504625904246351415957893206681972324657197798625607753855240083356837501090567331723487977023319268012157788223906361813528174074212950880811932136912284152701239526557470760462028365624533557055920554784170368842477276848811991189772536063924070296464662785266178335950678461050441720691828438832467076199073904630379981628097079590715681147014998351448006548390378866316955382306443150531671057896306923334947767584524488197676889231608589189770151165685484510750172964868418436571249370970503685021100791817505556746599478201610196688134000090087070165559029428424458794890825856704278622723068271930874405504669299088941036471790586898956465947111835061678659759121349334539076544726573739861578147660761688206614112355212226968075761742889319184009654865783151766585450727408383901113194018087391459572659344028705345663871708647722662532255908436865144473989785601011370340380201032880398400666946026879447726661055756367523134469884171049920539815129284727432220012538092334890662903225613646337579629608225783056364150047000090258200859550444493355321967539984489220814294166961516605176577893070874186518107355302233061400571900621795886616851584099652931857210657784636758656882711931510297031279876152272926283622877512721676113632264669197397158270058249914237601538920645031696909304299106316366819906573268483161623468570742232452854873710729886125764932564774534061937798660045858729652121890828245047258371625425350094755250862338920832721407302623699713623179684673706746924790367385845078238134040905722884362176678136913317952631167787181044764952061368009207656450079943622171709450073669410662486816715937535192483280725138222168760530154216906760322060406924956937004291653912322614581801369547353619011720288445929646984942467055286559914149560344682651214222464291835698460439883096413068418396679670700210036814567192559026608177861965935012691022452604245292104930131379301333010993623207007219223751913376493237701677759590727168451194526861681256738415996233160625108948675879634827839683184499612457875809809383058422295327637894726507687370987831434843625432070117523920912145333292336416968196865297965535590900050284847367707615430682846655573231543191907465934929865142910075291927987515540410965967101309054521610630211078782231115061536068226067173190843950214870616364941495458597010340099102912443894804741110915067812744104138097600454106535338433543939008020351773245304516209746597996284887982166067648041200384580399228424684978574180937704767852098242542472973434833458411123166394540518116651498262058272026466473773048540376216446754468199287345655289089089879440194202533571676782807352252754524992048234491200352774579203358159717841413622660895664249763882134577502545620219288751838529272692864848252120200671105987787208302917650397055369620348886349454161664914582703592351661377911818971221103374487611837686286779558239883008764260547107928557622956546307456325676602964260184228378649527445419471911200082849765587961527731510735370747703022433084823416591970338313153692829420956779036730191226972750503408791016098488890629538386497122714267611317375906300501361975337047287249196157726853092229074940741091739139803542510519856973505006208955928835911184681218859084959655023016352529073420581521883225954461889121384512612940500056886728387444061110503821992422211787559612526870699976570378677550485703656243377667961834244921042100173324629044072336023863622365407912567381674831241296436361960220714663746175250538544241840418696523595628069973969291307188051480663406836370342590809155504921854570466175246938928240549385168737721723624761804418400020127628972479103817349065500184637960380180891808496232750668234858147387432417359280218774010505100402586926247457350279153395723459682172450644448240983464909785048839864356767786158098546376592969013778252464989874355914033422391685305795905450244096094673136377730446012776212940303412810176663179502533637794622518412722991606823718815424662559575484342225971649879635625878226452154623098625622238907820238922578361475468847142877282860155751997460722631218590007773100733594847228333850015612459644775181152087046457991414866588499132479672137921826828509489796366767892588513228103473042700602878798800749959939762477360513943077414149039094153820353271996251124743552547082007281758355412091342758972877344389481229820951531203159024978365708499884505329807173700449640015945269282459964870290652879569468141613080668427593336606174783738411895779913494725826094819917845762402581270620124757549078904671492713908608996142643226736900097418241039787417468360925338328814948264524279232476074227171428365002952504642566741308221057891628683541339815331843625958385508408894379088323381684145772255509760249396152669394731883917613369504759010475189669499052512852540403657200835015528959249529480111424246692064748759071807470376025885504362711019523947039634398614429295743093630728864395791817816816937198063209338024118507338992198381348015069910655641017288638572374435607873212887704575747419393063310164152799765165252394981648630420760087530388458067043904117643121219761417228002826485161140967933034937008635715137492858095926226073220790994770549512840472294454655676495266611175738370116314268487107645201432339526088995454953730318205125145351956269221594525718172661411417656957761935573131058402255942484358651170209696246025395675927035361259577358400602463553255162437940889300045693734287536629533810484286374615749128489318958858820705870916122920182169112914975105685344648140242667754555773862852313912847156821173781786650269628107524460760854177372676539483559105634933844757593867297172342955594893734081960847806162498670835584633823862269447489892380703090933985935278989757205699378649259716283031653649914492702337176199629109222010403832202116892033489869625462547188032792007472642266027378318023967447862987084940693277721226219121478283881818559159185143999660489135357487174061317780690649466830245625504048472562348717914666846650623041432282420369839965543399261022294727209067900679316929113766713344519990416247298126994167300331284363837807381726508550180072927551489936748880573382125984054365337123873837560105279194493313121722971160054836905987621220328854052648467266384549231658641842849313806374296901301923144595728887956732104368975536124905393898510539563652406858368291887795078925478341616896260155432622655971981943877701587747969216361836045260161036204435838436390431691446488994910464152145807609376243508531638751850266868616514788357008517130043957351657339964873020061131348459390453185579966095122688710893672009554809261169474339257489158433396683800678068177649949409876431900268123477885118744549629828374965477641300148251142390818917924029817708158979329203013285998364109142713899664090551018390962437944255703754997766180133737683502866953502388035432901634654170117859695999150724068652027110683085459917068684388964039858527903852824559857611172349652945653140595556235365999928589702043787213527230588811038162782816553079680128049455454616718389019112101631512597075887558323094495753065119623098972633069363725306617133640404990524858748548688310463953043254796410072640662326307608397989317177336698368634332808194755050657620007146853417335764945449129412191664610653005721018882956075385377384127044632007671794064428642935514830495750287697790839395302518325828011519036157573873720058641565134144581512778941160882661040245759608568926683029472615181286362824454328234943993563941973073456521538422104959032202400318154948198177772457658299682316150818258101308955654434680297827686101501683707491147774856427498331175043812915558859696855697204677219033247870989521912874407717738459013120578493898029261666660490113609558948507159130968707363318603732660209195781502892181662619285621135147129158246544600510272888750698477503386778173578880595748234973079639578470680195396849781780314925566237452709719847625787774988200639202231554842645553309429846702094200315323370246065890408447465166231408022396967755028356117965162234868698224681251021710647246859666157779963725840062236495239168638278620254945452519499538004059462568750362578188298159912549965393509902863741619434747187112471830426362871241647209386320596574275774918184291121489844061361183452275592389536201091169575961459948456190204346899946879108283302008135800661082327549226422701827133603935908671521966760358454984775242776959127940108529507464618889351182358568765578989968770699235849769927728579659187008975278488300727628764766723590397636816734699381686868794795254148954989066235314658976433151785456163965684028826576885262593015948924313485844513738164402861273864806521984509847741395074515720443104699687979717777316677304671265127287757080505720899549775348450355559138718542069191244769247838847646107627453254420232581183161789740669754115673307042367597218544569040020584663798703019190502072817300530297185572705094903383067143837590314652866551852939424363372267114093218135419531078551039859754240035433119153412422312353414402686484190600869730580071462101389550913982420961629216222387126744755234180382263085370735956812438937374167565562133776479602873852510588749509116871857658486505112918253639710136310801512220617694958787036937198798149087443496605967096680074408425087746280707991205759051625617184666389026845576354250075827409981871440489161970470413309160245945612523633673929178361007878868709983506176540894784158939243597172855711110539118328197588770377808786731478009367445705671172019500165967419086133100680831930116086808288499913701107935223829478845944911927141221159131319031887744115724400316783546892335994638665666801042395878656446514698602879681960338717866582171857091868955992084984333950448780233613414195680474348492030377895951260514216549488769351260860771770209961067689451127999140720631934419498953944762710235424886243749799219068800046546223715092053346603163009390451600406357627684444760130006845302909096656851088893616086351706113476452827097187973963504216499232450142292641162318860451246542224515719120796240534152178649345713815154044868276569055158939327391404014396976081652987150400295661648626444053496408263510592926200826753510440874758164187692801976058682950063652607911210532321684300791899588082886740495895529678736897727921034230439056163493826157486660874166898701185887958425395036767668166288332130894556889008631646917166378413248488678275801097214861343142409631499424396391946971867255092750805182656154035859492138896629979918095387163122304488107605228773684591717469869903768639058372829019774658993841261014493786032036322742325222075988554549213243000001857377628042328207116250347064470652778662435545274038040460358209362622095794929222409082409441153375276057607199252798852325790505156930208836318086538446097836314265312855467242061080687941955130459572927320592521840565191649559083624908678484022949677537915015828873348635771929676475431327075646323408122626372543966145087841962192523214495709107315824190989220172210152546119116678940365296327193562249947614262844850228597188471077882189270675554973763791345302748404927937270908919182886336846880660668862549596649627343585991690630282188945746951167099766218392169464559842651211078861035677968924132363104824692071031209674284200821316436166958023071317096341115111848752049904980025613423112135200065986825754175461763040500200777791835384793228426555231575957454431276176657018606391169802648084039000815403766693719852818489851889405591831719725339104753060727988946812504899140955368296496822816393085484175785508387843790373910022701927302480900373471032987130970519794982936791138014633635830998466335221450327530758640588164435927502257543887730749574678004198797934382743109329710950561484878565983036633744101900292614960855832483743331410551822223547996033090458864443714870643786468490047605529988808309549557480280927853338681318340637276441466211844948503237675672392395803888537586009202924766712318695195474462546544934342175125526202905987608933694695598855933981300823955981985101299985864998883419396952489816197143942994676488023568351148776965808354429274460325030029601182160079053962752993422077558953286546991401687193593734740562984583303335567426826997627841721465381484627193381447307397807239484938932330053117460952339117598210283206657461876100016775083586912159752268241884404818897403425505411027443396940724295746644171281568594557617227836813035484127238560365418930863168720998180193285117049779301662255897019592260093471499688347769237218176932395638352666610826347220478779724910476516385743237382256101101218342014191396226281821605025057035918135576220717562113227626221675637842391148025094466481737469424978020287331527369670334145224331117572932882206308175238047455883083975091727255700227492662283122601143373140750773403725742621788632201693703348725287848391601618239985630576619957264983565631549995131227088662076852756193245026897863159083319494109941726002818751541276802593345361962335440652508095514597229489740691750510668782490617648708205291830077142495378059262603927621120790738323812982629051065294442452059681600490082273872137385182545954803288682297758908317964828255983061114488199363098055200951478949488895697924959205588566361885593512218884029684029574548167458390540172906595888737803003976201348814136085664153398070783507620882971992106954379597447534468397327290229719453512452965842127029361989024846268339625387155943149099548158499175018978000906544179157294316936623944852012007087967884883331160378180937313407092113092734294357577953320705819585142446743978499810195214515902810137136975107594041101851774374118678697504989417843287021935279431025334263523539520938042367472518466991107292289726740263356908210258591932690292714652213293004569375739715702762601731719416648923769757408891667634922347423326585811146682092243491934282778746499163253570583580916462730836045058186723810689831466592450985068341439693864514416976734216333013202459119214383952069847594142390763487952084394074963810573018971007352907899304898350486199550322225484214991403137317729942878376772978495731071596946979528195936962207650556755263550155605597865515407799709932137635162880189134430311933928251969694813484594917377244261515936282059398951013785120415605608841539678276565634032944550687701178252569811865888876170207597044329042311678602536176071679571511239743435204787762473091425226542921536343106809860545088301280014191556260270534225782730818162278134733362985699336083009006280881334923337302667155085132933880048954828801489049830244646323936636276478454288383857229358857578787055777446334147526076340231702376794295407688957925682850893349628853930021272862178491912689813987868356347263336938549491614169585242828331108645355513220025276188862442016526395729625266543605410249422343460779159392071922945226589658602602198730835865696632270503224650228554612703435046304803373397509706213753484749865754468750466646817024644764744026194044519689349045725237105987859013887382159184303989660707648741286758951010954160877216356504171277110006861342880561201189754138674711552568859512739214401617088079695313078576908967243727836380990397669993659979346869109918618744883336150349886868364314523998066374227436119834541812753972374081605701884025957026204512986606473188109803466595376022707800976555007081250892583926960458276519370548653560500048420314621073664659141764511879154401432160247994226336079683274130318510946590140209464569431260098998007513324333382758303277356446573004430470845371797009937618846765150461307158527967449128622117236898765907485204112706426930115894032416222145415971948926978001199764264198423865345999659615090584575841385200160509684212927768475133649086521705202552104371323746131558378412468516423825269228259259004969626474318991016715844990108306417097391773957132600868002461138313289751559022792024898632396522006948054618393280284953820057024754534346994001075065620590647619103143865323300918140748574353130135784482519572298018895548295713172319686387355529083850293739006007064394272945076475496132039150691694049808131671289506720331755072864366679997183863754876011252283872631041054853142992938153249838695338822914262652399391686908575070532381534236181699213987908140412348790855932015296519210768330831805800769810063209291341811490427146317625081920917796386862587819190145754957380894918810728086315126232621175887084566038305387822428464551388042905356245250624586731746627173671157355302555872683160067831888646581647960008182375101719441155570288706106384102027397857812557830830578474396196966964163424490873186088406338889417099812586531080377729047667250060200093802350903450741798310274132808534614023970572641906768816665551180523796344723655664871473333974892938406958157987488229180397513307731177607512696736018544266037388012087178511317578478496469313148060273905883839975893675191607122225979365725241106175288670900372400443602796837482682041471236924125757437349191666594804731380447462321073024957292317103045572908323274315541586564193197632228116979909884776228253026171358265297874497993035049317544569813990058448576518118418398018822512910311640452683328217474479343959104763940209154851861198556526971533068221571609828598170655725479006551512844489857320574981208120649128281670772485415589999097774434389128109799613141529041290117126710136929441514104470492856381534041869527040772375145518028451983352121083041471126891474737086713826808911802866798216080470770792467355371076439007095967028573417426899447536189437988752365217641403645257723856161269448372032660820941523570187465867732671399586066431448014480036854687571753854277525766578777082000758402775917020036669616350210800855421091422001298155192061171076978765566381465555209139500939071790365100726994279394090503583360047070250622204453709990349278236942835992315756799129034010302083127368708060898032419932377072785784107563492578414134881899742202491000275625125253719917164018191250336989311176773433741103607052742766518864822141149669057304335755163870417271642211200593364884223755744257356510156186421554236699126742473461576469812256154885667284176779940464624072806777183411704185714456141253039984931197337579303763895536799863821694542554398503193959166141822593710834731323109290681220573156081456123096307792474059703597969656496148994786485791614994171444676096148031980018808336959677411997361752568555450364451891743027225889832738614782927762279200573170428752115782816501013573595492553455689641883801738553234781125430786394089528170468537919790230776056245623601647915845906625718152656633151264761204255570627060451072516695103666387932062472152099912024895119371593181715333161656901389298614477642179414031701775900623083739742205827337807420541901871346625437958977932682367978324446304370429328388775423344899525023127175944896510900866764606269663430822988547860415622173488207768890173005150472340286255401967409142723681479412671741563909972583071152111706364567122679898609831064234354916028336343008537918122561607696313819305072204208809566501252757726302095887017448257688927071783940504506211889985514808262780122426073189693815201707664577138346675896528213932824501029836881196103594343168050265079936840019967264091010055035517251850138076018431123682799044810539267748740560916872221527533647620089834574348592089925784031719451759590531940374811918987034675948359978652886629929334510153038771255078301937422038503274735417665257799564801243039392784911072807862479580571815039865259272577933144192181172471970616376345417827137239319445715704290757495641844335991182364692757357341342876580111285578411380443879350714625660473991670512529224867782704544276986590958548236194959280886461846315879293284428351245996765569562580909566144429032049755317213872508832338204049640833569436437838408610711689123530157604246279443898658521802688044833369649107050224015305149383100025057368577604800174887014919403871213581797175116542994626573952311385386865085272375862698548688916953660085267503702862711760107638019086675616225408655381677998193632122293115017792198594853395268432581032338779334347175000411690703669741965416848508018655181354124790956809062878245232655881008520131970425842247954283186013288278116626076666489757276177830037383961263248523014432205032525891276825450121842922657659078821237660620538629756844308956580198597685091322858687541321350809239244105390139883419850332341335213688890862215984805425764189578451972211438287465144113958160038001090715310751734251032850464851812273895513115902003353524130126835347468370172951136080880610400857763517023913542930024979402638318307160633489032591667484844632117379653211767943769906122597212139368581427804952947409663996003270693890984065232805577474420488902061322516154538514113106249910888566023339082321833143762170111597139429080362001911023390846709405427587829307246583170391930296306188920466991445008632445444991793788776529072867331488194741490255993677922621755377697204188512133494322188386937313124369216573663658167383186518952592133399154397205039744609630913388284283167207262874948219259261947949540782976243353279246027056230789788109204919143766629188310231365733829481767923431346620668038440596658239999479171857180011418418916200470514197672267266329677577820605489526062498574997133354558061480518030885189106052610253978642362501372054247317895391695932632013962246055242958676535217936230981048771284237638454636897585998174645511201152152341397005272762914090112593076387643831956855502174317549437741494157566049179210299844685225273189392252756647828253570666211580462548608473326089312216188788406752921094048383405517754422046611426105120110738811715436626362453473592870049618542044738492449886004710204779591727273680949333100639851987769291154068880585365568480184682908481223457730138166810157711927991720600047035528094968789722452592520676327601162443699696863933001282719350508467786687764251514100704874397850783074637800645980815787659896438988229573986651854272472765205425008133540961834621293989163590506825498018723481881780606399492238573479052358520587318495759229280935003354867579524693398219570131334840486657160324300581579496756730673528315243146698681735798058757695803600327422382715481505494531154898628819294882399289413140298254721158409436187716698722367595656120444061428551842195992740237506371467839103771706234786132056546371281733848071158547326121411379018082163402991556858704411346230864866726601620426543872455051635702726267160464010313046700308279667973277592027514610712595582629199529088260151975167951286665832969627721567865410424065692063342794096927506435969962129236579378026073912619602668901212139202988463034537772644743919057117539203770231155087416695541990351464340918628513858075605346126516437012608276785737200805851351276385687580190112959094207835924258199175875401565564307705305006530738659695011756900174399766724220669032623351100613741615094805545853640230349274721818238187328305466988452365823199051297953385076829332825458646930376074742758469279143374770651003462109092043921770999578880132646674669042722919715485800659654596665396439230719324613393852323984144779175179593126553703165016805252809400843514730716806631095972394546418909090170768242959780806563595950272973361204847744198133734061599378621603085507859652769719895211358469486245333837832863135160896780904382055016901763843996413158085812012146527242386009706642838045870539797875737827507558350104565499934863656590447673272012657711309238730649789991800347415205356648874425147346255421058089748143529427487123780211432217005397680093570816015067694972583502024937781386501920590042777121420476837516933346215015692682980537459852055448799849898943028486260930323695183891945618863485319554611048274361190867148728351457120672211075188198244424952056943713777664597090077074332555009662308438075286361599356785077548675720550313362435449523463335791378161754956847901621378252022186427655228083722739087194748098695734224927612937940906871788500005629166012500055692658728741763676627829682658174656827139028349500328381142908952842202107482393435295613046789273873283143826198662293467355975733381040748580607405361684006163639175458332648939002647679515558860493658231870914747592738680569840412492314430146234472258601009345835830375211029997627828628847027910279141667204297230833268923988053895720162627686620658113223817013292936200781340073761902002152889300778242342549920340732643310094348230596410149265614402966088844376059670939956374620764106681730086680144833056828995114392348844760612730290824988946241526613257497751826033128924500889342228857568588408434109153535558869152830741030759906901959481502510625509966615481556580808293826999559382367150502100235915747650408837926749667362098565667249208672195286834658773002719006399359409003117486419673814711925888941254950882944909682089612982028330775338934874184570807410197763980217429040352658866260150642781196479325465174104524862955585273024336151874422013539487893222416131159197111145054983421643533350275986677998756582680646251319057281403426735900679630315298623500017578870653094711419398915049204124130621929795155013020107435933848513861489131280306128206260464042315962747985222914947035949993487279226313866656974413251860490369587319691882553243312558306720139920520983475439126901439946287602104146602605218672981490956609048027819724446994368941068116879854684768895958248632155122147167802012293791484567270360505310989927610935013930420281022941140945463713667400551355497970310048969142312054634720622891454328799993950555899067461371000730754539238003051236434525590828297857112609663150599910638327236819199003923057577973699087347167812634649175247193593782177314166140059536972218646216127747416586122235661710606408457854496045759420559387767665737704004208687519843348197040874888520934336079441596634285562112767571171090154381334272071538646544391859827403110538539459803875101681407840291878090678273355406902099015320161293895698505201780998950119016347730147884309794391905629348178026319324718558596154366039453775599547852617457673247208992106894107985310047746568168865425204323750364379456797755048113690365715337705035401993005588244135089702218142707539077697180483927653587481076610537056084669924801246995916790307600328386633663922552408975657429309659675964892105675947055241779978301048620861070517432275232112260453580587932843246469223675474111283451406122404098257035751366791432647403526423413816068882770951680502270136289178741611729194806206386049446897904228943849687143115197792043230322392169612485055421009601804138308831577375942889388014515512847620253365848584030715045891165273827891041635852213630038635651129195262667258948934754826817089348189331837208292002217406345465912872231989386285452189448832175144314129892489182235440725056083103368299466733159391090690577956939491691947150788856751815901837861801287780649167921189821681439735697647253037575305911685080544510727150794395547509430558204125638787587402990656407370048201140896053550226922744672222883085799860125601237733310609634828998721918382938802672366225255353318000953875358903843183066238161624882457119111205173951079727066991944054724560887573184182978110832930708999402750014776848106915472675229417061411595405756765000676606940949920181338796074118319078172242541121574686938942333455422206954138649837186122435587057918970327736752345635834959498481024573544549340765397013482135678654883224487580205861112091960154310731886529501279595189467064623410657027165287102125524492025074218630254271033002018719564959078554193061447016163523397350204278815171128809003868578428099983558397274146683707726197324177978497810663544667221408454755012185588917076409085581323835294261009583504826929013624946066300531086989984557247835077448725643018272064063214182435995979919227066237873771298823582521499879218523743962791048905016263208490693996853240265968325386807025754878312104644086051395799563358800573958244327688881117201851383320130278917211424179532384018755829998922429761212529223145005775580487087030088288085361433359868532996433120416505489341149892742651063050786909187983911901069894774461922059291196296858475069729426402341317521523370902209386034568186155729522487293896212646919797951400895502989757092333093746808358797994372358430099065108404464969307505115747943245547330939087761091907308716698927222163942881989020417405257240046809237998443473406189041468031632951863176904567125534855375530204178672902359644930729647484559710364980524509573586177381997810510573117652815101093773331797784994688647407401732708446903719917197433888514594357872547547145850259544144746494105936938797761299156533733628868504519774358472457125221490431623282851197191484168886737165801612388324639165360632916306626035643347398567625062684165028953354676217063270868764552203664068531944014811444796087558575058307382008657866109543605181265512948856035745716967639417877210561012314632932537102205194190608620038490709914220420289669984395928863427200170820043664613397392429173617330804528054937401112380638277890813492581679841017379753774282766569818368668854191362478303076036897906094777677326918445433161790774196013389466927938181670927712499414849135158956977831101372338772791421183156617647635604046143155740664453573518420312165935664511635385272450969943218783196907894817565460932798417948610473092186004060804908310849628445205320252471368685474463138628057424423287320033728481953079354384736356527866447323768457449569524823578413328583242430384136461978136113733069673627506426137847394734265524633442059479995982714782352470000619442692210658562415928768873191422473873075511985797051377051409018111360371227522322933743212780066401493828287116903219983308196584346497687540016295544489988592807430104689147120028921465345201957442702475975193978221617368519737028726592562343641773848227947136994933300822273889453427730300141518994381134101857692761243018548192603945902404999996136761606478110414602663293743496541933370843210189513516155293857233330891082422892919229742719938069444354763106688293979371840306517814952136192360957297180832276233693753793542161143146708831493630270305597103489399896455376052203657395692353781160149998857298687200471779396755184818062799957992109139944004639553586290249222568835001572486594322520957462269453954298998851921573044942920551834871234430260020282159453170464448810071489764977457983022296006014343057267617888244530077883627315526448499442621888142321069673937245520067570910291468385128982199690361291934565137576567420614993720750965273256857925614250382030300377404447701375223829853130179588693844338630491305581893634886008982006246253504918691998503775722216455337795974146502952875813136214278788629066213713147417568432004435948757540994574153378092075515478015034533232737341168388864416748551636090223273208891282361597198935138751410706334520987436570002900379587215790174153144246750246765233250377148363400950423528555784697034369182913567428283181208554900713580992114425012857860655109601758169249186119999818313718948381192570518037440142309544627484217765219028612897444779869043421934502960955646503440606337654576381960267029561531626389835473490318554326991388761078765127536933585451216007128482733211098025909475345235033364053260452957621774339103274651191053749750385432453441208374862249586661878914120068605013016623953714102169166330476624597034396061130899513583919994561000342236980561105356895605695609172726274548032539442484525050186757741315015194825500350584751591078352362866824617823698728382528591248556560954318570428698885085840203654642118280158548724242064942208785184054283290880386855110596049804840356102718303231203572907489287264553975253026817778678963301873067931958334119027877334096863507574917263022478168136797858558767722430574562256192577164112798427040767856281691666790022320601980100092480533417015950223799468710000922394794898133164274672566595821550082132940077794401814212960918561963296067054094685978501333801585194409173532982866124025356809518945155725053251261715622654574775340466440151007902019191392321606927734327867855701178157177138443107834257619957087234394473452220151210469816196613985169082646278673631676000229638520798373002675672729507214046874108576594898410981364988748132411508221102583369215728387894014497591830323275156236153377880164984621820112964516720598858058744116476281398644365705539164440280255016336056864047560907260281811571366032900761498127599934460287851809246068209350972517129846954551281274775092509155645070763610035117721668290004501066460703851370999592875605142725685155711138000566557992432098346537083480704261088302253087127547779084036779331428707082644359226145130147874112699756249877086574501005667335661291929908453431722673261729011692319305970567585690045251797329555034209935520025389251625166612810444173474211192924306138921885245769609111973272846957190458159319964076898410100129638132692965670454299574955466294879374591852312908209733735453198934382599691577690043042273550160430802192041839186122540147014905498393830902563510416640648851363994366426879100151510250316660519224934799721208366880052969468747249671360551289833735118552379730727788670694217321722067437027459601864514615095132211709238295026779452132132165988163239160190288313158165715302642018472520211597913034365423888687562603257714711814213432301949362205427140310758542327733685082031728791552731131218114983641260287860942013514936903049924108705353600069495805920132462557006181346175514692185462120973609437025230291909345340348577415753333291325704522651018317792163704064227375369341031385871424129494020864933997863526778755645175283990979166570435246594758413777864426913297793698984660723527088044645446012300755384896705423372991393755678314296784671795351936917403186384212187928481917648439835959950512891467957306777733276523115403658386792839611276466597828748553295037251209638575465248307410921657356907870526057363972108634714477714036925218314682520411016535684886872268357306237009848009651858605725916796705290068764397468960092962930880320563474553175230479239393298525267476171352962186088970048394944993956666172749129410895137462467970866702948834213030144201173512623784586059927389750287803115173253190779712329094695000777204387991033643522750842461680424445275925815362153224784333461713324769244488490817017719354038063056131617119968513063620741580017685071764681893430147977243152521188319319292489417663377769576108298817522000322961965186741711427685877846806648217339616459764093319972817627876796284075137897640814691013619201071253101946205695985395468847825469163685098727528263848732349638736229030433541420890932059023169911298384219908576169555730955762725680648976200405713122111985175087710008598759389774374961841086448993931386090984407774898665458146249622803008036065849346886241898518321452109267350805613510343038380574143060637869353601563417267281844724432999504930327455268667832563852842583928830947059845228932566041636658202206735033159581002120472073189529721538308709884952696069470464847388360705751494199484763715460039870222578998022832243552905504559055302277293663626554598333900548495796245992533921830575232838565296629169221503028906944504827592655373181289302093468305628117671043222645820145657187938209627988070766863561852173946418334708255332220495036032701819236685573876268321359384008995828188556010266480679448268785941883360419755440656730590210585713853192998354528901354380571155837686639384169372509479921841899694911724770494494484143730649801083849054160890777000561666885333266326880132586829837626317452998055663644029289744012825838505457081224909877463682336340684578975065186089882941070660495332784649575191282140320802460191241243698527247440360759194697334267257394408835346033871446766460602054494585257409591216450907181310576666564293539510614816866510447302347093413904989911116949650515208299116567397402157466917152025975961992069283974244332029346779489465911247794656229748300168315414078254921021793518187883674430436361753845788577333523986945399170650064898295928285627305347981668018427724305194192895104049210705585776554427512237182354259924193341854590751680777375399619195292884486143516463487906770386265681984040216038024602512675834767061590917508013944095697124602056115987390513707047231714702749596501314940099196372323186999963227114793516049162266104761627142985238472285861278698421034521937912633988170266294580899975285208134258188139278604773171972638508001051045337262603911896234785871890056079032801775408411119056291640755530164735539281411598469552914872454045569150530771301802817409909905075933743888849512996011806701448156590249512545131644630585320079613211153920011672363166083315462645125198642271901972480755847497516215934614527957908769165200282275297089291273694809444478553248097662559314735945190812968908085307113492764837396718835996024046725123709116586372388044979505552369275354868158379855922344079694673996507920041871197422880308574225746222769175108337317786304591911095222598833703592273795000171669240529564055940502334018586631953579246922393071271675456804441210891020421137538233772455371367880667823012167230409800433614366576199914763131990670756267285327315734096110949943353961529098228729620303609709817872133303166805728133928790728782902558930620796928942101146274262575038100248696197182889796209872717365193014349096256597681843758532546144141531719126726466264962299958515967657603800942513941742910177578793437382697994583329642490462091470266272257197294853835241656308987064192484817607745404955479959711236338209295665808796870041939788894058139061175757481870305762952149234528896781002688556934763744878188940355248431471684699029060729594799820616558474297678921207174045690183403582955021895479534423601958243671037526457946903673155456692749374404646811557763291909457063549867520381972752944465064030275732571958443850703139536574499293285391468690425500577999791473759184468466057701351791865787324767942986000219316239105373881837153903841014546644840276689980757577776748165644189900226556091705091939153329953615312053625592440472969023866664520818391633475386550406783689338969108081761001782926441169580494750078203476731985905041792244883077756129466661632606591731303423270781519533460269163927883386025815924837091332612885541303514980444186731259631741208657748977403175110233275371953238977116546393552442995599017545567319578111046835650820751903738549756290120936134179506373731197209418469810655081065377907601173959115223765227319677074293719727143670029388816279709473593337630124058722947658890927186081450861700353362809136363194976986624230068020593430280403956402528919185651424515139627866418292647215290997405300121348504259607727665936171830430887139123666065117898350762745751528160743248164697161326552665719731918818648405109340877702272734810829521290476960678601675283315735789093743252212078585628942021913342942894474800804907622662890750431180945903522530577497637556682044080443639280936070205157631348047623012135556003505705290512613913083643914997209895170480091966239164287783563635400638261172038601367702130117027987154439867865205335507688922238950094289247602987166838165943933138927493897228904761153017560559190864505805633563719685937088643558049230772794924758185068877073960536052106534590978246494471228659921858839493936490539523628569419524528581933455336344567514068132351813779326287298774970975132207857134751596993636639970831714899874029016487469325568830997770977205411140353787030687009676022331955329808737023002368279873827434979914617844264160920694398803760020927656319348481499863935935342645372632054603426176708027868337369873434048162148738582093971153594543152964741108995901280504646154881196940514366551760996797935845688522283145875282702131679220600876541147867578534413438628036867924949106742483070481552793867036714778099096803995403134709344418659428791505729094238895059019869173646990755857834619842558076339977533220363705493408005734285651471202158550126203623003820721224601385461967560569076011476590865488512923780666554764549527336747004538515140316278451264207223820538872884030563971909094208853124194127422250796095410904517771607301596185268728940199920982616455401465433351507951128446995711843894793677664470373371317687630380584510327593236863390132029499148791004620312588182882805166796793580427260495162573922172131960638670390940438362725723083130653808056079711146633051423093306602467486331981277398453484569304036836806444932509865946832153389413449829552900496820690805021387665065358864869762517037994885068444243819048288365119035021382206242388606109368690481046392314743628369659629667968682830693722603109940362943570061952401938136065220108373984450667234601010218971856242216029344210607487368671246028595867337502015536201079497690648341611213954417471467536216497161005927711276486963648368041514899233295222171849608609917438690011337935462877819541060474015337523930286842400149097043346640897439510049377147856621781106260811392555877247158882708312617088954544280659888249612687059770842661391470239455587008736882345923565673918162711906946858177303440540852789724262329513438600661811830773341311372660521002766794446966706434054726493260293302871943548049521322420634621607298430581959081769787011541709947768771545077398797920494316909149214922077928102151782719976790764927963019509039503087204546028867056064584696638186273013757112927541824187860752364315300421179851781347383568025008545043457200249889205698774212943277581162729479992457617149731419392274803871010519517712845888939445592310492758031681043228075579832404516370798358200437253138148145306618489318896398346788866103768264147260107264526952701221625629982279428331936142038305333246260754829514165519986129532353045954138432262991171902342296707451113823957941871767184800829107791399651325790832654213867249364135298102983788086407647214928699481164195253164246680870719893933068463189758003548098384084254064702930364684980310835173440419862658500330580474500445272964329364688979209899908142022184562060742406217788013100450034219987997877109424393278172129996243229179505526749687683116949228751034529105013745165490588434112603631244084254370757956002294523546614821331228801375134270996895918110717068256218649585559357800122464244391795839857845786680512685827225251785411035635110414336317033795282829767288159744882960909199753100226182198650353150700455231006673773125568197673433375623512361366970719635869660943821315822670488785169478981835279116616855742359731104711166243782390381697593815006661594972097499029635108028004682673557483024753003596926217851107115066888267599338296386206871860703021501434891187523825654829494800159869678117707589457354588478260268812640523408190506107189742014511276523490823226230978807387493933262013847682734857679332071293621371857440258217080529676841094456850479816842546096990605628806977016440102090987686712589685721137480334258243785944765946753602261638145458296349518547544433578309155520091155119587813887764797776896077484224950643661605338649251240504088707218873576746148848922834590585389216988138634837088492721341667119143772051381276921950089876967553301832195856552368655995870468863828074047119473394536656445963063785447507530284024816281212713588954286922772831842247681620767399114261724222583400047128078638570672637620342770422041754114590735369988640768046786709851896136768699248736237806215541903508940308955037698386068031752318553057835304472218629458636849320359082484684165060479945668482922623352637167620974681148442171111338612923699743758845077537182838731674310916428391195409537643523357793001228167686013756994544767596483941702053678960732895130690209965504971039796892833422327209082565153470087766406072557653365075358291839582000624962133833392366120763687064440482049026987145555971556480131050410653697304859551029314234882196471249537301955442335716730761897577752342507116756768575305204577226245601334963094615742926222152045502284541509726452748936254738853005338855299620582467794672292132754742949399252879004719571849599832313009999216499374816472945516513535373650374189827802701919228985895203769982760464049965112259843270190182406439207250651382501517790845741300377987220741354091065759262582840004263321340139117649662853618519005202754958718928702074644151125198446203248576932292907357948523906625815392179967328973744742153042157543861950264090771482063921187514811456568035261956991558648232004996998600275815409918480112230160376981703260585223377921108622897319267340750565862905243806183477839194993315720538786580718178959263118371933032670304492828729100172409730906638715248680712361719923903481618732038015658794887215572530745564983991309217732341661916956411316140127062717470444238932455019807194082293822360500324890900932429906517338352612810626658158525891967319483397110143758616921053586689554363043042575052592864430311553835740078646418724113452422793215277081058806872736378343684001022033936521546965980027499623444657934095305862052380055209267229624743761520652376398845753428009214086382401480460889861624266001741753032077412458377273047014526634038896716399655494179297227940431526905422313307545440126837173557681515011365028138492504224397589846438274907996911468419616635552753776851722039687322714559342190899785733634153315534811072954056850606911838884796965194831414810689287017665200102222322413432894141885894561413615889381141452529146569676239004037577232958280320444863219387501697853695846990558822689964416096815055089369583155277661352096706880193954893087175122872353131858477041592324286687594596646919448532426962380132702235648170695302151290933405839845423579957958827817411470299919506262652614892596528714021838149881979863247468657905198273730648870957980915047054013813271789419989262556510909956166204997142873102964580579108214635141445737186817577750210696585227406907438445260951943828061229397867713834681897521059329108225087231777779195256444237796774392700667432534601839905314721437917234906509264403311848949997755015728192949519839634711299522998885245225734316206805439702154545386061187447685453357689806386955325108154060044553496504465988539513933702885611856211049037084000189892628931124652105509927130597383662073869715280368593694091870881066472478632480851299055883669910715767973402557460478995028612960264734952845343748691336243551523445863878075492765192193688431424714548756239066259067664575791312110496111315540923427980359763204757555482659444920237969671785933782298126645871111213170453309855953593099980648015094690625162723320178985074905755453576548437984089655677627318590731591722014717261199938404952945668188930031394644529144479431100106666029909217185136240921784595174815865657013008846753258101741888121468323409401619436622652923708536298569466869110501571779199128589331692404080338878203598634041420566141407910742841733324904269481633923424836323967954078580530443306326890351930807218493243326085421098228701088552428490528471111495097104002475940094164963554172885783817320919295668968782327718741165691789461280747232818924632265731066734527724372224257548724258210477033442904845827683606382505813608760056850438252472555382106432325887497274538085767563669145278101275680859041342106371488833633477799813328285280480102802161605689839922012354892835481045669775467190615721669731742450721561271174774479901372455025952572107422784289951826207667810276980656858127848847889283072242501498318058384098191415104850467537241480362998654162133798475146645530452647931025601437388951471150331485935618496700406728666108369269021334042432738328303353469438367562716368246851798332530668137060601584618523271112380449590860508974869972727207507178154534231088987571971967698796059139247541843088327220831536068410917473444477033552750198290602308711968490271215760793856240051930503979660305041769891105662760873895179073137647737463565952724734716297666621614839423463721521357897465114801221183480879161696142952367881971615387779273818655430629745235978713469249015652841914570100273078050203066265101179247975302634659566273885183751485821705520578874261718436808389908335791426770585628951997949306459046214161965352010992992562649119948706032440399600564804377186555177637198089797051969084501288361952418138072394181076430042647276441235926920712720565006767052482294274110654306377948821301563068449890665735828497456852189566368870225334737162724386152990883566565735647536333240313789839006666112087676608385145969145174348658790953310611269898312462168193200972192690868095197302427782708497604051611125948179226235585988013707337224481598031927421606044381016563013476474946655572879263307807786981866562123049781563329565428737968939278685996089155980116385689007907149622475891615381760884648262571446509466939692366007100872743289591577685338513401844173415505932297208270007811315124180337843041704114276935250714861603210140494854837468997143805441071270251229480702610431783427293024894043475209352301546722011861983741528233048113122999307095882859699123394697586001886437504907105975593141417563750859926546482998099575882340546603921886375352360086976805733372413303064144364791424408835126843521383634523132603776567098368820436616745958138700093826778204412493071971397700316947279892314753772580668477569023571473558515975837855406915757357678929613973482354329039559215862327199644239443817287135512959067648446638654758431023824062150009632343099625196593246949883214269785201372567065433915135299153903320077163819724281053573805441479525660292341033763169207530869833028430217413702483463819504186543541931053796721204284357357991001943758341102042959335466297144265712886927407399437632675574523129547305802125839637366264838603209188061559443972734721285194290803366285914056082351403402102626973221284782955750321668575593094498648429605968517445814279833734737620539888291377416775949471197204005968879553228473137341907799933151940555171798284707826516130277695261646333680797933480328299805443030277441193770822463768286744015857337434103596794485705603782993925504970223479885794228512608282242455977343939650908713847802690901479578323417078822651373620064912642297496730696366899761148479247282465878238506260652193125236247914121824689228490286626456247201299472737582165949952807519858707975245159124011791327285294347106753635159099203982801056648796718481917814936078192407879712027472887270678389977899159212972914182938222902363299533720183607365083752824435546383097887757911652694021557414544596300672570168332866641135063851426631903698290755175177990783622814086626963272258122165721304535060616045121914436945624759004469063157345233185078812563232930001675901862524757601936019862011483360708430327406283664259636187623696219101273633402296124474861596316743469275740830864460876906039958304805730061485093843913251384691024944752270153712224270131353281126142695757915315472059638171120025630684162553966014279450318276133218645164873233315568359214116254294034379165867625458437780757585799490810193265499432707536983499481931934924277364283691423695564738708935363747252181180392082354864811267681995014003574779564293700941763609321013953799282572905569411665830711814559298322230786951640854188424016863715688707908694562267324113086975013792046402051641349223541631988764267406809549327544456507517564427590569361119182369112319284802654096371259327151631702953085458018196430311113327392852626112856404689025713069568966889906187569255711967986389439275494262082297303972901266910897248647053502360283231855383367688728776579414044950038365901898195681022953833325616775307303488520561658330638848055335821561131718293539926601934242301416229959024173601741693080303632745560265728777355907012908484153279185720277793858853509751087618153712081144254368404830210210925982166540748859761175249657942626726899098878641741144096453554840806584755243267234860831208030735382710036752260636150614462988725910725343532791999463564230350607268372034315720482319341568987208372142883951058481493124578094577697340069746519228319891294267956037257506317858518616921696105846133321459326320254742949694126439404259621130822001952296598684983475471191415603083222001879229989167566235702214429547641330537456118430927732399435320174048915363882663512280897543193487864027245696308659796430042136694167362774850995268467253493093305392249607346481541660239854839421960466773175050004894025446973252647820357348699630088681519811198146804918875828509621835917527002925280603952038512165277228385273713383881588662895200643429459819467297849765592969830417156668058136112420703883743426462559764065642935221377499255737154547110634525908147179635546694361608671499068965784046141917636877079646816612588894385513311774629980871952388852841864795548516251442271065010286916852246538134815486108019746462662271356295600262081876438344797102293826015418082036378564825206640590736160413876032387397989571745673124930665862946154670338478203187373445578161890196772494640191588504237736129048783762376018172589652323435206821273418023920318346632074781507518214984916324626510532393719813164433044762790079663178452666284130666462281228909507944221417766269782189786879538726146915071437046474192289763939556137824217960234480857048814422124727187191209696685570468475142989627095546594065766229228071630884205493302898478036309858091690821346068513687352922125321663500345497716080625147477531470095503318217655359261430948179283811467999251736242507632821523244812046729749535116368594979449379828276581909869277123924753286563991480495138242328871377336327812372553183029368477752397994463318472202561999915750355283920193360411388106261711439609896916170973788857864284930151594926371983614852229010706238889200866086412300365530270916360937487982929996491705009739438422981509291146426377186865393866154447595327945234434698391759100883991229318382058084199690749885027004543577664918200929205531963638547491113597113520095649783287720791085621142803679710027811140938194699496271455647687883831598306706411258323710565151175779289026400711369173094909630783661163712626527318147752138679427332657943870553076661291299236043827776661522470635255226515253675863145673965258509427654197384646400370143242526334567630768407114262061317832057072067313765199707232803643986939329742999811507753480778403819936984804041061936958278112963933410640809947786719430693818398808517782076223898756991238460015738759962272989250028197892286787833533982987363465911546190247688081180903351697362839115741406172174050457458622268220141053190379319849849984687247242073689325421479279780033641836208430208012603147823616950565511302551695493190998302900215167211185056460021283292137436306965521731249196900172026337132547362225284220377137064736477293773558757221208314877809223842408128907084092725566967437496835361720474657612002801206020545660765172253787327080765691011674517610127363577869892269058975165270887998112532269166843388384138848394791004879448863704182878672375563397420981699151964671167074133521057301840655938402767294682835414209301367441456585655480913378649128513615244772495497162070610588269672801833042300590987372208900982796183167344131445516481799217935750446010277946851451236250517595377275970707663114060075593029731839526860718037003104546858794368960124900579257361137695932976045546304232707621240028322861514177814822120835792878260514398473918191219000507995594758847121861051910601456119898407805481351821750194376345907084290829676714223574930648634334412185133019681504789874978119998602207258664566868566979624045485996252813752685283404134436964861329542240116214398372433452515703349029367350726125906316991359340429316353386062375772369141635406124671357599063950587400994705124692622350112969554077060915408595393148740034715349866845276671181883999704039248081822317990297034975413940521102047021785059128043729568106707569377824429332147538369651362016094419319311607681270215957315146952107809708731796345956774509881573081830685470806808635993563241852627257191764046407299672938192519094776715798688674113521776325353593282700356540757613321475255733075485005089853666111590521066220004427626792555542679263767389221122006473328566410942673612630781491436153611368579804462172869278860239716805711564997138617438501111580892152833542266955087057028949916839403538865983797505521297221710877487697858655826684656527061561916648743683893551103181825827202450779345993582410900684811954272668549142208812878399069921481455722942995995165596974180637071938322278459677846745694616791976616113209318915631872402513839683256115283990670869373014138882178542066373183672339876998515506626290328401938128680392108628075657715354891581552229474337423240146164627752469670285820016450528748547436827641796649472771577129184616341339922706533936165210862511908448784354604722115842905688677425763460374839425623740620586833925571321024531098615705497653938866730633731637551572975345009173275382488824356511390854949242915109403500093834191797122293958569510271353111322493639361495576971460215876730299914612074454165293731412988109879084755468261174346251436109110359455224011681288793655690288777097070686455298356855471624756668509908209756560887124161372721155740319643974847584967965206082836034728468001499568245905409346535015471810866849891552358508439597874834204216842239607000871970354892807130065568152724550472078714910681852907017839289995076502739200991300627960251360868742806972349833750185247401111938555399185103077192586393553492988932658335431248657117131276258750518485070642512225727695463443559645129331092822465507211953022718354564577779700532616787947550123008483408540479225909439812020207015125392574578827611497117737714018370358046503180208088657104902974128363719381336236998030517186125286108870551391858852432850091618512487715412636819763999487859193498912316092655224551603606012131924818495759820414646485269334430387682093838776592641732462355157338177057223787846135036933068879229223935646435347358592093129255657838822441557275110341120480539069850176341803677171749386382683318749342368291429959705294349933219558624214394589447891021164986067334729644224378509660082853816369440412687304312174472536426174886740294408609436042885314169142004797299824398336981633672020225516572919950374602930138375064357051523286350551683237984069722531130681438555012076053451822606630113604674293489962711298905100910853010660131618958131207341958558158720008542279545195499355406979683492767477078566347974397629494491048323723889766578904646244864186450367693618087031200627142980824135699715581164452950804703592910635600624350290008191565483855939776906047487372734711861540126896023825850559353452538714279086289450701329330661749239841142720098631250782978603940505803000302392122864316530793405473651330864488771581236486895495179377820416183145954467903151167256187937770740626706678019272233133900976266696671096379380921149988524797974224369667066335855848397701367056209604297327374753536339987903626958106557065948566119896844951937934508129140977160877218972100803204795832648386109319245441658173797030321580383742217489807534983683186297912707893589909138382194135952584260334036763296279458976044937298900310314452437827483331572660224424965192205284643819719371047444879832417099383370566372260293883777584262790457766148048933910434451122841045366685391839871520215709795834675003918259177051463922617359984158214787896352097207953250999181163748805827243841412701457486662381995163312095962655134728260502539772507923778345108303290003689870114924848369439725428624879341358493432429844949816716517857625342735939764600579800929559917425815483824097417832766892493551591933277532240143588472137665764029803844565105976647909375522287579967086130341088599241411068190856988116217483799928409330791386222166061235613470341429073727656327984901450260844725991559813069823224641636469026074420008180460378088531987163640692385291890760457323695518181294607052574367641473211748685893624665838566383720981138342377547357398961302445591019317607686380060881461160478255202557718349014188620039020079905603093655853999704759035230818136159200343025453386794079470461645909119306806764870856831731485779711729675754474719855933779445948070142358014383017693368323025079134825972431667088853265801335461068235958463278141085793211446702089489440660713628824495160338074686138903707520533818683572564321662573886471671100379712568309290985519283303069676617278556323126182088386828941842412156156739247806271201905897840651388254698453578436091715373425666232385857147686681975941455538979894195417361306183689022258289964006386550788487547092502782338191323860586211446245359364301706547230162939035998476695975625578667515913296540859510725524962090311387498130205016757066062765944626340209258699736610002621650229804439576728814961743813178109287034156409595704281073999300596609910225586487895100942187630968903892599394330869427573115414585896389039080957071914730836421461449763102302625724390603360397162542888460432647778732225555988329997322656252957041791931246519779693833608327749468334013197011648257409632172916387690532555382225833063578333186263744821672166786161204580583360925835807206944975202906512448588562796275541033435150602741121439009865798493428644286181125262324819907974830997867710703021637130964437332027528166474210135838051956818997249136144646830537565493399812260298316313279278484223126739029762630066457479367595623169019358998629190018978035530407242278338591297752219558418598978619577476865284335446726022219021621030084611045734120621452847462603932567372615699654090198105440501812442294983704709441017692126823871996587889487014435897113962712262329604088095118389899039102222488941090194892239127157097786042161359629111358930186178428806861230046772057500223592368192947716103209267705449798115396618459347026126392014974627690056638571247458626229420629140462673595683913102962941062644403608864466456122082008227339248630395595144899338304224434749350512614958963011449523586296920674685489972233989770630605572955330464754359854180886016228377118612330082634905294866151325594007181154433143212711032820301759116005738003331981108356587237282726899623334782955247668508549898924799401346993219593735133480160488495625917194210867347775099175850944239588003785071278182398331438303588765348246209561173481813316101528291079793968614470768475677741850450705129375238999625936396134285086998121582540521861189225162918365514266244294953465097565925980605373779439731747154142895209460208531518193580347447142121220060052175213791214079924708366806016026747071588385054243685715658227009863948631230659451691995297829928784647179708980570858626473847395043246551841894930139420235759523726788319436516456941555010587236142840766933269611711278819171117610358339755811108676156638401863914206378050832007886302125419804056407913548136368375469187982338974520609396109608327336400344664350193125365038502998794794131261586781862102071718283408642911662766329796868111441042561795251731409239105217034074932379085978174986933754505346898583984218189016593656385821883924202212914765457980618665313148289476606134330629498192605291457373454614533165082724150910715784925290259333632663622856625694769391305807990850479819793992948464434516894418757810720208363524781760935556407594379254589767019133500369885151597664606965361346157317044840004586664228177406764023796722080122705962482694607020498801670197601897220487419229365649390716558629201874828524979859531620488268473521637449126304357762219809707305861417765559953518221458096892945884177244923727991247662470157236968913941089264197214404396757810380465343735424879745373171399921091981587235879525581562100383972288007563549006846132548118450687927274367504755821983425722924651654564433679297928407245798239674528753348743235157057910699010139334554874888255693727929877177369741926441113086012078344146240657181943557227033752570819002696045328582427233896200266038526482170098904781064354186901788560566642937350413333583194783829987590586852477143006396308008901850565586151860638560802121787456612410050039892606784990092496718930450028957264127008543426650771268493991691061545235322824244833522711979773094619685902714743495904050477322923101155805076228569134439089908469780516076037899980366255841530097641618540736326980920193312128511065317652924912071220698983257943626025636006275803768091198253763525336306095540567680072982116821333461419297770952122954744548272914757445447444073911987115963966859338888279779889794545788377442610450567538431801321120352446919809140407935565596650678516980252762632414340742230811651423594634137139887452470351908738762540335164043301670342363786283712075763643132997553264813141427699954646397327501056597480335422706621627583751251130225989581518005995555079788044054131775427284257259513409280156789645255645055352750264089633320925673147786460528048565532102458936821420058649435400086299962693801819037364223968737414229252981147745429993513666031624411129352552091419354467512622273118751271161189667642282384350641443885659651213070281970480269664417872593831858970955569002464232095707075538380715393106933892859932145618349660629607237978552630082274011209739664696854733804717579627890013442298944314026567028955302897527005771468870187780458041212328284567455810126602731292732665206148970517868831406213134792893450746010790092425468889585683955357957930772831851566560616063175110217222833933674263951631852011341540819133397563774702536548502868260684616117478654027498927341120582972405077193958980507644251400907732663498823656264725946633028537715595379847299487560387656295906142642183304167582523029774013152089671218092929300372046226470745539530958616718901541753354065776370448527672137941256696513286093018960623943256342122888544574760613099148150608227126541261913382991345152087719427884081734604607670315562121777660021881412523853685800665629072536948993839450392280864170364498705224100745814191491998457706780303987506210387893553178843462715103532933203194140824098562581066123869566894050641292111910054775690086057587469412122623223587205726482461745483027299835328661894215533803691643462989856956583048584939009251274416367560952578274626913572252794860221807821503409250217043256157958714305427677097857730718771970518509193350155954694595472179287137623592120088932908920855925116312608250319095035152680412874106688764664887693453591945534112139725604205957327607601640390269805311172482164065158427397986247247040537467240144222703379838062263915869620103579155023528058473258736337264975611196404201587792314287587798769849669964016215268710047140530798072128881678437295785297669987191441670753103186439622874959266774141431584660977921055537392391330460719012931603402177533464385001486515394457293969453225406464654924825086684883125903157917250282937655960348922215246513022343255468239608022908004289033663169232137004496593350662988581578063608830804277411203038807978812501901103047854979201082716539374472666712956349232592432416245388995974013347933454139379339250026616360044484352796201746694004239782398526341181720160924813421697572432825133038242323524239574168501696115904741735789606299295300560655577968295053747528661549067077964016537837419597933661908797100042948563862694652064632133420562977960750002293685086716972393100358933034878809335934543817044730307355860106401749863994485509293230280385112380711974149059349924015967247919353794976856671653778952400110248839070172535789151702438732240198927204339444914766269191286395081630053977539413238113079214622053001011439791018202515030113777402975422669593430679936284350313550525456578632225806210297960111084916056347419724629016003889045456537378468553644497694079698561875247669428962940237045055950166747694491196564566999962668632140296625162708170154088178464846286964389572653125413504940010648183167858833606573888423806406658218910189894808034434809660932906527681565201087105317066646323978277684386873565135157077546496693658688881533925294931967726794591405258165162040691832854978448943503550337826541729328711529166539302528346586050619851669184837903509271487982732378111312589287123037377447428574540886454268953648249707533773618232806911004033539828312146800214778290571488437316507914209851515548192028479145105959222137109884308106986843888013822954068932628843695181981463374287858453006963852511260377874313796038992336543308771456033079610267447684047678148407286598110021653574864785048846647452500264094388858525222406717106416898214148646445768111965638803089998125367036273702862620434852420797281158398555582248443463144678523337637147278720875629912785249770197220182300072719953138175776291392111362819503593137233263059553992665514695133146945325306104522226425280744324626668236769308535217024410382855538901632259262350636700073196283621583953014807224947628753871593451621874665945168824255148359827044506739079297076387740581307424543874697960535873975409972945958551372124351117633534130261912101023421428353422645348996124662189133263481702060917873970623057841849785851215822051283239120046854597543165417244821562790153523541110469683954417066625475143136283888901953310288453063434443781223713090371457072900394651556111791055247864346731557964623148794848635686234921319486193386447472636838189771517631786294639851238673652500688109541805903860112058255933698840988227074095711793559747163729751941772252238555688155370059752334373477778858522585390782047263061382252173895877262633086778435903752288859765067597510989238670314444482251937083653011253054286963014403229416048477553841418804403693676699377816192017562590008448702435343768739252241576586792312130703159800755451005369225991782057815703580400438365993374975006042769207186018771765402025390743576317435188814235803559708643383331637292986113974606070061732287180089576295238442101911207953380604586002886408163798680166395186454755983761149206400283742868510305772960699882816924483739659226960995006928251862355019693651674366712738818522851955250188541306149400215818634844791531156674100321448932974011140398309308422892161545897644481427225297419531439668035350905401128497399755297010909237768639170106333150974303146643712853003833685455395727920311653352204824776756818706370785019574389709025142827506656059587994141382848585925710405650333033437258854159309329879037927980600311367313901923173059870044849950924945475602462680846515356419295772272366770773718277290393045317044008702445943997801776323876038126527729465715380992609225728939181284404649115262447107824739426540549125618462247815773083433327523400435839430763939478804657056280465901400538703245292250144901258597922339304803527913899317923456332661780325942684060538023547625664862079761348218894923933477227837122616355905894450062282532168607318380079538397865942898501520287219491012711972440596555451236270834338942738527282320036423407307531482880653081821534228685683768525008199926183182454816192413967608604784487414932981160162603329758936164886288060611101560694406493128269795835710761305237791883361724860448191860818695275308519484658101998210886868110440764310188315206601249755182190542704714491651605679103960320412902271526665009890368365207084485765728577965727460632162382694417799325197303510931289925224196665432389420382173393745459377238541033341052892320318723019501527925790954635163702359831405195186609096850999619483923762377464958133580401494505770092187151132188468220404409899944420878686468759446325677864118149756211446900757622886402283604491584659682101071215384441859860972122005444588951318484206168311059384072513687691424147251806300174129975926105866616723989930419932498027918824080931447856352546746437972687971457554638144726054051769766823648040242925540916057022778710990331000563693948051935760257282174058167350785076289073574820998373208029519260490095587768863113773638762670105606642085936671627642668464371924803705685705106644964279658610587158426825693997972327474118494420510434971400821703027232908510245481642693636724685930257296919128639045179996022880332415900635853017586646417504924380055183923153412836299737255678608013584034293958188017255815347235853258301790584361348910931249543865039277032502458829040175226810658075334337784281806866333165039915509612495342823132315381183845663006680944330216234129765959546220917114575085110759669773541817534576612255511853029079536948778209704511722346835632144701589668982874102816939275332471009917548291981359046058550755616787411366599488274163772617615971229612626257218487247229472738531503966308089907386640571811868613441094696876254581742512170423197913823784129036065061409376985776889195657868498550362769786657316810899248208889455427955567464648415606567538970703584005463281676298460149215793569429855005762294377365378551442268893958972878000023409635297234153714301618926239542384219654783737634754148892194055377441063848628662517635613467090654672713511767038151528731653965314585226832436891025048225455817474259772267057204774544311513544773423446620978313040401340561216087258665742766250760886542864674384616972113167622730919683806818021177260580377637317790167907864186031536473965990235025061537957983754316256973226971341735444613110261604270316692111361584962410275916368692211387119967983049273042411895026756747459092268386619028071811516228613294543698640844413962528284624762881675350628221448018186610872241920716110204875284224667380736011241594450826285589017532201648731440326788758794085829545263932301457031982998217105359630898809533201181502762056513844154847942226648892304177241142960086185180647524327594104330114247976458914289199100675424188322374142486262844749372467687384543694199200335196476218263112611301846794564252148014225097562819844665251264681424539880923532572440686774494307048037623421247916628930831547301090428167083934133778237437714395083215351042407389743493968235437029286288963555625772235527036252741571356438867100475043900557654865251605189291832785779612127456532961236732218033559494497349990992108104067180100099407559323904063567025386007983434941925417041496632590419704999499385342790134578157840326558295160227711826506433239085341595098853919937555681786354736360450887039272586025552867992174258276918867696157303823685187449148945547168856346686486550717527969142176095387654686305245573532210437678322123582495534223751175611422848253417264834656392640970475867691063965512547004936569139462121996073115605677953483122516454565955914131478118813199221464260225137686184362139699443651100908405813466556022754894638912828761571811821170658995865177223841788796738638608566804858913623284344185789161931389382078977961166911805648012519410159985796664344214797828456627402084265102083802787846481374424351853394889562198293271254796367585515109754198350476647113436269156338268102695673222648878985824298188642554199429987202343201346589358518597872641991884728864779552734444555284383864895586177329543296511761291926350257437640635329854817060609499977639584838155973434117113446332680849113864332855150534221967662316699718574448931893242144193406153287025210367912291246946163915968240138500598232572933506562378569678703409685618179789308610751983046853288700270231802451025757343281436350256369148502811062657099616950515579829280788121686792358455596790787994652107451825824622236307828063472904654513924892559602394768184480045871894518808191557967657907370411885363587889572121953583282494189696284788870138939989763411654508876207466478367370650378240811351189991578304445021603805664448121024829067839877340822840925638635721432399899181021978384272393333466795224297725738358496672554182842068556176397996340898687300224072220017624004404010009247978088733169525231594753588158898358897799767245820655102975275347185353156505875005929849519213136063459894230024800961887110187727027862246391421386847038721679987442061040141391397587198245969200748313748997351395537761574341605899290669187432705300517585791827679214591401862611524210741042093714437288513813769497941858300691623372204320059013065411231244847659094748964918141115215704111445650817701672663139710116175036188062418869842471815240245222272009824452872024539899700234597536196710473824810499047921176085500120629124183500483610419484791982301886635892179157016551397753805476924308965504838917461257297408517088795171101562328921895453746693420463497808460879742446092390496683519959830475455936353274205430300387795575081502437759788645378843370493099618948967253067968080195641745774890967499386862790556137139270221819643040429393575204026118423468345550615195867106206069042202867733847063463888318989703699424071962405018986219649257663955790276852904587778012376755929159229378529428811789335480063833045821829107231502361405705506969941198509293370526834283773533695450211186458607706097992559021985805697626150529164415843819370018605531140220221175542028696619473632626697356322405870689080859097706777384655399781310539803753333105895281057855451588068185731226832531759449437376319017044608314409542002130136280071790044176779872747525421672875111351058757642255521764972757786356762629803714072379034370972669251297619001299665467609906587193929755852744010641665846597621795923562011068300774741878001226524402482078384427298383509814256655986964681134176800583570446300933740072733642455662360367201061675225380667766659189149398966347890308099272417830964569233656685066968089704517324934918523576883278914737143709716184344026455811543083556321889450681379483323490872455718316956654646608426377033753764598415776226742394240859617653493828641496763852577391100797765600390285974023185706729391737303161940833956640860831984154768216436339773375191529230043039067221572554119545161617191199819032554677785122981428937784694665956122070596050944036463305634301089992656710251104673132094383312900380041206306107941983942112840133826966895310617872234453983069450839874872271734359647242957589697182381536839035179286723245877294447864162872206601122269604736030500678267895466870946740651082761094188632848708255557486117390008236449402826809824050629075123251421431908911647220432745758991288713022171302213369057962342838864298226594578096700701614913151717950756310035732792483353358312887887273105681260980628833702713267195527189151441793709913177892372241822224748943849984025166101121825237989913108392596180999064006627898891102056043962217141200011973870408686402304881217214637463802375425158429532344122101912122924414318982635421614526328216944957133739794768210590805291739739485731234693726701717410895370791027788601881502261836422282451902780464836693924490691171875379092729053342303178947467837128046494760858262914107991934063623053552102489793770297328443569296253494083805250087679566638670244502419954194194822069959639068675400754720098628626277367192822528297919673935637988459763840855764146196520934673636235609912802971981138483929043517085169995873014656355315809706199798924443403163641661665203733200406506177839531537309069193364285612509264667950687221006235175609712715807844885436791355388340795417281236930634420726406823457635652798384304325774193730485146609422210559327563645716696919471186528632855329684736629747917656785805803602514459661097796516296243785841797358806076743165677585059886137089626468882481628396141495260389199948554328468956964461757258190794482791663071162367623118100030962629544125111006497841015537430713503231084886136150689883035566566878417514160656181885571331669952671062964650483676224059561811172263359974152126206260358542802855318690586356312757316151434033994182075637677593715751142073485334240309181706239513323601502909536153861313231460633950021844082257754811978823296998989931984648206248111967851523173294053536832552130864349697354915251651023087163678339307166641943165146329639957643419176050521214803996359520599349755483705052874278261632906280429440751265615432259721729610920704175427561529999543084020175796598888417896579264552855361173310704782677046512738531185931033811859120846505452912595591560469920493627024730102469006565499542066001515110417142779907678995756079331145274784993977685480811269716492419420391831342363739526646543378203678117735378899795260781161425016428373236483979323177739590976504786797185393283300363804101966131462801703042743658362459300756082004423540327446955158384770867595490297821570101175187149211859261043733436678544604872098567720714207045108992109605054413941234669636923600682607677521710498221043876435523045267348873451944588049608559286190432437189222814003811173534944052049980893139343732615746494763493156987367688473285558345638128404054583565305270531021826295430749844432132984965292676007119228472384528592418957430288155174917940823817142280578346940155796875118589475732567748862051090183386622447844399775957862518002985806059172169678833201684774570790273144480335863605864818432037893602384503392554284990665133633392975646076606724498132929956401445122463430400778325656609046403987156276040182220833271929086299959715765762215501912018998076453924157498528611925205400516141414820233946353128164347600991992382549329735676778171390996088510676620061907188876571292059688447719755715127545824790256299643116292835828660339445399282940760067650148869913389094200781619907945943547224065513920602887920628775693312290824066928517960472434162154052888970608245799587288572244659652000365334622684728265620693941782298161521845189080824885263363218634516505867360888104166461694576209464521625162373334964274108045219924808029365529578547614524866143426856259022407232384231971016872848005710796702355299106207952192446650161948057424166284804261116133522890597651434681086187441020773684079671728021730107758939287707591574903544564442959110270085233258170678478240423001317531963201626374801928005735069727852120202245097699074930557899425306007925876987923366986265911446264150471739742473971848808646633993616795316774387007935800702675036876946577128916358959517267736870176239862758483248053046302860779302387502494851999284642149841727568968361055219001914860780326813957951536965749930840061593380046907655301887676047563364494920882104610128451942669243074094432818737289574472120471717219042710511019617292008171274845914919350329069488413089954147869473693567409418105668443892536608819678755726789611284950759157219729999123278223815229168683296134656700932754997367128462337587145024914475968996009573260579095744390879745080055568011960429868618977147092088835108019489169132254126397324153422978779295681610003532158656943120914344903582820359769332920706315454580745282426642830695695018526640472778177064743386487553667202859689905424852894082198257743464465155929679144904280621188444951060618860338713289587882526674157598781044079249654093110617741030804925316215447098756123671195623683222856361870377252530077093521622845592528782414334518008604750870474693024032885034225448609420726292569651426670045567491899503674123176848642520590028758227578229628626171266372212288887601071006041490089148547871040104280370959806045567413561451728742108087216863257451166298778284563741271574010928648632518389949967897586935839174781143935819359016731070592516237471587753816526636260539069196618695885436858894933606770366326609782637190266964080711050551487970433408026476654569874494085866395010844084960779098199693326827639719214630062538504543377238429802186382684847739013903898199205429409095401564009307763124949982618005918467908220990727643596697325588479332697186841915893195268214609733080671679613980894901075625425060550246063794441901901913164927513614492700118440810932533215913799788387560108453921349872264583980483318045157602402448031818443422592460665380273684692144965967044070491540610848144137492424741685265689125498051328080672636844269368346923696852289876503745458469221444263135618419999835489941841727394541512514232303528792689779147054884259219398436339018015902708826972621797252343752377141510292430129314799875013754101711992603503545869807329889574310347733373524193542327841206248847310884172985353984213944672193550999856582608217187848520228023364627418068806687568032947012221774462825480528425966108994932537332494976927194257612806676652894552739037498274967204276454375042164647001190382699345901601910007311162118986851782371762179379110338173936078256370929098983113909755010711626556438231326199885477458206729429530729293464642596721728408817043489285201986823841406448618602829587035574523654777523621965630594547764165870465017119096787302475587078400343005721152711861346317307717556694881820437045326471930119912644456914447875864806329575779392813872635370216989012698617626078295457885013109105322004140402678347781110466742363735666581995894348567612479967918561362696201180053308386970305171365043883402189982218021431784367524623489177650184263690589016492178165539360118173145727598488601164823663722712945188860033233284438880681614827989301137792123268491739164255376845045126492449400557757951614217005187523529481626830726554135693559309872368014831315163984643011563214827833287613269322618900364392069779600940272147751429490722718333597523255628162111799248914677682207411565504465570160794102917485521974233016025438577334850538117442763332908657537080331590021772685104543992531156500301725060259218125719718610412265077140015178343622311788006932166953285989896199643759096061573024337665938824022877214243344433895643425976296177390256194489764189939361260832210734980767801120260222446534218695363995473511827778151850153892516651168223361678945207133617866877921433829093167662940578860826118813017704964984023886380109544695381878156757752544017949478113154905241841054754610949758549059485412598990383083250295017106622161814591361437416353612099002113832978893645042430891775632745208170440335332941596813143304786427627138261911202704396241092463119431808064022458783044603560375500888092782087513103057983877125614398785536196052062255117289876602086440434151835038023227941215815731538632086191143055453677319496611215187087199092726687011653421004404581077142899487247886662770980196437523604976763372093246333181518025100609494400476416756803234797028761891492033112004663317541805463309866416815080747842893547019135664649450093507518252754184667190034413302777680892283380390211115191622935756494802212848304921818072169969809697191423818858494803594091806544609850868540069853635995242214422948210433395224863950947642918016828111493571940923414304288443724742195985208916890628370489046967085496495954519406259211906582567944658772644337468675076230275460968693537692251838742477210832048999227254266309450870270669536551294226544986707161755921606491572903262433257288163562942937507181717625773164382172745013828423699564320773547149825829503619377346470136351356396838804926604127182771388241371103017040940393613625127561994051364705806784622145235221638606434360807196801918693085397843286255566614568494127693440766350858633484016273114883875669730530993170124333893079585601119404110579854829227469671036014361422595594888221511157705162160148458477716746384320925266251418345924397989912086490412662686212209787973370164462322499261172672718733330729860656113914032399815712546738979901667794480691933198271217899000937863530908558597967039075680716170585354183677597997653790490805972688969850672621087095038081954378120846077815406407859094142333921025246114233528322372497420781515194692377449217850818810195197180504480053173992319235203626016646729399209747135469348996434751387402212149965227129479009094471023930289241527915282081437533790091826675009800924529046562248070230640944100226754388571153679301611893782270196134263425731025592772415403322926205715374842594094704363065382032202198072416943665381543416780664557401840589419732773584442075068249907544370008353457099603173116683322931438277770592601497560090819883939694061434861650069580158540785494518740510457382095324485524771605429904085380474956424662048997048153674153952940592443875632475758945669105549352349800378155688983225420125439411985565293831411388580753055551773380618663751727310033302101651377477616738336094254366753114900182683229065431594985312401559107239627646271904364526860556221749773121074932271625798557205184015194475806496489531279675879313864479800799026152757808781582715983037100094412937128904167254817402326770034628926076536487376209230045507342460089579518847421355894216193959168872649522101221951382348035460470950385563767289690733311786670468991230939529387984305294719074863195485351166385689110020570875905019496289855015701225574373302575160327769580735088952684835413009977764931651711472948784452633469636923611715081241643146055482510982569232208576453045496127074793940746136466175660835751919531848701604521827569506943719620203832362634624817226910004562099596478079125760220874866343507549107500775157563209611559321649220725626286878460894508524766820766827150373824998742168879789844472182161087596365500697599926606741753115754657398214595637973760304218902867082267646627604727998157626159517851611855498008521910837563479110815185714195360195957193226820688114841593139252730376196303256521677082754889439434159219995056543886199163374345155964623732153301517893206391764972824541650680678730150669080958239187735067188963088819962221443486921275155572680212733607274781376459583724763090080315142018065199149287447563848794532212691943138495357190987362684028279086368997355779461303654417051076926868061630616554188648448134561256056866277207772432348399535211777726069415930168891142914606311248035602741455307344088082947747748378924834665909003136509240929403479749268924373206155427160015513226497129593284981725511413477320236495735992036952589890529383091130692133441317056980698044553240146235730051209951527656061911843970758394473977401939051817796486943551920906871707052838062626059974500936265220414755923965724982549615751738418244651593449700065900293980637856730478481549250890274985828162560179461067790030211297384459250934792164361829466090050583461718567455469611192708478982696531623054823654540298272196529219898053131006582741825396070130011937940030384012712418094511604059552218404000129993839134740380944010299461807818674378701799412387282681958872887026813003315569422686025109537093698644251081212802861526446499861578983291878027512675435139839089185170110535996624113665420262421682964195400933640158617811821149897097703469941927694517953432037102004228275922617893255293612053636700812728082073010833383183484168259673570692477482727069652752700557669631797322485553604569897774127926196088236095708325993201119686362677261806193735590857024765020067164739054669490582255427145159299128494322323462474416002000483430950071867224549500186309855984103060453793865651170301576339320765111419718285373409008213439187540662603140789252775994321652027456802725962440554032250966217643574318264046492553356299752555623478106936370451206436741424075806122290078262756269113810513682781174809112854591602811263666883422865990280721434747629908426008319186169673178459136113714517124938658060978652344485965560839055816791865329107501801102365325406709134172542717469726759088460308751766166582652609814320750305390928730972521966918276886123535016879592440798074865207693834351850193450684574768460625794450430894403408175799431082504128407213743324486820298704460036017657474429415801801210870204243270852248223404934656849537915949697802444747323036174258833754320124829422193893684456043469980193260776115820987432803025458455647961300976915773269584039654892976867545038033713473465762998798389242923967027909101638165328912375358532139423740949643439993287273087430491972579336683345259821681901670134431634790680565289041923087651142949020304858660755472757309970405232586589733408773103736256666803506223133254125126645498061170744360098246635550094904252828420870799251654913436817690952766322308222973914241137339091989467120650707171071037876466321919086231152167194399792341933215918177229824452328351981625169472001094536663411393258295647496081233080687824052050566377941772360199947760557793627136597169228790781777250276258348721625982210553817141901794598166746124847208275864358910168192061069925865268937571802351581138737385685430966532200775904138774536219787083436221610215294519303201930649811059406253247670291877260381213217582380151942435230025258589532001418712807436533577106214787797649409513506759698510603097809634728730006416951018571089100371694534462149006088380107906779675880794285345614253384244068016199753987581585302961846067075841414610901421488033374586750392484207165826118578295997774201812015835268209315998179275701003586932726324052945860757717983386241049060930191961580827325592550791208682197792708584366667376247051470686948947400566277396457085804511002398514796824630713587587231595744893205845821919771744448512558104780652472257474168613347345743636201431518552615040856661626916998141264755232416587977201620950697201336784062676581522608694426005443698901020874154377183776225156566624000873110684526932597392075015068000305776575619137996048893000635758337391172388269687965286619742340578460969235808985331581630197422948121184094812448589558171379122532735527328770052578139733526735796071463296339883648850929235139067173377903678306958019950256318220990719400128681788594452203685111347677869083055874198447570360043740144214625150475963831169324651313990004824092107622093681409061323263259257514171899368289713348998405584928105951844565288899356700811340568278945084560706102875004781505762111881938805373683492752085834192421569501825317714664413420598554469365275192825342109975343997101624904814162403518194065089603384376623021620267654021161218897308778539118435640507367947175064170017944319071681576916558723590623854744910553310402343826897653749172451541697317482505927958681501920637019559565767297165122399942334715920391253742846816494482726814836906196684060862901161305553637110614214342423337242389377809140640992261160962349701810341143519816957198542253892395134453376640885562187419404833524876565328221011331318797675356256385474846645934961676039710837017339416516134619319075629562624830880845404668102265716760345980909479538087085692105098238200659046585734228198565896154528714060308952254068799186755485754542411315071480687149856801861261332334222766224359644955926647686641907385829119632510723835359439395928042863919679387068110339843885942411126494692972326863252433344484899082473852546698135945192635550797049229664198369785760309456990957780522048751558301824720474320002141352780610451260685491491593728960905213619082029829470267288989639241485125181919571991692473492598068323657028943860849447910899630520841670713551024616517530541823220965458161932360528302075821519741980115069729501370837283522914191512818977773449233207207411011165711765836740346236578698612677194648904712993773241320646306187599043060585561077423139564041121585579176749929136628523672479145708205471981839309465353147396955220284931587676847597698276636436126290591090307090049737256362062607923277065858822073133827094959717233451885547449901812570005862506252043611294944409925915184878221481201691540500814323921864727054116299632643633143070403258472615686638926493944933093301398902933033409196523842927424163636004938549278320732308991634339977823184289325998345899730050273041048679573996832766186189828521295452845882688494457451029461590909150466152337847568626243897162233853583935766205788086391324113127953473796064355410130483847172129108852023668898660244249382387723604718125801219271680669835510828569315274470540668227250703816750600083127149147098648090627524570751879816761528116067263941428047006402550579907888207445946547370490358849503929354450696160868646088649290713863721919255410485645408023601049853348795803538032377259725213431750986927052872198426741371524042316897468764046783716357473040517438239229953306059916185106643960496527546048205913734663938522309859656462750149530464322916432784435569085973481115954294536767688182544868859177082913589976575965816154352624955844567521311272122378545231954117006842798676954455299401878330725161153997429194358626045500436069177278593208628159640242207644031024664617733855420273424104873263218547939226218083973972788100845351914284851660022972579807195047864288649503523898321924873039770117668887056468750124326938035345017857529822829594160345040918481846392883181972565836378312864008143352819850507186869621992400374443183246647641355074820949476630666309605838627995549120544385774893745775580106240238827541161552508830092119527801988301328227144483017207171779078147743449833590766408166584550992176579941667773377539472500904127392398607044715473182458508240536722905713442059033088961975320272841430539209989117231180889327270164039377271954098200423500206994025107081146731917245877596731586675370527167873700377036005533839763296440173855730241788827816655330025747808127720183821383044589588527747787408645329229268777752736349123990896066320170553760133038880651156796628045865975878000268994445348827168338421239153510746842180762860712773049658385259350116475719522293020337682774036995709891634582512954444086979747377871357692514363750240021950500007153559159523077549267001131091676454495102589011423525324319207487981502607780712207437229462705449659960755997848218624511420251761643597776222982996476448048203245701175551490333907674811086088110287070521335616139628297982463779402546425964044353140515698398010737505005540608411519429850865494330104121907191862771182803036072990285841837307780507140516777540292139397899244469494600386906688775847424141010544971661627898346102435022706091583079837994253994041941461366053718473182335408462396334236936075296639131968424773065828338899116917434696716555347138738413755605021112611555754826623577824313798540952474054417518599685197027375992566239611244104596954593332246530490518189048894180301036842852033913918645269120256673021073715183887053641920240732441422713351746873900271026788778621763712615522210392396695326378336943602924493968275250275165006770135090621015422977797189697116591008794506317917667151216717336654138764059180381908308268860482510021556613561569227770868074354145915047749334383084985958195128259770972356810760328491725498649830853203397053492304667226770330588934774094586246074930594038811885860371375423158267517755274381834762736073442505286358239185396673402314060077390601954661454655517629718098783494856313122060573313269501162344642387896112874178499003792124994203371051969270866518249574179627111497242940608986377743567444920684623870199058748151772501317177493520382468988562931380591374064443405105423772617348508178003576936087390566656415937110806603314866095514866605596986355108819162655773637393532649007432433501473754250945336629813753433685074175158811233307330975089881488039582943676417972191139813518300941579485992854142687411867685423142785011182663907745263563662788769185111237626016804823321325278337227157713453859484513062946087705699025352264140579199522278894583386893319293866202815563592232180685393858717068962009127584345546320506847542306032897139061278349868975137326027424645656281841145177155653847701868338917574386708568176151673155738582684375283753030019858920320820881382976544253668440476711752132719729307379687093193271402747486820775188515055296573498030003971869614360638178064392130139656382558904759605848059915904423745503270831597362840588688525738900899687150238303944550726579915392157596904389390720427330916192833450409465282319395396460493931890375467469124043590123776372429700933362887590159455079844489881843915956680109130313691828017649847626073772679546397382932184015905414418919351926857681520391577533270700618361610284425563481269375585065523015783729386088837216720725468505153540345040594871950661769950475620370070579673953346448004509668018808765130658068425756761619060917963140467699904809087983857153689240760700042483113787248031172104855803726300946830980030381641532901365989922481617887150501885828251558265325265968434668997740665184394499542333857169709700584493361682395855199253255615704462536599822747438511663894777341418012476962714154513510737897802204053173056842028881246301721974066013516088293380071581120080449482630752188838603098642636843973647252580274356512363951496115111609421503730173118170877127036506650804952313597770041235632683498404582065714622000030851800701774553699473776057775093686639625251809855327706604224415357122070546588402396961279117571139284367629080313617380856256647239194605867770555053854680016241588958531455702095765090970520767212442220860784807424051310078537319418752040231476847524939291507124464230717705267522893972567855542223683470185850060065770330428872907604961722764783900916232214365043336794253281174785505986914424313100452948386264705837164619895787360032500889705212054177195788668579441233956667891802810697218617418422336872826944384754828852859345269720562985407288584247258913581736322838883082943698634953404549266286068696118095827934930084127970765788446512909593810126519221387992296502353563772259818296853734324154615491229268076062065043110923020337264394508933268237026124764948653281324202781693500414041461615571517508657986420546394729498727894301474586620844988106832451754204890960535117580348912977700946553964458483465207961274540304750229653857428290755953310095077669772677094947865229549880956911302183666860107698123249342700298399130183225130002440546144962588662645334677853947412691151890452724214163966138896131476220270254643299126581989008448509371812870775140996383808128619584155761690462647479203285366671469488282084546179264873538449345270341640752937528105452912665515730132168648192703915624342504384769969837435259358227687417657223034221248391984211489318169178055787776310568723227486396055727918040156036088948029210736058189136835541204036790399976222064508999391559801105911316655194536557727425796601553265795754911118871777181409477760884171891549177606442649845848224223098853786137196085815091389434183596271437743685294409269382826032165496965766460675065384061253808560277815353049700625117541588496340837102368776787516425494319939391704857987606451268084614523526152018255101957313411203886056514675862259864196084800137168057072374844116763467313573881545311065443378600274327781487512638454471130498471155473729515214909013937867481859510237065410682857585936680429440003246029428221391136809745894606087755121718955767094850050172672427866537482243981798681683076214271412785467444634864132684257637954771156174816762080244535541843993850671642926365213722528439217664245325184191453430034264730718365025902613082341983346679756330322127561989049594930328195948288104812842708090188917590008460507214995055322825601967155827857686001789013021785897243777209034901522339274837691549487346667966420215615542803129276259604798814908659027707698274866658128710583164273923941097479943591111378677168418565662990013466393443266908984172497514332376246174884514469321103216862525133436337188249013826103136581334690512497804215813525574865862458072029519725060403363833976819625729565146772441491728966717473966950761145382023811586262380860469136973877862480528031023843990550653135281665011253687158924887133747124426330741707462414872118672793733202456758852315066111013500485570151754026511440083060356913525072981733611590890306057622421985396693396453999565612617449799594768989335569529148000673650570478708409816854078683494658399305426809033738258150524997560510507726801845869515972142288594185127837268640212872923049373522948284353196459217437931822390082407093654360538577757260826629586640288526991780506432042162937283377274488293860523807383542589295694500588658895401648401047921811681347066059980280868097077099105174897086712117453030505432519721002906953675181788584092470315115731545092115126438537068053409162705507403027401232194389232064388381585454653273381350031468560555719469145623845386827084879138589283361162122108995759041117234049955620294887792778969581033381178914984173376191690301693689573156198307181466503546414462926874011314817937847753116471276670394784791976508843963985704262788560167411045547465786771106540777336618881732351595632240903300250500783436032162246554465109074115901215233173560802751327533690859362724797327810978935967234460861341898675453654960874748357992783022242843011701037064304272011912928877331907444428767514116668013313470680564532241863064265495805605430126413900499864643825972423813799550080702938567776653047506493826665291514529095729261688963503890048373328478681115738438702705686275563060283604744088916726320901990608242141162335709031321023771127207940545170800966848192714509450661381553357383033723408361006867846360827853369866791149685936856143067819520659543033607031474110565595746322977275287219124652851731549581952989257171621635316345686106660136735657867084263923734925864252782456502404282234116860384905314301458860555133012007949348063069284396106473158898179544730679770784726868412456549740373205627370770866659943704712915687154970963583889471547110074538590395332224496836754399443314498178218922537027583627163541457598704328911315264605195323461607401761212477767581461704165787326374460163407069201749873171340723232596955020785126381773231926901033473614849376679036558252021221762514586350946167346172791597611300117206096938191814819780884546635302786585942816212445010354094010404629027271384381449589252201202387809240802139652669212380558742837194282974971758908422895760006069254815271217843893958349179619146025050302166030671866382117349448487357447102075580126151241603811802646901788570339279675348997564752964351758668274763885225031922139546125319907676659857118890359725137313056160630118534172718466525312333671591486456528660221146250141732700673269106647552681444935096079830105657568528173608806432789962989152244468211170638886632903043345491242416791857268454484598039321997671037846726824992179930276561751824326260084707433857332939450678719257779648092961885908247375512092973782338086504017378458935806691099818511873198446801683146469697370122649280873393858492218737972356646463071026668247173338431433505009982970533981466095456449276379218648382200223276712836284019600673244070124980302795338648462787152107379807024745794428909279087488817901564408188636387151474964928620324707724782921086867885163175829096977850891143224631107921182908141129145940740581197768189703762346773582011414565026868012856164313505330604811015182847365012258005225814977052283349094228174795681836989405135411442845915299813787756143125925863979290139994336301754873831171987455939290797034181721121086743626787152457584214953257626120228689279095841766831999944586464492468212512395733161021650889674455205081501728816766524767470576676285756830884076213260076848215871028860706429134645267667262294690429608734750884841565908984223677131290929621170798482700480228872373102120273307570202206086984249727985362613097110114768752623873710597514801611210530729143035666435354930406014387652952433159410734202162614818061875220078805153161331529140144507288652898077301336976503876437797187650181473057015146234290320730020870518945238714146626424973980693087998313710775089089984113461438279027718834765778100174149655587266295148763396754614009186894574568892382621396802898037741976664399549817089584549463909456779080529412855258859769531141631166940600504954187242876360748854625021583951494925879271216634043654165845112052546253086720013764951511906251967417560299681084299421477113265637469104271344321067232148265516708871383326320762799285477203379661136531502312591920998728760991890238307719313307114790634944311816908611317909155116320870216266676377347102561021193239494818675675424879569603666918866606659706919244058163049889551554089577332063305215496613914081592750529062495907175212169851582140226573464083266843472385847412664077060483511582917559557422699243938573020749737120487648324199236194547535993999530051012901433285335891682578467495335772013166395657021151100240679948607804744585419554771077016897910795655568619108332519705307314056530546268981637573489208940301699097900105310417181710998222391138356968447169077036863755888369820240274889238300263177983991368295328551154394470164295256705854736516001468835905297601067205050370638023942423310210135853363603511357821091856454920431539405984995958491440953498010691514452000194354126310162135653593239847477778446592936200707137498642782476337242495508627505915258106758740165238602497498596957807945872452651305088772036438400537737613779083956738777820597158026335046877599211035804345367899155215486356651628653190784329389873250889799159295349678608301525691745768748437089357746751457358954206936515045628303218403639276238066353936517958018637968383092444240064155938018673901296105891956924627683098488370922069212024130766410016179207360053385783938570422848893982809046376798721757564368544366363806444648596624586285114277282287139702054731060821385580166795530802088964963362663157331256322106853937222119583079253192294028383052481533237054412967459981189847033722611514375170978829478052026357962519887291224081365542567010072800213481478334363197428056759782373327643176074990910797752873625712016386664412737438029367324371139489820624971074487158958085272037849639587979245173101554820177489266672951298513395595239437737338755211251609438301495619743191098519315693385020383832370221380426321607239588100685264239467829595306573505659812466239448008559184391910942632326300773871216741805008158147300547017185718233808681688950296465565323399299003521821677051343327694537219665725566280503494318339418056403447231545255376467863444717089060691863381089566807150778138453161420741285304542909651217540568674983951633005322565048769080629599946895364102804413990476891151683064833944000857636906657844464978694636038940070499245504612937164382648107945506815558948710925798389650503511534755130966471082300018471108419490789449043986070685377832662039322938259701524512574948460060840090919819893869745738085480591498538109528529601072511461992839939083296436512903260835348222750208570408877859848552434276817296382013982318035703180611664659140358401213268157335849664742779999400936506918299151079677424019370464877724343070555719748539834920234570791830315698178696565735484589399320629324374565764181194843040769817338088184264334521249968904120536539255867019248210367459858639018517290338941688479899463569706215383428796839582002646532649909866316364306051659960133998461976038364724634950044048000907791992681802973571457693779750159768035933579317907561996619113794377286945946615407348596672446401364264909367461314923469482356991698874288904972099902228178010483491290232606874256617201817669688604292617330805286919833709005179902418537846804871286654140243893029242846642619628637179221443014307263918320269224371784065348071596156786272568400583597665371340052786555867760607531618479228887266414045815393727129918639810768353301940458029050848053229187260354696870501215947691868619178916288890882072518315775178355092036212561484370793178953624648096857041147193139669289750154858527054888796511485391407310497819775296082890890923147122064453988734801708589310187774457326696050881576421525944202268397124018386198491574990828117903111326368256994784501118011478864162293663681324556303992632131285905751596771079238272041789425865755939890890976133593974849867312210955661185214300689450484938191124850717721534277390437266177860211772963752341532972874482874575893498527815686273398646265545028432063836634120176375027254945324224270409781468347946657213545995087048749574854973441076025051630707546752475018894815649364705955408034215068244355544023692175109530491353202021231414531050420536179625830922026634051797274222838868079789479243379480521221032912431668762740502061373109640001162592953286595792074509319024204007056121729185610905071741268627004644985022558502804220570459261980459601638590671037922514203608382848793416149384272486713997467018834315595827343141174770151637274939405313838553833110156403233720055882173456213765847136711280985752173468102691547279933959999733697372472995981816955205562922221461924811237393104164151197606594845990182680680523958455376822285619558255974601251352891882305471357277738708560234912340745295678157925602261014936578252205449457005961420463067070522683331812336826169333979436702914093424753807485755658394090650809434517166269102133731908291317750840679484142811093014022352161579120014784868354552251949449656551760178222992055571446565225086026828684763483459198225595538180309569058557611498176161618473905804560678129955215760250783406747329713958628295773239092321068580042289429097330607084361808857340927388926113646142316618972184510964604735591176447911471107589772193062708369143359005365526459617009780310218902988306755809232006504403285439441879340383072043099457642335920094841070405759028922007580566016853251034422198485621225087806517228059103811503559125289689718921487255755799247450262543859033216785947313052112411302101142035997152132098648766832570676408822210224574308792194212581996326538733375192927336067391796793606271269274152781969582405043148078489237584835126718874818977169082296100974916346403514399466501194082542449777424190009146237758879829689051247444904450085242744506645138514355058610979063522783941719462294054520562419483950820790808529448730128292095070622467575735972502330059242332021609840803531832128476342132426909902482450400520099734782487604249744823979767057648136778069728908530762190145740717552837403074377995614551496360961278418511401970818368404981122634782407700499678123590736846109724480820251444680082244190455952076445263276957402885145617640262826075685240712541436173025051151439640640270777776730967952637089492262236154272410204238423167563331118615530234148627148007919476021567663155628527507415174147408417853400105546280999743794006658769898327457396392440305871890201347507390099477868628739820397622864474128834974795219145508618815414866952194589738112358109155265102506910427978684256349967833727881086372023429426021220204493060944203207254102851155852167406914456467574000094404140314258186271973701866954010065428047733595072523684920303114226306188141639125358352433651719634162690905739262950395594999531992495891123935001042965952216045720590360724074157604121541745495251112026054059135032604694216587437153970606738824374138656825131582527363354655936741455919544497845503542842392815391596110829007960173379777665123772264044157233950027733204733410003787070620547372435775119342916236732996728529046581739713293859561481726799287110267022163782330118957530461825311742312774298374941961447921662350598116909934507374645727063857486560261556325449964229309828277359162620569566013504344689687676842231342572150163624397203992332312584234135928568296685540312989044661038031705417998174333873333287941883504754428459223219097092640383830285570174144518239279556928877959704268921014486255009477434358799079284860210216860050191741962383158776492055892592969345269423903935361790363722359888610268369260463822714734893312194587739204162482732718962481011623470628788276636933039819819233020465393149738813017800087988353184957342320010697328816848167591163221705536380953067406099458741324339776360834528592734020677824209214900434945760816450001541576602217800001846523783012223252271143789611635276786413603292807967885217287074378446780397166490323806161995889317667564555904073309832536742484272001109569805720600587738174856207120020257617281896488224309304307395182980709619506457081767951689524974447318063058010287099388077110104992507484153807558278919445063776774039076407294476703537958077359354381592329161754542238196308853433902978291751997984712059187937009490310846190931181809695353702476014073625536647595884007864702318589057756220688823804440006828927478299732657080801919684303771658879732871566096988544980797985661803792339665131294404181399843647886148412857107099225881272560028888416580809784210979663150377272203787403679690572549119713258944539172755910421709958155947202769794022192655973800035833758983319986474393518690998066235377173907884754127829243391477763473411928952286563776528764063637820504212559027079409931524111553064610890831407344578379145427804126031311517398527654800444864797420435393996007410305391180699138743175433201884983557796616556228284305623091621365021739866569643133886520040214742919368932782465965287590194885912031211694763178448770097402465494977060852892923218826085189399847285442791836244279565836650711636079220686350766821247134054565845948381397135363348569575714251777750457940395818425822928542327604971447457391673419912752821627892101779544193503562681116753551701377788333816323481747530652509595761623861231587843417226363556751803791556193081383907498767292332078405410160638821823662685719762269021615209142151102871877699965298272827759708474132620700330537659260797671015420422851517687247809732249955010890009176683951655541882412610464737795794530636465234166320937247765032405982010552316985432547504138031346726381080730194601530515116142069407018538190909993696454226031954712367737458156367722617057904329270033500728790500208417789514775977635000289257962074729029741779513217650855019189424929283678659982491090404324778710030328080277801028713022272541528943845339902178437566228719873321189690239656789617020810049321815716530450013353706881429756768548189802729166809465695312199981824135679502509024052555054082384671191611187918752858130078910583597786507188842360303052025263139802299417139245797211328748293576370793067107706117035821310597256904917922450562772686785025211532172948098119713703304559198092663552155738526254303689117130678492666957520844182476198513593478943537362024152464561493296556827855210606423306932506679281365961535071948370936605554882824412265610123775951412824899545300346030140285065123132390494436199796101388036152394530723313624585447069000156564075929010297539528146439273183311535636461895705780374233763971995683341130556806715023271095465954606914150954886766521420740328638036167662604627190100176629470018670820804020958193139708000874547543597001710275884525122227057923602155510013438936883286663063951947600743405083627682171869555389106251392328074167697816514423536961047140829946078033711800742783019202716232045744461148466648058271595871849424001621808377768926466671168749875306086831147048388008841487908313322260344700334778516728196544707287615609030793526473739357209323539482181329046021705283525779177245484600608152831602228306065373781016366191931421802333441724533930676845002451408573807774659234908568799099731745070749645141169309338422292124837142074790308041841969187213798446154070760951502728429906698031004785203241837317192057823089802627336458429326607710470579462704822427740740024835825213257700287450827614024785380038416420971039239961466420594374352042987768042384089449849359019475514443891336770952177989541710768920516265644186844027215891032505645048614685626136318130251458394278526079628290622545264928207350920231260876213000851615734984704077375144583268219864929132288684097867913102516974249553827006444752431082898631066535236624584119684493001441377278394763281963146195163478118019046958101048428074002859618306716237043706602125889916329132221059160596181060395779354298774770826115746331653226497640769323264356641889726143288357120441448697540435709213827955921947401551794683638051647878217488831546569128266673839957574899115983675329429396246617795580402519570022497327024425046101440154990987992069183822507287813769813990837905234023199921428404963090626511521797795579907202470687544801901546389542450916371610748407574297540237977558598149653403450611899059756415325620587458605365372141386490953319753927995548859893336266823488542105187629800024382932469342743001148734265721994334390959021305683156385315809752654171819717484374564352416117441396950683348494056333532102351767801985443247386410254173166417856648931179362039010899555826104418334255056457091209688219351527568271527748229236883949640780071869102857284616646634076049126310094975097987946257002729172519539908985065869517019874925962573187892948749850161544383779474239754899476013221732592282501492456087124466795017962398188136975673397780354914383778328381424413809084729858508587339270127565231031550088129920388826880770029915230152897012620972449440707616775722518972607565782115042430001653695004533050553078696021913334582030752274684579495206981501407821545060429307055895044501649516142154220759250430404384777711616670366529704783088258511471181551430300180818237489110777674064497190807081798930658889630894968945433380763310175385993905302305923795452603811921960171545635819899520519516686270543303627216807914898370765264614880609782127998161430748414205803618163012321693646440788330478704338617635096558062601015218588266663361526380074985588496771313458952695782740964463356585085615713266712743409857079690118007190898431989011024456784858609558617965742239847622626406761983665389263319109133955513434840513375828169793470761492514370143566938797294093356028002337507751987848979964534363508985784423504040615374246265299303877487191843246788824215538537201744665419055798372503691964718199901668777007570324330097419335619206707448620153757770723882092824216428397486603551175877522826204165758999473497423269212110703799873020478487109708815409449174111516430379086723647805205218649173661380614398812659006004680724314315011017609596707251281614981727542661235913383147371552156385870842418194184791832208702336902307418949341502921592420433326440047011193922190459873112070765368486722652322906663252811609255477494165763768375534601010706665102557880700127549884640416290058043147332435550795405279430417097920337068866047693911409652166643990771281539227372356952972630105710224721716224513241076965355775725031778814766255459281396814635677018135044435608559954779093655864815132274874899175943353333410109230429678367524774925131508848562295428075810059016914488878891427321589855984932008607313905010205266811329132278173604091552474575321982868779684797177369560102097327177737305092236825745192843582913605642834749724850485882823195490174592642402403497464231713074797999274348350552778572789803911695142553483882386021129383053939102542258216808239920193633164754452665528951290995180759754828694902811443468636043670779277182390993168137847374752921744447072348379207304865796407394200633129587035415847404155214540011793636634737695087688689348488388052851726364156435340613489869325687191762959430726773542329641013256194318192432116078446364847540949290567502458567866925200387919498059037817987019731667951719241898393992961520775832662611896113657724293114308715510189902192388342414698570213402341743919362286043270853599251312691707528473277544865584257182440639215875043938474009282224409708119570027876093938902430734248265872401630064041801586917798314292839510810616417698567367291570236424299229198475979009090623490831028145232853628486421720801884434129329015084560110423391603617367946555366913998833804341155842957496165986904689182616628729671531189822020067791163861633663382249840394255036278490478143564479461299314861550970649434315001571851946173287359709258868424981830323771580831365008570723121352262273880730266441090831624212555098291875211143106581768648411306961243698464384889079710683890452321180358782269496833644145066185939195818161889883626929222910004451405854940677905476423492101384786430850544257922854899879110064681828690762840563472943300670051255043868542094855721491569373304458193834083755532401109279423916312232298967837235092256549432127311281944456248694754323696148174325092656548984879625191852037768624350864335014357451750358598881348925994168320788623473101013822825273106851242397342142437689040328160476015168842713177007106720665609758030049813169892941777797960663685261423993985991121669180359207323098655952125830288531810326591699235524838558304144435641741883287375884489490994994981389215879064644714267639227099046251943748332590096392585359060321158238699715452084704134288510096490100908959191959352608936792881499681100423727041843761757304185261757020858319786974759281621937471129446161053310956018329925864746742598954052412286451215765337363627823829040097971016350391889948615695220989190872516212168333991802029956600491112957241690185109924857204151409842328666827269602076387208915475594684728918754261895473123881348107389376687832978101872850471395393952285955985584866639592432759315978176878071136005270246944196822980691964738561590105477480089244064988753955012847520427719316975639754756129563380791686798222721938877946358447326297111097764715874012603620262954869458503590146497107433118031366168774285482355121190824819255844854423195620813528677120363503033737603023259533078730842791856134274893546047997144945550421289338347020295765112573157467122144050880952562496955641999497666711989482087043696295277993340371926696614916970389947450339007962872008119919239887859956640130408060274715578184536129745057674795965123071015500670753425257162396000746275517492335051483637841176349124558505140304884939795714532383558008541726986553139386853797733131308805382852192127296149792906955261100624085306022851871447122605679684926445035733170709681593291408302628845908143406699532293983630942595374486487459205615593772893761892530154260774768930246040269869232351414795954096341059543242920529399521022948254328654182074050675356568504546931663186482545665126041189391969790648701992138863837199484701776522102365614921788305708824545526068346922658579499246080470248570298097791148993831626548306810133812386647442172044200042282213909017120545927728721276693194894772262306736605523982638329256319087861294572993827359866062830482625144009139199427994288964022241191866773754482655147670807029788115207948797912269491769816074072166984626307702362165669968484744304455814069556323516790257602817814006492046712378164850101070040712014010510695806602649562850677647642048662200557838406253960405208934326746013782855850860090490778725130807018389068681220275317811206543457527322100583304570179997889396882879425591066625912818792310505887040695722145370643138780121104450803829708870960171227231623728497620325389280699843207127189409285926842240151798554232131126973075435376511040214965072066182933542285366409195198230157914918551624429136827308181509959053977849721944068062261129794199100798580853750056044225896913603768591319214146273708980838097720409609486496127141237013965159420909191707230105195751417838740480867379395773175350099194591836114475882309664056760064363544771699521470030263717879660576751103172598615399869251501152511536045119880184074751478466060576363131933175124373858798370514110294196006342205407411515827213160511353848774570384100872557188583850365481045786032837196633813513135162435027396689766959358035831414955572289341363186227148169747933441645656829199067092657259133244815176141319306275432614670596849158662363832386554605805663629819147214542332461209011141287409708836657163271488770086482422186324040180270542166948556854195655697000117457464072243872996960795544955634794122922616945276111375499858411884513078875577286141311236986824472584767979167211674679330538784778724142861740174499906327049236964328736169461875662059233959952795567661361290384630519504332148419747136184059802699548792228437675144835013487742567385569901058072832324311969213650219595271418723733369821406296326593362443384431772365379758752495944862611861950628823779489205857559300689307732925412449345051251561308201418076556221187005557195798447403203119158049464963150348282371104082771829614158678881430833961140313398222175835057056373027271761942545324370478025512993698238292165661805390288768500909335754997824730160809872254825742007179554908791313525312867913738433678134969126891232258631242311171038670393341432018190722857625618297102672550247842579840695739209358722763304926363438720470359450106254027212106879984700941176026366349834189881152306635663477833490295012905907443779634104720191079615183614030560528952181978976411846990198316181429379631246079330739866039759477038059119968408189220834522887563039046358954304213866608481279980094236420862426982190022150704551097034543895227716909422484901317460269939894073483086468723532187095108255081661083660682965583957453536595921764384423211676895524316933799266419502552961153875025196842949411385420511974633773312103890169768259597105084489187213020179820348201249936596098032716368228954475758359893409881895014865921207765150565741354168280369347096800895556531971089989024829885385284504638560086977590101787446636022304869401506578375375163463642322015715057247896490278735984547890494037425500132136828333741524083921047908876633429568814498358202057647367337325155027803080926015045543119751836796909039613774535164567676505437588410421128666947872747279447821482426455124914098699144758791308743929131661357246201528193255451540509389141921107013193168487075240044310152534763026329519785319926424398177596608461610251652558170211888649688037262870461830858780057360549190997847834606478064088303327404358160234618945647727019753897930767520570794077786605657588395629047576385583589743533071616114836813108718909838059057952117739718495936905117697479508997588109488447228932499502838640216788232530839288495420165219999462146302868597506588450377707081923151019580158591433572487295094740874931867693779656963008176318072042006718230904815042874078080015405490898121375722743376982013108032157248619220842128115862170930909789130898047020160158551361860374334359852227081121756767120740095328751327730905326804947465303570634503907431983022929138631473679064073396386283282313829968414952421631279322236241557231102486245982034149580865960490884877636373965661917573783979500658925910012958234524833691267762262038542702794982206116264887877247041714755959056266909558675327697356817860864443474714151128224668358829102991461713178505042323590886499761841606213954090409115431728286506743934656421213806702770446365463322572646125136050580019991957860831337756545173909992121398109165827773386307488896462805886128303121822901203658592139476715443919746964607394856598511627160028359868095009627274852502005704825411307249752895476749451343115962410115534788128247285794018576301181170634781639148554091383224505981900485564202188760628427668125917229793631539709874770393663999571851978424661075145373044326629418265015780420509598335399303490322799037784083094471946402015411241821541760854206106996190415776082884673242505829246358748650221699224167775653892675089988962730111769483720347033180258543033604831493805441566658278946478490055155960683214262968547312654513977250891039166533101345905306438569356450686918683746764459686137095865773829529881410435833596130745243706325642088788253351727547063557256317233822701936674717202134870281963658522545321504531543641865799164993207439355123684923948180080328656894079283267352925278320874511121722134961343029581623969952593134872207825092924824903351582873714592241375673022844651840272238601055561037414494488728456105361528254825596928930734356051293486674227251494671390915189536627427511838108897977202286312342269250123896710290483616656302196804506781365595518117708302457997811132440833967659187826590705209946086971471360388696522074138039221351398839448042712760145205922805919390699092012249710203678966443706524243386129783707085482710300663937548488510895898679678469317618995101035618714088021291915630640325040236650261421609336972402253810493560395757144927017362757444932497535190623969489897954594937143200757223498392592696366895094114446743228944643004043067793114457400638887273352841919593402419017692278798861200772712300225842951629134170924979557891088530278271740082205128535536019839443452128090601241070276106913041969048660490523693991461631710944966519970496239036289856691452658036166930733390533537347717384592510953130831109507995173800360595573389048830319563276377966982426110628178957717807160887185661401568630766817846959102182998625214068836175497364239750985148420459969212179167287759941490419025872469991227532408753854081225948184350542370975836420028810969904085298209900646663126889993751503671520187936822845470256360973140109051565055489935146968782208160899949766397333794818412998058471894182332449510751795582167159261385144374542589546960771894557036825024738797331194736363287154772686361009745747548492572619462191826645944607972084318828917629519390044956374503060400150602172340206039956208541613640825648746787199629946014054472927945476307967985240425862479470219141993995230635965183369203463281836446112301264249481548045071284663120234543270190906956157523985263072979126796699149877494458011116851608867402355253225457519366557312282474144142941215767434209963136061952660236173586461808058411871902819235375295651989669813522603420329545991826048758798090447686262503590062013212752648947042211179476587893945921567761983067434024789592857904975719760729998768958605638575530107565773399529120233214992565768567419628467227743211540999730457546591429733015099209345526485179406038208799073743071560301482337740732462413217524564582950943087926534597765441956320271807159414977034400493509204369226119719961093858211909186217309652484432756753665535440000646160657392171054371226391672812528995820955222220704292066127395573183832423257633305522687384132587826245598485830991821308426269015088427737611808933215748837423522285623186183380977696627918002251242425468204882229620192685179618051940868347680059644457852846171344633934229808176051392666159785157415757874129683785398542561958687622592670509572075677687152539615675324667603530314996545753324094814169782682905913095116836429604986898943617920856399801159781311679361145387664757994095702318243987112316149193956817128964389085682224685296558899020320979058432042402539575677688953656372954942473526561654226384682702958878313393486325062059923442275351406061546661198909560328873450943073476886964595929221739780529145811292933031755093551177793404056463566322066378196891023052717346871740531477503722813313919690195197340810397679505307206805284365867648951804197147798311770233313306996323236897076513830174859222325654723220681362700529012329447875657338258384613623560158980919472986988609580772635246036658559778805755490674116465251863015840871065829493123574733866698012030537070274947837939647153814964265579761564174289450062502725672048336883478816355763584790919627596624563667790123529628491611144041479880440309633166407664361519563623537722112729279003798470459158730426680614945458698273089211761321242174612481305577813269854508829392535143575819957740037056419885893154063121701798265144473149944770082002533436578787996858681782402063125542071371755817395578389489950905229494545121100705620454663043370910868360476560217255460408802694077182270462313580823242986674757982375458628701455535117179969545669762097723839205895419657093317783401718926313797800031803106057710539567614785259602237251871923529699671590530931856321658684580171420149642078979175468718595625502901569694242525020642554603792894019090596388730969530146884610077188914646042961657864494171832387902508365353259816939006603738734342679929752257872251593793438726583551451014350050336708026995329804371931039513626836408616721670960454792536426890307037946930659076100604611207127324389491626112788419393571861594163079411014725338729299356096405057923011256221605322596897362938307387913944301863590425749736654204778233473101800558167808629248127743287212014878358549842770060004309490574357547155792372820126889338855158023503135113109249565239668644696885362293973611233994147725226881556443888918334345171995945075362705060378119102766261811508173683611046828319304769676480783505350259729845463731163644114706598836806191524575170497259557145353533828104160604242322737914969920633410731538815622639126005669995324970677206085602382961405786559765692251003135182979245789094381805103116426523768043588702357141667565044905226552401369468849768460765342068564041014911974662071623066233844805146082755172864173357113590945732964223088987502808832762429382286631957473933546806428684860426979519823825084664643400079300513493388047562479618673990719005190175753273379638000179998211616130587298339127311368795664527032704466827234365364021517390876562506432351771408726953991746289981799364134505322972384269302853921953983781874698057965950749666042656924156768242035628533113586729098877147313539459824896097827770469155129152216666433669573914692950317602098166018113791881971953086112557113330048697738534578923535848173509192120213909519153295781733666852997532540314027578022521840124801851191784070567461603868910881463992264215323705108923416562743016191551119165039453866818275666502973950957007268266761324251293147022854089856254700056418035982415205028071963575390933178255808891324108043685173035107778122191288296865907446126198707438237457243360182476150265614310502565097931771257174090163164130707307256798561374155800432642172418920517435847684785440307188118500012781816763419479177895466968076592368832142864862099777569970199511920439604577129274056318272311735939052234922639190303359633484957923583110036955403779025311771312762138167284860093869547487748645154433421253588114135898101721283133403903440021886738982617950592142245476036814939790098582681298401634117117486749184967196835721103999681963666945564143996091158464548281823265271375786452621921329055621970484134175600703734132978194840354502993993545581070805055952130615262987943741230809794259264467347742526069762471546008988789363705172840243322435207823391010556270725212346604477950948367406368964693702228792919731542358953137482636439597933603184608386431340634586302103152939718959657933925345611106195846872971465551012968273477527286692704527558312596880119073328617054273984315813776316488903261867447246041594333541020932580191468317286315818846385476358408346867193712290318456631156314110833978385421269557840160578181005394547052921713804438126002422356433115680442776804199104273472292040930516884022947409453710110468984080421178528199103503277459631080053421040948053000565281410414305998109564230689248882336812741543293255490695896868763065823735388373453241840286976650511343771097271534453729516112251584338296495391124692453688458194814988089965124010932273336720276135581715949666877532727917860227519104672633009181052902296277256343455647149311562628801401452596324580312481361183861296664114618532519653630081265432236834737197270894907803251227468595523866261025441095841640183840295695317745105955561376742267827456969200317531494539554891743130463502903481424085354470947610759952240818223211942986699868240496521564928917024599247355273129758937835786689775252031990125922061973310515317270156951987921604925513450337308580812982417676787842779371331215358850896473612980128837532579057205764701623744910029078641797794303295903925356261304721847921797072401115351092271363052833269209718184109598280450278979193514530139339505669470403103654951665549942719601862177598724328529581347411537383435194841849517139145842102343203610198922953793040117263261089203714867336598867645945441172105761614308312623469541405546697160926449946375913791403258552350077345724180732416627110038318617536318161910606667296554769860550058742893975878786270193987324356430526876308009674650006725838316897508579144315694773101032200889783418976590141078700431887063379665473991800774683060697306730640875725513206507173834385296152833450509867889654871130676698167509561765967489076745664279778643450582223537228118357869009650385338238093371879061905909620010532344384451682649635323764662344694805001969125328860988473746253504907503199579275274173316871284584538297115529932316939506809584161690118299937746832340307884175145217891493531969500165384166814053614125875261895424835972157210863065450012144752841136563455944313070683794699298504609917922771360040304740656943494720068727988400840943775237361835591229572827522366018688964017353125128859270938337065110148068758768757799959238382633140208966714852044029873278874421162083499602125221308918608017155077164755170497074452382650164950036319920713714459305220629388434621573711566299057153589727579292354347981627134642906459361530149863669381451280794564541314806851993069795960711917468208650304073370316416850627894898205438996328473585884415502752042303912535544365116137174969775067565577669940951602968488753338871319839430278481819643672124353591649468207983150218570597551168312867944925702172047293411608219781014447700203135702664981693376254674500265969143261241526532402992401673894209730969086586129742231097439988394527312968786411834247059663994736885831396424392500489578437504389877655935765572969863503986350254985925489538460713023587732171169293656998364156985436084071910255516625743069198895335977028434302448070182629714228683483623501836900813693819667789755693439436799400669964126664271208323873158734055623557246371314863502664913511121604161407811327433704619681592625123100205406038276177742091609910273235191517075847724824505133372987355910683856675610941283921591961793318711433404930385605590766636362416271009154761390198544898884741649198555804645319189481823229038061476987228320289951862137417383889072107952260976085539357635636735331835182110851245683998910506810701596066633540883577625492750330570985784791309967320951357678180202764913042344367180774448176920445376608715278419759881655928191177787907745287442497489973473941193514378910977728242310015525954562513922728517744587697616813527854587196619030968088168224316575827060688695715995351326475912173945432440734053847322629991846452518418945834097282043536162915829175808264260800526549125601682417489599963852946650770757853866022725758543864670496006534018027589685838159652249887930982424318460112431471937566953319930271581366995040880890146616888250246091950240054417765940680585459520412578977560849127412231368569366136349170952567116939542292242841995251840828716816014387027652494098285905800988058462874869478844827055504018640218286270072376187341244825103843288998021739923285782765391501911132003547773351085965483272112883099029797385620741935128162903330678322003856672005605721055799639093091816742741953121257846791798268837931555836776920872144190235177797078408008583468575764716191424109379728264631301190160442022701373934408169011141200504034179669232413723969523263208218034432529605574428430359870522460627050401589436298546753460694634876286267391049717351884502133350254568688429719880374547074009551855030437383336238659157942948130074877547747324917192554507418620089371857460328297879736236490143880720074715568924813752558310118142619762601376473487174521220515647435731200912149965617713001337410492900896472604540086713556600754778746758072877537352492090490795339040085582373718668493983705229068822205828051204289683570062700158111488131628990143316674893901706551882141626334701415431347150447452246609722564387589103281733694478876387025160311975410638162785831968496809804535066409712186141333354621880030001701387167477760926003630212962291844120415437646082115435118680075261080961254955656369354220744926539276134533119189080527691220246884878691081868995799417893017739207548479252880041920626726229596743525262839994136251988540900966652258065982660152143409686292563259313762710484512754022347754546345958751611321824955295966722150831616348618403087018489690224531630591572768355537193649683852930786270605822875016255761072243938928854227129064797499000998148959025333445738570330286574720043673592141294930854492484773375872193173611420670460944677934694290375739799808151014201646539023225275932593591701864292653920881483889657990832049443737379122622253562990102439944230880716881613769321434766376077930248541189021755549180121951892757410576034089938697713307607127176568415643183569270734740705581210103371432905750560600558766612986559467617513760188733766301157399264536389675326663651194826423250893322123764246688515498392075107343983336082395500760711600818501646836087767654211723190191226988408644374236535387574895628965553837871500427311544302702340812011181558515680596415230630042844621829808488539261580027455846254851774087491458449904691062522603754345019754130350094465365391408548633353585858604370194173966496290832935371069305408816135022897270168820521899547127364415918286097294534982369953482214959369223354256543556685036384101605518334616335072889738137045512618987212726232225062057601054249650122163827053078630848249890431192458419059441497331460792313578130545202483984812870908021088140448816011917475543419363479324925160600808401384559160951284104526869490869927714593029558701173591219964857092875347660240116441093566704273440617051650420097039801694168234609807624761438449570615316079636107611087326942737112545145511048255679013813859994090661681708456703208718141353278899262506172948658806013807334686251111699680584091210212467516591331520388893952196124878997256577288843126032556986635013188931839380106126299999199124859542951471961998644325347210298087963954706213855124490695391033990616018980673841565694557093565568595372887905173428970861448394482360002570833020950331942098381812706155220256316598528755755419051695009241386715503996669187498904260502490214289365624845632140125150559666214572562485683171463679355320992133916478461961291099703434379615992656478069960036371146248735359463239315660119459285952631940044526734188993096322594653781577597789066328446083524480212097739849700274646523145111863953058360059697530965690566518768250775526759156759484831093007368030460303319157484878174459815623453020944612284546546422744576459416838546035170295606261262148626792322100795456531650814679531637660668111367739688973609458589721947269262693404637811368601734607187438903957374296979342151029461881402284836295332171938649307379023770118023457438100497068112218974681055458561881771291182264597130623080889894276472930226734791741097199363628595182830302773284447775404450680574676432895689734338764295347477420650831094145239904599383182943651391307515739506990636620302776991880157292058753305614939350459872355796425561563594073216638679160520357407514194624718258714353900997742619126130772332222112539396899616799413896976848069811660599582438645095306396504710293901231133336346303038787048707540788787554175828552384166623106318419174442713915587552410504277988402411625157180333837285820961698278364968517348779694259905862245879790056406396070955359849181384955480589417936981391560528557020459721399437591743939244342231737642541302790410939354434655861587928917318392417118681007058565537219735587738748514442708342522372151972228015922194842990941784920618868208114233809968340437781607537535606473951580780779337715655808849995899786989835774004902570898960660683050013710992834309149272510634640344378526708005510222092319920968846738890494852857883364896984260562191486307673925774329866233629755886247713698204815887320195864623885231533764971764224438327719630271417070705468026976450794981849586526396118881375487159140943996683451654990822889791932876305607349884981123237276039965245932684975628954671731377127786781498755480369232896771344790160853991430813780080257193018329429770274178650252443940971438485221237444348227377942453835375824102589427054822486000682910610659132632382821264642790672927581081242627689518397965159003324883184521502883986169908544979280699735058832043999422836678565183343669373806216842313422743362376561883210747475143260090269869883229129519025853307484449110617660331452662794923138200572514242228863647226335597526047822948286195904301253632647987527254130077278042409197509103471997184004869425353363401635772640325333548872693425535582173060016430748550409982019582543056645781286584185437879627480098247531794546330840182299733916050653852684840326168304083184352563655756297761176036549578862636323620327915377852511897764675144754041007030682916909106251830325922650393049179203245687742602961328414724497533986705845504156057803752831949058671639104513670448603844120711029498086985139362549638596214448995970443407333711630971932437241630727473942274566687393177392925248237625068910532409042583982279133050850315374833664522757202033040874652475829903499326022947239873975051234829014366542507885433700427515474998760214356241029543357544316332636686743581980450829255061959002686514939287435165023051686809460340508330336605585529012883066828363966570693001939293876198709981783353789975324912609652872348940787723191253257952968124382889362568932636732338455523812887767952643970690515599737417572386984367259648347479869631878644620792549086876290929405785220473258057026230074988344786886909890851013018023761769762601347289468112808944980089764577485904855684630455493550086862297856102308361179985637792762817309311003982085040725400469351349245637737422397086340345895230247161305668545645575065688086225231768755884331311915539406002579956411666525321996419225662652340495358417761182610600891081372550856264132520437283284657352813143301353071443424419101465344703127653992891907806500096702451660994542256138485435526842221565609534813484752306503444609667302458676257144088710807053315742745743164345835178353465322301360141432011625304714248498085025538746517095470082582651445706144310325846291658329562734073570775855826970304085006050021147586362607205266143360989127498124715970229327105743087713184366237725467072714897411333410108110734426679328748458806828231270536853167315013743997211649530181414892683612043565971378259742959419962513925764258655624802298115910036544088136416992660748294227889888030035018008047538353855659450482872426669853676494079534196346109685277617976504121884791212262111061636853387539965210488559425862077621158126796614392848025542354352294371966948187649294389974264569730090331023193698189697550072869167064738840616479043671122689888748507159353286325602700341303699154926795359418418520971453527980507221534823456039530306781000090943663606871143261162294406057080983248835031719557712164028065378584447239526924571792563944811118744877075217035166309908178299356346780490845833876872468688298921386965236639538600805150167937149932837865578525270594177105892180217129583644433538526490854602903676952367789405442800377584381814086677537087595550546575073094686031249768593761525120053614050429710717835403201499385311929340333533205834428882691912550818450544024581444381718162118895218178930895340034121798291086574476386769596799884167812023969390307698419033255163357971123317129298560108336692119854862168297844448383468553384462016159030864793540208389002835137176111528749876597881365617109194047333971131368798473818862228714989463974323462270169182589778054624170695692974145624753903360181295417095875571331215496063643587817915876975571180079692091675971762893792207754481271572933843571861315711687888308673336900271398230020172912044328876415829573247986056780391678202353852118025215892551610751654218008459410746309472365251333010775990412442896082573208474661279631206181146901424823170127357514798036464008044652501809908916498454981620719557263427716110902334833780219638215177515975320617237974015742295279435751209750511652078442941570237375121515564989313407397058618920831396420817336045824251748744415352380067005646794176073400451890027533994141912559427242931667230499504080189311649614552738758107857299048102594355697155554203118256610824221142213619861908718906074052574327803050652427064387287890311092023180711558585308769669369063601927488174655511743445737030282581534092491277202642090157931044780000929837708215448453592761417200607843096341670301722848676410376700276022518976248974492726604153741429329951913900733804427555636062137338529792888154313895455352491219797480239523241283036405466261122402892661634986445996526442620634552194600544533192850059882829114313872264135303510743112734582061913856929545838016178987195021590074878818284829537194360543353148240249227794561997446772239078958882042585353822276134336928954448989384676020917503016457635084833559651195540058784229732734067648774561024776365043817719798870385957253626636462543352071314427174156425328949823840845946806814407806846152161677720531006983907200671018080746916725865687564547536768774141224672559257163081984207019992711957034379395132091995021688565700265156648606225445204541763593352002288748996349539099286623483739545930684627513693741441754496802329800390750276749764190760459598713966489269677169916568648251793420997292728653605552592723240135927879912503007044588065628500480923742166290253393873411356345251788035393157589627008972049105171014175715374533023335824641314058869865783967648648267846500299950318331105924168854340610813504684997853944218614958195056308246468314865537194467885427451662160499850007883758817302293119373517829629432094362465081909912407037303302323875828531293839235871401902696422777811480702618704399441490743681720481055516129121851824760526534704027259310457613320559391303422975268963156315345412946730189048162832763696741157503900887921048414969440394642437388097254149963869011533934948695656804315056740393014478974728547627963963955393895977765181125054807454694362004389888582766417436128364722745585117535734582531025377289905121087256844463534723958149879509034279618666534038156544612855300934780001648717950919627650117510736397105015589847498824243881018359084061179744554190315211780569591701381858055465641651219003183586822406877430889440283306525036421194442529929094689666989587362049260769828480024577123247695531143739753892998345163678777107630781846322391420263517537809210732613985274976681116831372044638574094113944286355546300464806846168105711009195760277120458301164398715105564174711040184012371716736671445978442744578870391584546836707013782569867755994435783979858577513423460490317474709001842490317068529446807949500104419725386844979449345508794621350837424047654756342063886421808727884407566064551791076809854644730607481018653435191059715839835524855758976969544962338782955608020026946410276574437190046829911481529803241534634740325013267526806627351958300368354842328780072031776283676346811469884497233966136352846571347332858767552450806052880871527671881505671737174113146406429425718853362293820516039160242852241423160513242606898767802585322953019655639740069077145555492203288696697603943520673453104322219061548021289798394473002039305275597741028772633029297197949833564032583253891694530377297465756587638478577416869713109602561873108275146807212690864030000468519242171481907102425771341297849069753120524813517205496213073405899143564890753022111825012608488569935790255268119739732240527457265608342536057174671443093056016293663717816247760223445857662761403643043311148532159521097899740149174347374754466623774531138125139958828034277959639987755682564178953149156084501405365329778318871523203881864391986268736671979103325873833334707218316341258332303075648497239798252601739755938020976483531850557724963929434097049126550240714273969721366479604223493682154836615411278665035300130155626075094456137805675076739888070866258136422151846543270420356632218560632255875129533330497839946498089258487438773872004049406370834368144623445622897323174592930385897846877670933569396599345731539739634679103572768254193962774613138739050928877651885130614660343991453681711718730638766430891433236074564509332461861808948979292534444289199586398658232278588788695499452041604815481989328517343996908540871856697086312080308817251429552061322997448338721778462435456300750570890855169785622883928051625198440824623895345559143339653553356633569977263816499934022890690346563186914901073889020146783632641166411172550954842523188517267398164934473334098145094795432614675430952720257294851335080665616936335996575413839346784312629059039479367556003687263111525839552679181502723652022018374018218544745349126218306070856824474287467539520958382318278443739862271209730732379266647740865652702800040217393100549511906435760228792007381725442791183970306048555877729263549992981369857875520252050210951664451973972151744632517186702687382663451278602834055332707328488353710189310198690352842535119810025786749428450321357700074995767624401591856038776171398625883013682414781493538605369662576348962830984065078568348264604829594087609749131657572188662308251005663052692035798262103857989381124581211306384389120570812210053802333676470140351319255052264017291593995167721692766843838647979958573734948264191736910964677485836243410364705188519224598983567077382001358567247394455234061418880160602175998233339647804412032530543708893598639742797058562060421846125475210933558220426810953579469904440596110549068255500990754421983192783136032436522955505240008539906433600547467237900535355316433038091026460113595714571792880594555145915637226519603975092698477261679516249298830362154107646207237547414610262385262497291422143844641590118829441626878141855418070140626476172150119361090210263181690578338937082046932507687671551973980145078487192431314043499531360749853166929318033981426977242666908416345889945015935238281050870044942174048246146887864205727900153266421093687935218462728744349628777342743800242105191069351821252641279325534533659499613284895408161230717152246352974461719839091907961115358815872548661259096262973358889791698412376370315957055650879925240603539486343748975927577914028251790785424354305159132932644346821879109204204580717870708068980569392387181945181230006139112236278996100413838906641694703830829251563490270884376319909219701742362978382130326167761278218747836571416076641542968963112477389338246055695113376798880511697761081237320466697879171707436109829779413976658423290377149124834517285985517778550444946823539972143510639476884053409650576914663304135734451062485339749089003968538574776816391673546254232458715701751530884390583841615138838661027666099465923990929782566821987677432246979376928979948291258417906002202836597404565829413044524628790636298496863198029748563653867555716668100023680495436201842029277622083319272192330571970183159961204874997633338298848732197003763348109311525655857458578952877325507565410777732784097998892855265381632251737421253455994980898288024123898751166158818657635511644496973510441099320906788951693522217576936011256395771523170369432585740848065102362361795522994977239007178762849602634664228242517411407187167001542358350620871153158374760711921451645996715987034751596142650711960746628001315392939083674687681544111406345804102275280237237139188396255544822243008257148145514275889540178204228785892708354070703700707252885284037113830981331682992553705457235623159239899339959015494849706579692157344990230136202092881443176017551818097086449484400753384611941423682425927611751336374628078125063203093905691554701937997764231108284117086938034235921348275617642143887033222467468146682482877850756733226629437021209169430875708682720501721230821994963517489276238857292622641215831492971776459157547514148510931299710609796049742458729608857021130606218502266060582520021901064144041603901987924692005841861219765089733744536301572590592539833361034784845529946713190094289708116535136674457182790982768340315077637489072600005218087357717604066290044585968323324300432830196259484833244949462552507487803278960628021085525250166372824087247957142801164275581827728668416274915199511777802460111267857780935203117268077444557145239775269552770792162559447705930939778738518016592350636025894112144827836842715815320920999347917853944561294059680414745112821044019267753095397414182865128456818538073072503769924345815070723508457680210027369909500522325481383102457478812122963294794217325580997100451403955332844329968247620392708701658193134456254263881614817627426409710264402454931072605110948442420197197782114308917166372285872788491402915443923154567996272670671643965097964480455756213456183952971152966299449771576914767258386889952236214293858557647410483744217786939100226708855227809311162198030979832754680133813788323418768405569011382416803068056849778791171964697530488392204130240669417295136266779726418832351802811947374588009930911755174521209545203914131871792905347658858517885890393814149636912759986641851433010251183125503080328536311279819881386934713908603632670846440305107277758370107931752702660716106168507869089365311803722074229173678342478180419213695452013095307206971209560093066294412771654360449918510851551969658905040210888132079738865309662629073157698257737207869839028305962996335768236716515976802738722205934263449840614603927554616539578231715504524858709722835302179609585864115259514094379311585190870025333449556466932343833375576869002309318520327423858300626421724250968144241431281787473076761380231575622584059200537903605092999289122132225178125879621314250049086846262197857349635862515356321136155347749038997808300500831121170655200082736438655600792762969874587708177985990413684503659954318435451750006353092449671953741966467977807383986319193148205136293532060719619059178310137164422386014029483541122046379457621935111030171126334766968119647800869407889466484434862692169173157082544557785083273461649529610985988703090727032458405016695813771923388686510595493366910786723576559763817261516269723014127168842563167841904210990107530418649546728628248154686064827176165356542830738854044990360638413277739159706752710506603247835945979092414596040096506436236259860331264619029581095183842228123182415261704822501406017327887272960723245360356466111991257088445506056967076905902724093896871295224431214828978106155343693693822257610782888034580221968487042465500305782354729777130935522552759453137055454213674992699989960938795658517984992043809950822969147182046793789184898012877921579794945561386019139058366892381381105449542927095329759436688574643610700801926411943099164437005475569175413554504288167893378718747893320234522086199733395296778059852626657390856755138997706156098035634788655701968958048477153248828886167104110228519400011323523021704757276308107732619869478084925367986164070609175554237718083633668183533864336577583590590304042884070430461120282308043466373548316266095235285156456707001590727176931034619822326943575954733374857116486556226639754084498263229073131827350676151225072804661241583265586911233484846127406631301988537284002482339292845666042909197900581785384128744489923902587348632124242651064295893654864873785803036806357318705100962206370861158162104793866015045387523373660875944309803018895945336605258009537873360092684293095673724847617910142842451553729539971022484416039525605980028685250191177723598826682913906381011426003970613090931735115167257908781548993961273003982988910038501874319513568078839906874420084669334124512818322551357946034329575313310427753753557598402672519944945238329662961030435791689426715612888235928453889199986566556770660641103807487873947392326974383736738718665279268770688791002546803388621105782023003497593024186447012377511389281325452071785835975760811990818131252040357166774590569615859014088349763745619795252873534561148561832405595995047028932312715735849117613572113650804524934287483588143831519253119568992675654343972302808314443638801308618285463535944350009799598197325698746379623253613643518728321130734532770023998551917997116059724193812724429359763150823126092881566159319558160799721091120885200622883672586558971054267585749815553612734359820714439660886875831785370462631367038262126774029049699648351186461682229687437135066514575392973305171206700578528646588752125380610059892525744970900015909823988168791677003596367812504080818269397218826102702913337948943669983094547745150353473091138851668858738955598862402574637875871303477024258968930423396332395966098511578834947301382989582433051050886369413651722365096151138709279101984972564702791382869068454448975158354728015399131882583240962320856169860185227437436091522921671810437922943022904307646150260746918514664637666575442239434601447037115783442375732339613766045044850849440006159822221798374066394177845169859507245855494173234770403013818645578290397552247768612169608628918147808000381908928690207816074422695519362142046243302235799754185553755244273598199442274492505400906883998138470472088321798735900414750980439619137106282304460602934924131082764486121127587911019353873339215967907316395812544140894482731132316942270375440998769058769656278492137965759507952664787103181604719666995674143077957476945038916934059443897676808015191654141131255479230408826235529370382884616958820953320657847974001296920694686798966336493501653655671045501917934743926962042393380501753647256973411272879091294365735767015797568659101885236487045604586753694208788493714575249198130394330831351956362904841877157429944346353989824264832835648526050620954349203680200432003812650115055824681151034574596278544923008764378497555497106761443486705269286005846188129440794350205731063720876093912614559530338578846556200779682361674863024089925943701934561864681731164997456784904355189726009984451219898562914587077009329939015632763969224899197322784813548430943419959627009788230267956427552290812251388981846013904957910915847428626307665501749258604576102140440364472352911638181730301322633731561055096522190849777459137223032159859862757415073985027031163302729707851534122855367031940355101424213806327193215202284088268824452844794725875018712911802259320087576293277819332358163171169038365954877966096883027646457197272976544110399946500130346211645488995320722566859949343399461441850285263476052100611970409649442197040772610280621976556142521597552894579736373439480848235896676489029672376997689839137512723090858475909655664353514061902578096170759783876764421761616227018194978566635440917088143101823118159029151244490100643008465728017876267969461550631570060093776737377284671503354759349939888594378052507905852048773763364539409032652192544295064680883401721174662422870381358932926825792723851272142650774919605159147676373796038024627440531923843213799539680458120348960196932369277437354285337270795177508886066045021890083728995632891506458659326602048856533892637090980927524289042765434743358942472077474914341923685835327002605313560681643873841471139948337902970860939471441947291549990483196615432101640985497966883946051129543513136561850432291209120443938741266827104441579180053664643550652344389019120381256345204454810719463756898337600358024044056757182393857766082036895157784010526886799256957882009879460533265731463660654883964585511887096169133300090087388858119374789605802512864622432391854221236335941340186997623040764198457800061695536063410004584531336847473868249304034034027879303979508391860155349630611249031304071949213139574367759263251775344684068812893562028638498817838218287785169720415702612985434085594439667874790515783105313285671521089325043850115927770450789387241004454515590146289331200624599813578612271828828407484034932840578968905783088881080019261977184359680573726128224431505304195780037578180954910808318352741033014627878846074156886912142534845691453791311400849849010613496452025895507046161099841655104901969772577122803124508194418090997601900046497041153348166393433041903329845876345514754641006915226562226264471411929739239009811151094191492261571730202911638956536088416032236948864620810775480494457623771090668894157327705058408732236509951626122083635459054094138956123176134757845586877619740972986534084144632821220245366046812890687287563222634876486215831590552254928371208222684186026976971350805258825001151743992088603205865667636920897381915394987994678008583883788521592764550548482610975807648566478250110403743647903547886124437199524693138814384597065468472913656808900677146502678321810252500867315630017905554911676267894998648145804784763673997006423914972891577233170149330522740542218181285186358802516719298478915851408773619059360629680542388837691740960191824151587499820691920440640369414910035566146922861322873808791455193573424233098870272193054764692500049135161631211064308769281899358444777433976069476261382431358289213129467026261933825331643436640549691630677174497450966306611567423341354970085451024996342694726111142069670553225468671977707098570181536148547744487178910750102665711189040290416381047238062196260146727493975116861552555838393046376182772520366982453867688676493632379601094454638655864164702031868887270910173649361506863699737996010661110544924073549167071761638460920198255881267012674797948446814099562416234223707004507633313841669330516711592655230197172763457363201114580250481227518068592578811154493700993658360987896696126457249837409520232931432298065065605520374859539985112568400481513840781134005587159809669088644345695458564415765051628568698913170395914176907797142478992874923835463579702500337730617807200287202279433307944430993689714467420766553486969923719227789832944795067545954479847416408333274320116992356210443113494682457781845979508503157835246085567415686564153607194534889066969976857578752636173278538716244602571488040216698705351829981658260807992548442882372938787051482773959607734983070147913166098359002248579184996556096600856051197858551183296310451618896132790374675521484274434375107362006037801319578743877827011844594186953551408534593498090857515744829895642561007097568141350849061735518412829311204946935211993039733778282835843372799706062473980078467251621167890946184515904101817456197797219604132220786040488428185037695007628735363558243580957016539513042283340457331208680547697361290258479059241834298449507395606767352435177944504363519034304080092589674448998128232185709415644144259484146781910386333925791491864593639272124356801241682585434339268055787038733491495475680125643720655085327900052659374107667785126427828226746114829989475832548382891703298063220759928730598511423050129520718913478474715811138151274145340725201497808856294124666533278922421827168886851598483161549436920734919499817972997074764947939691798132232930068754864137237485659325282458816938184370663952618858188058752028416875457698755575979741576067726281003499002769935817072045984954110736444400112099018323914066784044052447862909122796572197022422689050072309801432780348324347381644267120252384476477409217619448206883966212330177068304091408438477300303001394567322119486522668007541594411314482976902151127147902299216865674508422150783143464929028861702763345113315313029376512604202802173059690684277717900490825392555747200031946950818235053868484150223300497914821994374565972468255843357314532104130308552323838633383614535432366171679593558482138484381723789799100956519346135184783018776402827963054131150794912147961469323326451395694026369152318416693105652105263588989907225221551464592590261131036260024997151269514086936124729472485719064455996603770317251107141666718553047332560257664038745700712064318991074182528924245761669699700519755757495143272961356220465494790500284365400317743783369217306375354203176838768300057393025453783865529791807277660979932953777811306193045256588527225842026123068759474671333654563630512300315465472978277933554946015578301008058597835344486430971200476947291631284950297200770942101116839134655309959938734861330694096944051195882883898207399315055275029666362667689876623136112160789271769539948704187522441165233548431626417653782769732837864515096751839675643185680560925065387824163620667473366433116318151586281252445104017435149460539767974116538304788650599551276012429643030218084177079801021806101654360315393448182596993208081202760984534174457737260774773431266652657895136015196825412892079211734295215142008474330004524062720159302527503785333687253218811388826586628859973264655975804030953897698819659348137072627431298281016658973110295935004222679604912334762988151267622189415861876848545359797654809065298340776396952874015918069296296664092332076211545266640225720372427630987405906556218910399641936195841479646361830368173607239283766051612710310768771847542835731106273077518237934171798252653920180974294539918606994629455373917175127734535118914498691803172668118638031288105693728200771757251728409777617223895081444336611170755193693879551505676641823262030568744452623166702859454348407623216748625734234746339682450762473941576868280872399262736603222894141461188346596151173122054163699691855740431519502582722640037495516454164023817407451024977042612553921456562671385231294113412051720613650273437915908159272355365690886683704499293597049305066105636829587305280944942149359725775041762479214303888977432996411022044789151779472214196895832571219068492457320508840728998435856713798234799918055109748574352882687275253507660204811666979606803261265228860389574840654725738887445312678797934528915993099190083794995200513791632670890905414133613970426003544600291835741199460537793318344433664607257597633531886994696957812048852397231918266663100007436887388373861511768376875993061641271903511091565090567878899309926841141559335068955760932325122067595568497961618135560390178444556982939477378289621329523254927636706617223057753195019576722831374740731346555177149144196547830485875353918215249912298359133374876648630677681940650804552851679423937069021040838799437258411191651543312727259454284785004681355324240955104479106272589601151820218810977635011780899811895721747077619337005239002394380404070602664539879213184022568732206628076741470572235506130403156640845932704719871271463300008007189777094255282046753111035082274233034677029814823986288768802102708858877027578590144350233322822245229027996017963432896871412665955572709725814178859361106742271864073160622671640085405727131834016610150313168753226952685046002922302215607914741083457471844555189302389664354530979003660967710265221666151173598586463536583354930252286970600327981512813151737336770017785374308365323716730424779611322235666611105494616550966327460929440676557773644796392536190638563834404141075763140158076618243241538735457553206459960321767981132747568904444684074253122327055814099604967468661131919042185687335501341195274445170583777068188882502316169654626336926969249220000558271544648181784532357719212939349983315283978392445631715810401736335108730448488735703865687546367375677119376037521396928270545987521050888840666840254424600446498914691697952141580138119272552630721136948129092315517156227994783574574406922327555327833272722737994403518370822848170820923450506124113325084889125509987529389741366591003727755767854422934198008576552730537337515979028892224116738679859882900067193041062785957939827629985468656702995804390868781830662611541257637867087838999611681905482115495086162742586703524929824014060035023458100917230634720605294949882454650375686630307130765586484086813973539111328542721025684304098727734069082294474948372148002630335404366548419328504544134164893170776580964335748095037211058929884299010669285256207056940869314034928645565129794163790018185898518909642535983876005447460859325900591353825671357900975789547443204589928694514030055284570077601865390878071063896121720094981121566916737945667914070679244104567116100800861488477517158919362210131722717040920469000592741692571158486907417844568910151008707444779611669489958170107445460412591776554899848888600467354524280140636768708248167663729381716351588624974324094013763489354743570426202539769271537207124736710189449615484728629900578731146212036344764116527887205956967897987811270468149565960212323327979509737160661242269657973498526696271869562877821245722676887103837458027174114186989688874082931062834703916651577665861444166942468929360182791403496888704706251643768144355090991211932496723427991127706936113267994105014773844221962773870488118012756440948366550666583079025060251310157464673207572799989178952301746264620542764539513809885514080819638744498123908895096823869939105193929248054994902854408903164090289255089583177501268306114731577535480239810709891266732792503235879599052572016793833517746143365523481990224807225393212269268183336443085384786926412413032196079857828570434986772319798507473353903998560200055388972113494471703277847501309896350225766531166410018636127989960744248899308446470090122171005735659166430106840885196883549343577163714083389144886922771546996752162273406691580339742823352112448777982729146423953067781008333395124889958342896993786927881568628216468470733374005887543911263391926360498689584996728254614050982837977674639534340744085971545244751070582890127453535235185537148759253881240032738355427176975660783593545345674471430929826223460821003246424919308636070044728328992116595472633560416242065934944357760612938396054288247708924213166627352159404997807827014758051102809633137170721742430637581257691733302262550098269186186142097128495818269280793521224878126251261781349934725470740517646694344500546388270473189511039537073765775187413913843064806800778083796904497047386135988567896617276372584332908926466270715677972222159969332536175077688705387272223780273852530545584655876226236215560971356148039025157057985280579817570676282997317602050388506013431169746012293600342005412312244820196813665880315903322765546739223357642527566009371199632831464060829085004508339473232965755754958198805662004988135927767964679206784578771971172048051280783933419712706193471527574561776173197799351362719052272559481816834419332412646318337555977212552728043506690861265878953567332580843233302658630316515705507279000606565308148670313907029123027931481576103648900198098060659878688373463065818428496325691749123977362105899846580690491522419065395946763572098983579936699482533032909697364472900523792923133873233945371164089634168201210839653312057565733187006549907776357729542617044481385718267311974145386672587132953276135241374245551345172947275748118623750500247867014562712867524835423921691387576439259193039465492435314217860564376550710475742041532649737311274316110543308180484373259554931457652090514906968990400409636944271011450261287719991241887429368727496357132954278293050161727559951188761418402651614082213844972431853016108896404351375399297407195755272336994583441706816315393612883472733918632913699669654044810818812151793911237502362749036904146153691594860757926452681116511972541815145501519629530776818866666448530073036064595630937098726421923948946664740917515441710690404459842117516631796965107329995112953622275665384820952141813752564482362408399853738758706071562161889237359833905572557915439479113082916871449864655665917901291768320113123030104260584069643174688175378818042323048240387787395745686327073104291848761296777223767289122897029102753433271100610315577786120481509672871180843960673007876473465886431848757256784192216377279970786201234403290283776937443302614680150257623288461016049160405527859157075692900158088385780118171658022132472873004869864083892951724156950675424081909809967850775668779291580391477989133857254448311143177713360048846433887228735806756106130680172575907120525309621772166639237231986723149239117697249126313481282127542818996192608512742932277404794764967216850592114076177211877241377594837695379799923515400069060005328681745515073135270167953315965686709554373265147686717907165714092548977594135493817588120064897727510445636035134051666970200387350103781091962590014049503093112519029309671346493078551184541061743465421848541768109796148662592895188294997030205036888880057099648686346102933474164182774009463230057989926433156907832901141447848323359940967298711386125435271428388882693905706466568732864738645348663822957150245435427932801625688065880741090093013007542869577896685525551386612916109051747215862976839562969723015373227884563428393826098704980967477861653374108648673809271297483826215237757132035664072951508196547586877122296447620631491121972204762608347608681095037326011383601780860206089121691171632460471101639413357884484027592968565996678505095352037981526309751966411051604171737237857879246012316504397671822176352836317768239639423614755745402050295133102768377677933709968714331327399357040269339313387557204141012006883479178661956833384367911993271108810289987618461749671015030798401456163517390695507820159413467535301061550741268389957541942082518436783554018167002372056837503398818103566746187616653673357822032565811887512332557466516520316286780302862200826261814294200903152742091246511584427588009680152313228555882802037907621738302811332217574254053922437177366480770228827206773840734281489598746619602398630607828389150270650553291012102061738595177865160475169993074996724958138175039937034671917239431136349423883158646338270627745794331449092454243859374908391267181268167908504586272140441379176034189761936015678214762211887506344720670167056803743799575602591129529428132261478581884930275901523514521500668621688948323497519593002247959589372027777207714936189516942306705521038452515263219196135712104564692179641156771398673223578541708449273071357958677858196967694502910030941441760645856169937843358348008428585745897005427296470596612798750329536991988780124446125941218553887073620149417600871843347310680734420329905410028872178810157683898631003704293403808901692922420149412923316423953354807582857756889029333719635987796351591699873223092567680220352155770650933895480558661982354401760529804611715572277884283091863431907401558444193678746243867843960504688406367263222571314983041844148675358483752198106797633519337765484434387248662944759606274169206172970011153291352536403556838649137422167404066501445832170005581740341419506032622129605389825033885761049996784085518154146843847080573614726075378114461223407266218926695959780553419592629359989136631174106973554421658682994061062052140679297375259787060921687082509003776421971990008466756937557389216593386363095008520450836298228603490281205942416971532699701544312001613568537048335933807781267623574432379717881479761056704712421666534151508494917205149684458300215709501075204015466549737984042590265452018565525038779191499896413740821072141180957538137917995386568882709691431253453305873319348420582719312979014785815699455626828003102477653555931671104836169334746666388178606102352447577197708273689485817153081209439081095264756652771420695461505091339125904939920566007035148563656923003915755705339935982234220636815298981172822205997931043869420834658122062279942718314786139567199639963695433016519773906354815550759442478977949128813992812141940106929886660270922994074585779124857669493555509604328585308083930869439347462491907712875262323462141288729324652881791133742650383991144143229972486526418893933960420284279114988155340407277178438191185547517926468318006316451804963844868600568129626957624472888813641815120906397587472660111326973975933366652822891369079545855533116908135530833556293019369327526826916968537613774442209327839614375549273934416879743731163066511634923445129930231369685384133957001920288937427063506683093265672985748117428277078555886104461089853703761636310804755496831714020308886815300428009045866824701018783352328094117743516048662265700461456896353893522428757063934502920644623429656856375076635063080782470063636818477425300552047113190394399412874382337368734361267223607906704084571724005377919244642838397078962076190498273222733193244336198220137459859943247982716483369550142993251988252253691596723041278075195984710595310523386729026692254342536971190900267307660113611567024989425293350173505649271174975226675719041106662770694907372774016556395891135735059628662047179599327190455865917135506601719924992903956745360887640393912515719308172352511738139786954024598321676693721611554573529326191927622510200018544208805046358818324601416540976679608379855007078718550076123121489514666490960667314890566423016504903850373962728639813839638667816328168113105664298516736909140423127506267827842103933247213004255473464448034124893806816338360277420093383888427477139783158502670395929926307858639605726579566707269287812084548898393743753740163508088189048304947417754126845236341781807131339573094003514826402690819502417890785910094786311847183349514199642100710043567980219334907736899589861967856501127225027500781124490937912038783758129580982783293292485381257196628076215659631474745500032218785115428538814081099463767896754257283589290148234665166299763554317047892536250890924588919212124487231118624305541487741814809508299672670463570469337233571895054205807581901298505167432378528701871854621475275911211150715045103264353273640300168223709231804327955984606405789123584532414042520825461134100953039016414267813760310109848856476566957229733663995980309645112216805786378453989036336265510310724868336645259440372261982851967057910759132855738458144894908176924790471693744062950730654000114076125054219191923879834873176454708405838744246217072389390165358871972319892303075791943182492751699101654769138543580731978830181170561381369889861715191947774071005969019984634254279559271395133469617101192831773714635395486248258206664095458724321896438292695581017572441015811883821887394877059642368330242203634061304170756884206992645488189597066064150568602585209680471390885819991900479478545129876378579657769937997224097841757952775333628202563466437442328869363965267719152676974212284790548459420210129657238334537172353575908512945055807722470835238074034644818605991581507614954086021972923897852394662128208000867095440374735581065006273381453366518861631192191588681100756611186672743914923609034819221594620557720470925508076515818071066237018491574525050673956036575865313571404106954461315657737987848340618842569928192354505836803058779153104572909209897029112913885809220740896815199590881183198985956301814679935358870589753876800831057598179446484831083444908404561088334679149173741346817732709454762920393905694124727975243881854915129802977246396719244180231209399326022612553867282474644125949123134549633951154309892510284218027571267324710677862368321920478292261776282280106090310032481012118150475343746489693395495845248628734644124509145697695466658198659675224780143320864352029667767318945360011850923493572448992248113358049812292686263751854275915720742298352339627417187545253427435897487879675716884219626911927663933709417572297550023265160948460292195460291751497606264013470778949404224371742000664394840710413045674005061790923445038127688553304018404164338426008585098580073430937063600652432011859250215120689896348453362427366383632669425359103776430159042564492309300247067928933378160377378078737726209584623306809926756416201600315885289476280939416777071468490434081826849839744701266407641272665782320393965805952932775946294799420210450897961626714527953182260895422412655394477689389612304472386543079257545312235313027604838704484477922246428542046590919282213439525356112849186182221134423524547260394221277348634345110790868836733035015118654079410340706947044809463955863847192583000641546642317741325587787074654418124275956604228360318960169891483369263672958838883612720186433133170464950449502663457205837001162494905922015650512347009846639517439354968696503246172661847964950555857031097772822572489730100008199683119289438754906482062295348074287667272941998920771927413401003268397687163417876341446262499356288934049019589678292175423527338740487916703065988574745517378237210374697963730352920177966020382725065949050611339673647137850143119895324999366401388350928087179235257360010767683178304353674830334004975578898758430090092715267778874813226738131473713887237007571003648683513366880339693078037735600627756589713707355408560001403170532794825326343844842236994739274591005366094339800940339770369218095652076022149360083489746335265808269183327672159590253194927780854966067669260662456194809030459951843340429439906678231158271508509280829847895599120677059168314362128357567654765404317166805550778289437924730685180979055988724443751340339451046732137972895502734579684277223755639455502411617792507017599321427497362624465509280834946165347116904863068617774219710234444932525068183128106811321554997365138874881482105102385312282690660681295022536316011962015836399707396817847240587446176273622985629689802330129104269219434578717013496634522146511635356235235125517359968229270647971795682785686328082449915303026419662746615158914724368516527372009533517635131469185195874669078193830958194158514441799597908192489028418884020510814038553466840607043443800281061705130220785099394622077260545067216373110653281451513758316288402327310901135503771338443853265717879251479525584547914383845492675473091941645160132310968128010559952999423454191526467102771415359065934683130102564447691834626697722616646954521003419160568760523905545689151177604411236941340330736505646417554933542722814922146722339604543216265527896174954726146115595485866057782288835544025954343465745463787903040339143597052978442496348023002768980282108609711173581886299505150696162753750717041966571731119904933685738011823462316867083715108333087919746093797666810716410071329330883352995691746574411276099261208954583017693506400621916366783306189258451578855768071237774125675916662671500815701734764387731002390506490436156241875671858109161815148914503889941603496007444243073836876360195708713574856787749703620621547326707792356604840803199627198894338143933720388358332878286129888448368663750914022871176987640457136558800428759994811856799983465219244898493118479391840916124862734968602863554117814317282317371499428025118677484678886507335865605693201740247190894044331548719760597855769369491144837981758032681352961229764887341637739411260375173208116499285283239041352738616090353372098275742080484748402925533452619030524336663249479165460764889590561828397242302636113908619299447730252517187078616222495105688044294133471375375472241206879042085385204347173917765145189257960768886832362571287548464032266815975564413070447700370300361862354297968243980550177238831052647348994997977760520640120617480139508361249652496691789139681113576995610619353357679018201712060421160452773100484162106262057765980671025267858228016013147320660632136442388061466644670550250231748742020221129261833669888722681799382361896207851950344599640792655908270662328602680910779434739700091386948774181802252524123404620052028620456584656407544115249320269786886899025379517017403887198607374671799559632884490937720018615848468599020900304134356274151967537665370260590039655434522427330905310233651394774780980001667563409495035758995430415454332071275579415964684187177535613023685819443490505973073241235735779637993801643469859231864315208913455654865401529817196755443332249611045864742859438662866167265547738411007194557936878002158307419678296689404468904963990540114237449777276226628168638159984093126344495245703265178685978079465702307788346484429776241282587912186264583666187035492626761542982151459948080334369223522287589210258821466214184933964628548739606423280266319317190451042349529939666517180786836155731955575640782325204738669869381687733036091289244526557622853356579436501950063542172974093768848254430022277266533201789735304922864848954853491516838621842092879528308390320608126847638943478851621335712051741310228268966092931110034553959753214586237696007583346095393163163733247388793720012207485078639570871791437776353551638521711838286337650941485700624706410727283391831018777562264725734851577880062245577627320477991906816209186880046939999590184612718484269336573525559825674190511386468161095759384693742200115092070517773986050496491317451156598992730644844589165662116015306475491934576091412852202523838667324612157732898384872017515356671267393014617186692809935533371693672733077941584167264121336642807161171177221335829653334846458567103741355632685063785216118146450950441075882697892552000604186829914339872747999590019124597754629067680146477232712009229089997251630681896517107373220015860941354553849360713650483132404257937634877756771237790496112922802829616515781793389347422767309034567221115757122715685528180333898247626310454119632647527073598314057383836466745806397460924113587696569374214641038026996827148704894410205206656631551519256311962639988350187326572918512878831438722598148022994641825435279296659398860318139597061254269459422999232255477621816507116696185902713597135466123090229064677505453292049884084433155363509703636645822884501869546364007796477980430554717301975248810263095609052104768197489879597939696227724034310668008730947746748664440083311617455025257374097130766270578293453919513692908942517717241398989722527563780219686513105315329697666384567284961836187426935617727638594799673674811888969132869591667970599055742806978080971159398079538641047615037333288992286156056236730252227690071186203272553516149277327080987713116431015017854684452951184267889499612411451272100150265774700720015031414349395885443302552783602135598127742265267038456991446720618464795885966810856631115326316658164868036395189140880549855321547207334263974523965816920365841547644797071360451193108018401073934311428816408864121685072585336778923205825813659090025433025695676596032834836002122117955081077889660889407266920880222383676953751972873022440255959735583236028686851916510931918281947270840610150057734905873374728292350231754002487253835804038607523014382879175236173637593246230062036884959638047522023663488393604158194638072939275801979353971961780942614882420017981665038143703554474497968794647678903141076474607217245756207316630558317865351521119133752989324941117516175300582414867425381363944037773957306182205620181341106822478512744133385017046404735999732020073588071995112948288662019564285796640672527196484883897626991132161199038895577368857147632992268177409477675082812844471531367301992444473102864169417161321784084286659422385346182139595980090098558031046266285398790421614048203776627682436942214547870397647339187082437726810759405705452507639109982491235928793164963673591111838201217080256841295688864279163389778716166616848667378626838420351328176541698170081805326815981904452220826353006352052676746775355092659119951694953093615511341891213129169616762451702822450938028868349083774372717913109153142511234308431666591198618026911349326427387958855668081482045530852635928787850612095939263256218151753263883701903742611031094036246110698613507364254378205479627944257714691094845671474052436884510400181752866075116398124573357018942421305191897905767412487745949291322403735043911402301116974945713408118444765517642299026142735368061610148948741408410302902903818313549933949168121674187071832529736210309538331144248193821959405396513782656277369567740491734641608697080684628825959662672278922672150416882691107955720624211737123148844167102253435454508913528936515099416472140347984563687794797330230898529162756067255645834912964389538238361428433299864036357673673934009087671334998546966333001256029189378379202126840474341088062272166364968618866797537727754621675340054474260181528387541933349144987589088989068219536549909695183286197130561201475514355933273686449905191975848713298763845628851612805403377234809681002921699443939827336274461008530538496854847064939734026785044293494263474667931264995929409271525728118085607842853929457884589628191246678991503550634907353053783633796324537934678885571584373676938116889166595453294057141674587589953457193404213986087575802730237880010255781915794182054584898552324714239556418347295796887733447231178890034827991847471743327879556226753563444651752031596456194901610753243272900535017636204284637146035997919294607594613701528468681883387249077414128990135464938192875546343968790579262395514560258868757816992399918094024929663055251677299129172244815829262900100136205753741458701484487698814663984895252904060187511023518975352931923429123988603823580527652397188643559293204560366283803367345194442890270211850954875626198709947824133258982819372103235785652195522885918896140848852353308562560199086389747918609425756934181904575584828192620903322612298566475441955456408494910663760623792664574242534427627396043299785196236129213886730460666502692870829690502371394378874794426779578372816197016325248473667888581920128442591204485947576504726025076643761772670174492499595783831464694943766563830715286996484052528101130528331175236373294718222611549108418848300683703299627823109195234042524394849078797331307306249014695992582501334902817072287267153351345359990391124959072835312655171595930741975182505735548125435929109165801571839437067317375708902805758369519948073543553996290730511473303859223635186173956134863788701925256351751812395659101386193756876484806794723749402499959933201092486552562353860491679385834444365217883028790053496755660164381322681140053619027095620786224872999472736479738353364855439020010389514990948236815217354794208323450992558788221544223725793388349116401982088443695630172192579144605610269753725681970435733834861651221978125725014040814294184319831581072700487147783225625328520245159355420581625531825987866434939070420348684981174866746796207538268270698623389407134814809581190210256294704656364011118117070077024433810652189210717664873114492521256998516588929888812298021450422979379502978648286321028664507532038864533521004986439324542041772971241886922012141482004403733700992274231216016333787487240227153408517824499643075359593083591313331921674850071278788205757995397005700133316266591360020671344557649665890573757005267299228202605379407623359104786289698004576774565494432596376515202299447659504332796201010335309638211670754459127165487223735577002847328096711657413517870528710972364134055699466155968545566385670265750351710819489055034763576104902974059476609937455752542650436591588931028164605141542041412844641503611063446253795189434163824824618112724309214861776795549960226042993717619405374548111355856929016346919594031970322686695334695904692640251653067212564467289875798972489316096049866085746019333855135514808522157735053783062499370036858497747352236030841014294181667043174282121248013478837727626348200938204383923736827022286544724763227290709662120422216312282745381462420508465625071434898207012004656651253671291597127026990022853707323072144174244525383188799880160191889751061925481865930718791010397266155063952891958655995825218611939283656086062599268778178232024749062738379578602326611327784061782053412545465796082912286167433207352182281799927107250423820859361352842670175028102800577561205986552433201632139276920550606596089316482068040577357385787356384930174984466723191007314157451383867938676817657421707011767711125400375938952463990334974313230069377354518975989142383433952061650922724797331358488513702171465744277362841365626916893271656542911965420740241699257664605946738071501943044514831723734122825973067388763619858341909219651890624353632716639284533848309816055022681022050221065833618072069190298813539318418055370896053597194343976981599877285065649047114776194970039021931590712676377571498364062905982141482840917886643383134152821073061729378548894739234846067987634913517524907601088698708576646777764036623471385071132580919936743427085098719118132750402275568520564082162525209314569745839462948866792872442730038302192144802324107978015551739752344209127739962768789820858969815432402780131601381526153489766044378233548720899038526901649872420021031685486237812335740880074417902400475695013325917075569740442125724750991233231874937508703684858656178827636156212060797117995714811361995065165629124304896045519404216518405454870167161395868289470195015143058631287184546367087577393134602905445272524512529755034962806962065746898866479246258438250971090206065881123497951226312614998245662358391807502686525028806782835197461724824441358670853436805101668115726376354390425776510807362467791377579012359029010502032986959175786047028991807131349840280101252800979569852061119968675632424177591984276657636609405312314119755359691827471646443277357329886347512253045544580656168917934560733431513657469876419744044039693441020951844919092198615860570581551835435562730767746364630110906723901657739665410680718835509986681359937455599246840164780568724552106148690368610059819294482311718487180480554530908016230107767650451990639168372088924172376059583321522587633340750740600433262102954423201217571073581808428554168645116571274233442493350769677824545863699618989413149241397725444562550339092558945963577056785488756244580557513379182307986572952886066429769153588177968939499399037293025866230657375767134304139932957648106817643891540383659565874864976466409134811840141986891742675206323411270470308827559631979228473900499258046362076174248800895293874439659270920293960566146059891025393175534120549181957048803222888952929811089150334845161932407708530403280553650064927654971503551198751591121989038624752579550429780820090387269391548464136702748474163708208926220923382040277285290568135721078021590488887978331108309029199887081897646146584418437237508779483000637624685221609783863015222973772660419554736454535223878735051115546552908120608110806172672471197575971577042991744641014570234732590818664845147701793650219299090788442902933570750143543798636067614943659139675068289362106653781941231943479051567187197970939128791489736257430595537449404674259934710787856335039495042200733995201530585883602729915011962026940565741419616252842935907226117332651625910036022774915083487202751395887348475214216945728318416827997864243011201086572099831235835231943370150474046435316293852150304312243690854196132904880494163098627919855620469897833837236543069429305639897912494761604689896630100696175344425761510093818654728133989996618545698427842907218461645094650369434048955668202184176964236997093069408059577308764950316571449667298355926721253870291032161454878915064302925748124306076206091204297515208747958121578758389287325478789075188974954449802451135225810670360653265579341446611896636264742131501122469342030031857717197712908266356229872576631678597925845738973975470908350419115320190305229169864703257344882804590921097992699833164522964763697531632990437721088930378148554289966132353902472986785000911157902156679992947333577927040756729855652215842511246988167754166006460228529509696789066120338848460411679037999314643694773480835795405449827744686092998299042673356587453300843924168649087408297746904576313137646618348300728661222721250563755676648775054878969463158018531071485601018866956925485486607359090504170082986973937981764352998625489704104366546722784591082702434137073489301046966076664108779120943501400589567019709086142132654421558639013339075586205685614184014344152064981111306132027640369154520292084851489477371069518477641633845023949062182428923700942986305886880206649036817885753869147915143402392359675314932143001458688980588808560639759827674751158192640098096391452340940030692611247620359281672832758696416337383733536436160142833219492069105642042779689461639464649244374972946740755176168145548639534235131136917235095826361894902619270406996021408786922297084198634883091687551904538525120249625498322265436097661334495140320994234057309404918063811071124633547524449697545256110784757961603653454484482330522064703626830344587095683295713353466176892412110542217954481598049931870425152581254473380354238781411394744370088237993412561138651485429971617445189073653038638433439724871626767861887885698187298099384627334855332207408490252851540034501028238018231298570086961877336596975853177141999904720126484315809448465612629723838853453788542046102353282467061384612276700662375677652398948889516304585098917551908300499801298100141706482352162989077398289335584668496690165112898069778029734363305468994101940129428872407083927127785637276444138112228271245741511577545636622872741204661974054884843247534453801172838562735955437945037129224064038219509568322706678925578588978332085659117432995388383877457496272224225272471500488024405725457278245088524032585578483502095630425941813813111419516721451577417132237215078438386957097788517425925157429896195523889035164163722499389225568972524735490024321055150831729069428230116924156375904410557618544465341362667855059974661789084793084035291334700782315941256690421292231309476100656325717961564063556771810882765417922507292444781192666415043328326456874106220086126680448271335513305183904299714305278333153399829133891821363534391409861814959995724192338167753975113596969773566192856274555173923340784512793928769105042072242279885230131848434273891781114665826259580954263577018349168320115272427038519628820851880297840134250346191708797341682984423948631913328107946858723598652823834427602015335201717600097202415541767091933101847214267854478384787935818638949741060375666955855468357955482774592738075684384558715557497379215543311038395286996455245135462662915521436416857934007578733203734538425844255287777919440424514104988312286973317626571732523702201590610172544231646956873319864120309912493764324960488870893418324092862308017057180597321327116043567167694183852978400345417728376909340779242746418191474714607154429269564807631875781100013237457155388513177020449521425161969682958260527506842643679202014664851276164382748695448382383194409512141042278979946872910454906741325812667327116064010201407000533095824448943481605275834392688805978742226236193120682779470647897415859140985871867703361004975108574641763195674303834493990026152567069444870816870403108918456545392844717540729172077907143639135839552701071634085638950921799195755024311266085956942148314845353064758109967294354336900490076033239215747901073887616929829768586298662291348814197316627937983695620360124720799531479623729507313732790067270331702935716339204059440930477344187971939016783153278884007841686617014065490370841786764255267223890469640044007827112070613352184742787163500194707940532354556642288361060379471580818043427892736789489801018450216372278350324412663403379579841366550997508691402020102541719182554817876937912792967886731141071287447205667203938081883510305315085919694352616554298973394729774727131987645687744995234754718025203419038977946775811324848348269718319428367098902964015108366261392061358788894758255235642640691733892756508475814690906666177414949505289351120064192934844638463763748227758393670029418253431096333520001968710698727633500626880171656295703668162821936683487755947972500589302611687874565555487082514893237547172977056466624261723828949989772170376383358802596334125651813639987656214583548226732885655333946473316403495322231345197398299633909048530715109671057533312466967446392707221687994291598235895205208969728690982335357030508021108112814526482627342383177753595277833060144829685580023894147010429507519804282779659820022790435758259154446946917186898252896491164804649235588405254416219815402535551437208772417338127794389758959990051808541966564770092606053364660637532498093096747182761512432066137853191970008580249799368941111593536454817611249104454772903753431847169638456059810476633626231802043864358321899151762938354997138177510444122825778122898592631180151838031632115886456541172112253563261740737011834186656150765143475055905929250980126840780106251152533393178221564260445724119672562744531092831865430729822362049181429759898578936170144405330128405072605035109412589910618212375281891146952599451971985509769281489312731619465891151406406267633679489136584624682488144006674857033826783186343064708233282488835990346395779645429114118095372959514793471961388759502637462015964011220346758291309099743726463828365408322551802681616195561581078263168867167194537984816981269599792053875069393235252727822355014426420874927756089361265743019405810135914129629802392947919318540124655082741344873219373697003381659162260979396550802680376753482178824969151161325614448471028918975729979256128899484751977803993954554477102280767399898846900097585733677742160509210062630008774189708338403214418088403488152887547535132614575039775186745053338568130543537227568157251996727531020425544054389244089436276199548681518697273532893427447215219498975425185530979179363739987253340346038039032541675660858112841612252225824252993139759295264571950357881728669234521534068280305946118751330794881364601393327362040106240441065891335010361952723058789444565074745169352238781262811605048168525168021602719461186458006260900677429433931403813863538113615717029513105857319382895460449940010607344849426347177833530295314282274341750149657757130097343905837388267181499578800967823022798283474974778515300411317900553343001967343691128893555641895472080240111383615421615257099741378209601992325610961951026491088425127513446071239251670278861467220036164983290138833108327419927453144023930453708153131298965975011031599371815233887518044221483275541134507363711131599138537759725729768084879816032971304740484394117856621370267712960453569101191388964222046519371615169558159679632802721516107683381641918818485072833995679991407663280954400993470399913421601477152874514472138272315148447355644928687657637438543008093401559688516398935187445419515849677902821683057038963510929431013362465862620336987375118627169750761603873254007737173044048552691782012908772118412583433641535793104686780744046903551233999994341569343339971230613792319744050999165803429384033363222484685999349127271276851823375759075821206150125541115904975906755489481934765812489003016648416905469568390866600292277411893118748088667096720189682867715928491460948454824746258229852214831910054299214198717271385982472816883562721661351104275911105249993916774187015704806166993433763393266927320067402513976944890226322642455051390810264063399687772037250507279850799425036041309373587534874014827389946772465917061335031030255887675984487994841029240850874493266263131051568557073062056911044709903200756530454594360477247782670772621343247883804164335110363169121303896954713766167586328941627914321640643952740002117888023409071797690387329514746040960291555691650850725640509899499537594036272561725384644874013442313834641350039710853743882730040845173486476387799063462208914679032294270833915131982337601450740984132741397005041547562098515086685846016153276013442104373279218300012343919666797558704249395881852865137293079662488485936218422558965499531419027325622617097870283762651697564648112587597209347847043445122313600932696980323021295093050801422205684429018480489356237349341739528420099479254711490168122217097873752504307223053451482136952195622781358051185444459933156615557761372867141652099403721870533279074468965860553265693030743971450058265706340603276263543089342831090756625137681091846936046090942395149944059449718641327751626352371984999282076490440843966769419254267015907832303792707035827355237385712820116431367880078499407095480888169229868478603659028630857013981938996892766634044734444744799931757142353658088739193996812539104207131557835035576069699986873246489246342118943884757886103658358083657108636158775870087406912200734321205974481926256087936931270126357426646820060590681464745464649771444477156520033493024851040141252641875768196041345061871449429289349087314080023143713615727701111415805139744082522378699907537531305412166516047943072371951311525139873082933130391394776629984596178167371798315028715200919677059986768879742784020064147314979114802414701650653624797615972138899621156640314875140561502996174568265549301556503625852864803752964968015473093736657749713946107713358106494016608136626521432398586536304988961525220191545772484583302159275773658191771100040087373918242013544966023756846169607255783969847067265087359143480167410900045711458236294826225089445101124507795622077592889746204978125144715472899022038115654471598990831071528071560230625099557935829435843063484422826785536365425421276544633007206832229382914351177462230663047087972643763899073996092152253581160562617897104838602723686424199484481088730596515687821185711282998464306348102828142019648531805790087294453513183310236747001557636631019391338022009730818824516048510133311599859305661694821612220369969282427382973570218216900099628995710009043286413502561679596445154677449096962554752664237142751831374993345527565758238335132522580744985147870111578562944514318495814172205756562674000960977188042863679107326497112471006267117448477961624629214381192050883879483214570196940529544296895309760374444797896542824522257161817946156516967199117019911647163680865225815270163164662313619170099112998210195906155557481754095365028175239413182879373245503108657133756287887368879087102964420634735105131576729356307522142160344123827999940557808193483520747674700150191169094803954507994688423462459108124868042605831050935800496629489051122971829039025154816969111574004101273399973260620899266000444854012658574444751874159107511755311052446839809461265622649598899899860083084540321281143880503931014123922351826731639063440903430295666488045561879757207917798354289878619670465506086806551671871877145129114144594194644530303383076235473148063918565959398307714521419285981751834710265997386555266004463634592365071518384581695929069738565497349919753795908105571795373892385125723410517607822549060546621406571376639705068599715720821256775267270967371839171676677812752508548799708146268554850413641766237428078582475167733482512847811152157429929069460990652546700801748082120248805698339963000070465396075321538428318965132065513254899513867610673414146084121881683889836580106174820396141462326779193976736867886200932213512090699311340566721617976381926543743272917182606735613443319542186673230047576279894548476348162669820306523195314039289813683494832557308853333889011268209173842202954325229748950297950768752748442297564427235469652230987238267158712368104221925197191480085247952794300817417362679338269335078568690209135238584657503791711725314832977764542590170599392739302107825514814202154568312210024868897370798891513869092372618105578231052429530936877709712424583585886036876389600318090905044750210704161833544560331583659245583970344304323346895555904365999763326733552001538370338111922172065515997638128674652353479066316651448270239994208538996959363298903211231670666550117246965674412251023676236477134290554906637238978683168231956687909782434660123197958015472675795811062517803960006104534683302080020978227579405014598496509132427461422698856210839304957107237003567952539507553919917530337619954686581232929424524540314683059617621871936866452843414076716492575625777627178177039545516995511257890629223717086408865451455008623364926183879312708760470823552399780465162961462337656116929184994339182087617844005342426045512198282378235028211407716480959318765934020493827883070896962479694764298740607362497464099029637940273934028474036248143225444806646735865528050843700093146645075789204280913056348594686396790112856172362781153353676707307999989416349181108605810829022076764387391774141639002209170291531386113846855981482664298584800536524604726035013811577933930967860856011476411901843985520927513096784619174066926370082202145368291749999529153358008473174047265456916250126380589830352625497831593312528132115312498496921887288033704129633698800687692443850927079790851332416811653056053417140625822861484047502915044051143907970881209325668247015180903018895894979202983430804286604755857207403334141723823940975394585159252308658654561719740804134062011048346465389057907034041867205921068582777482907712594940617506034368353170846393630424380598056964494120724772821307248407345387694297962889286115233613518279585277019929086213532832690559942489198676650111681645652592402700815819193594169972868542678381377950064419524861076687626251567030648425851282389751699253719756404598491440544505911813217490237066077812200526991214193585761427064902562079286730749293988107827530743120768821304702830113731350124996844914521817951392215642760144798210046993061861780926780469738404180051245356148383324065617506749275570294686540824825336605869875716453047327056652538131048728021221353219988378531641010854745647580785859038306767424677764596302022952695782689622346724173316379364346429831594022621998795626700140560312744679916523223948462164447094969539942147630876626184217602131415172005588453417161817958480795489401009635747712537165461634296717145854436686485390190442843590163395654158405208694301855981708945365192066081269407240666512190631340856608807654543105656276834139467393817686534887070971557852937004439154509790678858025121925426389587061749322658306436997472742798060872850609784893289125719792535389727504832291488337107032728293276028983626803770143406515210440446900026578946316791657375590352486976870956494178398037830707555989437826042517932569420183761353256901696565640814642088525038419925997025352801565809847487212418441827245677928204401477526883652020446790005704895232233307031824803547461447673008530855929120694268608467759279713785139710308367162294323232048331228461231315235882803965798723593170195799851982873302338479270154351378725694231921251048913012703352418290872381188526057898640731069002648136532600356547089385087070136465366194203121037555814506812153851476888321732594809910411815737935799680334970071175192413654036220009042457360625413128302322946130967123832140777534068741323892282246484961524696293061589323976782992511113000383454844009923389385710814441120630696197236319465487287371274975962332630957755534185486408580774023770572899011988515729301744067974707883763439186014214518109167706413377934518700616118619057144659752103746608740516165121395895506241971929552550260078360562646331377976966810627502880879871729742980341807635208396313466720521052235894407249446558603172199200579767249825169089080498154172783013218523303393177285277198909450406278707993161399619183204332529934735474145500082295032488942710369307359081091432250495615925077377483964571111027020495936518435165644851111812137159703474043300414043242525700752505794635040280396394175341202827876346887730796691618791351926294144132959271131270258203142992893683738354584937655778426699682398960494782604667016221932564987601429074109212315600265135489746823350236620883356671380785543996687303502258878984748262145578254372107850144440665525003113302888032289442138405845355403216840710899069664696395507422485133224750844151366527434202311124960571748397776338463049976602928706656554101818389348549810526472577919992362854927102895349202873551274442182231058544920489571501801627651134716044448741103379749470661569608795140944731373019206126974264280726427727109981861769494495645999336962241089862722338110807488200167902508155078399619660079174337634862471357897298289468186540350959710671763448889903151244405520040470485526281321710370211346135761063540043523811645632579404705802695159552234555609920991105476352153221138196458582524366627039477353889963933729342066443447681381559337891768427312226933624266884840630000200049411044842319660974909043983515144859601700508520573374692276861560644511290963351837158042800442080759301350334009570919020330498471100925648785764855481554978408518886313563107779972893630995045263094583311885735087383646037137365940745447197513622944063647363032643719857699711586465231544472069985148971102950141572126244273964782675201671666306266185497198330647119835520105666627267806119983236965312154676666460298682073345653688701456386525958834925172660775414805111712199350048809859995957655356550410912888729860515596513227623112946074609612255462915834030579965257631507206456880167475547754213509861810149736366576583842440289578115927320845258087786467336221943007039330047176268654750233919204953405183376741609946241713888320477791568798163960669107752863963030395226257644122069766161772056438751620313865450145098595643162414491411513217214293733457520723071463120332020935820670979022686778041586039125088947217579152186585930603027978660423678927592365057038535542886987298461645211179260751254743857566893637908450101598087262949758747980258943284917693420108686705393767954331092804233104849848555763114448610180898656566409533636899510942979592269156394857494242787537118198516730118909727983728596388748116317211351039630350113052973522839291481092027076683651258077898577189048813041030823395655949118438147314326561554374381481251428861500728748380930278729567247405087670876198413359126768657803387718357664266729855141871073677361766782555513976049172196868836090114910853684147157347086649582783201676511748295449532668710882763552040240112765884332988985725577303584285011591320965243931955026303612780032037995620776355913593797713938303539740169982768411579846858370566150420306682817118487381765300204647751237521059309863488279671206631664568975540636096143898689413452862721095027594300164558428324562069054104297721569724224634890405657439210878248247202953851053450067118903612912706048757969445965545377759638951321650287897782710296042576479587437277917381619147639346978637695961983365367471229640103792261612749211523476123985026225917528604010360944761922242635535583659294818408502590578274172228854445140171600370997310793328865235156486206201241935664327853837258549697917379468884434416454207072686194301317458534651415361391488656620136548633375301886339949434313232648208801560480627946112858681915307797004742019948642957037711831894049379719679523119900209816196725406672575459198194712345654827986760144174040743175249828995741026744873660661790447848557200717132259518555737948925203828294120002639299476614394980965293722365726147767839740448948640508160151362750057467959409444688003039565234058721902763763408007561719709555665078773358474006040516513819576017938668083038224652508980143226151181039831072741037739714052570635128514637060097356497089440993297818002459034281274618428939283075476484363206893844880303484377490271825994846091942703250083956362464309930066971721342985072214886677642832408058271585414893762317579606407968722559910318607631376660310317002755787845840988428904267235526376720926939745215726945693159441957315959338680666654379267085071988054594750260739430456158354375113825628547853451531665825013386911795459603102573902163028916417944547801999732610799625014163691991887157931322264613057956812332953890096307948501398922285373416110413539413563080283369806247226459465128998363438907580754857163599310622152883830789602412973009373191916976005014792664763922844527679370517469738918625162296669743320319242491051995729354402612424126573095576419212942681888975408906924837562719177453687732828498832528782531070841267034545432695199300141918353561915800783128815831241609676878608733262088164613129536762192414738217034654806428411369152904234383433812428256558626241053199198876603930026153346534131536958729433653092592072631854134236117554127119811424044497853650463590967126312579758520990873087521987155135505786765577545890538491117728814071593876428510518143806548543153657006033421674153985878649812679242090902291812224743032110959492189428024460943256172803409491316818816189641177660221242489426920549503698732934100839141524340687300895934218349624854788048921845627311264155109013483217618884715141805254601483021603348531817097971298870742973246948008486466195943872674937510498140562174331300664636795491955067682923839135982747181797485445364356264319834502456356670084650491558223670667718502940740187937161381693167053185588951681217692758560932778188859822536742868461142300031077856803213892016448222049376291836489058013785890216528862756197469577519212624270274928066850885310377196378677547692696988883823862667303508583282912748020662984438279134375592857020792640855563607299426034576850696325550091357945865791216758580981633460687747103067932127926558082805867204461438204466595386265557449934867541474014355014234210674139012138337903093148508647992411077003031023317128428347593185799378417061211833407515217709616842004231712820543814954715285551234695502737573738142748667984860617075315771692479970201909583521073857953500147109916021445005643767697143254918117417103217455504822041128180928349513498932234986177433966331993527673563106639209376165425030854388362406510705391298438172972996804459827887164664420506665316882977492283447734118356100474890934453601497972038451047500599641070125682426068385781047960692808772137644789099519206633004731178688414612947698126231045927024591518364155503973003633102143111133257799843596488439544325453741076377060068576657039995308048977090721108052389489338826460382196024867960622543836759054707859560862916985345706841636073620584474944933267905101468704280099219353027893911715050368724991200838735506761788638790547014292394796659688424530728747262072493229754604722728978223177890961473688245862709981891110245535400760391373552458343328478058271971364882881780805159355767317128263938423498517610231598177408189259971693212536640617891154410218982630044603001881339955495557458647732592111323285019401753925356597922385413685007479216081802856473113101793020884764011735084383433823591324931419256525784678252002970121011334351809879056182964199795516325178598815330733122302632749924642828806939247790061687618007404460724378500198753128031897790973169863479473318845902580557713755114447692288496208604850072770513935184438451418143802902204507236750585941828887751534364221359636290114688185040794240470192738800461648511906817771216546417235661073739199749886483648556378301252574047393001623420887753056830997220549371717964601664556756299555838205452741812056073609741987263930658790380756956955168242666783949695133153821399984193952627168708598277200043193388455041757134658419718205740374595403922144466024976428177097684352829895842052644538864782766695789677347621880808958430195648980038398116912479067812943597724654085494843874679960144666174010323676217723794441524125867222982283036517822170528274800365754925233922029627740476676441663636203228741490235678222496323914902327820828350226661837754315544192811384511978747799030265668913488952209597684803468737315256527296440079926480105133558578107091309889979146352410408042648906022180137392970587139301769118177623719030790688991940406294373807956936970154354787874339160860523858328498398848806502572155889282243680498677577315007898034081583303126666001085393343994484898036021331765185245310282625279968186939525466435800550165957594893278871841185777681588110802013880396477266947737615620029765254784269210278009064464753112267578316700579224366985234438553592936986760951585019972273972679709139890900607397194979858559997559443086326897782162463058932466451457579559011496520467335045126113751648762175565471649063795546593220844739128663985327444182242606708434798163347221492105158451213567366526026296295839550081996432639472290755135115123950910878032256744364177010789670945889793263600418360739665579956544725666279578488357774747316317890653453599271607743060704533692768765363507747256846458252058997947909608885014667550010269214845394676373085664835851154727775986598826400797367218164809649781644388091243481766027094913542497662718677738012729131505955985461153003004380995097672404516921591319513354238025968746003712625394886530831274361487010588845640979388846748414894037308887196446679253559616212560144356574988349729868541072064448906583034517927635686540201974796382075096603665143696511459074071328331176670382878020219686282059118226552139629319206173460389611057233481370629218391106044624451124838868125175236177952601426290826508107481933331435263293229713537646470332417541456368996471700533393636247980183832900425338660426026426930707435975312802235001569100706326175574164541800938416997800712919359577236409599199014416410215372550370493000741540971768286999476898918356174988530510493714667638665988048096770194906508929310311731129310209856512655996042726132058504412334987268121040071231504337030546620600565701738380415751731690462732057706794974704536758800607417262637793034021057834761741415742610251361712013710341218270376503465771092765654841190850904974769732728135133330793449646156193330867047296961076163983192501097424130868310234986400636747560559308267514867685393106797247415930866446944754290741307502772393970684431673985528863617214419329209442312685471970459020291325593122173501582926492203808025214046112237953660670884662568546484646607626818491594441980271680484653912397564964291586596449266064565357845457930921166996275556731684204423392944582403176460820088643869796885343940175456715856654609942157645067564052520387983594905932449817435909429910956749470876974107357194198865573408478364596481711981007097446383493450501619528752045968676368974757779447937270222499907322925032263956103015998983482153690450948092671234735639511624386075837724386999616764961023689007126993494996736892576868940091443986718023977867798636503657417528223202210947203904360675875555901174840351744695031413575406239700251397764437845407219809093973243489809433095169488475829965293752666840888521408887938025474574896643698137128118344650314577717332075310288617413965538302637337167394589613315385028771644875952538853729651863222292747632957367892953501876520432763260046463752492154203034359800596494305308397001950349387143808604091270475245686162371504843486175777194579885317446964487828459198471616804267023188445395058863138713718323738836197904031170935057078349220710249373035028716207474882652978956873840796248588835664494949841115459227345217077147077873728078707904557433861149432841568077290599689923253877040251083708910784075419885463663118474062397720477556494601515526065701014440876689982790592602750650730420739448469383997304466023913484636977501963188960274963160682880221807414771202252331984303385263507011620270714034904038148602286410975280314490349073172746374990274484921548071996048454951656459288636537896624052717943901208314440016536811811483140215435624801306974297423996876793863311410214671766772517344894033018899733190514187437362249882985836366331090637182517626905763707211079807602971459270057772065488127909211858604227097950660536647940132076934687840567320995073751381539648109650675936597725568628745936025057877496287376964195870253440529008826864245527546165959067806303342270567713899626876427981351796908932519830400935135809489041209731851245501725584768244235260938394260936474219588013097938472027779058986578951880853465904366857914641674222966147359661106648049578339825764025265344110407001113419476811358344627673207688050691730500225865504405787222396676242897428704579556053001868062383467323224322407441895521836749770019790647712526098984999345510212623866497637153292239925920442680028483129445892423468644528958089711842335798968175820913080039100784151637424846293498399393975011488192256488758095820851312926103483057544326363497391022342785151284952522125464483155403850767464109473679384096284464885190849467406969143321887781341120546730885518505015182268486808306084829036335369543376777527579570676874284531756881974628985545445894648136412555992636500365535847047095790725405623519102532594580349395594682099464139247097388021895622429319053591470504558530762392383048778803664275972783196927134837415341138293175709858132686936303111461042944152473210901903824325225462438572485325514521390607250932187761749314381481755937114156944632400954105958045951088719103438709523127130225744847306072471597193599320924803714560466699964875145817086061429356748907969454440612574284551847810123086566501988174641117173902520143934623088231177198422236265178205093376377599865036990970858198591781513076278900780073089347388147351287703613471868289985911516887444904710372574357598829315904684453678481866929641235195652510401852092112740677083150896995641779813741686048421250828465981054105948660366291652485038170345580604083741699833144405662631045565889842131115205437860648006744049131031132779351472851869695216831433507874199056516324964844816942697448992545129291283564149390140527094617783683226961661123458481742816806567384223261148853743511560253234096512304437551470535330798429766756471891751536555485399519369128785693973532643277337307347254105230273913172443720631818409519317676735714805943379451553484525868109087742478195462684238414608122918376822194629764185403471450822739397808856671403674738895358555345821770966318944241456157816098827114062393262423020795238852726767854494654045797814888439093841404445197798862694994341250993698905413311517947785038950798759698897064102000489923461290342020642489329300000841613838347568879558586250008636140797296251883263125032208946440929587626387123410355809040677864438614332802642850583092168929167317867806948211636699372609448902801708883138557857858792263292729332304013779422174315313588913761537358421192644443219695189036032850261881789328156249854460894421394734836409126757535144024325480524650196893960544395212354741719792475988054358069129639759276148746541073314535304720255162530991396511596239790381952904241841197080769737602479616501406888705265581964338010575252633381578238432665302412343449878107959563929936888583180742857937010535197095483800509627259481179750412011977679162064218496388054407750838602341611765883003207455036544809072017240462638812955954820291442662883507053482501002945805069164279350597421967848725995380402719016886838768266126576404745244676262031371908366288572371043289204242250475610688959906920887979967512238611934832382951357298239620584663135592576825619903037911433528833437013647435694806528848601458643132510864590257373102476455552621419556379666972218466023900995672390990165009119093291652346861177659071100462428178814939699454149514362864153951459782595196799988070698040295451149824033468841370954703177738211184518930844060670223452590264708653477241287381261212382799476760754259367002192215830870830896080082381624862245999967649512299061999528407775341423996258961446379557289083423312480761368046318309902772748657992757646675423851003631956594078441703440482863842315400697830176114546498412772278085164605154890671402891270649871319622655848429653582571355762624065225695767565199427861586062171731930858137366347246638366116795939254279061034242640769692433170818104873942298156969930577448906952615462857574575635718585915062684626876519460207574490577538389501185779448523097812579377709151881935181537527784112408620655640767634319241072814790126895922248848403804814147918404247157499030744062150933938238777369235880695275204259440671189911703460250052444382254065358831772719720686234490987115736393416720707663086163195733017805171922551280304860951022128028437965104698136895819878315200649690081371006587714566945438609747774146672764308290492393531893067645368532386155608088192022836625380079996418169250961883323143347757309946030439926819900437353117944848888271932987963366681751386184406623084550088382671771448762744020304081516765171884068029500215065840796742000894034825043961633638281346037551895666929249150288777876946657080169532504662603946048861861773367860544359623275271364535269023538250308558644634829645202323872516539621514388435854226311512247520821123938524688756997826610681885241106380266683494670613546110370097699667108943166653655900807164066453653979689995618691725841335116901869238997785867054190178723362071616506687948140606701949656342503235977975948179389255629656356985725293201987788829783900727678168700099460647643349469562713085989121482477487892419256831573000663633068506316014908499370386579063576042507117443006467967249766535918794787324254018556077276678304944863485695024249347587343587259303284347083449858623034076419194701453021671489586460446127014962408294680540761648379177563889185775997615040921909623665457004023544172898295855156943434818166862000279017305766806459777511126014648528751846698024465755924525045815027624928568669757755213267581472218146812015055294353895654173014991911301924434012849400302270202897058900943799814419014578394462079158588068629198536940167607036521161620003419473401404052196195479549114907250865249426405964578668615630900843289704414845940944940439657813344177118441733197757364871272698795989548136341522679272135985969677135341393724485646059760475218858433773120294985407774113530069157833519861945555428707502729885202998495389636325941037438225307357794217243932904146014980208142812294896875516099249939292188621875275658428697862827077304514894529234077150146058320915066197215638636140783650291831842534465067634572716424901782584431612948208824690301970676320134018962569010377363308279941590065729106058518922936249556810381724361948578398044066684200869692470881050394247974087786866543934457584971615699604210125666593655045498411956042393374083252885858443434312008218718512058334048100894821607806437947981299366124057530483182889017114617935363676751997812416846796812113756934389438552438539649113694451820044087880887386700688390552080506344371641836190983866123896893699008899549929335660918204807348778026251793509973346981733341121075266898192207891162001653443793550032723058165825581129411196590123392649303658116439416460554684811627436826618766067799417618592325976008012087272575603434576985386658246622984772813151750371349877770673847935857601466144519563255970762996513514351416128447941552593931871391439703777911623921627878460195094281979674535008094545290564547015262265404025963926527019872554943946119535275081266584166613410926812310175419400703708246815960163009935136210562023794408363962535893761809107892487389192765129775608747119741702238151481909593425422973325272839783525703463526925813660063820198363477339536840710575937350449402932992006339221259129445000001317999666559043579682083487137357451428830245328520772814211363594898788311755003132672748768623050475304252329614735055557228297219445703360094954338518914668854554820453180811759630162783881074180405799233226509279680195994664867702519318532298761268484431092553201264083106996561721152858383594985064658398003433620693014013032562477289853972758858852682264072715278099607521722960694266231144413998225585164759664208420080418701153739378772148819467119271352416266233086922177773216463921840797706194878229206250319919750820779365916306842664803134831632769135464957537992159057789820855121237286787950819238027742725840275802822489009290707824919636200392072938943675701842496971494931566800677416182686793232531523930867280481389820087000103193502380740484116694594464178903794720932655836560323214134000083429091649229195235724183724391179439589122586537931195239055534886769375115464228275526072324099588808649106991524719197667173999685877123979469711547810619888081006795161156266771986843904272873951929378401564309019229805612906240101312943112766012799634154389476372763478764164531043708193656031526684114194703008330403537359466771670986318587679636653193773075920138517663659929247804334339207562488485250651054499474521051161016106242192984191914862678359150772357051306235336809075629190848523924297332898047591461402565294688712215323857482512333256455875029095042356775839031428743025338503304605272395669867353212867690464131283862727797201595837022609519455421506489785780399279294976243133600991968929061230129796484322968243123968618376548765757606627935600682824959553409455896177192011465838457987231833119763030289430290295029699570943116434983841424996219552567104674123444668464452257789850305180215701751928832491994530068291448974163293393452337012762107628256745288750969395679554907783109213633514348334437648167194364158053880857683387823033429850173896219072620531273808231152593271377322500943352959363066318975778893561473497827191892957245567299946997950698400025754183190458988749534962310175899712299515065634128079340688056676189423782544609844573441470722001154312138824725851131295059817948044021207070718235344624106444619038112561138062519502790249576254550085335140635919401554100549793102032420415647915994676899121918848204544257930223236235734790437972177706179116802746635882459812965839488770826029032104696497508112217400525646914718794599815333983946040710350199354576127986801131074119439719263455255335525717159855907702722717691446175763064217739151621565214446686102044656978624550398848364704942295724186678201404085800913222371644223123971324558301595343597741168663511571400998202428612428009073215192750490380914245743820552228012519624618432545154548658698778923172007394351069251825905374011281378927575513250868613778498308942096285305579870532663900524152003158639806303119585726204453060082258552723674621364205517697444129742913178598373348771182394496880964747082557554931001081708791213752145096679715003100264838967771187936748421529098699409312774508262833799304062298877541680823652688107974151283673945160551635790906214899378914194088395549459697180835371459027954214629916993349899115520948213632231967712474781813143535421888573277061530288233827643762097733078272318222310501332551858302471231802892762189168428669002108093901793211480331796787057749620811476943653552162831950220665198136349814317797560509208453570023877543016787851406351031417968349055700523413726302296785156232621367802881012525693639476817088030892227292810418719872074428599142322693194212234690126656917182796163123240387164720588367892797049941492566794462504321999210357779654993095829421054635627676268500977578738111302657527947499470514790408118183466389286125400929995836055697695576188221091784285003941717894117224246549683054751462839883789856930458271306035482849655521789121457588480397500072164393140164227740810874599574967682165360276593756882402791920889456447866995746456694612158137430122848881695730198939645384073698690733355513497777786106570013668976284934979099313711215561691357188589378152449539965682031823947496122931664615332318531763331340336280732111013802722420924164305068706081484270271236856153556664523600531555718010699799612978653522175861255478877533082800941861971784110406441858341115901766002526048899998495301189292895069881478729759103763230182166640445421332288860949858568515446203615110998482657340401813917872894742910155448127846109451086603725986600445548952501692572448710832248713719482308785655926561708327796982103175345843629322903994566118338800877342412675208078991936758879112704583599141549291695659391435494308257395217667328593169474033959312772284520840611423470206210300752500385451168436605513920146379734673572651004179480650665253793397224494018918921824932694413350256783846136545810376563718540741219654343218314677635987979568300965690559637121703412344471432389014024479661101502528549023856024330638439010822539207354223723036203441435472505395379903616964964458566225661048714421609869952022329582845361733515424804904406150214169954791003770382570712228480264769244257788820130864197038729215213832195156210376238935006385300490105801850884767375461117065663543953437657522527861719738132137948929048107581158680535014846911830165930871785273862098122053947331068287248786821718682612558902086365901304426727729814059846033466683557173755615770625953765430936693757132704748231105622722088373394881000813292265535240731565528805041282590112197490039828895977634201260209922715676566594995151211764470000447019741269070216253649317550099099997691501035785136013885839880567043965224251166736415227351492820273059292631879793590515390209343507048588046564192067592887640299711312735504412066339586582307873691846044218950279921419502026596784163707294898055691983018703809772967275065188966916716461567436563458880763919944405641124208287472689691494514131619840252488834803260725605816508640520901393932357114787320099218085207471049799672246283694814819350517401357708777376076085167948927746053085489237796756720806142611212675195043838134955658745059023351863539503135284977768814951902751508770336458640020334576002876092002571691770644240449786930673533653097990817186267023302463146975047807886064366154406461979864904568448182604674881073158666560720080422024308647607764562237027266692156651002730008159559159320507367464194259402569506110973465936592207169940798090445684643740014266827004169552769305201336461242059072904310923532798250937829035121533569436133257794117528189422389778034938032235084527253173376394030541712337171684748075122469389145125723078972443466801998338314285278264606693134491993135682362296587714570929946411536808223602176129404100666148790563429547160620310638270498337359169467352283220048230439617036523238449155314153766745709737937192578687607605419331042675311894012042567809108700048532969331341553765435689517718043037811343027148359660665237134757784947197430978705520270990976857010379090915630728067074934415979190527701122589266439592214169326353482759832968048058028736051108743340549848511280042615080952574423026180454665813705474116397929008681110638114112227775524461403381765242434683814267962375204543492330244613807941790329904280131587046058733987372411755177520514058703394740426526663682767456677909398999869980593138511950731690188985946181198913011718407190197024425524845218216093914879591699442594456260177051712682404156676455903646101269764724762520557113829478221108388538506291207671800623921089445555618740555936369414661999599629646889774946306957620292747781473589139334110130878439877349628876161267115944096935507648725975176588201875653639208479105092956370222463961809480444788773706680384399741486450006364703054435223272924271481520799081112224674111850896566968788733998404782626993899549304986969692118021810163931049949527045015478771842774094343155630395913975345437881178164556609097631344844758320111789487130563610870832941378622323491354005939873593264080642966283731046445679431015024114396063290443289277078189220336668464500433945946715498674402400610528783178022881959350746788494226783185272146564625135158212464940790037805458277839712259420578628588399799635568282828042565037073838006018046647692047486330136471638808465362144959397533321923444726865674170906328709437605974581567264536367953792351438735380367663843672666670620405250809912755143338457970551016172655629880491869614999194984832148537217024927346369444974194687010819164863758089501213413779531653148901785652239582928182264521875165574988398758306995689619410755955163061850902997246347395132352941037102373796111822010896365573151836034323865232834253659661188526222515611202710552356578696823069136990676986121427407125482360504707453185963488899894970901071038561422023322398437988183933098137355011462554779201564704817790286211142261886697786177910688002488105915834750870938236200684068860856071236688386851902345732180855005002769235830986006358139416152661887863704105634418594530855681350486242952699919086111451630412554975740285029806338364859347747903280049724679565670403883926010644793885749899575372171753572782946101245298488819524682518277333347104850448438208246975869897779528219674835820989018609837565300999269805983921423588269540922565769575284036289355108848780215688103372888484621520378583644166728976827158282336006234948238239212555973108431857891560377033082851967041803504986170256068994223789350028155306910886504763677699411602687670488052603522816463528453308713794173347170792914210559913460777419601444347124999054791717537962177891845714991864603374513933024919217716800420125539947125738295867422069356301681678878994960878652267810880857660341790327310672183605464480872779281995912754845305145324313519091748260477785099506868639262541075243085250802106041927163220541508384201125289932075198716049519554194413331312852957600932176122485517726059513597092596318289208274319753205091398357130699478411059877879675350600617772277801113478979808857721971568201643582259332057635723863144747421786596981314796180130461759344463063539018505138111763540762401694485644970277663678633328003229872234226695829149678880924582698037970775197887187354940673185507769369388620403489421199611923961303638558137377865216136264430367390519626493529564829354929918074143760165777212539694168432982125959245731547278596078796821407389123975902096880243258280466841273963421993544256670720952733353651324865173244880533084156062100644243620675462200271073489238276333331270819579237023318325232676237307367593427385416575026086968748831393794327735377416990430057887030362059502353773028898064873610007209217282697302597707520217311530899361823903919889266433110814418012603971373194969100942241415773616351710494601129538427668787803913631402078281137184598456071323134199342464878970345015658319878583737088242616500659930137588023327199442921057505230310003122302689907374655361426494347414913799585459798568005365714713470733863355329285346625231040841368723527585371980273573598621873306978455336940286150450343428172372177763980230677633598028395591131711361961669676272416434365779355205940736615798320589255214756111930974806203020992598745198584528919627411506526647441307801581911751716576189868429802421537748294667409131280050549715602453797640102830122559066618209991481169123946039716714984822900221213879950896380204202743018241933924375698885829448112713115257858874157379598049549988284952460768761312781800707182514926063361671029611145753516790583215551396989918206255317543178704316616123787694562507286820228016641333072715771035126896870414125227154648339080150847257784908560146796829705278552634347721645127066378916806031526531616209420260486637954114375153554035212229611553315487579116502802686609689032461778955796065847978174092400079413239565029872269524099191822229619500045322831640592309462074583773068459128791272044978319718672512356940213071035004262069795107884016611608181214828799453419732252308119733799216921152941163097030640139014467056255364809804999094380649666439186986959433613399484870095819258252513068877578789947702968629327415670211320429867335598146091255008159419406342245725294040841238834691474433417860033958316712789026337562237354885941272072306058513961256026359625069661580651898432035842364369001553598552167597368793616006784440711384512342942806403445810638440568671979799381351453514729608481955698383708724102681970535745058497011333287149972768715397041986875089672897848186879541766528563346169758979704939913025163552686441842329432024530623673618425672179187295723443216692381078875066585439673624650116021311278000778224432454845895066034924123586655877626546437705945088152622819489516302594637350001945478609222261018489985168980061263897173701882667298866844083537080768307816386983499603436385215068536895052491975354557983763232755840861193388792681135783437081165921075774611178458956333277856287313102038792378870913660042484795230033232234828248797138594835861750943696950498900410983411050508572713137120735251114048183853153071808891331615681318220576120923237239671479074449100515616799155702490688298170514974474253363661860234113290368380072446140403794220252583525248793606445116829915802281122505720342135115105636908520509470472929420658021383607782862792352472707715338991335697265322187966781955878556053302635863670841434162287397560891619257570210613487706251330160637944337246380907635888011795888799752346741671767376050052976669678107982340457924053177196774427993193874988599520804633661549878285608927603634457894510837704030633525412177885605944768742887828000233962055134264742289541526083184577891118708401207933039557040298495059125241137013894549334641478653998499948408659474134387953089385809539691373623441280011870031052039732827302515994207617333553107589903390813783178764670614580381014175544155778848652156580221194814267071033076172775176800888817449099889335342470673731777303328290729248363513620724750961588131118615791273898278963968573731921171128474489560689561033560142704184666923312431256785763803834174001367660201759420134751319144843404855621937016059699892123350982554996804015257712758128667191257266424706835303052934738142712100438221806156650400212798998534374465019622380165738352452373404051756595656862884930556687078838943744498100764185124654532001654293043421693377208803834889223506626361511882894951408953921659935701654244209174028954137092436011630550350646275820442726372337948925289261844645044303098159918924597855402818072461325953171020508302481978460381263282562858688382008791963333502488401302944866091011670328734487829247284280970806970549195815662320232661640108416298148704887235120705914096807269173968552753978177184727439590897657030318152894396842961930865575203785489976434786554806782516587641755623784256689470963398815384687361586174674210064980074942051998318742069902695440235968476140569817270773722615008105482886537324232302163229367496589103104300753210362001604782050111325400649324434817569724960284855586459849665775211740312357249166642316679909404322731075577912695334869547449764941046549410436030220516009800171787562782222223273895987106406790097248255360923354816236205488150812795589688896529331704137603375069236782590158837447133787760963905053634478132927072817818183000124760422594240580936135378591100633998038539036375248069393085180852190290101951618200022004821874616903052337834918338961947358652859104377051028899392301988069048238639786432765620300011592062530123855224618777224587846859326378592171950231133594171618502210818091485468471817109109097520002507609019731900262067415861596199916592880867175948127810594879341707488336293419811992967517132663193758215055935702888632535032234033513689360815337231709735713767058348621287975657739845811912188004644032175268642210844058295539988399549505012834131708843099156641054147668634379956016197268460713106822330539652688684627478570718218769175567150432332746801402036268219585172982381787270054563089437072862118944985563903065776428885056315432229109667948312995842153935005567687115847561360633822426853764983490563647345241709328451330773501398618906537781173438316088727995812070471769994935833095927788448006924405748107888250852320369698921916003691293552402149887661544210321691351002904492004316894599027906590309047786096163301158056982775979654660106503457721697579787743992401349079334792137823360230982161565547884391492058862630259020191299614804979728040798098963427569641259456872157748425456848216675024546168473742442998312748545461407273337208524507958392905665504324370434963269335330469997619208323759328490802884471557602477418683126479301517810979033340193730344569270504904145758338773074372406592574832843687071928968321283554499416181775256178208721859711770669893374612287468362293556569302088823620400619792785115348391411182572397082326210143245696716148997994339731115390924540728310142936884345340274996494710995719914458435313295193841808998719723028211445615023556844904002331780014821115341826635503905769068769557920097096390181741976573341102176115278718445536326386283027838778151054519250094775891402561186880205216885280538384834217767533799195722109650680614442304237970659924831643766099081882586677889210837585679343641961785273882719933514662779231798268192572006801832666668584295453478171529962624727821426811073023601841214083092358574359273940803566333543256577566789703020771572441421719645811780444737261010955176982386348439257984940999831537829577142611595813630010998505409427637594642138950554770937382970935271191423986128831383907033679977422327020310567012449040061219589915439771571066121288896332159746057547555945739660957137616994308808815565659080125154632128117672292027429899034294744883205958056039826247262035797848507893493812852274891408144345234282266629637510504153953814757901934546021292368384038323429471237162543689855143782743319292792321984682944101828137910872940347108464527463791947147690824434340163595476385674909353869392081115281397616384449986846852925990304282444610112433428463259020178514823062507479724943491775975253202502693658106453978797492990602544276653214378813518453862048938564735778840280434897413660183423206150828607823766716726313630635890162234606563455601693563220919447325072817669848983378764163369673123499971883667811722001751345948713063533795871008070963337122318822427764370245635816412792248914672360168604935939184948295367037855681140823749788309315213437768492165615773577877323457264768620323533232182201652775956227383331438444101167910002250513114397081860006995776961484205477085970623638103192521938780945722065134970428770543091779829568633665141669163707001483887914330122203229685420482057235728920957832634443066484615235309447374152031528742385029714113231809374011109087437558433284875982839804766089149649185037963597889817889457639083361308069256314902835340207328022851899166290584840215940655207558799060789431322464378758912124950652488245331229940270887061037816698452542794119602856641140182399044175145819286584555584157669377488847170175819040581449651873025268812102309408675737627688042891312907848093509823747843294663674082305076445507099439993025816721920915287966404631186972916035336656605391092469299137221202633243587959985597720957775633198986045811839096963393706734960747035036114132486718028575456690363664481724408301670366686886626055584721176187611910733268835542913493893316365128164415904612280816646691572832991977505465741876091816718619987279727189502853005456658474605109247516972659098444028900536118599657198213765441378378648114938459451688066141421661936979717236785190715457833196564129848271183375614928461299803638328190897528963574584746815344069769556833710362077777118665202588156009094641477317665882203561720429624786659345817141697185330847461774906603435081691415843633914652680216288570339349799283161376169514524094543288846000752167738651958075033240677607477938304090360856503201488370895051737626642779727937603742480426447701763013798976395556032386970681927439132137870553931588137511193294621304713243559380077931885190228510430820959836230359697396823513539771074293740676449488617361367837503274298288432421725897461381350011883782925184163277317950884856793388534536487018644101369022451616428976603623217795294251072928754445243077680898334729986706630920832841661707531304108554437322236826234136711155512600640327039130467609734826396782436211458475566965389254955489397976011572914941504030901437199813917766062448739256779454389884865729204253707749138982332913060212194587280161639904196627466190629280964556984321834207912426457477106070541688095507937124997174426162139074072997316333535663975480274350289248856612451191534596378539063565561275423616181228389138352287516872493609282140998863515549950216665966093544579982663759080819421536532671397844322401780592206560841605657117768224089941786918957803720753530099857106699580310295086342580893770518722753398304571425180660160399038598910189550698272983917289988768167514168747244283026066500285331075006951309195983965583465790482770893697412087866819598100856696899690880538512984423759400873735095109311043963608596829614102792989797779724334324716623702849913828737693733580052646969342000800367220179518489310394536474451922512411437573464574669116002712128775859978609157956810266998329067697006431892416340051067550483601615861540298759112192649284941455356544702098288362945101608156740962954422732991134832986830951196538741276520627401008267343744805684621070337853702695701409733696117839583315410144574650037275698693501360383772340060994002884946293351235610329852464031844144085535470374069404676246402637733998032040020179686744952095380525040672309676380497978813904816021009788892477111711316873374543422694221566113213999958214257847334935049028199051071944056740606255282092338974720616573516471852836488876483646721523989663494982696812170587741338529757947401546613303802316923025488444265862890171151884711860112910345799352202311886873767523579933374353794862621969816932372568064311990583410598770467607406583865928824106845824111051517651846931936077271896674218342702885907002731655658070340401569005667638994925038044266092432477838057798391781256849498051020139213685862608426552655054147088668030483882201543044829334162448099495279579563249232693636668560859924846957640169377722704942124002164665824921259746627924581287441590060320776608278986393114662805599023487155986316239115583927875555524240789301687969154832101565635720396891414378458673681480522138168103550750099797402271624291138746873017171036753899976794282963091454758965691562327890390269405354474125186033774315066930695795787711663019962753258693647143906414081218193637751323472016645328627510272774495089823303751671762108220977128518559952460054252636300608107928668447463323124998044196804703938121065709184541073070028473855087436929802751134199328499617044538346565777069610576636661620029680236144722650343982469165429995270770570683973687865396326402048691793385750247457970517875000354961849718727224548726943187317986851478933083379093054852590246305039549427645031101036421761799993855350259836936493512372952125965294854317699089594579417746937988304515436025224167358988732680789514037715442062641819193140354185439434332034157070787311126301852459073106994901439970419754026884176905851326697748711644216375719068520119063904309322735612653166334127334952892433796612227484881824396859210704660482653842618530686335069257242566194339107488762593416375506610364144937390217319408794392532225445170400534445436798736504304185740715884474196786600280753466167527577477251649519052233143773435836431480054136370996469859419025004578665885253328559786164814272403974736743512896009211888317779298300258332689082611138941117127025968705979040305829922619421655946666343923487194509330168669940471079388505908563328698456162637825103256358019801903495406012900020133189053792761610721591543084873500202674371038062600665795411402072493973887636644189958237181244323305520377532394555141924701321511214975522907056164062049691276898928614508541947700228579201162659338965131972848203880639272361768244509123341672442366095650423222733562981342433567520901857199695942082005679581153965393399075754567720153201795773109975230749779268736213458721396151687726183805601782696187935342805296568057766103241462669076849929101972380688664521153390179530815107728438546929546980032992423870193433413454312012772635922901359076192091855184421075452135549485232118326962688628699812306262685347779490182402612821507700255258211524070612567817888959408347706155188540926292902868979066934215290848686408258884334915935039808374880976220252089501136394132354881200127640735210879763266016264667246453274105509017478059318735455740737410720264829349242211052602068570446734419598639842492525575583857821037912202681875040727466155418063088806789604253327047098870754777053694314178536791415670425811878312465491388544999220852654389627038537726059745086898441012825111210403860964879654108396464672332049765556535634043760712116837568678515784440704337019220787176536028557760403618319026104745677785953951517794996874985489600445759364795324952090830325836684162208118951852758403660525473231343122232834240432815212536342372967153668938825449580274453550828450999886206731303514023178429642507599283689643964488527307719004799654328166668415014129956296619906766929458611589627319549849035737818756031245953350121531828629703851794167516607230981719574276494022524529726576054965831847976770489941401644152231104186424599761293285442698200309901940603374270073605208209627878069274108427276049294447002425282032290977772010799637035954849057786729041782613204588259798518538083276240659264372358222325311880880394342800185261109268893778256664820679729965478951226992743570014258963327282446387170903842985693725330194795381684467593996935596198882292337247956662449456082752842998116016422674473819048497368119500752646074772990692851565817915481572430002364474158757991483341256703735423386900773649750028972706379688453089956702774226229859413333644234551285885443701522001419047961650261372477747958442611324202525711021610204504843458600229576020406254834210400830178697559234493341751936121125839163599174389949645046067057292436418943029692210913532291991162768758017326951154859822427827748428164800509491031451139005163783782480873958801505514500080230719554880538423103787272855519153304704492552834039401951478887843745192429707661641200237330120506583980857609295914751014601695710410541736270209141315204015299136078665489357401122326383075236767070620084680666343862535125467548401784614470185423409701937523702421515390019838827125325993853833039925241605000259879785570410612064580402219868403081058220520750850120890386440619533432503214082955799367817880369861234772159375103914455528813626425434056389819500875748703306908114240979512481046258288442324806691449769627859927950703265975482064112599712036526772901148399046845778197066054818539650191888516070753345829350584304166371521919317428489562348192686464562033325680100318643217085938994979470352144278127526444031815641572341399421998242401486666893721340483797078733855151888546885371456083845652209045041073342397440700015581414081397938178946820739422660412674441083360949987699479541754425258976926539838688506363345828944123870271812277215186982761688720919302510548060820010699021317686047893102864163678646325813276402190866159489454126492559444189043213069673041922623624070128651583632482483764292243783843763411886884195343682611630486650728038819137907268775231595253600813589546695382738269561538597977108256690437986639244375793301559432411963550749417377314915840614636423916666498292097743596377417452142632441349541496749037794143328717072756952015687149001636100334298951433851517349826614400136716886008880290476497069805129432240157921181005397629601675584284207554539677719515450332313651513836163967969369044725672816489774838931864271035328684240802551480850681232128998901157865388292583684395333867054269251828661158941348509315106113558179088553484336279159592838845625780277924717829170762370912510593252222484907470300956575439832676699801882031097498391386649057544472182125306912911412683976061362245148511073823344521984897863415957321712403621178919008038557581022186367077814509419221451819128004725988400919310511790109048707583223578293432638474213057674364748383486741060158921338461539689446835102396576166578592382316628793674522521094748534802767564718576825180604589847099873877063484760510888153105226356502839895103754193505345118809839525612240157154496001694714660460552759330936235149544029440141944123424548638547332865468461149262831049300869842544848414990698531253658956928758067684353024770988893648173306624181337193344503065370781828127530993297182389202779474037234103330088670744844936723315735445659804028532309527946619583886708246723528101475046944069794091069649618991726104629815334162036157396349318894307679233404129805846318654188941617488552036999602224469617736872575134421443490244736351621730094768508314000782650490328788707641094379924322343673190981703933643652063056110186055494358391851003393527138780885783305700989712482680854715883629952961863298033330784141568092098842745752951173197668710054997106841130417496490933746235087938334122105135571621480518449069623940895416785503967292356170529364868678336387798607469786355748573625057513505462643675312892386854051775516146782242970281897089574490906596517654715614740175496821321160425605056881440687920202000903305668309428686901746572369260772457474444613545521800776016203552487485067196686963725430029907925639050011877513985430845998619458365384724490333893097865953083477346088134800403250456760507258243535981795732204716872159163418661663947024910814203521057206500341904578109021926190989274924104041837718084643607480251866763770183221661123986843296923589262555034437696621993486334406783448723857460453276646281004065316225327004428992390680707014914525569346156082726375884188256524924299733183377122644682982222666779712727644714718374039558049934406272151223693846059393024606092017471968684012019483704450914529856484758013693358636095137013330925038997492135069655801763394999930276942432998360535958956430559347816054788752419143871580443738896242469956083437907140693561206236894027287146772290173617352694943268993887045289515629099857791742427997004316621841930237142047393833138123070688372807853826342169678769585908450736288688064721763998293124432952157870337506631121266377939809051311989094087501489516362272110442765706787442667697965440968267174606033355799986338316897200780943812179142563503132638380771046896225574693898316419303146957051329472434728060848740786315227169490065447961338192158237760588690087325895784872665417434080210752663972614038863041179523968479997727018810532458834310200628909347601498139595322485749078669169541542130504030830988508464234244708801329952952961347824631314508954507578071144411974143296753040075372276277729992941856178992593163758452110780487038122377017568636591773113693364707149713419865593042858359834722272404683093540264020944191651102520947855347929577131687382677541536818925932066269916099426640412029420535055992687070736895743186184344055606137361933992704650672338872815016220130436634224647395953596118520101738155456848159041603845516096792456261710319434885405728211931054300566213787957944381537495099663943338286718956161213949730389019667161774254721492049072979838013643860177981345763121880359777359874280901326279271406542177918106449956002864973172329939443693790022907837190204445374280340948282447470662105149990474830006673522785069104909867870475846260330563175483579274569483165315881132155544873490693533388780658387519976081196508978036583948977458414046319279412109773713751677532955905420527030147811291385053025846108290418347178561657676699689280552622034882708767052791313192940395631359386194991018034868358609510266361634316265617005952502639094945521984769948818503517560901817099753677499309664794322010586728131144596639710989584606228532848795769973148678168192860013589514937481163577946233855621943616533306685146427505055063074728742915010627592534387728690358852118045968341326865229210453446083852210222736258714852988712391192932648117292969511294706723760476130891678009541344019892128557840181404706862087707925440674046076144164537233013320214695298988719160512119658911932501950161130664918349936271572711039468124497953614250774555975889466714362907101024108717662063179604485969624284558725036000841263046797353879691695761099305744868478034997104370780614689216344159728173811587531932146303939897506812605334665007505243089644199609010280838147273701139219389471464234487882230072629216971363415831664857018741828660627685345102892335634245392709291553390655196653248493017757482290469574705254113326866129141562980160483504387847461371785175400214396116349220110924778414028763315850404850230337925139953851759296733177721927931948202734801656549065974456750395443127271456622144733202645384101962843074941016292123240753092270508960532193598496883628924328289489938656140747707473613953256503886740207073014171967162097816534759864761741831099877445042230457334332775811271125258084245206101493568377821950576317500787023254825592612339607177403414313852862171670258156269960418378223420273067764782246190495930249954299249984913833618960345958559373852062051807088126609402074274086935900782972085219963868954189372481484846785231578501738754259580144950384522464503852669272213410061722905236025629450907398053494784788741922445819327920082409003059771753739786113991227849495707345382231705944146070178231370158573630315343509074878647305986070489055976591654720368643442999838688023712053781177104633343636328466083867014166843316093062044964992231770688577568869236346997253540811042371701299171610726665287911003010295187389899491213881125964933398575632378583304961612959760378561272304784321987015841335262223712939685060254877148518698194060396961456393558892198222719578040406367208586556144781455980069144624182802393788087139971053655633297743912656549143838902556099265383235075002211582060288295537556540934699542356125599748106803367259310835072264560870618274502358109727411591446450154720165531674810466155324899252063141769518977856685330297562463704687725187909771557352396955978065767601108502048643012810583267408965864215566909355716252032119189128505524302198069368141020361952878461400440310024049415824812911717370509139052345404707429798869523629391033935241763127380537078931526395636604831951602212013967153886664387046576665218688180404693294938694397523880477215049844179256629807058260561803519286226645805122326027901755470613424755988013200732810914012335925436575467731239777335003413520041209683928127883866062835115062199282690279131270916077850035695978391922240974504476731060739632482103622667696058328289275763494168876204212494231522732307265947308379483378769561988850905121732423875825045710944205544966610582353314859658508101785080062844550084118177513185252249998570345120720149404872024433852907354824650366455193519563609062028368241447468573345006872855394589862515880881634385539407743399022692727193714128875746055175628869886021325606216661737573898073429826432208356335480391860887697887793565961763537756742829231665680301062607085043885771310429912560808788067609802606109651517999296586141477094613165875483420818733130124209880263573051581357914260848584297306917565986287385288568461142956852063151982267184417535327313316777135580939981310280100324896011493668823888264639046354970693335201806893533981032047883424376167757054894114551313549147285411260620115238620661830869916364895874653250976806309186449240589002726275731924469012078608560077243753344830615646786949613554997092804368153929302998272713720825096585471661343647948068735250613709307124365100773766830010386840817798335307535659638889621290449831227293714416297380752661853812587394215927583890637526694689279848486915169875976355064793121010723038168738294897454471707568138149845630102271536655672289158857963763572057700613369498238862674350447432733575277938369227168800688062224253822336512352725264089637737874377477561747706474908488710416150700827933991153235320117081290541223911559783250879799658373454533502103144139191358353624614733942808231633951703140769057742504992716756913859054174747221140011857806681829939813315508050744818112104655667790505678122587968678824153593108123323841620245011912124855782425608573458899088935295484517994071511589164319436818231130139705535713398574099611906261465287272836416302190957057911480209363261248267711723571842887175702981562397358428297983612675300218449204245322388323525303414262277512789624808838923912576835179584443241189898458083151795876220255564611179602653619340946058155599563571543879920407065497136073846829285718257142311976855022339895390365850279335934530281673462057629643271728459838295282019701627141466518344811029006834893159671577649544447943588972599592258848824925768107549724380145051892917335797338665447257783719785615813112531536248294317141032188618950450291608413358446620651195553799304081777646394904315285123628531162311245702586917632118051816048447426739566589030350412609922025177516286476036718546607255137917444635842960263538135947169275559526056991474856819911021038009193221241301717396227586109236965772102887400408910254416922862292052332533444569604170332717780948333388767583972389981320855550492170127472968595413183443645451894619384016565773113954640438462909894595533750711270373414136209397873578417626843808025135885566145415672799992236953767383174520531517869079220797345838833782177665792516052418459455588067652511284260898188849316082896544954315610254575854281066221508426940471891338193906542341473520460281539383824217335681099814000198023685329967199817751318372365376285130442970420775035529109781421486464415960366513334177381510609556238339917096772124475664741140295319172686699386325372388064018707701597555975166860911849045736125824168753615921855618944682781331462711013359404341680881022070799957291771450868270662572819640774375129855527107756938802772827138785269023992588543993544622523340921300989126841514353830796942139729223840181403807278077406133169914107479615347889681011294026780099733251505753004025723259767524535490075153987751283301581404333627302589020892490486428698523021408677717332787253674260209382758884476559984189405643826600469500736748910166450509655058425703060025404767591947751525644113664407623706197445389411752267105879288715845232026664256463533931909550253786049283272117432423054857303414770074713342846324743173730776842421572493950804386623131202611575581141481165764205065408313808967688088314649782973802606638131848803864407986840555211665131860289239102421988623692048334472693717560325186554265963064901650756529476613628335292557805742285085389054009908636096190844467458779530606230709361058632743741315625225404612964331847088248633471509414160117900455359705666360087089476672004546114752036914550314275976808362500265101453044327548066703965362876719893174671273735860720493738053280359471930714968690136659683772418324777818035516455683596436601859619610121862288708899098466333683703275827366707064232872842999666500444827975246017585889666463801632961986187290360800037360565309617394038034666713098196409815164346138501297210682181365654403451844937660354426307249625318798948826454314639898527393414025436689024771865449862497240940972587422121347080333929009681149205545235202891273319612752301904923608687124508050006305768912266796603200847389580031564329966035935713252864100505176703269873832354816934698333545042622777166478322994034378769654313464697541418012829686748540999069747918610289805094802177627590905739375650549180254776709292888415429745980529035721865711665362151766688558910898920116836353353555076992609792895377553544403039903381874523901152820874676189630264147247453220264596181121698570964451788236238736390584925247219004690638174219641992167555885142357511612330554096940567261286992685000209988237073741276418588297376463432478960790831264335311356293608138476777458467801076166297416309295891533755122387435277272010329726878383283586784877796335378810395556781468871410683951749958143672495268019314639071077019175317157901608860094283622249158657485677661381426634501977716985917996310755267871246240924712632079518688209027042016307558428177074981119963588880824673939374389253285210452554630749794540403424942206530708433061537753767443811121692293275456712018188027191296331619059581010066865105650860026133905809985950390720788595092231047426660720272819468910846440143583961816353796453614097267257754254785915224159473509060081900323822951711334512083396026182078473159723955567831783106970135974737140414115064506674259619968503247668807789497785725261361829873754048980640802907949747039293175522863906669760770859638200800981287923533448140921983263849803958831954133067394744128871380133749300486235065345091076957672018048329860398940338551186581231211116758576532366045629266792568424975569306392908449981857448497680786475048847611686574971193496238377780031750164821794940222383824483517811273065999625609739625544746021199685340710793950183384982580217645111903880619439764380120408538629767513389306302521856736979602450044660207293176848228127702581913062668975398146869712476537054805591176530972849498945562825092182441858899678604748229068875948545960557808901065098365627047289511276165843113246846923891144160664015189725818309108040502168112271505299713090917069490264962223261692743245565249924785860115237775295863033522453916216643307061110995126694129606354795604869527427894018970740532636101259067083815614672182452754473815030523133491455681355690884846587870796676183907817976279305216505249467758703284453601602476971402603014575059426193708532248763293595122652672546809615963349416142267151180250375413422933583273439827474134155679288940302889597051643175334114003590934246734377016575018584746659061615791485105968796304352073195100538838365170452521755931847919206158284804013463059002849536522361313384745848003499429006905647176728819228174145703637090158525311438973372186111439509780324967153521004931113373001080683169393688596579374510354554987966041889678235528661602488224691377945724075172514812243385974016852653625645878675508556351091942515257108864724865113035804316417522241534576428579814767824849851876231756300718515081976825131769696857996219661180470317267217943413495755827350626844499097122246571908630762234547707556423314693066900643238104291557091473584717921643590524426413998872572759147165571871769645770275012940387501304531584870537704153441699914365926995807687550869954470781102535523645200443789716437084151141533244157520769067063576231386291301520529706712679689909586327064288503228142715171393537871724073819018291181216485216287432603599442295104094679978756615983123808411989616279052927926457577480794928461821504918141117506837815642595523995821781391983608717141584046076844743104191104373122832821284787634708962212580228270541627190022741277690088609186358607956485880704925711580113657278087421861449808449275693285055871055893253377352047080216027260743337767870596202894836929629351550438347960531405843618678165730224874517938099450715080919241782316071718497230337617596799548083615956422636231677587217561045879933379876708648879472537542077395587552684529289413709619319588800351858143721482239989761534487186163821778478002669685145640052771354496091474161565847094600252877538500205426693132776479850761660357171895191236002972193853364544123642351963379338155999556176222899298745114911128842608301008734311681873714888369307532432287773990462822241277838720365850022943334532693522883653440818017135610980937988327334446986347290999759319021052266137913320823681517209738259233523326952875385277616993501459169748308950772442779714859441263818351047907176610648395697836181394253178305826912921843195173425039058981489792028350608658623308348816960586730402951803159200937945553162238581541451694630638213445226579786054980709085882121341382878793208614099639057371161838509371810783506201605894956525152207410607571121399372202468683541125456782290510499023916465267489863188149722807940873409950636088879984795100264313235081132718069109648517104092018650345825743792217922363247800575734455378748635171400336158921178776901050888459789984888436316156291340974306137443953220469545204300084466962313135918202796124215800050336896260394460105551829391921305983844213851453102164176849943239769803853371121994569177292878243484498029145133136860041244212558535314404595771641971685113818029845418048581600195677918372599719683082457902732062961384331504851942328908117731523500793346359029740644507933320151414333597821236445352376241004341034988000317089188553286790119108561740595935211682938307296057766743030404980831364439312947793510475092051049347070904774664872531201673078074729484406459265802404137374477303911724149581757407125716069396920361016204209411345540013124994456833719569805331101660774924658774548248569449457299604361731973660916687065388178464142655401786251088717731080113964540005065998855136927520656612847927636611647610369312264070372579144675920817390248527326295062823844125466146267843345313497145558243020250164424739261985685358643307004493584471430985686368370294842517614397760859552420135950043466012415942788307538042939232546498997729400663896758438506598257527052490122066974942708486275609898783209390024234009798961721047630149804265063189469106140014924243513315804774402763712160633165436775893244830862607551087330903088045438825663347316508405872472256132568555690007752591581902416715677665502432024816928661406974303658325659201941864077320362920977634952344228374436074653155286359266999215561951378514147115660365364010703289127543088536891995963586915427534670359095623931884985771477386178098281637957366791399677103264929451654067208041115747268868775010208961842554146646092827091412788720557737241874754451437120228533936940841817547631228438496311456630060177281226951452951500652124388908760775761360621299546138594632153523952425295376375404337213945559315330484114306288539122154496644785864329172461259957747896939457509170863550582999302947667292196866788220605193678043167142019650193156717768453634193860479950688276984733687510590241140512960216034403771997783337717719294197624991185074166170503025806098774421036071071311107088263942245170009097505113041839375150749342107461890663175423917840848036901180945957952991804832960715523761579475655909536848026766749859070884453821821146548868269687582959444362841949752493971747765696363972630446059443000223264978183452133712997347484368421208643371574056730347066814671351615754914670252808190816389985627301622971206142704890822449488938711117453616964597237797641172693994043966967243027044622147696181910795216534247915436038873140922287199890849804017992939462849768097761048000566676114118900787612906167753178390149896341288485858437956169229751441096164476149824203891240157010871920758592359533324646850998301687924994383204799175489342842479409085181737480555678071750397764818414837018518428482996622812297660014773882699871894784084867039112464299334615020855967419026446343924761312970816876137047428153353997723045435905627105393525959919551732740598077550387727693625399783925670471554419842638941476558099348996952774903863960550010843529132947289009455752140681163235748532250261729932279127583666654220830714459665718715853393518268503878310014961058327331098353277686315706228849845497233959107827868424959134121840497924304099313832218559652251707413634044123519615392210783610766124455856288465508332454138779851550592349474848967605930848641028960314293601148381324675968755827484540276744685597734178096318664732997354937480115941147918402133255693630528817942545360426171898289742537845984991732026615380865454325242532332027800471529206935545707365888652163392727880536155776883187130536935202077472872104587890579717322216481817802892524003451982153643872581695856558469311286609417699825369197668375098582272374698864902480639324770319243850386915020210233899299532073202686296922466117693994553284644446186345456129369286146360499210759512499443886428802686222050588989970083895224414253760055669924026924633549476946934833719035481130984318997340356548016575269391065694590650420737315456708175598379837917346037917876483492458398376181526550474141180223705829392423273282455382421909448616249579560548771638845372057997025087008325753678775669228733271545382005472360661705186853529352102069493338811132859834872182622778583790875002467626555318409541541092273521549198803515214810158076779957654010835117398458857178460747688251969749457048195067320732062736681166453957128087746500591846053036317499817476808741739965275543612397886032896222616236113056513907487621127109191621254882694717288367725339179388065825209737769031437232672104390842425550608221456049834485058862764203158381316024381027029686287816915359675316186759044132624010009007483058315616877131512764461520185370527371111837572096228607071154611193874513226316476496815287643951978071953471513690754295611755332878613565615958509954096218165577015979077073120731605638007088321749478625133048682778466573984297622652445487107576918767010186790493262247335909242914229364096988255896830649658924052615397060496518448103128161922372042939501345650066246150343225053602148223471579665601176787519730037020633405124968827136432762130814174170707540753341148115359500844741559269362803801662433870524191454617006808667661528137726179514626907209072752285628804474573034796030363452003285251231428332313508371454055783395864344249797638467000288748308323887735203797869727949263352634780580574210038430901599612458990922226786264314440715584746005820915202940496383621006612115951591231128274992073381327073681902902761112425689246492040248938957134981724749098880346086761520082719322514914646915724314252361113041287110330199787394168488962592684111162921681532258928839762445454040828137065253169220482017424323923695118169514963072333223294124797731024119513270504423953039960521267397008728874510643762673206046894984983625955685792717304780516932283159303859586527581818720728774277266799136067971554365191413644679561968501699610437541989538644547284793572394308507888225634904400301429179417545850575683090565025510708651802848662317105090902405479199318331093080977412387577308402252499481146999088548898568575167191286137449586485409127709984712270619013441767481836318357098328437730360813654447787344223885462036575242446525163287547475590398874118437972958034217666892488327597895025252880109477437662611147535633930737660351442815971264994166990625703075466962961689809021327080239805717258034281392269225453595434609338713923201379869210119954831763968324007919225770193313358042328515813817997387875957403081039289386896062579585285538428896582012609180075397790069725356258335673345987197433612209955699258490266011615703738909251482887011265508208141825707672393098636204734253304943413751921381036634857905452132226152523248892272951394637777901037408540007013995866659352619027693586130186265415998248432435499851692949688712553358026720479299677050174274359067664856915377730122945625199312827985899574516498215926844707804186824081718280962499393543204719931236737643906508095520984018142955961263684233445353921482708895071046520493155070617218156093373184142846155330319426416987465633466761005296608961075182941876926193859474231826512897596585275384636176521556523267616022436202505330518333060086652612212463040391830981837363275129248725951708660238463581193434207493744823491194949801714611897950563106926185758199769808571192038464078053548740285694725160759496828500366741902848773671496347454820387873763688704646614434220582359466797817132261438935248039839354259130248311722251132839032305815428258011887210715026242055692187932739580811352400300973009366854943267944125763512355562962596037086308572472406533835074741725152317585205178785170670234382907686487662892412664908355750125731813942023769006165260760025060547252192941190047431625204492862337223864918421689733458775297589090836026204901935040779481851380041507953175346928216435337950648025533613370997110189097463973351686181962278058893902082437754332869458764986806613127610663332136017826805349412665479920265307973919473577609797511545857548917058892935440817427498968928413787910307205983013205079006432283144903602047508004594543936337140326764741738830847587525173090929465412639843862497904942917029612531196597074078477129285050368969770798422652279105941761727477627441153292195610538949571772864806986637043154432585702762020967730552803420834523083811234938835569025147022657538981346828755644878886993755958817948064657329695879384021854874391492873776587423894422662151703314068808269690606861880992553247020797792040064978078537972616454725227172521651337768755845601357747974356206447706037041750575911976291517832363571811543156433694132525736303854588120141390562419418443599772741186534395363615111678606059177827662970059971083075612751430638900804787097740015037220721349869321043205540569416270716169643331654303167339220754858379269988659009292478232685432170195081093693910956329477543515496619148988851569858953820958605526161503441592771728752281649296929652992407990628317416096808694826860663567169257077385435218912149891917778504763794650544674544830140710135228622513927860195905851423537043061427002968658783351055803648505039370116968989382071027687757049566101252001750686456701036624181632775503391177078594100475011325136131080106662249162441808887566750609594730920868976842611989144479369191858200307314537320463408997527600393744929877557362949185504974122028296313885390432766879329887832221803717119357681724455942199804802391824608751594265098553938344551262231875348318365172297134048250130486225925625033812917314058336067978393712516815019838220642612931337682423453228418454765532153691531700359639554089772960240466315008162056165714869125470006330429348154635406338779395797236532792593975334443217203565307339321396823323567633351248122520861244757712230734360040817663594101703886855185578784252446503314324395001450547866769623487307789264103694427497998212974760738545592632903724674854185251815308818287609588573353493787758305350491544193261759479841666164028028657100268898985346597344245926185426817387253133802668298916959354644298222553469367727511172278766383902939182333976125953719078794297756733199497960076284616586555572501764519212232787616885541070188676351439005908976048907590638110662489214928115201706187213934398694667190620413888364214473248037792729105523401475109413200294118278375645330751983855021541788877522527371898698654427779418010493369444144309474271969382795722664786417238187634848090630322053357362150851409779786708279098873067534963106283725931937616444315594931457448009122478639771507423199557201552034197785787715341642352523456429102774139968541109982839019934684973876136170167342904604563052375064242045703195863881034612750840569523184085979996309667781466275271379567952627701947489091833611083305380962182845483766522324580439927526659516996840780725525473337395516581193577212797086146776497612235321568234782330172685675114892785180995973251487901671144149198008117138130941971972372434550016927120948036339872454127482480189328657797872482289419667953443755822402238669765795349654137216075145187556266542813793503465977355249443227583290280064080753721306880402705664821273890360957650592765421439873462717662075615840142819023404768685963188538464287647080009859414699196728084336064385372486417599018778103210206741635882954726836153214667474098227808798232499045446041594226065831322412149481434036116041258338083385669543995079732336081733168028337629161189039943360830342476723972932250891472103307275803753921919159202007990641231302706944373797910017469390508221652422118927315791343498973719817991633067078558210419419095416709449825564002664510609686441503959764390263788537104425702097202298202490505408014061324857051432244203717774481019022820508080419851284434093903695770627367124002131970375139820705529471173539493782830746346848705309796428212817516940178654760613649133611252319312084196852333350958071728578547911357668033717598468735514226430347479979886350164547461167488570836393179059371735216779874778503405685451699692810526876077550699483619675143089620750616740047091266672776060639264717688813005447438075511860938296199892495292042708097670962378056428675516333375897680288006195582191518601013700807364486512725290246954516680758455979196325000859132759039354443637612309010530674149275677467856723239571082826611236006083911069175010732309970654413085756752332194036268437668966003123165062396029223961405985121026800560314875491820839115091508381233391639520492425208314529986608514240328760855736344369353708716573615431333754906938054346825427235311637577919505023206312184815384455763420239666885135380698480612774175607083411668535797359834096811014618594025801949684323053058670315788964940751589640650439814098705874194303977002079191209251891772481476678183007354604455728842178681842163621762336469375634624274673056899126664881633425424806933200130195293240315948919325557693722436112958671628888945166028803619562072242844171461078912358692266383665222942935224798803317801199840338542956403567467303075490520608854592538182441850479805937993246711948795338017278268933443388061560898517498890871848644714037246268528646385301853863422062647093463964408505873681210149938852637345238320760536774795475775523000873708007596344738191933225899404785006616537160692365420898041343626442824539793255344975813841407395112782378171635275186455979494296399421307424972926874673897672351340508358695689571985759725931403776327644037246103071671034211662353735197262643208902502992921771550382827381498405221877216165425114547388983099817867927799860453967070427665307209614401301147932190517463918250152702110728753228808544846800044207795505924016423638292825230136676370668117818214839828980104018239449189637480705809936093048750590074545800487386832359424702613260561773564552257625636151486571905956642344324789552012144002299754030320438558778665323436131850450023201179875929654694877771679478967151293490688760907378431762703289416726317326921620695970702366578031576642789166241926968472726504174324332541132654705134495511272985427269815254357810401330304681704903936583274258176320756643907711598816000345772478439954601190201531576086117624586891594347164952395993965997161581822481573623564639985222512974884873595593993514299306353785400325779075595719153197633016475753919496519557865387984601927133340600283832747064493435894180932997476629184353982930466193396391245432987535266562181390092711043504830133421495936479927575796212793744799790004050827396578573722941514289442188491331293878450764485689650293073525542100312727658068301774000988477126656410833561142536581485222423493542624112813486844559315401265992191586661071493663915876126733878950500234356280821548469895802169351273969179941749855745960571099133703229298909755046505599926715891074320314163878001844342261383723276195698288010937963573732578796973769102262507107046529448530310063678392735705097785725929898421818768177264619362746574488922892545236801852568056411588499034516897911539421387654024450596833075181350359272020908560373110233153702526953752493989737786773202964080109738509167116452547319018101212780434890735057742516362413192325166151812885720840172469412667482410025198557717589823506689097719560806876322068128624764606914854267767362710668006667921849440370455383339729537730014456795744121518680833815135180383980033067269404302868075000952852012149093098493560570399553885959663980515146743887858080865326420633879896207802960769452525221242156023657215759907914113624733339590709965133171781085545174369183345892796129555831841670008557319838932756088033384662424266214595867496433099524428693278860822509375899474984503332463953054636683044343258244040961974803978026590274351362174683225035202941453712010596657202230274585160865773470435094830064996195047109786364710559769516265036458547312334821635381810658807888411793650402439966459617216227516884960961089248407928506859801222819701340042334069492870578401966431373756177395053612030491819796053598359945355043723131471201387488258166415669273791382521713233381379152620658899455722400504848963226994489873002872837523621288577607669634464563630551594935582721374646673551162853490808700517759279599749556348306623879983596497298280959388171453508167296419557018313410672421187502427307772966177450814420752454155973900005670555672710251407744443532251009377265501849446303700142128344897391257429166532605383755993716089873111993853311848886491223854146364262318630260397981923839444182497796810472032176861686909807591059175191338812903712530096183331795422671478864551804192478452335950469990715551886613346804513417620169515426560749118332601197357589153626046831326644138888207738071592581659390919959797188975064544867429376066321679419732709996634777317466131392993373388986494177843793161915636910796666776032943077975312334845283065312163680832354902228103352870153162624344049444571891079388660081624287057979791880348854976596371622402757264790285547235191979376947063022836871904098454713845569302996991834696233187198688461228558803521138861115863960223591400654777184550051374820632868389489788082343486809406493381453715800419017615156688135179841962784780025153327959357793744973177127932269689657596626065594972316135028103469460454841570926283906044978428870788074480306586195834027736301872835444131072471508579914179805202543872554523630869957079566049299617076799210551040047102386595157735559740028600508922595309926025914752701588458106530373230571164664832325555873007441094603316856205807911517073199659460919931932269006463474156967027098389851743992811945506975649356141695970108032187201780334755430499356376971814422600014490801636052602914577280242690459027564074933156094646167407394490521452461849512819359679718030025156524152164198098858009491087416549652767955622713996571123305725056617448704798482300696305005639825286939672275792412969618105319784797367004303251058739295558170672747247878617578575273127642968270257690418386972515734129697705117238928894627498332842203889708236246390738398306823698417750419747312759823876006921814712319597827278157030266777592508762518814080692256732086048025282299440854316630538637243800340140149887495899024785793007382824065564761734281113761017083686423971566697296835573649253174264315742719526070073207824920070572420387664288385219713982820699285259856554089181424475695755971301261145797432708517983897079729120257240414474539121529655366538637369573940086746104790900184103059342732565795629377264433181949030927386516949821680892874699840665495888199234975686163465857373029928124935168370274980297500682888053532117533842299400405910942932087738874487825920416563413925737709737015777308308440860115847131101592159155651736919554644734834554096850151831052822536680926732203648764458365808291770643289576524094635942762361978022247868852478951065333191927095979244888027158176108064415719585406623277665649740908026756937914423246463351298083086851353686599102718726516984220517596943995493206756298562405678946404439442019011790556732590044897152963077865792778223943515695439824106041937259003508833308208752737234884670563237702817031745855908692777275377220971652877670838095521944229637071263035881165835036965276176946717288131547069362790288981391504737784648329083475152984551161127864950150305668589328652886384268813452506908434495384159379867351423622515097069940091911044879657054520360989494022484431746105917611000870182827341930442072758184056550072940315315033258333046359486064791733658808091617103052071057170109084563908336502187310819647211028735222585548052359055783043243991348333457709826221626218003318148997098026760984979890735604886235579366151179902633599780219704972940973787779627187214820600711378147062807107415477216881995450009298835682993364253127198729921028933394998007481777845495549800359499063821742673341486001932676739117758511326979887173384380886759945068044586963056550301904849592803343925776231780412490046194265690038020601578717643217013358440087074497193162749325074213795395719242086356550131612083143511921105757232480997618205040040033431214354565070723894663424923815544872344789693821868754480474421219473006395816605122001721525612024488011456104772065652278718945319585979947756416188176691299142753740745804040947739200870778324361744713422301946827305150412674588645906944252552597200635084179540887801820487992136647142985145562917332185477392068546392684634764608840689721815453343274901412058395535023558578740230487917527850546727639856320887631330406665037053210039481733825744816835786837816677811316389099931487647009419474696473814316784346508688624819025515794022216925198843801329223826842426617433276079312077349309288335734790460299838454124130383599454128813478007563395319564909504680023648678831644668751320852921763279769634462764397970861869814806173305050157351886264550792220251382363226786264548154449713666486063208216219039615290001566404034008460909453753906954973218337907172238544445864349137260075817164089751417287098078408464023428506905375065241187318163010661594903050367768669238402899114999729195477821236268368010818227440671187781994974920433925539539525231693230499585419323037303122614671802796970454183579450783016969737245762145179205110203532417197398752162790277703733692562880010968977008555611783077154816033810422008319011139122139149460637050606043918056376478393268574502311480776394534598860245043693862598581351985607138167593126428072532309630038877809267135682042896321738272155702175762523632709208038825309180420928752990025317643148277938784176851624653797581342480523193348052902629702844466078759147955333258359492567274122393853721513522696308632077844671047118977982553122495440046428479501140735268708306966302250893912145247064094995349866972337992298651254250154407887305925738026507870660711393540856840600292054838481305463840816735916903433695509402665898113461554370680356086521673560208008013363382253691852798926685827871488832498765095885340156005319117066047436493864864548079124488391072655140464229107974353624384742063268284494260582783751446878199515503683347348628988005176107498330058387079836620889679781330566057587677994199828605195669078796022216746362307622408440661883587895430856104302457750058907085892783173017272883580809770717167516780327476539346225679901225065390326206373316403758649452439735347561213164841199431619916737208645896979496152648551402099953394332213271802955102006409819571587661001059762907214203402296505012879467683998581251955305552585145133822581785070457868303091027872556460626888211124854291537108987829920073419244655255119759406193653662731110232026786296068664174237340577329531622949491207339954561809214992648548082452140759262341908162633434394683937146934735324201880260973358487701478802538230385798175023694038987183138287523542261986407470321974059916492772592538474079746335426017630356784890641021973100628905912028004944534094957624515002224597011545807398683786019228479040415033355018347552899648158793854511651411485539129824808438341737420507481738231665295288439474897906588821383293346742858482301941674517709043934582941359659263441063480961499494783327833214282615358159697518892576921207023462636377341262272179444865768211968841113044160034963647561934310479912594115668139379901276278145402673490412858976220883978377758049366893084041098689116513839953139307052531922411530395354521313155165547946661364383877459425910084949343254927185363833931262642091818335625927967904970723807262738577342553544571819846095426944597922263725989783679755166093102922742233521147880517955358252366244853195956703138453979450900880767705907925934654409446936954748013348911641001659183695565867803191697376491509559218655223535328248939295414047180568482164887341537103732098506047341221594378069323144656241633339558483750662523124887327708280919621812407523630118744384263995930648294863651570916217188788561907519337908204756673999032694800413486602283103640858571395604862938817751636910513591384642981944748521343556769111543280703450903724680213014802497196396111828516747157935042134373305074421823910152906044606111360155785770829096584115526907703092655599293222832699230015124452446440807116801943457846467334796768398913812710633305286459014949285973190206630908618534625537324022609029466000579021119593399328636237870015834745828056936838953891108927919620011854530125462503788540614923042337405578556926758310883652377429385505935496285108810573730025100082851918950951014050359950467101484404564835733038332327577849069391914273007556715827043925682002445984215091828321820881069073072042797549202691199900065160671858148025346178299715353776595514134818371621173636656641937688035890160231209518915717979001246726794112043427607571981161218977650729599641309864647164561123676705818159689990041076348909681121593471270134257588649949106434695548979517451742847235633030931424558535275441078024528378481235130196278955762661863988323295764094146526554805545566381913983379804594493400121186904100865925110426841015307631831861831983094640369653165662960070417144684334170795144020015080377064972321770975924567832242836300927807709571256200786972669689433513305562413950833484934854830580573713525468227512443127451961444060555254534630571223009017876856555482299338826143535780403529784470428731438777290497052078588235401671052721104400546136136204070471728687776870405615062829860377939727641846431412776606659317716013450769562926597413230909402739985960910581626628218443000759955178302986605379018094586273838699120036237605895918748516070481651972106260215774466181738318342629456851553563572570533160613956999501889167633241610298970453578550394514327621692660081744112855807845691704882838753818040245407045800992811365759010222597954970975377209063387371983344458410134469507940367962263451890831695559324129459677472969193558703668045997836579703566056136540111241113328207484821647659605117355559688987048258110406555165515771175850116499091785875534812800218139824561223026423954365093563134437408522192504676871569416640891830416413840782201338614541638356790530668573989434714353702745227235859887977805713171847369037287911868303940407425020403508054032072277900202768936203781701876544231399480413165595419886379469419307996839347964098428070698113893634437396772133826098869234859061327343542315894131166434002482429741401776622192994758803336836982491119689567782987932667930195488839101084059186480492220206675049477350180482958736154035135635735821768197995555416180338681041630437163392959789241414156565267281169152389680338208680634141143494399765903558421166117376427847526328065120516426571697329740728605603232447016148524138629132299349550665550857167840332885304569081962354492098244394779569472721113728409759132849884142225499550659197066760162892633063206442820594293142146297598948954342209254072637970184900256370746361478610617978594161483905883111248845489137354574670673988779101492906905438304963891303875438656920854470160688208553071350091167397217427450439141936689535936451463809525863130988392374079370672051542902810164389070466566018135992712142776452411537047397790099114987797478299984456853878312898558295209611419148136486436656872890439308050289039046395805175622496320929182541840629124613362337176899758280556540309700706936890456048873637206737026109154566635668927806241588825564471773300469698721457390720529092858870199396095103457656702114539863533663791599983219473615169811583466962218905311256147123612508588944682759981015069934601808717772833453631122837315080506769654948877255037665141841182168776252805269091192709339202767786090012845901756585657296073923735642382878586012392406145396363495701528648746121160886651792592983769223477534893384494137685814503487292234589551492511113312605189212705216421996294445032995575149429201979190910342706368648215562983980332167230894614867467848318339428688884976944190874340525137087448361025792919087118315215783660435364996265268880375137188902020850129310168619818310085491805941337968876714160806723309692325392704648431384539046040966331712718052859970016504865952860736061714634358445537455261242638061196595456059429611322307561527426632559552725382248281867891627560188555863238024566197714740477016735788874836300387703894576238248479521356649607073740974399571226177088794713560751797691744475663299589656981143559052405247343588234464508922481983884672742320524803207940099484966348156630461155691478858038534583189896062235856522692022523776055303660807289191789814975673273002288492593801043995060720879238940591959866512588143750675548232314782448171321917644627909023531960391241564428284302051940143901141788221821365659814232176369716038607652245656751849404990544835167808543305702303620887294687163149986103250183435636483897068172592634195328050438949698918417599660913915215046143948763883725717357868574064551283159756694506226214520654144719180977328385354225277911506932353551237264840311753197176180711324046612607951592385838191442649322713073040892467780383589780375849339834955753428445898167790296096581704472420298581681686228523558261467942098218288519505538707463116555849265499525175452405694932668798321242869783362353556907360241121554660421141098920340600832597326999831924894166963687853295939096833341514292895868705240182315586482965339858648628617957304263032866071300594744655528853773727491267144521337766329797946385616129047276434158786522530002243795340257701852703903421858089937880952557701213422836961811592417178216792716630285409085593194580812046294756344634954283237085650471619867601918608529873839511778134745253791856222287577339768011169362877033622715301528896653174784463583929419412897430805044096594644129549758205664847454962039289213752773619255994121648149385400844126595321549922813356224787489245606230314799238741083809062329474446136256249776911954064077516088080769054686726985748722833262416163646458143454237005518102677024182602826482081474680194730897884935343930703886253072645732502198299752655652977931535921722630798022686049405907739543740289458338469216017420863652992559968292132160114244416625458231747851910466277745088737653896719398006823189423845177878986507532933929194016582053459296742362736119103013813922813768516019980687948694544339293563206359783945095419685858128403363111059965527922226673461507953807761617911789663294288800541737997753651071282124883167437547677364152652868143753517436672507701145463485041728490957526935927316554085583956664179562012165206716056369053997195327057770851270378114159142753874458231212769021407166195583049994423001183285333822444571767595739867340854794208191877081264294030705197291530302665330393953184680549940198025543413528064920150613726610802669047554800042714869736954056165719474727531627702694405764761071778184629944659256765482164782044174694603967568694245510233277585413631127439298191673962370356274037627044793975597246254810068334469482453389628085023102266408946323668407520901771355959103947781173047487555609811784640497837664641852781495761241559345043822986902051128272764467558255628977042457467397347504292116283191693604701735113429174355851499492828405672915230700189468047610458693069694226708638167988292109058700085760146871796162460512330705453035415843346222896687335102189667721691790476412352374751483001707296264563034703368345132348450906034949261551902628680042485431768352728147053241011297415943898521939407624379119063760341473781916953511665762365185290302216914200359947192738894122331995022531657177475966088043456371703535786128816805144665770094078095109061487011387126614975125765897818929980925294107814387115378294157676761664496262195195381401786577941091175559894214857547308091724472598222062579917335750428355020177018859991602684991725951053786262129271905059825643086126800730692609173908758951805309411995999059520390422187443232396124557047914892273288106475309762000205194224342453893887768221629230195027494397504766296253374381161648072688605061222538018401807118174738808410059834394542826799473032135576796365019505069270072622674354768511679652036762143182016744039654565538466376601324583317790951654711961134286276743695874155251145919944152201760736754757914317456648894749212436785576789590198501049609582996222940670343962067046918793666065358932554871748517092786457702840500316532568829443670507745163012221534251141566973609478722504541138959926576693901930100433945344830054217246304912145494202385567727378198478625206870805742712086767182539340720989691190605819563151920211700691143956479184178557845091618420723809989989215074907696660287121432338226311961942737078867593127846278287903807517182966516371716035107965874773214906061539849144129615202835677192517431020076022450553080660904557484141047295005909978531067633811406459392664371042690146653566103063121564104166463502913718958528428589144067529370161346944048418262521411940842984011351297422249195101259512574636221443677319987009444750267200520752853358665592359136695475674161346078873204825471269339502787251018849388950616091654236032503989382299691402992276445427421330035500955505722577535820865708904404294669251668846616402580970010565247098163915550345209269311944462984708970834301676675624842340631714699278057470543900600276904621392245848678078569733153911692469059279230572304806695993327956014215413893143043906340875496970410983797880735417865710611765647734366866228830048759370853046722339647355143408546980555546540211639681998428661828840019345829707547717441481638902082249387025254502666955649580437442499428316237219187939680563042254619261858063263312147580359011075139183947460759198910659679110800590517639913227592959483650560867482298283244651032765153146108134358933649881288872075700187899463544873361365686559442439168729590485750759344656230664825004447194310739216553730927287658577314617001757237664469596565447202252938459065264237935554472485828045062121448257499479375800268392560316842421219522423479775674706839673548417716265343360129738682511492426239803770947225891260528396326370391709982061353415869656910026482550908587628348278016699088491689605178750136667596206908263966778633076161750287947347555595582631438460786306766930702074324862144993527880341129023627269344162150281694193755275149976629972390176061551085222860996053676617999527948442434701668072435452130144005249939593137595855375081913131582027704572287906115913783491341331913117731559684512235787907533279350095903351206757166107906029651334334900118337804748356956818551623368350435270017518890669138269695688073318787551830636359059155845937385887234168560067551531233322829297363370927059277630627817320662479778306435641785329502653459425474983212637848954704425923699562746070121723798397229738998657011095111657026009495613787881852673729693261618409434587625427480194537071286020774576532007167859210233540677740009968285324452008924671535648425043932685051768038266269383041088669876121450412906069799201086862107188796779220319555108704091287687603089152183178543579319974961116527001976393284589386178105245435805253646335594238719542577477194799458861599931169973931259642015922698105527396953337518983014092932143561602102588388305718767267301287969115337244638373264008636686314316953128628784445376191248357130895621843876485129886579258114366876270142580069645542025807652143445865594481530041132013136671414465438718818368847364145902229481685194685161271997886823191182426718449131041880595104168222982256911400166674838473716772816669654484973640300560370472597604984153370045428346645288257152432093855040932432537474731238105395328071533581354668281341303582018474324818087403407144913575311207311131248013235822531918353228277835501173093168717137347450195976815536960856487574525321374826950892846968204672049894330370934797378812233543870113525057238956592981319604396695163347464669216569297589583665747774737154659130835004880534279619519955922025183289010684924006931414134214788127424575299774186972208774352026508788213129815796798054337208450322459868035540185639704913990103422988737793521197378555571840140644446923370022452676840212217821852820128741748969995141817318743134411195745977743693125639388575624656983728093841332957135102705896140740565640392454136561199733994786269921264457526120889236861500936699825373906517860826994344709561055331251207615258764794584311312322598935216051782593467116168596909047337798690248172633776448794185929484353541916510071872503031782085184424244328233624641313273621450745160914374148577981305800777362778736389359316743878995815363374531192119341445495999809256993282754417522451418722778212676135561076764450820950573337145215821253722260432631067189325566626192973670869444844538652519218723082314460710943784023937159514938539598719814677540098076044290553667480475847135308384068140425216167548079331226137924696364319600410374962594583865856828498223077694249967685999140720090387663331464765554716829585823589916670449111408556081318331093992759640655233757749405192381467450109738762310188765181799712800386960853191183433837601308195122370883890903981886831734263126833854167107362925501406496731795843483456169741127680070582181646630536145480256298670031411746284941703408975892413751005823008208326965886906606029438343742903048173474543529320524843840263251684462952757538221642302980286105391288802038163938489510838152717677144369391843835158437009992619263795785061403529974355642902418629918043350113568303673133832650587413444215277597943865549934361512965445716835108590997179557268699309150801253938978358624213636324898191873816874113557855002212023013871342897231217154195525757196973283075108467476073327597520293912943053584393347345370263091126652862137100146841291465065692335545880917563169842350452633861945772899983868740182487924202041196796468966072306899965158147844793575128939169535331505165091016607094065005342643783888273868972250016061083603084538308182926423174336573115623915208527708267596661193666042135511320687746040490423589231709122722358014727597513127139601854699723459296968283587153018519377140127951301967103205054326099938157111030270883138336318882664040100723325362634767553412168816718980746619568826010701534770253339324812574300989245995724428958143130871749483854102362763223060279850898689237052575038243952953867903820984168551945197518064653843605414084194657249334027112610121117237216191769475534300362605673354691812677618701841695483256619979592255747977452327305054656267186066381305763852208233837283892824315881872444613274401142208345902698608075379335586274104575670307443512542456916145951428139839836578995963012937880663626075786933982404195407337852680042445248448460592151625840320158802464054592426818827648777946934629831992257921856751880962295488844984583771389114429101862043279409357501845220555830772142597140724236135314450921261554624985970159356254721893212335053054375614954015172791295632574592363683645462867854400784708112067507686124558044675455565039802811615479051318781694293679815425590435520547103966496216936714569193064802877009992051275290956406719370677411780642275809506746438058753518360764725958138007516989351221508144294416321314849862689462172602194905594357749427351661414877585731489068645385466546988658681954844429022651697392183678250256993729228974883821689933734721923246253632250028878428972516443131625748069377365678209225833823043934021524654396021076478108549007466991782561594517113548355652358810505950134898590463202735406841472679502491768010963751073701051616017470266831562948309191294613412525735393961773378901614720752246966249665968148206429131662187392963180538600739511813671774466506321046204776849045671454567187052883680502822790138722758270258329046412312277487886529298363732756888212685863916505385354958070939389341763441680248930609495907721599528271607369414500972099500809946402104588315298432417976346960721616031738698812463922699550864556567704714490072758694955058655027154920224848707274490973814204461164301120836186521937006334860991072476442837494476830030574128972605105802148309922228940421667950239930894300825658097663915859313846870835998054662200255777115370778957958601375358838413523542461067906041677100552169913342300198099996253437788143155405197743441553485146212862758208677558737212531796397076075379038488881117894451267481934213637856686955291136186455008547695035737219835670183698700709054062094379958329453590515134000460108299620103146958409314170956455142439007577061498204308125919101840784834850839306659751548583344888175712471412116356807029648434963499688005540939120891669434595146066498080504632809016403748612551470658315456890920490543739017482768370431673792111583450700039432017076716124669153127616447098361742716043712032771786663424915920961715026004088571906733209229300157036504922269789113911971362051241800424577969632673180424863594603743021046640726398050596107569488632503057175713046925855681236201743109416169487758885132104052704912100161722381454674191554324204524083979582681623170394441667304071387636627283227909079051104327508849830790815586601454894177115096812163578861830388026260688040750141190738358690188667057041064507857833353848843099265872981497427247990557573702131736224094289107242090582758924636883473252497724834726119512584564795607462150257735872441255215098985972077729841226694600536127501330609047187993889707520875343178352979031381647253125911438733380376214672831448608578511648506351980028875529938465300377418592673395204957025941917450123398219973026718471619004183087293266207785695658523214597358340504285287955628330453387199708188328249364876686234918073694096294749937805481351084527326471527399127715892936426461009660103833064788781959935656358125770610759556050526449860135923201971687092453779407729713027302435637672580530779613396187058591615284678612167148362781058376676844865183195165147123991929378222493097744960222581920041421545733305040424044084394385413643491949147822875661537890462950747704511684514192489735761858231380311007228327278300176040029968288066302085561680510504725670909908850595261339101813807516222865784283581625745968545991396045181107855186356742151151364400197059743968158841709474468012614905038084487834619070964101814061030558169139824344435737844865089597512552213176040110687333355508591455211001203100364846597770174573587224889092886443514465025963373149167641793539695066232963613352337595516486443318047609464721849540990713762103213146840727714788654846024549804997292858012713950313945281106712433716729836512120153858232956285724829627557976319307760370513388105063610498849117082897131602017919102973347702136843473256437804296522370838919276739485872427551929228682451490509357536022518451125275993057386892064673130748169200612736223901352758174223716662219070708993557317985283030647121561921591222875540449772131051188264462583418141709389881383699854492141402111516526753108950988600397097915767107190981698109831610041186502131578610247822804693897548615207748735748248177686412006935549863323179017962124433048892630852366798249154660787259978086213984510873969474017006734784170890929440275316615520769696443099731322413530821487093220087406736737637702124921771243021346895403913807797677402249625871959253526760243861706746462813016886472345615333984264256549111151177743963155449954727385487816782934452516611379482714428842574033900361395091834377937379137710276057851607067851437522499422889419601799168809843783418771313615067700898532317079232781442582883277573929225046989251080609274430373652462555493735049176536683291601896839497001523430233583310175038531911507149284759763489350449509221651336518522450622621279432918223011840401018557713901945504845888391666190164707166266406158848001197558210154693945098271500896244044847216015955682633619584848576706774774093490459858726640046379567777924894952174033168594981224461103851713191895094045374634821742165652987306838527242872371677207851456903187450703792136732541808519044610929405561642512959283119286505429413831987789068102648018426671107776898518436844690627902745630750921474089823151729330491605837742039717422646686887117615482388378446654717010668687578532519777818102324725915185909504576466671751883619350123695499931339604343083417868311438690170294772043666701445593468612599733642447941455515316199944361314292133030687842679646812089920078993322195854259255363079067681024615694665606770528446105977879465167928370413764170466474326841204192693833151136878935563782469987261544039706630440712401864073783884675654139965071301897433075790551035739237849142418186896761675943931787353018163449974422426685937028412262897191738663474883702010321641460590373393588135031361366608025097149732110649148992051137026314603285340127925914043946417378061858530940219656483099993170725413557315817940166535672983424203698110443981644057265200050166929247056391415174812511389776212342669414307177717983685994973902731634845809882760555932723757697559862777459463928933653317996997261057945289067751175921982723412116446294067499545244942779127176523046259764225689743728187250288007345974444207679019771200748987667902452171182575985382295643146329698265888939988288570101660061595497859712785996288248123635473855993237792044265777882701657911574023196518852380506317037990892354709485244661723815895974900027213552295474232136844204844427382729334116599448451929321810581067653179795457092083647597390890501665005301454137261129297150449842260551273442812107590147588952800417001396404350303495934719596639881850831978388750845306095877656023969427986880788104279298794033246110758292728396294755784261400757292063689647148168368523821549577347311691524677079688645770965381864370831837796204059087219514900376477505773470017988528268032333316505435832059157535103573105403048990304051710201720636268151137094165065522583472226020547965232644902970232377115048815779190122910987304168590681219718569329069652303536624051662145794166390142961801218062331446848830112638761039555755467112357049862692490720916699148741765118728469187455735224134069683399857917227431404884665688292876125540028118263166625176475762104323874354112421568367486846115259985397799135109465729866610224928871122361271937251271037370282944673077881882811084891425611979476229368074646020449195932243700453173689912642747381502372477066894616955084120925156910256565314026173621552679142611787346665799342464212197802527618002627237807901264528293291287175573368466506766721884414145068350200425725270645453822615039879512409117699573709412786485341529363207110582030015480562753904149487376477422242045373413030363604433762290168773357143146903562912989054804299182625455040095583408929765450026795507132963339121511809958069513203364744355842731820566965582666788776095893050663911218997582404035725899217732429494455983679680328601038207881097170801221865237400900982789449344336992183214339425441145654791034142024694695098395328219006277707753681201347536595075387023330266454828508829029197451780540201010311146316576360125679721668672010441376966032313146834438678689194166869044483072121569313775825938109145492278780119431599527057015054923032590073351029985372004111350465127542084742144529024326833510100011071357768582969172911492611630503643467149328845328700607273475991899027927474591424310135930452081513010223031777294673644291757778834971845807620719499841231565529098979961902219036618541556338342661699609231770790166962684482197013692289435403385393096969586127350583583769460781723408006198728385258780970339015694030055234315179036521138715556864874001062447952145329326968570167559907898917657278690970264790367390755508239141582799715690035191689074613860618936818524617337677241043985920565702659024471079809162840494187100715209703794648335681135488328908919707119752996439445386790776520550149742473311240186054408540500499870832486283172114122877606811640819662384849743190041765018262806344794175951020385591502424487545639511958861497709509825352160830442894187967925549681504440827424158532869733553290741449690547457387411656301564815056799595642594575331596419949623837558728831971213203283431450769512921782725798059654999020415817322605104326488753676098310749568504979422549036324691349851752396546670043565737335654532744947973645315645751423607802258433868677935552350776829689780456679262895678315269080472083108804343273932547692414195082351938516127385335725579664770115291417520883215234246379276679398759943955380889295169361992706656505253654499617781482801515990168610815977174087925964626212117046821128597363970058536189243423703013286900635727266923726839558547803249616825848150596104497150740669543274012560520263988857655084533755160229443419095476692750780401991718627659057476837612495428893459372463922173614932019821128456730791863878006833332519406105137329158356714856732283291626103464673357375673472963738326238209621864741797899617439010223539478386788988797476247763677718158113718408641194430825445028800187149953677976053682379621302874658332421518453473869359156585830896562188934009178797885346952660596216123135212259028018275092463413196365090168273971754117452416814495363920435605359396731605018726805149046765711135789542649266349873928466265178079151918675665352853790085017065605467514733681032901756412299124813619653692141868350213313142991832580654982207527160262034071263350315131825310462916081625503811869484948964753918640612978341166880762885265651728493920111099990619663144743166151224552794876710710677639905785380701245805038780181189052906057189374517041254698864374184907989440920525863239378278721904227556841613785116619683271565318966315759000789699596668276421343463747716309495847738779228459862862849341062514516830877650156670767255934350295882838482036583472574456268503633092619047217369956859317641576197933046632703067376743490036700342817126503766995670223908010359014520816595647491382920724091854097788017642314638897396818488751814976137688890971561028573555191574693048910662441704718962504319997418775947016835482094565065549675994858162751054681098674097940515704232459443530836721886607007679164438628530418664068902404860184482325181764046797368605770627389007118621341847968336522675916890018624330202397160259129477597485943483660322472740548852763211156536537226213947002126294147869804046606205537638722319070454007466146461924979067897514607980653364850228893393660642928890316372599750171674360089891600847321643772652613962382780497631116204808834375208446072530992692104219174495061498118251912310627796453468584750878868116749176940660417803144864782801510997576439599304489724603314553464091913926797282271738256429976724491006164603091811172712109597423351848404359789823387909381404797674816229863424426848142133348140097706953743824048721226587244804714890531176636336969786071495955890472527948100956119019375205184798128820094533017864869706196683604841308479515781730418902540558666547283281840386052536252090281752179324956778787643264914729065576835835486518475743563324706462535049485471587873158545781070153415937400253596724476175485730668249990704850336826570312523401943941274777015472003199965760594733934120727343030410256422470426963756365469577181052057061623231518107173796116939379984842908124372845260738229490533658807599618098033496540112921660730140363699862970826301008163900212670857843442301815526556664116968476247831277691108296896928339119819928533017088410030943286626590767821051654147205762186759759432606254124606619201155573707661042616420043434445439018917722043395080413893038566451188426738772432102373884389493810380434169303920060115212836291925830800547816848699449993614707959908361643690147624948682490491698144867277335608857859061563419787075863361165278948544645444936620789431982966986535649056338073834657670848418196586631947349385098752191428486141974893090096198365145821381817510012811583887546361000499831931413183961361619027852504193021608971167311506339906567087894390239480441827738537873781229064598962515067854481403646461746862522569125267355309608419945057096696502970291352253340539616173724726622984565310727535565211800362402448981240297222118414833351367514684719370854050035082103460560449967842316210067803865519330458457853043098696850963033357796571935905870681414860276983595711835415754386735256266416599414947042479022097210801308489811915845935340794885424285948503036231375100758490107971857527122904718969915017967894924962804682878328495232040514122501785326189824382351545279039013284898578270664548005293680027531226608903683228900744313651048018123105675986270611881740262988922774765513137585274753230514517259779223244467253839777116582614976885098334796555769163392891353024025976380831251192032106413568744230259351890838136552877039623586605643918755658740142067482223705642998005154968448696253111226102080105379087658292200160015512472127318587327741606963494825522091505842008942274675629319670821954533684286867028729445229434082949197741245401005007728702508880570888547531722854460786657830034032092004870869039876463544959225891561141638106180065379595575000868154133377207436313777386556412261090323969940989013215286075683416672779481289881540035327876026280463726852165398437906728577731566930073986840849899870357808900693598013624552508171867166503679749178804596150421797890000643838932052952874118527426965876881849390337860234491085930165288556639533231848819889712476167161912578471423836649394779484263926350613801362699818458815127627089546499352107418012787228298195617092785611893258956589674363817320844075950588593765826452682192466752923686088567423330254274124321569550178970364804946110631122857197166185162755977499195406548007540878534343545615930611748416975956453669730029190900542721179363143908652131611769567318453908160972220883468815784516461061342357841562435491463879319903161376309516393375547528654100084731770311702971724627478447336725965231379124178424466786333373802503287870319438131995778362492856578612676113412150140837097730886119891536341925414268235437063247391146170815504827461383388189890375564862980545602249359294704608164999259636498399658369983143501051636493157906822233321070742910987862429617281569271121303412299613357764520785604114162310951648253127113764802456612799539545303362752811000259466691937917903659545947068632165357657547523288140152788611620584946898315481354479263182507410018782351095422402478179918669483473165682211730822773782701589713166348446688544756630633092182920269286994879191127718555524701315465376911548469679340878018579561093185064109717192805355793549052445872246039200079905515689458638521702488233212003682685987548668277204859316490089041093213395867098293768478003254954086967886451725823985460899464977446711247403255992343053260916947317836478939092644026346597069108264405658937848854016542640300405912922286258212324706972006643378198399421233719321388761719352947990776601956318164317091649819736933158972787042339269277775403843396755218501448378498921167035700038053342129795335122634088876953757986837414334858911297412464741353216744604092890274490339226628454411548918249786497724505551835270719948459398746085174515258301800725335392042066071633823753851655386778902870029711441198452985057913902481791627373619579321360740966838903681092733751612315208633833427050577076463107607587579455330444477153208959269210401529580786437484621961610987589240073792840871145738428879235545341505631863244986451977545584204799487376175234852389985131419187088067228931940570627847577065630042341483837162968910737146746160720308102911803943952651699871113826406852591341464617767440418584361927517378640674315672379963183563061603180530419508984875808317404835181415765875020194495673259174406250700651300793719735445644375620395903564832034644221478900258531851882446956640330517642150452701538706790081654046733570672304464540912836860456306606596771294541084489460233975192863140412503749831322223005567921953020667914981841442150528776649917076094386043618272593276890856057273215745671803520706503456250988114143524249475093217686805155066994383037685945500057779875813450356070381968795140556953464522160119032486635880363642829045943332546597205005184457689281399182825887585705010390638986841077693267316017451514053018010705083053185708795911871857652307662870168210261086217518529607036373249833531933672561933113980234786939767588548951827009817686172906052441076236826804192651414392971495157237961847572670298878494487928713555724999875107826865626625034190050603945580270066811677828166734327515834648406687164076796102115650686191954655783759927653066538793125710570482054503279924995584215244995781782732628888203704346260641794068731450362030176523380429402455843808364586714188777924316697733458011545168385851833567076232406967193459705492375171887529409509590714523442252229768331204009156065089524359633437536341953910490317155648487200190483000567867352269808254438924362153787592218581655435101682104625589913243226642369539809487569289029082950779338865558653853599818595409510356379499588071966782067358862161328418901200738187584467493323789663639949777836342932478975123414453183846203759361632585809004704984347992968862208404180316539773776023479279919338696173575206346244339087538441414705346779049671196316609224633532718824270561374453445871770016649497486985706408539899612365069972823469937938030166899542736213553496994471125810692093575517326224151602954397281993122909478524733763177974206584363323826112057437603291154668373186321827977711393376421031425246819100202620243211500580196864198103751443292806502291626461835085848999552148879507206810890340394709617667417993773503704330678423477120005830997557330638947909220333490877359109195969560807554246069638080467608641261457124606883076831555739846206077075952083517507669382062051516642223786971293047421961504632042810720955551711830721661452744213307640621355430994397376205617299877081429583136624947196223829207160135846084066387586280684393240085832983089718004467698541266784767848097503226480013763857728908244943179504728676981861953066288119792660160709928048684058852705049379604782622795285100136447674510580736144556723067439497588272045171763842405705637575727560585964068262322613922542808006200176557052315796787131459946421867815622481883705230978730334647478819646930603851836865602780395769913252266787742898183965356498599944232284260551236491849960395158353222584468547379663258973023862163304510551825648792481562272894727571210506244727464055156563089426192839749116713950900364086627437601951646290695390016383053894135858965635894576537935323487852883440177332571836267201931320468722805938459459316745024632987497962561945325690994444342570841614577135651175067070356351714397880017694994117479971425985550757933348135044048804538200821749346661887537835127818448497103255218822037031493047514345601464138587492148418844200504006777892669136284419963944649332135135063690493329071198225388815713175114086119300839648250071231005987902225229623165125438063327624897961979926785423467483783037524965514307506058177002788322850031339269240482593830440072295998196391794559022168268729088667533323630359501392635694710455402497436801833248004179811911997836904919676867777428406209553729893333331366311279151368864751144156665294946333683934509510245106786639230300390798390274399694456946316275064271937577084110138741488596269610789530102831141002408273736278520455365729684635102654385009913271517765748723561728487089530083123099131548435577932079633871572049788552951088413620681429044850756626706216356611793042838600356385086473039047610442440580274812153167135902930335832833758668059123859611879772210117553195927344912947910750488773367863401166246650538312361651211603400608606980342079301493340834317967108700042826989005148367124747780338436147732375084069755042762658447979230315937343452230787243088618488030843772511360555951219918006757027417033726639224143670429414044707709973688736909097257477495794651895697843651577627572816769596578630976423526857375458330502144981062543917492464692372594868195463694037887607168609526744202700791958157674744901901098052931876903193769666812469736233691966123994526963211294756383780415625159116195873396584257837280101859015015570102033001142544402384305843480376325624450257554923412346009059825100946309429359782092937290799026224937131153022942018211970567764022493389430863748625693419211123762093198141080748409749441924192947084058357195103990230613624194498759638820927681875806613535780753006394343475867114748392165770777372247584832870886230918141244350361947609621854616156594661412693966463041837919654098315344622657715678596950334265289959446939263803904274321227214553200384977745196458380002623338879614403094185246834074713774910144985738454258034509154335588047208277491436547471658687412303316659061871823348821185476611645904431464182613449928635870575714081456349615981241620337605255162665465711680467492364478468772341376219395469132420455185229873897295768545559397987951735119932013492749018639866043196426440294886020634618225745810937670842166314760993904705271802047574472271257528626137978165630667432617740223847654678378904652297081843036030210655007077116197228109190037864593464610784274747688952630488012052475474660615360655516667697522803987857980656503820472179206312306715600243342142402519194182844762030456733104753594529198276994819013298621651981403571878336471727553811806647426184614586635587180689493145343505411101914419979625174810541780479032568426903106393514145586988599566302182305741370848242576540386669216213162287125303548860703453236815834257143976327241103857123096167668497347154638881333011220558869371468475207909374159529687874364176199001194320782572751441049269816114634289674701768326788015315113690030374030029309242573923302236690296835969669795878626409208939892743597040790548391569059783505801401598872474191464318289578890643071156665512026099191381916872294560245715282537688116363279745682047636802304704256182249181691238812864664065729445101650449135127864697525048022028540118987610710061757264031967113545774538469036684699664005932772598255572650957136277421339655713732565792213388949276682621358878964193701045940531122615985114046393376093029250243805448078556193686435314120812163474490714501994739881463524596417353860682072608846963585022981376957387708373973324454404420840465427991224356220032257643117450971580976980239748810946244369649719239500517046889902496157848234833396214919421034506934351768769535973370430305464637894824448439212453339639065698941063550080838705989338061805410239109690283837855528697343218324705097936755141429361225927401300650975014392072312434160614574401633862292065361217919595601653319324857559508944908609972335851033727959888171688204667049237356202310521664503840123670981564091542538220917359871002552281837758872819013826260472468004174802836025115603785776166874681351414022840656574823220767297735407908959583324649739768740835104405192800755424562678283445901173148633920288485778789687166265671174970331794589283402129862222314052224737321132165551902160197266248998576702831105571366937258554903075492968261217112727009023707121115493715902727832828241567790149711384067896067565391427244933028790901889377691370383348250193935848642670747384646068607587392969759967348969472672865314944086648674320425750089521542097704096554654859691036308812439520024149587204549878399654748431226594312331872536576755867171771203062192364537284819448195638897457968679084872686948108201303511376186822811732351157315512315261686950141832519327993311090219727466805645456127995369129976539251275778755419301526912416729009184475832300405199281385690181450962723731460646323151064605773178363140330013461557297278813143144532622391003470282566388130867511105157756150083938623037089740733115239094170442823637138131579599431547197850368760844672814197727100702920233322996627779973601663667158451059471928641306849061425731563510125939039556629266461519841309860445486631699056687655633024377877828474507251350129909900723755142575991579080820247391682945352148297412923691950236065925258138105142000142314787263577180468646719615792893726033727619140135991372158865936060125069504241731463628146537310201932826412869833544967407837096323166331233452889167775838684963628973329481745470420684160309325776570949193032665316713862274360349561059098680627558267453492965039493842996409361510386030850568386630439446202591460133916180584675923785299642833059344204757190424364724518331896988499764992121102142329296797320142935768681093498512424691653856612577617737216582708895252580747527130220096903235565058106573363814873568239013349858043831161329314871858216207583553507234256631628648738178113476725667708831121538534147554248200266726070120522017576135004651004908584961369466543598490709142022234888525217282866962134526052302421661302525691826636367574567512803746838286167761662786288677143572510410392644574451417265646802584083131593256110723962808031577890339234197473133693260961097656036763200369797787676592989942845404874734963304822686999586713131106760806577457164458319667618754233468760013715768743413877488618449113655158258517751619538320582258206035366196968817717041527284689168907710496161872707302620860971068754391811189714880799360018552081578475720279985859210558222631836513580735270663731815125129006889321099086791915087366761613117824234268393212703509314742369873238961611035342576242447805977055481696018136894104274216318694797438596183225640194338282398267447957460957705586161848820841594158663746306761186225133057760471198719898209309248307186631669190936162281248125158344575051118834524081743841870436884973097800728635549246580666600483625385008736437488303507499219304270256965724272812322469501310453741341463695620392954765048166684137645178408338804113366855530097124233254526424334001846483115857480900874840197746630461831487947318059757886906986720046883573433363507255648498136163357699179334439836814546117057795894754734082151913060840780841693083406994337426680350277276303727669093912653727816048555888188598996311578582273350546415601581606585718910945540920607223236948012926027645556990797323057117722772030391177635283554947600326630102992402719282039808661115038010928102520735406579226088193226312231426350078389197117122606767419140155208843197862171779387963864704228981671756741720514158865239853039298518316898959640222715443610584102033417176915852094205475359770393722293585751664173781360772745622466836657578788525963142514068343749555053110893100515899412775095395751610131484874698173141114882090622387243483399347729422900038226175938840819231669775896427114542072410106884457679602491130320400670147870677621429982770174626158193985043432390855834458154000191287606924064217065136607814017765230098840450482507320405451576084948935195017252453427146870998879287070882254065239308206861776832629142942978597636166790723963599022865145725262987607140587076567103490942500623671437433824115162370185141184139590336603800866277057787857376858300027682144732230058393900878603887494147346892071042548757311448375680867462920430481060862596632869071188228527491880888936051183856621166540118365927635199892494310864176459681337927516976134192920459267565264268338429848139316806714088807216919175237495523987248029927249122797808277775847235457656113384178425313050790764986653198821049976083971288577629014529873660628521225548000464619152025483333285153163677116123857830920556388164685620887058755747237726911984443479934550340058948960170822065321749380296937464668763454005437835482294577201613985328940188594444143004760504760979275549703440399404784133754078246130302182036775608045695985210557971182785667085709598947318603511125238472724257917251259997377386776050998866325467784704004170217409213981592504811532192062088099910298008151565741291772768510927005903724516596434017852357044950443828759284191170570891483002840540619940446480994093517441806302740480548536707382752075069126830722808712456311437180790850306858690159110447870214743803874143516633941748024624411113218416794227545918258422867078134021175819522749067763088834583632309553547746018551952682521076002230971849289687954894589214613532481845452455863071517130867685701970180390804175994705806966302631420907403052090401050080324284449019307912339254122447012433758672491245414681021572025779738585422308689999400547061324905501306638899593702295382691278544306800747421115352340919555845693014594111303582675102150875223437910491670327003744124950246422526207591347234433858631575659788193195627601648721396907916227556018794817809897467956518648189063978839065275229755155118740644940839015957143864647783393853359915097061926800077135823987480484451068223822591460002115993538869745497254801861069103707099139082181596485619514512839832868764629470531018152033989078065915997619459900849326627912348408359765365942796174960577397617282705049405787463520814905438437106887219535822171427981288557402362086803877749351688803832612430037796276733124798363508394449191801232237526308568749173624239921385065553127665959897302737727938249456288258727033276087589111266188248104149580094967729875538427001201365714380256212919295599159394216666333894186857760597649493833158311583675533888028796457992737802869071469736511349081375463625889502052573804555660431045887645467031841995111287572632808088434197133738878825892663141791687217197908154469098595474884954205515653130022224183916994986647257830690430008949097001770350062569447218043547339435169581684928016582534599949040300241214626259956433094197878954010494680419952958391656245929533523324794185352391392836574185053711263162354936467630851861013166249051307697117356430371945177852287408815634613175602634170684878772605030487350570397338271390359229358451964668224820088710276228922777990252057953901952235889308676858150635173932099405069809708285549930111271092708837445731609762144752058890334709003780426624395714453449316311479571750231980283626815643039078209171160213678050650423501979220156373013637898514112157442939459046110406162356661877818520976916396122592586946393743621057231673642201560349225230442942406057284243985582693029296257988515402803397728625163184812086498623919092072035396410892109556831702935822740098035388272374444389277501973311686329783642780313268563192331881614108909778067610965298280625284566410717109858467364744963385168593663299099407878037231124900674647942081451127914227336675927558772822427430603094440113767787024491940786783404361748879900808812394359120368790577491947988474210561515944134416876747431388398088651079403038766374570169012248114440876343074111810930357567720188375453487680872587639856762008908542963558405071100743712156629537336951111922873377098353172813613735482623816639310477112322634290513604775878493405077483720559639295193026435762578390291001513615220384797475438943991880299824140722658011709305903101029716242108572815026753704072413557065928822067594846555928635283917216020157781334319672542020770925405577441212765584524235675006118552736621019748169841751986618572825625590066192440892821321831270669401426024081185777979917362489497971661799151848150913607306397900676013805630469596676943997602573765405600538194392933656861676219793377522450479599304686232807914272577832777599090820765982858572235408358529380793408432790868551885883797287898133560543891533244074558280507754756432936861183001542525670554751881836209030039014558906246935568884219097301995550110400687676623402519757310528850188278997333484348978081267618223206861120065230396837395770380409106575554240011928915682483476096534554912791172241617124027814960388186136048226469397973747907409561111874839831497732153601228747550498302554178961515827625315262056390618861431815752749252859465528415121461883398649474462499918841021789470226020920811910016010442226411571481749569370082979575664415604613746691787251056931118922125883616484373398445630830742757347814518977827072211701516941342119565401123757877807938947947418814541270581927307582034393443013277723683398624210501779061615201276592940366795514290931966218553070422414802793959040493671019724803627452432939468821433158958253623683522439718036691552699381160107995570600002033321273596350133385022783498010648732525608884907767970137063120992302228582939142510697733333565837288636213520716154068302977589012597875314945030583323773820166257522768414361427302613466046347024337292325359212002677342140689842981266012418806182497958310933980553385942562171849073368564182511907406065150512398568726575073249630602876067608246980438868851165055824856876905643314125607652917121236973500797055155234318179998834303515019422442844660162992353193764394455907196225379320712127312478333688747388479559138156026073424609664793919355930802880860559813887809086018549746805481397424320617597601061099664875250883326967292454350423806139739071752826473598031281693155773360127658251226975238268537258272206990829014049297110614773346702050908856632489339256420536602321532936675507731676809136507837983769763713967095062856861479116467457866758277709510895284483619634825521904052383660128898347410095997432028741828935512474734491342448151343063891843417112330562870978480908040565129705369464169342405375639215137743162875737815546402302023909398172571030023514854426187871557776598491819574723628358044761430170162979061532647445073698440269516277288115238261962756793998494352262322892228058589710663176506881729231023020367241830145087844430159897745742756108916893395177631448324662583650321995376271584135655200460470244753070565492223148433523235664248690881954024140393280478502863553119919834924650637442489649801599930796378789093973925281226320345853401694578521276604197539671240142037908592477253760157084615325536261538549891728772876704655187618185492543779479041036697080589089990067025148276617572453557774164750065287837471399814894675548850295555955089896423402578767230997959741768085569842060962117689612175165820294608954205799997560784430154934091770382453388861960038349302385640935293070746664728343501325763810994938156345529301341201535054239265957812247540415047191261214154922977654242418702885598169479459219964563198427394948763407962956799663763708503495904639096697187099968772130092044395540578361447615387767084222177175707956767809778552494119211772415189778893848929021721000865076824067654152274379855571078671841839499498872169428988608536845026283619329004734659891602261297715798102902902753169821364818385923635839843835076398445856331044242541860381799665903178744449882947332296351987870827708211336468546572285970723569444001448764925849609841347881332236930370335432806054675864860323796587926337361545959540941550827913391617033325432882611293156739998848231724122814026899518892050962518203232437623510895718839175213789051266707717295617413630520527987900898930636356807672356802477772639894580291647033571585283518748008501380841009455351512690791441594184943874425168273164029474038597934081554015447365805139946447951595716764328451712036832032224105400445494950515441746200911221582065673532129988271408108132001418678671362459808736196205193579804867211832703160399530113135112478275019169837906587197214940788732260454700184100961870696463761145886199094259971533495986500418605606547237064856410370339306056655807699541616412042429808142454753843872855544265827092421252876654193608704876288600386599396499536576521403106844750873810561304153221768573466071688179904206424853878918306564735995901813784460879251865861226742000697697965281313280631801345375227441868323128192476401276388773823928348812897200314936010973165109691890380269865603290967714188426923590821787737364510153534059672300622852645428798895427778909937961494040304012647425522220685712850819988149459890427437677494905101307499792390568776993682718947229222599707020691710938125260049044173043328442722817558348534766765580458370828578789751749438569892771880664020598054193280622350798466791333720199832210716539052699963811968692123386361356464580939246449820601225037818573592111401001803436179887060020977094402791430660754921224552868818747890520562141307056921618956527025820277310270784677759925802324223539782231737585730960011486794545591492564071254951448991418587089410457514552412594550553789965485180635805611724209324246326561157729708338597684976956666973225057273303889820032956541763386950814634533788620827594531085104240309192950994416731460026308082429351408546488649099400766621058742865215518195740149511254340388170645464244907738402307689692801065102222297373178832399028595141828843137722953408934023813699271594692844833383796113916644029305051594685854267023681426284882450362256393571406837416325927768217109271895944046407316119727181987253193287803717033256195712601012747100201598289033162512526885527601202535947941434069137334153890334386433543213313337933605514531640856911048766729862444812781682936187568612949940043446879148735095989303649736182977866830096459765739737911312456654341351777876883215523089758428388274874944607251429039663937821447839680272964348584888290275389839082825068206881744671880935826308217611039068995015785216537843386575580636797273442614350952873213699727032526314084002360791116469096747923640560736071534742881420460566980246488062026125744153431216541331642181831921562827895263279513665645458736518932182754342566140200500421868136402886146569721956416876357908729229942605970138391231209931820344216034314011004065681068905052270424383489811579147720555699264016590118992048972580591153768712780076666950349596018235530210433759975277290969307641801585967116543545010203492026680293559779313958729661328094142788536756667475069034175575675745834464649343191189721931240828381935935643701666407032308915861581820595033506304339939705390556223864234944952321959907884562683991322483792694019164038659695216529457587135237488282415387081278128732159914859729765003641692011982685533865283967371967767532137894624081558724027846084020841808333130741287804900767476070164456988186221237264665683132915253889476132278089908845239549467498920006931649642287965220652090844387081675780050346552845775197123110797247256076664377275709152468082986142832415043717580592982167627273743881201419104837927133905040842911694555218013820242341702487171029953525132236194398032278744016847762002672832179428272412879666068607608208040535148012691521499752424454875223817454990467183112476493163214803233266577646105400007324984866076104553204310148611660987141643136734756424381783671308472698749204279349300869441452866622753193680005047031768010798012240583677244859514299789118429030585893698976363794664176563446080134299081185103806310181238484448322293530461489962237324953104021991057984399213152087193882715447675680152626721307873535984808128805632143201149394051827153279264947362056612882442514446189339975880880263629477291055466543836533716245558394954818788830502503135742358417965609610063283268662564163050481799802414335588654654791522473374637341986598482097709107126178888117665674891766986385778109789604125912082859302682267186543693947609646659975918812043400150172281746513674713250801120578934212969151480563086922179021816322450623025848090521347375964093895391630383522307350236169670315653990891434467413020889281278184511201688161434941220074719933772600508176319331334309056195176315925998855730992545010835121643666301770245779387601548323569029328170619799067428061152326213276426746263383454996609306183010533679796698660306492399566931874002998425685418398277498785487791702047500228518861452182589701786926818766053588788187422602710756396415936904879138120496676100760572325031439640643992662531253228397531789613154088855085184236140313930028320510939563689458606910945276373892915455221103945933626916322151225204062426936995621628685029268903748153912812613303221279842596167571183243735459579953853389945189061687943600282242726510393244414092629791437149902647430693888240236406594692005148317448716684818524715209556366789907717824456672483762036602342503064767576795776433107147848386452101043270037595886356939044900632163834113979705220004386915095091681113889902074423435667273371739845550932191092491292349187166599960616000132309245551359124074111885277065395856646199839622744112356808570028289859466012145711560281785726425466321288604277741720436902556285109487409213812193070027433078367342783667329191212620590320728779442608360482101803406224089654657005148902674026072244600587291156257920640576318836468737922095058796846618148768299569052668001186930935216354804658312778346384448572786594603219938206268977144981289710713528342377371653149589540276292655742703698855277672204974665310264425189549482831226320069207305636220012006282787330193055734373756627233947423317247357839672092805300169183172206496606006918194026530417386981315086668019539087997821333222245326562051580900521020358555023105015253122391360754183833135548834990739179181729202102357740598947324667151442394829698306177790407552763960402929458500340596714181901029992343380126818098560775099247565949168982325044297415879455847361881947122086519006153239652397934394120326863918207368832936015323434537522355824034666475610828778734833599133438200362939474161144159053920943805840886023735024311939942008682251708697044257769064837716776299723536199755269490536359852083355753224571414321162443787650713969827332306453865469362012691865412161114544429670638607851012504427614933059745732388086981022789692742056133043888387628302340793454365448886500873804185078705190140516674909214129074898208567352677277198875860910785551813344190823850906689144647725547201517258424286221312533455222548956708926139660253693478662048180823128172245989272413573564440981192955517115928608033951807259658398019060905183215602830372625136586281644703470277590760829642779204676343760594283455744532750880113564311485138888943438414043901342536523095823056057723177712260912235705791036223707442326420767907679821072664059517733147227386355060673117327459092323841375302208485469008614393242397335922436510505779239629797324171457760254504936792335606704248171714891253281684559788639681580062913102031368303085767748498484308678282149396553343370323629457162339802930062798417843100392871675108093574419439285815700036353934810839144302872480168928546060342561417128749133150240990462998513051024742017082776167681153361677690102691601538165516079556477248097122999536907196844573413581116239360641536034579111354315284414092664549198768925610324673851468028716292525475791756673093665875394895800042049651615419781649435348192081588347961672833189633245676688137909103695326622078834869443126622613078739135802086196743846308423384337567059518118781560347925795080110946202139141907188873857281365332469052344120555526535674392200050423271514929630595759912175269663534126297583907153436258662212487345554765034083242727479067391502591680605671562060508588490789121277322144098203650154170857891950829296944400730819537824817148843846017218311861967014974453144181159127863465072669234653521656529934672024695632895646217622017525013542606982765651268329699229608426673105648244570773887949206153485500536533374354851526335945187671389654300560079324555954535849184179069287035531456886567878032337370484853279885657685289917342855316326191669588927580219069353181265105574879668850326281272430609093945716302443574366771850701009000876569869096211301168358854546273319570830162112970280876415956052285510683096328982331089089843377988143554322239490164505549648901653447290359546689636858517819891377997451924899015942360258080665009599617656293973852208349060747966505030485464095893235077977058985875051763184338518109729885001455797159635036939585641034803217460999106133540710979407934168593091640541991186243265813904555958591197096362763252104535239843889548279625312916413327959245315190556972042255844498967580235793264344789521420049230334912412398555771421618199392008637963378479027166004537058152297572148649325094041299153751869342964317143411811579839012364478946938056427801257385897904260046458471818807108042119234127031926790327863845815963590480910404918334761137926315427692365245590803987855074028187852181308083250456138425153863463211044727010008654125935459542108758267865701225990579298098295638684626735196361410136230084697841574336689859597036645698079288764378417642059494497650675108450160130518512222967898670046900708521409438127218305179135397613210422645455009276737431765984879566332820008792902200985074490097274175346119990762476188514081327457716659742063255660490108607910835399728814845758227774376408930375829963648743083341358510771924359170919019011250532725443522755010614202399240822764918794430940869926362592809792530467720711897166764252887943434160163996886393491246329006731359316124501833549114236617846175202882291196239063207107549155208688214059119624184895819474296871338746510516372587335631891946978637235748859677795780866969261258705464408394556006703285132227447775759093806019920703148556540284462866742770104227276431686135379152120617591806878539654927163715849862335215200646674076073270298128002532962560549627895325161956666976881935810209810045901629504275462665970424898613685390783496708028845738436641259001968866089171923517067642465706036228155778163840934451962232600151617847047974639088918583330851046369220733164858004842324667087921417220700172805296232983739952280526800414307731857705703617560524931034091954725432883299126219657324160060069134064516439435652049357973308337033735365999876072358494627739441135231196272572375925571183500589889274841401222847445393514794800843099424601641840422198364263765614825468074427600621212920418980688516764254740865410380725876681073104413168208525465724214218565749268450852236615643553497451544989741789329304989281990891830598079286421999484248647042434256261985628881931227800194136846474989230717810255827902353151570959166079050724765002462209185957147150770828696510435043105327260029830982588782964409495677014598436815230893594402766489602173519640112282840845881420838698693019993786089449886071394647302587907533908772097006394613112257624890180186568042937770706979534408103947162796665270481466237032463588141825247674508075245511511138640590045165528053785737544063203500791081393766592685347343714494369714911954155661187832194351366365047390996305379994541779377710773024419850529244999841046137301504873611154088474276349498707846129729524251467895529890252195298534347509412459264302431785731689869492158098115709566053222961683356053922800015097508378147139312469080017594557616974017171211259331448366664461360430426643056856034212901600414968017868843149634293412573292473116756355210184341492717757477549079770230804960976966438545846546645163588626990866857626963468820551625319212021999583755683803425430400543534712180493880978829070310072754010270688153511052410292596057271910591128375635812968664740713681503738250727877911387150626525108805119214276642539710212559584575533698467499485056998184028917082697217189068297098457252657571152341500714617809021692481360133421324733646507053222201823962611625722749912912744051499119938569284062824153837667740504813820395343025444346036408511573607255362708327362388212360130470195826721051916676494893645045924653029153761719774635494182384523279665556619032864240296465991854386242237535112796709892278912231227205439071955947536656271688436035632038382438037599493897914741457282031544001943780428746960121957927073899872398538580639180111744804456805310943477427491467758633639007842112691019390725709764293552743842060608142611850482634985987308981071039601956986268381811796866559225116607260047045727867453590832563662629201769519823018806727303344998047509176036178085866633075875591966520377528156583538544703399466645672263286059675125458022956927792083547952288746613931055494700644874449161806213308830843701457356705619776835215759522143035506134979521493337207815205861514316353750305598848336002360283203825023704430125030765925915544316928607241853029065677706344915053766723690750427919739471351337939436289048016070429847161589187553224863428233561978177198646711424970138287216405513435082313941440508432846604900158089213497082037573583092888815769213215200512985899944715562686347893970262422412286209703218237175027902965382686187718828563785120028998320267105182720931827205490822633550881780034957275833320501450673575060200088494170817902822711860973673344905114034610623249907135353025075660511607634250259894158070960621421860626256569785322472876887715658128695188274414478811773545249389117831619493252969907832135401229987092982384548877091403399641071484023701516720208807711397972877558991616948713085687201342016931404362605544752484224219141930305291851647840812075559050779516070652414258380933866264459742522462438481620526222598283199132025979581635676226721858662631727624470572973852271068676188036284805012565253369475341529124611825011837123274941890783639325287264393734223254902569975826280809812576715319612976146357121099232216195178335473245172723438944298499355054000442086076533799233475528689948025709789873212216361258551571301971261899466225741056569219317339212742452683178000591704591873167081855358099741669580380047868615064189646249216489838117825719497602661239647010963745893469447145669605115566798428747517281235498246443622719351154780869525214823093056152980401144756704482225593693624083579842201812073351915470880455346679894480703537086478378449997646233392925225195712178298135686963736859196912893204201556429621821122456605321349117996656355706791479744349691095189557778319209890436433088703284487731342061211680009984292612751859066847985927288812082244786392718171673556216189272192701508301662996945629365108662400039651613569723410847104498674906582539815140651247576308689661910458616556572255309917454479898632416707832352284381524133468032696930429504283239378286768286538662368913438613539019879083856934336399376422331264850478114480132155774715263194747726110577085990791755696694055714622479804898201269322498335122828132080873469788250233587243145928147551334395846477267680018095783755582351756609800551913279354032874451374560985098708990846863819158704164918719231985233874891047234850211847818265697163158192982630269791631919501460753050208925767781400181851420056889135299505097533247703929129855704499367143785395624358762574726487788946251924940047550499325774513741950699459378144621972780333696923702046517067303796560923277291272461819739475539826015307576834740990086910740492909009935262046493530668870359923690336661161658525152526190948911761850161082213600840633109284686268666239629958925215420704205562734213962284019760309174240430205985295360814307292557593532901989732585585265172311815842378062414505860937797409523045529912432894417888744230903567927752629693505896022451577692406653160905858556864819620381741429818783303753945606027953805714581917417876131924197570205627329110638368853224796495852490723461714037738767233656977818948132187911262934387755004014828747171859261544394321067705521529523289292287031613206276438123856981070914007140045313645944575899685809590698371847660847874477332845335769475094650634827597404402674997527807669970031632102502084813276767163066303533920602901470016068447465448759369982616152921009004305889673538770715703107135657415995757945156719996650178906449888561011365622991661864655215587762348231878124316282363840417854890458551708624484700395000517046594957356033068892884197179976425875867531034969347390714012140493533472243489632428057754519696413704744283076662736121141953766895688366806438704382437874643601475551057989673894270008506313976997478719350795970029554158798458703882523921431508994502456968897055967694322535338874066002657203644733450798443684008559246652035903969120314343270831803602961719364176608668872041782883797286403063530833034435957559398107377826254450436679442833936057808272546855103879395078040039826508808347286747724979399992374092980807325926261279639209606082857168479301503296506458781185852914541270274706014133453958164214557860598467622157307248206562608558596133705099274578717822279431364966708033778033148281304913492676179844467376359398239209615438604534191747525340652467114559818243460618751720263657644629189457662114311017278297044905435578457157120218172805717088154346784091350418670035836441745887262523021256534152591018774903995181293132543114578157648217722757722126137629182128844832942709753700026133342004410691040155409374807684210375538604495770805322874317589468051373919324675527212719465553664510942506738218018958847894487261237380034640747501112697085696290412921427094568283496758915230256958256947194855526150411135703476248221267689064581321759223321359202730302887820917901914654204665015887583423628435592232358778406120307305715943582931720247623084487082220941156471658690965549658870726807614674627455261100998763079450959817218595788104615388847040209100999737654074691104871599992673991030280125234935035232584073604956920891723777723115462727348472501359615424970421116809571213667816859966234686372643136477544806675297112834860638973418078499733491116006229944672367751363020709356788689479959472736787376083119668180891809553696119681953099148508148566516545864131941337299491108612429278422765166938664626875218822753201050924653992373705805333702488332629495172627941766366890972048379094014556757877744247653986668571437336317706873385801631743543488733760294808975563375589732480680497898857409966045327440608659606239047045491862446162876092539290291417026978594607683280675916928386137798592615527204469989365817890961838856421662316918484563074294863235748775922544900762661217639530711443807417499847274179097243487272103524980136675381982835385526600146807578426948149802075948660415712379797381151231023679085944014446880505608077530855559096752707453953752869322643870896148233959539080117726915632965704781078582930399788961679282124791568815028946431462965461425544316259258543634091240626990479451904581939415290317511786152079844834803998668490689986171354071123605904371131815410361359733607419939275196855750301450713690395873288927731068242270371201120383109416686992284369580927788972750104961268562465728757962421947805438161072314366644527832213223000894218126735639435008533379023016646843309582879114782019448329945695696478905254053209881471356770605209380100804015230097578765227215640235457250598575942959646580156174739867579993469322671166460788101129357608559530123786941836971182093606127173590961794255582282164574386422616285631869399285149547415794083313526250196086877915952118581620063310723167108975235744396402804770645708727070894485319856911956272673838885449161439150523949605112713204510692066926400629327869779576863419125604526969814116004088155638470677098985058452083426408259232676902944316127636942133605349931353974491097050919858670213081067086241934792264571925425876680269341771046036512327130452353190268277030607851321564171722743997418760103449127106179892383254991822312772689646037305128091665773113139158687461077939243839031610706028724553722032413124357642309175387153700318303365057638819946733293832699777265348866324948149125494920549918240337629151196347585313492031212939525638166370932284014084012196818659850348235318803001035395535833149708836797061829525288657522142319369826664752550964475506130700849098819681632958826899172455514769612247238203410839773459416457843446196868325352027125568433224810906820457742964446340451267480161788652740414498355498043850870470869415182087222200541882926533790637179268049031892281349926257471289805002691316297622546397463366686279216225246477484132452500434031355349061429319034523469732050382558702000099353978409641329918687436934448833027611022467026057662055622047702106160179807864774303977231023739058521302528422339702589267943324315313225043037159625756736383743138949047763121653938950510257598469059198048868184677008597266481342519564498660463634642877493783197569979928707407287423880416529450034559947966002214233724599532889813020899868155303488692958158550783299383458292364943168281225207479933274219681964570146290846507298322864800757751266124225593015036872543413386532385421704344199522892462619329082821376101882770769590845043784062859607547640683496170668224696549933843458319765128270129791859008792219213813689578607872124900716588962863503527308456333153236209923779228553615281980243427446541296033669243191498164975506914813994385563926116873092647132279207756326250364271284188375701876915330132498269874822193440278711839667911777111405728197533716099489555618166849719166315288726337618473902224515050189011148409289954493968791188624234793380517674935349424774084398355333009021996032596477503678690891495334924564860523226986461548332372352758297335917215522230662907421086747623726650675838861687228950812606585167515231380198392319990276880758429200688606585259035970591341454630812905504212465286495336842384029871570498053733017998397115323777596922494538213076535507050961698415659797497544850789022616543000693148166392062855629394416502868035843763481298228594028796885482486949059250667643238834749585195891383707809158458228792657552059371410849177185105758203696037454476529089826040789781968269539001224617777541247355898820633505942927287289634413269303082205676229973191991648179783906349927371226612970249929095637639193607718758590184812777748757011875441487586005482974621854843108595855655239080509955475688526676195026685505341903929193432778940926253560341342493539035735027624198570627539421466470484309097162365096856458305780820147291271123550768650716576231761842604986802778251707588666593180204305822827764496184730849704608956021445135025233111129791798887199279250611060345507179878450734296827734036610081092138062226919370916138306930685401388697154126745561097485387156719906776536201652708112492068509004740967521361013182103188860753309626825942698914725880412950777626215291015427731269157651996308210146893404916820404936515516814791460127926934822100766335164975124392385340678631744240554654103434358146823331776668347213142308890918818777314208902275551155570792776518281653507257215499742283962861179327858841024350428311797343120809040813734533377242606700582704472864049487421451283288413027477790306976899294648616467092862836542704503372851960591134861341166227543084694567036830208777844906900288400477085745162418615941662900712060938246285015031101477673057322456312286876573523897954780928722556511664314583011001320456345850035827691317822664490089963029884148375279293033166119934708097223657224641995553018033247302527983428751224847142804460158689310496693967127804999516098415927834102374221380988667014986281765592747639458385256562337243356089075795958061856181119997890300837053286427216658913485249875565818490357180780855917092726975412271180081831841406388146070223596459452737761432815344884187619947009207280529634747376769489720323780539124378559848850096154824260026061749647183290229721708573594624711222751485396427846059916134656555275409751753933859398971908855020770339895154647579558171565536793456159594275754550093411172461912179846388335417853736794239711829514955578618094256643481150555872274170559540903390948137039600367335796249308252092280296019863639011930175770691238158525762403538298485654360913594688645558513536850564280703301671712884021481391230964496721680935486234829330873431364969522396995319497131246051505032245947365266111402890771634624785086519070864457383753405009115440501900362979381959119434656070503860926282934859236609580807184627937389542281433745514861123846839531123051274242288237928265155794854734902631779218456918831432281605358111721695308839198188065090541584747780644564921495283156205448068647664170780269083402415467217044661632596091760863480395333073527694384190057423482047575628175198227384845666354901981771603467599494475552377626079330269581058186224263385514018841761048711152237150127018950726338941798154533709048151693666986913578448300639537113968541929435916754214107013098466433976760762428116740700082088901370376379841649454434367772403221259665389835767213652003586268839477664470007554597845605095882972737155425081553692363312659234826573371716882594702257200592835837019443569766978454774685628659159845581500751534796469707184000003801449631214874061202502369540388719933300550919953299495861223843450630506854719535663664739026349338841726605483547837856735279367479218935691678227519583143490323705346453869435403401147789633376663751668380872866527223502173897271624300084829864989886896865578560067251332096687373376049884097269128842896074537766310304220391433410311342390679018732230825557014175248881714044737988278670606516279682386123876044758336315495382379059006914821251660646990724315269638149075404507656832579621010232667293591617156232474563847102525046629776338805721663855026256227596385117106608008638348421281660541338944017098296347202816093724536709900369153851728232092096436109218573436095231850462690814517991787142456110253279744573412189426514807042556263874901417175625881213660897167242202021892355999410071025182168814117603136711244223482112781617521033026516169404944255911527721961380676504433240907052554294979015687493005941922878396435144894855338360233930774651972854957273651619898861929891031031701338057761358937585239721597365621482836467788159055266584260187348523372171772984846231712921930138005442358420330334683371246614964528056553776219440324784259175105962208940306973482346216937580735093473611531600718556788111302933872633145170687722433225695986357113671649363964423808727376900882370172691520735206589929581375967717165562338342354395722608346023741657553868469683780363541164984218145258279224073880969490683764891133083544870068427119613263272501939802104057665523269267248961763337029886991536239959971422324239191349609013955547275689837479239936435730185007550365154035457672659440530353761003949693231356091055677972005175252901578238306814101197299986376903576075627002757234714868702695046513830453337875092244761370681448862266512344823909913703734191428558963557359814431096893932284481146588886309724509846921076457018460008187001332575792514428482665240451311395648257080461984157048883034678782825358389853832926714536253230310727963528408661507048655128126636298938995059176506060981426205987262837472826229176550915075427968525457051457911690312494278632130378010505954311166021640862075592806472258804025255762148828835575160334803594919048437262179072911326069801625646196294232282204229138792964173440432433277156114310190360889668067498646738341417663225706303815107826257363416902419510200132662527267523419033315311101333948735101739987554088061242747889841467323474977622670703831910552073720672779005396570498176337376099182723157389950679143903143990243838422357719562160311811034307719539896536072907037252056716482939403212830488057475463831104682237474221537556960669728646519481635562302739863927417055491088781103728787629304483328415546880471231302561019062883191238049192710160554312332077330040255580258959594680399016817025794368347474186202409881843874037513625564187992778601862316916610359370518264525276750546419866326480462011782355727274883198812571405472233513364423187636171072201250876043703689945693852858922532827683794756307318066615988883708905925787040364494225781423324702614984103983683260931864642646171242683435529022613754076939108730999641248788523201666927333264510247942075099903675045366773828161641944003369422161780480284750016953522359507624930385355217524745785242829440414247466837445064448316899251933504799912729654752277807584032276856267897229012121265487560164667667375491409612834718157452505207080353025269262254312724068169457463644007181897891264100881947584059125907860557018184742683695151728123327007262929580676357366237492979539149522330079402831611292871821460949594920603169412515886979308947165120394125882165759759220443062583641108687286753237521709836679126702070588292926714970453671094773957772054030290582552709422998809317289761175652428054945826800970165267046758756406484870366351443754197096636890818838489903799728851711777935338799530679298364568682259865896937428555337113843255718874142164362928542823293986969243014484347283610318016167257678966326856436704644499957588762255457405027351468586467680886724320032540211103255052380781410228579238005999628650426410142772209276857004965126307102337660443115809748973372105164533229023020200865284431285145721122654785590107084751351424667651840958610602092619550902843125233601661058268064111123196614085123206624503069394039390786023022873631083133555094544083448362965533771818412742543318787112009232451648558990633846772424558936697786284121828121932845725783186546208259300580179142664697457811052923637646223865347464329294733658915555661616204075247711266941775032285377728399568083696961907499712103311605097159594613091706816051690589207777882533354894616251666352984478651694229458255562620089164583615733921079073538176509193065368959222654173921758309155380859414678808008892481127420811513419388407274847278405125303743336925543988821734612386450956384522203774117296678965907697483790624746388050532391358419761890456560686182039114368570912544153596241073667645957391783304985510185689568937063855344242819342551806818951964187638730604081326724129922557250138776314839864696830957782176470349932951475665296913210574912084335502082843187006852359892195697638549800446870709190798289814814725421735688327928162402476124892078346462416180389739507737514402254664936719895488643803099600194853108485510355431191223136329830267522546170994662223462760961082671333482648899867730167304559614582154918545948672141672021434603300351025397655365222761628999994413384240726097075434406592136479721252539536333797714877561004481486256428845323085132576106181932184645229835840646681642968348213652970576974731456295092715698375710741357060133296433654787814377411337676662631149906477950535066326009854419995202042594544370870660310446738489973573527226590451572785098483454949185426921018060781196559767437296766865895612356790272260114240984853469114712982794137207646635205093095466158568053478917347542212828246943720909726994244363790718023847327072528187234028624248958993210758255631100630388489283514838356564024369130563582184056874478247588542959038358397345001737141274691802684474796420461131488646824144575535557173168326884885568936217429095686015573331437903672311816302738008246613278853246597356171929298876836483365246033958356726822651410440126012110336385866866879703266577868253371877815516738801599381809661383239597559380646933672725467952811753120444443957218395710140972060896915058872867710942669485230290314908849417492085414215294017724335649437881949246496979345619663869219519882025064988559723350480966979256903696876056416492884761250964274731500276124221122359087756474974771513405192136632101152377431412598556595670250210568617872275448899510379853991903815124982948932401193080185761238436603769707659332325954180130795494359215563389740239916511073423263515800143176821786737359011665788424006868913716565842821868359706387296302678988657379990196945260862826772978631400109551593675617225947755868745066857083867457481431461101000079459722135189185494817286382635270016950744366248629814643991311875213272412078713407541510388290054102063498539722935244102762331634851362047686913725508803949894254662937780698059323846544954148510293242627236993064557072716573560432347876925848022102323323505649293371763975631296968289568097863714663083554009271743028369869924475236468161591944477329753206149580949700541259505815506264588711189564832573700206898454984628711476379887047035342770140620995317522814886724035148381444940347206590344030795922144336783769531931743574730742160217896627754991418416362408996432609347202682725649526893149809196240794854248529866803317096026483953790537707757473437407090802666744627515594299678121261951026205901088984877240531377647486881331075011910806848905572330660739862992546686704028089959435751539479293664412215286845015067760871581257740771057743076246103481582319287411217852181298904827551526204552325854685099145119028380576124035845100762415811437462418088366085382962409188477364138579457931809148306299315853779618619775136027979086781569086653980122829079168812406800051191076539549012180684934568916557010963483279537934704685176777792962249293660529618070768971400950777573190922072096154084756104256893360497797832910574978579858512009276056930387070985986799856439015487127338569820355217160127237605109734476117630478577220367482438028427896827599907288630681899286704357781339690124549375754206983668676011271776145256989301936716827158594656602061813996412881899264885390627858675379924789752088393263204444757646282713950413479398929069869721619529433628014891618695883996113291328135808052749049060000878723496426047881036870435023757477883284920670481241933052111929936985832782511899765165162684594032467680156564475678895303838512507757683078278119179322033370952118645987837879916709255446771143553168229076820235903865212348442963674804078308285849406532175931942046500558696901361837803446111272053908404750573663294403617256734383766231444401973790352736619827620992967066678510682737335857132922011451834444994401978163694697304303557930331790525461763843198281711403120838938269221910245468189693117892733146037617776105354318211155340436068718045776150947341047499534061018503433558727686603350539455966523438099198016520149338916495153849331328111721277351251078116139778773635635659427113367399789566256667043005859849021984729041283327187179510819975504055919854595353112219319733623928848650010130086555238532930002437909723228852139522023084008797416275759087794377018473593017899410362686709230438594177258818952997794853011469086488886803453453322912070429580307632962336887874421663263470380106447573252376827890909765709396396066345221405802388860851122207876679908971479932219135496585933771014790089471713913208246610745420568712585796479296347397391889152393275264862553966308388383283027977653189957320727471844038247984643506543216759299397273201486432526278411486340890759214544039782137096245465433803030592884215236741081907338046986302698549610156398497298319423570808653008294363910221756020930982267949875965011709125825393308739962356703963598388937834060888304945569076088700822347699728308121503637686683146135674224188570001177536097814485819141650179233882419337385990296428189570629266498529453665904297634401260803799734579237268235448110735517158106130288172439769748392227681010766093301376777347734758465422530292538385309854748670548788394914580721431209229683839095448631287796348342918673314241603539164854375657392503798114120141285983879769817105753433686857087857485189668663974220938153172752167131728559531377697250755384310491795833264412146669854157049124625173688543113488638333415705880558816338376684731987087893019885615632302319038471508975450883841805820575869095783044599430958503653365267622109405209316080801600319294004883522281049850535567669903549356559763862833045899108051369981694738847491655826577487903121933375124716527368990159461746212580032765299615041145925903569264580238836801375806339569521667312846917268414222477221789829035288839704994530668854886487260504614367486231139834290992038088959271494360393152109082673910423120131109885705909053129991558095411210277976245309342160256920047965144807191425289916231068111929989611439782441831503506817885329115463509123348124817183939460447605208455604825920839545828074637071000971025290259673958741079592581043425832093972785199963285188442635432542458371173666499088069863150168804318575016313694983399292404379842597693004597255799785160557522751287253348294121719388017504772218080310422407989928182243364935362703297997356346838308881823382176934650140136532293089239249399024317208326010830096618318852400233907354535409444501804376438188030084658552188215801270267290498799153419818109755652136563553723111414004609351528423195367184813228818840922613140542250142574670670250748149316440998004990028204205684531356183678469051850977356007490550982241864392612816567738255374505806850259300131326317494739039832802761619196077012591359936397990477260385644995284890165523659893364464103317730288455698146593838856747511836538256122578163500429518658728715127171311435678959949766754904241925125644096105129998941125360633370508393198739419218675453359038228247164395024506902686421833429749181295028458402415694632031749248800488924885401861672792768458865928554368894350115545910238148885371856581122682682941008867278929283124013406360723345815902347216490196445211683793675606163476484223573425379032228915085763068394972045411292957084587548244039824872571548216512840881820264018672862216710201830351632566008038599954155930862609585809475005915321836464315566242103628438705211151960506331367973344793374651193637932839586144965968919101577071507021178499754821073712876677833075262311258860181868243307125779837281403730846636180199954841675039006176941958881657232527215844218319236837226031352820475516773197448007778849393850946601766463520952429989591967293669068544630145613242806934224314007551177537040952941449065692814440731434820422216361153933595554592628758371352553086268763571411262190391317126304053046791302171738365779605956323261068921984022374188422553895557065657834066908498979474230213490296416934621480607269108496139598447842096829245076240312364428397955248711433004126072519318230906584118646353031925673797812303284566854530589814938416463909978785608316201509464459128650133050965258305672909897546686921281597416702545442396710274937157675487627210829697007289203010600654063420141533793438970204878221658269442997227698330719422347638368222921842297093733217569733785151136486243700713895283715091692631427543381601353964130814741995233638907465967138656855803256660390839704190931909805048776937662058711238618466119223032466326109705703056831116415384876898192977255101174408235280274960614309963106806055756578942558604772463234080748039171554249075442414305745934987716861307059572413334766914533961623957558409453247616216103614389677753161505661347742201623393264657045006643429144240760911203612437961441780629145296571295088565095921111979723666173667724008771009839563424669861784246305109292412950631424174636420963850222787218240889739691145906628793159187642508288197696226909897096562292525827662552021394321803013118488513105446272672196870919925518845979717603626025303399847901559136484043162230589437930937733195728517707375295714579502413718916240384235897865036196628648276959205031609645413555187164514324315950053589005404144474466178545278055947747371824545868503637625186079308581592936938141036983642272092155888119345908757410151571039917693984117731558533609360757137887048827281658469685267499150860920891912900941352945516558547090767001158380174183863909506071363787835091408129707044979345914190162076929190133692497021130070711171226829206434164666464770635412597692753710061225135651273223069074327286402087226975921236737693629838233898510606321379757889477083319104393091059259140930662086015869602213326777338339623214785026446992170870684344991796741361756831756945631142853923359690140382408235762875384526694579615574312216735942090606455686795777835911911282754267516090376577226906875394260638037298708915560627865865566011379526755222853114788313133766227158805620189017470131848666277228781719586207341013439372686672585593975799427603165769711240874684763347915171153075069298764638035749135006055956883607373102448795991487648468615680704808323474501223047217672817102635429922385231761838202443867461107730629733507986667516405608772902716056380428528307199469342669810181991969029787010702089612749662766742599873641243758697064620980127535859790480027501606845711221403930711934900070008827241906697949882908930367458572676865766736276215007511507516893146475584931084492101782255948551848569735376131747578814670901091807195226664886267680142796820418339334936404445659958534581086797791010877543811438259207693214529882400049116063874196101668215979175083115343538057236142190041618423994115981493866955584033547189192303879635118601682000162455411767138497285488602903025282289591754055422430925555460054989220766223632982015594912419251557031773370033662025706046913271859014117171044674981219803307706705520151308606594266237815189723343230411093430442425009882813896468399391336629848755429466642949221072863356601016638679807380458013966915945594670587091377638515366018689642592495915857093374560590580174352148039052920680461913971109675069860184981109944575569174311891734433945519266076818510222521454070656975290118487263416240145378548284131788278121083624706310792419719901651758803217468851337889816903594666396843668011834128263017594434939321050761565666886193108523471329241444160953785455793992415251799088708542905039835881276391636331902988760112236472221020750835069421857374895755681446718600005005050077973819664900523522602314787470878576653027973285952623994946211342990316894966211822150875091310884217005414212790650387511786294405941388585184314020872577406594311668718387176674905042876384188011388646985710915579886403382583008091372454382094677401622328076328363647039648643830426612965319712076237112202646874370616071634708541434505803016052170584595233394096894971970216789083750511482321387724870348931548045888038955793596946894725343006504907399586112433967284606449372213151456050195993675448001047794938082084040346424181057494699429399496565817111626437028134901064804289821605466393610960805143127695106002178890036737357346038182197033805935110885677286132727915710029015085989655932382803362353910377899192413977931781017984515369828832854983715118928969843150270606989634266698193026573757541562715618946121394240150812354756209756373010713617029159232206813070093916445627879880187728688617541801767834460386277788878166594389113352202440005226052561548894010510697732504947177984368340702907846507326975533115445596894275085772723941604107388781454766897017711448376411560707413751638742576189099840880900482346432524250197541312530399318970679340513686909119427649141074141768680623997085882235222523295068977713837656247373405317686176444298717832867485624707697540707822642616771722264744941585334841417243152009000647019579597615449736857719238690438299414699909202268181464884971036535514140389183384268382266944183531590493258733839682295511608521532321139785564945005639073739172337898792110731720845882485327768838116585836660238146740392403362666421664000143533256417131589326366003612105693028923122700035607076797788753216687279012663051761204235259015706319506057467084388252478717511902223203968419105300081949008221273335226957479324651279990195884502673699379203895879703838324631774882176338797922450793018713329677498987258646525202291572918710303489999952518954521765541954288953789722623887054058835610018549710961415178129674950324615373039297322372165246380358673328533903195344924927445003578464146930605365965745924746105105284354112362706298689719008324142769614749763975592862941241365310548839882397241838092990113012410493542902371730631119694838732595815881826447403007781873964796298123093556863920234672213054838737066756809687543230126623780721746284044186459137178638905105161636961026451847282673217086383643399067754357376216327077038242509818738376711907439950399464710362113854093783362994580588269619842815886183524351049893980480642784644947265942638514382106827423603384126235666533859846147390266799191950795056849556856462548960252393651440724882184177064403804255024879517907650419407328067015028643718227445462830573809654508202154898092081202323136579839819178168973156789910266054444225605576686363191286208927718314824771885294098207707526546225351279787074061064689053299842181149703658879650411393549333561013005257845474878220728106295582626562373247499017431665867999488484440104987319199196850646356303481494375021317934455019000789243639442975098846372492505708437646625554083826067406163580630405616324251974262523584498219068786274494867403227383193291676758522185481106337036534550262132525828741367279042224182303683173681092782880647897205659793069283022890857284191976221031321575117968724631688253146822626543559756171197287923823373030018238205252653553063182619667257662500369091690691705382174576529077484134905703029242758390750223942409929199705588034878410225409417833858359465483877748725082241362661146424503904409288947035197358103003001620941122640865062470231702797021935875675482416729518822118092402960626698632779387964694226124836540315781419434761418921448135646244596668986296528114368192577637545045648725762554748948621348133658620490180815528697356785798026413582495076944963787737556409615272861744729565611311577995371525978640488009197784758593057075872964570865193176931260117015774684344006922820478174672110710974785973094796258498799551372003922516464193880473100155937855243974492584691840116104402639144518087136520770858435817886464785498122586606196929186980738747169539118642528370160315032153464513270012083356776638032859450401170349275766715767937674279323628955291029272374188980931866487513755104871763923603374629385692827443564418123223028188871540999954787774897767651719439552110408046275999725990984819796991631624640460972620586155135404929640986020103348941120023297101016267029909048862065563477450990076928255975349803667694430073763880066213689983936469794073417495893200127731263302630034769193435896124706794032513719769911146677143678297288056005592441310240862851825397150226342907943172847629215715487304173651314974268447892929989507037426244560492566001977969788400609596413655837501935424162066911490754677586754191516923731320075150812737959968165001721142014413355924305789971268754039547653760497898277313206227862873410045402744336269951107349680416806667742666379357265716369205980237512388885319742526454089209148585801532405556857063098749930351133814332524131819885723127708850015693556750322779183557053811622752645837291529573274900564541545601555536135630194406153107789865001714026475783829162682417908047004860313020118378281128535635083863748530089109063026408373818783729813828153214169655697303569532922461572004966719434159574724927583493019247894238181808334673495623900628547724561636756471812731411648976346341113378381780881116695454209551434167217969048871511321783801283455572672344066309432982294292896232990770324850023041133835652438990915539394552685949071411282228023380433526741433458289351035707564825450230140796596414405282876059684495865027252603589683642888853643758616021694893326769964367834487718133841415068491053412809619181793878099541094750083166469599553185173584951947068460062924659289934989679199991844053014591505909481088086593549220839704603925206829013304269019030396472779668477112511841434839016578185910593949132565570216642841767559781497839933806116177668410678518707022341834061217695251290764738308729190572754459779736370659298925048745481716480578666845609040743571948265743620414414952324081347578255450069724844578262683539207032427113805236740711401372387122175761672528061671609298087712474459684944033174775984828321960745460152789118848424331061808932530476203836963837403322778126438945520378537938912900771862046738253607186404747757417929999685467200250397091882102857912503798520625544118933625841175489502838469961295387467482012036385806798994204708002523969609910180526810872995339288376758002743642002777158333481246817602482389947710961851532557302001702634700413273399360824121983283364161747500186814720003612961358883037718131546014727741797451477072404810289594039824687028368836019287251563353376758207446999864444867428694082133183056617547525250162238844249989881710002132279268791859590625263429885695173256929158274751259043703146619940583338302994233359499704587001863088004951365254621308051975842018533486588600785519188596868023444788822868210157647500443217455039973326352694840644047518621690062316525089270349688656299766441697852896603203649662543640587589746428274019879588748676189761479313366364541521257745054973057762346405824723041235077520763533759285298554622622672650115853780951733351938943566219903963809982002946205714560184741392939158892580522061240059955590116857560498166060491343855027679837736477990358676120861081022286571380292794136680193872818869849156153418478802984540574151812226507240756410518054705413556274609564122103684420213524527271124875166512538677009819872143505228064869364894713296283276499264038511098267686928017951955658686193320783825155158544299782273519507310227924923299445452648255723522059779360595093948921954622045644677732621776492695928371204966892121503472381768614018696183936397324352660755445088036397387334695503531086392738026522384758972143406286019305275648498492619001768690889078037620929074109533859220374917865328307216162186918874259227552403959831366829840566410879508111428503552809759592130100784014291912562796241354251331110904244597645519059641336801689005634399437293971501851595044082052388695285132686953432958537093862291643218699530830542847132053194186617283673381120939426206814331162501059668295782613906051426795788699334910635941960809918141814433605711811785488180331200782459802506889717190902892066004222255209219655088361222294640329640549904255945269324588908552620069029047919340630680844113321187662035155145313125026823833802259300376824140699873484869982162342216198677553027776844789338900688019458436324713815296995063371484270419010813735429539778377958545622673833643217141036159636753874925071853606778472678153592776370423539026544161640954372062434767992372788066817436604484782548132209509861930657029394992683009135411920284252674756437270218585220892800917144182877160365922136806971041748780349621662637818229482296644356872199787428433023189043631748423298738281015055063389667760341767346670832867387124802592526726566699307859024987199713418014182701715620867184320140472049095319422426637950362963042853796456300466822205690293811174677446534669777386000196540271825726282237718279088758422725689850169238468575761921776115776200187394492384172074869310033039033249778979175157615624284079541431837052465837771398248276934032646860111428600541998880130219809743863262675124081324211165601858601761366652279062859211960504348660267646781280894483190291457621447857863477493124045987545739077449309611526794903817692625888178819404434108769610722671434869333424947642391094970613360620972330355785822501967752501892314137281617097195817019879261218463252724198749521208021024923345597681129765877889559163935858435082336677568754319771331736352027905440435493414910077259953132242390471050504908814385912597239875226010164555857703927042382778910840373119618685884100605143968293462278484077610954377710053233721880271063192343967672454497815562282048837607994308990991446644988618068386552779846566196203139171279843602644099421271593951012422295143066722605288873460369482580300491477099344139548000257184334770952365706481449692567342182654114617043769917966949755538595599518067843256659735527615566593894759900974993540205641184892356901493679652974941244243295851567304636979747152007088675504446882869780015057832055044768083154752254171980964326733029718901760980707654528921847056228375851633246913106056128762758697653805022321837923843712229552614130979332129959884550800774592714157384263973617247564430607489078403036390040641838075182229924411663167738558696736680194833435887006220734781945956445841958483082324361448517513328442730569493801504319421534820091674739980834936316399508465552241309714216418559054370953171218515757463037928925584940376963674855235631904676343047189557919640279377423445179450513858528987459181582939348811160540062953283446275691495050441073183225836580204408688718916145900220589525717241329841683107792442846138534886566327853375155063151784419773950689669438658458587231159824580628797674581245726172812471288419958195677733843207274185201220685580370712968589265007514799603394790469132228737442577549862742092359651361471509955823834248081608153997809841850308863394785524231358304163124331780234451143231281657752214126994954643284685382852521951090006218967410844494390008436660431731748339189002356220200630699436992999914514976452517069733258994434321930533886944190615779156349250067770946203885909952273507116375353934835914403987162150134008038985963710321880891104686897085981720460620937072362363855319190959864081633102130012693080272620547469347329395824840350978867728727981106567431728214602824538946648303330106422651468541143960497733770962578102698362844739456140514120579826094376308967434246649911524893886364346918403209923939802765457296593391608594048115987029088932018705159386353986054207314281141229414501879486414705121932942700387295594104922301665267354338865616994563885615125813197555116804729856254564833934285515770077997120266548954646729279292968946838729330157918295082635130431210419644558443147624307320023207016202095014121728255406669907011572910352246280210766251964560562734739667311250789109804072915289728684303006389867162088312750318240510650910303123342906270613154102904260768783052239848540244269061464223941675815417962829474447632892020659681876295135268503373968372198589379978176334410554559951932908558227273637387790485402050474023345723743042268154474929050531629988076659942028199450313110433596197799815990788636578386405702192079257567943702885095685481381573247562616127758584200814337029295781566968447391570435170107597547475270715422498593588058857766121195714797895038439149093776315466949481597013372384022131600092539855377734858891955799205303089445234682641998981929416140617315808585187939345774218743782382494011610652367543230202266002814651178301529361828988172535095769995953756368506638895109301771771653059512319742578375885442433618926891863912447777450745006496976883134935820031657120253752733404960326554585038672614328934655605507418246440176417486814177848784969139484243905784831536247304873048350966019797069931133477246886974849859939464399965819788869606605343149499020510197805549165071115642897220723226704489349823698095207277223834269718558093274701599193533506885112881949200664921606393701484396442535966577111445521584401132952458191598998735266826187319936733705080416717237045790067906928076255863662715078291341738600929036174269011982636851202428493324627542694750113413818927968958794815193855699473741745616335294556564635379616297573948916964841108176701456103205659706807250341935048952188120052496680771128765891707467755922857647756808723707592447381315142151271403730714548889774513549492755170712539382151477358090983607997130965464200087225980600634973049953179409395098826997202162834219537735850808454385477715421463185941534893170400181045846810286165762695566728779350167836072709125025479553669145922265984222930477505066245169588608364358666904414615586706471978060124865735832154165428747426803434190489000016274074219011101447989345291325878001215751546350137367011438793438607729634345121024542404418117237251528962834533442801719126958126922811709326560545732303078540047430076670293924641684036958174418945172486240428287901087280516034109281100560483263429048439172914596616236316089636680908600716470979775442703628175392996306064673504813053264142503800945288480346429508385025401249968784684640876518337661876664788916239357401234736051930740170748907305229638164359729967523972647519378026705946985944890570660897966996677177684913516142849596808955111491531697662634841248473086208418155512899223544571603730393271702103554780826285258454561619586206808754539245626974919576487632894231291047095972278605980367968019007770614901706728648957028467223017454960805907914600126024565992946405743618803248328454067534388232355613637974298463081132524758539474154884999358094659885767800889385565999925822390297431489940486405595200064894309881576064949662301631297760521884000934597158426200024351724824899482897523520797845539204573338256997069378546251976759848231290850652158057972867901031784186352901235913619863749299783038698643571159289777762185334491186561249765095295513932872929652283938454021185357777609351390575920904307332783639183115213345483572478030748681384112981856891112767073573225665515802086306568987441396002888965762691164478681886934630608736167286554794869103813257970465926918188582596367530514550738775815561852265134320541068378127777910045745591852588129508685909675517784798551084135120495734181788358948357495299386777097377039185360655503623049356212771571928146666615973893609594414407359128731926958591039507751121164481898449017707811193358078757364376124312703149807968555014779914959658309505429907629419717805715751665666181858412747726722001467144493705739598876096920263992868056896707272012421329189189037305820254062215572064790609880531982461698514467507874494823921759095630936135660505193897712433640863168837067370233273472189303948336196362598936719016835118449850360712700152955206213094205013560060832510254832553286693129080249090324346643399029674285806298019800861112538881173431518346395147463931403993076845734638562312002989141423939927255010326179508035272760400801547022985856734046201158536332844868979925711274698092138467454906478306629084468470363836469070138604695303599288033220047825900650678715161311872648021742008046608509688225407128883487639152053200084935127196068882000752641736110169340019572739063708305920090133968527046466593106587533142899726056723230650016313587116307287372919056876429032075178945758154779818167308537692802951874038846936271438517561025790022957835405625274772053711058139025143390897588200760390430315920183575798761193468627271805249986036402729886461244705035066553111397383118159458643525585374173606621898110132186455773551201683413549332300207314078487282751690515979483628718544226452847962034436593212694592789657904305737471656984866743906178282093855974741229648042948929882700948643670622216333424219339671479991839072607145754221198737428469733403322480822407651874542648505323030888827939141720277961031363281867984541310573608441035023138138480993720329436698842118943481999009896275063771219704208087920318566820946143798295881140957149104073112258222041993896908996625139044309233254158966020209520533663189929616928838013289779311892211781456838872889614308293059136668752434011261512949540902830928384328834578747072217570641263597028663725644695743115809137229588687115933236080568960493872317801626723021093690631858851712315536093160745253234738513176781346328615809958780001090054417278324429450570655958115557843516271604744163271316329383115671482202974705836207840213060177061727022254055695250599413089885324257676122079976684653905627684644014154870947786444167498325478546920824777440900383125344454043207667766459590424955249526248840174520293382042456555381761054994968014085608634731202748016982453539997803285579831199325920453880791772192056653587726119047118625847326740360379095214262314918299111630987466651954453001836202933866712072528901156707866057378301515845527161538500004256755276282218424599248314673791462269384546371218573524563143159935890408373726529765948757503205428672278310572946684891783869911373274384067511934183266754897673857298987520657486846451566184547992993174770477745734732855101715781113996402903854537189616716761139358907717309717996916103424486807991762291231949294443676777981787518499622825621177739312623195673264846515237039545220201768633384689961048642901238770084841001515025370290489535550887372614971806840947638252144141775661255318509524626866087514974477545631620818990890152301448287157074290096305871286642131618993174464301433945267221077285547514785499509646042897717919378825601856976025698943973953591090451327738949009924402696638278328543979430326938545487420679638539845119338551326781160884475043602270323115947415464287192311894683814036785599646304689785801015987462637754810008717904860045711868211350905155438674708153522269547879179386501257800344495596911782042519958871198181476270247453670846350070892451071603394299566653314335942611396262805564803510649409881939008419140191186481897425275825763476269210185834612962947606696960099349815321482310229318979222523639538143477912104800728026487962691873435080493087716762020690159916040650898375285119256451073053356865163162933163334635101546490753311675914086475663574761897140282894040973294103021217591519862725874858878282895949411745461032327199369130371246501637981393745345007933628681354533620341773077437212378183106418044221867937243338148146937984317471989401454054496790842718944072168951911892227087885527009250134849597837582501492702896944297867798763969723314289565666372054734379883514295738985927562558421017661607633297746222646236856566758642427978256026298959446160161647956202096507894368643702589843750468150544634885189586880874140348739175250360644256992135708699907939124299503103803352435188723960973782402606359554718480127568594734488818734930750131882208961105629565101375801056388253075208252270574210124517012622302229151063948228246789593727303964204181904886460687089594063172284844395736246807089095393157235696309064025727597275907058272616915449289456949441245518035282831011371860715414446310242125695871774790007419805847505014520362859110914064438041420444410746289931446079178144393400308411660085761668408895730636736617370682281603019090163166275697533819708583834920904674762303657862155040953619884563391596728411613080646640964618047760874716370244691055134468406174467955120937337147341851321077493656500125553289672380188873154503883982953570179994105290629092449419238073519992112798423225838852009124602487961096978791727473749718959471246545522202494594952582629371218704529266997390486927279071008140334975877034542845064777984365197650785401972495015484476556346092901123193792181961086495094240918292100968948800937532856689312693532162918238225904974066911154252608800977109508454490103088251580988638379831707572390798420626123889359696976329571574684011000358619279621248302747837829807520461571704128772759382602642950118791067495011917837461307166514020521798115211784495665792354541050124161109276548307451429409289487670790350333480941114183348865676560083349027053076179640815435773929593718298433949392970061897926396842974519082514699915091036599125339242387605949759339581816813679973213594525233125120730937481019315042165603741277000463541927175834813259919228069740762636705275911454266660821543213851948740044737261524948640486671400385295188293948962587426447150404872216966629383992481284475137371999251413728945230691386345329478086894498228383768485182974444771503238599017999019430070545967572063493094325456647556612919718984672104615005427001095561211613199336884162680001745110650993515892592618392147459349652325224285764912751251341865299976181294982951073051804910868407470073511530921049901621939737304459700123531598914149183005099158471363897695231119776961457539191167274540015271835620035272448259040586048065049714247927284706980894097787359462200476128021159295564416704566915354969511851255475804647868488409281211087094033885040968003802131275374986396600698069988783637663004490408333224076537741713668567831254290496585042163933277564172944857540987779000640131086727795447600471845925022973881468357555777348436337546937747207465453289094412068717589942544046098983647241007605886656343234494952906081048428916034195252860507081186988040878628461621468981595240075388054263391010239228536380572791434215366973646875462244048208882400605994617577085438506971563129773515573068617661349736534435549435882831315905960761042527112985391938584291037817500971820330501027604079262033654224436037996588140100732663148719628309808082275779181305202243522720877367776292115357627642114450143624326081629878157345037349860814689766352917541411787084417863540554087968692705486473520869495465968078316359908221067586676399038096328235968636621694790052727185194999540794634574732292511454878909910412761368006534324382626156933644038943686048884397799978107867431965287204380283449193489022386697577274938746602137614274918308322120928084015168784465497712424508633473762663092077990525419719005078819152586016364538011502051040503958988433984168055551070792885516248407327872858271685435236809500769835727745779994293291466866303018972009919941196819015488933137417247844912089832931984927747475286188106104541421205620193987561114355762871564451035093744611400943748002776175596186474147155302869980839151151558905385897200248690214843126828293739546391120952795389232603270533165566671579487651534832936956855805047795845045754973651839101033918519091084246442377511571204763583309621049564832471122288450173515955250353124272939783650989481245047259597131997762766965864599206461265092750470502332868864248048980573468310819013819540266681841645389377079294529842885237325440931771848908975623082811874313596849967047113351298671555368614550145475893956267155435024631132835354538078528675798933089879093671780446192979549566730813629625989256866241053739557444517448272201500923626100715834313330915278787882351451200452004244502752098054217211579076830643111585738643110765180299030919172382653744491804144783188088307985901696207988599639501495649169683078884325398539177884148445236199391750600420237374160896564724657602703971012403124842887063873429481421085944069302542096506311377442588106987684783879666852110627373143154532878723233566038720896253638919598169780209506334017701145851139013481659455081566699631818456250927799254370964654036220907079294798496268649738529491900669690123415444752315418024692259606522866036335072760757630184083711532131710426394249462738638228442471431922002655234856020436781853610301281604941603084593963683276140392232976918510674059557211775837036646578872663000243370744820549195052618027977292819764575545820915408346420744111425495245009191820534642801382112493224624804932020939466631842781941372485357775633546252792846805935868525607497585415802505214466071760230572800210634458703138298787158628089012722256721452174440978721544148883126818744476778016647172236326253001584637415450981137591326301122958570863706175197069593507197034842182422395797835387375407091684201596306364728022345518706862691193944222878844060878089809968015773110326608834683220774925528371786377063025324640304354599488351235632957966878687361366432696822105072500377789721034981426623315355795038213362801512117996165875207061989768018628263087005799364116530594549183002976578732426400602867848654786459311415112225263399084196814473034329849849903023231660262108844182151702016705081888859914665920611966555748233522398263846989934938258001418451851040730451332242760757248190471228000361635705729765236254686892438289252358252923460473996097303455259024090562604837818975631284850661974325535809841981974679996153792238166814907319717250620277482389044042436910329706484464196478743615398093787749169405501821781136291662590688812621996931490081057584460692839740789139911230505089665322659450830528964327259166690392735049358017941428819532860382588186386028550025922916663303900393720286152461183761863766611643199076480383053494349498635228055553043909211334208201997072921983531844413288831901764646540929787614848023104144391336586104636864816179871398693488666912200292596276659932567074397634960696249498669667042788053052837562125347141040186756790934782046852719967853217261922337713569658449212505142522298778877586601047607155356085615002857233401494428419307178614702231656099613695754800062596717188142649818745554109464708966067394935917655092130172466260561691813336621189687578959198477256836027376707051738478144103191430445638232503484480337081091043102670268427097961370690051123686370763285762592877403771728617404520448984670674472612974173022684115168244297569031322184109293245949863835533471222692326398864389351757601667866552560296955552275369625493693638381448440878693659761489883443495529318433790734940888235904146688261707592887822949943251519219492963991289362588381497916246270710850443985057800030591811225128898375996581800425448937062431019885267486149694800958321190764478659107807931080068105003994570103109755653113833425345374853565103132053006805793256982256520220574008186276786401102956103219794158480431911037594464706416538973239220829391406663288022489072258840533126094840733318015691773640391389254988070962912329040195284955645399912327471444640101147873731639490548279521224485750370914788297050194275212512002077133948075277766725863992985255365346440686663679220911362375176921783366327299582903675737513657356597573526076169229805425251991003564501655633563906843624772692604911902464806366795448030532457017650158353199116034134164995658784348856565992141955204944596166904868345640008329769923142456708411018557592353197138014257226729204868144918737953601232361076385875813759936056445225711673889043115196207677443590411286794084711900405907603629916495241032963826649596457686853212879198229976374248979116361813486958489442715016039200112976832007812564664165436820324257755540497495769423389186544343709768905804012029209086012922012369961371323559624645594752517923425414044465542310860016876840820777550263930828004644665886968232071112597248771239017034594348712058866616150382242843287082104839091299706638964415410183300192875512405483170624710301754662213853073626439752706169652667856650814797059547732544757275152988489337596231479760036465544786546707719038633806540850518353569942362206327416989882210009741528341887256396208229501662778184617707116652617195326708277464539508313849443849885698102719645336789303543865026380314122499994857827475266948073136009995978131485788173334960165480563311456154126807325525813327281780985516595572320759081727129890626782162733065058453453580098942194357284682844543329084210695889593842439356571519836760793544359398338030431978521184596144245855518545055130484065123448603867289605036120487180636524876163221623915542278676699311456305688125057486908796655236259089166488007083531743169032681780337894655923907967025078370539496074183228123643360745679723811599640961076625688703333610398598170562537018271524900346972487154395607777933315045968891766965794769124315411730656996988850154591465426155792370289827494798331773205287558274570973416918346718318097106877747750192584044584455592923617550637782503900323577376788172238146124722159332073275973501226824621169701449681198028758346522511583685043746257452631218640889690604103699569880252535368654266255947662784841431988332399316285977181728313868548084794074782635634487366542355956210484855979661074608161833402435406572988218325556994768487502388744535399455329387113002270074093024168441457618545824009759509581905520821437869542805330196236820678203652030516898595687562329358923630636926330839452379121399913734717301815947368989061441928252286765739601440150506832090711276769581230087148605879167847255186244218182105691099469621737212158000782461508952262850196738326258475345286567864644208725450042367816636515238374533984576210726207260667697939949387980708708582751646914292094231730220546282390444289947452149862850754238597260221120229230213721162042936704173776144532586019207604840719813424904036991920455539442376531386447629319994586824363174978665104448317994865407199619046293820355243433257303142812437926157393094451682529674593918522953611107328339345286967691792304894254669085370450237282730646717131588558844220250176156977037518843034303844536566354711165947633747187361100294995692665343890985093957450385495030470283003677060527282827645507990867826275033784141487412769519202532586681838094606136078057884740609998261411282158977165864766925880421517387522659814806416723119033498373494002882960490386056174236869624140284129270379228611841943983003032716616195672998377963464416009568021106600242762065052652874546938515681756787229460734887600976466588834480771525069198461089887059131569219998143832295249532250516827832810132241481245916346596909582906465362069544575546951773341307567954744424972600454672427940164866834602997056341783724192404346115353436081667251127336324710951521155386744884898555037218366593546352144997901397309607198590072585199884411027265950141513465061585026619654996509466593315703225183486246526777179790159503447136328258157534165676641186997060929509688891398150726281601087084906052459046410669354609679945540844542635764291540128033744301312389621726476566775058520735693914581091497092100347892155195772188795438785227308966566903633706157778603452028347023991183515998140188430864030897750912613081935949350899768631208703854410504725261863615030861358282034088925986996242342828889192638812993373789704924998124841349174412679659755962964444397628223152171740225874563844269975272205636183268410190415381732216689738763655618385884184726225860616092903328662412174826255030530934342533458265631796914948797371027439423957751789726322194313201214893949453950145761510147210823408585741016166157149892997682097662701840462617674686280776408279563852110356556986038257143141926171052224959887078764657203052969567858657087003060555785882286789286596493754865301899767272901117241526564076248217627618620488015869489631863052752422140406429066175553383451728061361268807603719963013976982943428591150885930986753921457506492769425034150133157053243986040720181640074364447234168320171622175389320479176418108247328039003478417571162513450680798091887906478442666695885026984544932490358351155936816899758011950620703096814361240101098357990040111226718289229327830536405051601731730123488268087218774225035320313104403557130767146360636643735167362577222685178169839029897477741335843093831958838489031342714931937304708235357972580131672864338810760830305811207622662516377827090320291387666995266165836816800822117229878971188804944114445528595185164499072002724107992257061307716215638461501476061247986795315382715982452768793239643597368119036543917404497243233550550833256348039477210144993115825752334500583798286875313609032733998254816797369619050686283012011460171170981473800579271625474255793056958221019656144669157443140296470038953777750368128120209639833951419017585488966256564133910690292240135133453791435025047706195840333033742167806441733691282530878566168833103669924372316822447115955843660036708272222800927664570662614006676359389251194829058186697807905965902345486618826601901573521800779374464043280428761619080110886635926843836972684309530771619628816513279906382123651024129969361660231416774068779504195059311823944244788263927681765494717087820353322376252580458444843078887735989525108516538902227532361667886313033845263038974220499311416379895840436592514021789328076370502704221048400214227146240757800353230435139067841658103115206582353271426186029234993272337137967663080495092646049346195655023869955925608320149906395694660360383464757007804400660336944823180235748526262643860743710684542706468323033778788584416570697861742468582854480373768427748904503739711761627627722922909110554102884620329538943682472207218027652046066393036373878072815303372064668127847278218736030565621884668920956629921074010257968584361183194959324705886947178554371351854820182287626520259831940483036313640491619242483774583661610404993007590936538200363440063515291368517923865941119671883090636441168605667468250971780779742141318090383196063170839399572895635124041298625548649754302596981875763119152538474021753315017043574012026865106213402368072765496052500253111302024910945555989538106723158584600190643456036535364381142102061009597488531060692722983963378882298533816285426032718472635805481308446165522367461943313891099575626850203399198769746119684082200427081015890910314731369207964077491220767807777311704864975541727694074266700616426032294207028390681706928110114050977145900341579715821090638941852884719686066219316055408725115054551816281822721195000978233059086350297422462077428160726851882292519468753410785515356526077802928246379506004126547596145939244807976643825418403768647161621912159993193129945510417155381482148002710758432670179000195579278685540928736212655369642557957962381528443386956391810879039560523963395146232356912840055160471195465649069518982405452313160154446915118297227250268691954378737989916399955197412131073014349984842333126655328877448545596046499161336830809600715469566091045248248110185552874906170561664092192700028813876152645528717572712732855895800792034794854491624283470309606580791491672860461849413363059483424767892193152354255617931079934192228041019536037553629770200957176392785155795489500659841973814086399223503348660769128685339459763959735617270382749106387166007252745486988679479929750504741286365454360996829536368966434707097180456173913565187731311417961966965391268777667568431262174884834621038013602826564576044204569666248640006816993165082710774174075305437059316144392377076124804352717823190323769967976647924959122775654002803847624914550030815338126856285413841367127852630483236833766386800457617895656791529226121987012534402255226597424624444160372153613303321389229482600458779510925886190991339305134358307857258133691831662069104324264847937816442299972684458540308195283816871725320628960523245419325565963365793465489824755428575406045030605932310226346775851474774955541777845381231596679777535734229106443490858976217354277290139292360597349034498615365872378845554082660304351705901128925857294598532183296359200767845328081967037835817234399334676104349349369405734785984349027604676233374153836528672088252178784700235465808526507869665386383660942644514564772834229880858055579827617788083409482960505782328929370905163397129957801877401266302868975868602286664349268982776345125715728125786351748821350160186471271003287168876902255643569025185894525513580526320007580620635901440165130235427564984285557809147982204943545025796125921888787949024638811681280332563492944179115243452161238789746985402921161556566689606555698341181532144094969906989050741360547366761771318017634850704322765371229178132304402983484082125872694921315168928937913642083332468822603611922342857504855356078061580731817102346283277337441488838847588890497608801320026634717248257783355933519656497931924517510838512986052374599894343357189793382926634406770089054620980098420395286135992584084856286591918800274043587139505916876592353131374916586557083106502133279098740451311940157808947125046892941072319377461340758585095998773401648564880854343132760128826156953012255531233912797229436105286131793503145192235274267525661552754345366835027285561441002853230349620981255870559828713573374975886344303686444261819012649156451206241732721482011133813370872307115877396553057980832462771370876515805648486147930399602968629222601403175882779681854565695766339806454970263209363685873546988140632141653971352635504494973265532487085253591854090813948430340800230363886559388023424934184970661033982023540802664926632611046510857103521448161407478018268777307207545744260692002388742345771993116837404592578860554735590852393953171131631043191757437543488558510028487708062731124557717407004716260158754624601026679761444263103911252420576134191890516986381631714516413927675701309319593765169511175546915528136000707598746224216110277010525538876534444178179195827194851572874743657286595431845943882959349681415664019035246461611876410051952048336388118049181705785294375505416722340630769287611485651744329120209861112938358924091657508778494467431182970671957281048359830196881517496416787491913819094661572278511095894671357695054584675337554302449767968343533177197695705047047127892380620455360071690837883889343594704560281157518585404629395760008346831311159361761206825202357530156016772610238330968947622848852773466969793138145750087989002818815010352104802298002116896180330217744448008132094062334448614380050182023261224836599934081520971925706992441569267649376321229236314969641130286180813327933803888478783382515642518671952411358016404881741449700982657010209565522760871761202983312852586862029624577392234197938164401307053982796448981037210884301708800736405266444191936554816985356320264476437065238523200993144067907417087801636631375702721489857599580312748235677918433656955413390953152471854432629895280799478663212609134373668723427599333994055993215679608723735269382632316055206398308372104042798324420283463935406512958061215831003175487336729701232190262644698153654960509014846116787310996090806689311648156608106092917603009876405074013129478436646920825025342760040396886152550803657258087090985899031976551365929418607832870098131447224699268238553290316006864720104091473209933303823387316487398687054094008458781969655666624333640914090153710674951404159399691814285254158319778666320031479370543772973454217568825079611756458009612410709117286964383200735350008035228599056127922529975657892593177947351937112237661016740256760205083357671020929001291644613960793263130806754734535427761212405074089824981379491763994245774598427072906395960187657893391163614020667475359550843515983102009716025510061290379152933308841340874656291826114213037622306249329148924978091269997086651528327143475024665208849535417716851395425680440744135300684313411534921388747679440022172623720691795443178329268146397335857696443599577451558685913048073131959880064378810422787918133389038588019757023202973250951417174303515992785364111336464088721688754978431847619409940127168835576408833710439009758458818445051751518524367257097240418841447741146870525719729699285188964709666391373150880624734793023028105323108516500454094472243857665162308590374082772631847505582135120281172065832678782054396077075473954289649562410354867229202405340439174187154162666548000066360503559383499067170860506807333108191018426790957852075358043940027340499888453319249018832756075243992104636020105436857299101095420067764513137245468066807182491975128664258034932228259250967756639790386849423665030969506896086406065222722736873141134945935650449200172773902002734609626662414494123985017054858205883568441262077646688410627820891542825110390502985273043872845773636746783442588219127624003694817900083531946891830819031689991503336670458516728281594250709018397884857397103846873775261905773322813244486929245431735198901113292720073989467527522179016507821435056609965182355803842518432429515038898209379750234661708790449175764198347960688049666528483400387007069447121672373327963205231028954853258174620660338109736992821401361260610835355468726014251457472876001424148780111439597784499172560259116410312208513513812855696067553839512304762832299461351546347597796035957943181782401440440186072912465512235081107839115807868729860330856149753940812275397335450480586972970865834373531117955775624545189012513408395273059816284070994816398953409578892843594034532355848882214659318859058466291849740634701047935384757608390919194202903855881528237247894910270183774357366425185345512966348251620072656976689266254358423383937764379322757646792100938918561566525576749581436487433000458004381650195290771915575465617988984897274038794752105995840601769520006090487281326726677635252336916900396313698190322896346384285772427927199159855048843294390776507881810251036152567789473070733750351154041790192067651658038608123323637865483413669992228212261739990108281355202638186295281892900650423888426390426623797119205554677878019355159559817997529070082349898795652207199410016404195017432269476535218302785559068468527488664576019506237968033740396369725963223560606201479711163316589295443999243767731955872158057234317724351785277802073984622523778260574550157770248890515489869031393292671909191977772103688653734595557946791096077295794573017449353114125314614216300855131578060718329569028972323279201909453279859812535878734684156745531799281913895347749632336527979091116249945114030125686064184937784856773206547714635992909828909285192064780706569634397871961275563482145565895902122165179793341855689863249133296502924605963826813167603538754402187842615101833663623732360909065037628256829269514831209325508607235115549516013411000240287186287404587220426214583134956031911255448060270577668755337182213834238915673052272795453188122998137322997450223782856548043050186255422339616892517009554005337753233099771248257206471033231570696836620212888040595377771382049961565681889200609641479214319370759869260032277258539562314657430272148680590413451439715787559511245007537452799286544928683560256980723649625091993736620581920058940809299868075695685539477544481653535109737018717617058642671107832192659690052911381164528220479741457004318130400299234150375953781697492728885194665060685135682855854627791580506625606014326159715418535822143422349682405365658550061896741669865479635342027690163624523529608111142561322772292806988230568935075419856647543675961892288386260988484234825351731389378598626317004453680668621602536029285994914840735514260220594256958191010973045432792842460615587216988548758964647279087267791362553878728010751046605891714514860404953831108606215516484597404226328207030045582797785278445458533270903020081322882384689540776566098859263213038432474748264072252128046959850012386226376793293736672976495702565673342169435153608977301396526658987080476102277631146771574333579776280518035765389538745687202449407275120604121738456242789938233870895951390270520527719155629630967612118526352300896514954781006821965030752223678356347907947324088325199050344675554420038659683145223418343735745844365756796679775550353069102509178956817714526325016560696412383353678694771916709370160095097895899769534610089547111775671397248327682271432694092677221352810371677416817898617680177442729217153595761423330200485196901910481934879074648255408494953608777989104103473509267378168763853256704313974455798361909149535531902217540280923960196321084645716539746130017335128125302411271361458917848637893947191107078051154738271770756831416082955478197422254964916865115638061007750255646648452235987283788188027794746918237228478902422828556434836466813990755489083161569443269577613476346196976735093519860532558904411122077041167035841845575539843876696579806959091964737525870858288238060612736066068299138223011598724152942417980324121967868692254297586839905639807024323789488971261776945878052269903177876215261328467016935635142413221273806935345719294385402255741751748378345986252711354392618378698420677943506680393689093358415319305096173210433375239537280835334144414535723550240123738319033328662571755742443263278455130669269762768252758044575602757052686080258965472067560645297828566369589964321785878717788362291974075128260669853235179008373345931245179301299160381124311851984015606737342231529294540069736441059621266066535103946197203195284034384733693623759651612486939010913833799460660923269998854337941259417419872691070606790382094886224457256523945550391715293059961800712679835912531482219959946714477433766238781994402349902305521329883628909247267170422347273447689155877593018186503631170125097999962263098476772022844463247687240947104472510515949228647224845016284893682577872327699277577674693478925799387829889699189834223621482597035936375862246000972048297716886220264739367953679923049237157804867410606468303346417675053138922316165623350948133387104581883198384857517580174395798018586204833427822108805885153553201817198476200854492938317848691745328588483295995474154778470243159531586141772306585189376050820294813695206913906106963789698179555050913009929853019144948815566165007514508687772336242999240358341054627875728300220185435930535973220063487896782970709379513173490205651542448488230214629810501762028114491381290033137387925244394723093508578265797121333382377143581491883945915550156931126371244774938850823819027368525115872142510574779664117098614806065879976340120128419887389675078472719361471036756738811935414268217293349230469528514100708671207732167259709642970123145005845402160156248322611423639358765651966459327162403496480154414914061251819902238652389090691198278276032066854852527335038794864348220057171186399015813899802838947699217487397498869398145634841755175415412771736456429121964009610822600865780361994148165332693239914189660452450293626517417623092852819592255491085051024195615337023828445195358184157621215207571494880338523951167691982342021784260730370750265368841446950693349882466695459959912380953163890637025744799909111697430437444252520656688604099966072921241888704862817703945238963075978096205109774923894216307860722516725644415784337996179437249089061402718554948174485519039969158313924184326023114129688509848958335861688777705797731570937862191251975037836974505292777390660134875418240850292574968451959065202643884844276604493205815847912541405002787940515324551145025506081449531093380912298111530965149810701030189101855935953528518160069126996886419473866680471635541990932803744002045964516118549290950562886382117967624384252638290081016075286247656476073975953266687450212390122909225449277444612911540867692030733561272695168373165983538036082375656200902240986875367759164553420030801384560828722332766556463612601217382745521916629911729460513497587025243936540018483280955328408801066110351397732869813972959872056614552826658828524053662456625044698939615556901820188003345325096522377343270802955069952816996972090634328050287496183602966836810629941377861282532932485627346848203805296284510323373737548665456426760369731180723304038618097577696878224424618581097168005475030776644685330077133231239323255692271446872586677261860524169352996188884907428739789625840176082598669932899043672851251374966749376128343096917794119255094396812627742872281889429538326473372265165780979819410737994430147207911718948903422708858976935446374225697460281366955842127791493399291620008840808630860935264883990089229299919436533896119433257958862726124234335876192972882876314270121869995420442765553207770367192915801270898455308769099059879503306390787017465078461629799365028143008556418938230509425944408360535634334009124670833188092405949903266709961807523811118035343213630553964993754643248220041775269615494284562807023670577351002820747148598017966725801936878092754295591407792087582388621947530649160100807313684220359640070554665759933091487036363777460888922332245189011500085187986270070936473445104575875660057770623302748702855937649620094546579479474472397882672034412322386704114544592490298812460525072615667505736595477163559051894293811850930820663899850163416795236912057959007665701920158726657838489360405382884273113313446194902167152036228322826304662765419362777159679480249231430333196328371579394707809956437309390268671496818602232645473672215067059261655504054779925143078534242106371502846614753460266375622108355235873659003344688914295076307341212243399542854492066410529017228161385154180899538712432750009344774763975870359297331504234208152265086479886689845693621858936776699094219131080578641954102131696451184693498089138958362550776749831722817570275783557115146697801856955682208048127357141169345547012724049930715776730947339637080840597113962370392153658236517070501518828417894409039724364962056097630218246989213913954209228017521430639588749561986367255376093503197713615975422634086744663009898957326593597108661433682169453978396151650756900640001162340978103804985004675208615658307860649406203009865747172103509015619581475569049016575475805751773688906185294716728979192329512648524231609855643961474235723836125837360658795848821442204991162454406778884355380829155309235559499972089707906015128443932876983323950062231130377018743264457747847860454463353096598823746219750791030471118851098939868732671620457201079063696019035360623468682045688494582520050329142902858771650686163871285789975120890689782395488577909071710052890374098260803957539218840140246677355879783236583232708439057783170040824764824487700684583848564063134724974202062077503264328844877396665482154310200068619755122108781216880170232619673563258785358828070529307936686883615072721745046198486242597135863157153570336043384630477383641873931653847969593848434280477320404767031421965011816382417359456191549827724188389087475228275780495184474166890596317185280436312411084621258976567331122377264695158010601442552518827381230519380334830106556715808928927530020742543576891163153727542785160313066823537022320776211116337626394689134308125405973649101177858063930671507118878065562701817698915208193610354888727656886385128624091435335147331575193199231852818332321559998891263691157185743725991587371402798540581930317723876395330479837352088861721620724567698123222305638300679577593760540116420918242957035210787964235823923815053764996455316776203223709716926761894276331975812701411830575405946828669184310776336916343438898503331601414157290546983946223635908878962268153669368341287912410375978963000090979035720779981950234288686450494422647072793407872972047812633876933377499155377598655163178866879347920881835503173089175447972190336803919602878614970298819352143482830309718321254902158075551359326851644397567281562686274140811313677353425377829614554775615503682295521391901676939709937346255347726693669091929954052407847389085965494671711692141885745189025908996745858375817848920213260295071377506321364265248437638401760337199171599863559373927077887140243886608043059506600108828006687647140332427371220641756286410321836103565726780771930292140078022941179936762033483709292487016057904215331024248362791361240456897514320116117088028170615656336993260374632832988506172631985347018203321774317897158076045825248294884589339667695154820535594269119545213892148211259586585965555570813874125047712990028526934040252961754034480037546649823890810064128831603050044251779382307127068507219843528134029275279765137542182384361733765716270499940400117418575612702394261737136699837945367493713424960026267612270277449378474619349463017288328123856964726802045475454563217479944484979216198879421116329240461993259896346986999548596546006891788241053033491578027183185871083910194184104010354529929698126340479861775615985459886464652422673299355893516427940832622090906462689340563331619939610432988846423989104298219086211403334646603374278375804573404327285486029829962578101700713437160817682771879409131800467960964890322341575783260723980344531801628046127577696073102339164865748975013087420818468840619968216976652776636435398948484827967125119352704994972744275520980101908378976019822205655296328309564716011740454009236443747397846058450220985475492647651481046336098328574925821481771699359480792768790760907560729331689640605892686275979714026152169723445011965901918582340522649331647978338092561603705558336496060754119380188693240950291498907028089118968167246306370644531112571405325876249169284882561140534591222068258962177255365842664373396932762772703019423884747115144822866792905367449226888029125685302129155136233208965427177694989962225925901959147351669976439663847370134884474407499369761164458180985723552241589347266109338469262409168139326615719026378618050292210155348524502684859064240702912263674966528496448122730002093020526337870040134461274453544359316786934909614827536584714100253526145098929932758378390936205694349440006909124959309002923672950657565544173498164741553453489266836641063216143043003389270596037607131269976183136730945100677659446907108074480956597186928541570618624839872191207191637631046058853880086927439348553990666649541939574538302356866942621714708807442482230184024641024812067840975448552941752938842828724719830757563605680856868666157623190259546076227168819758447070644478515862524586944497006923531497768592849607724780826391533564382896192394890288938572166049353960517552099467389406384253853812900031415796991888391094558161530870142138451073653378991385195421713271178614317259854421151477923952119090046515300515329869085044697012525881244252829935308975074660442837321997635135018335509940510880225609583514879536221093211297061130480045151246592045896406572534119497622310624135784850810794447691783663134422513934241529109153447215012654242177868955303019452571233998973883812579960458055625510772151985709114212298229158414468851486108410683431595846323788453753708223185902172348568952662238700804705365611908337570011114295206676039497065459244852437452619422104187176428213691592389103855888623338087876041651112126459363173421554179927246489655637084130498826479102465115361626158389034518979803846854108437598101612526389916574118982134389837800652928876124307802808030391381197505658766951843472242350797306013346231414071942890555352041688539470927692079743708983584299558947744552324913269906209604753463050058989492986157464850934962846764067596892358371877168782816497852433910313012556723117606830972250865128322869992217734028606594853585402277931358423864190556693202088987445989743343011304829867695512578032998710332106318579956434122858887386327117801284056453239351320487202643134114479647386564154078861328424608504090807553153407359209782057769105009946053993434482327816258313739829061780701299355578459462268427596956162572946204322690390002129802156133633052717911124681117898843126377995153887508233329683891131154504381262539019183416409852797589022305030138494398193512675683938035588064463729200570052578587940190563124481577905074000266411670286419031898789523488011689600738258609264767801420518021352197700647227339889047909560464626483093830366956005822364957021127772823256766081651877685867947975284984293133870688282828110472059754966633410079060465617618382476758506707493627090729086703549358992274819747427475845903318746205999482159239221672952551190588016388176616832336875697933773566096623789357146187878561410893409661768161080119626618198590021435623602904758353473245111486610095949008122315835490546860661209020706163806713589019274164196018850444580098461331817665151051325627975432090870349661444158514987703089842332941700202203054357024341946369137963977353536435999829177415957583860433317388092607938877946632049542319275792365752731601604608639212949820084473170585980023126266137170938491402192917354428899759754142443252947048906595865334192123226461478152970618985202433909318135742050291591918841236421079263472472939093859924847636677191950879207367032095458992584529566014953970959254548165251515374474175175750160330393989652595407019799937413827880638956386066425466076109104314290926337434817394844116619371270213651294588342151995615902207825668549330367773432310023413690418813047733154429003090713217215376523004176772329114322491528867702422223825990754893627582478786922869042691523487827046106114195215857584337284393321832935966668964279199214388569718321374848071149554828868797306926641285075000007332957003163567395637046415625267341495904807097865284597513345407638002789980408820019115480564385104023111395741846904861261101368074289331363546286723934355491494908886167275356818084180737975296535988085056495351489408093870583182750543077698484137946417790914690845928193326142581888426273783127645149204238297214716373059649388615167541660031743822137752677477836427681910297802821568903520112494914329655848871295873886448953413011729813548260474627980643395195173429825114798737207218053592251411885736790120483615028135252635393973886593838053901317406786910902807876101349181874576917025103799259633022636275856018937128740563249548826952874685587843037504202640068783366754515445500224436121187435576881682030575051359456896899530156814011199234617826051824567439395269455937845478007745646822565474046719950573765295721055608848688296106417139022181766839374404343459926993941575489275485247593433780025193100160011916322110969539668716068267695467362757658656564231942498521027182344542918048537650865266112578848581165762920994997037621717126624985417743700499602250229657851715755484581906010178260005102427169407155331871180500110758013188854869270216431401848716381944993055649172078146865606593135294946651549342990310800072616912303954543293596007059992913987042585982458004921926192342981668789234003604871093535041150719456410529647517020923200946562726154353682824220781924855205289813653325741241718946375075732257945996047130488295627918062525956713290352827272542246284627087768828336719664671905863492806006539901523616376380210784821779132418905308506543617274900252744923052617173768958339410214359016415031452655976265969291793276920952632838777292473575014991228942410002260645275990076151552595514129989419084516640305659475365254310298517925922089505918655014816275930732811844547486413317999244464624714124659568343504386742005902480164053129184716646724477385117568639764204197061504783222859797365216015261012669265649478418617473713959789782478699312643479092015505076547240131481386106401722989130992154624187695433765801856923851382817711273636309409953581280969269940811004843853590824907996582698265719230220241471928348731894072426925251227807727028953657798788160126658100153056378592270715758076458538945189572537227853235861480389084605981308404942510367684379738482625183539603047604197745851126263642789136890240143264669504217365245175514270077080004684313693228250008823026170766096015501942103075430451143061849639045411327021195083991011165148168166795871275328735981005221695845383456555242304781450635151478455145959650853360748593944333150607900589098473954333434789657205579326136485190189893333966894119788705798803370662478042365346604674662648477734458372123609580810693592282672811625643864064962433329296859042923879468963507966620785937113436149843194228077958487491876950955867414865571835368443999662091150152738813703702268930465170244715760390378665813323286563576585380196189786015238803929819775677994746908133787919681463584081060163201155434206529507412444321546485148913454639412428544305333380436913947423665589660521463684506276607202865121437780085099559992212430749745687589544086320814637318430842953796323410533000810636234443827397491569851331638517812957244471544321736099172369442628046297968706954961229695282045676205908937990236517583271541690158987503790221220734590142375416758292284974891043493769877061150334244837900598658283410353174432888848819061703472402657046912147635235419890588912548113671725925027388981336943120618177712493827380121213789942193265010432359144375799761134293207535982221972352669180119414889562685490664037597881293446172612126312654655493960485747532726705289300667553909449706826285162164072306348580353054022762461800144295520283288684618894958608284893762499022184379198088003728400489948520204538220832354465894008489084153221074917500319096059856620399849284386340230139098537222072599420109025232099592217616086962962027043640625186157106714068712263273112516324679585508667645726099022631211786102820025982472428712996578600813864214678799306796960114922572414310003421002407949760280393370751605330704295801131082553148326069301980341689527456822011445289681297694858842531349084782331532002427100910371613985947168505052516515970111051721897103540028773327072011351543707100474105097190880893845531552253340375298093755905602967415732478299548606167001464301142158675371455914947169193445391363444648879554270253976031883188498548815378347613855534761742368558317538357267740103687256254063823421959481667852343399384467846728712163858998445051364351244353815095233658290807694744356786686998115255227673602188786160399445353138315548691231211611584269413732902601457955998371507013885092604607259498869872496222856988073874617284600402942977972259487377804230793026288295753498209075347629198659147998127689211390522375915534620195155075758297004312026482325619451297559926756988330258780221487127289052184284767550685599947919612680171062011139471302269931666671879262179646560813033594012279982830462501295072104967632127703802708852946784692256514475082083873883604704978959876668386111153970509520280609548880531730490008101179924614824598661408980808000556926923807107149450994279402504415728087147002069583177912205411417327848390864464605972510752539871921634597767375872968613140889028793366099629894621743065882493832934429185884269307482231848247605100611316745981690348881302533223264999650341825946194769127439754442350821270568204234962104861216332945005584063633089507432792587924248448635375815872565632022499336909108357020490340949885317320376244182329554376611834039488597658945906942753776635155926104524389615650623235006195528568159327894720758100907484870573479007308660104898139035458218378992017034764055169419595989651973762663671036213482467346069783453178192142833849633843511524832513273066167083514641166875080658748243350569453203701564763248803206795989639806609185870741830074851385110410104842058338845621514375245290293538422411868083666798224029770940116693030545706699543437861657737584648678796262555759900471539675611795469365539477976328940956859517020001684912991272309236474307162151416616167931643991377597056210554540808816988919465911096340773672613173086773805909162343892345512987035312535323803509881713733703704918133875044339576630129142939839899946943230128483649228474573150235563249389702937549909843142434754114430227485741687576804165413020632017801289736715986383082135668462356512997258916407044525693751925245200033890437446866920813249982086765190324286071860196502628518124851006810298332816541445372256932039984808705415797658413724189738699290215627282386930907647588443622946159728369220600595722499673812438028885865898853480423052437323221621460056846249359563709838527643740014548685381765071225890472138748168164919000406171498520327235488002466350804158409987162523091240968321158633347068862636277353864895261279983658634185137722423907769555360243138843401962356076577503135428273242582991222596432823951792086087343758224284572646692426893388741030204856911059920506819554449809224240619888451871782820572904095003580820490470047517773235121647377933025450355669240047466024345235129704112159605420954479134695217521585717763429071137769351182955800910023959793588264479894230328764127717792544392841050966702258045607540036977891968873498612246896107010099494431991862245399611692279656980366790262001967598726486888577417354836573137394295975107482488881901652709052332193790783448392783904137411660389688325320140146373470535308788570230716088408716330622735384585907639982060331211032902702429291968525918035951696984525921114466923516117892513337895644887528920854801698589339449672363102120597210965319915609355135812948515649234921743561122006274471555619207058428169685057434408693800943665627917409470238940774400458814204183515747090364922466326271847341408271242833727017852655441308694774481569534411443979785045474766716573368093658595802371412826444724172483774887158781754804537742210988002091764133384494732394018749709409548321200145476969683834788711523053206700640189879019429767760335589870015922533027402577776779044967526165088262729332840764321255078753093073357292509717189456437735901559495676448058888053277166749536657826366995393974317068547153841132144076009704987888033043502510892983635772086743593829682001681549254932837956414230629936886342297966223733327681649807229885368283608515569209178263042551431237981495449013046728531478055961081989018233001781491142947620246855850192848905360073578806766735215700172308636950687464210274761545079819365113729064780452080497605136458126282765247071855578063584900872624576244539899477421923141244136027793689031574964391493735079275079914137128007071906071787314463057894331916852201747031118755746656528071731429117371657085129503039162652337561036153567711089036661725094988125798144308056973857839282001987829344889013410717696011524144104609048783204356801678457629598287939516957680204064343295100697870190266900771846624783954994333904972019802675624382257765681027809314882093462788012858034099077220099598915425361328474903117473637389990834327191242834153942196016300867524398212906211731198536783496999317342462876141801930928101659934052412723593847715429363335865923378476105676247159335919397469448039193442699428250264941047865230464385430230946972352730591712344227602978335599396457913507730744468990387576998199163946340132964779270562474879217142824044094921274125611547003345884037421914823460453561086902433087812918864924781593997887009683351145732882974354158989375494529597613094109504911598837730864472336787197354903023208200967023350655927922068176085719954026851234223779552900557821136471874942910216586142844468562286369146554737808968943088630848717625840406474032239021977996996115588327492076330121749646835997555248040551863951405298270985564023379057834046087569244962444063657706431333254917729770495972955067249524453432616755269785142154764453431526076880583274414155188572739995439633061190505976288794227151960839099637827739630162915064269185159851793685038938366289011916100853962369847723251129429904510040808185917193564623289463547214628273533080024121449406416720345812113319325747707435017401797700602445086216615928972198190712493660116512006379676525679418665853193215687082889325152198409241378118876328205238014702835547118523650104850014753474437734725821456115068954290053339579584908013886450578379589455828590278593024460845408727719865252872618244251664496137433341268763940569621899127566133308624324650102785703803320260156796360420474371246813203566922272272397165288353756789715698388502021838926497681113509652291092278144813408896717022353594817172927264056201507085251424053269142605469260509465502517932667093533118034556460654112066127220031973341025636927736817806578760383460430720988396528653816546999137123408146442080857708643748053849683127059228628619777723351864624717237840770144970712702639137988560541372755616084087483241518617410980032890881248503603489631153669478469499956112254635136972103376219082753617988987568705242440927770690081677740526645787704862079657237250538288076617886134321646085314194476459900257082770506185390827016673015452779416188715000910471523438461158536681606702217195838643070692605037817614626591583970070230745356979405680213845804135090923518345940614455572596288416895090295011866925694570885387791591675595587516933993647839440177608133648288610985505898776936141662715944040097514517854091010009008960389641929041184196684488392653438485883424331324417207984498459860677863885939201891586731312847193067589924974100926649975629730871422947357013559983062556807579598621977420207175304694071094430118107722538380050202237234137307752571272343387126051664589029725912713077569685071959104030562394744046257689871576413150872402114697365024842586569425637452772465275074322167638736673501087110309086549874524965263283366243747998905859436961528567898968226244539927217972250826770122587108359023971028069331655172218629500207810570571928962338735465740348376139736340266248663941806423064422166847207895509539953583007355293411948322937938791983619089792456499780039270104059130422460873791119552880797928969607820753560899715191494569137036208784721630868383122432096681480386740608428246603267382019179521487214670031365171828385859216023395744526213809838488711253146497078203236238056685510369754246883746575980091807888690927707533588304810583255059600699745312773533488827547280149048512496262146465339801438671666756107121807359254390171776094346018577060254880954302034158849382444742674182347630261760189409799645242806814187084943820890054114481007251191660978831329985103150337420936294338533555486178810946869216125934317406306238488517830950119681982281537703731166619502051003589560987078602579430517558003842500020659029109801171888941312615724991330247737081258415299463717559613960317039876004127834507936938009976449828643937858699905241302500657717538315025335186856947348109568228795653387569786983964678555497022045249468632879174946091355393847200797230902344589855719624909223306407302126201605842854882173817570633947273128826470276768301362721448275558324692814713762491999698199335140169863298025526364024502726434448779487734384117188893379276074821110422498231443382874451490344868403458227675095548506488635659044485915553966959044136501341483879632617185829048262180832796654769282547171788760632486535939736948344045501834453072801840178248089303378848282143123542241007936750716648656122546720479838253895596166435802529723937718651385041862530086859964967822083324260634529867513332913867815035240494396037445110442195721555306918931651481849437138237628112666059185435272477197637949034356910165943053788666732425636590077478620060535011658629101959596888196756696421989180778662313272079448889105715394243418909654408877686034497459167575600745566110998603980114024572843446670875568156338659703921530951533309383327108744229926990951425631198274764098648926824736602005610969929880915556052180617122657824735033063340757267289250398060804510996738268958919648492174662092861160549460553211122270662431275052568706865819649737205107947225302470026439978304122137793844745818998244402521011683126490157139329583443577608965029948100652566956279175161125466612529700613309107252227498552376858303718507349551520093283273223790296218525585123946579408780245892485589784795951047836545323282066822761157087012757491461782519838174864174460504129945115956859233593421113221004220651315818769194183820253820821273643682923433846928532158519426207132194730118138463438975233287244675011567730578848517983430695070716485572686203444732431190707077188873631195714643401022677024426678574977015210228905211454301076313212890914950048212581133544308289854015720417801986080380599391375919551707819589857267570022259217071010663145997715153963870974426184437484017808562014522170726651376409277017072388246788473876487201337462575856808829199057014837866637214758840176700281030470105358848690951472119523354721112747431789365577542723556234290909370234513092831291787925458841862614399375698114616145799578284892193456392843998124665645659885547874549692014084066955373261557257701197913386371136368940346416160690593857948407259847881182460853438699950730877417331069630140199788127484191819699293402374614315496294898648200329905448973275309159673495969042492775168687679627693637340839585254666827432985053076195007336394786868942207077078936314296503263135444640100633716184077824182763380041722726410065918360041993328817850522445303995047623969792285363350150884129913975763452553194647555136654788684522587886374738602653107859929815229947442149742885015823449598102324010629750202217969669448460639734384302999457000056598858114900237109239328047905959534291966215126880060596353922295646572517045560586992136788419677241861237267178493776821114983183098663265772019532479563771426384700274551798530814040518955026239686939518084061552566715172146555077288508806143280222586191585606598691860534044208191663581007151797556448094244052240085955006126677825610846313909058145116797208298743884282337704684808140107987049930471900056422546160872794796244903983794983890886505708006159309420872964907650986463745078267289423770086045585925343489697682173933148160979386191330569303596707634914022899261072649891256248883503891170810786887548261502036345346366094838756745399413549334551018022380611446279708290711643374865969283787716152605112317265156007292321536398207656690075122020773649680418175138208260206418232456039702343670770519700401369070276983258709144189779757854655521631467222146693347680041615372550058285273926470680226439922111880503879617715105331360867092992056310053574986053103113341232378679459295801793428186941442994953321928722834763444515020957951374443340628721271039126826363490631702461489259053213613339333589808773039525090118535118043282571899976247034233389478539494488680381691705517123810769898449291096716578966946478011283546313195030793105531895174767693442851130384915603036609622350667844658844119511519957392351280583645347390080916078502889997433945699802003313092999793074411706124948993002316179216272325167161376459928380507320117533786464031832263661481378790769076139275025972522964749651342591038803046348371699338174813810575529550843862615774220882844402622122741617874616911938787394333436425055284061134964328560976683390559761557592935357500333532488056420812922504616706563086879110312972016206045385684227858102516471653685544456818460610807989950739764336282692426570051905698581661280531803064228647385237033795398152321563229184074508504286117405516963233279820447300351375594838361376883763981533781683088644536995549970881833876062431843953230857955811895178163999039984332023829073048408067668712928721613002601223832476466199352036058971525475187894767021010304600802427350430117201956394879050409331719049876624610244364237564476769510106651238104589885702543354218508231910846636888733320496171991364458025456079247195898420983607747877853007186911370659325744997532507379022914236448356892979222325509258507228282590159959563905950267298953313982940374838357867237567697049388500767950584939665438114282821253780448406652143325316840129730731791087124890989633355882941588033565340480862540745877816685403292130829290388794822121672134510449407816965937329383335526640973186326356721712718973018912021394214628128974722700656796912611807227714519284000273976178208069922538702673493132444058696383423826134888677825279554388208449475159406860307943138718555838023085374531794585667849982690073183414502028490795740961270966003775805814930209001047217652469843311085479291609247832069318303142174465619119347099378774344675535491130434246895576894108966267929932450983124693434974405710718374513990850587464227732245371390865837041289061125292480721191467035812538658751501491455298128533773445559913508144153664531145615457651021864121259448856060871884759238765136242636653698478366241823868693595640114935173622272309885204894213577136051336094617964016399774291737069598083080088749240363956473132600607604770908157461899710799349027293637685211389309667957814725155236986991215076246524309345468070843209722072095149526886104561864727248220046491220208743618566894294380977982436164372988899469217324664911482877251335120581928444069683914081202925195134870124866704762391768129622465689808568643234712999575386582335438274939651944906898140449498186221442256478548368892705133562850940787308571180751037230482594272347988673745258153732219375072956564776549157374353533813163366257421956372613812466168229175564051416126325174535714543683144682670846171032788332849179075487799070515809920204687172432169083945578973401977462752231013555058083004870959854804436704183901423939682638270850626253076771339196249298563232264491462222289184818842758450781081308936158042336983661738878657518100080930173841945518255287878870053419377024801594987648663895580762132964521614682054556316922708548242438408962249965460104013420499966730475263406771978800706276885497468305346749312205653910245153850089144155368461985135885278045505992953776489203937320915245798168949900483978434658294364893371528103538784531594459355634606540259485569135699800463230519760395208710309089046142030593293942527536881291885651019068371180150919841481807488071867003139774041966050871925562938955671036381083494617557833498368105235073140561203488365823499339201088679699934828017242726863188969847086990564570498370419157770212252996970967834644393945311568729252904203920891292407353171404454127195249644755865720713781550315084405497934187586304758067479908298761186057569985926485419576330916876889577033782083307613532736614091201863389478380433749550734110908290177308594048861925154808156360763003225047482791867905774409810082729711590599776651348466210820972221469984186315760449778463041893489549061676644758753762086271552313212304218174427622887530089425616730224869159922128435237895888491551147028401599190412039600525817405658660188476365317479294666406278117745525149759853707565280527599956697795405080804348009750932614624184551164919794930703898057379409900883053408080011779881423530174852467787682659201019680814810587885758324904816779147521726348981628737060708796336212422013962624117246672319162954408454750071839850035759777533424200845203332897565015002240196704445472515668688213755526536534471777812422807909964719245386669380487549469512627620171014105701363800762197185387312228350114241331460267271712305359144725429822698453721128344031572642300435505490704986684978465109466432299426455172236453834438812881860065467458002706080042923405017081278191061051228828979486974690107521207790518036233557159909530092668314813780112389394644152353081867481675578387032422440530889052406997415500864584477916106822554338207827203095130836954507025162801858760765348115454540350127599822530552966010388503513465322816412342266986329997260071411736276631324232455311064034221404191103604913812061874358193317622669724368435797774783557775061542427802816182146565589418414235518282404991836825921069109661744929938499722623567485652022099515350584200559003275266387222897999786800304336267689122777574369298179315947318322376772500494578775472844019610465721833972043198491366057486136552942796803839515125478645580911470309864004210834661135604084171224821217319543177155874927048818026022231367774785768552375089216120379298632846388749698247570370157349884922506795760296090780592729933061216334618898842491103911820275236756252410862207422591972807352987225829602644399167911781132399397835336061168794920562612535740999100242471677792731948544484551911301156357808926530995261239451568571208482051048783302202295719709168703817818963520168363490813705159025903320603974284794642871656134269095162590181330218468175252551467704730172962993067086621634954153206933844095469320272556823700001033109410010110160853207142889554068287505926478278072364615783644353910424203817142536275822636663960356967023822597383614669986374919533647315946771908775978184062225154105173937517704931030494988460182432883604187277025877282002684548965268572036805259888449171099494421432487840665412203179249541860190784147546060341179657739158286636001274567817228167325459842282469627028450481614829713466070094248292075132411422815494103034470385069052772991431785488500802613482601454934033665015145537464437807556950946350938085215348156902805073564597571846658045602306604621506111692600392996432217681383224176204161238495202225292786035460799722569345771966979932578976837845447205278844605018706587358348543835812105300155518033556473422466049488773161612532944973250729431053605227458607347988160032794374315503580795927823490002516904415260878498315671366222420054293186710199507628486653754632734117973527365414008635537408527722898978126887122417458362921272397439115618837159633317003610847466934212709026440300756041266265813501946518046907130743848043534206763057098387143410174266950492809860381352266594466811328822039748363087916387121696879752298560703700408754335844698523731672910658944608025689354320506916634077293778382137806578230406142144544254480230758229193058168805020761271797246773439554726966167183956712601224169405723305138512560556057626395781529434859854887655032272248328595912844798504205794453123729896286542193211242882298570487297950684593275251473999182014393350911400606661981148426785852468909302052651849246472630995569019088087263745718909307849916965041393410192290030265013524981590919936947000701159305621417029911316589567003536526862925108407252897317253570040404781384713053276235637314570914664410664919245547679045834745728744109524868396050324109346418544371827526969373749283352801007613368178606392299421395669076713486880859763534274233245629944869944879926520944249915981908967529288853448836241985525847611496794702438999388353119806717205990908549084720119609692453376730627616440352753713374623014098066401480552690275500646455780295120149776874734942744963363130517658075916914322848379267849588924975151856277083045236540740241385557911087785477093323602705659890513664924988178914886753788726389659565636845907661086105487493886690934598624312584765629660251856050366510947628798016220922384059898021687315022471074830453079087642859725616380164374624421273326977614056014885264785158253626992677768401474263324680350628673993878025116209233465777881775314798765617112030093718565518212677128627700289447652558963397544267507213831400216056343564254249138241215189669076482690347415081678211209761201173626131217530845808700500934242346839672275169875091335283246488122553022789613322513350571474950062900911157747095512768943765598363533079123799170392369155093297170585815916863823018426497804827717927687966081092738532981750440866005811331907215121070678024708517220793186803970780870137116258520436711984885952917270793183756700919551078086518791394322766750262766972708017296873156871025379080443663720944469191123324001558433643417768643586927630875618269515219032558448655362083643341284589509914423905003851826648119623444183642433174068142781477758827641491236002421576845234215547332034846349658332096577458671692404300854288108309061162015808721440363096657001822146617572149663139800467653670945950370202163997648962179174218645896464596083494521755029877350193595610525722610282964743334543877980473495905240954444219637348972687327327687409313069297168451513514982070928060017267224019192629776074385358870386668148577127251166367422069793721508228860798423656012758925676059082003472039106674993881379389043457079261571313255002621010173506066332742531254278697101057580117734895434832773090662688179960053599084932682892902449096987603772244411918086280829646085411722461184952869815774528222611225240062293188318084314184329399678596145232698523806778180004202397613463771194040874704253722441524523618926199873266868854482265933335002044825630195920513153005540025129368009654726320952179482773161760979156842907650719882110835720551319337990526016647453386793952583480010691787545871014327611757785913955461947693574921076175281812754736111694857236720680240832361556171726596315657412121593723596936577641996230631302337587151354095783559866870082262714857762997273705564773880112827443864811991787607791272067286163283537164679033798039522929080222610795200253950743714382701577769259523189537874821832152647713577140955651042395892990194888790694723653784387202227267886211517424049240475732665667712174070145417557966281906264962450184167393428209327087586368824872580729095191389933961366645870265225765257249302630541573530012305726170700752535390736243893073194694079311239401741363293901683684190481848190766049179136336444481707805729322128053795485370535268297365697211601891457117636557822202748649144434161152123269277612271239016416053488189729082642692772282737732226564300200857154644199560145219506897511159634419587303130896717929162507048794356724017606262697901503701856268688459699091535771436826109337962903823500961308629468828210082654405714814501528869732887494818591977273160440194186712723034538827605785459854693375527469892757092658269424174736435947136348270917123085334232891884664450161046455923472026596443620648659670025707369841573867871402201689948281233862799962847116077895770301512884184850363713889104881625129307276897934897725485042911038025595783469149524350208291439787090837782550683254703510749867337449181163848007097653715285751462512673169302571366919663223034806731964934793709341219386930959868250640001560699177823891843614117606757003533614091327263022054500897336455621068571647288091337507329244240134188832802278810486208446515891331271692265692835671949431856159648661040873449968788173827317016440752337705048732622672422779870852256044481564974192882702092184368452218657143197374336157640703809286744925433978187575340183565483476154573451438341771721035012304880320142662646573757138674424181147859475301693818992243164771938595084973365996237564578239626128383886523644970118557188806024882896585551791036464115823690343805174451254369793363798062455221552217986699182738885928612299285630220778265305126869368633718287598463840296230815826593969849837274451031740223811377063768058420751013722672449505922537021443613251777436540460030959210945094318982868065593583949915926753419183227194789401924180333884196695839180071989453616356656843332039380353052318698094084154377773895242526732940053295189521931701449783086884838415590436435851717681931800271478743482077354816152663557675768177523613831519124248641580212398057480155195757588288263433347814461711026322489216309165446268711841419070917754897153478352133657534611746982291315626373703148697901211379687170500635912392666109111556777122412985429726115075503806871374842512055321663225218618153710405999478758045272722688362801911546147907005013960337406962473974830705978875468795520689424222897107816867266011953073813394603092530167911537424180166244447340852511538220937242051874104797987979421497043960665097635873074602052256189403508389954917096676315211456778983632436805285583871754624926413693981260779144877446366983216844351779816568312762134959573691058370778837090783363012433714697702566549762352458120847226865866140077061453187049931324304305565139491871031607334403010220588266657533528167090063606023278029449748776808037632075309301099636286808914929240782733877273115227417001520786070353050461747869926407001312837425675500291674235485713863755501174558542605375927514809530812033341765140279501410122119192075141326385751876474023835146474488370556133353731484476085548161615642334288620767084924009226301587113928002326219531473027360804812529783765702333430646218771746851856677407941178959488381841128390104625260276908468265186854866000368390374493451288073627701395841665086080994114504049815593798718114364872449345183443471805988068077960041712425133008533939689504689074015360174312726771533641484028447607748234218175868939207926864029739044952524316453059013774727628626289983618987523269362750454674386412570896551245005154405159462174346712796210671189064769034259490270406827897628496727899903484033280806996273141631673914840552449829844981643382229085712259470815782037596559362278204134975368628285015390982141903975417479894661909070272357566608919772318018859309385015035200798952868394059061733660605568193865615117833812871760429100837458701568013954566330136964109594650739468821459073962283600122892645052174867446401065118264760009421403999317954856362260290103406238564550911521798009850198507302182708562494138829094518075647709200232017526499129564636099602870045505043451409579143572845118932194071004433764948001088956432520571921337234473959344462934554080316555505916924977078638124465428014197875286845953121960651508048406959687818474267927411365593830673981355675466548552907738789638874554170019168336829720809357781387846739425563760528950980910732521930920015880174695157380131845395768064100293881092489118437467164044273205421407128423891183448274682000390838650300663899687124664808632833804063470540939010386116693895718801391904516291696083289929692726107427983055527113461734678567910704886532854651994502162312536124880031842380649780950176766156214520494753866107737670480724579742260405185277164564183589951373573810067749376103289281462513863240644290765237899298571419202489852873477919527082816991679062550658464426882870701555014050028830732134117957460066795204417853139027984789878695563352189307685184241307688199018464068562369854953205258944594964498465078546604184659190112537622907169093677360748614404718002700212083692129512685215540476808369281663478824532613022506282287113632861142575222728138455707548311394655048554136057493659016660417246374449409494444535354645692690801547064918623562815796382364626669403186081566550937483060555970169187962258180764225375717162288919874729458580311747519062522158946515255998884091504854758767404547811775128399150285693143373689748520588210366904991723051870278028917431549940396300165655112626916163541229472121305676305136396091308329360384853549730669898949748917781999599768443164575583131226470559743647114073171495750248993688888583956422103971421269553170945616466351219527829751958882939262626563102074542362206397025538230889036152282968511271320361172782923802724784866954190501832300226265471120829245825392794436150275733529906332083889889258183104751849768697322981989867413463865287914355542645673478946600727413122372896186739279023914860348614355497478880727343731259382861764606565468254824263339002059901276763690715670376835846092981369940966145677915506715423862326307566075825817761280497691663242642598981572332069745081642661439154623246577673315488481117398675961159116070501130097877709792226909028611317747308043118290954446782588860960118321508104075513510199407096058376298072664817130121256261673448747997802388788073302570898974003709465575453671202323111696431967995984261123955201446811342697771180344826596021294974732020652570549541434297426196039522110981703417269136162730339772879092604241842280127676788490551595525417072887557917178535083201062688802799068740050967244997394737777682285182423276476383253531444753603279002845249574805613078954683369842207752635806922117947694427799482121159122500616250015161455107722755591027523242199236450250860469993629638838489360453155786238042886007487401964509909411137036367700243464350208821066892706394424206872900938488526678957890882522499160795438488540601028681065337737545912866912363738457702522773718155497271271860158812220344181251958451486190449362953756213043311529877954000510555662168363440614983268774840728772670575348383660875958217432248114878521471812837923115988006508544329792042411938890112678387577342565492348563286902268810104978723505550021741135478900620221377306747673263142053321041999397028081020830196204723020824347349779066203466063967419893925878511485615419165130299964260458777399149268571978681045267178520261199257118901001322779641819511595810673975572877488117194550179785006901645258681523350647969554062815202619951695726215001889117018395204334409519374190010274144535115888419791867100838744887217125088522294845682125866628139322279456229798323523348058059714995762412909340817439874312393656016360285057966955481052482150370485031964664883972807979307280966468364440885635807035382229260488272837203631089012538546340241596528035270000971027651384377515576091318953586862443602301255513099393277916014512715931675869753330395914383747269411124868303132591835069089341761600935134496739936065961327247763034947388830359374867005990809076832926114926065142207349284427059140751960978151458855232295366279516448687734516080140864158308056339270362340472471376306961735575990747738787726622779785868544324982852251198765593512461847788858307068189223222236826571222155893129745640956571966449618767094739250132098427260146882584042815269406248370609855779032669262123468684366323738974204040592616235903769591079302743373828504510346088355268217689010044828653069171888022500985205236827589011049098230095658120304304432240151955141709637908943784469972379456543251971263846222938216517241999399278958082139548118419148019162925521713483190471299333925428161035049077870273480522532263030764320103156355956938765608239651810940637648982205582013410900350392501964955683884968600730856021931886934266910038985379315842464734069289619930958376824630099214748792572686530452729677305885221753311767939950893321478348513731186262015750857268497447439236892917414725783238912664142092069106279516125737389726002927667641588784021321287073698794721371583186248731117124998846460620275419007139887846348483540193849195514418098814596279375349336723050771352953884814415796797927542368911012564400692605829097452151053006636040248216038107462377030731411047115846483897455411147176083259241846974780422237244673411473299661452280240617096684750746982262931522283312528062626844231371447175924658920429902553982595655822617465327860810487370016500562874188315914314967794437782597733408418993159105842599955952076964561953542797685383999467776830890087469178744359833590507338919652024379892251481773571351505408570983462758937636532869685329221346627079166915400973262785622702970593802833189358521533613016396204102680009342768868346362846880410631805507360077665933844367177516713182450123354247784991605238832068154371773089343410289232300629056745128635990417683151842832140963588396554704842821788147855730517060737173734135524838001325112008173044884693752073195196038954935347580421486337440397335623558216895848640349063051060128795992153858781033084422626845281635761633530670730315250976323072507270148684161394767918886897730186011938159469711563674883072713076315663561050970371556555660551988274583778005383283667576327567329244257051985483762433909933267648044684349246872292687076389757920864115872285816177206788060540722338909051292850965951794411073952808355879425697193829658302207461443113008849241330597358680532921384248301701969937643007876802814856707106969640830223160870586088180057375353613098230904182396333866632236599114438334106923165700284072766521786501628104067582359519141440130598264735407065215879062171147848981688742012695511631156848241031767967804312927690047125946145558405200194647987068453672706822679466684311359317085699546062133106024395511145836542754741694771693408098979335657922833967290889418514922049620803938916743517354377550059842135423777443890108436408187513226560078512658072736279968951776049875658439053909233002286562955274007515965651764133741649734100023390337572698232561545093261935076648391938165578573143573421138813621059797700708890514989943186349637897286130508163984760830459593477471409210168970155349048866372559047246356890117208469657419796584274724613171477302371842834416907961361767642510503759104319992435533197814096539320986783661848160455285683016961938061757700567656869226248315159706091800035627589231299750677514728093416618196699581154238866548473857112513573227369910220036323792263157219063851270858311246346986150258602291266637245404585571294703896576340735636771550084320459738134893415232647734676656970301390351624021318132353541436845095754797617883119619877194851648104756584165297654694918395289704662611424658073877515961881691196592850923695972917346023372743994079583304768733109877933847148829066935439121854876167919581408563847627708631474977994596295824777882422915896771739139156046521053804890240421435160697283735204942633589301567305308645059290874529603004372034051859967706365977110801876532548193149130022348983597430780359937873619345091635018714821509436535797889582928004354761297626927650242411557589918973877669553111622371819403132133279384464513748899220859163142669217103219115232732035517323069863834304006478046160894771642166387030958009589895370199062113876466384269470087366571627065632316578277580500425606729818756754233070820504144517620766232758758385005996804700346559985297257174140707888774272311540086526501978643025838971416949122757151419905920542431161020161052786362490948300140471346281339932426042896651664251566958987216076499169374140442754642385616567599625617818023209739150382880913417620385022017847822326219548329709890471175855029570111465246142233214009786701487100381989451303967577767193319426517517755730241026668976909872422425960323979089402447344724854172800325991304218419567643949643067431013326348954833046067874851256769487081928060642339271399421649964559329220051593900553782072117516234434646122078440194087004567125355068080048600342806508145801214536044128369155102026210903541765438772315511585948950289828915568445098967456740394754623798438514480533185928935964876839041363945931310512841990564816968338174874694719292608694552969598303066574322442200933399016991338156766566566716945541581349993292830510074652904890851776619708840887875575720042188550015381948521114689067049921890093715413704251867723232181164824318242675687402650769394101293409143540147163142888581846869759797623705623260434630249373818799215302232530955202541227189971857028777296486786447782730635119204111574235061739988564370663434353048886582963050098921963517739255902247148482440084527633321306834361005375898795929464220652706526642697862732876235710884719415823032249013523820484260783156975737546138678033768099875268783398962995568851030432622551793416553370252847013093182950694437907860177598155631997460087604766880375710850869135734863635976300359157537281207788195542412521116644124104353764798249770382029110714639442361543047570469664059342464008301607893353747821065364987456827513207448684118968096314613676677910112044820188995014909529536576912836882075194386676203225482493657876840895860002303977942261019864878803210713674552318989286612759847869818326151956807405085382880214781898931555306150007901046574776024732542390117433389273259396448250163281538260157040164786091156529464220692580721502585891656478241850296553800390018222638138708826148618940795466571209887066786405387520819191739073700294760537225732279013402011290043130328124959606470944847450753834823990975131090036718296288361631242964194945769184576101954769417724367025195042703426958998904546209303369419142976249675471190626760493263549843974841388314623295794267310540917738581284755674411049765231064305352094790068775058395399312060629773845087833349487698047450166567037607959500977935270664232589125678165018051907398067029294914210073735567436279747091646426065719595742728216763780766125905104692888399496765515912472458766184149114361829422422880142668570465565462282515207932204308463608399622456447560682216811860057568527485856882272484253196276769566203258062305027786380472210510848272316745232418745825534553864165974363586218863616404321730361405375394748486085621936451412924876500605596078556100282185279514265054064515420961534238833270627567593941145849499499147997621387548967959479177679137543775945501642653247325736128299287720474594820015339891884291075461707014852145606940656106933266611479503552533323246835899738102588583815249428929484235763354664835087469088738698307111499569014834837589552272603672287619014664142692122529151420243125037508751183180711774624237423115005983502261724864535481446709630254710150516615007408665863543143693652969142331633769888905881530993814554268248559556762082361733316662390271660603518323181555269117819196368338554451809467610302188504673419643472479877793135481672546909381623252177086672313951993103282881159666048258655875192389920172461568121886505553853621892918721866815587500205036177659852467078262078359098666498623488542166292414398401845106907527469022288215451698241188375212318817630629330683770994219700305406941822915549765779853253005790155889015806460759573470049493917009959456845970619240235524636242720585511785559844758145529032473178177176577682641885422355511137781284142363916633784724434322644057908067921923145428153851813906030943521715494170997620344970046384797792581043965414302268887983250371825726684611780968018017773912666872055061128729829926699650871613693979648322648221983598478701779549923719227330291465648541645032567945263410876481555143914858356693303933090196309990059638473719725935597390108653157359649897422545555293692573944999809815611285223741040792194995456743987368388928221137755361036727870296698118306278881634379352518616177090672794353709147791770785089010478293588716558162485975422031130945470983668624784002582199308589755146743528867292796434161217705560943194869040324273221671779123415068036566895214244455963269085574494132847629277823465035724819547698028764784497046480329580378742437383355493566250823431152121772595993457886651845425557585958331559075651080940780534687287600974013353034457992943042925316634635383288230247065051441749036345180711615945362851511267814626958998412850763910942962890121529342560333341687114709060955609918152848302682409001833985339233224546513124636425736173992676540849939980642773369267808731905212173508542778973760202688769279466987376214375288500619047493876050905801604842517904168811739504448809255563545602755205065624688378053773294650561905678700290541823254563340515825550067539320362392234015965241566154414606774510471959708232393885595165011731081622086308208861032433997274052990044550588459552139245322780183527839949623290238942705426185158308142630624084541416393120878320542703482869470863658388147889663957649759895814414771695023351440420949073338353109980590228609586554376098235571003490070465317169632575927375852069394617409135640628978914181081198066579401351498316874568526834760027874330118894754935120427859514862668525456078106514303926148773601271605788500233856307812766487685704503187466186469874565283522857611594141818823028511087017626504679048340012738106574699476590418199117946695581122557932854870495945535144924342700657477185536502083193898253157096983911938945126490489380327249946776888955738521353173325564472616494958022254137896970353781074812248842861944566351477242764690551111729209597843895723705211125680760132748218658793934444028326856666695339246128722377922934372380709710398847489796748032935957379112317038727671995002049920490623098679987806792369976417858945477768705207797694265418240561400807316931150114782213155754089503485352470497041249898915899077984277200914829358071171953593502121950204463406632621277667375608519393358132300976244542679403153595755124338785578359402461278901097148121577754857577682641354466460677449866697777958862188635149318698087545854720631108745702380972974519933884159191468760352460801441633009150406851298660333647743083814731017187615947744088192534404736629988465860493863853229647656973269460895569814143656817004161433924185940868350322818660290487602918935890530343846174751503862993848433883996551191590152858487088393543778006791191552064740546584862510520381411603414049294221229101439925528921921394496529112204162716112239798698502971715084473177651220456850472619995197066768455666296859073291117367593285993199258789032165039530099797228428367066906140353450755761903247428024993918577078360862839838527951277342524367914403961743897563488632821027570373421957929868431347498337943414124752417600719112891013093605556718011401150011811680612906090221304710919479588990202568433138815703210022004588687221957310592246786924623879885966593407210243447344981043378150916982532761330108331039656145526452187936840303443989340659903260035307489104340981890960799954415740787704187669299137417300551879066510273821860830113769811819580785803431694511864129220988852854051763394176739645069284523461389728547679774349403175263869363549131976808060959295682031681286808880797898843968471765663099019891031235594763139525530295941511612251415687118805172828978033838452132900761423395988277628619042504036488989331317145969966264268979369658389924236000289667420709408425695726475020965836782032955151618631644789305775631900136306733862659749501588629872449755459434862589156055054974048757096697278514654763917261656050555272710999935106310567341044733834042458224461790179414891015424161630990106414334015243955015261218022685336462394955322838673910290393803961484526140685937671440243523299176481944566824012943793703636840832978258466315937637717207069708344040949078702908771826953465283732797669525610519606998649773019036282144948659978919292950233189193351966340428984058865923727562559367714617167440881609988504883588453181680521788911304561119385798871404370133329670953263923741500203385218537897199331356465225760834285389733426334988676153699135142658694094739793095739478884319274391976959844350202171757358528003508869898379325086650642436943095390778577664006959408592646640525453360216587318230902536577552415956146965269180532826436108972409005252922680105618914774333123457383658248021831027206764333945604765921026905023217118269875139000845196629797187366930462311285613848488477317726559050014434510386922433556615670703102394610649598178790016265174955454543069851758676781545516413904682461505064886025631561095974877948044256644149655878918328398954126753867822049389670882363528428703122024710986636700206276127271646959061455207620320033960105284806135245800735763784421537607321333631901128275918674644933004460660989907503793063761992087139737838649859886383433087986022941742688886382010370429365676940475615444024413078262019993591779215005796837515622647413321787453748383134116496301793544967066575653870142409328658795453427668909337245660931209239423428198315931428212506992765268481018641014122034765468685733235090280007962002607304200571809881820240094476685912578009873123736400761838935420991359451420257342679410498623248891805563260807442693086537171175486242733149906616616931637453544145439060323485215753059238428670102165722370060212127126090442477040989908504271132270603555967438401550846406969387705347695559436280900345254785865084403266722525520265789635742775489021541090397562282265746014743038749063837248671568351541417345402035389653493914322442016337540610178142239451264901214800096534893968321484441421977912441622792910111309522851292392609631775667111903814230940872697273493752147150844158029225840188661956923169826955756464845379634739238626326197640772668399855391554430993871621156260567662726455885415424806377188444646486979294250343369050730766687007643946978435568656078305441034284323831182161184174481540296429482330448291480286057927657216858294639935960824840889394041379347369239033461645174634099186503578836444267442460030492697370611277795933577352700457333442139262995388416391123038376644072517168413827028402819460645842705540479351745482019272795163304487131768235854778941631594130382151477884996325929278205814963748861132859534489946000691563946346930399919151342498823833328030583746014429003271536694038490062647617808383885622965678296037036738530620268240901227248369225862045456843715119631465978975429655450312395868734924654897943961094680470167110672336941454997148947582915984072544295421127084073574783853448388786940252327885033607394871508919559659331221073942986180051700706707295372629516637296025457952443237230521984438639882202783695518865262014153721232569452384012345108054217953301664249783285962678270570850885930197897539027313609865214871044305983760771043270422592172852492190410664845533361764607575385886963631090333511770803578809796867310338041662013301433505723692177323661384786902526368074711569560478611082355029883818873691380974191211490810015940944628560914708014238110692231610155618620925350127628060458104080844112559299084418734389756763325622701683965901114531886742197493030282975949299577039774548132582786738752811689961752406875997038730834276274209864659549278901164272986927175737286902488437213010995739739844147641407273279090293955233753035460272710607591436033766391626690053864356758337495557364926831973469174265357712483679823782767025985865729264259236800036842694509313489361671060860316158819556355946740670356522188269207992508381387654365775292088585773208253414971721485197481939160299038992324367887987571546590360017241398001929963576172631579598803645661252744096120186593647279134549538867374342446089740590860107583437504827517999268022984242607823412525164479550034304201420371973518003247960873098909149545683175972811408510550074602067550194600965859828851756451986252099490935697250996730571440328638560162718686575521186477295906215974238835552587946919539369870624917650876698201729669895735822702328877274910196033159126327754557103236391084684763827413653886051274367772749335822052462444074335041806023517060118102803963111330784273733810494838972173522964093062172091660497025652754211965823927414691347038214916441969398891144053501233996631481834921723166747192361234328557691292460228952884260510339570787060219901066673961552586224050588460731448193972063539855721493630651679809167733232085194394780610015179361754024989806886752801097581113611827054357905915682275039234789873345515431406838025339748682821246701440687275874651493510458622943012723445395155166597185999324846529276682207212621127006997503569890385702576178964553517011341639496218532979886886195225043022161638698448765463683037336759795379508526085573356230574540678050616210507455574695673737341046648308206719180078576094379854874408357534300833477841337900920539741291248961938813312000470731356338832329785472271063225122501576124957448707952336044535850660553642414567872397091368584653776215585606701831985094122563316492325977947556998257667222179344715541159479004316937042342165802848509505750318272782466411085352970723324132886984132733579673852220041776109309501017326629541541884248131631986412844482422207011261912442371596515745808846159127286455676376363068889962154783529335140299904880204203797027771447508285688876895609514304932257131337607373136781823344570702740815828055583786229594639994663352715179932222582210773066117733110363259446209762037543975517836077418972212136102798037271012440404085276281910305894803622580440712845612478209823404530904533053390852564571230818642362668125627841662193101204614085982638787812541259803049131937619878798211260363099733752229145759208417983530148161211644671074781507108841312640407948018038650905046708339088232313547288762296031955164717711583844354706592268510091753142385011226588381406412708518732634140567400681457709433482855773205790678710015545641362718581394317141843912173750897539232135312823268061725120076960165566066336377832614898578530996238951387847705601418739981902888768230297137005051322716021259342483029667469575214657965421590862407424083517238952133061275356542003421995341314061747943089032376536100206414320195475084927495062059831247383213396055281878896722818641908811746957292463692249002740380008928812474704537550501479244557213527113501037589347452885420826783024840870202327803062609433035410294426159143172366095195984007436891725976442667614500962684108564985284733440535580668916829465429089291968102242904577984305404312194151722178855815092801270908120798829786013578447793577490675176771107496605613689122770532279780524333051803074991065067419309245961356732276172439933129841617714420410362055840008178393290450552119643921996328658902234046830042142192936262086746816737636896992854328981760758155989599979048194761519790320076678839223448734742099139410922275089514851079803850063437604309091218291833378298698688026199286587673739964432215669456461307594229129794674130254919452874626145124810311046069417902406423173405367671328559098822247745128625531170263637766292241540604266454470622592997200798944887432234135432400016800223225846929799828569796139408595965424800141177551739094267710719403352503627027333999834988193914920730902506670821335272143415493960795212819335737202583019906131601799316885905386729390648936662284690085013726853420276113049708384664951843423646676652706275345616287657508694869077650413888491124417099173642025667608849618097335998282702643550887070270745806347374669682779580077140992171651226658483255679754676633401892046931448442436805255660779345549848448240020297717062507263177442021238193294220366746041461904571399145110907058346757930748908606328169681493934186183769001650111359399700043662840204493081890692097070774791174010211617793409611019630573031333567745917600962946011937986175556162281970584254707977325465574620096051234960097192805456314047579502181509946227748678808681883217055125860415394410086707631448119578447242757362838004777227443148389523704471762506160924332772969601651537136205835885805422324299745810441670618183866861554421260183007557702514363018769143302756575609352242890942826464037746181928962666491127522430707298192083352490861579465093091680755261027413571626483871655675250127986469016985156218087774814954551925477669181181089044843342645489217402429581492426999121968743147520157452872380509002898292827652686321272480653214637111929880769816044216459725459666246648858806909319489187421185634415010710392726542169722654708285599148592563229135961233406484065868653202577696238714663080560387895543409853178695796297942612630666276498647058028200188256929099596254597457410497369548588818384150874555783982590795278609557208267035008328985949966216224198675157586521974821645414064225160156591723347990272032635097678941584707395215590631977325326751385820588369456363003956678241546572899440126634534539382291365686885117202600251288469899921698059980533156367417096759324967545333162718021317580653161893218980298125753404494592162645939574000755789402489038942894581809859183928975010292179226737100815988496920542725304976102654294059279604019998518543247005014359550566775123629358997281879733760905582716833692309160476735602665493088512961342130321936790579641678622063408920065247003507331947152380259200147996686515167646058907190587207753551862269737027210060022268635386366198739755024518334494968659461306212177879896819834665952098641754473476724478668003085691382722981866605874933866333428262837516067217416261070399058777154271222932856904188083976421683642764167369329444695578376914987282025371656706691670851382418663319680581348051237013282268194103104107769430241319704781236206651454981015453771270919976945059852575050527568261567279459463805885661905662459753945247724769909525817235045792179606424960141274668517640410476336662895860345537890592526400920975034053600340172512447911583441772830679614092868539148261736990909008445784612589463742395931352095654995546371035530684138264523038877368065977339259463620410317243504312630778676282896417760098302569347770053259208243003623135782941529025344120663623925381401925699419371093666502695184512924147137065085026629964804192316465363320269572915821089036504353764654477727217020944649941890268100843470332803052046811098615969526459798803598977844301202261597883264295362509240504470633219021792945222716606513049411675712840860946431935855412043563183777409323985535039669599713739113585252147851618558030206172993449431655216683811394989719298291936894136232590565189547377432331419227770218890846836200719659888786957580013110245934908258287829525591630697274755326252598699973866864420535402537254251221612627751288254733059812107949576700759211234699193417693103319592441407800001400027708115972279671193761362859988599393068245291161685887137993954973773487056199734693572976237231926418269077237033945784324202697003962587397772349120845252878651028889372548009553461142086505561017949482846210951931041689209858925895990960547331840889412964060679835724742535030442989350556451612553063568890043947934272723367631984556016781693225949383926376413753674180833550257324424118313947028660701941891470799105843697354609584298384383924347391492135317788544546417204954325996619991853521688066990066235787520348052944611302922939162043014496625098109206875935566937743340092439365599018305962935191238902288578890447421524978640593933114363070276423498812775879203905110380977440444280075654247905283093953772871217343575934736456650704917552434981830266423699709565330323438074537597798082587524085882149179012009100090925573319649349606416354783274952032096490623080981596001568315183258055563507213897755079905752462930759284234039654635854786800141307306586413287457880263936790420568349453584053650245077783203472951582486442725678936508180857508630323966633012723937791425142827828462161505567309733101281240479104999944537327421237394894784790648964421830114201368729166852869735374879452256989135170881096037091354082165915044076053360751029855207457393814443991774867380616822563233704683761418171363408406170330734825600077607439930747181042156700392927438593021613642279965670832699177703927418857641373962775424887015564289680608387764575284713813523363853411151793757461645643953009052029886490854631759084908795968960885536635269709763025430182489110050962426026516053716971860245586250654190919063082359952834534524685887285572316544392579676755637383861320312345336170672735056028566405725394095293817429229931028762615702403745378026717772619082783690576574655175144304441441034560475538405371703927850271917375203375121479103824110741118267245981363917416691485341532366585778894715616319229745818425646198895329117633054348935169769295409870697492198465572393606226687042146078062305658407893184377080217184080899974145975425336800624778903469671117174261275810847358560059411372047283321789354341446679032920868805443615653596167015812343907343351609983018048423750758867758517290689474241954077084678946563854897930072557134346827562184628517178117228762208437281347766335030233471714059299375052419677938908734860960805028352522212627093351080602777969791751591323704161894215527966405489559070160796714742104468018511395709406713053492489594282839913321307817164774153944906855149271821691043598028310371443697244996145799196319510396431995064660724792548683437569973607421859228969695949631697755937911301424894346930408472122069204783292584641882352441802648407350904554856511729380307591400877623145292337459090568926087713184338018727511001950421510175297010001132476724441580578761745698904930851370570337122543417282525932056591506863651315655469452794797808450097451986623683204552628769771632080233272209338797412676645033847351868619062824116882748331754129730613223929101512630475724390443917208965453275498237044325070283643421857009423698521890567114478302672346697540550758558836133986833628571842178636887256022060415806038612327723566211645702905427698374507210310431324737656937222649695521701051243411930509281005297622172290264294015326100606093851278000615344175735668434755076347096266917199214750814101158474815875950301636430712202024146306032131605391344319533487181895021458973705055753074663212779436827457930246530042762658697181498122889141307932688179240569483148478449663647802788730734485254443499351802733138518836001091189786215974566599294961245811515438968051897813969095463411820991507217239636355814231818393142565550485635159810672139998071760330479103690275908727635319159886561843634570377875497862387859530129347143452629668040168191907337807597267454532546816470887326391361187204726270758935610786455615994856649666552045560274511652217225639188283237665004788011347696612214243088979855796841639812145426014766908580905529837320343157127816615959346137886266535692829573373131291508450834053718029742220494857534176174491527753266790766371928513635921258011678932895984287056674533177638464502278239646473548719190930472360062682940209653772382931945223802121933819946786891861730506494624007985346378883290762293496206854856063660250481708939296399329164103896730205343167921738603614138811508844890445438559766465553849331238877486536366205334363393454267968285449799965843864613288173437751465819002597734691301277854690352894198433148408394405388427562122454341222584047567007844372095464287054723643846150204136057278729199304280003282248970939938467317510911297249062149927644423049311323376043992974996126436226064961500666646348172579667503198101446714119014922336656054553469078852141554011925290696308131794431637750914238279969736356912313152593284367425362557339705632852750747999433909246698862918208780634855141537682760242291214045935187241964159094870016188694973291827849649542609091819910668887979007666444531989288956430938621154272256501590992368686209580369439747741852640735100209617985487159287513633798876731886709333605359455238977320521871099638485837139636368098170879803474889442928238365823754160148166978047758929936361452683901813008919569279596788907926797030703889332956458207457717288573872265442105417948195880560940580718457823620331710971300842254730860726826365925464502681121530695820235830200167897221548376798314135864514996323376672501923146341151018724297063129532050147181980232092871496269687336343547901755656883830143970393563672700461011841132500766669501061868644614412358639309148735309104315924486820963120384497403924001877234556431831489271579269650217219220016003530932554232646745792868641762294449182298134879948043321850755418298625743884993126849463197995277908801883352846022847887130354030328265734184415262225527868849644242855418672059689527400264278486038022547037899993070300359261672036252685320585733913424779631956150324252180460131495447821899228173948854321808752422362334480268742728370441706171844576982899001046161429810954354294758363148246629927510749130177282207644400367718329177559529040684598649262694693873050210568474296208806045989547267879914485671591542909071931197387683305069367545907612265694643551660684877949105153373553641877103093762560349286964454247561591616434416163078905389265196639495864794107470485920601753655588571230696791332721899964880933319983695653703921953771678764104336324954809967662820973283168159722416633018705733694092511468268930882666739454753448882362993078903087709616602124946294816919316382017624417119131040231986111104874729185769559382129746923192258859607209005074637179506985462538441621436047461286891415951687597062082590964918292809535880054977941411581043040289750740005313863174732888303626591808250495792079891963605196040763763252658718862619633233181217017713645989598394289327962073304767403366011559376943567367580357514354358635391079446357582692928114411152965107948166102756974871452208446280133387060607516698543823782940834853506754880348660706092141586965832173639181270498496760463851645218959132357955653647181110313285843190604123393848992372280650371195006566642286319842178608418860347319207013762555171407127275345620684979518967393580147852846026777818959481993799223355183718560181726243289464206355136292430621637568629514926252721912028779600341643074596519552788263292789469473385756818268191278936076145841597155871053432581402861906397345068215018157882976970819629966010299085355717756551324250922553831751005467565264712396416472401750470530221063474459046594143040614586145417988915794798154678604300280088004874051612532271583078286552179325539655780638999379144929732957877221414587794127201586600322229464268148657258196253617615756378373123121273847686761688737468466626767564126477244058773892243834611587632386162725283003655756856676332990079598794592397037131317972857576481120868408132970039002798827744083609474503388987144981554769913766308528196510551135985594176629071075447029882735962730756805319662266065828075826474473662453329757668100316671441592035912216938034453548005823532365666843076891441547991720768218583303309205530672978627418885308358558320693376481421758842327995400382657319318780791221080925646315498008967857686026896362676009263973623677597539939712931371323574449446859368222616034672545297186141762899095016256848422132070075899419164041856699458191471597356407002961650711251465623464998513907916128322423590658686503461588926709337894838489377724505772166120079915253041278621693061810347372756879431391426745683962322941872505589848611795853424006419071692099519598856090434394064773801015276621845193991561766908882428498330682991351149151517244662417790536981219037555292198170875896317082280929587344201433683676801158373089075279185324837832795892446102581834942483465892749036713243191227252604106155212479180929018952673345583619304184458715282997586298357930556185758826628791766203186665711385316672114551702604937959649260294633319328490864961520392867194575786957940203118367208955388477363540626012077898652390606444507418786413479739626221647641780073893859085946510891648685936682373979261374635345471601678934328657369582941069827755021366342661654602558843462407924040085546960950688594232744723010602983415300510268779048331706519689393161576987942565972097610727566843780785674093263857121569833257573077851434295049942414780316979444234349232380718676743681408317757258778166556709897569827694313969262480055616746947372664221682391046241587630024197462486164895664732129059542696379147586439434391652485307341973897482716453460835026836122619534677841568557406490578320511712304734787973263973959572830877224236897016869984197336843105644666236884722233352468015572609429290099067053474886174350300338108677349599572999907857704461162914169323194078070123139506414093569019959353103809331256313811646432842842276697240185091387849006112262362904914666575173978723346264660325904121355210319638817171741794479621314189580830812095183849057634690929018984355997871697708640131770221512971890996920761977595305453328233942066369481346108984032665839652762341017035561065979005941898068809040688274348789938118552161499220475872484951655681665956009488476222395157672415980910502616513720799607525379941440968361794005238211818790461759924081571455618274373280889966243598695150740599506502915497286072190495365710667019883057401842571609873482468711486503381220796521150578400362436635452417061045225004372475120532116614369873509844985615173381486307977529629598818157657132792059237983903475423586491463104066059638056626329223851175227037602534835729421053019119657351403815275710726896511648465203630704784148649215613043254887161015694414422086500634517545953500438287020496534422756206086343274000114500657878242528661573189385920858367115096229957320331608061192702201488871950662448170703706095659366865685792583979885340401598168361509711483540778324208669212387579957320606223433405832399841179222085157724223786596613462704386248150563470117155963582195956807249393580529049560776072332913063775944042986863363037045922271393424195797980283108344710955851756974182142756699831728312582628190884779733793084138631156423898807047373054447292907878876920747993145387910181972848702879065358930544500444863351847163099575692639593582057914245867623989490003684196500401498722878218510198283660136770217654558460395803754949753028568341500785110808872312875551545618875635907293473013787587968946754435961151891555694407663623686318938843007994392782826712482010033946276759236701087643443445378124349863636285512242697515745209158970602349120625488374706974521325023001235712119709616240548583321451568066995729192505364783006205875825510620492976637765408210862074470075832011930769997860029252008595953645569349542653090093156151476265531022109462179785450662072567184838537776614709819100608921090220589264809504837493429870620506241032965643062709523293978206346850152291762387638825998992354237534577003886203114057213344309953715448050134956656528755522373423715318907122916105932126404183160439492683067133428240749311357706070986608115252736243990152484782544453042297846618770236506257622896230119566736431047162317873240161712389074937596406722147263943648904182947079696427479876104946052634601647600518841778569008727257000707179186866914256461719710213286310734140562699825118668995676519030728597692689567647707378878114745627013303606743038984956071929237776577610816148467000698403979756238296716875808099576920209464750349361816586543673122762494766798932564417786214512293785729857102894989612866781502167154972786652930712355580912729789186508763439755999251402586264713619883272214684091427487855662672353058386571544341453801998120478335101736008519702146142249087505975456771740741739630063043603676465009894788844637598929554239940042853987758736908907001011124561640876442710361971700702071854503220482025502336566478063964599076836957688255579661611513019027540103522070182342774215750408921988629194380467265192508915485798045448837201048567819611637752950599278716584841056052159599949966779532156645534450011174609663263726922679938177706722743816663889004038367554707696747329669539388912947038806408983781099364918370037892931989209112974238587347912603479198923211910770996404753153534650534453036677961912077204607968295736325893188603219737336978826282373291310086372407320665612157084725317722491128868818035434742812801498731547630749691757876071910519047297979230874676418101720964921542922689780250370038287065478311367326906562207707373831774051728686936838948256580384269704675146204215090924766551190625253106635934482815656768022141886592965252415552603613375628610654190137606599415508052210976449787432076987068299024535879441914870426524349516113114337703269755884226068878219982600356423756696632475223901508782108609340663598643807030035978882154906411199602895896752799397295595284826881520238300049473303375853335937848602273382937161582354492966130538277589177598045277944015254469421933957004108723612597258725233647112638916364083774528516408117312502431461259680714759464012401521434539403292831332963973381439627448933943498669137174615620915034676548423629136244035390828193369789387885687130986473630367641835130140054905171963324639781319185004027563491341200321583867027486921834881251305287719233785089254878933099245078520110219276614085262698154446371033580584603093459803715293150113930065648999769462047235359432283960816343464523877808901024076742349269785158928081801875662536710334642368038662965934043180847994104195266423282145046093652542314608579049522947992267941693383168046838248524807706607718493194454188597837641247508819362523742955526074594095462386449107964999636074350121085656038823688227254682666419335865801898305839819225234825888475843779648296163751247607807110140724916504470038811979677483673572401524031592800025394108891048074362233204298345856766670372586594542701244032854579619840533413605033108919967928513430323361159398146169485213752832549964116562303561721728659163330115064587572519723263988232202151300989751989245596783583972622740142604382940069586603826168594789318568542510560383305860674596527993335706893517671226978080029249373021424707165020372966185433180837658672912237364573909279825559157518405163975465245673857073881285148204706065200054468987576027979451704875336377630199511242657199049974513051424641016029137295564606759609400364030012424253794230928865762556082245149295568439582999564628622081499811434596347755752580942423936402571470447827315214802693959507266161410711673487774576320597892145718537032502643547931007832422903052940519145726728144430488625530090269103577633330473619268052850093514449658396340634960355247947939244652421044383684679684448831418987515188797709428665929204108151874653203771334499420927006554540504666268869392862926893792125656378654809879112913610008503358084206527091998200126224743487448236002741018272351785643939083392032569155619883040203433065957855737346724946137352540421900826126395096486958047086463027760161532896703393160021604282459533027911876994246870632991343885471226885481967621365429652125998888776009427526915577267738604571816498799597329883775219656372880048595983032566094522633872664655384172149377562177633468030961054690690425881920658635418879157735995944603981234432178007003857658316597304823893074619557597600446898197042486545967137483160017491805688161987355340702661206964149823432772452622002576483794253198158225975306663235384711339092807647059504093363827444391911411167121751795798550445877969657930057252628875678966688685649153409719726064384663853999033995840059767474839171148824803248069544423242421037119317073601775423753642783895383468213135385436285087929834359062572974416195043541719439272253893361679811108980638794407408343146915029914007736355155088374611373022506513498235973121389186762887715134417368118933483056934338062590129473660859958841919070420036991095977139299899319631540790795166559394193589898667214941786220756473297975923477436888463576115057950985705902815461047589531379756823727937487141990846709864652680999826823571275292620635002578766369579876945096051279009307929684927573601896204930954312057857670400926111631902240239262858547391668592937336583645923356018401537595112476372346989902005076585061028636753579074824956006280440030877913536426084625379536753583688738912660597774714101449522303978094163964114781444327182355791528849603645198667734544495898835700181079267069769805571978846246181688968603513306316839716342286223319813101112277237154477587187085389682707712493498053117555711674382631347861942611395399668903872626041887947542484545679512459501271783659075867253403842702358903595612227799683571874361449690049722598820606795768033816726197171496935850244253091402654947627271635519705530295932169846650722725804265832118082375218931015877517507886976437918086632225540967417349769673239370420058531198734308478664495890755057504539185709662604707903995291904139015698166988995435017989579498522206038087603135503799403392175757126037534625861031604201082448317206673070316016746204031417214472645558034807742814280307360349440587289873970030546895690484166528827402626231489228130771682651194708434787889137977906410184594859087613198883970427879855082877753969406978740740504595934136634769515700621699617577684988655576526836298594284873939899529814796919671366126309569664568453429341148421967908548955129883832119946656334097615734087558701828505944658945443195074319448049845296364007635943025784261253449687963978492337919870117692407629404883665528868974033547372809259028909650361872614297581611197675675779041005915684494937680524429867682659097003360927079867236416906734075275742847032634264497634202758728889715369375056163006923181240323104061609354218539040960094299046292984072665571794079898748879323576242631597785810837936828419992205589251869707055346951261167893685288234755162868897123682135679793907216029136098481167409675981224953968452546298606829741378141894730416444456299755856819671122878771985804643004381968288481778688620424517011517069514005157539269271602726091602322721061950396083807718479790631964240187163689482633836102888531497031525068907808260153201880603431074934013856132891182173731621481830041875239609243937260540870331132256524540988615288647941486894356229073236640779475949508477149176125856072839486167828420912456605343127743341326969584866435721668394782357726053785779559859208601887459370642587321172176255687316166599146388808102027193394598611101530097377975166486623422358806615218493702319975099615905264992274424285965897617619254618509368103568623218917548257106165633434287394331290698812505640788427892335126454398642820596471381698536891481168811792411199059751905097218039935953587879378666054085512962171513430245274400778291461050735704598863038267008184416826029469626042972912490089379279169245649151483128745365928044973455663025314497902459076865917458680168051992090995025424610919412285918770076502722313506650846948141385322655498665538176876723253232308957073822735709278456504590641581337142436173049313938386743976813991450393589048817236792183707071213140146278509541124800539477707627078092154498800847587326069339257202516081338187475705500686302969352569546508883419056769823799024680809958188374356564579466775962759141303948865810693892960434098741981352630470970574550996523481852863012840944945904149735570243806573555001489276173666556912536883842043311444952403163606836324179244590936513030878850012429747104606801581009374355611597608575723913503610998654901269208843501648800894566957035604649661620529905157485507540268147804951470986617616829517476203544595026120699480405667885225811925668564685009225877180778830023008276523890732597938976749835031513996860140581110324749644677394745357245423567767749252178227604768047299048918376926724174972976297231448771665046495716547210673262443836887911020091799606810371008462790005460562667030769274580035916243154343043696816655685342931032804913758058823496365162132643223823569280006528438410300675542181639933412934122529807720376471349201361646639147266780901972446303664898285128586871929451766032764678345182647752739791733024963284241622643393925188304029204398177472574270553385797382139520292808367278682999281366969734958203515001240387936729250809765923757740010845425653990149978722405357871983688027068581033572073700376599006045145182057318802485342349009065395987463144241990804214408122529755599676086313673571992364124825914213960343553730248794060011974437947744001209040918797338104569507452221778251845541357400230873153142766603379391269537957711618645684633802448745468915351942224670287768216371361872080040849427040507793279278817599562225218356764186689146951777620989032724095571517572707625866833960699870974516662403087055792075412959383466856095754605095044435535214011305475463227020257532207156332476336639659811480674695849789602194018123263318783880873509724258090591359007059495155596352739984505247248316325436471455829700741283636370434038142623362539029002131038253259003430851454662451163859028262958925379542622947286424868815027516450279658518633339023056858251848033462644129944464808164497301094603223673437465000392273013335206535416223845475686200210351726790580739786150187758310700229993257955867846156345438019880724428257920686106704419239673877967801514716312484980753837315155606307252835212826876152480042034423411600191622520913526216542013295185204802231878728418317290001557758620076679588004223853432113354249120648237300131144322614050363366453040913009320516145816326111128598914885549789201496220575622933465720310955416412740907082472638289776293271925034330990763241573154248326043830164804285549266876886379261632376372048226665068098522901056467503702296011869271560894262193430239343234438547772706448059134399095520540374777367897383949564625378682649272908142139643136595315499768878881840404291880600768885921587640493074992310032720180986100484774458655126574383105697939891095117724449943833011700765340605863116904645234302597853266235703840193874511523992642473390468164571852739327048527819366922947020453771075471081136066975297213002255274722019954750390512096211303800801858273512419124962533226251214844112519949255625567602597264906238593611317893946316117435952611779757939102396105881662975253949326076724383988512414320048313671498590991607350119812649995641301836800151729583745337680962900164171806783645640315640124699145081443623902401725063710316850045394641957075003442726614478184027642374542755913125230996903365968104122606599323618530264067082957279339563928625475626606037250286569722004339718992825797329213219841004358727345098228361522229613999083677765289164847760097338076826720624898780329456942041005121246476583745298672141084337669394049284376983068738981551746021564701337172785019077269210749466715450573530277179178873050947601706372061562681223463358520037158921815575702365876851651482912769264257107071954586260690514110971897101047850346086644847504509674905069325949119424771367854077361757923711248804763261863043727971246442292089971766947559641395654263563590176588932679231526369741419683331474699132102662845269588688807360726032539922677482472466579148114593979734747575009757049841803110328518657146438207420722589422464473917196898098534560697867550772100192986915044728249326198873308895152826186057666999833349146838012072236448955171483449665125130848214748593492845534790173113022138357166959133294064068799677928171771385810624034963913307681509834955180302046888338674784456093720748045209927716730623613853531345447199609043861159787015983236992645668142019788385178036555838788192806685864881013145950014431039469124223522384114107994896572329830583651385689065036338607015594084655152167313751264608541079311739288734638936285353382324733383742102592315698182843196110721829691732467238601832350503204631515943131891531366633840571585204219799993963144263069371674156076842051241021438474830277393140857044588344620919661072879688368488515198223183871524502498328972620775853943251302477556186711663129755231951846383342849667567646572749686971505244915066677176749569941478461837421845622290811567362018969162626492113127817225907853683835713566170893373717758690990204946020015032933494280857219802546408088729472572862288023236528894225747654544726659268679335029144151806958051683346239911967427801621973698434465058153205078502092618051654779216455479781644611825200551680078856207888361192226455737064194746410523998928117776809778071494997138634250885625866039555473076243757411956696336715882969740330254931609132228816201085127990553067691202541952140794838686373444032994569530709196322632799819125874472331634440672550008432746361231839536228422606275025030232445601063989312742962493635650292352379570988368898091433483212040210886383439257020830415884352368786354621771742438341830822608348324348128958915278982960548169890325303013941868828591279331656501946381852545904540216741676342466314819381714603342153519896532753781141453844916588810588314945826350703914325164720652745162615891921273478976184710092677118254925297262702790891773286131980507171910780958589656024366875349551526571224077229162171672042701043053477972805073478586263500110960731769858824000429639589766689214117145082086836604141380190399625415924045656880629908910655319905962698723439806352744659573322404617953082486078171137254030037182449663161837031722611417101446550907533831360358538269047154690483392115523861716329187731909378662891114202452278702151807633182594122909730623035776743120378372543935831265784749076427771105008438059403395826954058428633365554356190461867472469579606468280836741558161323509203963098988952956052422039549117696637146244788191242650527952010138842959575607770445072835844959822907193524475603183476579757295921085205075115541007070647308674144436774644380314314904623871607382842237694208471100555520968764223903685940130662774308648556720068927487362018228413198322188570337055297976566905182269385256721727878174668795797486315957131192418749074046370784534094979829416392880636242119747799347769220530041594683418123889383484081129432825344429020580592108370284726580079946114714288857345328166837551042051830509019000705237014959397353195688416635261829414088274617913116457900253286715435508733357052822408864586015429859199949827859380480774255573038516999452707232370520707498976023153800600231029616739838121981651387165540037967744295166407074315437425532452416296625574596134767746467609079785969745426218929438559710009095876687163619152016594186197266672231347455751708720921270859824646607117049449727456477433477902264338478671296634541808412675417231976769360358470403956750124911682884462520160226248785513786343807941663771551869588896788688959431909041163794538680904001595515405726160072993217672636410182396598580009359160744058294965175053472498903653262175932376311198940832734054370483830454536412926698287730214842627418375744266761893487317041323204024340940441098712839720332433632521857403413681968114604508554220127191048847638707482351046675196897779387119921271342358578740335207870149331065854093938149532904442856677218901412733739904158428067594614962936711113071756555503502307022893739607429740859926774027081199680681811012785261161724890460622744661297544297282174490357237019025680840364798188630684586171131976372892247607020074510294910335946512154526747545078530044113465939022804668703406137737183323973336568261967381508550864479278776713905823385087278884281521576108591782586190085080334866302874490437824003737693668146036633185143884799998884264523562600070730024234334027544117878687606538889247557226965478000312970103750948663002687345258659129543948351657186990886408462517367206565441117671575546600213801108460806048191692196410984134198971204036164208021198350467003591220089349083049589968192470595851069258426321167425971423598508248430304436004086681090487757678798490075149577482323448599199389651887107369112220222074907383577940953828539411475754542447708149605840196479853703437485971990717713362709510950604669959296743377644703261875971349678872305463175587135076636652392822039808064116065828057854698598122017597289852145386676419367650692200662553457927205177585482181931138181968357549942937610859452588479126061396706389288752974838439624478768048092971949783167510536528203120400160962056270780327636082773855349549755926296095154358918062065228204909146381773639232206056038560097172149874620366700769678640492739783126918013877145117623812651708957335101443187764468361632937843579843536469566679193422599479538247977044645825645719428100485407410890244914265046509813437875670220332182745140306984948751601951797882345624290490352471559516978458772489189540891905236829867068822583823608637823080153841005313411398617035166508403147845751707006613840420320265912698712301354264531654730984133305010495600779392295119593696518568528776292157796217193728630089418947869158189391463239218701539550084282372178099977901559787565924939723391506443534922409219674412977949586294088556387715131229363219639333422211594341334298709554937230456829543249132983982320667100544682493410752139521402941014602621313868245575715416992491474684664259360469360557128799002469266276303644043922622681111743218652197113529648956082997236584789869649849177913633245494113585228216148091597355271226448144930232235288169664513894070424904389771276375679435621582410980329808793517439416415899308540942820665503126753667876662424214296842341664874787462341321264257469764729549053124693564732014794652897141268539185667288212485791649098935335704917045609556487287401968859051116489478501504410566632949666746163138876907438418757748512246993155493858554565006014384358731510780924639578734244122329440243092131671093845462493495322955695494111697442855483643839582872984026317540642655866050825430311423563136196706215434016723281755020873250895638686293658959467332814967492603108038490988311726486007112176001306897280916976160006920469497374514668547008180828893803198875491097288589128886216267326741346027518920878667100471519977937849567865094906690601108066060971725811942099255825548532345982353453258242546085309744295359257906254041123128222444642226848084722012942609409921329478131424094316595802426710636121137357660083050010407075495492934938133680272258787877203604102098885794334447704588514645053170200075768560825317182232447761635431876949716312486226688512912708170256150109692993573469044738547429979996829447251466880549598043299462161736196219011808766512184444672632710448231139818119266176621695109396410270492812543390595284693226770036523882783722169029968677949070065548760355245616061513010909881634307841891970102744954271062621299271463593440727736430254579423585236850576082661209488507595970005732410585138047747782482275615846660167578293901556324991498548710950280569303458668857667926820549203617259725529568852202663349759767780867201985666181059354851963323209336359810216450820910047281506848863475991757920129334059542677410354453510026150785679893838262040910787620630897510559306188198148835618015945179923962890346737699666070973327514560500686849303798060382765382869958698587608562145903957085154916342325196321012321010753315825968697648484046113310480933672410218202118097261051702651110361981404798995586363848853804756376926914199327865470918849331570862138874105915180113387186969334684468063787810402103595956640102406632468563762676399303931322207593679942800906223355610065969508743228434157570482891916003682875077483325104944432417507160496379976156883647927134886748564239551880231739049223443402295311660225938970903411976311842135523427820744712325031063792854163082026149847354202798426564408970208350136050321137898585595494600975364812552194214469603982515006396697821106974989479599640171816751796380533599537242390440496517531492060950880236474732804797899957261593222052359588405660579336019361852030647735148959673452694132835278786193618693596350330422075940499924559249174422421564608864819142955101682719601632918070535008107463355035098233690297161209100748380741676399461271454429698668596481465745727619663507885409732390617258878514888298432945731010641034587195396112526089809247878359748203828995998886415099020096207689385947706683028381841990329839294459579654504458335647749649171163960453231415242288087174133280294790525162752186258363812905391470836718746893048259722283383063053222541580856258847869295243250268425403625954090464043804905446984809813972178574780024650634759143068459284207690723948059441021469726665693995223005864480254825115839653459135200691894692298595693673491982428256675328731701155881226250151058457254597271847439281606806907226637758652571354810843007348170443029070908722963768971934410893083283640459464076264242668331526378746041074323055143594211089174700610933113906672447150167184641288264252555159616353022799593030176757386291842888334887832388076470784624354238172918370514891938679229362838917141624615869080215498456422320918865180287741934142460321378141103525968220057125873218613673390793248325747096120741694023931770855828330568112233944379621346421596352275136645148176418085858765397640961449329194244103581273734247996680638036787538742520666834689639074558790211156033218210419289665708661329450728119196180600599889990045571021537533301083806229657584648480863902798044032117476685111856099343232238400833933555757367975263033115470721790620211422754497480669284347333253160694210969531584678063046453580264041968076772650487890554763136489689075308140204701314183903032079314863628142702288971104057742465234764926490823905584700973414401326548617413781233600515721013266805187446609782951953226467500822488580763096839896718729287487378053822005456093647740731910747228647116507068773972435589701670287191992022721666881821141300915209629822737327965531298532776578069108721316175028260522909296957548004154205259503496952672810864806521375107151546551708652655950485246199563423611965493178371884968205600482741162063100456052500070069789511593937420686532244147556058748673185362112027388172905435366894234579808128951811686931648007311279499479473300666264830623298092034397200467617384771846158211811589752951057215991021795920091245459786998948668765214695381868758663818353685947797972708527375093310627694600163030006604301937530117231376018536016623614580281786188154255104733804266958210461552298588225235045235423962955537822386288643068629566108632514754847921042855390874614365909663738780785739882791171453170272336041178109212590111582039863271917586489750665526879350294972629127416924768865613687720044651355075932320734576323693531839733300738802872817338967627241933404638555223035587046788911856909949447734187768393983862477714707923182329377933722745476036995822405785682616502224724262497330433253509434854098328954175948256218269245903437947467464549781330427507340896116817740661543475921339902695135623083926290116171217864062507775587751991535076589243357150129640629210213865564702126386355553162025520977091473887528301759628100020787044339994569043939569696362765983965831007391968618618706983218026083050208623310458713991184036524584837332260266168714530152736877862715876060210460163853392032234973455959560023001865273979343534765126143621130258131420538964835150540284988159150593636124158877995617494369209530769651752837958871214952264292731105376275725033305815468556627520666645192673728532305020964839032223954439097843744113606333878786820749033062414482472948474973338695022702373818314926726208020061616488239790321967091228135513396390357634398935895691745698785196986721143219183985502227768331175154526901356546108827515384967017409255166183460293328576775975736598149690894545619144846272023014884381587653904844582125260165699471769660317300985881632807881041610438757576182391185430486102567803439247766179615529389771817631776672604341658706983712388069392572626673422729887274173450080856338006685730288758129955368150448215361986302859483383694820165198564624368273375315187618993768745559804767006759759727956689021041933641445738461800377011288013201622960446920556417877868562984909684421598057674924664896126084376308759806042884127787936645309651301784645368323637974404777150665595674520169752801209578492439571739007050380168010711308244445735785268111903280416081570308481364988428588840820376420888523845709346962040382725933005593607133211803757387755812197679846565207200441069454258329650597594768325782007936802082132471157551126531981601426029615061298134340419654657946207727691584930097597261962013526495468531035308861675528024147414643391709122905026857599845741483813514658313676964373485965456946301525052077220442059392858339545054434571808229078301315380086594686930106975414455181697934161468841831614811345393113928791878790141484559750577074615463946683047824343316338656446764971590469617326644762034332935949383896617707482931295008099365848077781779057904079513449654735312469700676922922027186541503389797083839961063480535061018187922691143386489453609324825981029996009873776879760203696088412486893941624045320499198256841814392762294938527982895358780543789031498740932370842518209379052017218483599753693147870208294321713209319026215015996185558075283809161863103410698995189431963356395955053218142685471383631818236862464632717854304595765035965530819376198000084235965655353547160165465500006793051793793124866659348488410078354461696561180184863290045382335199445589320749604948777057786928197570871356424012231090763520481810811756062301690709861879647066386368320260309522914896298623002895747739508307269254677718698688321434128084251194759486098190771020601173993562153476413577117564203349699472139639389543183880919142802404827325840039445734098427988541653704165655111236494348975673873807546883439412735301566027821800439333370844914189244074821826274984651814233579578211381982655586935756890622259660159806754510757010102449812769082012906460329458528368727835942886690263114415148258583227208276349894432167971968766385723405140135988858391894805252727475231951837125811716581515694695807925557682252119987117262494520366056036016956297045165624723261762365114243940336641388742813641955348070112779220422432171468487319574861846588498125802110165131961630371652556279186026724221961661340925774834703071390030022890224535199690753873282068664228523079747759073740644286942406528748340059408150426176265723059421866452120436439238492564579790864880833830465232578331930964265905207026816280817694987680370141812851386659789530624326046909985912639628835473475398078310287801734249838477817026364266557125863351513133758185685280681738909814775113558361575140801750475851442413823846896477831233147422201008437505018562412010309568204029886592270111823888900577249917938509023061932572634681085717396672694485087561991508948780244382010786176932761715076146910199048440038921721141520017061113966506026946075246534014943625561536518124023879688817900758649141609961917766215612475368553253903437165282728122738795268429001068718100306578256149970971735175444839883136108215373122193746668777079209296098187462605742003187648787038056067334992777511480624444215895912556650597751678354078207969583576173900895266837901673644997830588911057031464518796153686777306326352920215048696473052149970647642575940403739981480064515505471939783531274387033157170565798201926562560271635145029355257094156193536649275523947909532577028825563085095663516387325417352883526099902074845679178453966093124125403826838627172400072722124482350606846033432872525566090396315080621920247973153933953373393613463029839231687191139657688841193240903653341516035294461934522417336681827799701805357521107854418036807071105227525842673726164333171603344518586178571658047324386798674265716352900396833526546048635382610233595972597005163622885478233501110293065036549743032089254105990235656778559395225703537162277321338164360853485352870645462514367188908548634865459939615721258790823101188435024835071794823802745738733678769415946605127954474087576906262724340701960033478548511612094558046634631856310158778810188720181279222723897653178900598344786867243351593265614197920537481415596144751704829400191072126818568453133851441774261598876833454521761246163447331562654938812303594718649642222393788568040490363025722784276362735582964102172028088083027221696891486620266418217317335147253231819321343925906005755665608821802860393891899220281246964963410897454405938985350521800458437348390377130732338131259645185965501290454181517356085108370865051539307329432746994354439964418826481584386332127854530052428024947511666127725085395679614289760738267578311101333869534154604145944668836903088515109448401625737996576021990101116065180972319321964229285988188630523558135402431171151163238020610405386815007666214735208566094009044278762650869638890178477172033236442318523509207205781055104966063805878526153563872463735659511973773433460502255329887729817702164025737474442200053040152979706424111085406704114641325059922562193919633891398497547861215698339175835748622125212104184049158544306230686943150438480947544476195110675119898882981404104011099978336549402537510667998188953903562781544709390932457458587626508894667718858882768308014714268423830335474554091057588854726729719980459532776076601100316104976397001794421501126669838209512528536922412518199310516362091116448381163443404848469711171201296070918825508515587577741166295930162121980593836603398293824593112625974893166268847890116095451148211005204377079322684132053275041121431408960304133672585196131722819255454736053497619299019598427970604379188055835891834526433976669367320450852295051673112625427411529839979201659744828259332547414397034677749922183103204333049949589879452633614925410418932536027934404767367079167224589977902390206341051722540275732692031386935216042263704160535614741955369489426969536929981865143170015920117780714340695514738863361243004182961108195882057646388019326639954137751043571164611866358742593356527400939231442497871848363052584657346178271715138196029496275261657262787653666663703458461172218374321244863673502799212349818268397397521628302393653963186242378812538308419647145764943747300595008537584209439308465782712975934082872724800494441534441595911647227327541467430242657601220077494264446449623699148930064158499207122578681482674738937203813945484671460682761651085815963466037855425740928789105783499467628566793107106176682139372101837393363928092662481819682489550395257784568285189308581082474494535954495248824856135370733671168694561625846826938586131150028520899376785466120039637340960896334193190847532664556233385795894121002870853415287019980681324737029417428557910294724361489747678730156107981638107009750657286543411468656242236542357106029736357020192400550513717366658389094468006506797755735856321434930784013246762650591129295569110762443377091154610535268416128361467303793438203836216215922252270537606695977954946459107827668293573406438105843762602020185212689179472388706185964714722793834916964867456001772259107052641715492868886489526300744637698606116369158723727601401897669051785945949198672412256484416265383321094531476097189175990495022070742309371192306375889038671774691710422456601891297342029266241701085812683525030671231523837789906354451245928664006214111304301537034866714545862706264039057459752165673022241768843291634048218350517263194454330195564029693911510186140827658356684564118388088723830919498907895860670910038797945735529079045469424713105205782364097086408257461893616970380856364972958577260790594720049859834123950904016810991879436731774392453963320885309095867534084121861150158789938522199628907265586641963855669687227997319111572938041344292098072525773983099031243411459259068575856034479589711161013344205553360113809212409989181506216955987851441794454151690886560758810085432180178117594409870489322544621371008332299494469401694222826747779454777594114856979803009845498748949551490055124402463478389308893357874933673642502793042922963254241745289070177372290725995470796022870892634336689851903540041022838439658213160766730039307801313294406557039196720575753863368338900477418776064099242089980274437225849703291988545670347550453165016303780228616612874490375907817244069663040008755934233927790215681951983871842745217754987288060561331445557018200911253345940009806471011317895573899620559178902622748364992177840216425525748267939820801690786507030255190473928100358118594524323459052252205233429453108607029811361954418206230579244484307628176238040789109861819954004638819217803338501814384897936441467284458682257053730020924258488167743906471682633290525535524235990268622268758480425816129969200486613050633452998990702406364714254476376862557129084288763314686509535127534896179599394837654095708163654021829204413223137799509661529459058303861924439717735776913366512619483724109786044454519918391830151684453308294140726254346526655817394435145125390201701734113360125901994051203496478627958055121660008440610874195464038650377035825333726957842109819031701817366548567417849107147314493477364876382878755973265308227598502866517017715738793874818087488595883852906183526662478192814830853225860978900411644261740086033536150915754879596079772263727229554484943128867753724100951375179729171585707060351772320064612377433556422773323313932652496976277051357970195341569893104686408333635811717369263791864058167593157965087355101412277201541255285755560566020831473616288360097909219286373829092926125848639711397699161349958759053002426353323924588378677967794524455926059768176144560897875487993133665359557044750631032620448695702817903764617538840331144643375458323264051226746808447885342526959824846680510242828519532195083584746301085065103098328016196960568383785125796274894313521971354108196697289329340824424923407618126948916029844682086518781986563177786221554654214004745424385282283159371388720976074368113255305648615912658785475685290876943936888092805128672571094952137859671468621000726753040753258191119359969202895017357724051657015190578774173842714337316523551532469883624750807104050679359269557728311982185201889854822786798725890724489357089784163717726742196949185234705457700570353843845984139107709584649111431269578955267576987078950944358995013878771081315496731048327470511330871794243250040666832792104607011860055472861960997522441807441924492867271762147342149558314527316176135064100704327522349383343951436810351200787649530339889363104797111146978849460030667881629668073842557761099395643329552210195175060402374715645982677678448818880939067628180932271120530796878243536442932752761195790249912870266312289237127811198677524283980815720319171334086842789340048434869320900931107295142480671179518158112662536884155578585408362644482608229847602824079150946561290801115613983022627097815349232796710691450852898298475737045820757845100638131513161248729201029223704387915010400071936378703650291142798348146951832265295106658497208291523378715315948196530374956527304199510738772502896092480252816585823296354174351865355613914957141753103996623488447733632844723397735554388188990497301747704619021684999423230399146342272727249038644915024150253629730509136025979684581615901953049562474141983805577744400916681356789381550162967763140947730651950299961653898280306228344383951296359052437350050011085526948578566507821389061524681987368238945536736720805528214869598561462663270909502374347744489123492010244177362118562120002591453494782698395965903023641014530541964937189782919397790134333766449887136143679596528076826371366009161094363069908053243299403311553734432185171486160674242310482829682498338949147791573532859966814261938865048144275371055873057449977877484774811130095512913570475847513422140881563066967593911593019724898373212023315286187886781409202300121830468151763789561374493530576955010104362611563979693863958048902675784689354293910682808728737438900859490993300296750133616451360296134890892911705536505018877395581985221763535772415649473763928685279703975499280184977410616032031708760291527833196739124988327114161904245662773273234938755458031672811949623983604107675777175536234514478898764637527022648152140803674256343675872394705008747902456754263129836165975718452942937509100743746172277774465705700363581710559492564070536528029139090245135532303053829185132354828510520956228076031745724070228767853145992031885607265541165590798202373188622945830105735932520006379089319822700320572238112711161464832741548910084110858387744619252789328064510375489921674211529868620831712601764445214456441657767630514974944250699298375006353730264960932835349819019435430623984136122068266543683788636908503907663467213946194932984256638909524055062175015878210968819453033047594851890491223793572619685822983646614630251892620284754576376281796140393086077467829952677991852358032067367714703560286677816506374858102510304531223415893531456471556631926935971981029957802210441963243212553861340643798239003661253465333693801654623890098446184373493851055253865247695295060171005775978130044143397908756600135344307535757365073924252763632841780163730168203712673736263493999790529351830091354350292224054024238579850069247092634244711394902472006241312625470648908564188595293272195297493306717050831321291912043814885032379835911339683477985110318977002766813745742173673585919625247934933828345826192564546041810924090661494624064229288163257835790304844399340301613694773236392835065872936459726701476827473763418921330460650524752030421838533493376476138142225253279029402238274854302082926273938360400654424465547068964804537805080591116999721239304785746778304700039122830815693613112658818404125327310321673968688426637856291773631379675200916561363942172981231734766244791440186610450616972846951843909707494976679154395023378311587725103246579412693024435715962025354992272345871412388685624260953438851562740260911653569259971126322009142455398698381081089899416553824936053283029478424207354186595816573488380643250411685077517715970652141488961497737319295280955804389674059556431867703910716997506767987500551830545590904870723285455359043818544685158102033049413056922736504510534013791902215859279971073077005157263876505635083962254920382035884097802352147171871359492921367017809108012561327323629566323990793776530500288690207223965632713369259198573122629382950904916278088283960565309475924681453786794714692362701477897588664812542913398875982986941249918739286783209403844179933203602074053694862234867035682519951223701067097914369485851421157349893555663365881691172651055205554904658798488969358234257794477780328914546017112534326988470497448071637428819400170444362101840656721099960895000846500145267225754044318520863125148876629801173508719985970861699008946508761852612734553396179250942095548268692745637112138210529810111002810526445027522314893508672760990703999780236078126627170789077133398827412600153492445237851747551551047180984036282760146458065962529221225815959371299267079235004160066533996157429644543003890683243063034272590406753210205396282904974683932082466037314994109331712626002183937092065183036488052622354141059616522402217348531541296306363998526915007813239188745452052759703755084429924888702270261509167403284493301612172823753315675185513398316456620474356786319980349095940727076838752907375056126736997271225787052944165150608866553545850003792639665151464204120815232172855839925704576666280109265823912253789394136328188817414580546748309098365635428585359939021219248404028184267123336209598328821233106380775552376050735552590343614489737882817521067643307992368115427723818227626605945676896018008048608919178051682429174763371913452004575615046271987711879695137971881766068224805500012695724403019617796438356285066729671779575660608953179709929434892952080662281942176421859471212653773876189894078573173475808204134574523809451027139923881137368109509860480263236320992021355357303888986927861660161663657208938065331272902768319354102390475858910310185806968383324131811576901149221044921937173739316123975539479807285485904726161113717036094608707003110820153827502499383770601761161865793644036002378023340461984155442275360203983108186763859221787347925919836736741258799530731113199732910814360996591675210881456157867174378219576109736035887388876028162870299556735953547533203336420305109471466928146945626063626795862653533171071671523393958675949888227335700458659616745708394699741261979870694941860181047921533917109716029291288632226811995755422542450843039767476354225523132375621345412893799252978750796950875654895905518529780558330555539180750954038763890973605175983325207457231667412474839685067435887823360597086191779499974450898050598376119911230610912520687176256392663684464727507767666728354555638027500240484992037445586500184426752004612815439569539972074618976491924394224999066340068281791330434287623543113543506510025617071347054452834117555961268133355727647149566080675125169555099145039938492964210032262430255952383479415202951588107609126638504945591416164282317923820036405316618705538391242870431919411042867765289470115859390462083240091978310757541640261212267326721167366040666211357348089434100491673466627765390666422816913127545034922883953614490219804110156585523805056448036503745555538083536174008913891132101031395157893703676067611239753660696312172699643935801764283276334659138107811340327056335977174052659894254035844648672124314906880784012807816534360861425262653532534371077444234164391481260109571421678372891946286311288787623398758293294869347609267526947434638389504903527030141281338784114751969233595872687876264711015476915184456912746765011684744145275278876022350647614113305331666726684617711068953421902308543809808800704259457972610946222730728638305081364631853203830316020817108147990007375358202005065294702897630415520116330451191667386113808661477207853179564776330945958894264167750189519323482078031099841380498649115483171705684696805578732149779290991651065630852850606711143259152644994497183055283887915134305122866192801192313609617572777648535120901545878940742696238312293815812878895440416382154289765939585450294859069500383947013445012889436494496521673526644030800353481341840910790633438694704709364566777993589728668842215301846653779027964192896799303115765290549155263056051712903895161569889813015304086038068164797656237762518625691901665812928339039047715247804546841350344639939808538822157462816527384797701640757309540811695189110973357568201599425919649287287880744459569863358342131493814518075943179307778718582328761425292436589508288966567143774964437318184621338582246190179599421897690017194213530152550735753696915610625626127641910011520858365675771411081102789671172656838961010370512583950649118321906871442971500164765993994261834187746727970413963499581109276014839297902731344112258252128339398750460526279870314347536016331384133526939945843132228384946722770870846286619409733455364496723756248327057198181734467248111544598441743630576365888806915304839970347373819210727679912068814608943334663771863757739213944422340039221686580759398924683696068877661151797420405961871698695239029418765310656985212023031128820109873854505571239873962585690834424202957569869699005655327206800526139133744660330842147851096357830986201631937963948331570945789389321554851162338040553040122555283923858899774885580986225928776101319825066048059098863795767262378576235201344975350032591399141605935135594613092310976001009795249098753009074235111303493490896868458423910282741115613432101024194142789383182835084679957268978175182820235390037732549101963415417819641911904674142273369952929537766576599419465019771567228702458812401957461395133218351817460626241219186032942522305441071128261714070000802337087411872344614537892242918797702106786391426914806135180472150147879471458849287826585205209999329880752837888312519117008750423720277185670473015925633096018031876202380542788710716919366376342143575877295559111214726629971688601560763749928774937037913045655655933579542808394955570611249637711177182796349882944477733482051677724267854017261957793707154457838161917256997325315860941339373550317192806880625341177146510977688797899963770906513515665680288459603652891916689154714221630317294469406433267674726139384528741640885711718135878803273902299832188643879073107039828745634863400881013583800264218496169254033744615168953925926243844235648288141818800144354183637949888619582886587230645120608097693819724330519266461259251761567562874533132492712707956107385533280189441320295808542951395179719607521219426154376402811916019212158674417074599589882648809373403941068766405044214316816221090530203117710005107724820166144901705268052908292684270677458110764449270260747526808085136061631318799541894567865545354516327938825925927593389790444972642614923297663027977319646230332516421909459299162044250589791645666990914925909882157370602050141355556802685225267202699271889211377794476715346231099548917848993129132113806822334162255753646021578957462921408042541855151501628362742865610239218671759005790650881811623373686847805543713225206220206865035948305261921598870665613445793496333008208603212801006899866384658780810124159820305489078438961576843789101291129491080166275892592475969027735536603558619450469877549552826000921727253058213324133895879275702151169543035351360495278265167975834711822846340729659550876389175615296672457910186612065737374746918970518005923560777543573380730909297153484237063996820562787775926276865783193176361582689492363285242014418673635773394483426296091856174746025362493786115840066358152445207711097182338823103617197742898964666351689351428780560393893404939060632595381403747230084933195230251204271022098335694442812097156662872562759662742614704721817874886635590667703442504468351710313530068807989511568799151003156937370167652001093187582370036300852876360567568240297393655305625290228982237957900263457817801898986025636277920420312940830960860132854169814825119779235407576505171593926151681103013497408308240913756815633214656511167303678705989911213102537872666854520909563062528771155178925044957292380394290245606510632940586070630360861397082129465044571519207551614378656059695952025998246865075612471154537947641167982349779877330704299980638093797237250465677067077349239092604863997933594390096347391796393739350037447041449202913323481719068258089790356302959500517357251756627556347757539976618417853328084232150372149665535623389825045961799982003212264208264157361781128103251212410685907225965561368605717142748255719505736491670806562709318268136742457282330338883121162982999690354507946958571340587903312642638954599573074944622715828599257025365448519338590867504400701940943287386679553250011050544963330977414879965198804662598266550727546473795107001601020073593852037214244544325363751590410991130701719801963843212815077772394522902736647351012841808507469862353655992590431287417785015754133890319708330049839184687277134537783441853144810572459708871551023874023861621196514308223202805030351805409459185408857972960884602530343150414095985158299706296502219175170277409748040578064503353479286075480493676280401414932595125188594942899663330207614266033120399337677901531200097351814553850464178455607349106622551954049927624119176529133133368209767741759672647010314663162697911342300858729128125909737060087584390723377718557599072370465907449368888281740701826141385515477894612311983631746398439978187799369811130101991000416653272391309994868999749044616615816368743517590761390648638123885354918890556010893548191541818654573021911240747417031183790889449173045516000073355130752672951315163863518228048333650243905067627108781340426269546498755305848244106608081536927794779174231436375432267122885384101975726081960089324768595489375543270875190709909426290722495994094670620032239459315587848185408865269193220638473559229986589374808579011299890346958025028333788583916779550530970195110464131021162707056747798961161464520801876928672806101454407342811064593122031931983098870819206197350082205530373696498989593200150232627542802633442882108856456711256038652028189964733875611522466936050016448225556783523842392998643304072688511079720077213203858194383205116368160378698418099548769293965685589828906676532518012176210529779962878974666377798663602423617180874206640092665614125037348528468405390723261986943394450702842139845633558738240837485102922617877155543205287293495776517862529464990982178308287548240551205603000791275330482530741960240869548486590025506472593577717999625010995178928070120875892950072089169997832792104263888457527827187304087003626916062977335752628990461063747972627051655563700198109746001216597762013029388317913159668861563675491719923164151422883696314635254748586104099929705031135444664832407584286830004356528067522963044366492744190870014839568527443403535375636236104998084578580317195068721692547622689852581139173350963354557688815516681046708338166199724258090398766425333024416238297987483298322585042314437543187972985230111336635442667594381169582809096684844057599627866422310597759484610914469173359525441967502138870530701676566522718977971068736629954188460893197859572112724436011113436775442317824406620614527366005880752904389249903931437544442581342788487932101115213642729114148138965310553841139051208621380926750432253624143635956900273669976636697251266222487881307049656990697652615372564660964326595221402151741275901342647027874996223386406763005436422058866898571132642651289953715277840101909804277607439606638857780230443019780754951954297424085169971165208422842790713970210437667068622312820288136125982812689648900476151148235806391678966642068693432365739193772515586433074518558084636058216182896144839624783245968045749104298213129101821740061424530042686559761728765623062914915592571702944456205075382135486608150839903047774129094474576567231144322236600863046042083583105298104946695573625927753020758363762928825300774755177443308688818587129316116909255659639861849745889021789723441014663126301682983492517019950460319460292415565759408697575855545365037846843079145432355870039587855361861387697585546127496518916166983319380409116364569812751619849656948373056599129491888594986874813848190022138844743088333966121318848833257783374495195469025139160083549929516415160677106281335976088447422389376258876494978491946449357219146273783758896977183507606431061790581679202566295359984894545883761923490671662698741851654566371989674851010295560087989980564719815016969859274140570431373880395622641255543699677400272105246753284539195086914513189181565311423622116048932046699163929390385226988229329828799499350408693474159539237796402784474491484329722011276398092747750612261004858647796476762395454737185003628047392163563559221033542985570481720775775013150737193384665526602132861012150311157343571651747793013570733876618603198268135122551838567371048851941711125729672844384082732055027976455202775181633520907795496076138041592359266526755339055657414012251739985647906925355110975832535535358479530015709878632896356409110101563164405652734573536771545037854807465027283962464193834632206378956672849289582826174290087727053277554713785338062275661441937623306673358693815039827816262948918614748566151042266906006660327489732566749188951486733430015855172124527151616483437443161998337621284879179811288150939958016379426526724209137927743610215330760001838908755182268082789789088373643870168308795936140459023467439566813951748260293976408553109858246495048744877958563942742620543187141519489815778661996049104375765702377175265599314677583154318470512416720526861447993410581246138954622530664625687273386409974022642802208286649787371970768436836190861688778869345043703085827040699937230421360547081007158855441046761391155446962078342106506017209802005898186491183227064519306546505574759865705579488659328287389213058728102103211377917274420275335264257300715610563737253278621506376860869328802670476827156192399846766586844292855774137949771754907616396385883125759964957335115242798388343234213927506829102317015549230970210638972535277120290611027059733782544893087887593203773588077312347151812391786037759277787630265673127604825691071849471235317919464150743156520392914154540706209896243779443615567363697407885247278166392408937022793377527810576632575162270562776343852039787447854417348660276067207563656183288928157922842105872995005959039208171994324920521277515911884357739129571842625141177039401044178299519010272598884555149909670743551848656551327357712578181401450606357817734087230299563028636017884967026063898393359018197194734780739614953039181728489391943432165818027421746781875804847329142721786837848861620114607864649592071265602574907836061571311035364513433932154270336605812427782171117412891245669603857314580272633068873939015738493803194390649022950958098477889007155452218367890549533360856716127507277911485678114838611576402306121256926222893146174930936129965857106361283638448467746090668563045920755931111850043136635255060633335698251506054725964622281994965080871648476405741403761679898078758170341579331801962681207992391391599523135924944195616140296656406853680233964252657039791026484645399977530649014022812182571467692505394718254305280532193879895489929171202515329205897167144201349183209898191981201006621439911494070373050348467853122269247697748339995872122554787220983778827509549718253800118262925982435144592545518230364004355219161440903131703561898640390529381446481452102776581912811503053549867055955664892412134453571433076808611495360470071911112609890641247012385584411461268113099064060069321804865438228507421843242997229105043780593252816334309994683750916256330834923723487742531409476085551509773418391612620822840279281378672783342517661434885390688541093324156956640722145985492754652534951237748313519646654087857883890458284314043765009856010694074814594187188924131626649971110462108185916213706191331463487872297925189322271064802851486433013158721836860622415384161113753211480316911006337189968250398450135433997128663776369490575644040309737389904240502494853990153234679492204194279758699879249276126609999437993214323932966897523561862596026441601720921202387268684531259210849935796886398532203062597885130853692934280494942385326488005350585950570561078950642672558892973375011308807334742086111442848040253155306682526287920127005862857765518319629249592362226349413137423626778968196821508436708031455749187437498823230807690611616603759638016624860297657032402866099638757485849984209824307100947492099042503086792244900649348474457965061095988148384206201602542327268856582780341719765801738537815246582041361814799766500584021214170320192362491666445585714967432658740375994275242326759363411086137675092095039309195394305879242657935439318541351323168719985551915661116557734345335113286715359977885508977759715368194919868824847690612407439913211246851485407573955783479807839317544901202696858591927731938687196237366146339117869170975472633470756827784693134578122061604790407405998629485550447671561948060313227666459444564505090843404003042278114940124173500098399886911613646514836241389058143786206947413930747399404319200475739481497868564502527468827228894016567160318461371806145177822465053723093572488955698521172130197058913910792795333360659338140114610862169817918952486281243267672487602945310025019944149019244751019316062497175873070736003935800576434927727288418787731548247757225666586961949133256431728696724317508548405166947108825488617776026636243604269492488607222015111554809224992329107736844959381732286479896641313592321606960295189557642743576397373822354516047055333239286078916448374488461821056390661500976798646489615643646149850667737171469180739446245052638959844723126875937791242553248997428487600503076446457518039493459101350653060057217547621525073075705066575987287828577880864860628590003572878386968191029682455350855610040319221958798424002768200843180506995008716291715455263466617189033243989731371461593829780604667373028460698923291619780042616630427135844127345340897649489738754437475765186161438494950817478952037040646263347365720724208139107749524471257893527839123553370834939390082535471876287291724465090278610660843727734263687282238600480396240219606983547297574448594828737032576162838320895967247654493182076180694519535355429456259378701016618861466801552161356944702396241027786626388904861449359992750642702215860876034433397262498361632192284167045891728818040230545590830858061912142303295765211172868295771131117022584345105287435924030567577939631426402459565929720189205323083459875935574619035921193377733827379950876888746764482364028394810206428536500608399689549941757642691833044977801746627411911140102397715304875660654718236064483954733648090150406205930585738280315089693296814135567948544044912480736850631747064978846729271317518541224965111079575774235319113192176508440484348883330843790771457356671858785589801364995987592959694557793888910033158464730697441411009922094502297034685943100024555532136185988747335093368874146960606840616768421892570120559938363886718336065698503814432475805898842642746523434044669992886457763776313671430197153951328398765280304068564253044744322050835749333033494226245526975651924794454272801407349235438537668658822745111630387468578433289469439896438616010913982562404190168557877145552020451154883251627878277407053985844654310130607758567015351516195361920630052359501754009143421788465195849508647508122487294821212035073615249984773416866335682364261554538819381355524234175256838257146076353457557540350117033907703664930931918216214571516425720706916895293461847032442555092808639789395241173006566548749538591842099176285912250103628516780007265998389169998995178272629060453092953045772322988707369394372931484895394307427347288731916740890225347294347193312424857314212852562794132917882457401338821616358279107300880655460271629649733637120103104907106157879239183163069533131592181232972131285547348962905520657431888103474223464204767872798698596785525264112425264309134478554902318684223306441588026941235211610358975082416133337005321998634173470764011345013907936340449505438924683412077118833424626279042832813561157595242359170277051261884012112270433179249292565763628129892356051709070758114279589914665683297458172391183955524115833501483622581157936584348659799880970512059351319752650573222567576112402780618490608384872092879342068431343373985073906259168179515550128996520618486446113788936391750096973355413146011449057618525154788377791691823625552527276053111311576656339985002833727327457217902496178751276540892337591973607320667703582578707731912997018381286868488169413641158708253603864607615147910910348790602391515708997610183294095658947287147854835686908408130533356569365715349984373913831175179783906183406170958628058073994944387654911608380503986963481498253304924019588236461247396072841416491092799275066668798477793868937547406195915159146159275635622125902114970069862009235387051853819960737136088661003097218593095846531713027846680935928039668009645042588328797002090105474401266101266160076690645242181199550125197779540468841343500917735022295253412054369975437225854499013277773318603455863921717787460354474017617190273831472141525454057235870723375883267237696701665001299113079167220512260271608393811622145214352336943500162238253512338702298446227248918857562571297713636140284443710304368564198122538790490060653273297917158697188906079748647888589648191519392597984751582431028224030293608958998849018805719540707379501711300518901326680809521722611878577896741233024761815813679398207750917376000365996580888334705562404063189105374126217561042718599415431413092279436506383530238864612520065476695513332169010759080981421354474018051276625135697189244820319034734596252700687345976347440266391166957946691185062327549627577891597315425880679554273431776110485557861155515640571033104357887580555071785532356118465531831801858641580205794279270371989256095933489415761772490053733124545909573689019586302213050114507855011201668160914874196785817677120490504552932738789954215763177056023726107212373100729310719191127666022552033409056434048717902903300108398033901209637456339679391171852822640031798693174924542261817341405059868905124855222478635075636475241994945252577829557420646755854657568112352413380353337519304798493095132363658765063567633072609625360494167881263039342933550384038549003029455795434306050922228295383316149680901523823918219750486623796732719113889698206941643024889637082076779790657923502481778946511738806704818546377696262126834902362092105657287417521859421873825609206985297917329102770957457718839277576131464167899684610375912147093858446675673203425973681844882155821109017331497240829134892881883501600760511905408524720340138927676631807225579265000350870434238450476152588065607456808153952871038743557210144103191836018292810573054628446061990772355552273527294881841938336995237627177623532661474748862442824473618392769874075796771930261540494506887805100003679976265292909006643733615021450379466179211925203814256345536913009155904022674468760453167077568806456025130850204858826520281895852788745666994900139668191500929330929946246014515564394341491825125872493532485947938870061135715679078494406868065311168985633669076225403895326434586943474208024096715414638211257840208403947312932906030997444514876694147959426931446394737526415714156462066251303324227825113106454803209895639918127036962094817423778700347174613143602325691460633625904604456856692158524201983159625270022481468793452177592547057866542492597787513173231088805988224222799595988319725514240627350031970709908390762010761808338671671781546651844773371078967611206412829255067745565997344552159819266135077382282400260777534039038537172663995803719655166088970867874036685745889674178076506964523616522817012642927422338643615923015334773939103920406664376357020803784674201306743612251752803253225940682344987833007188064461674694259350729339964930495391841662412161589061013661530948582117610535353882312566431203269831851987829750107365528961483858906563805073877966234927482868694015409667526900975956395723561815639122665089540261036062060780962778306816548307013303936475764625305428748888357414426042605656758414257247160218242938733070270822626539209130363530457959689008913299108550963425673231628321900327145723932521098091606843846734806611148272271549565991684033106485536625427149763398435710084031166873020527201986206984687566752571232201661292306889800230123451380663866432123639687436446697744525459912204667487249167017549625446445392633293130149979398503115734477913555795536501244276084486201482133597819693873881154851823327788379586908673356336033298414465167518161056506537702812559994524703430261548260270977632947289503587373595782361463063963212402532589931760815636265479340560448151817574329443422194678698647070437693420393767781712955530883226457412489293488838289364922194988478129898479405775864115566057639090693763010019781172385346436873683553025186289470041731503269146673311086256249727344462034894652308362461177965249016756134750006527279868662741827957979968852628202210771736718015255888465698432138182635549811062239680781449333132934375395075311377141891678263546103819034159366882201948469066364990304168672008614330874549187570846247075145530577245806875578098460635752265225621018754918029733177360944049105551096658150377528775269440368664703081006488209500676835817414646932094225076105979339016274995839773819146306323109702735983639331097988045940538485887293100857804029509077843392591992109822433327229467889253276743600142153583671517072397386074821960892590317112258281496441347621451577849076538633312581727708909235208429502119916320646957138250417996235805170847751276209830117547384610786034482704478805185461200949808594573473139744325412163924049418974668844229616566470599170307770414452772361576900838964826807550936306765503781548724385382551759509435799910284943516974699873347293871414678950040029866933790980124303523741771334491176881575924629045948923440998144106764657900837176002642683619142073864724253515247823885870518147780756571423868145654809062216965703776636813157141347086675856107137289896548655028009583687231611197550188938250516111332288016450139839984732297394551087301109635049831570053150901158731591267322339430018781764911850661237241882994786853886215548695699770953189932660537763396268017699958560220438434421496913581331595455242936854909990284036896212299305882534139867120336235931600989158838691023511502152676666039058150189159309217990404333595729182739415747002197872818276040254809471239750306098129843831059889860031409687643679804456726437452062192628382007910545026622428918582012856418767338350717580566087779459654978173627066565747163166370979998734816415098629878906493118400604596500312877984831543617724754159790151445221463916685906452388835657162563384777644312380457892273249158387105847732336335532911363026714310159371352586651785007995806238860594887694013058593663216410996143557110464894947573255527702780927699283293381833033550868721995138029079237100466916365456817905367827965413968259435637492208223345070384548700441751030187943632059852213909833287666548506547030501970174090575676439741144183321051779356737468749648132323781025347522812118579087783808780994639548463390736481446121082402295257184588921220184683347929788193649413258048421760702850181389989737557055955018417900772005708835600262001497672534655618555900574466586129700703107363248925046469661387684217043467822022516576695552723696334719028022179269355059100649787759170510845535150355885314874468459976336860368826937857486630694269150061676824191067041501208680764674809627199053196919073549236293063657332375860215343685592129463534424370357493033082010981931531895781050595920167291231152490317474225507934445119858680826132195757555445160256508201809736665854621645881892262148511163062624400657774127526854158993255831179202202272996370233988478094215372350424121681934888490063285895763731605760504807957227548112734662123253562519000893257150139330110821407645916894069813389742276626934201418702342318793871431253242705638954905110938566638862239352906960424746300254283044806516890525242955110294733533701900050002920669502013603961690784823473728709791236062955529256110844631376837242351383549398075569121200202604705652464644053076583054815144473887809218646296183012879849352056046523800470085016164070102175419673283012458392183847674848863768221424087173729407379474985858565708851345826636931232974689736955335553016311690717454986387489511637230184949141398821968644614050689674553476829117095603303747868422289657675959582047670816758157059707892784658600143805208378529611566464295825607711707317597025057685937672895999862327848273710540163388909403257658780183710834448636128139147505582524509324550800253120392054396265152761200414344620061657325591243707985121786286283674020634278729383485251417613790268399443717891801383164374202069232609589354791755235852369644357519133291080018509020509106806041568973082536458492613003642515394051011571333718934114382357973442185384492593894986445426857284880042516434750251483341348683154077757115826003910663659943386160901460548191404008469123166315461738639118264328918874478215972298205698704106219322803703136747981711428491331080378637910004594868958850107762385426544203188626680761816123815514101428798397852460321758853462089506313637404100949919675514236641084442176827154442269514555304190029744388995667749259906410774988191503187760803351944904355934307496903545144439940815422982695703403364953188345426602503122202068845170737223674023126127227722631791009431998544854157817304965529561083580799888214571179972676826899087780301194638342569800364686763605662616435734391936107217490735203333890084775612158746067852076329605121978920247194523903580225908888942528102192460171447263714613525821509308358894991540461547039957122303615252849971705047134392739809397147255638501376308341288673618792954592729867375090153695418080528175542607083576861421478248271814170686005479059325459121319825250438051177945227645506315127321734640773404389945222305437643139445215755210432156568055883386817665100191380614160512445347287412569076985258909914906930976203068779452526515184128076261656349624687736132792023250780394245046643797239604710090191760768368225965339188976276134844584228831303286370417493900170627754950712665733881449598721242430652289359700372551271844371533183344513938945835419022801486679916791760161602307334193202186086642332237887519974426822364030107877532483629525971350822854750369653141583287164225866626533508597313923713444613268457737396658989723964483049888475168220104938857450016213577864975632435721125766944005636249227509115957808626148938877263255360278330484654259544742649970152953567008889150302035534734800519722589733200489868388177805325608278601904263514664485352868269010063265313763926734216106374417344107636257999265918616945567440804107180216653768784602236607396222816477783135628914956352887294971346701969136878440745769071572905348853063610024324046450884162065512967037758177809394141903314820647150512740619302569301225594285805954325251328625651523869962540251609875456490062324037586363999046585065477443609186002262593412903474993817338952273675734287533381259272690529318010349733285844923007488104984503227675668934917009209852138474649298787748667679436433595442878152017127993027275245550998355804447064350835544317690723325677931719199744036905258572727436228360198934102211423766038061856022031811079178280271174671654542112093685389099865667263629686803555150624517244405243322116169393865792258522127351338458473059142874509378847212352371378413482864193923322405905812648090583572687974018750596257592647609355418941727590824382090507832913367005085675581577650752773871118437162592200926609257994387612828516980451799672752050132688285558837237369376690861793842382412368988381349096902016391448831639000159886568311850649957356654446186416398112672560719335021516365904582876181337360973239713975174852023242213132611038840330215811523829951585956933297516986720449569512485130897364212558137971055085564849222311275671662438124554249748495852272537075986834470078312730419081966122926228133919623258504530858797394861548265218117339901325582779980753672840004168648895895537856900862784077476095032197180492906335114031868476073583669888119322718221580658026041574652084477936396759725649123452924189112385073597429591313748918607201009701272385367330010056468486732716976733965554068207743522747963104237214212924572820286261048388149466212394693785503343830705221821382820702856717998768578585630364823789336584574515645058330234230923978727645088867781690388158792328542309188511214065330620629756497862098968591989100788695607436856830295311308888817614524265567743003766991590053734798067138418063036691088394096448083108915096231338561540844995765356551024431601865104875758753070458714177346349621074909998641802200229461857284095956277362519757451509272193344550455579706580289237962476455063283845236951927403518261821767653579368386496471283340467825600504423714935728617156702020641466961030080909181372856089879077759800104003220498925162780349950461038320300921616976882596199646354176123846956232591308494460582782401927531704665277585317676524564501166516201586839276709456597107568383966890769832942547752030403618337025390929672679307751707479398254531604229653965542536930486709384436193451539856844065884850287734352177761863475164029986029902882438023960689358749205936226577088741729877786255049260640743389487302450500379524876711204924743239949899094819415768478687565125962718467750582651984609043873738047274009587421178124780549848659997077834825930827334085528087611201533187984163261936694398074301314151009293848960847084212080999327533255703655286174756616002797162053883618529156027668285867030051957745274184770954280890272433056173081342300252824943826698572447219972670535313530019786115300597299488311583206573863619413074481728694562310763807016270040397956161060450366630823302937164922503483860772326702208787135083669219861855151056878167419792612335971464378907931182843818766691261120622634855711890298120717144714159427614537935032960860895156085236273269248357963279456273632683184570339651007972158302946492859609408145262953524750141870846583823265418362895507328524263276649077940454083777524598127237286685567666877822363935276948895241814578283154359714312923941988266725014957414379290816032889267605431454188366677711324859064202708883299000108503380750680550581462505090790508564804333273493292240477385010467657369406148113411823344793856497020190304835804336160271439690020202950549928590172495053472961792227966385207783631271993995627165939732653705204739839184670698309455996344415056144391717383036298006928457150082381022075895182276554308305206073558516895375696779036525151717577436881653118956570440861396613244846881064473824122496668428482768391153303580577550149254146576317326228566672139941537981677230554244372960449338832220577413529339465016532620513291927690262651519998635774363021403820488905609917712563193730622160637193175683279782291394247907018452280436928424428952844201967224631621863966787037806674761521013914845403360795396236142799204412478697442322861470785540814974739026485910168872076642029604810732389369542746289791448845985621829042798839344927044541833102062180986556121083413033763213643853206908557041804377927486438373997835974125890912905202371742349196180387487938116998835165407297129740995745273414598870137894110637353265876991891952237367226086466462034916519348938623865830164918978651365894503845902479161379701829794639588005197821713400460137225816811139980239396722589770446616426077182571584368992454640740835452718488614885261537452166507182466658847558289028677984243159604479231757953084180498206206352323823212931227174059772398352780253724444703220178272099897748001269657080462178370918473491299366539354627057994321887432604369016032906529560364729378758212711288073917896034057983727027193025856411987115071240980695337201016118381943351209454383492371270492528127968486290170027068147845880093410043494225180535819994124821119415379935023670529158139124649459920665008639049398545884969359775201333161105687169201053946491676439566839705986767255982035574162183591917100190824955158435394702433650082918558775709729537688210685484825266846576224561240567812544032146495833415749610583262278793324232268757144138717627950748457590322971091639228912601369658056709243231802351573019424787995799326317421182743116209779138395987419404832442691976250078203166078411546928821502817885223301996406911580330316395962559439276238740814985354476953128947753437383056605098969905478463619205728692389230027360086314716377121461147729839554041553194208307112281539195431961673217479506107008261904453795096944358342567038546487027570509742224180602394287459975872348077229959112453382735043210052126179771389816850119652788071496894703048123325849814725554450940858530529901263306725487056094315203129626500273690125918644881322411358320644659009195971768399065505188691782616938167753597655043053834031197788288710026593258577667862554812345616545877724879393569375769618816836537738684599835899581063889794542526166209785694238239972900444256036360610652964961149166068290434039975891776533269941787174761904185732131348212144285458650899772463204239973735137316353893261032538748951258431857719529869602318583793002279541487936609526486220503323558284668909279601531394193116666016342195091069646399687056852724117168034816404283834878396028579563382419480282642226358743372988609488903619346092879861526904594487998767631038151335797449878240871951318407995210318177657469253193744789371812952529793047334656777449274972915812185642750702852278964480664918942778079348828441830369533934470652311321638531153899129457138300115151146713371726048805763315820447600944238475745150359492956230402199940008052948421524975206878546247099466740798203518776109683685850236962536393733558761665982226020312618815218501294733844582825268619847326371126461633953367770909564341631027099607452069322665903927114623906071293392357057412061301595124040892092987182257656267284018020330054282786484308699689202908295780032996752315146498776154758393923819935502803570451715078811927540591272531668329021647696576952629411259358117963431373657189316655197097209479046805273536201250693582531687841046761482910895924348336670207486721429103764648583111898562546231088932653972830390472334249445169018394774294362861824293906917908879646266556959012409356340015908398849393262980876481894920835113955020899953652908562046391743967995371575757718894258106385643785546907824095369049140558946275917856381314965169927567628447816671341036734584134787582701737875697850438344443435867415235558608375202865208380642729938573979982233437802365721816501140067739808507413201970226773394106836400872080693847417998891680412284430313993525033713186371607067185956486735907419644802182865903919763978689765313046386877837262751968378655210731673565353942694976154191529124943062627219043752160025183923685441393430740662168204818509430749823258432057384201745706568788807590114600482362149760638295488270740619116552997942112989026744315967516269755552792453017087319716966420637455920366996318664364691354384971451205644614028837386900669716184788570100859274876001157685965539488684471976801586603617824078078913252187223191831648561979902191740280772878935081828639763993578768244407205847452005339267334458124219804704794773425148651555717163859503675604082445679961491506035893027418104954479003268311364670772932655539632690914575187117399930673924906259319218390495442031360766294142025656741236211597951755718179301858312752063399660120519041822548666570838195479824001206376174691228530569543598711883735016409139116206150642438642546800368941101558237861946489549349436136633125999080326923650515531589667536832165796959820565109445565760427973503210973948846476047120014070661714277447390253232043275880928419322146384894054100914733532797847371565278640338901420094581707828366867236341675900456619441352696511313434310116011107247634995359580547139620997600005943414433939257272583238657474751126901975463526726260012862270433053477949032166117302350628168673424688210364832909826682874340918340004833546072838373752006545551818560358005416572873178967025976224064628014543988301821477030214925441725002250274864954807198554137717721932658181850463248898621057835678261808655253263850662479823955888716941837894434782209855881153139611254574594123669043993972656782212419013485177606134658944914245766678384984216829326378662525649136128612927207351536418046720482048071780453673225664813173501919190223510440046236291175999237477717732401399973287276561329964747662996726193701684545710050244222297127624949304331067235485543069369735030120820806099577160133493092487951255806648800955861768950934567595648197213907092509911932110493376625206247092364303803054802291080685103243442123270340982521964122123377552132146344378756019455740189157024504315006798578311106369729462338235660634849143721613155506721876340248054856756601876579289152248746518223749758183606701479611408856398151756748091742148972253775075821956674727973751838937439176136567180373518149094231346199251348411739136073142151067120712271401816822485386255564139479477941350852160827975010244253355112740754730900207193548823045199718173960450283487946836560513833544191797028137009102954942266635243281254950685852934200213529207135112081635411797974425392265985316974121415064829563668565312200321870826632893394113938693680726978347689751248890570177010445706667173328389957130576169743451367435766627755113109324524478168625962416559065139429582834115228426892681035236206422130777778410769492777491472612966127443160366698467292801771122746441858842801395519692896867779090274998550346850127691278149374493147982619137002785978734174350746780158696938516867309826765026251201800459069214576387817816855974316446197833294928050399705530027136129302785245166825491996684128372873666242720513227832277882124597767478910478351339332497439260148337479218669558636113612415541256340217151840842945781360031776167305203997405318962463239757080567665150041659350512856121172605567885799291845722642852371180839384781889992621475787893435995821679942398298759942297558660425381423173799095847631491964650041128628701743607928255131772713266726959426817990993071855395823708165060176518400048472429407688333918906566300282103889065798240974103549298281880803885920009204129512238583728534445655875821688801155565459440095641024207914641405737965667644102621994957972554115874850029620469049658140808099381644164986396351652776778496518020485779432024774295849798165074997794670805916435182713030782699758193376120935852454446848969735143171143070680552845877489435867658011131429587579612747579439742766492369109283353253995702844421004551417901327214533285793790457282301090179570990951724326236654165096277428536652825388655664433584877515562619181935830485183626581395155350381566528936298311551780387999469019836300005475686749202156651488694559451340620670182649735825079996049727103336344782277614462243733622404947769336275738710701328148686093031493731284277485465530305248098151269786990378683199614654975110218413675150917784283844916912177873879129596332188424149094154524412386532000810682461650878494766290967500992837005217978706282817992564840066354742585847244568728478985954197081277271355388198903599547500421792327172770268932665722738269151410770502018396437859211939435827565453982172317977876390126026871831123995639384525311490902314286811565042221419207085848237597884375763384090825293113062232703788921431955569104967343830070479122927599171687311078231216149174688256098994617616035179226396270651911174780474949408761625018379842909737144875003557183514728574505160921243322436424596564628600428729227481519390190923525578027637280018508555136809357949524613891371693052020265379256598645972721242907238000396969212131601805363754925508608296515202875823151139563079421210764740427740659215492306645866585678688269627077619856622581235776057116121720137606345801327536584305419984487573689333843557663974468736454113547838012681762691046989556867906716942019588708088598068214031352524141319990128011584674641950075142129970266150916596793121290639304946131767790899716313703105472057328756804000614734877361019066833131658091355669234723377455840181022101050725406653586540126689127865335035707888947815225968425232337508645478737857038494176228374766330858938347814018557436425148722265778147618173072901606284146960894714965088268198005520786913962078534458886529555032472860987043186152410002792655536860433997413846411159209598164164282962285931311969790568863861375274302904499711924917729893188337022045434326509355592290056500744083038177950396376517035861537959507227047390225379385699832451047565369261284499194694804312569694561972708337917859347468495895324277505658441398766880027956048568886251327795667478538981408579483328364662234691654867548526652004788308930232988556846552703444530409893285001001663189665261576096943936567321052857273713878556088186176388803448664974239049018669580249890604008083768785859014338071337512970668700815339469235208913357874230545515416326382699641310176063249795994794638412539397227932976825602728985841045283551487215171039052248913979207429187625599213219568596136473266483746549807291794640622592614719776224808032700584806784742733103203679688769602174849751373990048334699952156613821312524984973681795557017227151928540241764562894676233735779519185529312343864434750158744416335123985271477373882953567589826941348628366973009562304295973979283005204817150167029206542699275946409098228809938972025731396465586681092061736304340306839135550416627447290440696024911074106295328145860779673004729351469757469120438857927453435237915211705020006383154332610376710861866405830164095459463591724475517405302994605495418450564883523877543172005097974511739545253737011109155410662505783384722253678280794443481795948554886959043299212618985559376913260306732800001992494448471408601663129308887482490762864516582861108616789242230786574150204259949077522396959328615389615702313162236983145936267159325945501924920223966826255441072400189808990226442257987235911321276510146540624281075160791072350866135469984456193262663426232804231955375362123145592974599530828270880434972178945355326491673641911508136213042222415468260453962420338910609645117446258841149679088530701370197717463445007463377616217248308685433843608101294095599072603634947749083141751338705978174698045283914762133830416095629811113280075416619294117134120511026795825171781558145340950651416421655063636297076357463132274819367155299616591737686394560094041981390650779616088529150280068866832911535969824610166196577386451604974653383698052440327535931625317689076862114663950454106668026512279816077084665041165990813413766944264775453112085069348457545430199062571014515646686912659213693501405823227747717790171969230903633359453938828318918646674089963003343000631560053312784661645171758407412135131946875240030919049082052529027848111211146274741113213475189698136990665501258245183436471788154233885823429962640385875436307996191828870889794219186429658965548465203680782958399548723955409009343158841659108258242436529862417327548872037043817474894009767385404095189567180340037127765740451268245096594888609772650733645542033747422047080851618856312328569506914647725230377475897741682769128854165778931374893989087643372513719957743726227252525572906314832327943435084320510990434510547897818458497052886250333727018941124723670338970030937605013702571278328831925133480516922336008843502667116164188747274782932283872823925954583824980936747867452859399313123563271144629054667093649073265251211681613435064865982057701257344167586366206510325133245291978496230105921657908793488121814284842175437899674074764364531217355076021842320520871253034239285017270613611717276715195758081513331925115361129011542105086710242077480578501381293334503304438576516188093793968793370817263455782460660399678385682088273060961412454071053452477556487417003627058394425006247509883984650579414872842053396495576891646277958238639723058996735287118702158904122556185421428264079192873373975855600684534196704431750357669642998528493443864474382073778592984166543271963615874148565946730430387786708837813153082690679836380212599409903672264029676962820018807215303875265464448066620057033981084528546825232734212608804672461936862471143907622907957705334429613287173138147671160937664301291007788013908114781014592173326502127326668750898721992084051268669020445004775032915221775787402401728035120983232831354392407521658394571608976782196413052677320686046069826596916385919111639131476626358982131939660549677767245752189861790265945267577505626554073738799564525063619011982486477920848134598835144041856610743516846947786867606207837288792944941113919346311062024555580977423963887031320837567037845822585124343712503286401210514451194527350514814505691842474160222498660455600878377037445713676497187551805206646180364492839794580669511713524468037069694115764827661792688760585614506040561593991079829150464605904741831993452665455201612984584725149242410176522808373052181963973587154740433237946981652375997444917438878997426105963510490693962285409709403036901016629597996742748859629928175841368426926481453035467080571934024745515852508496011394318464442187954285637749784446421638394945619716505217832130198654567972431986468988508935764295225661929458870079534261817932997155978978210976307095305477647097539085022183612850134405681826604436750693555462580310828115394134694884103333643009673416380205509583008952292079929846870357802571344241402974004452971721902671068383102388499499137575099164542122245619936574655944936106550846738419443235816324285470499783910694339223264800210368201423392745395423707375509743019360749924434261695139484541717074293479053881927301691822044658248320815757809202799970197728453015212240585802412327547749703430004982926198087913611487599210680419728972640010467646735037447127361903859393297591709280478836745697495388299181293976137274753869873821737600617000378018069328533723597172919153360578762411621673794215734200245557707089224042517456520767365979835614000984160370775214305815301412956458723778034473940876132103489807527960741690201629628670753746749623027303091593128878681162702386715093841275040256158485422941588725765133312987830860160706316027496195760191564094038263594427224682524409207541493300766920847835787813610893185678435922683400211794577587325847989642041992066487030268524869772237465277231831999937895343276652716293611313324623190788600724258244861061510132633989755890568198688808484875585666523047196655130373025408624598606935260350247482853821974772734124153695328257290284677204830944660232167437949915283975987574086112780087297257361773052553252502807584179344638512925961396387475655653293592979176896664356754470509094424324667457071997301551616652707734805329227998794490648531141215808659601054808666230415297025791083160253747525698248712146346300123797658303005777581039162402040069148191699074590840989813455951112765363104080500613423365172315532885351745450935581772716177781570479731760523509858391019101666538149375909356194866929256616713776354510507119561727608183084112320178298052851111101178311508272693144386107997502470836805478936439651795058720438833360887692942133666747945707165886540450872386540371871264144857133879520999364007965499098298742299571250302841463316796619436787158259245079568826808811366073389966821358013216834006346549793876634909136551413340857632524407344060243058860393902911293443494647162619123727564639279558633886745685373358748743466709819076018126670464134766161483802632908312782421155418557364384328223767390815117888287956067244615800181183575961570252558213652928090418539859391316855070176784565222220124415263886156310597095020314390220014767694017798277509855109337100640019108619885481848621468659962168482032294241458478688749604028591848923597390684025472115232676354617579855445014759036047680765725088189017234217422751377210343328884503011940082413126503669817005370404738242215387893380416113393008442831054431911593463782293394359102980606869919228676171619268883481252252121491939477568462182745799270224513897832757276994591773894500391000888926455394254891349333653447025009017996778649536434508762814421812199217444834303980948887059559861033518297991646210314800064829803503864701246540051791398103649831158654087529307146619613659398061451529512817966681200969920966115348299416446217680708416061232238320364268061908581570359539710932248588976258649003688763391739288316300520297971135659516946195510385685555751576560720770548070245810604671674558090718212387845999861189686556440809654320974618207340458149780039708766935315393554568768602527779441591684868148942694441667950416343090016358194844886282888618551257293535116482533793268501041657126821455500340324431872942050173134741359115164226874068348424717827010235091403275158807601872825365937108442622292054434800909238432503747511505077122086808111785882433754166496892851651038480071291907802491786897463018861753757500556139727729756270107136400450805469539900821501389496720213485603177057161548537679166712521602314765117159235149450782217159427628427196136647821780579875112683549513551922846652842908629758086823483288768456816092798794273300522069112035899905055313383234844864280392052240332469233381750856052772382275634239372003114929620969030959363169121144986466041224387336493547963725947129483995600694427679356825885054332569280601255340591856472170513267545505259979224168536072388714015857851284949083477834665408185311557358207418321473270302386238862521563272241927681559136573651020530032318145636868978182373899613295848382934861972013680540885507627486792745657270697147770112296834638796520511195134397734579689396647609361320613846149200899054712595555418252187294703848823516030191748720144579171219280871695495266867303394313236500449585255201311304354925147499343282310332048747567431922162168482039683731869167642216580937046557539549458720481830420092214204140048552155495500163904754647977590356952869527980206770118819874407604004794945637361177755254221407654455229163904555643205894058367926358939187349433635285679522729798233236345313666457008469245357077957101536075459329426916338614593438069631528711901543087405451860535316134163550232508203763491383989801179750389779798262654958314563137558961889388989780510061654347100883719882555044469470248979012910220716470397998976941523779604286140243822022266572260678360305390546804971142693689197929103157198210804159143119518153953493860701984804981655122445578972893434195995902834932983234000702909890123803542768090891215427737989952297686755141578022323270379490346411241080015818889612112371189530668341677180605624697113009458502565507090066838759922958226666189739157112546109782317018391290159371048386601653142858016883673319563010338145525773440082340721998389055299831801473039596005768169497135021167262111346784365990861508638976015879433471843929082354040176846815660143452167473777628883927866946395193347270987212574705761592418195670092733122426192035116185176683094985903132083991744251848915619237151836980732342699872296037801383226530439946930310293535865101486051359184697329784174028392929587613448561760026850923157722888184019449650383345314235870234709491549627073164561121820196353565001656841582260457540427047555686879337756883668171424330834992135879316015047287328510440086105888042199928514714124984082406638341312111566175885529875586696386213496416467838702748561511199179221365573567536380244036916975650709645554350578032978243688814193254271600931156043464480539140702909950258834669474996270426863158365673213523439910251652252673880091914559177505944298193111383492082829680786842304560649027024048788049393162396216526803923211700420647053328884498443378908755539250598014612777108453017679825716493811900613318349823267747756408513111506011001388711291796666763825798953073889197465136103352309879381879817511065470772609831241939227610270912504790908610872631882905424133810293380656685443260458698858782310733006320154678740298370511746889481717445139465042462129721761076510717622504550376257622473320475608731997729317861655087613478159338290012831084565094824982157547716947367340000978688126542758515905596059267189844313151496544817510085507465906796800906270931193219537568936928040217675717340529606433914999821178493611334590956880483383244598327695608583282567133410023271308342565400737848701434621100330270240679921500610337693710282956762678851041451480189853597604946588996208365418841081245154222404187057314316585922012665882399093348511066726281898683337076992309116563695722539874662217631376394409754149035282182650327348254551471332150835008354124541107445795822066542837751703197262419130040931697175518659701817562610632521532030724712811526524004917859365925460503273954488492530375506364403410919332064741525939417920291066177085475770296251695966294134359135828579887586371101420934697514675742006886748155238044136348394768554946964396623959826653622515768020668356442020027344503839537354301636008715700478303103824080327415472530869764208198263626171012696348050067957122953212278059126576949774075040313755771629896877264658808863841821327203524382447959464668621107138196163221241908680737431074835597403949893606886808837557156500885802377809908248074805846070734136600750240844269313104684896816299056000703247103196344363180461733522280193128034110824074411223841934605617744198215462391311244220317863285612995532801788575024341800145668490850712415898759515499057830676046124326994623636715334291664651207005406688769852405610173379177619611621064905407392837766714186088569472929836641729921184872806885969901862931430510394508890619270186548245070748040202773580148240208615123460821422633049873726852631505096313474312429386273049918304674295670251194760466258968538850982562835483652020812213802615357665025127366674815950630387065129618723348160593315792501309826225031479769138215607858875029617740971005627642183738915943526469397562693576156886031836042371178205093209313467878683823438901905529768081503505906103605615901709067803301074064599407513510185965025402872345270742312632666362138365975174610728855710571780286276606155252536087477180216342589198036787890248927165806453627401814222281752004196220587025539156652352495600129373109016664429986197467698237293779206899952983128435210683934025407792259662065616204717582931900994120299228094918390412392387734481866162862243655517350173498773326774906108897898238479073602534694245734656459165191803157636664797787513490252875568836353185174427782596016928365013380726863920473076029308933339064120009042350664226035381793663784630914629030277595039129470307674247405546752594518548754419065873369895535456336118985963076972452055531684398931006905278895238924009316660922758249871009847540282097153455891259694503297813078027572221204689719028767639740138792781859061698721776406985159746274819169445793155116410065840712210027176670950859882346700593971800477186972177964394019935080639733074212576754634657604171524710113075101955768591742104032933024738398630319436658026099204618864450298788922593207249215674624343700635472116148981471302056973773657857687400580716722131268516343871186762568297458059930898573285915960496857684087191417626645716220754634959955138323515362133690503935323687775652104448285770788901320748297839188514427665797341289892981632544285888405476654353726054456091242574858728567958142427810584187277538407081787863166869858109347268728640483061467327730746274836367057671147288209458643386643298619169296027809477685954643425248440790042126994075736824559050626238502646087128787362924963452380388603619065982200949910640102491982001329906838814415080175218555854580989797524387091309589947681318726087405733415514141651597198852035050709198030532314678522753265961601207133391460908862737236376604736804033102668656169894362083485202756859167794855604352588595972536744294930036849149142625874625787851515110334508984590977367726574028348929065087512021648708506046763278951478093192094072751692969640421106994347091367905241275327139996649530409297169628271373583890078631774142408754374623280474434805400450536405140609914409380770073268273685993865263943742018391982873278153782885152959538800921237055132170700338966410752819881171961904476884662529743081843357708826588622101516366949939005297837457007486455826020914866652265603487699071814202929623038446397232595566282596240370015656920789499338850993971140139367851200273776248906931047476710318937638386024999688350134478483390116926194396724662464701486839084437363333680003355290787433996390188520987303946523844847091972579968958194710910785946588974069963496591009580823193732272562005014095892940909025771555413118423586078211720574093065614908591975208639742555823679663932569877437852222190171532935400979109393128752796339578802258444722123918367009562160515602481558850892099805341975460246438233091766660174428132107822433255077111298711086960581615416761596178700886952748853328824911464790980472571556028549884096506553510982692894128885057219249497370410371220164664898764690348172534991516453994518620537543157692271977167087413499351759053684342879094743532082073259343988974898421432516548129903337189023626462497548854645023520715540291311151056523036900210857033874023750743276466780381680135676147384078885749241635047687014796650980905337697229888229244744135688325836225171982509386815210781861310858485219728658704282089610076004663494059890039447191437008701736179521091616791618800405448812086926501728394195186448723455941894023420291330881459674373974568257543281642809904527521935545509398558180375842877904998476582190760137244927254286001580375322438384829906918802159105767747305724033524221867532541126289325534382111264479737386289603790918852475921454067649906990684389244634146975865646950016603259468604659309295891531383823249200381550487153057118514814940151282771738181957202984598851137844118103480231481483492777466467642809638601674942776335356143869742745252011401981912424226744167540184144894802050854496560054543364544919265912852583230183786387343669333786385899852836859185763534572356038172676241101655253866929715587716208382756177302871152340555763589102070155665008223304936210736650591022111942637529740472919154054256071584417341067845092671050550621656465444765147844111166145634279748572646693820636379398339906451149555052603898779477335907296056995439466746792158288366133019165539088018261507839321157602434445023887593796607995633639723724185894231367281289266547522738633030960800241903484226984775352340580743412747707571688250188384918345309780111898842344245305188650256226667456510295004068579329732584867865432754585858175361082755839238983305388887749954725634882738718184308522864082020527393387456399426977931412424866716593440254526196263439952400493104503283278589015122595418565418137088001194106471160704925476323158894863102862093888884459654974129376080322185504748907527748031164490285241993599724703133037019309479355289841911297146733602613757493608680617820608803722915873698198569771604581083235988670813729868813706612807625791114286250064366007882885817505762127854014377921627943429555062312288612211543990701998470371325640461891231717564634246317775626705124453793060272331941516995656050831886617328734877202314210766450450461385566665457223266827743421087199104789928117001771036436610428446731981901835133808899831082083297794796285608183966742043398647445279779182605051850858045028483967937741820792451725166166126037890172618723994664715565857518749619342974938502375225332998223223377650774149532619815350849570770577273749973348413823147035631230763317107815479245663293913383183375750853430813484021498194755075683043489162361691967456796243936800489942106168460711141433150229798233872030458177102013786198383117008875885289960855865610952807681116326862647056628426554906688387436122273388125370484283964975376803906695603787757941408352281690180749388018871932250970219496195465871224598503277109714084734714604074120257551738639689825408273943652490021703181731215667293682896212941362821900369331464189371878040040561712137898225527770241598737769676869867702276523491205198115562787940562380310494411445472160437627857293857036581196249954984590124957946753625857249388753586872202544020165160609748270850846250396291464263906113150011710027368123252839089119226593345408634127337083399900170321806606869309026265412610225725883534368172548429770161279053718975482349771289026498204445678702603059864502567012650298579213629666838959787856101622764923915019478111338462981691185937000204271609797510026155482214643478070703799270196292589575566776979002834075153724988024800616284474172238195297592808290189993666005068598896510856473041547966958278988820674820542351974318702022134139273967122475768489697654800281622379644446835406688358627979259524407349309476792752296770220204517918233047891970483717586657678201447111023602630413397198165728423025129038356905450608018460311582520110216833157604892024806604947611551187231487805103402598537724732288022083808785090989993541905232165877383024183149793495480533026625396188965767750631462222533839547840956462173347615385010562597561931268072165981272939094962711650058973202751062416907113581490600932031347818439432049529896013459252262449514963811968653419304548545381982223693463424117662000460805655537567571818180033708836786548799779730080790764440689077875642658369392074847443601627902511649415581887610885606018597875365387487644730377105068196114761891292171110494658574263156705975041250353489399174989018544163113779131345741027784242180635093629364751356212791803884000402870553280909852175721094175911019257829391532073980465151872574848686054423331573675216887836158976162498815466000433451622827719271797969517716820748668478371038344313216864247614524683725650145789501438388134620496234734284922142945960985914690327971680660005143341678218199756733180377726807813683171566129161398996804185845569411997123889341278959206857119421720593579814252262763845233147922816606561592565062740318463766678891817727007863393309706641677025524200809872645797179094920558448985228707622368359380072733055367141742899239725364156819025705615628076788773383741147294532814557042920472880148076453847367094828753506855060378874789186909806841119898519256301316849621032200333858960517279582916554537062803686532632059897366043123320436524525753281626265648893257318012230147660709323239313252285285712829155489800484037261025027819821367803085217467252077634939590238728026780576517431774527370893477948015135419585419930387920076780080963194582725296406127610042886526218646086457259697128220856951070660809502859219410556850373052536646659225430343598440544861320902768255088166719003231434145850025625833872088081880052458478872269460047711304742259291986583290500391926682687548364141969016701386764664673001544184985748536778295167648572045223361795925490259693474052107009875221917755420995694773619215837865472403303386637525005755167914043306688377635560269687158934499764441462063191419544179828841333125935877860205823020333296976219663739092001112176081615174957783402449700467698353330871847728904977873716856691859089478437649206175977660379461233039003354617976848899144544448177072949853213935515831687157892999296543781738300685063127835079002672028339114523956793484235758039752023169648212794887908460534736259610219475773078348524963649232374100966547907882136765459474474294431856272327442823536967752275281172530848745986709954482694844934007901806710155729682516360403593501919463122490945963980181262940971990504805713285993749116212005352678858069459782055658357475151867528427540951759645636222155889607101351953874261606171021901931409716790838832114442687090109769448037701193957223503341041908201673972836583263601363615766609846484816765126025303805644914787514205174367383200281886783101810069804783682508334823030216544359588811139112497042875704077681068393383546868020548005320652110270962640295221325837280309544777506315778264207763575875142247204299939893104363304165278023284771484640867449235474415326647347177447701044895077048201776440921840737452318626684509439401814398341241607305510750214794015891330866823506754671146789324425378926684486175551122263044500715291227356111559590786208385478190109900086083097969740493139588665318806289338456954031488673124558181223768804315529756976046668402825754888054271569154061285451000409799677514214718616100470317722062526090642505029021948937837095096517394611586685799967644214708886487230498758484750478517687214001120556328440537072871443173007671871373476693600419460599814708843558837050291457538360707183767013517180378287803589862849080415348711179289590949815155625837504067941543801204293451028532840876818704209350685171415117476511448083325603944588243009415497516135252694028895280001488222512379070913481713346038629853424824493729572844946465734055764907975262970945777018217191317777375258263409341270321895006968098619226194232342743134492506559911743626461983453458520908681655211778908091689379141652964607431022532291909094475253693037410770705659653103382065180852532917736115953159814464608203788533613050020347365067494297341924662117518229768731516640854764769624169815008675723411602318180287886523616950135171251374405458649081698565848580079031992644233676557499574159506304287912510990169487662019059501809460777874210483849808690451958888328176878374557726378980770446326155994383763552500694755524852750088766730807973704748904029930506186193589901798295852313660500747742037175375566848653260640870112956672857097689986391879129456798737210445659677633568395100805978442351345645115151750077077861475993071654515887213138624798651513431047059267705487154393697686134580006293321927162317207325860410536278725789899910458342499220208257176481993289625580356898752993504670801428917352694945950340669515709960773388816932180038682963358889835935489932778983464632687323075298501313688292899974286009615618881245162041202053914768855667544876561255246276844320392201693327953844389007895493812517406357767526126218242660149421477826585355841497879436689336366886770692688519494280092677325658922161118372354898276561853829716740623481047478094433449227619128607568417759828883255842586500145816900938292158168207425936285810947701147624532011458993356103587042725061654155205358106542100694682887933400922906913350210513796482824602027442297032274071703491934258504479301272183151790895948513061959290878333062759302433329220108436875863673748226226617127052330052156361029644213343605866416416559022484538236228697716198746265680031001656839462030154279869452409185352543903072694730047333902123644257484937626767072814151157910802192305057370823218917258976487546883021964397432202972108587044410180936167502265046638162778261142573323943945029767943437053391170861154085798193303981250868760827035292175388970536462428616101215754014912325102627657487641071150468459087096527808819996738154186613084180250217974413747932389973388596576306454126409423599720466891093486908967852240383483589304033614196787125871229773467936080333686799031434350517205089821377982923788230299825771438015694778158652062943844552653880665333842968240791212477940790398436649308518695398134563427567313300046372264712887122648284937535964286109036394131382472259296657368184574158304391951860660316536673355173055302628589941673855468237779847031165594058695433519249055064366432917247937943200565296542639891361601291359101280312113979359807693678739279857671175393831031352693472141130332902535257328589481878107844525525694954604686716267843559918118602412993193874789091329411289247683773514265094277310387632994667992145290272377006844248596758149928981971098820254073353772523841850571023695819570885526467819496278258028295175998086711036398058996874220318193201066878195997327308516552536372526764191091842087110338585119269151194608109057675946151444091503605219568736730545727592356473066754300226709115536533256670668011443299613041984785837672194470895725084178038734891822513371637184484402772566499578392735187249322206408653359969382012625557109992113617214683569680395646878430859706070755073393846358417776121119075969179997267482480172221551454607026557089504815128558688190939167875314896950073723084239427746621406259891167431089388759820346914912505317464867549478264408137768066595278753533706269567376328614877294912302843335544153521172100880976030860408757514524822245805256836916980858425270010264435180910782719786378512548575903807777178330967521345401285057076733771839877020649356290753595140294214716780165259356972463981785389922132071636689744210281592611039721942760751945954954169854387182425711607239970162905948189074068012007392655161221264651893473676087066407195472482401081579267200013458256978841755317263072580355648810188764727738575965622978520411400309810376969697296679917177155889802589120871907528870916360167831125709028346077974686368572789905727456405902287160121094268718137569029524831083475547560404079558580912369947346836595944566884561046586422020287042696133781902431443665876624543788878163576017907110425851220656463435808548679534253137979086838354185847923689449138566396420877521988382485767266103548017103957904454179405350833775289336033723089578315633964339265777283988059010112944177511448503423546139155715337951783656953603633506481796960204438486754697121995567874104471183493250681537178790576244245562956107584735520569906611619070952465816328854652189371061053518763700590207294931398639608488121254196496393628268645875022380766783089125724017855535220551917756139528928566012635035794233240718402158914800254734545442520356481483545745597170207412823359926812898385495122212041616934532927365043506239320336238566391348640969305448268009088227587443780282717731449100615692878978701243561271413213700418235773035614087519148514112252957759862512889436523933042007144141391305610246531652322295739012140529159356640833719288701831588538244256421040680691743248823749794103766782905756228353994152736492742993163386826486975284764546519645833163355037696929798749033303176680587139449396258066510814840651415243755456503290541089779290768228177144085932797776011140607527553863497269766569869631448870344097136644066789109863993521802436580736014245031508524791184519972247266570831925568622563114486848117216398966508451352792182856210745458450400890767000950598798146106923440907434477782731298708849737243927811109245476025559242995288066687769329286408422283347228442936778457312791147181485734893271625209822637115494095588843211007475187427476714372731095406718935568312933373364096573027431573789789646179502608479184280865197920997973350761347291006319377876814849435747289294009283590215660110634830093738687761396763146227660099099142724669924147415735297035302611025524122177244640346710011252079441968478080511037253717882528837558383643612114724981210962192245065127457464863012339596083156834532145964698968985206591305998471785030441763834497518489166321036790366132210844784451032694541011231629817413333198812801459851607682197920723505323408751174062207973514615446259662651179179610228692817316077616587063416169672998512298741485393253131200894885018184937981137858506079922445485741672989457632392852539330996653595171268939091898927986043778153489668683331961036763755304782747731571138258364877646116965356039193347397753873600908284017854246304318216517908748222765753980849879819220900439296784565417338078038434740550657555806170597702938189669269726813616145794747383409056688994796799918722320354311263945386809239315659360310217144336929385935557010263363944418069253479099156173473772766543289611947654204323281705059112130967894489304781577251739473351260686351274872289049156766627750587239512198778297773018383071095648612249345704628918710799262548359732990762312047233911396864780661439996892455463150886001016283411536661573698445160029442535302528420173852970656603116824816338430944903564392530912712774148692430155364415644029829783870871899631717134826130962294670586418686178665294553386580148812963062397736754371015509099732522266582748656583561849337455819522821802740925030298667928541259255855294036902922458114981367051526312937900055219867375859584492320352414843156422663477505792210755504928420404434029210115693222379488473283246502901048737151524307401320775722433272959491728871654471606418470303851483059661548512418250563297794565552335021669149734463768662060793523465300619432309130909890572497866580592688359227275783883517531837269866661728832381527265159724278175394241058899484989781170502083208064710846729695674137929140135213120817259600167880623897290286446024130484770687898741007089104584057548177057298872138066999958643778394888000013137983666506626945768283522125480488235505205742847765053842178330258467787023435916282933864668427836728598233834304249426467548120271028256513636339542954720563254592441657214473445880575048886479904458066422633177866471560370337904952153497228501686276276657308850240851939227276569394440779222531062309907902711184844152782298232236388395362771501956412951747262100265698329382488166032114365965759074484216724731757349279846477582433678349315540831942905602019918431621052187307006524357631251065166370327310207010084627022911160170162661295801279397061359573090716714637961273898332878731385017339718513016456352585548672859093959622388976196606233929494983107043587245853772354935709230926660495634621621977107267984304020409230977672761355061346571766744861388601457902110900161232593699156926095867185097668344972946008458619100140304409579922349775436161047429063664371200925273262707740378285552798964702015322206025045933697952230507630840269002868577276500925713653137004173495307921192974375687362626787116172062203893766813678797463780545199856508568628445374623935125104934618441612177268944936199623351240445270173230416734667595924885512383552993226989647742718079888882646903355835080798489616662633076366366476749881180383838645915051396120827098148969509815483833126677869387285563512364142218576029689958828748396896398782368271048983788805414347651478291030765865427079056619816035022644893609620533720038573071818794411087729671982133571142724548409222234632363406815838699016865671244373809741543202239372569627268627159693806555841436028112554800360578306948540793828221716003753478608576030505821597411188526976274660807917234631892015747690888208320114436256295284600427423331355673420244615950110344925011359658011315652143653373019983546777043200624148344405755383764993067222302706927559849297577936780454633290342348489503986336977603989279094988903240923201699547162249672779797980883489072153263721701966800363501788234243599519667059224978824743205518178103633735088781480638545447188786327115769996816712012637141298709637101584758821080821849571700095577266505746716101474115756032279706915538457007949136139641564160719368602666737411864779051130270071757967952726744788300165640592207909332078185631375959752927262386407879914596461500002804662278387627024580277469625813405549960915736758828496350096466812068911012289249457662432281849120945220495810629475436047603518424496718966106001474909918466965258648201542030324087113163160745880681595551978167520818149827730842611484678416232567583559760684105133943569143372550278682683816823620368641093024110087780129522020187712539082365392964391114254158202741447509238254370162162212057455969393903074295370372678456866584283685880908812187706872569239626907011728579752408371289180697482583111911525224459448306037614535996293290957329028901215342388795670149486613686179666223105526428156402347953643876559353351153740893771781910375094234627158523255812396265186085494730110747597253654170273892480062675741101552770763401636633002013735437495023012531251548317490366546296129739143249416538294449429858307499781066484384312878697680459646531438058838308142963718696353839183708000924463716172823652072355294107150945063119811474843499784383540860679149362266554139382004962280020636423076620995137476641989367921337809790255231406297788853468946833705494751994682338076047741649007065065704958613300068643929089430371263549654915336377680667537678871120469982983791809931103568637882163427320422340100037993248857424090223868477328174752856451388761000016619800635410561965781938382010715013312385341825823220005792590306732656388512791400704125206063771354894913327820275015432797374721417591321299940726354461213749037781121593576691442093843160559173741930608432725602457325137316468234192417001588558325466967642863101355637238208526521475201497575476094550792242534142025264247739105443719051316518652182142271509160132339278794128684614537482638040609832227565138819302349447601495862923473203584013900510528421707569674871899365403068329207862135091807429224959941249020620975775546424243702045721133334972139178238209459694129086279131296310446883987572144491451719440891337608406370867770080445882567910121486472856577979327412977563382232875896052504966085612951838150877009517659415239944969401721726232276852852538278537109778435627695386277179659858301892614716636849490314491891387034795955168956627725425683139062861690750602231433909357065860412048319045681163110589562725287393374921763968156281405571291031282270555053645948396581925360183823051032773699377141834666424159560973291864034138846991187799048180787177882051001474809280460219398310744953190681832954208320315746192175798527144335039812681461473985167278622160943814738372008010180946739154953707446983069398479642366089478154428781598347350727074745439567059565554345662256873484876563856024556045817555077516064510524350420245540281028044984623842251979359913479583642165618622017789863153234939656012661759425881383776419462563393865114211811132232732153825537431248871076089370912183298672408225870498080521251686669793360729289652481172879966230650236059326136343994286856693545925885414746615484230875595467589397755198485742898137505836567553422609642428751193357190177312450563574654063698863453080955983078290792294533973002751406922726098045038551934717229053703527111338279019661609098623429317090730849074815541049766693766194449652459223375711030449233719896032297616090887849447958709079182712775706542420000836992587213978684857613747429689177296771484078193181434538380139901214980139189768172138230952357385506501179350789194703470205853431553834549815675701462391354040099751053802097827946230850336645888932461363382929586111149269938509680401435428427230347329163290005247565653683889510131329589529000145724908332841900646480730330872441493179818780726880084689027874836017791784943496334534632439867172842292783368180401824956170403084470206298324166576377016837297909135997271398812866184252713564542277555734869827939928644008027479075392707192937182881437424146913651623634645394402517816092357838488891056024213720459134344621431769636806708507896928363550155306494108208976469460692752298797161321014789892166620969005583904979109893570614182723210426120752883161961537207266352741992771024536594061130902829597328940195365408988238282282220272864397003966504745369412064936378724955050451477216069604471918210956662915168132059659265307318303764847115900714687966923440518259191194667901637864580805410668693659973825466077217324548265518013682749774689266679651436054368181386518361939106077682595045288981567988065607540056540956323740414850873052548477321638153219106463482306508436639860665295229635602762809207799408495006172069187897270895238183865933447595452798667569500842040701196426527028724360633325617413877702780205570392172647167814461982921275922435737369791752997139068302931908975956824396946487715242959839908536289313697326106845960919384369808802715462486678940288856493163862040973387813790054467409125577594270518369481165904709843075509544636310521463473645772304047267961703227579455994040699292930313561159975020164930813370849925688167924888930738939560852211570853225622178084204536069877061067144366998292147104469325606713471541741641429786194971663651469904602396426885170483462468535078287781242817509985859301113365246851970410237686618900296444086655882468480432625134864204768041246306517699051476796592638760348900116973089189440576570863642212950113204943718785214816305526162557257822584211444791788680969441553221759028785813991660492616582089114624854026780648332173333369578573366607305925305405085739208626604249877632838855552309741277406612409944840469395156388273521718609482658349561587574384401742353334423974051933855605507198105686939643062722296686120592074269577513118801101684988669095079001738356817314965839914874410652055002262697725131212923121779790608543074173039912516973772163595699496982015891323532017685267174473111018763286259770507871504639237331997886479079574840125492932462879877114298357879494962703855039653989992175186695011030500587825608955318969812920954050239425821806811187387201332583645846022688413713548032628692463773403247705640749855878850197987048721860563370297380046866824616400155951237969602983503277621022512060938232923076921757013126547322078676095784869620220953096701417412575733529608551115112338150000167508960882398901595984559667554204814669108023380453209733922196465014488716352407040977656287396396291144761854814464676513513221931054498044012591497505422953187464211954949284782215260846737166639942930203117099246386280296818559703260694156033324379851150383377370856456847087429967548099121954256834517617531077556150423829980274375887755591847454175909031301984672529966802449672979831589955921795538179431142032582298433565631207088105126780732342592801963446017312405362189574188319436135914071607423616715495835788365726240405970261448563372548789025805437538985708114526589198087984464671973763862014718980550638553761774217147305970319752184559325062851601929902816664257053959527320930909499495204806499781111127530524158950726967011982311144212668447325980907422601970734166957096612700317752329706628611197036688048741531800313353731161619973342399689296703399516313897511212690192963111961860013693418321723589867735955575275424635668963708649411366063902426163381016064897127809617021790614955754153951491810461429080409741402088991268952332498205079276829764787707628161532471590828364496726815678660236088910361926441643247938171087906871988038804633175632446825316088677170076538056457189159246031143228300095650583312524973330720685407419099961304167596761236821136671651443340823009935637082011897246147366518867433758215719774083172901450747916564999294016748062543330539945663101906337003423534280303386380541038933049730718318745009726996249540534887011233459938751536861432100415143529475225950368239311155520704622151846082107165054942165877564900983999725440855959025650575189164544734469930190330217392948634704469921120583205403869831589848082755476313811093270476875458262316304348974983780011489935644679456215421371972188734490631325192851587587082631407761436727746853308068676668578503779002339410960024156059968389759309194576060890705430274688228131582154485293878161285882766901608218634232834150633405698534088444778428532970980118484181674204272182735815014513923367584417306263419070242315391949182328554026419217541225875080487960288314405772471005431656585116683046543751991374332153797404415141486391989535139798798321107687719838340660464836943642423373785050323708095241380017297798560804355985074899655370658171765745185414617481443397957457267709231839624788178936578190811180405080228238563118625819879942896375766263321516628944552152185920367515103810760205020103902699033666337560428939086760817976366414860956249499623697382363829898190857542411620465450975681859009205700500076527706091022145622258483453599806289402719210933225329374905036629891264440162520168478033065086449638648458888706115330006195662456814288029657271981959334311817938943838674891555161537794620489534525766110067081244957716976516131861376279918659565186815718330433136034672169754651566066451148876747699563042386260893700197274926106461144936240626061410458739580399473586102987619200112491955601069016400866736283603315114782899714195096813912934896745764738210118859048017917049386289775030901136962550733676585405819758603800673989651690675148646912048877687295229654101932031224231295469464642477203082951655078832824069493915856479279126236986067892223498169289409922987035143890754372513656758238784787265237683656500720044603885939707329337729648975087664712159814422929575575029647694452471537156282079900982119090102592011304272704014167037351664231097885741318025746722051306310574663973352249727818274064893177840701500030861839268890929257623940903404440165035590658482727130280470774457994213189189359278229656337698717896393791372848319396962535604659170163062001206446667633646823323526320593221304011177711508416261100638232727496465578849039517795947006394439256967491563807058389089223822259571397082146482229219125179585437956985987428117415364148938290305777617687725200331121061700079866731075404641972979000705319473084967673010258990944882831550060162978964593263116143022894375607523067527157348572461204838094630902054943536673077486533032705599638096896067572646864443390264520670224575721350340222388116467224186575949650813605032943985191643204808568709215415529683467352092428871317254791682833304208945189983696392992707972506996121974060528787644563230532658104359187784020420372698410593456454733467166054958220487558222178517997278838624479224031261906202208608972530357684196414657586678791701265407508934723553681851915686977227825713598299740666053211429558749243920459960665254213274592624123087075937361253617947584658311325993736093774117834611852521001511208519370154214709313838726480578382272868854030981505573104372383974741405354287255260743496926244156264004010081188071634387439366687715077829088337621586868035901315407663073495921323628942860274232976790901869029541062223382363668129522895675967785963370742700546434266880068324495700771370629770330674604012488903144259269772794850307419260579701294429857395485552399251683850321762293099601349072885610217912981216745648092181551371377325448877392175811081273630710562261006177924392003267550417558996601905325743628636615239609639092931752988806751344443481514492627362156195243157035928023909260442092072748170943891239180861096865744097389614818121153341263854563076947276086071054191332564209822355662135379064882779341987732516970144674881993523350004779118348749718943916953807281170521196414448153780039856419002830376194648275592323994282554037578413114428486498834455038547430828617527830037609804039486911233712466951483815806700048565171480217875525177649283700088131364172893534022684823942098399272022650690100874046859009980513389379487120802422833467385245872724066516015296277765855353963787382375323439225414123750632689417804453312432165683573704242360872813168607130864567156975668770146278388727563853988737117915309067164953845244424957271689033359164672297778649043089478000281329488561393991676968622644566828328429493824238268358248660515153825033051580079957366174927590038911323858617505765794867781187926872429540077019830447019516318616442865024695315344028324627700885319988644719937002687572924268125841542313112718564671350364341275651446706264651070733202726342306310613642191229234003770234454002316380110900168503760385315630708534112956867211444863121153356959111414761392709491703229015553559558955776514921989816881427814954060239008180410866714037584013122853137677568034552107289491754820308982988457815942768315223560174686646099189458350368757047655780546137014572208395017184870131327061733823675857522782441443420785970056016768550745363775320159517170290834251163927018261700774621612640630109940587279936069200691537405421502704835367673522682962090527191730645958104875314836235038644149116577781951788905600010524605377017211265567793426779308307177689440850776211014632984992520632474954249187109682556057157717260051302839532337559377515707109139035678350355946578584113953221238645183444028498145716689760267950829910828763944484220281846878243832524379130022609547811167447455152064201742548945617237558113763473933654557197583837744915923654512350766866686998832495646840395032120487927016936673230868866647989276634244875265913475461145778115534160517690341543579424148362271575407839128816898050056818190559567912947726258748523397808017402837912038200190140688295253670789600142169212395234138235510973578115087353944592608139466206363101709452241442213435326974778418138841831129469084076428976398663846956112270282330148193424270400006255709768468903509230938718627660453142096341052906107347937324758745556737143391282731257216771080099246477808673561372864958892021280004684158239833894247805454952664977578230461123775970638700777036253119941135786583019759451341662017954551429263612637770675258252968458333355459383800587624882239917743850300834704845398838663276190161024806460773389194559380345460388313942754515585826884769645182627180845300973895839847609335233577598230809082382088997654431353501698270710797552081817872161520114167213215403366901783190691492769282960111592607952119323984539576370898997385252412957423062492801239425564918702346663233727694460744889082771052265359879812632351205575806887336149418591617473050034683147524041080266962789521418517701137561849912191089697538461008184127139156919377231316990133127083996506816392899321715547097093256953529341283955944976276703783531925706951011866625319276790339099955580322933611185420220387580866068051736146499213092039806581412468127350635391258190174813672683479409308870017122612161366365764191126360009145338274614680840497268025227858522239834197751201679847583135194990740840535916561386979512708985048577272299278557896109465833055435066519467748228704371740465664056520302840900615833084432567031642644832031323739556675212180438883335628125719966837724546226723041462341060397172460896220173812259802969904266845828242172709283900322537188160486624044106063667675973966231056278880962822685925852657204093702169835919914893657280684975129354862922121179286701475201228919428361500218973845707946776756285618418534882340985300028003926641950945931287117331932851240571735652119398377272167731658584842481277806285921280391538293046059582759037115535075065774435515254837649379481479110979616542862792843453060268969347443845817734891517287809051894164385513656548588325379091336246372618238534740162151037502107199906217193624483007804256121182431417320083390425630824491016261550088681781578095821827988411248143672299283901524862736065582808396791634839150146498835102620718609296667454659529288312388305846775123974256776490816537770157286938087421752758436519113637135789153799633212748182198903714637494839492889206203138694562646100267209126237161739613497637876542650767003527256074006694371825466777946074118732442317148684177034361376236184479207392579461177548842123385692527865843361387672020927822853595801242518159640011978537590406828809614692202193111664002068322569013791963011497183799928422931486450816100230243852119655139906629105970719234419545295565980684292729278553184594185691065119339528403316830488608171052484196366311007167339097818267247164482311964803589470846120206710862171734773188674291779656014346964620271419520505519188474406241086468561467423048538376983006095602403378246622427660271302955787534077859511159196746470995951045400229928743150638036952262590781850878829647591403141053349984491253041687588129812485922742250513398554340002063186061244671110213267209133513755979571870846858047029185248935121776408190806026334427901050422416251385348447794827561910229369623151642056052391043909842851584380430908338328244984624987154859332138626242379528384468420077021440621533342461048685869758023791116310429508102571207625650328031291129027612966064428952025185370159992892821647167393871754395564993251502292853111786548286059380525907819732082365843731431042328125969126951987487263749118611618692406030314130323161135944635690780669827462429516971442967815603445481713812030958758515553291883897776260936148710552542687368452731449820602528617349305233832424418874164083259347017989461063127283803518637299561236390799481882933790446215429329215954012123245099971022091394809810184159401704161796653980678349058398929812309972856904109561131299332598726317922680144274408599746591553981428458590581575002104614506637797980765563987294080365937976324576745236450280475499568574783314674719803019715710710591519518901796380936671178781918641881607722141380408307497960109086936557936187721782427635962558580589641838434011698055925786831082226649320986119203960090052634170851904402073952230653637769929812470461323541171727120648825430317809521558682292555229300442390844634351004912897494053472268022147499424737521193230162641445177761184708910415342931474678207547463701409931820289378734980890808113609965083596388919391685477851259094813320285153898648526299646086611828890124940729546432326226910043504095929615135325907417925192665444646252343630661721395318776021110734849807574042048463743391593500533040590605705732004720636703697701754333400434706903262708461521080976979691028245563850038502332753031508668321381661926124343741760685182968286267815217040017371691278941787470235715238171348375378906549830772011011223632151153163323804832046914438180859995175292178234375729233801095894074302567912392019320446965438270510998619567468377672708697880707061437743759989122020004633612097359684753113238886006602589860570323586981461949465200317029288164207062296795268309910963080351040508175600619294376005561563910105441978261626496411979397577145684095012865820930126606245827045173027251585940592357541332786049766295132786290734910565223452357358035178317105940260752797620852662767091053446987937318121916372331358574887352858578563064118867823538455410547314963323384897159579538013800813735805615928293394757858336131752727960477763885528190369947432935563857645489990894675971192696270878719064632978113528961751620871863525997724044125338234125372511874937768713499156115367797681949063310688219201798143062474948259110164551143799083710079424822934139678972927456361169512676650945421009567196291333707778829508621291675411644255287081847948339383467349969875199025681530632626635743260088535855408971674608499407980322499427638034468404574413652105776885866075227934732459223262515701773257065459678898066426086692381127133458565385971990622306854034396556558280012557492098558125385443443370641765521214729979717518070081900566419466250870675384277726174929919684382759923411494025609285158751198846539581372576682538625317760261790526428072712506479571384119360695279087397351736487180960785736762363757030763149577784482099674943772423161430275411753214624378771999802314814561554068092375587557705528767902862049715415318606062106689480107241185727409674646756035022680838035276182184363838671022049705675103854306070318048565557105450454956164314059720892849535783852700449526929824529073728306978906102411142701126632610923974342242700452249051367642821619629422421813054193209110882923619299170680945510893726274260017587186418839757359331450224625968164624694410913494628432209920864562829876926841899974582125254040012609748843751372835198749624638959377674336144027314404592692533593195704718626525682638025827250673952549431822310991894711379367260823023081516586197555810499882204431801347552512489776567831450805949945023922294589143302203219195749321169089675902200745495582882424867503349744168586203672698005011744755939712290364515055386793100045743508921963166143667681298933920055775221473424151667720773532452774094015359391839460542025986844752625793208107608666074631328682486603658469203087562771052600736489276827274178284589824594315196463311661331423252056411116864748642190352743511001176447575821699218643297952684363472281362067750052560266215430189151967610301965531630055964416505891657264494044783294795568580446634452965446285892477872116527026720782488701463811290543336341223797099580994787536669544999148536636584761194763746974497472891110514407324295262584994716094603196990169994548370307599465900639004839179549410472016861619721986549607663282957918714820453838964607789252483649556450706986350765088127123209427201930142102689038494461070048231278811488715224867078236118994385080722226750282528890446359892066754924675069635305850287986875888844959429723100914876502682039646903632528651199704169712247870486237733566280254400777836058706768460185446908937439847886703653112566800853290590549477474642258725669777155008429410059952942119475339401018268753365437132174037914598261180662170906222621519393025341178726521442970740412132111353840584604894769737936397248283844525541453378777513655259389888076883600738166572747166953218768759521746533364898505790181733168713560782791102372153538547958899413394725486559869803808622553475920980737880114528942678522887707429859354681791030931724826971890881925379883724926801590697697310865241287702773340738975226636610943711613653158020096499022128400891270125617849390633315781813798386926254497431424629743031509826022538657771941938284935988842598202846804067491915906853007808217586776026509045703810619853625329322651862914653125360107067151086818435010624663035288298283644237782824787259301765116335492293472474283508335242875607714583664025731783595793793630735339464615164912297079912494011898151313287272223945798529517367529585074584223940147488956877332870798418652770918532828904158560149259239128899351992079479083881022792080760224887105590442254800477526893287473365440176391195290876613494906388942839158506789741082258050718064458250311006278931422172712159866498491735369957799911860367714832445498430613609915998580981268372307872242969868934584617449404607797870397726703394795031634041436003603189615254026882247844336389378281601335898234572769871187589056489126671037898777529698449088332522023004496460750394669566491139739484017286747871694987776616699756137192604835362013959738780748321455781477772854021390064038988541736056839041448334327055230827180912416187731878901398259489227351550248312331471660125470214334462662664888239886149642426930206375369805658854472958713477676758403410683454923297721833985179103466011340065454235419625163279543280799979948541078718457420489222962133513744319265386518846272450240536564524415955776519982996227994705616455854639725071044518120313749831533415433758317151367027417039614734524975981153222392961370888981998730472048010007543525448572326024556262383285946080856358869653733485389502291233305135731001197810770811518965494717351267950075466510588665446072577627130214974345455339950825262004206185334581181442755666318243392619930036764509295797033709696784755091909621206803352673589255163429689761844242620420461661476524883387110891071162171567707786658219341208702041972808417047405784763535725101108766583126650688247644532709710011849861847638040260937941955717554184437918308548741873892511446698529556473912778809432324778607641563741959574619343823195553594039373471257039304232297323528453693344515999531147752841386141982633891766561542198085122222200108363959968582913598339475109522588669715761380313822973389824648184492482874535516674286215928414292008684628176866717211218304799154946306047152549855981539737793922933158828976647395139442301780511378765832390242262834824788909902919514264403606438109966032298066305011391822055880369904294301851486589122556554782245542829012635926372216443860000444936778650858331621434718510093793227922440862184184712992297754450341996564025167353038341104304138568250305076752042397976203141263528989526307483656364488915754733361983541789013494514568020413583458574401852429659147030114692666156841003042473642355792299320574051753868251445122150186781328867952932376354703717365046259310130529153270137706830838717674871891946254952705684480234918487737326893714832534673433671730475604609018897127697435918589275104526194340550462191066867408135747838859404387479946628337802753505278910041544306989392887029396133167782812303125598821157545611855539246823106547671305694666253656381623090479896866243200419760101222889432126597257106350202083799502882085941404644571642519263550038419122561501646480997863010826413283292457322228431753240462879820198270059977798091843199597532156478722542156617108647390053123712451056197472169714230560158456566668490793044580833575780319547582107706217592469413060560280091185986040205804634014303671580258824867558330485455189316467692638360167653410519752448006436690655210629800275151462883474404672536467326608902362088240311072822148974093418733006091591044467868477640449643248079157925529961135495874491883426732515656934104513818062588824930095530306488739080495234176956403577122776593790375475075766281658801787032029703055422987212998620172208740526253137565610040616307605552584551899157627114547538381909244619800750329247709978613800742159878195884395570404198745434652969092446441155896650291251222346728386465716644721543978564818207893711560465176220115999683471178554455307522917017014203652111521286094478663038864687066057694813018651621776279798417976879996003664445208153329406057510877556096911895765223520724846982600990447235616870883777322027990947852713465694593319757272867333324942980537143093264244049849532620319614216071147218517683470216286858893868205625641955286004318925346577633322571931957228440352713856726920111592866025600456219479139403251643044500463638581580631170681078296991439133561984261231287372354699063573617143217854954998138162727154855531089807778824573150245243696932416480335589876367983865988013329498099598625206463149923075044479860713733292703669594219775790126146987701432918472375391620412844171898152074309701925478716882392985528550399985325290546456265612373551422553155812549060966794324736338457876382828340738066132898451729735089373013465194056671764487858227207675360234473207066668773939052861778199358974531184995140312779769497799367356973334220829169384906531482453272269399169078716566021233973078171285716457972445299142121212776273533095707618760361403687110930958533310127101749434571318708101508821928270281281537886533500129294949426275965471728064626049415796693009905807980700927272428792590605747196561835965244988069844551787642401999202692427412615196432352112222405658536636406082033032761904329822292813860662417085749894485722995147056285645268620541906073234156678015453580837361203987817479588520623093022874661453241196086585279743554104360000103498578390735471192996912340646802366534237748073307928825947887676255806475845952961249535331602548794824586261373451009930564681197198660953469976960313716929813136705108564205280015005979560115319185170041505345241719130372243529630444620703049875528628530216739121868115260699200598854521877066786608450700864346216497426655555483782286486466833929218153393034211933373800966826505923591145692914502742921696292926505234055511480039840129245653460231656657404230457298170120883734082501576585884916610530763833936195742296662885580934347401409404985172909232867668167543822150540890328420229424423071269452696370089278435897610838743525895492703090551703309115968667883911471749016003488472994961268095429258449973743671130210571989786707881274641272503802710009520776477652077824313851845020758281341357814437059331302192792049464768665568835706717716059699581182440478494280826745345534621392151337577807417219073006569572507310346162415554202766836915851115214942762907781549489388598384182090948457974718602234893228576622924893239224528419897375165866813099487823789408053565597671200378251091622020176904349855512498356277558027856775610501526596184631121526801817536480497159420016886201897118466979981498650136223100595262870408084132501146140658087985534202977347644321014245584437839200413901550864207678367175100432915520213947056745194051129959031702086128403885699631604228943444980596237139737039880397954571208719583869684269750866742648210070506987712936401390096607892134379081290047116868189835437071430153995660409608525465673835173370015465635146288132158475479279877849574788622743262254723856901048800994231931886279553433848059667007366033978450351243156659196097713093871062887118894333944377680938106352530467023431656425169963419579228748819452194719097379007155064058174704638256337988896086201439942590491142887377759516715128295916183890352840657562584842767458951622019357042857353595587353887618976131209629826679604435130267170130515769177795900992827046916018797448328576553809240310036592284789746766005811165309936695447707545610430705300798508735502372670424195576086281502348083877813820289741976805924634220717370932981057556218829132538570221486399689020767559117383247669600805353252204800673926392916581144588617731157544364833638964904650370816112834023676342624737848667172044951060830135077292720476548221458639612690730261280574357934548311233156201049072877168105737266912607718282045020093569115178627098135744705297915065803900737861331213240078797211260250874695126607120293940503388731691953865739451626742528271568503992336463516621398700868258890170756747003394190397002365722716236763710013642703170343127115343861060091804812124574198640364257050999332260902900960707538700707208335571519294425689903045587245231353742123727513991577561569482577422228840102416671920473214937059074432062131827076734138616055528468841929881310737283414594770120736630726095161962128869179962830687697627705202689448700525057669634009991349627523792238038556448285433618081795746188795785402374289315674845149734835824852161337844595372424188617724494333284531614357587029937391549690443370283601385012680296059215283810375802426071314770657831652342367080769550995607647982679074670585903344062810659616030781223942505935239664539700771788090515336563208136559585028141467728742963314597837579387157161592068521692005195950146220010856209852618725761125181800948967586433606684472578578526281095021693611698665282502909004269814238453274504159991037576053375837702701695385280838466415376041717698232450310699514336829637673513298031114065495177316717911625390890246729917099081729692736136864347165591854368965785825580204080591975381333841138980862806494868240765201252563663908474985954669451512766288317610283634857014456430193938744022542262304095709048901588221609972763844104806842344126470106891686157026447238407011493025462308207582706765158058125341914899272282437586253136363638063541521533948413345196771801253419989754990156173931467204178130842824462918193254024157171240272967208633797451416907610079054004547547717131347274571665917703582715620345669368187023236562126324585833415935754970005314898644935157633535112014595610120872643198352571783416792855797022416050251316554190416579983083625126540668688125374690232078349256441871975333082589382750066598310858491636681925488747522508471556437680507805675117555249955547114461229812609381044167661480661912476194336932815485577561520124531551047875822730717429250905836707246583451602006211896737777684404511148699506713434979412718475245214589276249314314510820611909549848137222713595580623207392278287499664559339403059780844235179114024380633768861398237990508383272433012770423670572819801956634089496073657994015935446464389722071559455661203155951125757311108609583226138421034222483101424388618175569036864461790100352868136428548800303959058339212611455056890340460285647016934130582567362684342343505652167622798056117962913126703318692940733789427423918963393190784653063848759079153732526803901339777659585171041008974658858164089170943003159324374489205438664145846464941062590218416500283218603534667696158535775120516251087253424794076425164618254859318124430761852365288647908248294502438075032630738300220324974004921520330048638174950471946381522229923249549347748742244188730953509398844186674575062792720450813678247931744140874138326875390215537250580523217937070216455773349623511688882528032924288271828383177193797316677815823492718066122865615141480371817893511141759501440366577415019330632720910532382727527782376827555501394917613064839109944640399939972061776315260767204759160262292705923520547175668617012268077559516470133428183361664194837829016182852720050242851561004491545876578698387278683181673148612369385843069843912833287433303415844913344084587600696817139189860186356858625241673306874643225889467446022314594124655013007048984643423515316649900349797551639944773457955488283040717653558356603432934996819499776291594527775889076927686187990730735242088209054574068151177924814625585500151455582541291901119373594658852406962324798207168242898765112075944642500279358672598106136583573594818762385311933833484085997084046866948671873675746345083881346058180867195455396998951186207219308613566321056975177011569834865261176529923210321577385984787412498242856903593795621689818047404967385886549914212012208414154874638527989047987729540580853365187429918030083189763801987587880048194655786772097066162058941932148363215681160848610554253278075882429259230041621790539563155009627365809388898291988897776355968190283650504899125039906556426623699572041680648201459787816937588919058001954541217879608830710748565876465638185413635726339454573237265586229628630315481432007685200636199420191462013888450829546135967922210336507676458604492159782216549916506814954404383987215578666604896149336515581962564754910286393894102826785525774811813836218355913423322359554195680309352047359594684856996789245841314043760280331108108265993323019097241486366525566412837369609684861839354629692834304747305631863402598686062472824253155999279093966729320128904013036793731764178405775759732157599844555573851446975361270442473738698071424800874165449621103111544241960951565129806824165650133882571860642355449669303274566868771491549546367753912417514992192551425448493034347236536139520561540404120892662749429561466170064096246988217046358104046658867797088018247734893906846106525795153968625679189367381927730391307707404805985071600740216797560471478181737286432582145243299509740410571740010091336667787059915661372217911775705462376603326840690410983237020036241506508025863210391653324365404318210156202897617569490399690197156399140029478914796646347516902994406730216591302330486026559668397578310505136957706858064776368858544179439885543221231408006887913183516343940959782576200515908331054253847303947283867420617670244234712565621248138004674461572524530337019917545833278025685298137090222783800570681243338198239750471940505989491916995199910347906508758094133158154213007083752108267100854637670205586073191472329435780158678371361925199995306193174985556682302742260595737967941786240927839226885635735774307921858776115495935305840801931549340655194402851493010588400212524789033455181714394189526835265774734991267043974436164856247816657005103370378541829914210610542201182805091529031263416554285024063447215125055013137166064939104920592853627847314540057876628570511890086979957766108751371985765994702603300016857725645757445141995359801228669405675968595053908633227715836809281182765356868763250741536065243108543863676806689927266335925199033214731911657282250078484724031009087099769292797330677712651579631221016735794938351402173768954394713588823854042225012955564005243449199555171331447734313224761023089959702041803638724843522825367065585025643181331750582761036092216822975107967602208721759020318074384428905350830011598963874730328204031075445162222067643330761292604191817974302027125163391908508413552158842559342865279055401726472256584590840906800945274875943278661374226921662824047440292229737354526644060707371703375676420835404673781702101056437778260415063864338136215229196720506645951567579157520981546296935640374914622606679193790670369031809682899995155623994936395882495463177769420834292296426581250660240237582983211371968590099282867870413346076788461501488863089366744497825633828172865440834044267368314327223024126836150676555366170848989053254020688264115049862604335818973933468040315213278110303036681846448030911696305199065274355996964894079126405695043716740347135510811380973481776367161202902000264896132230107513067593774834683990745785751072914008769428953319200267069604737895512534790798829762165752438874315910391752888114391350912539162336055496691877326699790568106538465287303339321035327014831143735067922728179590843393949204776905566287797249064332442864720365323749127960307272119158704576510951351198201675664614851553467221774393852738229574511751031992622329733062266557684401511323250269043020302133692548990055235644093379953795236271787083113723278120924112912728039458571532303391283652014639462956051113131283920672476450246074208582487453869822451648315803733525659369620470556746794413933629775402792579007836544190398943707168108091961633833478289727077377034629741329379705334427148918270584206561184704344056383273932859323841958662726877797769061355682742550476936248566372018569220843918628534578008479930219952600919487954335441217422612156251018530291641518103207331568168069059427455778082615678523617663297940803809551627960306378710431398590883742456490678929047066281346069434395172203266745908029882879936174303365196740727518766597553624821941204802026809893814408073373453753763475486662822720907174434868313810095175092486772023644355385417771133990948662725976017702677235898689492450447000702630471989362919759421167530482902835998620211457209023455371398356634236664878294333978118487383552406368851492297578542605872228253515714842999836863931117981469595254029360176334801741120928139631358722158116497425219876584515830704869456621433790645094688447467097297200878008972804890756897587784378229603884569678223092436599912187140964100204321894602635713639500848423941720726722843065222954564694235077841626986544105943312188390576979193622428351626221862613732124612236380646774357601871123069569501565181117120982362482913075495643097080907575661128307405128263706961883124959734761654874990048923808358482572283356688109506226615193783580754071300437316803877655716775555652643310575557811668902701254913304728577165617857649672938872178739637113962504651823048109879838720835865303509859136587658341528559643820248991538251151058651903705385477599290809056364701885390390065887525774630333066561314576286714439779214547389382558028061296709824380960605287138532417505221855996030093995414102689862715899843902602015503105579350323508463495898394591429595354700287946874858777206929035618666398744081471640722491827542843020361997042888456308531716093110911539922896031082583748294654173418574913461372356675326144530843018495164427251618866280379585012602751932118758421532357264127388397257079661916325056249469436422259513219510473182889577751037223634335929951389989146304712552980952664799830168567289829216970819982581533893054784574122961105958068875936899213942991116679995119739869932206749983105575223565164903252646264486034334360418675599233759868170693261210450808102092646658994999211201182424735393393638776524770089463960902152118493259836316833848130920131353996546587566993322776377578399879942987949700176624608066950724518597968424516550177435433050446055397748516487796585726339024344468165331181400711583052184905457816973271216066663147877485363492001230112686147548955822049605370580036626194822273493622687788235235801129444228538331071229394924125403137740018509392798140799744641125042526561657219005131281460493675364333397594510644010604636235829901626041829787767008055445737194716854020199205854606820745328139556732779510435880807901664364752999457299651160259181508345439861841410505983811359277782976049011889164570473196712041008366850852034254440021341263757558853301463989212213054433382046737132039980414030867977189200150965716428583574331504951209709156167511303140759544177890826172093187505480325993824787006010131243439949240190170925072448532632299503995189298122368933236952198983853813047811857841046720825870094115032226933449342477640137380891021559405178504362208643233744279053945997593668664577842213217957758321191961553061485531232704425979503141245654813434786668412945382352373982787342785448294472919984413816697128110355049115267492609065746101349395338971579237488096326182230867325318620765476034113973614738252314975859702613131227947310884480329651598477162547145685961870001347184119638657538867337316186961783809517724097441448189318733736272783778463556474729290859030505253166009785215224191233795347062632067120414981781645515013909530855452355595284690639018464810058320379846688850845949847133241181905877092521483938557815120510181350870889377389586468695695570364949767721151181404412143752344266705408979307452378376711736773918387458731807750862886565104580998219448760156388929366685518406698500719626182112036135387169034576305998319994518087157987556254168507796756085776592713703550395200103375902225028422321905290509104923791518407142795140186747543109108026792079665994106505912731746753874062568521832302062429821225577810779115566488805921383244355789466506509364748846463064301726981156288659177663648562238309287588305781423015339521105764769364609058199696569005650112451687258737224145799596877835530141674310665347274803531897994814186180999973817870880613999435702993852485654179011235186253399272051095164207904229320641708209196282641454621053343208445371205601085365862993246728483036355370499905513137631820908643632603978547683304318876077566087570664394801115558077011667272866182440847751756407999861949321921824607295859143626077541942806547718369553114617574676602662160239968227398750136022415977375517960933742040953322710645150686067924947025709449118477010582152132688215744389759244278899074384362568435140906636779898580900642182963827785715754059678870899809608260654264521919932851151956517061105306715661684663507159116316341962395900917223574096437010752494385578375584518484192817738612764001061367997171728867047008082826466752128802768281529820529097256606227820960049800461884320668800207754031964839983168086555351788887407468324637677284844340151049670232955945747414293411469303196967654299456474109802840052180268462900432083146916902164163667562676600954820277976606912960372965643396282711755248999980982308915733900163083709133476032759411647994459428205534141310106906018096186311304582080079732296943134706624740126137619538904027474991489398811252585175251474796166828405839818956391235110634815637657891876844393684672482686621912281440080775981455971400238477576651735509593503054225021635386863035226281611944344641847348137060016786779513641133462746389359739794314524949941882041677814495582401726949704725389788403164885871707843830104020523461391091634575683082943501478430613677840454490427547813127817771582650297355497681426857625901468944601040372782576335451588417676607937724943673873001379919620909020462938362087116203431324215986235911454262681787321941750813509007131334945623918811656297334623216918921125764943529278811871373947949472411481662571048077386181058154758714346461832929307684558274735215814645527403798258091533747560461030314074523307102105645250265703084903811559616485683176533487237220509656901457767152975459054799930150884284916885771682975627929403114767577449872454337528192999081846969951572760804155059687840383808120952429646295206408703672663572272746358390420624809740791821154200736092695838269261028239199048639375427765959175381882530471778846171069349219324959375419914762940628507430831549667907301386583154742375462964594875235199477134840859404102960672949854361325681908246333272208164523846240190033645282153370087234886353358922637338230878411131476385403561032717004505081502819453549985442033653164492222576192864360666190375203302353241022823667776385624910746430438843087087967583571841839234866550199044610116034089084326995495026956394136570396833569672939033361549197935641710966317084081592114405659756448448984647674016068713036289968567385940416490407354112691977887293204225767107941098469207487710156979233496174002655853785067443753159079512527215596852166641578394482275626085541200148462163413778956106376682724727331620544216101234351072647231082130634497490500234390955147015389350982615020637007991862591095004621786219776271891740251015183461460254232864719780750270966027630375338674818615551561266539642954336131689325728345238540514742085364283889625914789231348470934979989677997635650394148431562470729282933947668464102497349188617015767440534862983449592394358005612965600146519042849732064472708198714767287188827641166575763049334923488795655235168927240029036168825478347906852405294742705523390495923498456916038662748493148316526139889516233488741118921203751808614819508875829580238093879550861051684466219002597267670704598931815378255986917767907648930535219892947420401631302867052974220807011543665281040512206936947666162438502582453915236464063831776039594026784024335725680714848890623286774153119264088665472446211122888596052775776067223124836205750635118094149442446404287777250189797072804883994256181073560162802328781811279793816861552022686218969586330809195195166148262220524613262121142145985698170364091865046255260719656265956910264230655012825250674261461822628162964047614902529665334989687990025544275465588145930882048823217550534795925723604024303982769101849884082419200932972429208385555097346270792099816901843785347808771715105045016354379882423472962445482838444066121832159000882428517193718668375163972476038725217245619405797785434341580884774647655717768858606526215090296321856775173235108544247232229808492734450667117291544206131780106477763947474898805440291008717283129508482745608146937237432870277430814670619590105296581098019157427937169211057522166742525145131831044584110091433294900300545583000491449950968388664203480364439451914185868181669651665679491666041800507777956984094384912993150608230817041527908665125387356425597686669848374537688628624150197347816808426178460731732394393183539688698811348762459382563543941890566176982252614639067968227344562471247651478929569359315495856243231980730332328769042462179694402146823735822025853240947614229214806810527793504741220542933396687036061501584500149640386798662580721264401161705878448415589777429936449882713658487754450921783047669282177533485917488738468415688375095254837783971187305630750534673370229192393410850665617855356604622260970794058975119155956232876424227388166935552978000338959206009160943994276515155379651406620890401401746406738504501805134068422439525827285937147934306206350040868923466144702841557443903059702554117968898833883200563474262888874469877093917096838559429881068297156587655377796785552713352516778105633028517412323265232179382129083625807305706686168710312231604259346034568863984533079960162446257598829647451989224425911674597677229041980813774995401463419051289880288582146420327713203118637288557111593531253564423650185839242905523360563476017037577895984976450690138866550270513561123037204349986554472794605514100610844008723781256470426819742436046732428141143341419711505361054001334828497769175285960753082737345335269271633938629747567784363734012362353847341003939715134421558740597301026218667248864341812181849409736486750438249736063328946602973915166137819591199664117350554574975267495556350236266145344263615686651726388951864043149562902857786755761660711157589689718803149617752378895892054765247525001817461602844291490581475214797683392690044026860431381153288551084638479208148107250444693299369344973300166823318967280563638810862433847533947322950821403635605976475488705620819928273301364916870991383011976135106098888964719987017824628056191140713558898506466964626995193182236400230444964172646636667437690976378985324687309277543903767832938095543181987017988609376627422514788257791224998921141304874699710031336039375115053038288687840142973462955971548080619906839737430507878716226987047103916207342597800627238218376267473275767994991143979513026102970156382977582485494300555795117307188062461616891096136299812252692574957002003244766704800594811480273406838561690841038974665076483273466546070492977039553122258168425467978471131811085369902584394957779715358643556632776027139732312930835531784419399345611575351367299609457169131662271797204297011137410984786307035923474862158163982535854222596952321937300523967228217604226315269795805956481817182684207818075448861688682618173232402327489438132004040317276835987797984443349216267606772513411466027911309979929444118796966787890922979417143268928079997022913151981728970746855074526029190015251564709458176188456812868609754507424237677247352841685183433939018290973057612245915477924735660400724217136791943843556654641216215075476023887658871110931391988685736422659854030309362827562348186733370710191233114508459354058221617323208862869739783437877473795074593035273594984869505263708536880786450579732792873133892944164926938015495924542380867809184359679536054064442904722589042895682928140811749341432430212665152608187563910397695265998683121554806896584660724061968717684682317470448269263984011491392882945508078217210797803460043458150905181736234434445663976856411443355765224898929389541794394046464740999971754861760588338829807893860389909573761139448398956160293913193552421398586810095312368844143330384582134262002944230237487299468556075374439434777796607622698759821459719372223330623950104971579504775863143348662393224040597331716072455948880164972671746413558398111922512449324353385654937600772651232330563996569961909949550780470315496849295699321780959884630129715316053609138021634855916386564047633871056743298097338462631656594561052514700903567893328259954971262850272700469184052653829119257794019504764181680818773046814865681577125846842486278533220458368880276547071567155641146509410753855315582444044914234679172823439176192155444006784388689201651736368740820312146079541283645140523904914453647299988526616233748988910261239024180296750657173225517922149180079924038961289562402450484993495808746905392507148868642733424800492607790138772404618320002987883608856323597086422244521942157282914012389633932588236145709570777584308316409508670532595816175115598890046229378564224266551229244657687933730522191819518693767342444373258796529506633980555528689892688786883655004607594074720575995829962779168391744492148402966153009657243082865767399405445242181552445431994593823244637544589871292785130702271852469935158602854335740404747581148132576277975520174166427381395623239729095486743186362554927281356254544242542423924498753796516024471910957954448301282736927755605700139252555856478859284823158997808859719701842692325633495297821885009119346761152223297213021253051242249616331279629132988264704738254594872570505307014298323232204120012285577609577223305456083918354092524459888671149185723823913626904145570290677732192869963486569715715961853908278644611652058265619459112965799079115303882046288948167409999541524209876902151845750674579502548945259431660087135245691258893253690936368511291212953456444966784790901091482240091028274362038727831385852568319289545792543887967150670539557973495446423033394842335237411475817693534654615773004120237101781344454705680022791662524207293534758581008540213818660837798228831950510499944368472336421822934552985663957935033067980509955879263191466153665329156220179187970164876129038150827973129590712851236111576126305054060526983187142249416650436769667117436138657600914915832561671944006577665077086877725480828443240602441277560962889406691484080926628816906670858288412936502990389020933318182500635814011767293687416925870434158371271408088638112211264205279025902504797820493379762272835233564328013449742332057168063046728944843609627168258808574434209053395106039031506148070794611996094577063815758491517496774893768200849916493863878466144644229782295643788242903530796659730696034494302857135120358157207199691129241105987042886068607771263672284642352685666630660397018101534863492911152920349964122361288457837444817254039117829196475061731604251613297249886991959547272555923163950443565006100440224906702282401006440665076234499719009296931318083996064262651911747942082364655129767403694061694620174924362537255240049238060349987871754585349663490001506834861125585923700859491994226802545515108873300915583794591180463677701888055509571954081234309680291390448101201357805201272158699951935228449555818072015842953344641480498240250943708154418209546707693990381133510524814880293620941677062390066242271364918646684442548243081383637603771522629868204358564276152117954974426987195830474190030060270750376792895130303156957684812121473587582518084756802097235730183815336475075473153947973331501569670437602201593640866841096573431004502154799462044602380230126241849601422187923640921875184316678663371388432789937727162827969637974990890937012593483399612340575883924134655197840788933269068426787666824831125011271238737217095133163797064304140757066915501511104710772585389219024242567223098569406305941334559338514689033438293479762895503169954323395023814574770746008434385074674852890515948527384440571316945115776483176813075609876916989418041750750879739674803394933326440340431479863901702384310983768597517274863183144225914713859530114148617052686245365478923447541377638180076705787486197297299277461340485611170367749641735110621091272065273701018923166465359439744933122621635289001924481456248904666904201654595716736469968846213856610613587839285224220210083476076771617850317941749251103707501378628410875596612539879838139774088305315264044775979057607229076104681911337025798566242279438662361527649242931816571890031855300397521863837137619276528502489994326580733454233548144804291752463920414914956305694703084192408394978900791257177972931184442089245920490396963656389810536693064995948247922766002435104307265797845045026645634078766202960287812945187882702233944992683825613033382347838494480614411015461027634963485561108024928400190273507430406879032495270719645342208222156854586747067003263957184317948211192694673077841056559742999421337755056871827245673370226706463470793731075822268073713359352722635893455572210488694329416672603962935019450169377332031397121401323408321405340311851358794115387578426649425064035420555703714116989848714542619265817962504881267209152949669258434218877688991546728697473088003623871637099669089003749697196632758013329725475039515770636944527001371716567395164014268341214473655755669397856607653608105546534575578684051797683011523851464581685682863978516449803633233402820914312056128009154065145884917534493678523627891312522597881001205815680758389837383215751728557795288894009212299213926658681514989767129366360703428716267434732864422631015180566108333944898015164214480766375769450494409720253420898448690982301565971063642046957304040408380393856161785121750478611162588091611094858446831508610650176851821188172574878871529371760493369756762761490356907617692210417643289343642805394430084524569135338315111863684635179557202604598611401997101129027305149449937492152793421110772514569887679141304005895342325832008809339694086692542163356797745423849761307014477332612906925120121354703449647565829606020703276730815081502117707134666887578871772334699359071300088160794353574219890756160007681217687304109414509182121626458074372926536956266558514463242476333478451846546517369471543515841712647638441529692422637399335869242351884533758965631294574850582493836290994259819613984699576626969100399478669705493291691388876650937939387818999678004363179340946090503977140344081002265941118639729356515321778312106127977149410655483068104051220880358627399537342310742184730235411124860576328853883870451859212379137040165048588703977596757705382547481696007635648939589355881940153446716451605475246416722805259657796665644877289283541674757013788607743778947990533452796979683260222404040847567879580119122084959361730031988866756834775384394962381252356940813855792053342373444587968795493286471762927871315663795453646319119333326443780039621207789478463591389431192849289945235009483581175200668140297013467302339552512582026739164509262966282853034517265436480228632153771453636432482662202276869984269346884776899429003967150577489266048657811723916444806513712169366426263235685181571059933185712756872655256585193212078865429248742515493542557593953711831207128979606775803884782233106612023568941325897986740693135838899863365766341134256444414225397369248313641363357122452676679480892475419218059806561719330044659266593087285926095008082911871938501187489872403221737260827799510419290114741149872177862056741077709564233659482516680032515826386195072921935856360417111578444126507982886218287563632852387669783544836086045285497481677190733271342530525147011330163843830484525321269448892628567270095882550882372965559849804343128227404763447979175290843528106437175903634181407749579935457144448650028130149627903284924007575367212224184680033534587498611699232696289217658599833496859373975283228841679936887183204595216739138897432466603844234622747486304530292610660959204165739389937156498263524930274368608368888305475905775249887352437463868925241999570353258110805290268676256553679052711936349808545563170747395730837686334933217453570700761211155112678231877975549138830028537739709878568551334658316906773577919408339852240738813622061252640124607522113950918762454629012474582583949254927623806998496095576489324265013828516934799256116914266324241541635075422513603221220941908327958222162639310198272390410687378944062869936546855743908802749801060408200673603000006370402563320616707391949340262472886860537555544531941581012324011914439691775271800751411799636438174584763057430842592369498308296130619162111707701609559043381713197327977500911279464052487508109327050305676347906942821611420442734631897757723724829690594877778141787980041010910270005839598837240406094106028951919731266326241988389590869017783061659189097039201450679307168452579199093787754775568773123300472970311629769483301905524075952401513783146048067293989346217203966855727497056484008977823170950666900289871746225708349260470212172166427805520065781185906086073070244970024672420904154130048197889116759981393764016770970990191694249250393534845418540671848857544490511622006999828957708268465876363960038674684595296285560736788717462765101285384485802058684625485540420379332444009184503689346184853600451860097892979118840485527007771345899618157008495813797714914094813380838141397095723997261177695758984301346117544732091443540253119774893390476076349582745898513152727021971774625828467011193067602764175927307053677353860581641230554581859907296547293019625368018212844672639988561142057540347009966123988720423931801576276287759479706274083621754022501503976397920587982339030140525186655571860687747787190463656082972318901077915708768191108732746711503818518437472755722119211863815416521928973288289366677426158125189005745869535501566016331693430385467648914577839849105262252695891771883544243572140765736190834827339103302839901144127457803336410376968734487156503010345552188975969272565830349889411519500120178185487212908305160848615536233069713975811456903414658485007518996674234012806796401346249293915910886099602176945583309819681190465867054837005120560476052858880234219740287321147485486398655888835112186213892025585073046942800868220496591910252504904251532674246014473005815028453702794724754964011558185182237649236077844124574908089879354145869283679917697765177858509489656655165151138854918303562731878992868366596776155283118074985280363418384739938119519877433836291538257768550059730263752940277954971152865430378377736518920760286415112320748553482359208909133254225574227946260409850841562962406892414997326284345032285756524433537142800933901550536916302658335165570850687927375121811271716903757947452022653975026342782648176452781079470882297440948325375966931004193668735466640890665876341990121229040793163409465264336854688090343671576543269629586619890315415540378500371826787220226495728650640114706743431336857968170648646929269893665411403176346307005834800036612369939389142842341552443677581218440973440716088452249201745674287084701590656783093917876344145019421143182558520664817946707456880790279472667032665337384123881685287643952609842940892867734066120619920937579076570212392294033849275015971412744263197174015252570415021164620960419142554160089736610463945913716344209646295082786702605845323049462825818642638084832717961166317758832253547015321557894751883278444174277107467190066971269298658145831442820363379696958675903188985235633612597008387026220215995640887625733933599175148239994536124749203738459082265021337687130863122151531785957873002572461391269791381753729037459601041252667346483107084705015095931289748744411377098340496030291982819076227256507143618768141383508853829939855371775432249525571596383052664973760828471192816033239805674914210244989477898804696222551031314375296042003587335110916696260793793512598877913797252504759970334993578864200644350264887752041356642025747753918400973138501625252452570158815126388296824933558278906377259175356004551604015857287494780943304370079664502245461774184398887041412562280209477112583858255356798121651786770450429635359840478306882786997217195162271102861819047239114850025173354355849107698626736906901518157428879329215637282852083205870030583251271672281063314730430522756204203868706472037619194695485218290774045889020729086352552188108564692333714580242264086131444072356468233084249735051219572480588311868208016851765868430257407374785628537607325308354508186617630570581174507638529701318554736237068767656611350537693671226563254954128394323037397272215998367819540579676776540390995714910772552414874905120831411136778699571950220625944829256083378273977861165340697363544751923106925634364980507673582991900660710125159151957355922154869633482047322374454095199957670631025293641291551173774936899551164538291489908416219730114860851663611490385626494763437360096820701008741355516988640407011950222651191304149507902287436193052320044231753176195657280539402441270997116965333478903927053248430533722400388927156935990390066025453672362985263645867211391083135242583813070454008709833504021371571384401894790808600632564743504672070007659064900705871746457749671741966886365026580537779348184985419954186288880320646726990351302491639387747971550110439807612415368803630552702555380592348028094482901197560691263885336124111558901496991646024973817218054812831834224637994433298952727177239258138781728806892259676261732286896242592164853890083465952224219602647128951384081174670912246172216202865149810865947341327552252404591223178124183795523998019786009701980951130163122419991837009228188868361115948145417733250994826175414428139848628375681971372604809168712331996302710740055818743067712500226070865246607999117534300647553103078677148614194674037493721576929183748013921283236359821568037532188057812414639129757083757197819668522119672401897059504122117812102217425648534912678551030389876557689004835441192505151179857136604914578795376989523999507956716180205354497330757467477815434490717249092023170259104609158122619889538309748469704365997438061080787805404076682085083557508688175232463463908780563853072386895446298675669457776676052240793312406318461323347103556441978422772950741199229813282950024750297074421007381473674065647021706323156144332941599811733467644166603965456951119065815221181906712098238342109750324471751611556061127182038890475181931699383521795728311013707096082194952206026654075805893599127383593750341317672366305016724907031893713596114461257825894243319203560567132847107912919752162612094457374592422307187839916145972977624574464390523212223508293907019595767457048946336582610970577505090510086257128329714442371626404552378517748646231983099552793002721179185236382993730179976506875125409589023218179817782637052073709568936912003271733601375204484354476628252810964094840725332691917579958548725189828998217611062633794469731428596466225755579189379446930328666800751801824205342952684134767513625250772863529611703507262698082202010867170089964981481469024644461238056557706749467025925048835271646823994750542260562031613065080389978693289796148102822383528908483746657867919231580374477590217613718837880396566684522901461961635515997609815156309523475839098327514478683803300303732298901179516344973136883757104056749782506611486584317955861086380150681316478822936677563670941467698908337377659347399431565223412407991379451141551957599426141606123583586474374910942943455519284842539352744438437997151263153518907190931941413765255572942508102223500953036860988320244950096631631367804652852403418227970757635239246103949659461502487729787171444225631392150962471147027310939082384756644013511309033006061447953811987954826403071322642801952125749695348069368856879871640069065090788248920564019473803986306230691371722446358551584616105337695902756467877230801067664025106636743072230333546370737512900015202405285964108410553692751934773197548936318776370797030949935290483020853919281979419368188294641780734523717424123680531686590684595987056699223174081363196113866168647008139229524521649916563441580035359335455541049948085719730930666635460610616994160949350217582538974671053017155290285568211339399865282379972948914887521403984226053270300017626093044158388493792576237035256211222840615211476300173907234924521773193149044544296411773068645480624605183805714395941774638470784977811123213564225679976424575739129355647799400230749957578657386941273535883358774453931199333975811444405217589606285409211803167881458329554457262603800910780796989105001683684054571071219682137750859466248170770682679364551405498634636265961763262853944528469291926374326195905143222908498846323199486593929374297314883677923744457813288211938750604265887392584452822218612479165784163959973561756985405994519305496021977329089348596859365810035201601189877165276250741856604926832583885381150472924995450209585649521284391312845319912567494119766308361189397694247716684588320338219919869543533662511919148355648413208970484355231546618822519943719984793838536422375750637566752740131588817565051513711095365277139358617083845639477606694321675237341841968086361231651290891262292929712828804043187444982888813953105117861135622854386900014267323824444377020711911487325553490111106111835674061270991736221862408667477517246261250152015732981298607836323446450218276260560621577724723528686237635624851535861106210318053819945020912697355086736061573797912392101405717942615080158901253631371037345894868287413206410118345517574867601405787694111907121600379598187288369941875027828015532735487150170018636935887155099482100608323192385682425648481455151088668307762137841756336726503705371085164250619102919392471036327405434258973256716427296429219977287567796234643144405339881509920383944281650857338454801017501788074425723983510027782262892287622792722939215372465517523989138706403378388454694142531951140989007605920498490806292758494326216930571853681238250074975931467049498787811712104594845788308225440004203973169984242569970064753720344925161747559811149104957495270288194014255141735095444275555505629553923911450400785697934806743847147829858114497177702079117329028910479098901840134834592788223274992505157092282391856648952037682914905349730923498439368583390740443603467056392905694670751514196968040123850833496311502466586664303353879882193626908398289435506882342301655446244920461342235827612513461129037166905645879533766112035547551747066593498202323183574201494805289453545128060840597981535766365877852959069877211557742497107017754333433614780064125814148874537117047225999564273819938957962238533446583006237382788375163219879637479486922186147530196637971541850336553873373517887345943253482250229551329229953804702676033025808725544630798031587940128734516421337271133027553579629313347145521405126479966339624386384064393558247664563635433491006277136871740130484760474696274757344646830900637238864748168771522487878325934590903803766505591841194335503938016985713132181701731165082519880216778065357460523306415766177371793442004593781297787023520814561500647257160200442829547332163952963962618361449499965279470367769702124999062040448154765710410467193664247259389964071675443627678288204923599404659899714028776397837215138212753826174380751324385218470290406253952277839284268730861619964343962965014796732203052837778715253873442055920422824254111807637683447479106989775587806370047376248353440708868688198019619283225170819142548662317720481852379410779814277941129200340226834715301447862645696291339112388467024929085404526814331600447019047335784523335498570333497994039151155330029407022104163597340663413471812774610305787345519121300008248828952526386102663477530066263220185527669704781226375676827033653177542734880880779676951108070088878528520781295932684284448741117966613676836976176722482242749436670642352975250426966551377382708938819513446452636544645004567117881256562555585177522413317298647723411046996153952878416377476773810627896477120656749984893256472755245305130980300824046291453154061397279031701644900070211747933848061687515718575819556318220139337277237027941451665497573404979859108336877157688025695521517691096019635843195574020517799119250900379750043472373874316293694518006080568678097722013570754790815847689995561153678395147496414974857524267408815768771062135039206790496916294737747815669893512883622523834578646926559278098789982322705963198158524460880916819355774817690244967203244268031434419759533402096435335620966622743336655770335922748215241303723084893228425327998642973463428785900766020755698896794037233819267969003011006610190059435677661611467611883913861611320615338039466653685668375798280990174437134237992232038251385875101326377251824597428941413128882971021662300104091257796165912995493478164600920658488754520926376779768657705560026172875157478674751138753863374927937687913149271136705976296151786050155135665937557032115775782101261343419796903984271594427274605348687839936113594002897512201734186378820965406546814786522056069453164734973923350945824583816352450107219104253344357064333517060981419644812215443698512480597558059687974989576691041798070172723284053148160969931986475316118984693910959824302365221903530443729021773038727814639335964609906308132633075135115903558534972805001043791039735552444050647711493222387812825424145919933364754666082143132192318915381247885922763218782440739554012035641839865511347812752055132440849961671022894442347318407656028620850120469265296487756833247821465071571789877906883327693494727378202238648090163524267104457217959695443766739795220941739334929017748569335359256505399776147344965405701366233799348638670979797123397467410174981513506220738293818755933906995056110991372680461646684402929412136097242042573480261531804674148061328634082854197376507970081364231900572844779048418964461206741127159569877114104239355377825237229238407798768484731262809016869556686530651286359621708686352974498182740520516042837698614413287565858198103403585233510915608211503985756195305640798866021950485960791975210073893677801936012927158672555410208562802013990149029413075193321564652476847108501896591235039332711235312523817871181412321368830524784519280522789006040387891058327837011418834785534249654508056810936635211678182293236973225089861607244494063944472421231682298580994441256654301948583702584894175593667934103874575736193701035173351231745349388911447679958333391290367821269354195065937733657462081559824448628998639585728503852400494426371015818772153898357272411629794551064841150097088461475369494540805204282549487977025512491277491923610362325726526703324041442796030629632262511032252615464199872893828481565557810376247717032729774963962459404310260006180388229065382077590984060082511093226328576410077387334597376492930411483534151427939728594594376291661655177004330358861998288448451344991301938514009196803361780123047552023645639101817000201586026265040628931191535711555131668172536579200996312673147306973475255728960458613902194670669826135638261613096547476204499545115096375485306470228205219698995189678150656487081177969404077035893800736404542711011738324490643716678050261681472337582606806339423205601506604017769744446768489447607180903452763482716873739518544894618975681741880199219182438663387295304025612297489201526747418329351632852570816116001564856429300872170212963919101977244311638675935209495299427087506596682243138759385835546188416122969197741631601839517735696232968502650692379094073352353511671539495397857747444454226770036462081790908618188935978355541932840433422832552031747181385667213760038705230278941316473220342070718261408263923148231903209299876048419276449789787508409171126412606292983890421085354064045200469891858924175717159083415444927751820146775844417253807337659231095238362728511428011042094683673028140981820334000486963989672789367078791646620785772699718372627611804607408292689038220381777533895977430673802729905071019492520275904109451038747576836396188067959803734403078255254836932551630650898362968093859623768502341783991544562785411398037443882439105851258804390496732848487007138013670863222873463448096282413345086502681545427174067276762406876327706227978555316341629182204364383460870638229972012885713537176333507340362371835624072488566925824969153676672197226055735033988525540387589693578961554736652616041042479779546890876761812263898323500292071580840842950571920718741123010051907635878990426576795981004370642213854721996008178243756409857371971439780158012415642629731089211283184618158739779663227863881272057309315157923372782644246149405141626156555072162056921317711866895235638870809516454378675009046860181944363900070400667198727887007966690582638992399441130735843623429470906478157928046777223731847658991889718395250688459533477047958702346425969803356568039881578297277552318666843255157273728526867433460586453676572719470946317613021990977989308395101151233906401675575794244464625984867112870697386173329139109625745977865807815550510984438071430209962532464000589745761708370020129959768072576430187680323752136795116211191714057424583815712276130089254801420758181935429326776629957389876751980481358228510043134620955666840255274753698221440612251528030434644886862556746385792813363548625749631911544767351947426799763209284935415495654851727063017795541782869628793391365627324554833811394409000963871441031452552668996600362620179552431879100599866662154573194828338391832613588387598581814740914174975219775554548185191240424402787511174356261617561995072073503733445720120484495632903101409269507437085270703644074676584795217056247962991485620407716714706891071791611255675217635631739926589349895757360582359392164918627001254408322388122273872097112964246647110841891239534572265937218673199051410140870462516192301700934437778751236129096196733331994328646664526597047345267730406973893623438139219710542991533579161692662393752956039058917076884254079039540281782000319683489292016903584998791618943822153649302521130062852693276449792712821089980858990010177271350077284580598780922550786122788557893058798474011810071216769752686566031779231573256469967279249532066062499486742316458683579562414743867436979333224710643739741166345304682269067632149273174674163158349302649190186924899290077148904586776879121147883735621079625825965180180975279571130953366653951723384659634550919976258206902735326106492611474079571098092779451631718690548475993557495416921602685021527303059322906043301522197570210756171300234429747232114686133662210308498554538385977065155395018908183343943034361976287047915351795107250168236904624314413670973793354794543169611775013554450846723202769216774050807739619062758744214268731941222726044706809807827561112665250151093993389484244467725769975601393424377956730886283193601829298564951537409407966905377128041455073457748650472056490418723055376434035915603644648687277274114749756913653671117047033797875004942338812886512737389100247432069291234790469053771808577878688376098804129350611132330731150780358026974348653280606023217804243965811695656526645170884269391819257200481213654565250092841762820763529000912145961133227844860524534547202024905202599871920200228308032255785404117986047876630918532385694256367694788039644724892886982896580164775247532312035458661441277270604628377314326424684391237295225820897543635817976050185811541313610026159612015112382407078384264069357036271322300062161408540403436914962139396619420622929408423165942478980579201260376316711925829191098894459039311409008691338037601157688123674479903403277450199883083360330098182394881129871039409826587399872621486184388220353624251065421803667168832469488607309340764541341026483483821444283245326976402440330463439522999124043400053379074232425511655308916004549630051630806676820869971007480184511640783139102793031466094245761821180799914704800099675406458712025184930314200435502124437631085242894585425368711173734572987836176251839254119702908697609183311685519635720216376063041904776645091387694936709953183629094898940098896513905165700661773306423140176186297359232365350381247593662831229028044948201679570062326006735473105347724852485742707647684066602647666474660234592050350484717902319784055763186338699769800210751890633558049919381789135691678519694028948792468615812466768059289692962187001937277764635391084258876242316866032508652057603750686890849228820511261731803013759174306293999298102924062623785797435592314440645742236093795136243088154393993435211359916619294877191077354573213256502781718709160747015873435600859160025611557522733163640520591940949942032472080978549190149791342233357745392883294201535558157061967816763665910853963609633030599248192034632297655936979682742096956666322074877759596137477867672061512900873393629120227976531143972733251731210913450746781240940538235841085864505095646354269883927478846109978947982524691670220151625249041629489360041643404347909903520981327841185750357352965681501605596543757806548116107668287497073858094296422108799927282366513742336664142273190242418705170927202709358338149305723594028955443361837679345727517051729616962036565362053225626083588839670477683022584700717079850300731041225487818473742034493388248302230537827342563283949485884097110131505629440492705922545142716181128281349365128288175677593007397451303829118812886761702524761896368971360077051818960540987995524521055001897514893205108282301711098098752153089871004595374936286677412205080087550817075113479984265041373677347342934997696445500258043772981912301707492947123483099214760085300961942465591591894492850706209201522340586038246942289555764637542904845027119585943544687150826220628992296189010133395682671691402340804129639192355811787600308121405019904503086852670689904885310913952014464134734941040704731773782076002276411670769018884783919096344026960573090499077739152868439958716098960914461251060704989721908614780046534024985203824953274527402841484998135445323736852360870457293209589746357915301504971248139404004688589682337715498222128845980195488668438769922781343248025389214199358612862498029884940740882799017030500446828170716254745046653342421405778402643177234589905615836220363299798475475548714322369083587425347546281795517745583294782697021574634326308709854977520179896017851729506921248570956147917006524795057174347763706113289473021718778870998028302301709075890858690104132146774161834269998160406337985360251525363947868054150103007858390638287144721297072338131783847882551693187163181001024849571116158884102291425385161593743482010680492963813014214939256587649785344081664936713508447432786520853502037454204087828777673327306426435961865726399854730085636415355995543405421616353183197238827154060880046281522326568382575475777228046061133328565821536213330351009735825404078305423842347367434337344602985402955516157579735159599229473124076280747456564369665892655526960692783120332886016743152627972185910283982227885267079872954955535450159024535112702468672080594689491364052046754246856484776075792220784181733543974315720305175247422518323735660636950399667078721505672502026075909096253049073306300667199948988509920927820809949018225721455596671604647196783071570937493708253739199307532896772068630184188772306327660341594700509338424810859823353945585176944607275533674282025954862792275044687272432754870320720977433789428070348591261003627047716308611241384290865950637719679127999257157828384629429217233245960892749243397876189179270129087306356244570894721328155064605026802861368028841799490594784209804417200641726463175644665048441951808143255243428521908582138824009109900409987860695484467095667394977611229118659439498995033352285746009794632360349454439972710123108906428577447145318588440428381378555704278282364131860805827142977636102729410950867970233814604461210465516603001943196665394090176071885789455727016922487400535338434871286300588444619550058153994930986007877506127384334276526175882371807760611914124275496057781725491363015478179002280603265904377129368966761346152288865757092360209274677933688982493185227524911898975475409812796870037303483707323488490157890349102280368234936462986404018510837564381638689229534733950884657724516438853700887249683383301981428942346077323350638037845077634955593048781991272830652342312669712029061940114726621676517735504018596307097767001987725353510555239191826745180683829825842156000539061896187367783679655457553225352797679289342633221035903867363651047093119901821983948264713259305185377268775454363753120049853655179342438629063012244314498928123040423819591323571811678964298960600361934474893135977705182928861506063579327042919972603329583445510529783938334794958134306653471395152575338744199308097895527733895749697222548037441051980063911939798963540217223379876813296257332987770431932979529106228867570092448883734260409460369301722999056318771097571052139749594303432739982695246003975281863868850903781040766626651641178496211088180019471203326611746710837758225110070638837589533382927559489044072469378460655721136433185460149705223116163395072269053637404396093968088197805421376244535528129409319353949825687175102657934456801390552797807501684077617572917359960600639546051940569796660760465472289606135781736316049502455950908188672610380909687052766786613270955718538434328636753326257874403911274638591942023283247029992484518867008544160145863209938605546841306773873371029997253313953108199191392905425839609623903103288677069308919400214258254243949519939437891444538623986608381234697761364212575151171428661306768879065815033931962586280981155961903878895685029338275658262043361965524160750197814033469069339152893861334799012159376458078703793126915266906953939477434560615270507162409191784465659633829399206020220480965533104433895729660493254114325431347273161350745734392600592438702635116503938179954494238472457466986878290092068953361180803009421467388103063369586754623578265460900160711971192160889315855456919096737604683459821969131967189386907402718766921144484039041752395750818409872941224176419715541139256628014487086901554245539924645697827452367026719057561770461138448227116702330640691474303584168198518775888461322966586473397664603879248504479868648570718103872770565054491596677365475039764743455168745160862190938241257216682047289280177955884166825090601348986584058191142245089761790873313893962403449685192259293138584409612784548017707310569204207548691024659746448000546631426678742915479529326200622841949759121013423874283301778460017054253994752128248077548990391570439595178392019569031121764463034262910649084683277044833175381790831392660509305196160759503432756414274285679967714786734430128160685099796561687473363148506188336481245904167097318379028516918936237763144747383811211286056725489312856811103405644588581967864798238492747807314761579714916676946776987505949197762903781175091297581051319495359260032310343943916745157714406740196793331420047336932304213006481860251090822971549340917413808599640974585918714733326203859785805542235078515248949795169704316534753687659029604426183149055101796170710746297034317580799860909245142158966204731320349524729847378017668449121785406386393128207045032460491846922181795918514558881521496593162601591651265829130722108081523210822750460797514092248555399699323940484116971214850823676344862965137344222071994657245836717278232034422115684760945960489751639102918769755260459176176611251262085911484275373819500741048908966171968385757286881301821384949836191401506164565681124143017545074972285857177192317199440794563838568026087316278367770588487536164711728922503692720874119991210608984078189290471807944307099725873304885857113690539342457140344988324337134393771372296818828051914075876539474073067930090424688975729000613595007713472128409275921219687616266982735677541058475762779929766342194061336042704414589781077509759202616138401765389810776860640791871605459702466177778701294654105372111223708282232228877842036006076781800836317940468029445701039761338677648524657202834943344796582728079416934182325418380254364222091604139331004525525578010175756527791960309242450357311853662441643094563741424718543296934642710006792617579312321504668395188038518517600462950670648116039819908811881854368309996034900967141269285924850427037643747772440411654483133702253758836400801845262508391666427474460253618488515506443955328213614743033141560991965324132641261263959448310407908294850528398763600541765766004942000204909042254394162441032932437637067153431326999851049612857458758250168948284378846677156874161237963065932345181125093709389496401626555733388937249973666036793130512195356895193393629930341389345627805927011397427843904138108826048026164618439625652861915781199372520813620157479322543348642079909622330749479521990510392569163643924110261920703319622423297502172698642304999159161258414300536728268414845821533337059766351717254884100701855671713522246468803784770576045202462653135312890969274425759615338425360601378302811113634136847869208702384385248720963365389140934169151007359830122156485020927084029396050994512501308452426121464147497228761728663551988415026707442172658015224426990309355694723166350127967867838226214154498756958243863423652208918393272913230287301663401589650843609628019633489930643337059317461478855769927005005393682556305660505572546369648160725134435159871376186935984257904090181609374397984733180274711867550933756697182146627033628175595520428707066693237405223856624068122046021888653878331290972234911225044228109997786898567511197135896086346497430874229919207725490062473617439396530968094241567067668907850928102809579302246830511668750638007568169318456533320972640300180652698144896852077743685505969829318286431616098392200118858899101639232183593815766767196849561507968515500594435303709001574036833290944354032929211972431244887736754597103927551629299067772593787189872227351074865754765736628160067636803613277790723847573459692258718820208219766195560497124619018998360293710566905909638816349772113250871351008871519417330822626140469411056693786946242700337928853243918351290543085279029108377805054981573079879567584343968704886959014509970995495261132487325830112431418445035734950962182900226258899354644999434105890274237514878235398748985396826155971524509664897066968701915948870678555175506961047527200288342477353787404115652256551073937662748424385709812630755016633057043622259891143719219269363593110400239285827928391267194546822867850632732525479509387113984808277078086777295855824117216044666225161234457596963321005420322510926341362027819547987932698296828802719083905215295457873382955788606114645422247698752287877310223086125099691974504436157551283671362223151664675376628804351976208507602473859173128619663925448541813212745823527791783763689575313174365282408644024563350577597722457346615407891485901603407654088603334830756429234124630970642813491248823131818348964359522731012183860038425384123709886791857520833983132489257520171955623131225038414373404849033505843668962206292121612768388911421691402587982061175517006158343250057275268964203690688273918883371174652079379981642529405245621332396806344415352005291024902484950674282996867859769763387772358129087606910554123354479509476309307948124879842451674632256739444461697870249172226600494396459293054178685827944289809524637741507488476395091831840665408451648411726114189215310793702974880275008628375565791434823542572354216697754133097344829537285746330701974249297991690772758266366141270384553207969298241784193286219267977225045931962619552859896142015199991615348816232573308454554092539243145270910166410373387718215045766833209785930686103197387872389213986923528549937672633590066506947576609418746685906291188275069576420161832801130383600098797109532297903825549029117639383887773459427869513805615301605974130249414520772427249199335910636067217007329558975978714528823444962110649626405136277298754137958834041400553365307575085788720315618507382714875195277132166859745460520022984861390016208327013874553797978807334247159435722896583021060754823660562481208466755307880763527287290889787968020131019471109068524682381675988420247230456850229488614979504353195671519526689188627002200402372278804874545605155046365219011707876755957791965718997860647969317429498720863359839519508904878422766412885741789340411489138912284759733617827994856807414491448568988171910823410333882056417297300529371116343764712194121167155063243720451261964355733171602365573781673952636155729620665837800872452897950585592833912012645378702025798612643541751320508825803927341565594897388714116496417182086593587061345671790862512175473918835252425985577189757116434857313823164253567240150201238134562764672644333467538265866912159459334800587764084055820364545332587468953759185817863493691232794214729721495951407719551717002383946522724621480858909069068278901339920126819951846615137009498502299902946040895010185081322869506998848126084118503190677770399126652589224905262082802105611294909652810871098444423521510284108309990021765460656068688013135648391117149766630109354183277119839850391988937074447116809992110443576639008575736965910230435065714739374146718218419191432988556994065704136202992266252151761740467661147706410045411409655562314329670964670228321236441583696358221475066895953550398010659898580954160126065891982136130303060269892071465245642689420019096460782140219501302288312403372511250464174347705895417086552476735567248222930123185530019172657912918281248971102611197516390796964786626313480879623284507935467374917875263309243004440776372922299927533154281253020667690402175119664628417613424054792378709759264213810432538831885270549494844836078024677291546896295453095336001366225493295843386558933447399892851063822036932690638619376539425657076200877729861527048288794867174252448180157744776653877359106976371225375610614099744227624828256463511942017564793304810082513483852764527323942433862700591901323653260749396655485084089441256539600037817598582879293008841233859208656852857885487032492721359610638712998006637943825531262695248126280387520189331507231084795440995132267579731926918108163700479647845972019940826154472455479572618369938986669879455154115974357525655828745884761521215973511333894843001674611768037620474802786783624141762952969111289988472007082382640778273352246576332360059009646538179510968106840196624950806846030544499055069781910475984676925297402525981169248978936462852747375729464360741496599593933889404303304574233471381481886689005971449107740340182106807911619476316013684343266751729312434437062335488395567271945143213411166155158148493612673747765749805485541259220558985252065061275136767200188731080843461328563442729158124453201623778182380797865078575577233037731164264493039808053099567255497493976364874634923869662688437119745612606996688782738070710638150728840641996387944390837828807731854496305639837417347290498764133658346485570718637689544474811151614558293702009529175493128934976993796565299179322952169065030942002696341585533330763210226189051714817586473945237139854357129384332937193000838356936061493555972736218440122425274889390358618846702685104040997281013054113674099505870747174451577804378662479171285883274038077116154412640514325970292796942103541149340917816692684997275764410783194920327716116232930825774957898013008768386297520348214961843093316645140606630949940363147620146505268939373926953207052469061260579989215710953461189721875659178833762096436787307041255388697235346000149964549679359570350336113725719155219282128314876581826876792413076291734048003170163944324764745514243519719857920458178292601562528785079302637528167090472005448181054661230747121037372703216017682295078740009453717045268973862729613355969956951891357354247841646179657907459953231761169564580269654599111394308595049570069537735981466526357416121778758942738644512744806439501807135964670657043902455654779095418087239656132112764193261665740117356827152682938988010527949599893963615252984333086265462866043704263569360405837932826540577480230835208048581992661623244888484457884378000601178385531805542209686265679366066383696808728973365128322128802453217866150658389421137749911703830303466659520301236618597104747832038704512898533670092641763367198037746815730716498926218102862123755654795331319286243167357367580738755060345934098378676878782124162282447915387098510451558146365853643480872622747508079260245390751962484456489838858276745283172959233339925075137321470394987638168421669829502689630085087022244487206748269644364946168730730394823972775302773638364200582697424296354938888204433888238698540149841691752503982372481984130151230838607868618248810745469111329349684792626255297193601109151610506616771917439380980081344353821629036682145566255725698261530257670294395497714558618153153677774979539584240557586511085733406662952945125681493437749747292730249085862728137981964788838368710684890148364052832544446748049159247062081552082014259155254519753636257327386567225556631384396325384805099024338032378137548768902140605591430508969845403295140926413122648014782550449877017439628361731916457716260797541481819216318919927478156538028722146070078140520271220218061157764273282373331995047155137364721495586212218020798927058347162473072998749140815533982417860411454217526938322076029643999677093625997658440706713649026786237734868238839697143172211368616758372593321478408454333695109436131675114387405265513589310492220616439687674239039888411321994118776791320482741515650724101211830451396575219547009358223091197786563978054979993970720661944633751572113343573677189227989745716739111822627565113957609191138777042330207989085526023039192880789082182498813833145795234105057004575332762038509169221216253458050053346029283627827139611323627453564941345455285754519141712433549990597829659082684349199675149336890194121978710992465831974280291022633813550473422476993083888633764619706573684552951504046958411233121437522823222737119933097729266516640221208288032560380822728980078435184474336008685061864752167447104191066145963098831272841049041500926731902748400137543299889868379729113800995903003331478084002990837957469806337725547011363254061287875756253968331596283393499332249884266790952954673546691613391975516651134263953523219828854253619598790202777955564899705261560733379495718752477163597127652556067745872955475947957649997113484835916615083762347569142931360150501115017472050404720633837770521470005435894526012415927037312277081760339623204824749962741570639576804837201412614852783077845642487617408730816705529789705369820550754421020417353322710739134436259819197074978674997393033521793619493533414827524393894855693722095386331163926837288335115493980928577805148315895473321556727971493791198619339510309925011293776332843901396907290916260181997200200993283658068285327179424639750606884925667724703964733990673375715747272353023888705461146155565012992649932112371688356738941285322518102206716006022288880884908946373707717813392501434606647640229802992044326975596202964804608510006062487390545017085474346155555152969158225014069771224522686425883018057541657756101372916504456291883275594570622286918744334240881922128646637347294852017437890985912820334002686414509370593703163224131887585189653394559177339301481361390309344767495594722415934800195058285803132476238782323854556235419866027280937442721821345649965247689217076588790544415650210654507921798068829901014300704532253519361866446043538144661126823274191238608051373133130704573079565449345747957230225801269889930328228500876673359357457081902331655241682653939601776156854933779508348033844825915124322110306817079038651400007487979429495993472084017972629520899121576433679276652629228570378677377971023494276128286821907159491531221786357086482210730241289207154129763504633655465473330097612506889762048724985882146851118625166428390299977876574829822371983644473600404763746530500872238391778757106888405169037331942167828152927319458935333881893092669859537626116160878644672732907243889872780777114590276689588717968667625025184927430958373969243053313148524467833211856519544171622552758617427442734027607099071394210451556637692282448183517581176352729239221808277624048233117757371724863708409866285290828168450971835063256499148326721363559097453942036221839529756586330561523566184348138758662397531088307361563533080969859988803968155704462290500199980724471614291172903083386235445592320758667091250640838255742350118060266306493885268623324431934846711233245926121935096327835970772992608026805834415212232896750209064708811275295153616411625971944128157288396328108306000570109280657401210372291510416631356771536172386939015776379397809199275146267272759079592778776510863512385861374229460114628481139912920489916114502361333720316088659979969208765382109782757814494536113867431477682516787021982594069735981958534144214092243103656733634361857705103691349983207879406585047078118859130585940632144575241936314465946011682783018776039185195867523654421610191760244119004869516680664099000420068493656537512771505250847575127435363797683307658626381927460861669315388465676647129019588884969489278590681469888614827462994113623368819224052891813679938702754931747479377154381610105504323723059350592578472111606813121627769096690077342314841367163082667875875616111405184595285920894592745927000683907673884466585821158863247996538700522022780849013771488689927311098562613191961296398823800937399152030307898102178299424515927875413069653666460386394185998086019459512981137006749501765719063478277844689918331186286739537218518534113438502381033424762252229942768386950535054878679968238983942722754527567872992892167531991871244850290110247997588115038509150580744327416094785961098261572922378847682082402657983685985466940043071466991607446605995772046603284357240157737298474981804942835443064231263922560795352175829886162556647254068314220616455780361601915698427233106019406502443118401448569400861352915274290466638947333208969398398136475979963521846532833750585543208203468687507859809014266515817335153014136343894234654850218325139549807927939244446995989607327408118322046494541709280796170382301656030159441508918831383098886935379931719196970372356731543857036362988399279447339804470156693541420361328775572587405060033028516503435631960737421265834500897430005621609328666221262631028095476554594025208337007829340517287083225886730706666659254622149223635748456984032841435396365463041529226109848340537765597861701737570659783077843582357997844697652110537314473760265432842248033034632094485258299396447921806072629102223802000642353787077093006385700149435089580071280403092386763440631742316680399180389963592390539875317449341899405599670927223673917635604502484503021561702217621550532044756502583491469757024980756921094801719689225665209178438933892036941820387105634685783742724073204547061121806466233740943383525556573406147164334087998234395147594411858092521422830480177437798765011817787378237272354963858854830749491909972859822121022418389015306881400048676876387615360230877261900940616798708635176939604497920632592414685223007398045694900125348628013307539376744562214780090158349660143824840101310233664201428364568329293687701799663906390009142101217491883456586040076630630977378877079987845449188596965920278009406685938951672310141717621767332188476676610613478716683804128954243568417258755274493694425497943926188983796520272990827176730076715988439737399310704357710436850876849262056479851029408270394844348446924993151085695281171968094910959604460960771780593840147201642307200967537976464810405788797565865473096784933348085144649914645905230330817085077896720819737667055055618074782354405217067402978920830240955904084628397809402967251641249983059467462128391624103357036291833208844881497400787912062327787472918861217054775185747454630181560298242508726011821453253770193780353643807543051778081762173490846195805284166678552809683735729051752302853723376250367989342646678493862171893187251087039356688049567133785259405719054040181114797779278170548683334699689634614925384870514333854504652630569888216407634034900621838978507892714437936659071642023339485299672343958060853383378770045255634778313816836682517198224725029250860311695403775574853252868743958054274932881635924749509985918551846285277994579352918235671616086715974307156630175885775967706084911465036590984464428863730185764626832130903309988218480595205346259201761689814272670534526122220943780178594836069363610816028268437157958396122505504423046413138720664519063971745912802773797171849021944066914784929481898554371917600609458908090362295374622057904434172846638224185708464311290843835664935583075067114048407907946883323050126768692765758679633117850703184082657082432595639257319281084838981583340831406308073955180075286596855377313976053014531386255989239891020379214685430377685062424581063435508194839440012774839894541679779980860442323424190690743054921931398390465565512540094896969406507134484744329492924874153184641067087098208093596269360281544619828306319572067815148142010949503213063978167830221271748053286529837871544931596635037765925061047358957325593823525579581005026321663534890060793268192713511253674542127697646837036274602200388965356540355899137165030561022430686810095236005590963843296191453277235907202761989209854254979776810174417837287477755838328880500830783951938726949579978764403033605321144014144345917120782530588852571711701428633103281592524452922852359545477208461360381312006657155976701669571048659335672635485454154669098721089159258559309044248453151360439893027827017497022256047849772902307149405585291087655556175199398878924107874054287507192803311217314723977075272349957994548113471032177870911787920223398393856613627551535035449610593287284938145154096568290694484738810585708613080264792041288428313164296723532580600066725145419543921633175270232517262791231187963593655983178499621097826049898234924608921833796868250142704669959767841727603599317891013553486129029024950034417576188777077928137822901122822389211089263549534218287096097932996436196249687699174434448212062191137945047852702713014122014341764444625556994588808135979301745849164649335417677133962752720392059948367266581514428999216520610965367441146812823681103072139596914460853836925369238672358843809923316170792591698844452113641334291271260640301590523018442851399970563083043390726872825237042148470952640959786644383294912702380892749981383272534652166150729332082237993337026590717842212657605199508234528664520037783616348012071642192196417394213191594418362223875073858820041877883172691420503325545757810777632077183560483171312321567517587871920663118174398005310762357651611556689619575993874035723393978532016165611688086763532099439072969096286353524997271497104522509943460277603911003544500673522539323937422525834528764647464408448601960564355523389270137749024294749107717200790311031273672841289232877187503180177734697689782865491349252590269472660825857269148196593304203973546365031191218020400767356289329371146087114001280623706415999618193687054252074384770111667824391871546144267903508271507181747740392664550713801820618216005567581051710490399198675470480948354089813950375397755812032961040305486268780975989336076090011279575849155426877018056749530140124672066185179938385973926897541454832132279949314590361733969331816293320724926790571354023802041700467009255446657627150536641507409461701621204177468645349262419076624841445593496579948475000744738396173805256969240943095451989036584198549078621355019665432767461795613394471049084168820723356640034492160747819246060746681999182686819732903984609475387547790822732852151408163638462334018327377529665867893321828883518077376478015983641103943623256743490376587623399109688471519844219927719160117658863281847078372614438606208797298177371320211389328332422736312811683476129389898943957472864780790882033835357444657030595289017183937138842735341371931870633429439122840388135913884211947956957902853439725565606677466521451204985350297670504090506542075985792023640247774519146749979705594530802020352379108911338374806420656661536454434655646205040402832561311120471331179905111579859789413168123798570493829932636071686251443171836469638395095972286761067669373627210686352552482728586269806429483739191583702698401503929786436052733203195467064336234704580520197580741119523807143810540734680465718170309694394265077942781555579191705412250890103541756749513501108180949538683169235680268079320603763374423496989547643976775321434516667724014306849192468703572792377305639141889784560035573835322496662025248724253721111423704081128346770082089180878035990387828869163157708000474743500170296712469251186023556556889176532343068339978995355453165303435057723005175338721271584261502903184013573993860642978529859709434328334635001275512186870919248288451149815025058207488260492773380213623927036351656272942167334538703590473728844275918450023741942243570750166731853599952864435133312548630591006871646325843138519961551831397493600118106885828634240943123476351694105368307924101046714305296010250369159210838157596247650051693135736904165180482992216480380938376868785496278960811016528748867011851639996309432175468801540771513183498776057326114661261533153013868375834360995999848745389652449682474060750540666314498300420947900478605818404257371298265537107852166658339231584812990251675918875927659579202527002883714838522692390574140765181053273637202616059714117820416905857805638634643672232447446421875568878962156512649485358077666593329417367449554724193373243645711691951229602560768656884633679825194006284299030247443868281039088923836470365518994583825142538093098794009180958599899943548773334152722512974356113288555584119987192451708600966672678884392317429921297513671361093881580210963028043606240510296246704680818502179101075800141091691774349660365061138131960602532607961136443956628245539305621363172360453468935461766699073786909066327179662190114939828568155215821821784418779937042950754049301549978473961471666788050759066441710398916750502572094595631404563309964414528624704618006124469681832955102252189018110395430895121606244530972802874947381984459908023165560340240066076662652837378301657085156264591604066633664937677382838041044807764794946920787687504896048464524599751779111459964149409707472900326212271838549051748387764624821537051666969688605166323205781303204099129207956177216743851716545632413392828683001131234104494161168254500210684212785525786637566876675912743907405194705473019431628927655825612298594894178243315743060793444611773346684245775868893587602371653845264564185712648415848572977174719803936655842471988669923988713802302578480646139761872597334781069325207296580119095134111150717046653786828340465714401438183776240631600098629021994739700701900869373812239409953000508597651528279950231448824795732371106941698249666012333265614519786959990845844609243082605595981022225174679992457552704241502500684481547185664775009146807573906575446687273396214333587514693627239838193224191230170129454826751436460027732710744718700898152207522443330401432906714959942210055168898434080797418064352378543902187386565369107050913947432133300018589271693943003788280263685180938750469292875608483427877082404775999660659652942444363664028413802655802911153204625142524455939907705484307662109084146417678160843936229152667907444630251514315524086285336350222546390619391432033870439931280947851004890543813142729385516548359227457255783213962920655672852967400721908733800502629395133587129649412758758471267345603195200403091055277326091462157315640382330337506502226444271045234551044316220929890693536051049865895196380564013958696077317240193398969403223401704680569368939363833141531584705262047939915871352423608099537711920267560181344229559596562644591199821285793154851595754750744900914605479790173705454053458465579300691162855069121512189975607095269520447956774836474980784026766393525320037089726137102924320659946588888238171492881734799489389461971780646934797279714701768849909553434351331971271867218727410342921994860924418244375482380700428796438745591682657405222042401619749639753907670606803219524272974822867743641414874803356528964801304242179097801498982575281664389488521478462404411175948882995038141181152308651879128116731540531799910936770529046053473048746756441878494007577303307835507359952411685432266720931834275279254058808399494395551346805335742095392587403863108275199646629460389998644508382144887920661805923131601789008188409792664036279900863698624033697903481962575054018388750355615791554759007265743408846454021732832490543415904885017119069644350162610796861499018462459616455954282647131163830867012216606800091400825950222927378331560625131422619477332386965375033283872539122270757869873702939005150192516932662178469910817403698236841625579463953326837141092177162881731007792135739081407742241134913985497356543271315620060731600355128192913750027742685028116197056320490507184216307842895519394320716774123934516079275395086129484366057498010950203889205681102287742790736235800288975064343349945734638586357235551598663370534879841993630394851417974568500460460767328350335888721746682612099277281555160950170177232196440669272187584552224703383779409603112360662967852747550452985066721034953044537827477598537158410982865167606801242206468188607539344145535929779326490856410512438668881630326716908132359850579653590773529180628995103232076801964496669566091944931418138132480935631219754386245467168579867747502754385177027021008825996187622730997117037725806096220403557786133025157056045239478851551635999378596326365294490253703520270490186753909129003953821459128419916655897645359227396398895596744101018957951226855898179292308915936593288196738983376480765476782106509741925544710141541541957984883580604414347917515875767124613878335633131088762857085607135955237236833476400200028305665107832168370253894439815407781549832371291145997940767050345233219198513716327437810537344510201611734128414058009716332179588332185543909118973735796592358877117744985157026119236191257236314301206703129792579521449631854063098465683698458411182505066983853263856754658507437651642689230998709782335352489905597239673190555197113259722491276969776943242712478391612117137271500985052263706085997602680373705901248877316094591004140125191865764702133198505152382260556577795789038982630272139559187575385298274799374025204283595643390084505595647294602949974835384583111947430989421941082059128604060821449285142779989360512421857444950090472635789388141521263142948695435221041981313870424201176833661578260050216943121513646100030125431762567349371993985110379270933628721434714123768313789163754095652649721747849355119790806700067464042503304144985159099695349966289635201984123570927379364650489159650423572458308809373119763183064189014765280908983076503834962097558364436354000465809640054019486484616163401276171420168610808949481083946256368213444724673960242855676612512959354940113110782678904193802065370768237707546537422012440038257206930466850334624173019119268204646978567058338638162107218027357554969465376256537388421542409864832351645125712067375330102806234835546637205729016628698398222759876107637195154168729251337426695530311871306099796009742567698490140227658509923437382710631788636434226011897955374862330560225645193396726424279083899678274745866355958654145892311951446175041829050421098202827307155206273254623483953898089691004934177585677933955514849753489460600533569685848824096475328644347176278153560378195225664673728903915022338703760227167963086341524910525141334693853438644311928591200386473581991422545554028324513061851818772882097623108761704726129267254665257645726425560903237293769254280861907956593217028988226526633314865655654317548667234469581251583673606620582941734949797569542556707424275048897176403519565624907023551840569232773847914035012041421990672846788665181248445885608626991938027013170112927535944075200635697670886536981077649178342314820664047593238124578248649433420681472161701338381201977943826286999685166547018473321145815616923739961639894580248797383093074360419952501487748189731774635862663476313464760240537454883095693360759435108230157797033861777500746097858458778600097611290420878499122114454863716583720989167331837281765456329997979427641590249810616148605173347131697358689574071395493624510228899188588193116399234397193703440693086690651859883095422267214714490142188986398540442588480230901105733501565518188203500748060139260174317583708620973956421091162940368997953240818583105683360985919160430339268705949190632633515125494411963594891549342308052850173492429431102381509943537582269716348973633165913490404779191937443712216242368262280129581472514209015357412951372597235123614498718051300378760789472909393518402179173679395942207932049069130268227855125794849871913911799714913246865788321611168168008797848450965795136519372529079929941038711762057506082994918160662217101427208931165460283030108892122604612942871881386379348911098144413837270310957651690294133427649689767418913011512422824088013667750681415250454273430992625400843258476213673315113880075848858599233129156747509052700084971550410806086661474010867833207327694088733726497836958673684317690681775899589929435544712781654152692832171550465524163460865718781396570931894889654977360862971886682251546439402992132467775413627297655737600327475535324104179135063509575067069351551395863169978244729435323472705802936666635315244915070018864675074376951318114923695796266550713405317148360424883937321906278541912264804203157634553119684139663742962292760296996769030977525807025917604288322230496438854089143912299804152282086807987432626312726925824296713835354024691521852726331336286896429206238785433315187866647134009702007629814066802767757893436150638508215110771417935235928371383009664600132668758364052673546035058006143129324371035009560706087669026425948300630840942795510190583664597101678044895393328786673332285889840953320691371935336419005607077202713345540002134830520852862868810315652353390009049574057136682385423856609467280334791813716982041645964949438981367561743456391643250371500327478799563376782771189969308992226176808810634801222282437513975792633087216498936900900220105493443110617571506282941819503713843625834312497779971263580052177727876386277705339771890037364858224549712972365044691189960377096785744146270160271443601286943851062497028027107604452663142226060926206631769767023192517271176902933658770766387434263067149969703101311138470557494563381558867659541591737227964780446297618115947730552981142883025939355319778121399390278558376717644121437184100706764258946483052831545836595600538202835478711782517091979566972134689463647790105974483205008225328730208789933331681158008352566100516828081631208891529717396661224181831936440798382746446075683993781652627410846108071818239265934277720031178591693864529721976490673071026117279069618284089512933752786979411289925398014464574267113754950553278299629231002316109067107988657302742899520992074196479417411663519525692510270919319771191560764232856387199229079170737322955820916043153667765035850155133058039537442708121765416656052495373188759334933787171020359464505763271200106778295450835406552163381666150638860953771821794382176698174549174009460341436059891279862425908573075865516985955481746055270752918021120515619579246484796846661592181935558349027555257147075802172086189146863276973024155808205622044848688550545442177990968582118880404500261756022264468037158514142327981172582422544123268095875730494288418259739126087777154792604770902788224042682143795667498873472531334350443388966989519348778631826292808581095391130285047283475469197912353384615710743181696715213670022383212931185090594655835703669305645827887074743653345677549151720828601695305123696031306378892494147557939091254544356418545582290591512160149946379482787295210880027647906009363582545736692442492890701806070218950091198270072346895638373267047281156965705617071455152740388403029535265230070163777642544636508220697752996010897560405103147976009396209614676422436941588661564622835386734992467667882386457217640097452728860162349258451795551468810041742468442090101536956300868436530365378050825787298801902449445680496316936589933387797081850056543145468716938943858762780965470547216127205904496893006985769080668845315204294182957339453503098204079994915081023274973695494509569373832066746951119643406397365563566491396405081821560950177129341962969969800655143342736323587223117354395585497889134252821332922781525846818652056953368305236774588844863250817751348991445474380567079488185922586334366683082891079588172796562314079970162804902588303681350711366332996329471090334723795398138088462317093115135630880240699603370410211575599627242024287867061696897991399269678071560002915917078431335701096479927975803301135603082323602697173126205863567335302114221110082188058888718799299467674577985578034280613099443361610836991629605201908131725866433903778284909854476359420800672075123659350496211640559046552399479439011807834530914893863956019399814306136619149197420650061505691381565871535487690638225130382324988725691230534254420669374738213697113634022276491097279839130290748109866817833232996070893599121168648145396576983973233581209522823823695279875753355754450251494503068201408240485596131027140832890238069529477203934102413047100618010089393984801946137151178958572390054292206042774019477831300466408346601947397713168985147300309769121760442264979558413310595597316617052648440184140192539475845186311094766594835323751057838042903111708748637593222509132946281071149797414020550736156409846152294021153080701396435243098767365201613704654963447923008771274112091053442104615719462228027936581266599684701112187566287488257460292860162274007672895190295195110140702034879554414840017181293292663157064357862864230905462982176726622743697100994145327252338203469297894252248793638576933489788952666579786283247559682279026366629161331635181235172796176396398774764624958535345565701663194222662984490463740222769404246999044042592008946510710042362779338878964573890250433114631086849570911363275937685226053799898053949741004311133957229921263305704044934485603419832278358577727533113641170540702736521504467152270423283805496045960544719493963019460054300862698207327952520043365519339799545596768279992107181111139387595622673798131738592926460861752913413273323726647397144709305268273888444304129727272771394554086630545071993982078948206217601379536819586838417191681482233251599954341383848443254639708262740554721083242142949214403192286952827652037618435165803514818316192170226327584908140575484949251260516857857538391403569156059821597697048463149454805161580026037942101402665343963342317526120206387081477073993588393225114641466002211691123435238797714883284223123764143155603012222584690405794737278580700152317038595831147143110219565612024945745938498832891874378231400325166305148928628751795310016280506213204255021243228873943765229625906076745177173959514092332191802572457066625624069715268728543741209184681930114489848024479436396925448189251708523962782461292284333888872804782284193046818730726839302333411301475949666385992095708323076944718731898180702476655934047651747358166965505899619704126731213547396819239190520038905487681853175939899838318503037114472200464877848019550380895070616386177098774865625746996131241962003482746574360091134249909105918388164332494304065040310901051818596414756893048904591628408433684596808654102833205103722513790731198731679740488057394649189541653177778581104970449185799780701322497374442793364256537670794654135399767009996244546772175513931395644809589796951856048217896333855027227325135141955926384911464432807176846926792573163473043932576568497910683394096891266950024306246976181803490542739526227695571635863597290234892221887071252478644835894675759353101755161848783249088787728087280627921284219929444808538505825158527572396613874002922062866520211551240837109014397567167583289680847558182362227131017439409168742565518163486996222272339357270266536233259091370827515921985298522405353903712981654829740713205846941935744138321045391640992327829187672373681169422851126133642412943668657266554319337564865035781149266306193580360953607195457720155231476423957277090641418182919382413548420924544969287563248638697682581348669449941868612908904963018713500742041408516515456993055680815681037754084530297638758059947411273286443141742475082876926016418742747020275744227863467265454858616514322389968432647163605684891183476411650478641546818989139981948293744836010914293331772760257670435469022295902875526045341843220051272348825581877989222384744778561740549654390283984512617734646644192549932324711870402697223710405140428321127243272288321947988868369056585038704369500619480595498005314667361806392368215806670814873044169230832642972417834953810467534535217654016831944405366065645733716113371383261536919447114835312869331600994779650654175924994350200472243659028865324705535767057534063231271276497212854868488224988169424003856336146265508888893407625294166335311757888458440219178437755534701892134451482409789953337651456281562779919336607956639886883869461538668450435949049729807635307097742945537183366522805287225686891039510622341122511421255452848810454005968391850736349397075039490037106877503100474550184217418761541001423281038627640911862586587827783903609032183240794670459780557762818487934297263755412633187472273276961115731459280751948228129048362045662931784004995426007053793333498248418081695427029451525265215776795115674469876176222462810788266603371664566668544867032446298049926521610105910486569171734965802834929662567744107884594408985474070293748500065020917805566643563700329407444050999912187164325322561278256382052583204376311473198011052517542555395375813438134024615594204835392843809903049253699673218809074190429370182424930304223290288338843553872064612712105630409500160576410298706902708375974484355314910123086032055663531027051956492878261994647071762804830578909087649670670238227461779105172311872887101922722519828921951860699568903257805129877009049636959596862739441284756991307006229858953474168622651889794671317776175522335503950189806351716699297952239910916695081502159745007263491552424218830422981798509493061867783273095552127339098638825091220732568639383898815464304001159414023147579374155108198230267497888876678195559948351071292630840882454354201336115345213696932517323375320578123090121659641372868976302788968082376003849266304983881710704353985292983351235885227868413610227464001686305684945869651216006429863825806666188194469564020925360478371940933497939848640655644156228374053544744275499610727703992589223727674916014263321826407401794631117122712908696631474011881269084213128725480091287858811532424274299502502268869632834666074640685744099484520151231809154365664269298410459382840234811726935718511882609553138089728678114149573549717586092401103439485162880039290407788128288815406356852598094073463078796950629716016218466054723130500510887899183186194210747315585884585375466818753452049514460451299461729623224251278601822797808028932031041417106261227140041149477435611350834645866023495147542408261023797635656371839316260467890641630753897200776410268614934617387321991070091556543129042173171342983841615031438702398175635224250481142986813844953190816022517718375000613251299458741378177335932153212531177198673046490851680539486341612370079705864896955656921894788620085951395817788664003548907855952270934254182620627280001309979319079251403305108199969401061961784234963690092058054338910160737358910735127738996014787849808371417071853006640507052790573417398827473513074088403236427453944464142660331174721841893742945229971050955959953283306751179800514309322792254614895827508409732973144905050949880180791464674499487670277960633881510318519565660182013165064880790590422269076537157778126203703079306638347495006137271708139226095839508873546304950573635558181018048002570558054570215648355125942855792377861407381148690623555207989333967620586850018930091557066897731683312533794116877157724171331021763181619720869921014038142483753615303779889097512169001661183645768088570475856743873718404907633312419799107439566775371620780394203138816530738333889670112429770025521527874832361685952854358397756458342993658805876227406140852177765325474083969932949982784135370813881692311113606908792902466555634409533911807884852646100240757361273984567378594961902087331053533691890686398858148873793260604760489016351085647340859677078491845254045547172051132580411346127005078980559455886043037407862846798476515676782781139400020936830095408052138434313874151278095397929996548121240154161248141280843524934239490045128550877911480311690961576387091542444399891611565372672696688622865170533029731470857611276377299072803188747467881129417705387144380689758429505960208045886365858483799348948339541017556406886155558678929000853728583856195380013459546054001950291391624540279417830167803307841522713922386607452197815306575717728468297044089540022472431035054282123797246747950455863825299605565339048159262442665419534716898830323991767254391038996463492164206855108330470241817647546001075660151720810793421007999452569486281076257965499344060352031794867717400735681720070316706040548612874935135309147544344838176539775163870546368108889393372665289124595258201696781287785007197188249510090196255059013259188612094386671513361265622252966333035887048775818958506213588105870992606620502853901153481158307430580987411228118211486451935008796885043173524059998239577502311057111234216346050528065362360613389792196797445309338716427544616280059104825213740327993913071643775157963890537633696288209953261116905791898680988010098770483216914072368049035266377089486863969762291950557545859005238456780297457182843430540959776934989954993189255495298122314626171217061493736109392927742102525672366040722194114397654044890689230822042219314045705692705454088066647573120268487914834974813728127779830523012692451630065045101548055066313177124068955114015691860617301733149601617779023329714794928688156730984454950340694294562621692821286969743439183628156859020127289847390303548782060449774691529429597853254139708453674018382456570790000863254162384832067237966212106587449076256075163633613950287510489452548624056002398289950907149428438049594085571846762384967194732708642337673797681905660111887440311905684378708598662655473070667962772466191003625916594794596870816659942946035445246990724077681729710402737141139714389209886629266962893860492871855787412880672929105813876569595143704398384757878268676542166133609536952328631795421413349982378270420567880849502455457157775286363280789249433508316332671268955695051343910785863074410408271166133082327602036095699797625040667012650137597490860069098779408287171826556514680496500291351843403504739187399039236367101882772360681452826616209388497397230502548032191179814576766515658254381750736419048232684239704408337193247209388662146857260707883476212889937303168260304986535498821531677153512835911141121092828716999746724935426228296104081961911807946834094631881482061491136627180454845731324901797575271678063667927448399205196205923308084222047315581477720053245698125732578885000846008379383479045332835747179924731700680294579302781300062527059474774954129819871826435991506114750003327165224772043926401384591875347753569618729525629797948399409373948647494493161560773794285164996233126819217330075662007996196784816884377380024570700904958590774374757608984244569528921037719755375543196252606611752382011268720828256721068358471623424079880019529800912639286640018290330227892600666197957776401606863959603516602532253424615733072465162469597283807355002806579877082568551850518534675949936154193078487612753719516250083883267438582412925094874642520136893897704075985047301914564997497256374405351720996894569108511729401355825961027835544755063985609839742061866562667422956764808126631756509107914204354891273264905405543353867942353955711546446703909072167528513363784657341963146640084130444591486648025583077094796962954691436741370690362092969878685835031366210801228700820863128190817096508983108696938680116035035969270966631666324101028283261342432410114752122660456219523647012977251964896655779175916803061123910399978390944182396487459226564060228958490599275782626758710642544532488258204108931833215825005409301345032795881830639223914413167536846765939114443511576982397739109676508311210510909775859716730471433044826194559544066713389875951427774274562290605789916488428859752632377522549161074712873100714232563997301916728694456122676514368778019702033091428074641295052488336788110671160305479327119265706577255067907795536583579426289753691180796978547837736698927398752014835283224849308934727535445561264366426707830655201143250428198773398119375608931890019429641736627810340701205785490115885726200195606872057433401231146203583066658647669629457016297738742757881320708648166993365213731033072743879970056823483591981965658421445713367565622543966863830123422226155835009229368061947687346292738668668225314618951358913950165265826420185332824863990814705090346173773527814857317264887480200947673419511614369788150799025062174033553255878350097264762563919548366871093404870946509862409817113645153005308195511076048783778590695306511421974547854027338958421348815858411535295256322309655872600466572129316690693141843033962761899210207115753477512360434786004989582388695295933028839682091621126398133594898873309546237305485329967989034369382619542786571567374249197188496580023523705620702060052819995146739183274203178672771619484689551692300819041890092757569868954633968361522799500339584953323952042010525218928386893221444384953321351007003639737411202865797950497695449337538881802645444438804866248298040867931304820030487750578743363017661385551691101783194070032463676526665497263056781227694368705767780888531569558814276094872442922101073346094337370250178902008190369048058036678329466679278329100224795507972282009473206825892745409217984395203078560810896741091816316340925599864491296884823326075663323039606766166095184320461200613334997216519854223149169246384919877203093429986935991213990838759275700077779788468674158577154860691765263493600812777782792519071486273515494725923487145568634776146100303968378932887280994636219502839820374453017179634274534535458755576940707909776765749855357074032468357332069721866403591343028673885152909466081953555196418416995691456741071602001816305500462664807301520583331771917352769718640773682526662857551547394287305413475050275429530620204112835798902921580542297246724268798174546037293849470935219823467244409150071547881138298030729333916451345943830397483865252318002808024499153064806989340637599978748745040543339308607067017340260121201915346686346393624982523286912400921580572679520986391367089447593594748969468777508304249713028809877390835895964781352386380737821777797847525615602136265417244536905202869145442467096809759030049723899840005719977572511578924390472489231669511599154815270876107838038760281414911389944950285637630012343750861339977009089484186601183141178612448804585882859099249564311617093090441167555105318250069545914244407473256715063577742647998917032536758958364777305406786646384871263253898632173132965348087693162964350889398026468897264521316176337102330506457073601798553480528419113748611567010320226776867451375339521821218409916882553941625875049898545295646028172263377741102204455814027287449278878306355192546808951698296257025845565930113903639858604886907221323717904942951342285614549367842117677819464258573571449287777506206463258186302352459563782602050731978297337601276209240512410493561833849734501731374178010084939878596811604152279352399635339701613147653747119436037077011783757019773616328685987118853796403773630765110105001613976862299875099017267426211101456001807450690186335666981767168401574631134727058315968675974930683497483458863085765074267471573907337815220099916870688478965085758463113986499411502655776850456607646410367586833612802326629654525716498275262889629268945044249817494396322563185666155149480889475696638239088043141461815314641562113532879473084969052068985797558109797638892400226334676590991930561996804533149141721297611182695908738163602483894391668367385790949420526474691128078309043019745349425914774009968498794898092933149307889038854231345019530134106891403441945296237000633497427522571503417152968952283436202611380091480583470722780316265652142847885159173279400871484577456471282391075238200552097717892244133180404629037616467646319434953095770459611503963423682713566412804043882778975595289392435629759950134061531021883805059967699454967932166572994776335099243831683713172983623561530624310159281055116492712826167903911193987444907690040196700411603664682731259661050709173891488384895680696274587854535414556695502502238363542938614752267957439254265859227342803651061743603734801363149244504076843976546321365747966724162234102291654294842616611929775612806165875154907262384809187377518863335117416840637405071751002838916730456299284839613381467804057204527072583987590967321922130236845679840962784698304730576612844504579664777287317183720712984399890813609113104524075728503214049796621751013407862080085804306360027699782609736227758923045895586791057743542551166747666610851113540362869938004162985544076441805359131027718360887022090893217289601036296879805383284442446311189611175106460319382591390573160910560380424465287465079589446631583532916719426524108194312070931829463541051651121022249981011200755850573777942958094479199661084959622415300405503330811692401249753187127104371031527311971005951739156229911068159130502893137574922989819012083136795843943271416225206267510581392976674650474636060434905107581928388901766756114456164934990050806948950946654409180663945065838586562407049010982065482304799813638257993544358911144918731374774503036299049391245381027988718302307501490379820924295487941672232374487160714314826325434920054107145335641156312040114054715415151108726922356161766691322398713259062047514783625372696077283937414227389632894364928259991206275411291925389081865029325582307648468030588698309647606248941559300355312531498657537816703071835645671431569051884681308360570132837874654276371155817874273827487230731614485192067206498211805749889609995958028477363702877814511572773525738187495813273427405557900056318677504335061343182640744139249298204660925156850720008469996229617417343768384323904826631678687324759962424400923217714298133116346210148168468411893666219784207263354486803449792115947432694210966574637249917430821402159897971058585789971648048403943863999039659517340892334619929503778034538710825497036420395948844187211873735639470834199480385997429743001328427656439956943896703387876805009104570115446126207990171246261764370162495316159608649785924928073805901960019726063274691281180643924222184535379632878245979733102636530758806255226574458236664327228103066193086608479569054525445421091782457578733280745901777695006067399560794860479794357964763013969031133283847220310790687868710008556320360476068181887748908365941761228373398133424840450366096522898312071589815449685320034819720734431127546852389613414451405640623304765973244168006275346321884285879474770203315875806687710379348760472587566400135280522478216648269321802566013231628469088385576365295417608174034856390735890770446377308980569473586179058497247117413559880203576292435637624652543437370823751019481922180857490214539852849074264602601942041489292958115768586953475688687677717530098670907748987189613746965245035173329203450965696470294694925097121803766371081302044135850898079742258941919020166451923858387641509887658486696965821777811311423061429804702628168328623372448728952340303707260072342235374343930702229931952795062031695823941436106583764175954876438670731318985061351555363888634238582650404790585228934580436118081098140910807214683917805961973201945609407638914039567219692814587751853916381338210453641426693527457557528101454984454618268893736760196362833780011180938751733297817222509248659517433498930194473488853551211202328372870064189742992150897901959540047067934426120319273005761974379320778623157420509526251271965596255004615927944578724894163288061531401011354928734708913691928686883795221095528561000184900199199678568994043414684795457773347569162036065286476751596239604118978985138574819959059272879818452929300493238764989717434127573020044136603443440413970165867040163968992482740731406679605971573427472538135131752812485549684673886563972156347487990386803640287845598655333492136398960525285519930835428249524869689849729181493904114545920153931369279518820859832177498375818937021377137046070683460604066848161155708175686809804306325970564874847528534671383896187307779227503901195673384728813256511033229065545336233629775052842645979272895218413966422334478192892848417802020279308222159818441111223735892004678859138652068173702033306752231765905095198162021188696654767347629532031105725714629267092143049163949905131542096205717262760206407621051583207495724662549871702466455134135224777800141269928119047276739638004460349767957068556077641563239122191431304856021283062778872211152380912375309215945005662412610780347225666444958330960879492518734447753331959991560781631127881674351088037232072608006305992131483686221193089284795547455769447465269102255003633614792698519426857524464910142362863712286942501674074069569646603208349444185789485813153817563579642479837456095058470639124771811473326472769640456146016623110940221566558027828294454084427507001996042669868106768575918300716971104169546679040166085344829176326135881808037238642918755867616070081667507897075390464315900035328121333035448518439523756275645569800126941036371444774499223829442553325660467088944163914912625335270256621793204139226220548796995576094902158887934024394087302139395863133515260060937323101262976391917165491845617780178467735294535951050025431344868194202398207037140352390983016509009904401467657749532543804843908231051629389218245202180012775906964677653965230648849569714532508255167587374066185200584393105602892552374495143893939567406596348963672777642929426618664593256448336020378608325338560926936011691733804360450899708231038227910439792174787053911838357438724903806782489338196350487017960813964598878381245362977965512555489138169891092136401016274664136536959078323922873162449329827290796112532713561330646495614821037217787925884110358877189920398050450327855986244148785968884332434845782982224345586689774685270351536160207607865089684703148534624216760212273811197727805218846900430359197780842909910886031152208731169641405800705714362901658061229479907740929098368517500577694248324440234169425193455581593448636418599262885408781068381928979862508489962266341631923827924144490296837121113541144682688402746746591232120089523538229044300048588470644403586041185001421538323514108508062759393663709083357862100024284376436470159421123680803197388794224949945665003150348599316714449595912827986173435348560978297487017352810091056821453101693545597331742196803546716928711679387031138020151066665241231373290866340695606407721082053700169628973081810827727307922330367412848797566660037307997050930095893686925675346220611881969464392105821885571158025699163549483129453777417930276080979002740867165026293960639771735436010504186095575773642527268874036140884343550043597573098512468955603568234330909365382869308873408577110129595549234439780973809385310031761861689456944116287174201557734954283384038827159082196378658638603131181410070568297559603159661211520437686813799818232066693183263431273744298512302146351069969531533366503650567684707168680195952908195626103976735424540869349593920655073967827764779615301516261775080732568430337008483304833275005104021542301045072015041676235812590552042047957699400432338654875629477475178885727231350254231803445407478012623558778504075394853109535002131758049481628802398597514961077119940291302888544209843064165366167846009799871484388851323106663332212732824108781265690814303882653831728727684193015769449910467355801483123563461113845727624088086333313611068735276850115548137082022555655500946771292169171487788190359565133623021132571043457555982944277167810730310845027750861563376964867545943889508318718441179370692510356996833750661352430473499951909379438445161910885400890390377353287311008461121666437980769795540968830233662373833500081313439038943104996364903557975054109252417081596873816488393730190072998202968509914509545450989064646942516376084133554216952161464548034375765471105784410608111934507838991533514808349887293571958687184383010286065336718732392575286271375268303121831207870526552040983843698570145060061503705096426492546964529622887096796655634096848440178784568015197306344892918151566184022317820631373718775058086538527750457145890245287465609668475472073147931070784035325049727717214261604219170252498593271792411940248459483386215299807551857089325516308336826563687286121278475779920179821068863257602306265562131778115277211625304728542906533008982812433924123986733797713280930749195849749771976952933214151866213264968603983564711747055886467045471915809023817699679784419404941876794311230565780976637562432139876192972352287770543073424389838364511181861148575094570246308059513872214702222741262368410671371838325742888806384529283907860399881283682192212798200346281581816228490315625775889240795179213346158104851016718021068838351554976872793083862459621414050284362799588444339347177405236579944051477327559495971746617090233216549073701875874708827645643549152333885125530528301077795027232580219636140625751974315224544441224155014733820426895182383637217661182855783273168188924208711233421639825923102774367647487451764015802407597516241244571608502036321782063749821986732806792400654269758874540645138333051589675390921442971779399637487004776242629631970756021222503061712509425411930143495171642854112131405306536617659662278478095291205701821478985694179563259797752143400424019330701998959998750194080451382003675635474997049917242086629048380460301082582340632815429248715485715001662592655402869992146794497732449586248612990678251224593246697688049929295063940944444057449923350751564441302991856374821725208373231928490041062562772800789107202212986033296558643469137555455808671010363697783250769131744909920960229900143332436604782073470842650200661030511500508856259697480488146056171969051749614116886059285525441460123238490962348852799269236996689335076733630407131390842510407590975901534545126046685832322616417887692883859671948210597707154833899001962961947397873650578912264610598878308329577592835626955469320308462476856260844072512894002591119553919121679203626277434002965085477965847698352624980288670514238795950151118558138043813023618428159551343113118812784522321046121890354296729325449200338833298891864293823472180577111341438730739733606877165731114365800143576581748055807317839873629745434962287197226841540420760865260034908445323338103161780289294718445481797160254416369738189782815473930790643020329709148916565255363646574670736317875764206946061328892263531313905772842213989834944721221846330028731247186212438696870306547170140311050709718635551635729568293405771560294758924602947169181041724334489622172821381928233002754823125557331274248745105503372279233626163215501881221529348278233069164713590781041366291170882543607564596599958519577540052599435251467156758052610994563069083945711072704128885641653442561296659621676684828541419196555285113660150602834640995627318697003626437820429736350615038983501128128486695571294117121694176277402266820267015002790286353897803481713684986772127393390904878243980632339632528429558970740655494348688994118543164734112767813566629774357278947037205281515708986781187595036179587854760673781171754702437485670284434572229335544569305893147431126501994350893436870533278094982938767134496395275635013942553732925468827208923749036163188294431470641326920256045675129646942097790928365619684979814693933959108602741031149369089354527677381591211871204826688716891284348368375417414233161523994683925449145309962444213315993720256628497236569425340887898312401913349056164854184173907927997414037139906583296221634935763723256882295583530076070129929068827753444952152845964378476477722242576731986596305118549300638805599021853047433603229817066908992412429120807242117492505113438651087421515195941549944273434924942025415799584405501961710507606004349842857191858280580183966554698719802885685034299330034314067270936756928802821986837365413443212472479489965756823107699989100034795937357748747595248489793059287021585860801219618442607400647982437740437115144458655440515660028325637769521213450098917158320223703815743239180960195828508758487272516890011673152817264532930375271849753953029565056772288541157224455369684271432166976291673103003091213742501577190263467074143472270818964470722796778703967152776793071155375535456724880906656449162157120528178868051863995128802914968943125848805350631085588838128315236007077817033206270388835379807914325834882371088663710505135565815405658448515871991715956590877126717481143169211852388829121014441416441029610844519877731383097499796514517510286578664110898290411933879888657616735173090628673049882598842737961837310774373763316836979514701339434174123271559861182672596436282544930516376869714752894743893507312299138254424687989177405016238851929929437080155204164721705932720337468624224558822204689421374106854249105012495662200229362421415924661781756278779857600593244056695194092593380749332343641300981366467034566011274291042892281612629440740503295300697925189094446083101435967226315463638208600916885034905704391732229224165849431206949921734418155644987271793994048240926573178945093294905167351101506776231836763489791403569721032494943078145295755590079544160776315655732131990246241632721069603527918089295931808847704061127784240541894414413777747645694156196187054753076442450563642463130697790325987316660698099681232921449162598842642247367788746339926461337358313749632404093398310753759815161884088484729309147661113718665357722590539892897804640399757865694726325305023884386954545580384431108184583982580128781550374310596495046753764229690343023135466042093231685290452912525229123277094826521582712248300929074354831950517440700400597738303016205987562294105299656975206430824484936257922181224716706154876053333437241539677508484863275718039866978490902601136393742994666461461379906649069943863573493768122075468823265405584907738595072161815266533247429866489115518804294379149357071940763980035802082703747173420235479503287905982317770725066623013974532826669026779077183498335297379560613053963574580486188593149371065576322962759477582160040646575821579880251434983670782171094649237914597049763010927085551467129971702434510963847246152205336715372699552584110860510527638756786046382104613964685629780976262975123100565829700145946765675705809755676809392405133107941529285188184200623490684699026959308332774678709684967926711094291938377879202663824115530453886328754714388894461235111501096867438944936398929569822992490256166691943931125970767634702099508420516996703923901474910786283657825580086328503915627240035935232711457515480569707093094128895179373445457940753655041819868293860007847048025496792813402518805125554275760060956820957132591696608697918017389587512278650312159635191669684474126477217779048743187852583679427281695619613340050329859269006567977234829914793650803042163544790806642848858732127635564193196620841803252363004518606683805876135212549179787632131242697454260550619773195659179517560110408171055103404157461435500457397410270128776908451086565728558973105430971150312507374504724505202451480909490943416914963551994145377919538734592510285241845266209053750239533692413882436224976468703110323237816560790279167628292233105072791937893196507461454149393320481201507467485511520295188285643472813773799503333331881153665995488701458190917937147056158484059344516477749572892513938250571477838625657959633548461771821416681963395642412267572340204886662767169733198524661091769762629896440789021785528891194242316331066331559018968757779847916107760409421779753795974343948463765811940971471750516856524355942249562072327842620005154279124154572344789412185363370348696412028682537548539424503423946492666320347636655860252184471751711125760705372372040258682130442726247926014269317129447562540478516545831305613791269296602821213725170717785068553329466080751878706807142820225294350083387322945579062319958874554393593943825283915210546950128950471609598925308814499146466739094590377594507602972830756464164713052127673894814128800861291323041015627756054135604849377216454798068857143811733491038406878480105642774550768831014180047335496348188384860092500457826761233021023190279464216113886521855392539528992442686337871257030451774077851469098689583518198247706605424621520099586845029730390226002659757701667893625577329520565170007370164265991071057841819418804074369008657231613625154353598389061729617685344627642439312310597002562608260448879928020404079307289144553778249623052021390488320496164135010388698381556950849819414533675482194053025974787162910394023773929472417866621795654392693844951882085216223910169126142780933580201200913331527310453443296068489823268167902163751211770602050047673105998044348433442415646728203496477854390183953753454806268102022810406453006199566286831398794832187195118308231185304770142815784290461065413126662977881815349954100464375128910316723695827846771318313536240201499994155858867991844490395749654722916566852768572588877590411470451764644882674557768289704371386802085605293526724041093556233601593472898459110664660374913004749795737122263194951105330695620302882550513166943026794940968490973192806996652921598141903229793929306675706594316658213856410827858639337437037761819615900425623512936468916362462525093514253335905906473393409908233613130756488137526122401060501440148520232838567750331104795195299846087318890205127971001072225785916154689001899826490728018446910186967508564389711885571629673415580416738235264569197943930798759521398113056874743558777867388434363169398729645995942862685311918571172271097250808935996726543057987055148788284365891129312923167692622936404554892929282673378061786897115921644869636163494621964590090299204510529472143315487284341257481100597595076490446278189707958487020940645181357984285381380598174709636268814102942418242350714969018680720512313667733186560002067548614174920367471816992886557102429136561307424793882825573655726139784952598512888676318197698062098800306752489584507379387289944614200866315027702825974252949766660575016535267295793127102180061560377124015153687727370108328869779909350913682845146539589211413599421798334313140271729833048012422546627634943402411595475454520059561482917088582076728039879367758071575452584688186543358006255913463793667647557137447496138385626470006321699705232233324682188564107853173412440377414020193169299956473294834107943529594774102993761450178748265602978954096329114877538758083923889485796220466734488971067766769819986086679814283438532411721633611027164657566583743991295491399330012542861554215696585470425195100372990749532052519621309776970354118750239546497895381602867472967163565741161739166802632976398567226255883073762531873977378381333172612681123325928769231501324707388738034970176721178232897309131958762444871499970259186419618513352487912870120093045029813994117680964228767582708852611083810862489781842028566798718152366964284669194258607391939287879101538024242752262728923327802983392115333353645113804527468162902239535121375452936281200460143598482015011200860126445641092179417248249190112954954325704011581332689245695404577176053420224824186885816665186664968133742041002323665830080840674010349963362179583330461891274335662905551276511827205796938109280682265055639243995075345889666240529889481256141597300533124714139068943087847770802395283480931732459796395135801571934321182670282992183559420739893001880944501546513382996517838269284723922357616797664000379143177229383572206127974437093627600049919648931406650820027810267128269146117150380324951587367350657950551526762284072538551860502935360908120736587591625446350294423715451503282669484799219474916318414465027074962412276037624579439195370011490156705072697296567804162669572669869707555944239074433976416182867126104911513055552586982968075978658263085781618969314787264670120406090649342584947720792670877472745441892191720871232659664213309077362335626538504207863993431263881105321890634469992445418462280980562963073745353644644866328210972178736507444413529188681850894005966519475989968783137340047781449576893330988237321174344453675780177429162670899287308271592355238031512871169351268983812004821913009035093429655692673454135273239976049645495023182778385932256682729791786014439613357986181214752036990473017371751952309770396718120625174141591973209876733539286141358749455628927974280241359449341715085323129907136484397397445094155782081871590565508531208870942070051505091014836620708872786198123660781102759535849927426333642129651417031373039496680892678929416261896850130845804939041864560437911400704302844897763894869195058629673735284149607724139958696082264691203107091871260865626965607738020878720765027703106355235853689982622123380902526866245876241568626228495117956933516512620729441798722420152778595934353677569172282377754763371044171631059979755964250637387478062710925711735918869462881267269745512353286087591568141787160234066303638041009121850927220870919115148223587352882975497307949679150705728389473055118731312044147715567892118430662024228294644512528331573339401614677896794437327323830807683032016829864693700539454777129436786854758559803994211222603491130352805493029387079627155013678985920014830708815621076397846030187823429644119188529175825439530483501591576000226713216825096090523507350979273585424988050682673573934856809501781297633632910786943877321895083401487013894482292297507378181202681868250223136861682079921891079906558701987604470806918477950282501721170190877248345059229572768567516532501578874869816752231988303325408636641893047154227570833330484423412195907131761411358295151506747358628905912380644202234844795918931653362433266409153830021738033486265289878705715743879233513413061115887322013241885155637081814691439329567487286011522142547249915571902775276034714123587737403183560986543401174010650704477932522112690478889835709771583657864524924403742744696230766815933038424945638753863102319611878757088939859117071554003398375617613317215801412245594251895784871901879719428522878014184723207490698231887528025805322841518748968811678345099062356824069870388273163497982615807857039223477971101165821977171815837655516081278893145735320073899395806764945250050013211248008141518133376603802518335718434913750972820935628596050251467058425833752022421612531600628651441338725834605724175937639608432398055152619128577151643841558417616549004661194063834080470333052981071024841524130336173108201591929673293994353479617301221049190105876939235321277522178744894262789209390549882916288425956844505336097358501277508590095355887156153481663864392327919095756027806446988054448322978289403408617722798327871171536008280416608376049953321197207192118442626580012069269618462312222504792910199757182171163249996209257266291878121380401033165967199379559180512515682440301478157832580294067072225753830368766640412806068934365519415650957192770798342529984328557085873330012787973548993102492146643251521827360749078723476478791757566316991742871263924274376703758640969190396853299540001321944997650377627012738486297780687854589800057711168575877261612363058280647197201273941144549140220072170632304167377518796217056022488072168755514475253450763712537106267377446518136887495937938576778162350834747230331481884310748430060107661835226614334594671291170529402432525777828735801821544202855309957327656212032140437413849558859787438847510295620630886012038267261403841002002432304481874509371754557626424265311463422746534352785072710795557594614933959827420649286310708512731489659597147861334682414830380412905160742215197882296969608342071582450142671671700381250784489140457326798204791682763510508303992480661466157122769976108092640726209684377033213933266173217270006583156668372434571564611437255987086795654558587271710425023409977158870037769731850118511253658872953819482857564373972043572507591689901249627468901730184583564667008475407190385043183605485606945691661287447564619318639676418946767429132889087688474017118296779787071603599608601687835654234753689793138955088946622390920880942801569828312392031273780008254958842133338474867208596093064680206479487365674523039237579321645626966526908933530922308046336729702184991640680600795345706677159617369171348113999651820221354448438567028409119100883916217047258092403783265176054388392836330015445733683631633441705644912569043716186167366630865995107893977414790604171919077193167146541139472686317971996203850781456855468501662433921582870578460551382985235913517507743962394701879889130644944425725968888787005532042277270947591717290284392224457270361687883461462518475837323832361495680253981101632631349667108169192292309597752079930843513410271842126084881853788590716122527429868970929816542658424618990677424597500347540743402710917998207115004291044816246808815900524458017811003764514028675330039649412873405698006076199011202520505264134111247200132386166789608529349473392887280231796310115164614125837950486413914614261271994528682443066658302038116285768746480001789136950035158634221838150721036296080122383626788628145331438813066918000366903098608709326582239397846066560840386979517128398139798445465921101001496144171129171528939559770040961120155795254283039197453203071873369641756272299130355217870080445210823309084811133493717224717570740795464893745975068485195081928421526763382730048213863026001522874730765702336229687976406088612704031708683768220285156565930122510346375567641230973585643728734182181904382763302294272050063436210111783824484112565771862002124616868293357323690004616846363452499595532689681109125546323391421806791119798623944791270780166014219880986786455675315361142198985400131145405184265375665650056193925210371223171655047700554303960461025834917519134711999579899062148194761554721357306641764753801178635411500454515375199380996890438487148519035758468169269712187961657667356902038021114255740606190773131923541921888867360322761986952573323676103796404089409822316144313966733030087159837379590871482575422259929334173026992365992090271319466063126073205224130138449245268957583964593309975049950420807678782483027216059063393657333962274749182909646576698186442037461796454544878926486223737975263721824868549671209556179803368220444275475153777290511180995029825219624598053517110850705629462563810960538815542549512951593449819404389477837361267460332265635996122019660522256907652548293478161534811941035509606613533417568890078441092632107570282946684776672384985284237299755566554851448256488032527358686316567888155653015665368529762016813924229242682192966868030067383475575385887031681829159508260534077859220146635411881589581710499922502732034871382188107508772078942746775773139894757378096075045583199035290237456019439452676849209685375771667012652159924404185674875646871167342385541089217773702187708260716139254447607896331822978163295355069040551376274494363476401849856841820048098467963465758124427858944545081234907647872759048121244950831290007638175000724251239987727371084329293175803054448247879108476264031300093804594392640533087007267641228897669445451480973145708086716593241935940564625149351201695046406731918130589817865875557723182941297795107785012642316639104965561236395445029083448872333434143682548252791829942972240813698354503060629583514503460481833587744727837586187188876776239870055247620941282335542718620889646165857556381400703654764869701011322604703620249844737280954153886060916078983547513118187830535715721935809879464845722151619353203540989273535225967241168701223694903937385077472990100383178822253676353943600517097804963637452010501678285285928969556167548856377845556744687747000948088715585355879464649024283852324664791239040616069799736105952350146485528797298078800070583543064758167304102161066276546083381194295178194196610854270368536590022232513589359154934374309392440532307006502898925596872940182307210153334590358651761864030448073680174760376254459726439801570053013708937745519333668424272764771094903583919349627018901015370940233691580185235028704000162444840045162256367169112915032084730247574934253212789496274229945233856423682731522743401250423257941443037788072383163278569857301554982135117462915900014977866352887717956064091452943150270424788897059576052774765809700658511473013251890091697865540947580596430343343105098323212368784770458417902085460055294923703634581409962732207756463732939882730105124473175576944573779486023054944150942850049225670479051870154998849663082768847986679419567660959462810826212189363755429732421429306979286207728416274619100768727339275176825554320480222172719559211168581704719270303897861172264632938239935201920647010067517664485615382846230204522670355298172829875368129340659135946667475999002267428221279490053016872805706231171786917183974852105429696407961066513256803306381487193385924002392310251483412515625716238338231434876613368262077284558957484692644520793592759476904002387861664605607230869135562601135755838217992021103466030164533688864080837735859430711055676841962784799118037258753710852969314267248256489433303726148752680805261071828170845617384786145260166791422658143976201571092806628714361666895088238504866112169270720598829478863732060248591330382252481385194625639371871032666556593238403416073477286575242573374856103495324850079421301079432814857689560880566176930848400280994588880038192999067172577772310457874364148259696425974484471019047084261321411043122531612565500459372236987182367742790792917204285427095787948273603707745940800094827893753109025349537307004154956040716439389989867008592498579251497723467589019196238446986271856348096742920460406614740749186320298363971101922308427784032741191639770079311998480388789904361274802931537793251851188400876222813780501349590358540205844364566326882129478637761014810720983014748448898366468189105807803481023940628266107449943066729273133583822744493755897221728219545578815290967671974778833345348069284133110437014784533967997556360783213546704808155937155364452032838392880900892467532890461378679845759116623484260958020154486255775992485879655017633021585467376744588790243276419791416558929169846822098438580097711753105267355144681135577345470041414641976288393729630173524884199790880393593320098275015205159038554670141633462078243636853734464927147364673260256158574594428655414059815896332630618632337553730946426982701766020082674667575455978046274701655678254357938531673183392544687556243383296756529779900412622283830244351782489694108761374838077761931029291669183770954287747181344581667566928072188526967853069815991040239783694255411824365995117506928177984051517888594505913552087352505385247221171801000981628358355511327228033815062688909456014957688725560362312497281623202506448064680695064841124132526907243884790027969290935920315313972676213185750688405269611345017364628505507874939132028614048844283321328557007595336761841009225042984741245290714165430051320827446563119217184503544271828476755985563658452584132211709832966227394318056801159404517479311563023159519278179235188371947719940800591509449727604436481214310802972884365539408205744182900696692291736263788216283945324123990775978018522822366530347968199644860082495162805557872476497644815024808898156949030298887131458022491484948123417831939564412353903306345014774629702979167222615720667266472599221340485493938273368370862657471076641675373492808833077590178876040622924939421286240344424836981773151216755071750099571145702017895775672954018435346445476337450317430095683508536037795344606307146321475486422244604596110947728311678928075174878211506825127078526533264252669635339678927425413516556329719527830903984734507478312625032553883024320027173154467483093323353775970416736897840030591764386102606039721506703666003084722485989887016521789075230024692265479544716653034143087699626320822663968940908902451840673127095054859125975024873286227574434731812085513312860383866759187003813552144482773864597341614305425193322713315329083647202990901428952093550019059928240733081698323998302600714510359574223789031803077958962058874946725510347786971626453555732447589722796427670809773382810025442975957286972023471282239471649108802259426262242281112963241629668289110294076063571293829816185282526590721551678098475083424052025282636144979312115440775546556167391383831584086543520932199747169919921201895385800817349833385604572865594503917012125231654088797076963028384819710891556618182565222364915575170639319149381239646887633688310497062188532306880910944587619789812903371047642765063311282240975725244504057806034845965513986762199982073755405705645093992405299747397067410650092219685577119738837702772220284309156941014500664967259771131122823171571383511235086784540999534863552908608605221942112748404568181464124290351606623719886675388721937494309574110860809075547320451729908787414155154539173321335564699957902019886597066151843828818866486235355657018637359577519927782525283297819491453988453669251338894798614023657191452764882705418484362633426791057431402502504626578545876135661130303858906321167700892097776440339977441898448867770646845874681676046940529179389456268992238639470387494343549235991517678605822650976004022573553405786779478981478470992047467680597392766844648389036436941741028120145561013192220380834556746069942122051038474808347841972437440649143562490876620330707965196311990821353693542017061557192366629661804322674965620115590652048739138595153333506934790471813623314481314164851815264544858440366915141380489486217573970630747589398746624489406129551451061516987530396819906666326062515424611568348082854712665310478103923687527059204961129503487133368906425989858148988808517017080099613817592158426746653233512418237933145012087409015988361352327462916951559616227249439248576939357652335553130671919508118487257740289414689885914292417617460370179317603594246931282048075037020506632312576976232673525183459242218753261818318327929221049094185340950121982561985287401140647341027920825900394898245204984213504698066362574781712630896833820894998248693029378541724004342942873166215163833335051368724790634472940795425275445969688088569349904123031587595158279547703881904766821969125206248583339150156947170807323316987094505768879580048342207980759540917208183738941895657812264817108168577101283754551783285131538404978796748837797087091959736662880245268129787405575966718867253744657063991719758346541768653127771573582173037826993611291753544965468266218041629414008245862707738886986431110707603732661338809318824596290249574526283140874508927612925953515079978756763221072121043611371202860158838070941453212856457091790561117936097814902219459038032880650912708998523544462855830889864247213364537784684483185698244287182218753418401158091500320061042932729729364252883221410577075409844893838203503122555520286277731528359440816139756288402064228880120107637054355194490120064180865021661743902471636552236352255677098732203076394166542728224752733116629436241296900139575954079046349257756711280170754976123099913479155789853281101873237242910507537682352603118961380478120392719980455379486499734826493693283213904448615511792899058396587693666837372689924611121253551541567519418789319289529774196556858841322140886882733073267487727097906232338269341448210430453964164022990673988105664110218181341661305791405784561110133524022060026928922447253375059007313750621657196138748395910104904754184546766696604105489443493145889681061531370480745562341274260362331316097554223582364141496232631676709450126974580377901834372828364708709887709191451657131115601284986682251354172138858880290945325914831093609691384561636738334069141809519824511015452848111151483026270892231625546670074255962608685796375655574169491457908504487389410691417962140370587682743621851237917155553418166442907121904728421932710431815118938182009456053656016636450551673552242742196608275619359396588338264156302225206336020812100678299150142640156421231523250867628327487211242217877828073100482680130373347056491907910158232255646191531221810097019127831931200496133965719240495709720313658748818731301475561735780485002430982420760590741580222222429024548685438335146496184637056939087538586898628120872529468697467057833200176111313979632659432685468112075736624474371744993394093320321443531114600923222688245878882393658048092270907705912409870565749990596349428019195839218967722414708010960566921038216505120686373148499256797198710789165035372121608190194690638411516405902548152537163448252118129793774631123405163540460603686445360720314043330293072751564549203894046579982831961218576816375920104987011908173555791402942979718854573549462552451375020933161057947929272917506238746600204174159924915227416616521670760726753787261666502111675714946003964190513022251501816616756494133535017468940781949764230875584715051540185280562486020311471755239134283605016784889983587151990711887006093833376793844433282145381018434461223907850896502608935470483741418268544692181384183617377520633064012365586798847710317571884433571028759824782035982976531501865528905820223162155098003750171724637523990962148041482475868211781460691889455951765330255813508260437905632426078205912736160788161202589606736965733045311836559219871661763024732305035982323915143994593397726824399796844927446115211902597438233138978901557054693413435534579655176751142365208153182264833933192582890541587879585489415054250340962983163859550758918030719892591723579560595866367992329351826898874356685067002839738375585479691934051298030748254662868676296319342380326921205026366682767295994607626349542916897275012520441951290636172501771704592097403555688982879273327528161171177176298206328499492978296011830053269209808887834045429747893874373038141835474402515380763474218353060493696191918945629511745951967150102389639755305628708386344233091031212054269156248137051923919085039189929216692320735245781472346731431414472182833231630690764444292709348169817224880700225068326273060444540062719767169796057540946110785633993535980260432789682733882294274284092369549007646647412291420316177365330163571632013621467403854086053417662962612275167791223670722340996358609127767726484232247742373399802626400428672150238864363285332851452836154969181452031971337218577722314145728231009923177432741881734297128286665238246325741906742420752104454542457269694040905032938717456522906539953930621062306295407085009630896529829535047283305039467816049426350538942144435234999266571397280546332720970588526345582874844252691813792139411272669512841944477280174921169028628084405761968661910350247058561526122516112679305470287570854794174996842395408990663847042663393792417530723503593321443657839728027341928507395696679237161329575216515641196551787023491501509727636724968064599875823833317029175792272241266467009806389119361642646743048551157858074515510438125119351233589824186008185373321938978901445501002203436483786758697377659608068709094211443449534310396595573559562104926870440883844960529209047054034082291545262976258809038667342881057048088553431050752035731955632164428788938904644223371531830416797260247115181341449460345213180088414203515292429508227792690011699821216209809827568475352262155992669188095707724213846384154200900323998815809792550064835813922338125236536857541396813791995816572347600182300858985109488674638408406932049638586181979960914407920795116692132595551111451567629202145305424551489453458355051298921567915411031929384145920989240580227404279771079344521634114493283572804325037705482871663878502515759313058211711975604739224599564437856173526134247630581747803129339392361282341137569851457214834390023133361560828333875302605143768802472887281172385680170047168968353992107817040417215318098818193740530395501145706319573363804850801226553383196110235188451738675971726048289798415471239170515119522506658071364083043827851260128200047883227398049752630132660404691619664205237977552343351510305033097921676586412328271825016693245599518520482215224106187508056248398216036493630205226488026206044267350040724972873054794959697476791140554800866122353592694499147000268274391198646525132745426623172770302388417147217793658509280097643260604334545849865603542056128784339677740121275198920450752276762591256214327620843373972360980915356159730634203292309922980676683454795595230541235870725130608084655040363103579416497279371388537075097523337707479898211695992460404593704298951944313979149500281306750927549260559899458379816214295180165525158977603303358698442589917534661246423012328128786106055336364963185378265038014198804007109219499322132432315757783436620280514545849288431103277682930999923617918945969606796926222031567591126055749704326395175125316728153968205822709626783624615423185456893087490876459483247911362349029267821028223775122894254591546507783705886958996446248947969502816907275016487495515158184809351136590334740190250079806652883944387034063247452590194539312648618650199130211915723087125158129844366341556858664581871737498889715698586524179646511226472341005833054267067048019457498388207008612406397045125699972732974564663306346034319968371239502317552616568802681742638214196045646494817900133738487353220600074249008821228277398164028183322230805050936842103237444779942386373988829365972935723618760563418680963359656317905276572009406491302495773609455672226016350289435614490203191342509754632188773941041666850662780759639355365475605378258306682691371682149180697541198912669169995877243397520096997463977045606546412356804991777777872884685252142670253457623031600777490481328741539853428449690020324730117167127823431391763352110385964434319322765435937807138807561316422629443104165729508933108372679315825498823380901272750522844333610532981891719269024480920720475352500252554849864795810472049408827006490109909579509802807364679658872061648261631817318146056553837533534397913140510050372543070776971243826663760554834589663307349486466657961282090681051342454202753163847598685461132533545628149867190595088597998141852001217980180474060402873408502148595417059518056448352762999556474393328486023058449643716452255758817703031399502381775981457347559191068056635503107649288505520070922722183792662765144178250571494602018474489040433071623072433134890508147890281406585317092165292289318500176859663609175208286645672758669375531999072996699653694118223963915678701998641317012562540785797761659410061148415379283637980120130779927821660055296574257222565074882658905841234423427735013501517049470663073489599794637810776547690601728750773977883269324230350162370906902948441758980982031800401355049076829335992325002747398748723212193654031863969626266395514474438502832466711415967852440880226634068643831297868145388735261565966373795027539678547124321018254818690659283169927664143322699263877865659630259723049068981871192042753908016998654446960180872858375753318384473473138126340247225968917142113625820154814369025540625904082244332878361832190555457262494051353599244924677412913160424521463907314294151424006712512296668029086435892004518879405696574559478849503112290660512060301895761239943448502938668767445071526752028369956704439621780121750648597890919367986743696040076328694188832220574186078204489510197006038037920975759670048778492694423735149233544366125818725038604607005326959926153813948914277724857997505852614975555051959259399735196204297365248830406506153471119177027868891545465912031902363454813444060342786397146869112240083996716260503591687404397583308404222146695683231504724979984980668209486840070749490330490583254033652162913041415470185520979666457827497849720633535289480315563643239042619874027184729394681927008314349715922131931916974557378916113631012889989682907174015178944562963874474024150868473129856224869689985641374632107551767340094081616814616345750242703475345135194323760941842814654678549828717469717161010680214225111740055284540704265912572954260768071259053378464608501979844298724274567457451798597768867692947202286206134495437831140499187427159941631377025212941191407189525609722461750105574838717999222000953273957921612940388205487890247230280028108359566939598923716673593571994542448833395900867128153103891057765993423541424501975875188054180118458264217369142790046992146494820747776819342054721728669757705600412637586783437047848935617747720140038191903836909328652842033898680478974934252946313682790990241894970872291262652548254296526523365975818542314956706225172074618960143853379426001095100970395870097273072103396675758198909654989942740213263076232751263808425666282014216852826958199792347805857960885633019108730527866552031570484737757045713741524826031568245372223973031956700088965877689035720701713090408402708367695417401431555127857970181001184089560842364614216889493302438750449048617668529214241974661606832868777407189964500742004461263926104212406199719513950065644841345078604487703412557851520236098365023618114355845711151405096587863139846919886504248462817895185680025031145277270086781320460617773978834862247749720274410739697046343523976178857182929815252089298830670027347505635589263461144415156149309624335302916928195437856862378831782985543953648844659685588219664442110822542186695033510401136818555734675249541270981565137416521082809700524087928824795025779487969727049547689346775623131271298634356779942498857389995103645371704322394365907575293439101109979945169388985892425024829032782977151243154450280642692208885208145087847732449686605302521831413568812087305556744445150053537924294728141802363406757947072976169369275484367851857075057744127829132027848261293509029983011402363833741522532413704970362072881668142215155213557213520271193954383797434171508288763536114372782054361840692256642768060551862523847954887056820325768242218688589257366332309366582878229493761601514967417578213962461377447398729199594001834052620254302192807597695333466303679802101574137407735296791701548387272099909398105551433886166590630233238221464032431277444945922112462000740708474454309810769828839793131873153620782587181636038200858912737486711171558161282669185473163888178417117039105200454277553518207771763172680829156344538254502657725768514352193185139241459749056586557362016533695953468249375799058832943635863299678738152192676721605059255365219051343455604244858310987674293353025092970663363737047402920021736995673965066040588473665902721986927245043931859999514202956948917381910887617286968986372259409294781133756333734858288285726439170281583595888480074741509230767983880425914870492170531621815131222578961557221905781772382161657595090338024687662842327904390439786693680148142758793748198111169278998014932075804791530080887608862584064621084850441420992143351862547010691563235948433089311714099529033211260722852741263458815822797078807564982457729758951159872892494544943433810412795169878157318481667401179046373557334433268612685915684456791249654513877266415876676789679704698843693480240381248348648513431519116810944321878061003297833646754845109663018543863552021222390431621449564728697414478990423410980479885082949907760638949261884324267793718906385139476856170832641658482037968214461722213997400854567182596697718293214144415571123497095795705434298420590721542378760586729683711823768953671664061214738592859268527951094035434338581152651927934964624599172048327765814081004293321351249077207988199377334938445627707964848198562034691289411529842179689983028364800395231505296272154260003039506664255319382593705959429721266630195319412926921840108548129973643284636015605599664676674546411149463122763935944254756564112732038715911934416629065768143049242521066751393677046679887066177723183713156348964668280006406741336330275615673817382369223165256009101754978335942782460205626502859957911500136854472009733539204498516510520276101453263223184433384183771381114072796598166723511112593530259355620853878633528086580279077404653733010860676884798888760976480811391074735144457419133429747976818375976379442353556529941200856110277380151289792365908800462243991943655192164750178324305545690012814255060953317967041902741977821420891251444283360862007162968249602084374405734400915717470622486770289256807790087071834495771807390193304405063460860840141495354974544252773591376394958462446963386233614014610835606205910831394698607681516781827217122311019135670248243209524507453931426879977201298021047146064455167413477279210080020162523129826721637582500816775037651255112319038614837768079240792755464828027836096912933710870727303512916384874808170014282006298410141177301642150107377978291941234819908288184176411792949006181899534329877051991130224181549761212590967008996285492259991777077532995554831553561892442497419279166075057809397211633409055924522466920077818101083507083823032338118996746591136785469913909882153202016093158791977277837820079896058510043084482841169991431094582308492130086514054926561729728633055164259760094694228861848401488019346115057824811276110953641472643491172850545402319144715423789035213282800021813170840899391023321253875455113989825469078488049376402793106414595846463476494997122078973550756881464789608604151259839277427363028007389934443892330880903748753141866244053608806702254937532715042822306943980973593694393101128523964137387432601836740043000995506355308282344700110918166921454295201122871119757169299447803562091329105768349272656497495465266363235222272609266774926023821599946069719574582105250908552876976958038993278046107267606641260662047661237971325728249943364003824269454710149975657423389971247614237692635315340701889369534553151497700045132040450485540764242788536086993740899735236099726378646649834316201286284438845669733153434073418528414949383852824403096786991383570546199146762442196563896927689029033714846354681317539862006594642606619656461671942982887317288114462679024381946506387176556539147660190792409360714319009741730778172305354183777501150876268507132311219241390335152582373617041645131405457834447138778213218617847871629718931546944556444766700971097098079006734406094917292894508832771458104153597065870214591925243857850188318817443068590400687830752590389193275505123351910968308404790719484811062626153459181715634379027696570117426010804376649331032471399415791797790429986808322128830692718217201353017189090222806966950500245727030173864985747727499288215989436636431338418752965196629631222671558093184295337595270092514949922502711036560814908666199530716858047454874983236167070799888229807427719731633410251327291154536252925399598224594584171630097190749647937869546732944009059529689716345306998243053930018558606811511047115844945324233285678338249960796986999264125922750638652906057816531751795772697801998340719836022670209421831923860293426010780581829489771471848731559796855246136866392863368700136497633771108706109379235525059614465456326378623874226123491502577360751574776173887136364903044536124386123907663417537969187148890897326724733528909138903791684485677929889247838853285330000912669903776240180505613426038175515003896929367923422883034195058668701065344689503223470189649860756543817028067978997877679320120909475205222818737418144055155502742928967706197355024837756950841369843183877561619827593897135426277724872122427497761243900769642873140529226016299199518898073696297245938775668479931335095961078495998494697987826254232700953110273856693184757745344179607672509178280436076103323183030807036704338103270126587476494215400512017327873854946169807933043682736992645804297742411298552620287128603888318363248840347542984969956536659816553302781627254775409593908727744204452873387058501655135878663907873944715663555760232068428526660307989977385785654681307178420966696970316783823131221447049506474115653153838629594768025330301142615422072989666122655184819448654652076795489849528182182546169005387122940677901257626213866087118189030873906745466954141463610271063969348761526196361813522302888140258749316327231416472694548934412767032916306882874834885495295437788055161303995190799486537251263440771858018704926823498039899995347520494575263972386906224653636930722269898530222513327747831766437937398845673843139053748822077294894590029303716261419371771958675951967636892169120519498024149026193932596434062718876070543552533196997654967945179806208774600294028861714033467344840217800360956788561482273663372454411069064307208505477429077559377938411089396656522881515633085516798900799437855476854566994026897605750018963657125997409351858371506929201256199992728110261834272035138397701053923135020147239000554103754214891490254964999074490455433668363138107220615754545457935511826325912781132553881870930685599882556696534289951281680133852401246360275251893363787633151216381370645613240672245395026932843733356356133891263028235021333108464799954130442237304639672772914579149069050658412484508471287746829171257467134902458901078473116575622961583213170789313810075451484279005853579819078536879666738969089934568104706794322416980261630489535464286771208540543351822957627002285968824650230105983721745257961985325197666761854589110613771174006088909971012253233321566777994774045928190296534602977607174620245601613556992280248613975124166388779085122031004876363377413624604017581010230261772522333658544233321173859544088633853197225904329055582605946404512280226866677317902004385205852034197435531701618485233947618057981661602765632878369426259486570428755897879265168804494939652749636327569890931260065406449226921497215685071263420955121547280083411035049418718295922247740662615628629204506987462053054194807402736111708396425969038659749960715531716646879757411041191627417107573667022377317013472597958914661602156168770185919110051565118459141978142264745394111945091185664528289132607523279243227910116701229313740781605572281029837682099911376063865752952241430044956224582612906511989851506457192847225004849178344538189269938131253097893088965717265979086432878496669925733281004582871819305217230097313851437321216030438271886876704834279003578970003444419074709992413179000021853912622894708836578291911587054198606692323830298459522927388906114541939177854763651066583644866563363612316962862470286636127289575161641374323602971878308887763353176110725833956839888315427571193537012950974883453523794896489813659339500159992609644923834926083720286520677516216958777533022783349984053329529093825056634521227553757247624735292448958436008942021460426655532845767565157633702376829906161070535207552775270795630239763808625280866317452716643539707179603212455228868009887848081157731984834507643694550568832074552083275916472558472513883058904507061149421510155834109032695537876647122019848629690789090012136293994500020196889243355296755815121420024075196399899066853339687823837953564425520401301745944979147024649815700898073796096307529165936767294604861971621071084052682256360535215798804476727888766403854797499513004112435921929647182933373893542007629652967457866307207109251693677237200665691155858064161739248704126543322383877354036256480582773102464670512013186892002574697024435014427361288739283062282689301019956799540903044302069217481029794259296474948571812447364093214608426109497727132723327470724514581058981538367359310086850445327589013211633531361796649158534647646324911288203176626959824417460237664788015232209157492247707814137482388557292372500405213610627875440190946712098445906533807261122910596096867834391258846031512648666766015754093864225877003267663204221609874717993483635025864648570929084829407983426318993100717910152997174028630495404326377077984600730083891247182545789899339839560229590359857746543940559374938088932251524126221015155414471488167600692656565936982518607196126750799056718779924406638359491090839778739115499101448932473720062983973446640689407004873100917566234476413078285926255704371295339555307136906951783757268952846634032231014261380355241712983645019164333909194029417489398122021122299552747553877111465770156119752126767661759807130952452056844249747934533779547446038732475760749903879801960602581159681407905016943808320319407410470707072005105021059185389155225492326756996963927873319276338707782639450402568092680985990300379420315506537663328303960892028055793567505405379841977671721553666446544958073378034295578940707493474805290830628002913492354765385177396392369737392584528188117033531357764619206491112069306916457121397160296797010192736907922153427044793434669478175591019060584648399010431035271163824134436875300166231498089733717208863826080295562932890515160058576414058013155145562997862256951510566017714703177948694678142439283811204954993985710249839398839011272745943656925320535862616576767199609357091795701330521883432685432034230199399682466930827407672112427568065864471414198654739880204576883177175415753038836093075010286420973121595551484259219055893396589803739695491494551786887030438520302392366083477604770713078651283375156437018999294790393819815568559333565094220532596946764712021428334307622474815292740547963774503001820209439814254353618517267827270805577545756782900213792543242456035867363202563819496215631755391412922474732200382240476970031843624255293812229122745354530186541124802024418422756719182517787495207847143482952085104721598203042487685618329825760474013425909973609952342325158341428056590567554319494906170662937004807347378795108225641586640662459449890607025424286613812240722333711377447869160114196663383944990708001148868805566862298850845210631988798875267034705928961630930779084188585998948638052628142988324086846586433658270862069661768487508443926699602181970440789102341745085971750100993818265096250590735648286205244340792061648994754435022613562328050682891300362048387291583856891292715460368466295479564246753906356483202303965409058124461664718055676413691489152487638207948939178839318745778834516410935889536994448135744982325396609631918108612963140618805265921267090805938347268241386278716546947922104194531688427622284096454335768384700227611309277530477721544231892352637277916569789217214319681541419541297235921913646129651956476588964784766503790706433707158534374748458525844018798774717460318064397544939753995779100485159459022586076012122838372804671181701727218568598672850726271150817002263968061707260175902174545024205712674807169394111702190900745807720484117659264456308484966648567628907481831506095159616974992022952627192095300413733307084378484506429167175408230604450164812508089981315928960123398705599521499043491485303949202022040711663668424105811229412847750684304673273442123654171906759386527886249872184882097348543420295070837420034410341612817637302423744691120334861030758052403626461902021139658116689962975101480303711088136553850255806167596610448293152795175311833161879930019492111091414162363484170607604901854514213256471950114253745569435335871737760780500140149572961691917965593062247547768380512648493887365274665267207968964933799939608541219150281046620789032394729889929067785175637140600410264997990162283427415827697468398912113068423464817626156154578785701998672750053393280637432775174814873376493074726042243155276574546929831293927125928521566784482641176895920227173822346391252500438479032466613810246182461526939272663527333628140114661125897115688469920100181686413641841702280275888966765250915499041258800249531611924423658482030220963108779613271954952320607468092997271498760980873808603113842734185240913075944534595015638516765938289971269143584320493807255474671953536560167631380757916219010850123701564062057972640191641108819408075684039866107869954333428475618792143733973650637418869579947539623189380287535837805006177706945148075304773109675696802357405106939147361623617031258994841676647800918301623151258491771806924767026223050664491935340703627455299588647440082746058417327664668691785928671251197286478882735156894402279945001542016102288760476817453802415897099105175020288812811252141375507002940176682725503667818970084653153237262321357765395000530827655816330996920488317020892181700708461858437666648473310484849246415315652992806852217746579511339667468190912251354218248520750246340193408455203364825396417109590615288359390008824140880475686057174168999619820124882215413267986444841736857775322219137265668219140549663256391353962273846067004042691400783532204113060078794702038870946674835392650731669673509428324401317212509722467067655004812576883997885706157045086459031757478730166799929742458746703125489407774995462176279269219224745196517341867085263063706518550179959414882485798259644661320985629820925351582022681169442333954246271494527175562405268130112934133630183589087958875456847948128729437310568105303759541537763900315326404377220716452137790619054080847994041430758284478298231009759944139529302560910516871063429060265432361812863300185621264220337964197460976178293767934511599763586326263127298811420475321614979937640918924353404900055656526552673157220776728938575335042765570825944956296961221074514131419523831267092301019728350937638584573108844556225272156763085067303881867613028601190354576043974270066075233545485139587532833776500716757137192622050656430299339411975785363864246904466628444318124964306557676819898707082065181865870592989271979748558848713228165868646191926502805255939684330535076132235125630100849243370699634627666489939193931757279853996626780330606209125189947734072984938204855799043497024375495320671019828051644254630491940729232547342112221834745874535283773865796094411722194008153007925025268949381492192025620063228140271503585921385950813383315434687621036162779590596313178642198257549980125646627449502770723811169866328320384633851187804783454845923666071543406263200475014469367657534443555955482184945734510680953114589118109796590035492831370507670130657969144257929629944420041629005203029758363905737198279545720347204361101982950762295709940863145353794710714105829520716496385484047971295230158528382712774124362259956445230795362987922265058212845173800029543870991528447264870822675873336722142604825135406039290664874538429239470422454033133206379691431681717195764232447427199426990557006316057684633956195755281028595798718294173415718587269741740936324154994054577537641424568845515706248298113795513091735612366071350333795976935437497291430164273595896525580132539327155705122940821743766242375365762790364554548323244721673040596492198417696891706246839221333321318395446173592407399134403033182162046156776570325605713027605832083546282025016415248789103211903356601646181544152058224343382205454385253409790402104460093879136123547616169022873381489375342084301343939055887611976943339309509668042225335509207915587465513867201517234580208964506060575227938673357627938863448031209402983105347825716401359606784491241196560877616026890028356930489776970386543185690936353772632709064637651459010724308716645368399393834009369207174952420114889633890565094250847099958730994724265148404646199380002657087771285627694055118986228184529494038679931937543667902526004105216623240864356396200694360101390988655050717821643642487366170132339846667982404018476832656103761961069394361086242812862507301736111707502144999183054092734084417726167151744492735651538661270075340363620130164957215017377923076709756070874950651307486333505860827171428254627505734133724871400731872133635067774594366309530742929996952028434200861887759759149718736119673690249251248519910088362460216831932334025365788548176695724134514516191061146575399553577075663852117106037108133219646552819317753569761780750806406110417838304052416630052450637142884296335861719114495893794717811684733813675296978178840876902186554837626257021602924545066894260396278728397123572540656276056948718673528154133784754981274118390509847304315397257231825456173794785750352101183956008328461258313946583072130016989016333237418072003922419218500027698671473776120178238033588539650035768365881332254746391944531981359548480203906325896696138176992841689610734910831922565824792229486116976304272907271335088121944326458191799417460379193175878539642751309416815888615399616345156633701698543518814052785603084431156735085252752090003267720831745860604818319660254806080060820897550634072478221756600983796184079668424012528585898562614850412390880981111790226646940644009700868644212825943418326446265289608032123656186620288365103476258379438454276221744973213671058634383408225691906036397178846004102681468523462885610805221463253854511944361723376858618611780640501639636753477908721296900699937361736470758870014961582970314796368343762446992702703654818404115393460373688231189997063610017292851029791369831085958855005265217465797425204083784692776302426695381314181656240758995360331408382810002900126270373790332058356996743608330865401161126147190660396866618810211412589027190484832068981994916650334155190273384158536820153677758713819375432590162109391591097106168837493116044026136879374422787747071726746443277359053968708274007362688318718060439530765147943278628604494468980673451509293711867452336607333056341780862311431674865485571346464561927980948730850737701467847967639165859607632135849947278039523588877516984080420648446209759151898671492814115995990131842630442332321808547251763171705160236347468416816414208756381288840770456416840119779113657063491557696020295710113681348821285890037387356323485958247507682597037968395586616026210842015240846462090104486104183455791090359825089329837681308068540076483419554014497907034636475209437521953248777948698668202856426878232862886365081636531007428483554406795201403949043767898938161511134324029280031507317932573662510752379634365312765528581991393438115870013298892982208212152415926820476306260267695402941210163858084239468708789886728140649114872210358940208647324230351333544403496999292992807746957875386612434165701048292560235585552637413932472900567338314025092388980225927392087566887531505397363055758216331791142698754239071671393899443390982977271989023096965587507947244899401602320114871607261165554779317947127036383145649178678782493886257640798800298429270575451253274822928118803280989961571103861767061102242927944357496541755697909867745045343599809952228403075184237138549101190387378546232822316506662724098061669483650009073018827545509394067332808328263943659394513538921159626552490185461372493220689491194042787404416438862515059507227038177617100998431192618091747903262849923336923831804452832170619876133806941479998905478879732518343747747872464811354906283772041610331949394206174525052404028192680639901526800261609566563008348828498951604415968274250505878547270781341926641606249761679017430283180683499721945462061851858697802576010586783144653476950503018574778876129115495209771112628404961001886174371922808623906640777015150798642540454500414492648827008049350825949873830533885652860853868686356479649783596215163568064408077058986880159231909960221211994478634533487413441964580205475747607671878300631990704351269798156242785999913244449682313612258412326005567920083412819400277829656351844073199653300648731054540670411073070095689783059409331615256972598829599476006273428164339752325527598569643309856895026908720933368607792404509961050149974826642610185130137447825101775159196885495531649437207440908236391359420153162963180702094865417090763380516059247930064453938232702665548120235564701317434538088702159947619296568421831263450592538890636643946488690599564597405890453908967476191520885691612358950960823462155017883378909244893480203298780887842730594795174474923040699468393887467257961356170852301121800422162021884157478326786317731792536140090622244873180752035963053354482916613538730648849737251261344382074324234259343265505641488389181390467554369787535978873626168236759425086148224825282901403773692294794348047612542773986402041931316531055461121668901563643318959902439779907431467767004431195983727770101836411047500856951769446346243708471065814259170422261957907522530634877112838641725060895757232332880504043991653019389166850456731198750372666158767201344908349900057441744359167232800626208087388734788738209366186650087309648572248185551820897497940672292682960263064826692037586651393308608474788985509396916311279746616063797381071265927136010744983687425159020817984234467145158400327349193734184466369917391077282038349840106142831494601483823356503599553842961204720955808851953680358056703246054488759737740979383247517188545838091273528270895660928671257146215333309470769048381073472618252037147415603658306800711805829370229870880485322444623187105621476262848221736628124270107558743032822158577371082585385607261662716809211701417157016948650870716839075778583848670734742553417741639097529651733725251460852300129925351587297634102737533295984386541615824125365421011820244604318916772575663547782452818508075286134239551485067187902814330795783734920988826871164773102910118291935117179426043390643108996624270346000909198592077144164877517514562435910088066913884695807735367343189343082294285631534472596126038322191274974678583870205868694243136070065420633954491310788160632268362100551437494673936018194313963952578035516167532779422665937532528310359532200669128634597751625102517737393983380811719591994956495916475448676571179538890200564124833366773676360279623168749409476910878100843331858159272773025487116793566807770210854038865748970353378563976788526692851670745889943169138567887627076163185826083711759187272937868991832894937634479332335393920719164909048628369028236464780121202357951703029025352209226579887814870060899364228543618884532101906699246184477367613517093610088129812091868648105210350724225110171978422586138395776526369078689953497228600460477741415399710224054110926400367606856762292730918206872368248494355584484449618018663974432466497265659635587102315572700132101741110658523291808690797848500923983121590147120594704080332728901733291801422701430002713117746145642905775706633371398666512625212104526481655997272436150758498210895603148664641499393901457736750802719682694811097151214184637524296542216917999656381788677909837989766287305093914242276786160751893479930421014899800159214389176428078827038890200430397413806080063127396606637444199253343028945113596803711178008239790131917416727377155864342981939956780852272039000107977124135263084203417372212000227328591103665172858422694938956046341307056958842344523770959052369712521564750078435010015535621553548892497800219513470252167632051980272487273806580097900205068327019955118470727099148443300240095563633894148979814770078225358828119987196211237342717657657614539299498964573487850862141113176609781039124264832512354816571225296158160235145517359337528296103572235291184861248034628365483624574711390336476478949808664794070189034871881299991235201236719719312633327736047840102294254777414503917580015746793634966647753192041707244765058536430760879295583544222991135636973898840933300714863394925873609978925844884587100778193093340760959830783547036112772367332605801161105892179134709919523972333702832116989701897886173053574518766404032466133294498098590761705905817172853407087641363147354346003464313664562417734984721205445471721692101461268644779809406088341799600095664203484794714153165930274421434204258555983701752438936726792341563629729262468219866991608577217366359835011771833525212443891614392229531073123260638715837003797036538830934711228922614665653587892722884454670875138282063645579814120334179038334681956602027286985089515836555247826372560758913863063143218191143390778248313901460540880275509831092183796019294626026927987354065046429103508844576431423122465213705638108358582335485889435479288074890018385346823336235405116708128332425602025631885300467483709901121856048983660952453491689398097941927292182372227606495434042091131804463797779045573291474957697501010956325299927146530910888645330829532728160126491441865628718309605769253171828916904764224728840250957763466074799184487798198436556117542414216425094201501304281367783694678780832833645542281994247433128344752981196114585005524385041641823374117056030827083194989488425384283562069663121738863517255508467389137087822886960676092252701547729188553899081635240437824768467800485637244263114855873540780435008827069386037235962636499006491000599755167345036511538663837288699372812146270240459590639150270703511710335482146912742169462722443567338996297653246071303082251134902616354100388784141033449841115316786077972434825131342080276130703134491287196732091336477278433565226346715026739695768699957906093346561324497515594382378909076408931048487956354364422557956843500728922855411898383086717341745688916122447849348133500703692870030916273930052429045333419951122914329154505527868494196425927757534735887491063378159750018121666549476402952872368177348475263759975413976313795317792953936456377493499363739254317047610731642389080968631691783954356812700452867467043947573930221250964356448456982845136250692914634302516858556216706724166542115137415448946637751676095356752722983619359627150453942514410251126895773659541132904004012916427819968920370674899374713254691500832507408748094980976667410554630439515277591069128575178407076186196844901579184816174486222831909487125491366318673956572892354640271437047145478220597819466423838026248306413837368589765962095638046742308710983583518599106579860578880192740531795223296457600257076704649299264268870651679848749053290559156088685390828349120542405189186285141105555047670240505695260715175172005689947057711904138881757743819512482005613012206088928282183380493302836596007530449883670998555385804930146553331738810080808616614880827667627700201743124158011306067135449659861161294797447251264612443784813464859599503710214807876579017151672661460439822733874297950866364070699961286494368222264782279581285827425192114939485252261800063183295676157471013579295262570517697421013133065348097000813718365565269593576884457128514675976976976563682860007194261455524573940211215323600349881191087300306187615582080019591124748271736019357588717535249237828431587598496717945885279467921120380767609211628171883981368996013169463955097882083112217409368042716000155466603575379750887039826020704994410439774868405870627803150754781813056415225019805811937003197416114771288899978135247842855703827630122778608842019366567494011349252360407859495835700556404084482323462098472319362217931048533763329712806267390259434951088337339799289958974458266833567041397243761809179823868705750449969728862517405462224770215427486180729480177349144149568519093611641579289376039642155865424049593525745368014819359592270776121994575904068807587915000445832296127517425357380715124945285743008151573416872053654655817813604617027042193555289050170833703880754337716293120604607595164620869959383064287711102996163948081368679874965604540184250538949617507811221141511416071634093539957600800672361294860190853053286796137047228718579490919742294584385067750553161506828018202620359384396303315645601910297266765602616121354462832196958599171007740640440632868585957779913783725436932329813710383746235526657718050789978434269355697728928411889377132542344856039062151304350250433034255999263108939551121961288538165327068510496508534030467162389849908177965653024300927347849153212689928659746585628712359295668034408670719366319977028287343577273465609056127074008447195377377871619364087929673798473514664274479650132922230907576833652499618640549074368315965496671354981015272059897857392700156045127413482848519384869599939723284332691410006109403496872739584592464263178240816459367595604313541960323290560213431266822767718870012430844124709543557998419254596598208612588420990378535817638382632755481063941324192737744395370961515637860064108890679225944634381370059816938767049055684119891610448503315422613260689589020884943599168219932082598014714469056889229817125238551264575856566381115877667586322864654682762248807856350068656828199447145535452902749506277745835020593764458804709703454165662329915355322318288834918927186650073199914248306274886997301310075411172374656470496200645763744872361989606970110032470595793778235278334968438936759533659092079339456524131302396444945659977588841572650731119095685966942371831353944320093086449185281137394327369770795467763344063101449292307400269922781594337087953035874649007108159863871925919816557552724252538585046597525215794096563901557325380231993091912138161094150197828849048581957100024333748778721154784079193150606501320959546731231170711688077178428798962355657578811468593680564265255368147242563739178725465869824155737282213037308486574281196720936561622040158225588091825877404566032804643699320468479198958658729424379411800283530430589947140135066891978080919163418672759686308879240809050909876098184673563446954466045577378482230987380082190014969593684152665830969402871720243309372090793613102676127117472203829605636467844230768790642978794278985419970089640671402484115788871754777743636823358456227923227578627748333469610505347453212798227023109958428905696163680001517388312268525999110044218365963114942831202215603357200139973201190491923762897044645803625993212964097756114330204780742729557398189863760419122488830857725446309629228949803401005293904190758848492454312126958556087323424853914743165157354243422452398558178421077660657081810461411281245069209765100965737242087859573428186941838071987919230250277465533433737217734937609863402130631989887592983150411819069499729416825584171352817052830562463210286171614210283553247099062352656395688173337387355058367498636164318052759123456092112562636354810551851106957798204910623557995296547751705559987823836647811964913881970446830851686507063412785703619660049746843212887813204484946269465902934503777332124574753940197431846707955269516979497289946795673031001150073440690719240843558392955868830095820584403595190905204033330645909640774874309315511530933729337078749807934732999943888431354052361933475224290163086041737918988127238531938228295209597788954275579705381609874190729009750839341121891038467551818355159187949652464879780728835910816510051668565206212163286768406000588467152193185843267560193609267252878699738966919656991351223707029434702346129586254561470776324055388420465607755772791042903480865736338281511247556825511485099069726561827224523900102875464563332588564212205607512055014370412420577773736555056923664524305259661229528743801357361036349668209423434104926030406660279514889863553970106947018416197543493244320233098137500844881655065502442816570914648260432440351524112541825968026730854671490440343837551386850866582084449831877342607218159600416575976811989891339726945603815928014748409256279134438919975594587709233266530006416810206800091544266918443205998732206234082571115735784106672907703877107765264658925899533443271348112286811556795068983098298985244727908513508797648460184686352159145802360769736823559989739467750362288941301788021397306146213681969590229496939067590432887429130906469220908925130786961292654877748528523084433465330066573748017000983076015016702184503734880816043586699164121504752451771530799639422042609036625913909990289252948040935222852484694995125974581365025396889494934080909422463948008850047195955628430869464124350152566806045668712831308082448428170987835376849319795488803756202717907260277824258749595122885394113610359125332813514748137598698977412434221216195546623018145445327230774136620160850886672196123228303130157310506804569904681552998106587393529382673326136877841656345418785055429508599417244153346528573769895274859143947234785944154806156941506727895285145133099036283247807192070385987697205652918608159520975112338862126706191969654181474508410106036706584182189203875285782335754445107859755186558682083085133612337105924549126888020462949612459170318891311130327740558959621465740157826260073353916036982274794972189443271312004458129478021635430971657170648384674083433841930613527417891260957992991911145687245310128419682471926512836096833419665634024092429750262569742442072350735603164819361362913275679184873537717656967035134094612765014514475599776853152290269330402336933170999128242136041642892619604897932366884024318910849405030478569942022567736554963749030599972538933975548421358641846988775050413070688586682680324523860131467992053583569185485662101490572769279291454531251116719832014838550216317248046442056928644985699768279802418774774626156703990917333756939996128275086019213887447947200059534693597887030510124980371757955750056431301797069493821312499849025732154777976633013275834348365165457314428346819837307180007376419779452328502305352139865294291085984629604953427294622285939855779407548109408233688017240027728830027440210549787167243540134928824032085820822119023026974742458601955223064442444334343534849118030649141770158935921840867342513131293458562271674919753545934340218687919900022169188569138711493296969996489982472647153486673824583792198646115039776801476257111642049943961268398837112856339448551369302436378574586359583601870424910813867417281889269644276985374337848856047754579284550147161600315012917527866817065111484502467257350478932137978270345488226582281117871494284900852937391052488485960880196527045055765100318658593751269487876179422421246642095528900820172058692835245175507111926647445165962365400842474894807784202575492024458906996704890412145593829144071868853469387748486167011752904606355970016225957686999950904593670156519190212622024856569503063412164547340429787407562369923671015694205619953743602573921053080136065014177807830122855114837713203185123401514728899788317563480327953458100718498171225294483771698113008215796410426815442434133218912930400686267595284807012726669582673597226885243040928327461169690116578923864575520688622561989952448208526580047318305138603873640027662647958035729473073340616839806318520875978672412270777422799949223065441853832344603355761393625424264327022471509260036657729471097489566313171681167251679743709258970736591737654251729751878420074803983664389763939493466663132607248912002412466020955805748729065411613528448964154790339598075380512981234677141229755884811676834265602967328202506836282233276643167207564749273219012688359438733028258613641638228093055091172230960896236668518311698845633947707967281445903290273542894582172719325852236908528705195261610193075369882188924532795151691601390720848346644187237383963704547616903920908181475737242680462028046770862767652011007910485663502492304153166628816181665196729671796033880849304885883483316704763107168129448683997830780698578824003854058714675309802518493632213456472267345797907087961460182197126092179008007812301854050367394847608795223480320654768377131916794023150705492243405460688356918836094932273417978736218065266328576637025349373071936114990036040970791550859826667012212985301666424830767254311255790826433253460609403616772790812328544376280864461768193941575410758748683789271462467288833228923110340790239822180589385439900147359248156974591009098778799070545097505282394874800883877491048065921709195049957376378648958618151408066338771375716633183490124908285223573665151078400801738339712783355809503111124001138618061396843459852431838846793946549887647415768400077354856775242070958873184515306479772009244964830565944305293117914157044505470042963717645015401393319233550039990672556648147340233656498739401550082579054884049719500518850904110696558741141510259674945043099500302542071357138757986943514018611303264860649654226129258379659973797896220217234534401875868514335162380068401019016667747460553853401929457967835992508687018801126670388609189325713137069631788142298253615449590827640077310838363811966910256783688856636312519879073226686920675854490534392620789709556952729905159191706524358511158806943637751886082029292179353761716795512178448570039638067438381224219477822205377931329114683719413648253021950348272509312768477939783019765856597443432006936385271805232586071473464561989053763977936253817794197334388422402081458611822427868966857250627394663394256225415308841271516980697088020506489110277725415862247220616077791121870705749086622197528911005421824231597102585923920547969650592274989756109539383739554640194695257280829800784630490508735683765611150992269218664983647983925080125164089412936181161410601441749568619735358193346708017949112138250361443214771646509031226460280901827251674855584619137573232485576402438531837358222560845322429041275411549337735410050784552369437776823104103412172444219349686841391188447909134503927865585844941095567393247433588238943659511000913612298369064499710220475658381931676587967335794332487153486182331301425412856770688923576721986086702269642135467241533424397114775213841341098910425329088394916447574835070432173498589695018926458640048643116928765761384020471470593197076807675213525761961182465183129840139285718612102264505244368325811109256779684584049362464849360489810424614085408536034759500820405737046171392060704577844716063052283683303206789618139637069268347395346099909728536933058527977774184287127290129810033900339162441654230181292283572796064035661188137348484284298748740711478913413715412150185907560013836445871337867918733125070015654261997988669023293706992361292440710581053227223031810775084857865980203306264994252476910361803194139287872028592523138894594612797902415049964492319200795784394556218041045454482737565995598186730253905997329228793507702808354907957296520623261804976386682231995643664819759071910046406228243320493798999747275039728301472758086894169183479375265302404290873607266306167375757716478329701319246015254835416147437561259954342072683752264922261003462304727493241965144626307052270004218148151397681624555325553612685122118558308860767452504229748848746954236127260388433531797409043574796790885123897028405175021847442485476161437325389063611438096957730301942547040378240132872195186326871614015500330957189093004494828885280291937963834140522888440542209171988575458014327557373957901079116430355592979519529153813515253184665029292087253363387750265622272245948392352009626110939548309212490012903993895320063660719516465686280811472200418166659578858938981991588390192493025291572703147826917091033805315099149810074293900826413952665688059390513626073184005476732066243113471205453922402506904631565461229275224298780001256108919248398101110152255706246779815255397155827023036236400763853821737363222845876077595106910021308622857638466456812034823220855435586812511965027885700243623377921019537486446328631162601569250665625920357578317611451291964371044105479661988162394379341252550831130779378368605624001864782122148973286266984444622390325372298587877087018273010878118912110297046247791946474625188800987143858653074815838189575811566770024686157094320810762534257539600500142618185630796390231502159259051550200261728068846718868384064363130161623785550517890547572855382174805948175433252502806403737501461197967012792721306110576876779965910154817793774455895775886591826938038257145229976767437256251058204910154806463221235476195103277518159081799402505946158978420990804510180361204072032080555527328124517877172501258180061713721680498602944517239202268611385667902357045069574882537548762644232099262833862491888491011034712626708608009244038981325830671701876116241735116137030274303723969224744281403215016246642742184307146714104215550138499409144885176096027700582874813016429337461436012997387930603237585152968671109458821632409338181198376268421242274803920676811716168221458165784718991016895314830488000700198528488389759696169874243433231989759675523605765046891110161892184266266824148175108036575137453001264233975072098796769677398065660120503699500509755826273903701398467593014634597197369097444722560932773713002448663803848237472840085875157776356272518282600165067432546691634733778323442023781696630601939570189587842388167703772175037316646341541522727029550465585916288006643200276740883790316968123727608736106604608449029130014763612420340262735225338464953038180364918559270228964618100823336332617439455095328803950467192751754895507652560150114987797681437225985769318396820598854822353827764783805884135420765969133876162073903651147650636580318972417222584747817364629126418864585918132469633703007821479210084679950516934797061002420386223617835454924189702445730235010691031321146143158182817747550000762551177684739655096189656451029488888662986678161835059531296056147513661665130185037430604681358532820741824564037900930777765034742386435251088568140131597286863688028901351449953430244743119642479449771145147958211676210259763351851965735852094802821069204454540905147655230093941613365405929176767968378969481126701661273913412782625674846597853681660742040435867920575928562746179616989881951583082537129499238849075377641414678179886983097187776254557635589452063146019506267909488608100471295188579459910851859635831364389454622573943679352650075452313985096696556542194914413292334008849470437380386133040512577015762995134214076748223742759137925984168227329711857976234183568777257596647674119673282061816290096433260300707945933351103252728632186700751507576342907573768033213119488019743433232366572775605266892563798102568970115619168325545526176176527659384204198462849262852896571662022508891335515207935450433583914890032941290512828134904844549826673138313491821099888445095882968665322748442357038686527767092652311221536500321439007353425883573128350548397667238846448305701036712368789535362610650589583251709931905817433579442269727598456636515732519446566573221235449935304947171058397355478688041360890803826150347679627016046193465320693106448381665688027441440042969807109419570685447952264234481320096205325790554916538534638325509926354534565150418322878750693709923168135028440070013672921522191455762306874540037212240447013920312675810150836161316224845066789748157190615455745100626508046849593190519847263349139375291581444064417354343144328794399367624609522830592534484130272310403313813806842748162414911232960105470091272567180084342652705444592530746041446250990673930742652497924082046019048774844275680776922956055877657124275860647886339218624418136237827513946292032918187421171573670263003688426823478212580294838243354112052423532224294954808283309771240333821504552011922692984641566258092363704519596558371317329145893303388521719741797575470118767369729410264146167464224624794351818151736046856899966864204602534004997585070650887177957374415281358001703084986494974610274114339753178822098370524465034879645047781793387742499043286116604928254970286174277957103436430163126231368218303871367370236046066492611667869069224871119064418271182301352516628625736052450421774599940052140042424641959155059941364163259869745450157363457222349873238894630601290219795988715069908462934293395970676026775523739790570924830493417318013748142173850794903675137848947694941927912567372810924512645029552231957545961327781835001045797952912996987143584475974847779288365185032654722565529851895151273604306118135441504333391645667466890528654941176809427058577494594609759985562839110955045589915571256576349896369201509458801720369857554753096340090999993208533143412221323118988521545691397008549416714957351316895977316253393228090322781919580441780602761422838836364442136693931147071862500067117990452181603108389272427284702022236077570943683527744060132821755448665858441671916575439453284478211838055954724744782716450156173972446551473747391301466087021254885329857108410551182273876345277394066524777766462614647302665175035941289246574934121813262571311937294404817000738155763334090385766882590249089259963146653354203806873207326855088628184425852723617464714590252684561815806071532983327212344917905874745070538404244501414245200141677378931660574496907497222989788291388807468765221588887853313199982093116972715250272079750245262277000264527291088243859900401562748112529425156523223321640882663923398227384097303684793049070323703019968885471463141296847953299871297230892845665074037202757939258180599119627890679416909872456080260611662747105156874679594325561843033846690500581944745973233151913941047558045653223751810068460359064285373473434034652664707375313647932995450842288058459571263238792203511600409395905465459404280037014124622956692627806983005208850631771429153801564908370230481119037228637954550553345927441602020415300510132227097377802472212213993649894830602357736366249790185518444259190182054192595623735160323943929725046108955292116543399215922645222210412976684962536184859399183650086156505536094972037446904505407148719440642222250653393717711480704519157640443643707089326208002440785269460610647032365856146790747276083532490062109734305291024979876763600919071663703785954491254420372398190409705181080618364683293793341768069254685507403235895189937778087443205592686934134939762094595758855340767997720657235393780027082031103467051970294340518331335045680893719247309688436057012352747007856655129584148464825885090647630906615097425684350949332995324400174151187120415862667387319066770761025816265478087641955925825412902555872171544283233269913198027783022489597026065631695206304691408254285553552663881950305018657615210275936485008902690426006756984580137313815966223002739071233493965886077009772987549440905667632770076465589385523287492638382094702590172474654406253661928883728477743929818224515858735188506045594838343510755386754588965667299044914955023648682869167422387022691589722423169607864039522189659055769746330976079040509572611371124530662278568004693718148889163762626288684588141395650707469156464324353043395395296903774781505933520028330754211461527043942983421327993709258965944020956634845802688394690942291122563589210250606796552174827237554230552376616006968837345938670288000469374615908908933883795558249609739736130759835548622260818943343136186189549126676427164230473748406677442603081560811986457037059132549548516267882493330712060565976918112864293015766248414421899567128028444647552981181430099116015244349762097496587778247422044174599406040309017267130349669064178977073128567225410821940005022023278074033812349724960773923953578301193546545794195050473561303028751668639989383726034641856990486915079643252213493897222380557597635943101224625283453790613395555139093607376295846413802541942151219502924456747458787385132685222145026048093573279260389247377534096812607579843537000327381553389877642426286477820482771527080448460592095706647838103121077697445748580062509951135725006730976580310494613793976069599365606276906602673531325699062363736039341461461928571363785727327622590016867855921100093927931203949471032516380577571554147763295337368431247579953050950787177665399580347500941958903109707416412158239506127359988757126086960444486337555734075917743128501884825325285458310949276991683487854504893629367890587946944545224524245718175014249437055120460676786108867654721545420188695930407103712319155496578768489161417048920606296751477625008077513740665023818553531746732497706632330857010730516648334926516050766598452063374124786418257764492935215616311132002702937757508971237128189878468686379549343911633516351283317401326948044870247755587863118643007390048138596794047241128453397896350487438861065900117966748670172528915129113906447334912926266603764628236108196581814517313068185621671207650956674211861441401966158416086254327603453072421202862143381442015432741745763953602959942787806584891051628831585988593823997064675445168906591967160603943120668676516021631426828179745312871249509198705684342523494550799407729300266474909600605582808519505737867376425325057538998523876576716319062159461550987070177423968877110114677869937648729949432186552474097979689237393886648327218625274854199365699210661872508167312673144241898383815264061099555452827081002699363190651609643226313204044677803481126718166221759144609904128477905334168318142680553977883832945823235305873689039712341080787893113611064577125029485721730534863024353658770212764597012175351941175869205299926985933809248160306509735007743133333292660657487882988370921714923595405889831618458101172358004845240919455006558422135564773822588641215414721845313132518411201539443484806034933508731885228495284912598091025376286754367382061238375868067626094466184437213056699478767324731784587040216353248861109986445724672922602079396945544909301312106124036501346870619225270045258612579748294597429570182650017159144218437579545895772327327846928630167820000319508996415791602165581299714633237975907939059527762138773354192687357612742300674536620889545004815089624054521481700559550697781034952328286217463920842664718952520701670428529193134329051388749890521785862847172656375919196855277745719938538997854672495011960253405026888136354756293269417583777051920500051408101290937949102867728464191372045433045230022880015156316032078201022821481593730792620079729079603702798370709405919554074303113911569653688641075076096956170103610832391336058156006050579497092693193357180220035448850079218072180943276562582028034044228202271119182979579093792265240475602310504204023060764781102468972834993267838525630688590668671406541159303167138857495254262593551747927079876824825020438454175470896379490455825680765305756837275068557011827311092336505571136967220794739545851454623025038323931286399194031518872012329585643316227196301264999508912944909509885682074575674149679441790047838861811655113838511386025539468352923927028666150687539207595521489435434673595735559456336028878582080924329138662080013057336029876088746809771380185448804633125887759574013468923498594312666835435730558327140450738041723814213611033447109095978939238506799564857782459356186759688498720054971117313880781605119280942372525216271588796482380521136879599565255938159738389799459480144398919622359037618209605701613888023964724376292717347687457301958714571600078167274385686237210584127418923435110541604322707235294006911059868736474381900619084311567041394888383461650115569321259873721813795692017122923951097909540536047107002973898775353127293856027173530457159871474852709887099267917989504988794374504960997463330491680495734073736173953077821821320981503003234725378882094586516311731025828691760496427336523194836020361341679296733530208356637890743529904327108457446391482092611398543368057435514020303982862799659876386449455261769477396338655597742639331229955671359876667510383902593260411737978700269526062721520158455748544130857674354323405337404189317286073316298777856819863217737230754014524703391195711896072772073340503437258782764054019658443347084008284686593709599017533409328539370511346520605950896687269754406087634278190034918789652092232062862961842969815664207246387906222072620284022466738795366319336642316856033089238719059187816065182333591033335343305232596663932714680425548122230532950913628178152288808856732845206533936296965499314647314685492889571019207699079070113136902525901500513745554587037997750635083128800174182071236971300260837717222874378013016618299009839565139881819912885080930839474261519408500275155299814145049139795353080099085942130987987721404850656732643523987396761376398264270098961166959411658175799645946325531228303990959848194847670305110880652451823102284258214780224647698152047310767062272095269107215891142034695354522247642698584227780063220473267786874308243819619294351449437107172110763633334549779379573873166171533215140180101365515193541645696843159958254910237212506022027485063929081076932775276983676459883869693985360084931252483820255842196978814207758047598379073721214980234280490683133857322736899872463027393382812488573587003937081766796281168447461670597837577238818773135923467384125934086897467699836148674556720529548555956568384660187542256962777347232282176878778405506842717522920166005096015515265025161752405649110532118964909240226026725239256207373678745388199297433257887033309842796370788151219229718732385470943928652641344863596655400367104573261490633983399465307378630388889960989949777661403966183085817446285372333516930061294872713737986654515466484840096960516966173743488311122955893605160719333231000488714504511396409572572636102634117372897231940275284447276597299128362561290299856466374327751738520627384003448873952480302811291866462299849378309111889942571025335716012079529024095188616926815303425315087050683549788571082084666599631561044910963165648629956064564912371593887420334869933187728812814703045712958307087636629700715742828220515173100145820992194606429845528827209246509172632242684784979063041587858486236018143852928671354392187849214613655534186783910091994639835001016487308135588243937327722978244652359640039680993585503848017190805006267246988532762493181066306046492475907133404293998814518279524997571171205074132257853013029506102893164640319435480494496884945537599459495629850554050498111591760686725580186671969736738731058493814227045564522533522772705781097171161496354894296368762410810849864813985862687386381004531893972756563851975870764681612946417997471286958312739057117299504878921981636631073153800236763779725275667978883735327158194501729242488025555602586462495242395290508631081705043036650730878042977885475931522475741501737078817360171854119507795033848337259738469934043291141321601052888610250811638483105349428265019481128560298634657602199960435427676730281127825378451380619173261439951069343163814387646133836361822963273469060420164348674522142525925572749485840213439611503949448447746450170366830038080546199948217149262889361665392580915701760118396458402051805469385408505896022279518894797350272954877744068204702535987197616337162976245969188427310071179971324950414902621544423836336305363175484593459309901240497207932505383880539050099167952445582306481677148441920412611628752339340283797821217613127120858093974450861994845773719146879795644059367188145244779789611121436219268521410682684764235974407704325510138112751454660607423129774656542398387899032200689125158592147897896261812511769908292634853242096769865846168363439931865636462828922415522496108930137068750433871944003770852098404460116780584295135299729771129355599205832207642543505562946327927123636458124041246160027064931273941972677536973021137297583275152898383261089113365632365623334791093722402036741214602535482117432725878042288858231977658842627651297916959065219885842234902541166300238233679613309332860450497741474745318839659314514881909350648601493254204495310215503296846080991408321111350768178890076668730223306944547334072893040791038689870947300570649962609801027672138461252715763296731666033743383265467087154387315390958661339712310413624014822332192794314281523295004148766225465780199317658901267553305813542883664705583214273120268250809599934589143791666739714549396661639769770189054903225627989421449554937159662806634748133376543518659673503270117034704828625780559174759879688596250166692258807932632805456554178289748580591530157135245409854493473752498151725350787525669438338388183544935554173934798905011070614694317976047994031687142492240324598636765082857544612089794408394445871623474441934731842547911687243205099164158006053641890873477876619090354430227605721301688073105258693681039292219038746397736316685749082362697235632870111979276237974533894551580469651055247363163923715814860352660725771321413380171134972737488976466174321681858194102029398525688136574339886403754274503421315331154267540452540786717696008530816761962568772530916158056459290226918379063253614887428143752530219654226988423706906527483493321296336188698142706535011232725325264137685928176811143271436612829391398735695966500798425786508906839150779154070114109907993713802825345080078581746631793088100060003667964224027622374374332953541918036678393492425817701207739022563634636932177141294676127583980975774326951033600242843317396976846935866585261170297988875290777189164267575234655919633881040178919233245256042521824568882944106667546311092633585908294022550398040298513579448632085210222787765159651517009323772453208933109136400766805384158422541861523066211335062059220000998645480799787118682907218352107791813646730894793913730310133234686044038363913165175376035259672675309429495460384228043329321437035434020145102539719362937967146014648574615589956220101456107916205278844081041691356542914182012605928043005434673121116620177078999421355332444172474702752241441802475410409172803897038796427026548085309890357514826050597051965129032578691561603911343552667914727803839848663267433550110850337867497123028357395904173942163299951327069144804064853990617979391288200899031171749478187543224389052903785553171969374576004084805846357882068443104582557943266898419571892720568881758280338533938524617012993467306734468977943666832800313551221394145249970889911162603651864221180450936744507927430454764051008260107907446483034712921428903318582417193467433144171938619532703058705201190909841529177186937313615038809560877761421022321637551735479194628871076086082065208920896173413328143982074665109048739519056570961712677768804567709578665938579082525710217980344208751786993705657920738748922306604464824842506201719527450539474525903347971598385499986615302729715411582420237097509776522367799562973630410206132319632887415563433962035988348313902403223460209558006824385477156110131493223040316665165052914845338993199091457397326058244864670634554653204293187027937630541149817964362885193397995799102206663236546166485255630180029177191091765820341326469426124793685129051337937004658283763203517669859371939075416462272505425680246334491210577129784522429960194110363629834375468747795353717402630667355254082184348623538691559744073896953380706252683818727163120857250078592470677034178815427626254008675242699920174102644308720062969203633541254370675552061790497076447354261103706211361810894891157437944820985777166437147798323064118180457393210009432192841414452380396069601815164278673624117177356987299494327535951907810025640541733546827201785251814029549584833090600847244193770709980256648286715258824836542738701333975350289129898031199688863054383471114780888574465015617997411464958157438853239009837742210239421220597973685903695351066331941686469357066186103882877725815569361192220262493889751354932560489871138792772975603296858524057085628095687756505398535776422184273996251087377839544628818185143098420434462585974167056936934888791728060603612311698517632502653726509432292428677308691789075892226965507722952005649376347927147846667508766342727057319280181550614654164902472601825779040542526952460922512030788309979583910613082317340406148284795915271133964638846450778514907757022954783819075960336706146033284996521349390962992647285089759868628943951545992760264951189827255554997211803970499295192747071986081459946137734335855469218448711819759248550066409924347261577865593519516840132119699169454873412849826651854997501756104153475947042810810105357304773934783974597714384690857229643875714205173901728778162718798041775374040929145644735375584285770524217635937226361982923525636762110477799892573399578943880376573681933338918646641213804716969847058431119780838409548343416654212885363864711143575139666184402185528257864041182555979013751419044405218135717750155109738145782630637448956063074439112168811698520053592057373976796850283952701692427322340213649928442737291171502557941798310068539451301085081959576829909839102803417113938434170071959757877219917518289451042831723742644838194282556455044521317876987357337098268602991898281569416524221312698367357810830833687390764855550722948237373019111749172367179273353577307388813606410741251672489384809121307194791836699531503308845669766175640504185529613658416138877209913133326074703861577924062750049707497220113919556081791996869918338022032416464500354893859707216820118542933422751762417214491314676365408308056330218369222964311970723423662485251739851477646325390494441270170706129381987521395739460801984763550738742014779504263027055608961445101637233198131318119619103422739112481147813364876579484635778025344393014341188819789678456015956911369996317708816284920389445618054386816918573908171961230198546208744111636880498635068435405391973346209334225929079309468262170396990419852645953615930688232435101334881925470744043456224874197146188437743116624166777830028670404142062312419586791524798440272450531609752390464382509300806612871659507511041758634139429769083393056076548350161752165109194430704889158691165150909063906465304740928856694613729834634167840059026846375571763394783083764748067085295640454707189248509880657465884472249393007609221481460966102401598927483836097970277995250952031465260791640656579864222092270490224839368695889106123195945947623814842750660532994223887794985616725870407822129036850541246583368023154171173863995318316544726098736329341437558789036390865688907729461705251055111515112762160844551952742179571910091513095848756761450288118976517910517915589696393139155089505253842804707599233190542480265168992500456222048286008061251568600535344578511026264138458217648319399176941159684357590372095157622429467494800866096715843766431162744670903846898768449460256162845221083704665052332753803069530365725577338631957125365003437607812259986587709044956583240830230428907448113889092723224390308834529424111012936281742822733640498604520077125842341014071238314855872672514262888853261699527203725213588454807998964292222078208757108677520953444712909643974070533446692376698112449064727017299773845320633137711630951525879493500103863044430283263271973376355747011227424354377050091205418339941174253058876700698576144585112534322855369565350035737245257625395499681244043396043958459229301303350248034213303209708860527415321804192844621070543278885626490688802509808122010323667936445637302744164990033264268035194302949067263354878445877477591550170248858716206601617307168837489297908411143952877957195559290694777182674371718858812995128188749612130074825192653984009295101039052395954719605459899862165852476290816763013591459992147637355812277667991632555110790693605753151155552660202439907097054338047111615537353554613719266523697373467639799847578404406895967387581376794423481796802259652622115778794492160274613406188791266837762717953626915608000078945955793664778075531368853448100884156092158199887014048084446493296469116417555220440157702490551741469738697349902079785525095023205203929243031182141483728876348973632923695146211202440956179083932086852097817753161599078903971442230467605970564433240936891512971628298219923832299484713357982016396926880626934468852471406500577971334606251646495376116777418781152111240910211088008416345870968280085640015757952991997365971027545685503917557692746732242497195340649410127211865338537577508841528139097229765689571574758335259130403958795831547847518616153276343904729591142719045324205486397655094953263063319995497994872516322271371775242188209498690846114799306987999270216465835361134068677758456595077571742573278738107493269962061051182707481128623988070365384182976489653161759712257500501851110281275832296010810725269813639536775889084688485890525852871933812205374020983094952164860842068708786446690672430043354135666362031790440683576611091959744169663835967540504945162126425577344196983474952225716089844724043964884978854454062724142174364571564647558288157447081722447210141231993235240245034075816681558036116085013822996413883366302974279646432597042659557259395405122973041095368594700264460324355599517063947636910585855223923673383248406559483249586759120737116225953982704225526348733541997511273057666555853416598657102249155424051542114374972619555149601018408764522020666064816453773541237630557373293445441991625145443675502672556348811856975945305367040532234079574458097494743953051483283506242259271770127300795343633899579696070434825471248300718626319278464197187028555090008266758568981869085026175388969146590513176496009013398312819798983996503614936909784251933062969461056766929011832979702158234287564071650024034970142160066887391308642169664579894326561815304097512107794267635273900390168472568809927269906708616303863030505157228133166752847033140940591910305346681348731706761223758478493317469255882923976837302799712707387309166765690174584012749632211175756978528779154886626935537532854632369100021593450300521442647581913564346837218433507734776405010230298315558230800779809190383814247680181997753807792969473614950666600060167478556974885261690280482014006740278333429707709573804643824016783051096677369931687734888252387664655106289861947239255521276046660542520269677839419026552508594299195075854968957473066051114165151603771258651914177545008987192333048114157479323066995315771165520818384935647949111814554369698986060572706010307789283416009955491057848766208642204949880506734259530718232188446382383916984459802016315731649511905272338302969359272069572057768009704682267140732783037159266225575383145014069277116354758375786817846663679689822378565573211088979520774857052924624053653862141041682385549212534189258283932912502099535458812918145478024418877626724159978746305489149365268272160544658881371658833091399672675334346207676269094890190808593857552065458056771026648879923743215150229983407858348789854810333933964734401560368908475023081837961928271598827735552973580357899296243314326806786516461424799029250283433728203893186126161516812310285862046472981977911370866841195670057878616115068952185247739114170726208903818887373732152281672782653805289615553936817170601804762942954438092023676498888056760688542799051251817606913765457219229870259276372056732900353769340328808995777061696227522699177186143767396487819218696440850459031948334118300149888331520248317991724571903286968493184213583214646534465854624104653998559179164437261855400730927985549409323638688348626436852969074286360816345775752440198447362508544091616183708719322089191679126432578979993253306282214810374902052756882243382011300121507895286218541136438017425949058119374653128753403087120494462892555806097883308138492146403763486303408316864968404499089454179092813118522212636673359324326848222201742329780487846350803307779553145938069393880977647044347459067301766242968937769754701617884663051953890401766157921902790529934365457792068211682194564259570779253246703595437903500574944666364939370284888058717424605822189162447475531454742086527621920884757477984394811184620467540753262796245288894612947755329514731350199471655757769805040376574259236231817666196178001725314422690966763949934861346964099757989990545713169030717782752844382506223043911456577496935845111697185287568879623328953646376924773450225831568618526283857257222395572260117221660228371994967548569840709517337958246722707727819340105910677572160791044980478922315522597548978148059080805877014919706291553807096728148749015017788881842988230703289420217471140722465351628134125930833857748411684028618627286144817460404011386618942446403881645661487426369162572123091062708804390907067720654217597085469264733647860220844424741538872986091260772393351420930133423616130537087790744195086659866098605954356971671897072494449927198503859848174253428843858823419035796403824917923120114945696655834425604668448157811402910160868879037259849269510068326960825109459217092607233820436255371117188378870749739719203590609055349723251066255160099308308499267918947113478124451017825569596200168735841840500143588942076354704091024760319077356665743365885579411650085491517604156285795693532523376934229422495603886351363144274932531118005268707693781120211381366556860438382331553195231943871587300555751914119345504076685682726717012799987533787530773488047790376371578120835612580012185812962677761298331712871208532396667711361235002206204809733671416401475380710967241946738260119954749242506603684930200854680570762837632488911866094886000691426213717195609936153308127550095280678830288722879962854749302060683689801693978536362029214478677832218216689416951091394434955253565261309110337912038470009264719212017433642233012226050482758091201096635929696342397628647074083858499017565614353511850360718389101088030984258715609080151545091801815330031004129259694053172569214775931134873990062169382303051529360374791407352069526887947445092929031839096061728003718986986537182639257717944932156384021268793411400223054890588061568866328694164204606084465843023652404679435269944713487321294462675360616209558057634761618839548101552517742888689736041976383399722073563733794024783848897481106433119291442015236871520409032325262205129835082280773853395596262292129728140333804609543140575597341585590002221107821579580355708946237512773098707402576469895332803249926756266247644500112270238851634161539223629589020544222115268637537537396325126748773101541426240025924818599143403118353639018191835969836807129665460227203412978628861472132466684776457670086967713289591056141062434970063177422934460536343722388082736587659300537911074989542172962453840442679019130016029997207504855716346163486636570947663408721536428100134851001605211159659184717543248188959083905333584646646319183709821587568423859518134578999734617673775080650802853624153719726972806723587260535407492703863648476698231918280144053800960792942793300406729006146052361043832472981111304896725008742359327301463939739698625490463580000797881021220681607765646448554635014539001466012148720267785412091008781100899325649773686471490061483874631649139856881626051812826811870950981563123130958761913754574727854037581682106134250861385006641111821335104633619167944766711268184428148297139641747978202088837783933033081560601203811959101139377448042292323396354078033665576655127710666658367221810255864268978970060636976446046746412886554640141446873468548676335916792820019172550857843939011318987106873000896299324076276072987427837067810974529872569750061976626855743507285723939903591349814431948306880722928860434913939618087137152546880608767739248103018216275573539401024876808203274027080743765929203652549482198992952388407983828505559546985543700979711053603738938361588570054641736497114039484849902316316500391494745455151421621026595427111810152074227348496925822316206331288636521796514767397897826603156540429407168375538120899407494908712879152042318195490730413235868379078002483950081594407965040931656109693685877522379705007918635230477857287304830216796724211962102708289051164584309778607780185269729043247252776085367413560407389453649843280538620682134104776139218274356951038534823281305375865594098331289462545619031002941811533237190981023785743506177524549430630939685307190352276371785381511177943697973316886059727625161896924811234369026818866856088707443783420229010487666978547387955665591886018106286825032473738309824957272159549938980477611687844920758286534829809382941289505984532038376928256213026907077479822500419722501627783305246853443961311912835846985889703251848403771909769254169970277581358948834138799989172771319482061294902559153411125149079362394309705215278585244654010627362425419791084712227839567346739120171540857616809956176087022713496928733539429415833612366493292281263063975093613546304465740552558339378360571267466091825779818516819609061549282990934392425036270670123420504523610290583771096147868419913380541775508457496245025696329763892146293122016017942752551044879478123818655822254658104899374044551586646769471799712005546302041063639578266969180599996953124597719430267272126898042874960908530508774625562615241901062852843781397247337401276799955237391163590542540423696418687290227257055098397499126698219092165187426296943015761815416476503634042800703665941359356969870966656094746741540644466003614173907680146303616939910610899703815375909162581996702665121790578417700745371850071146265409148211063833293690536275862344190817421302402280676490140595470710438139300541153085541067098965948430830357662487202513148102319624056552454425175003670791004280500483723856439944161391195204736058545416224398890519956446464331514157454924647284050942198170567652997794875080878465637116688414384267057896318192687167256549887731855052085757530807378301603796201433302374140673245937246399639324060604030147350470813097689392979588312445778274033179143572534334356462629061897881804794656975658018305158247571664868143421606711387967114801500025941398706046475548463205927779288165513945757245040593480675320296683852606681867645682236825757812931344119038772057704553633734642879104630806275320258566186501392180773059023876091992259014422071094107293267944232139327332327910528821020950763812036758991916593598940200593988705900964214050110335273425437422522414896010539216010262720187998240315482241206247004389954452441591188867552558392004333417717006563303168978268433716533440621828780408789463478549900904315781747423431680381639070921867763390962696197932700786642026113711694727539498579136376117738625220796038594665439786902680889347222553156800995477941221914763771791258953637864286996053435712304234867246773738855512148099053904225945092188666139976343264775971156887278813573259737551077282103866412577289083982950585962945821803236662780114974351436378538247963110508295459173564685072296519622060809887108897504482555416314291182081220999773291957539504347699156407348446825779060672720027293162894498476247494788935389467968875423709903748738234232014253101094898988719568197844484321222460991284295162052526827037078839234804554035611099828749440233286577826801374010717153446519244746100345663734851280039446818226164428256694770837278452996068852164818784326538945742966036934741539765830162757749421503045145503188881263291909326830638256967601810599543449296024706496884129898605663003361802260832038379005826164726218931748142371767041534937060382777336342293939075296066133426848378727925052008737483050412394508237317219265335917536530273945601772765285728575815021587512267529944251271329485741840108200868073214920052093599159896742194012527529138134462492059002949894912243182922015781970633772952298878264413120498646585767372064280075683650581883296336421002036735462289534297568882814933070714105562353180041026328547443984683662139146604291355395824485959618344433744055794998994820193687950214538742601947823854883822293040575616200753321512328879759260854580540800324214766487832932576113037662525417679381775924138652569731778875717614325819106402001518549581863353571212787601885731911451941037720630714930754843457383992094148836671883413296925185451804989212728131299764885174536497501208756650649424754561827126053491037513708212609630196419697800976381257474283058599296306167467859002067185414491617639625485062027808174720545970796976467657807532367028811304285617830924630578649480114262639909528402938315247725116428623894025603572186293519380442320127543082690844973164782681703478663388857260230653858635889541853198232398283424714488825098074105876958062276575650797223906350640456979939724057765196572328520972340445140722063708236161139013471304884014133131139120619562625832202193624738886972968799748502628428549572414057364833265325951880168105665640101191677669226024856055338423979181419425182259546050399824474276101057134090755407381408260502565585385701101057757430106251630065380549052355887068017957887763192166229061364659648607174733081726896312752094456329381192445069130499087032984052745260230836175136542382485857706928070957258877985968470487339550858747254241840277152892285586149919856681368010450958567339858731058708627634389560982423072130117453514196207049052209478000028973922122327710226703449380848328749159183782635428563429744007500860955228322115538681331810528409883713138143823880572714105154395355835204879718594136472107592676323810324541408579429224268831513965958127783337857745688796299405735334366628425492837274318537726843078272826895653762719505048060526411533661182536054299828213837531939837009730322991630002031553526229594461076898337399361722195170133917333416862321551416117674895189834577710767180224254911518366831864455090317074071598914583483058210418245290902028966879088343630198067934956200411129591521264743599063527571380544934020008458146539897207655354150124871703808516331104885950167815071060376319391344335212568414924446543731334906085863055994975046973287838286278681646080085235942192648411493555044753478679052033551730906805470173098703093345214750049081576316832096308385637440606909601455161417692095116983620228833829935005564792281774090948532577430003591197785052313127645731961014870572428712838363961347396772011338009353970836663442988591139513483472920183297797908968617061381794447552010816094213184031056083357522868127907474706121804857218771482398982762617583768256788906049505527052703140498948085734858733347644806771399399996255064929325102217590070700272490324850063131226434522372913448324644710208359278667704837281944122233419085768598309119796491933410497321049594103217464012528905988769177838459080578491150677083094097067798531691901625951773956602361567569947819792528641977820218339444868767601062268890712224661618100859992577778471145372009800064596017587438019185931273242300191394403563528676438843097337076875783849909121283071550449155526013978937393027899080079892186525689793321318708380885695627421835006267755469794134811422119150335321117363960317222292259855168301039629899524375100576829319499483685035163619695050117429881810522209521369461208141340351612417109255736523528994091764287338356049209035084755388186509129328014798062548048462348144455796482778908607897586122876071246537551906333998956671225694344822358249196248348380789610408292860064555080504530811963232701210748541421968202726717485022373220644211601723846511837397329789258198578516516422006573293318015100336307475516485796636472220052736004795740013431940099307923138510007848127384958567363249595738525907578952623481957469545950881315690683753964853864406817940903040862455595221799967978429765529064586986181200762146534084703585233571524279698292708224989997206132218731642474049243492998759402426360073090756677613046582152989704571532626790414115599367210751096876272744749387645316721489603735281531710069459015257990359206800431099962574375410970704049531993204687949556484010349481892976097179576849614450263038350417236281099072908895417831612163462970654684606149530221697973064185816834958626271689559678523003427457999346090987908370301973062034725642421300776054628549306521379932983671067258886542538738090619792635092064391600513574490332574897260203982757606977842841371142135762010602423684684939685587932921133643054637300247712320583128671744186541391064450899233836025267160620073112081120071512919144439962303179462479174904779316981286875279533430493762892768579041754068441416426392167822932684518382532106745623807526380929702686522110516149306977405202779530152813263947638391853593219078440847889689498299024628951849422103745373578693795489366247447774465677976155377109802226309269804803369425373625357907850846696154097855388653201311449852758811634718769257769754480755512770169054563450697785654363772900920615736122922045471568272529873752251853503734010365763673129766660933144451473081647330027418333436434609645639626259914906683040058913359284290927825073131598969112813251118664784388319665185671698476750968604006202883160461781124160747421701107963603702831713999057504186155208382481119226532181449360710385166035568490007276730110850328964589778419837109127314611642270591549472843975566066229277758452128158370965407801176640033637835193049630447421944275441789100066110972807806754011208229048685905466342781514466604511225622172025110126251265665108296023921464747437748582832223617755778777545972669637549636693822097771454607454111604945224895033056470850511123765099236149743437924119094320102622464443392699090759761713797482970759784144614611782621699180457119113480751792915043250305542702688563714711052087920531489593864367245434808813635699809918134474970514427718126644371692682108223528198059713406187438488072082510236480461885294672839826183836949461916306470727919123683620451109035794683993138055476565410910822563081603851588919585939890187148364731958003918869593947673525674125227526474174024050947087625504539599535674827388951158343689910525427777627246749334109853298201767931407788157428467412118869603615084411687849752537635051964433403423277994941679662693089814957225241649859271248604611717295113664360613935007766901547260331458392620799850177541827576852377055291218946262956418989520505074263630390249395740137781223419599756194982519357482971705995965606032591206451067559641894705182754626720985798737856985385704052818947833479553231970557646971671523501754584981589548661470210855996526338311711888701993807587262225239114620642995832450277419318716790359646721426920161823968253057297050092935436973434612204967396239980526894304243547441454433384635637015142350361425194956323223351063995141049048779353384077767819221354405818161709457628205394258847186098188049824196460238513207223587586320624243945544303428722770993946997516800544405420749068958973358593622212872220888422725213697844770806965357311088778985609632217934978747390675282144803279253482717126875537449934958836331354348157011751392360033218428909954392592494326143918836381997439856442760704811677412221712374141847572375915345913102367041674057042725980002196989887157051387121738679143746134852095511437070991452296581272341233970102949830602449732818022910927376859186250065404558756182617071465012761280902782917994506483400314413649204018749408496096715122940349269099468782761767526342173670194692423225995970105161241238591110692143131825142163482229795301605816230589091251922918942456704238381015893118572632158494885839225833206886546821595472612802189336182005056123376649723366561525738379869777760621512025670853190086288859584557458231990163608044044434808750351834639214395180712154401982732105319322488549317666761712378047530816376879782710047217429889730797691123124474043565871608397360834374620345955620273635381731157190460907035418881135713447902360802353148035957742433159108642302771922218297266238765701160488907244542028327204397456002216452717182820803001017168125094746184998528412119039648964751747681544258848732816387102716218119882748797784335855455290660580220699986174225662923749107897547708374926908142602963934942528995933259346484250852336733110113822267161009691578045220604199117676955552509340752579738401505721502861687859534897690695085513084730497175005005553913607469348754115535964927693080141934362848058053168525848230164576296675784534214003768974961628762317286768071690949821001633314985830443595818230688332476882961646489288401529561160845454457863814556180069380782972412913004815112730447202693387201038406499247128809370329241411293653633631738011692531802109394042236828938990292180189182101494007518764586218077990492808093503569313341862818845671679437206741286105789797411125824626144430554693999894927274692493045794366399780964417901359656074716071756800008911081490143633314326386910550878991921795623627547774160930153071969992261744467263300575661170931001159719337999823641420895046579321125257287327003283616496732975634332901396993896212975595133116127391451802260066620320325682312503919742012974833068214691843770058221616986891663936025889094254529386328529527460941826372347136914929096708251761326799655923946807138060456661307582525783408624029463391831855614160941159132142657512033243786053250970046920851975606857721226223780099163806505133985988466568113953441401782272564454340946650183387298517406666425754226012912662406172264264583674551779274470351061963008366071645151290741172003273917317180935890525799026356832142764850499082957788826317085378450010645165264702238601011101608875251903301450697318579794999785025010436313287482582022519079386812116830545119935327925699442944016565117632507969746460849044922684624410934857344237896168697264550764242321327792518669632526454859864048648751716320052114905012282270084901031126989844770137482749717553726390029066829950037891071861045775849825513499554493121246918615189926220120824463532749619969228763011480181649010993504888462706700061033797789785378758846777735751516430179918590961641951286858709911376435441685600069837660627031031770330683370621723653302059051205870986285571473760910365488212538876449149922806588078171860912660419016659934268370800450844048856950133579117758772340083471348167548484771578083470419627251527119672720428522201134424959353798606052852176746573886923689536729537184974728368354336210749447443910849529010475759997116337742172650271762414154353065887397099920818178806261615520681426076705709706720704346584953758807458773216975143131249600423491792209590681751761515362368692321889117767499766422649245992159941884131903414568080401740078915724542208484502163465445200642775317286393537149508528803319874835293294951257381430129444565329354273924938447846286877603679471956884080732289791132183776723744494834229234020651887694903957761606147422144285032978291768675223955720663843922244623836239165489160400909047474762749113644750185085924576217344641983900759570240845604354733757863270472774964473898605734789931536282740463800311624630627005824756125668298046267321637575790598294169965640010939756154216083573661127299469229620461792305887214290016016103048107720267150425656777294186509450678681208987200980905415043847659139839205863696513459745617372775415215231769405660315762393669925255063030579407340759042281184872876020499974990733860519826787888954199117294003869174363721503729515864780170035336359825475759561624876170912617685576268413184618330238794631665428887228378653873923732098651833568633851680569694828972273209436774917052269111938096082093069509992403150598322319990329797758382957611123613307186996396629782265533356250806209131178005365121019025223863259290456513798418501305926247956638489563159718582135280710844624900885582502274584980850187270657499507478515499674868885543620663553056332416429080472992751317059372813342306852390056028993550304701357765595677781982018389616599928256576265992928075484406451050725502185687047373765379219167125001340606225657476204393926454674357523457134920390007583633499573869446555052375394409416523447671040174118247442064546571679081591769303237313442507892531147055212406994452780208759882651659079676955289555463700800201945997458141215523920147404018608434360768157816401411262832394685011433737808995747861861768308112258977026830416659815387860071759137753736557499892270445667673504274741576145780796247540114730620761604809358665806617770891766890446678410614245518446073472544387020954170403804980324232133373689887657815718418741256611671657644053236665110025314817220626994291440304866107752750098644185952897191523724511686761588109703924211032917394494013087602785411930971645793751372241222906527141331786838785472895172837871319749670976135925039290178163701602519718853888268387528666135356805749202489997423276251602845883154004419526303588244797880337319109189264280865217357099648821071223683198756020305793175650622642629529173366589506211852679876217550210720381110761123052872952906346896184494776102217125049068123850724130630142352327724407168143064505810760295376723309946419679167623910344474355385665427821962712331851636612923012478874070731015310766338439639541227077803578157302302721733283056709829779416513830807122981788896856237052454825494266699102066677005190627941693911704454846192353253833791553434990367175879181767991931778776684537624411052635281413700605546533780956840900820120285318104286302777274297425500097430925860418341700400896939438686214903363006189636786769637056302824128085941330653591439843750357550827376983298729209430943661419383879197540229634534923564566257171600803626160982657796899206525307628723255780100799095568738326594593111436440202114081304059506142478684179728623835875525214081031616561650313774503095679691655325504256748379122552906569124552566910316076334204565234892208946301915156990077961182893557289612603034475325815419332982372435313733491292520845558716341415313233036480828203523551644711339542398825099009510449448847584028072945424655557815447255691729731646059059581284700232496741182270450691418050861634899863761372483884959592948261624206149154161502992511862624927997869801229147514110635348088975389087450071043094543488349800191955503833057324217291285486652985585668992502037218559220802855169635706420825429800590235002815219576791440824660053848928590425909866900117664509170214646811833410080672978305571275115239348621181941645245134126982049194806438886402142884176254327325052903278172272250841048557086808186012444599955383894208987324544554240052478322662256225142357622041374891488861319409898674897622249488050689476806698429556101368743804660279970248216700377625398597442206151314174981442541386069423828372416062451522652769488565579857456211222055587337124178850802783868874478593927991363373248757256538431625335819667885090612997035793010918409246781461768584959873142993677081031630296253680545710213291201410366820157751040280832776166613384409334477406316529269727902381242503430826692995511396315363454849549681745903563803637845566232670884283880460914428222667519047995876866118256856248786115721638800322449248556174432937954140384530592025827816128999365691941120009327479396327353825298813787085605975359527933781570126465123827212200778214534264086770203350197217036552997310805593058611932697063652863819204398261876154287261924863432651926560814327411952858198760507235130675581182391075083504477306204360183122304256160926035219578099897559223161820879808256813572343012415851540211552947278479890101036169902862709095466032069072508776921234721788290214767634949163877576451344888245062032923558749085734147987308704486209589959348662467087115469156538401712069361407036885529800117353361172125766214370469081642931197600832738713497943657859797805724783473265068538806596439789713401419668347689418480493161751066635080676992020385225517680598078016866793016554271636754295571233025565061858890888716852788697343231385225127679854548964880129381112468725413658852082144763078922758043918372148441917889798046053214074025857350315872735695160996587339226480539516561825513246642608585938672823960037157504692039664762214270401750929011896918890236589155934761042593699594884260092120583941956378798138765724535587110152840840760344191252786823403114947214493287437867028224519903455100892017428834139485385062800078751040178645448382827521254948730151730472836160845908366062367066332226208050625607844638799636209279782183334476473879677536591130130666745509423448513357175500997821299291930511905921888838162527138210178407099311673308329757837640952336984219473418659783348168788845733154076649141802125500906414462416812254379989162293301918979870268747918472890570179351090294101342792995346633536960776887055075399668329717920552435574976683147646541410920132800368157081379842019753230418924619346669244908565509914946498600655438041992975603076692454949023412746747670098440804897343209662453270037074591510840782506069432775508439901491271251862048185794357799022792453947970195853915030667553540161463927214658727222179456037105212910791216530352064838653713351320592299629442008813803813312691536390156160669928550633645315428931366001855121139106533678901491916797175585338561864757597367123988794210897974125719163926707808668548058944614892569409361505411632752974061746411289398450535971953508382778761176710011592596251593357403697047760191642498357376664039921003398222853966964081828322601191764665841404476173366463242199370002755188320997321150373045079758656716825334645435318464182419159105166494187289762258108620733361185480351952080748908131705047677872256192044483754797164310176856976217596875817575994226713619796630018189119704501362567672873779232296677464773262315917756815176064572080427991500568508880808255551464341150875191306560850551422450423149691756017564995878400509211783762323781658606233222766500469829629777692343776668943039533053446381235699091858911096216688690539899180695883623908044827372326639732701141578048204944103708071302172892250050584775874984782983726129911436934076613474087754707944009126639507101099896903240990705608107834356177634034720484993966084652107057778193892055758399478114635566670731732171055960345948470974174061468072754707060929822582767951611061266913742810606059265440282181199127203830516143238910680255682890002285742563195472172042370657914141794858602320943439500934415734450231621744160467214385117039722437144668335252049436746828401508324911157762939981780880816217012328224709643697202034050497995463720079281653302255536007526446971446795789595851914102008920677472518772385208768890836063772347917418028648618717986807350912663667478795462768653085771762413251432497697827549266656357604840356055498209129942016219769125165842279899728570288443929451213034797945265391105440420718869304104108320113831478696862782901693568342728718211479112061684052020327154068698810354005707366757900673828583182436870037006571297740003093303501718412993058195534088772996140831799093387051939765321791348559186605424321500572057375525059132904341581493222815545043194724949833335471213686460231457512779529251639337174569556912485047891703560528227774185333773967836893592061717333130880673320987106295277839642049291068583487609393121858657665268696793473359932354462105397370165964741982977476819304886919881973363243738290274866233185832069852250433100959351615779663643888919954794359231048614208243393518499627798354435316927757788901760978202770163916018695954487126086002888350710332187254399156376579526932039220820867245639777146808328757416598274823435103841949995043115548933077371841927179979090754773956965524078754042048797843981095433875561315245740191145368113426125874950351916797167718575443318271448542415097038678895220298668236952234179015574779345682248897667569748331978127417104387092189187224835158255642203348820190880343164209663582825985199117467392505817709620108423765809588280076982890829826354016005708751744964932125894845432909354805303702235221177652767982055068031536728921593968400888332177236273091163529355691496713844898543593009081728306752901295942874471332931369380726571554365866632000263875839599726872935392577306407495373088324983328751315237959459458971788239310322887487339856985178636230461026704227611267356021604202286816800654206554873463052252629079395785226168201258532293132669886225731938130782886824165496012531925183502186220262913446253951058223632627976266777315533357027434119614278635665200672207925460510363787351883625409245730084539374954587446757003719874528989869427503700039059124903547967606866026175649998415114391818693037014428783114556859517043366726688804973819146694557288610076422804647796280260528309832683650993427839697695198602257507040618822230310532063048213667072879831051656917967888009111810647834464195543221089081115589646832853591929672708554856548038039834570792033824148727868220175874134680300184424587075071064170150983815004107991143400563724192860848669177483788357653172640233227442626823226871030456051191563083936631803094864127262487905219092652662559574967247546866113228614893639721847053874950227879261554595095387276083104563814560703042767182267695915664498125292862316166049430700549963246987899314161577694171619690501991654678165151699761139207929883616147316309316384469032641266412180608046602714760688358434480876172596639577551081127086874280201265556513802021354420200420284208389982138142699638508650109638800869727692128956664102481989661403256253426997047860083404603388687487217115262854093619384651402019819551186044689046088315952216392756403079198112115777203763072150026695356812586476518697055025471425632469620880356816453932918274609897665191164935242340647181192231969851848656918304709016238766651146494893907647803254875407455987955555578845246863599158837690501782811529189259248004580694649873958945032497141401078429140629193808016213179021184743923520176556517927064522146718903543232956997738439688139893625022568691436000890286914242252528421155483181380509624611402807111678396225352195971549804173646314748497023047999418427182682008135504712248933813829439948984042112211226853436547765204054529129709704666148706607066887706398739038125061865683956458382880173892799938374736060997597926753642878677050497250120866423590640072913604965340246777147736854220745086466115959241005138735525501334280835209824685110620665510305677514258353099833491174758999552676904685726137727038286691119576163419208877549764946523297386306558572776990550581941292111201149106759529059385269177837334158035458039058844044003346671525956690441116037212050299590748219656184208888486713004639151354321303433864170275952261845501533655784090294902490068059758850621227607946547699776758977301463023194833450784945164778618638872639496293722090290907686373719086031311649505142550087485005686553727407405185557418216998326290861005478602576438996004345115293956429327306782348581808117471968497467604715575170447466884948351760389584579889226366825053225045697528296489178151977073549839804683356182811754312266618465727915425030556288106109848679182399282741729985129010054600069647964284630941439280783060086432513320633467691087088574719815390322202624466800266130153871208567867618026584138223062960603145078110142140100031834066936831373470541324211272008332535875920937656918046353832904446885972458986751457868811158121131281975284365992669415878596276157122511901323072917768616167922406818089180592278552284831696124475456908258389513330545975389338051969691739278667441155223643654257801960003822380774294672093046677338550715400483527872805936733379965328251779352058875435018988699013653498514510159482125794374281965468650709679033615354997475667002493929357178915292710220697161164853124777371156983626760978869700743941415670456173432006016246324310200870920549750590840611051039881662047990622836178506715595549489991186131072547936994399080615632798790320659801116849483240613001725068212091164930985732988728562917561135225433740792077261868500533067380163379915913763575397822598323762550327505081647577950843159524102773831678726402010369357304668808761962596072009428168592858846925918562986479074178541644676858492968316090794611126018596382025794761104501770986657917128921447125729747858539290287698755240103173490259404049207329261244185833266297032587482887287238709674287347561648806761785957691199353512073249894168225154670773164425652208849680607213153201179712363660607301832785086228437371590670901921263485680056570575412602496863754920701177022468450000079356396052294036144382796378193336051203839586624077376284457919963682664117315067843081992542171452615125147034241469354478617784606133531714447626210190477160567761703477730612033507835679960430103270800425483886239884941765229437044655987481788444162102350578623277250189003794106193360542089958526786459101035596243091744115811969361057137295569463119709171175389390046609870409260667603581024267632849867157991835236240035231540006430768443966806600154402324067169403195071639029473264046639204105641648319352218428515054924786470607444559209425137527191350407674303827983755209134809252097326889477227398501009103135083543954497342411230972220592267792600768496801344490321057209119765993221810337070239784725024657458540817203451924605438051231079642199635159103514056353877109923349768072593058837332026079021962851554210390424683789053005218508663790216331301773547368772381644508639034591723627815278917902067049037195870466997892136252732968360608584463913508614367401112958194138269215343740059483849983932862910983650743256337964285569109737906300519720804973715134747856644563859407999507324003716262184117932251829912849873915442894699536933926077575609225594264773118101878064021141913075450651288989746631266624034540858480422106522770395740294441601439035479555001496480901338746315577083863502330335264243181863031444522643314545078709812890324048097072122513815438414071372414531577433995829428040717715670935359380218181927909313178513874504284051696962742649119576121698490483733248371527527275769444344588370817200018125830456331615306603389288236757301074872400312502762743433577312450235478688894354839730535584430840238311593586425900139182208499845894480895543636330398894378011157809844216122220893488387560988385241008622917138629501141332751724437660395744840361754722950920540241876453511034901989696641972524968013323299402851660824887379064625117587154322293791074895808443007448236456808735788631218392953623433065004846287747126437669494524701825713545052512464177181235015496734066540040813017575959918125259467027977612186404385011861111868175289683250726664730661623037946560796149461091436545827335973874343047376222766499607494650556543619715511987597338123515849027806897422780573820871690323477284009266770837943589552418666668612419253784185672206047302506680894533419343387663309499419306419785059598202513667999870424805994126677348147574332546879320854268999998976004220979133723736628664807117807138667177149603298252644379369358324612025731335170903456723555632973066705085845350669039319409965344384236334179244677614407328982104882339537550084479457673236407733557484999233187063217635683745970300526985166562268649638163118218799349458263408354767722422820942763945840889239758933411375300162737858410095611385837091893328485845760139872943229389518828885125004156403644346008539505667703788184897244382431449230454165213375762573099143058365180303996684371241383869361993316254472718464194163662924425092860262683222237314845895135146306157514242785945207367919680587468158165462998412229437021036657781359863054627073138692659324676265318888409339464439741474491151422746712131047280437263120931587653385215469869880743967188175816041837911001060993350483381077109053904242741789298697735510981426588225044771175326475392917515217893820395015419162257669697046413629714421397352231774189652302216659981948918337567024078221087186024463692501675360408937931818945011837204404181496393135100790904503715617812458603121760505216800101542363801841651222029996252777219078561753294688197068772299806294681823233631919078697914382284772146549953861213850404627440119602412167118688209360988415196824628654717721802950572848822207830723581399976766010281309074686620543511305829100512871834569831969698495769684199458867970208779613046251189144861123419656784123891316685128834657719781867971762682505884901150594776488184397915466923562398534381323081507839616092736367974773204390499322859464255576551938185972855890711512865331570795225363327378005754965792766452786331755706433727210381077201111797109606311224935351911284998049320340398556208312034524788849325128780483670251723666915983034745779490440648256485331650839071286506405513604381685919155681835665947586936929982539594821503849195529402208890729004274430786530037544683516702871583791772358362092338568011311032966075825216743971761230663632277554990185755527985033230080523106109703359569117754607202585713396333500859642886238196473141452163626515446467714806785169893867858820196428211376770664129673564525635051450648804586025782475668651745129956034792253011235750293322756477507816984829458809005182526309698884100426240723674372059158773716624098626070793796068286989932461288417192694768360203077610053230344752873503143524714204009544786951642658649178640545438678301968586942419595050681813260987042373184590178794768644639767950068408903926792415192909301658026836170858616521889256747535333131048367150991357986081572329285332352473221226793812210668888814045009611385034547597121559842272350863983670197095037614404817781313749142790818259369913424751881320422190748518723046923172479355524388900319443294980538123429589472995183276559923499780253582335575143088882147659414730549843216598923293354980540506366006620396143627555555219580896009164701997977197296048736481656732931148111329668944152609549086973241909657121236957602755222225343628123882430516568806069200272179475552769086350110294928243001391450908469623283698349169667991244862130316302135025589914171046569429276702417740610905096045138170368803697237315788044035477868284180247388574834899718992395064675761630825363250446374667496523095112910841409173237780023973368167118693133796537759393694032774474060372250239040356763541635850439958712994376398221703914807094110105082382115383700810957162681977868128430156250543825069987069110791361084127769640708791223602412663036641748846624142488057347374758757517465544530353952599173508729284433184931241033321573110211228194409761277029791312874026919974624845827662252289828732325494215415590564865923766098870954223934729848144571093767632168539298790973856961549261033379999493689077900940673128971643985638798259114548009028744639454120531247788341470866821441656214294737332092814692619130845187106141683771846279119020211456401297307808867836622998582254736358258049202444696585252382370032549198604944027970483141455419758828087283983733545999106689518327454680008207875033340936786434728735204056784803118387114463429276694920558962185142403015710216784885566013593718073597085730027354456880241667020614650239885752558117254568649109793703884127949451132592028508269522319724738298379870291679348118985039486465691294708457858322595852005661066414583588317437818526630124175665534558256199570715335624423188285258894050578708330449503533130249630243319788357386454024145213197592299631519610473572307476712833453574910390699629016907926320800429696906334279083508219801744151606921409671688689010023896719584243644639064187965503994052316680546983726905763948587565528895061441002218172639933462828003833642825954464254915824768584152158302078182932166071508110558101509142782425550913672736250216342745506308245568677103604786276968250681623507560986800723525748644586798037511251644890413682750385553690237035292459047682237992450140993433710997483525681278579873637168832582198325091987153705753995653756281900191652594248539908561262637086151224708637069189394522374854198478626144096441710078852008084172627188654696273740617378888164107017405500835518724654640272982896964113764138074813935346710127138577841768724971105311458619224258740932127025330619832971896982578096998612382687359183096181763288231676251717739750850981514695977370230187005206954070822471298176093952002235010312366681766271194835987277070093532563990838794937885903842221563089724590423938963104639128209611591462199286936155172360712186125158726454339321626994268786075580969119561980302713455765718905784448164334720186662667056997461637877035497370241983012676870408192308198531685860117262588529707227828950078993472376232277474284249479126611637589570343398063630960855126705468899563446425866101454080983866808545218280160619522445671098619616694371907116018672870936758231194226051670215089335327756485051552950129626003812315678421995648181623859405145629203457698380823909699831908415800981519276647558679878417016577380342256255954539554095269295516757864896583037843647770015240786093410648607413047263081208841603836863302623763774890445666734318468719991053434513007536706592970410280042021497467285692903940989949001661666487652073076945152928253735157648141054516212130026438017041374040262050386976236745724689234538395153637566447435693792624805149939186094256790112982531829353645913410861637489341920662559421888656070654465867686957546777245931883413429605144195051721594095805762298197554814155400831887394882006232861855379680910843254951517199418953631455814154570536573094830126180040826090729367989842636541035857438526276967383740627844574286515143369872532052335827575380403921455501389432689649088401032634480902856164078723959516067802205151401470131382777236376670692083996397440587950454296697111685326587747724403573616934353061369767542332564414871003770844944201192665768939507268063911832623124043989475173020072044657976687736384656700188480883560854463431748047886043425825488912720613381262157155419220005735486848536545374691630714037117616928039348976687384786128855718588127552323752475701042149731884357852861782324847027546279334050298856865906198815523191450128035628840153797588332009145275538218154918237445866391290578276572813740616747413853866884350392726237881775340471798031889928741196311760341089085985068959485565115469507069976297367660776717041674481927637568005185069786350609515610564997120662084761648242622230858926701072539713719658721226687187212856920477854467741770756795582920587380716439613744648735222408698369386579567162153511015771570668148077218418494765214464059266926179442279413461590067108436566375274378888364944720213700152118433713560828448523199438626598402003449124325525181315212003942470917920494504593251511567370239743350888320277402887916055680346906529848658947929666980728706070064885674670914609917736096976737353280688762178519813408829801880231469587292546112081255075995377869521502827450518224065057662536708345769742160602466832722704104726663124387588534183937015596985975460250834402247736593276113121621899500546927958091284085075944137146832294992462577646396457264426165080761172512720141596568214560155805242412851692315529617717430956278108149047328224617142308116582568727012803173195716415455217384055723647233660232768329431300868570961879167345341454652399735432203096292036039906574828126892227811093685206675621477336498588581805941265478434533924298919927669948981647336068117540996556274793676577183649911525057426341829340096609543506632191613166019826513908417243358467471236118296258196198301637606471044830725988783173748294198383618756787569845370811238688876308697700808970724043567934452051038018922475108804218256808190921703590992819722849140075594133596419195005317313812401830278042231625979636195108945468913336002788363461485826567017673302585358070820297040774827147436855808042241719545403375812951397500988153903020119535722182722395065472968138166506644479083404544982761751486187314001744478409369562862934239913761778795534957505734890438846533325255050845933082156308419631237367571596896072171232678601311103038765762775023745378549500463879057088784353915174148152132108162814637167575819734863392525792871294853627243879198669355333064344990511403517243527437099827031559393098166518844775437300358062237558933161576041607838519505387293875797387339308164085086155660858239826071695339371524233724150396728013733710305906182751947651882823639342849932420324896219298882735679236331493080674434124234580844708973175973202381538004283990290732102687369852577461356060355510675959032194434282662332088981572612617421678129786289155206297111682736157746906423770037017880781588160231848399337685471964111383620464520957574003269706492899066491246252055723988297051665685733975304957238195396485005366768391796035612568658672639693172888292266458155395921421347171895897971214416969124558846963537562946556662912727877431385853627000813419518906154533900034765631431533154270020664662841751374181298014681899797999396805495466852016020504271197904656388221902804647640299154135039372678056309289443930940539140149514155752252100254957399883661627293149658389123927477067239139871644615446598511846061483702878797010184263428014577759448339721317283077856704970251316984103665354768605357685088593716761864546308355898996648717299662445368246846709478163706992608712717052242557632777578190994242221033726037998351675519855198351548861581492030284092875504336161395694140350609781627469616322827931618028295147668652038058030279704974638023898666016481086730891962084708219739655878132392985334564675065868150969016223543052872086614382685486656823506375509371745292900696960437031448835550056052845089015834062811978038069232416823674748591355038272043924065174754020255128968651343473718671555409277168307445388344327870160980427706925224713007701631889639256454126190358222515032407444847171307760922839288957491183399840498559420883453197305459246556039684402461490989718799400071862599648601540710181458046395457626088544624887669679555407980395069258716704250977939981757011684841005962203101653093657473628159617737523891147726384749967076566751862689817078619624020508749578242516024470363118146101662753016234224417222728166697344862053614381662921198630519726904032384530872162903924879196156359289922869390675884472983828947908344336314182866365908757412400168542936877807708985404825633869172360056122086488780504375355342540505717399512498945469924964659966831301509026208795107571394142454262629468968561844370938919053675950501982210432631569282715407357478239874757791534198971076808754891844118916785200565990845078814048985620705644452431108000498535462666273216959993441931106124094057741707720083390644814895462282587487042439388421665946299544215074999066807365775140535344265309256244092032424088208094221877252847326243588542448924803561088984482027910407658314453697581824238022913209684721458197618388812943828489358120132639710672950751697254710932253657272732690412824718124245191463408604629583075432981126776851744475007522319290493550065840682653419192893957751590308059896482610996312822690411115714279401458929450282446423990600408797099191752100197130474902300488157701993654336321013876021565426957100601517475381954072922995670368338550065065800986266624762241128333713383367821395160149180364344145719909004966252781483300741503341795670081286580307642479824561125800205958485565070937903636681056745546337293521502491238661176653330799936423332137277752077842155832289244771828963555766550359043906447440186610386759327096392897952043942440579643068867055785541312176044700498061697919310425243026180351105880279125299246751876179340851358411926193204403816466185076816314245766103838796291664075167617957327947566657932192192367916422566034686520840576955524977227196763176658617944396532133986635646965978747535535061760027040611773823664836785563136532804095078466684744995459404277137992709785822074074867617543017164145494537104286661451507835928188097174922936155546605657329456295947778225825706628329187840333207102780067911368180484381367587691138111223307168576887761191336372348591889381796770683482093998429206925495530864407495216750092524976890424838454056159814522170539923776315162562989464052135988800113434214957127473463810438081668611950334858756302993417139730630267340651494880613429873833410781649377733144645969672052731340020305316370144767041159578890954228140259886558230940023521611241049609840611141789787419530494412225817040042900130760172928057193625254879979345774215081078546068469770090149692576294289943037385760119690298057644764750548484882741489231983356584821548567666529661774702571198483192115572485996966171508303744879019911880887990421683545162493827459919366198830873648687145502313719042477007448948686247191738344748386695522098640597774262465020220533709787608298133588428228980130529082143388806745411631326437117189858933274421087719434928575768670715558448597879308314276938185693744604172507404962149607716254233325199730356512552435117504282301262730603508369666356784655190116153298490697780450919563097051335628239884218562864481940161702202934768631627654610254401262555444486105137766836187523646622197995011153326886795917441115933846689641442101730730220655795312874478757510695573590776668910317311794670724895700756433550773130448524760164002363108018609099771168692473216876690464004606497879225122884476155843386451995594023149651444197774041962809889156085255491609188025097754089014785000894681888127984004884003180276784364158913686985242333494307089553527399623309865944892264351815421573489630046705011603738011813025341511967382591343516579458428951757679074846777124400430767566942124725274841601358205162263450765545796638538195037087178781278590022704289281608664815082157797868296317797539332169887502332890085282393194938108615492742541805832486767417576795710333765303305648023151022940587677224970804716596554433464972423172996448170324773926320589436072005689479416063539946226442488903246285539114575767266371684085312998695596160138850204141096429718863129156690944939188198975037464612145281614205904554866923746921457931555693342611659528500747652286042782048151637316065765545587061654837528048101198690421640214246928847947644144000121207791134563441317420742695303809683619951973523263009560553872202028391665683945111197519258158610765996737929567032887663634502546455659244356886679182398818158669628564351223027125073343880278673783670899335775221071613884392934090285670979918419230881567433565122450719916889924979911449557828177333527166194462538099499242151764102865101546433497784472683226919105648942250386057156521536539962133384859581829412258672840011545336968475278411510020295318695757083806651790409937859295296882954963898637300802971502569919772515022395527976916804566395613060368898499534491944073189393973226881851655142255073552598141549100292552340555433219607629208093523794961548664289261510004898224721351537847805065296794263124922251173978845909019368009001187237756806988989186094959418109820531430694884637329356050803693620118896751083487111807002503166710311970335178550702936316909298566496351799045213368684276565298001855429299967588992589754898353045496514417786420334220336834782606911041964304714402757007459951008499803403301404779778287091059886263661066608693769405458655858423009619344222390962738023416086135363651483598652200297935282368556093352283278445687450891735988975970249854182258805880034515588146720870242989136799711893658771144739536157413554628460763216590669037515169752684466511387768304061342446775745181272554022865706043158038827309655251628684000738376602769351047484780771943269390287710917326334540514280669715383922635483398198446124498677925735556688106200589613716166683340679818197438893599425966358988434954644199580512867096866472645923193829189707838393587310507258457886027833207150329937148747849482077593736294638969186478150477078401552653127294758055173470514550270956018092162467645618318437658977730921775784334945932660791570443143268184897326151450066518747171257013170787541655018848570474761443964430523712691604974007978524069391773524917519018768629015730177215932563249754244481341406941597407792327528209156839623827977526137969989895487218003544412510835096228282437649696612286666786106211832422498582298682529482895627675827275459698047650024158940388948463076073263770775266800655889384137479656327721621788062781470562770507153359563469782629892162713240287197051094993918647875195199411324034009489146391503844588999845183186299919319759397366696955451788565045702000246869248100987867422474962911770924139898599328706905328823765427587505754120803482012054038572448224413395933257549080912967912129150472018085342279998517049701246470006970870729427178144531828595070405590406639244123872575027346521436431631349871644751094239943326739502121578185618410753283790521010501812591670344117886681119547235869997289106685233948569129851995144272412458032454299068084792620736238675953939111005764226683638927574578053259537783960473624668325778944911204964510496683737121355531320741583511802538533814848489060884840437060086204331403635531377656419217717355894759108681943653850527757268046885325389845869882744643620847482155724226125585883633483630631608830902390342677651599586784195292756425075470630233705083881883199297695911895958411216897997412893460736880377775172333398177133738968242227735561438492870705951120703391243292292148659411262842229752265330700548291940207869202444947082216497046846265755191718812554061007004632449756482838517339113633741756116846199779972346954965933992198889287316424536856324070350092197378185157511590549714910633843231799683820736762043757049064311951348429176967965276852753543395239044723678405801963312851589483456716906033399597577627036730746016019648358997820873666588765637939822975472663693120083175370728270958081303307156107933713971697432932279485452443372374264669766344421122150584570601380300264797703271951582011992112088746081755946025043634222172271138049367734923408427362771485454502103708340148803093609545518628912868669575710702522944561658938025237854225250398188883792292786704515287667968493002284115374839316088238485048004866468712758863823415597047768147133152504038630776965087175584415883416122785145887573215075696835026290758567690028365760448279392108069580540902435138667389724097606733836456132983003651798303993989555906356967860313973902730052805170147637278773600635844497885377979654370265140727815258274571584058757952109859968802453504399539672387268457895476427904710388303884233430537948328129467221937447873850803906516799656300947201362466298778765164021109790842740169474237374771540663661897871874359403983217012747775659866676764802625396723968842561725395294554358650199071286740005923601889043896320311141498515092883214725517621711423997823449842054953484645907285230039674386057340312446163270766315040092009200888788456104915782739867341356739652554288027783483993234849254154391312128848859440766979966993612405859294472775060580524644258485348747207794719826462647769736182326746490107458069143371745481160210761314292312129644855750219744551210001654942900618810632658018099456565774222114786555536773380137201176655771956694810191113982972482277176783602661086254647430140298815081524144332543908875257903852199566052103331952377162862232405020307836542576724469344983379850147398391879321145438472142154557613709345970075329633998254670555315679806907533564300331482945786294846516690349202770381839006764189099226904091013835812193016368677334405763895570915328099468344043523403521308268259421739255079457215813577535728813255156223988271112915781260111940013177994109266298196708987224065140338385002021775820306539931995436208824330005115545958389404561136727313465314345103956567964765520250001725282979976126280737497468996471338255395229989567479142804227020071180914027666315609892573337831272212360396527412095942416341523984351556750733048523613448149077457256295430440238817042311750144569152277783128370149028530986774152299580496118928156135375002320241457069427795829595078428193322947484455779704181536784786051438294931721337852457362766352700647863344704613198466344100906030500047385080325286358550537868740883513752164556068839161428667770568546503646323095926263711380456572455978740362049506802851887253020241821165920223354130645758966793255158148347186425532708349095189083445266528749810251885753515553497467654955699493047591775131690547655858249671299737390906727120226962727741346212853743235975859063747271733411373756913698707941426388023215701163256063237629322598313481831167579757693600899065247870649418963638806378092468606053194854010174684919153673497006004765741654655745813057219445656710092316867587909143066882453080766900241836676216116598891711118092492228680512472953085081470585038147539989833521835158518502318002332056512710633145155851740438287359467093288195337422208836024611517246389666491531083032221399676861214875836617597137282718045134482019983713298698867159465302151231448081069186178952881741323039598115913347762915202233078901100381029960404914247877620426800137386365233863515085492148122370571940988060114726732277474606000536703827599748216462363924465177220052640615578614570085731973413573489499173585905294735730040857613972103557129759188838052112880380581802089905569356057476063289753390222413127741685133414035578690050925331626262496351419729060872109212094894933212511890548229583093317771176143924203617556643687133917256994388942936450546674375268200547357089119887909373321860675569544066618423039011640024526989771441348049396424195649627403655396777213764902169579548303995153923456406548532016403197225029396965567078551164333671696506279306423326328602319859210585202197329191876522548000533912063509680109970301716255560935747654749163834693201401513229619038068470381870853843866668032724793669699406796895007903800614097413039135537690959276333625372080796116754442573862436218548523844021838670134858004186862356625411308846065482996199082927260253481504414152681920858200633456121440475498467230894900860813248715231699400240641996492941268301111272834083615411093803375336356555882525051891402111792684693298897543092178329627395776448055143751954143011988148541219282929057046623254140878501223896908026664812209081620160801351910414692191785035732044537860629226745457022401294202172040032992904993597037532703772076418780962168647930628968624202345808955252536531748211372395983751617084132042355227474624337654596955169377437336360646578106133081815257792738049446403651858232680053032417956339137742456432336777076215717801612955010491458278769178026252468842942444111249728190947038911998254505969390408662960474576066490286093324435693729070771131807913575493372729965588982850554035813788581143908340863724287302380743589431811315008968722621178316467628676963974513660142850392507330140247468183932785228493579167464341478026373695355126324103834971927854281440132408637910192759891279134817446849215606833637105696830806421558432838999939335552450485122722633577976850525749298710172597102640776245913034346666508697177838630772811769109448415701086299907826317066279951942368548781016425008330014303289649528799462264000342405750410332892659104910577384084211413947738861454026430521139076945016569992597479508686868638096481409477138510111448612384390052842389234076827220079283175002636651074144261413342982858890036646826668386232024834469265232513681145882254193883259144046481038537963955225925945635737414777341104798900570343674729732939070331770767728915035921413773685687896838186720192235290474119998623310763196494457529489769294815395075518556313965352368578784698741227190029329930938434612463472006449578160994196584643779569783668239208127484785523334682033028974758610270572187381179711867377379749975414657528605709050000328473830101249753119620812935471017137970519697505858473894519356285906759949979704725512833773866234711546461672530093912348456706084209620507924652009944099566101348448031732467977049507925278944764662359469874045008369279647644420282564731124177701072255822320488634867839891789890097998448876198000518052764308680373828886166080914209199777409575033149154790880067006582505795841213254529288434355663874942922417200834706617485272843291656206363146217408426065829656337496396251703955706066902524270232229628859396030559304648797648321381950809475288089591363418312775059591192047385138390713995004083865835948746678264700510216185667620199803095975745120074809430815759118855508455636265507099539362801454225159729635757228507415185872071368376699145887940706406503581583993709919624346362330990108789679570735865388715420234207161112871624088045177187861454976586822896221644573221120888956251735629018201467569455566802596100117934904224464689971763530190319767873285449768547700380122524366340070723255649673371183246276654008290707195086029399300715825251268269296659175559101631756138153093053534296893527961906013779829681932397093041448890355458796549733650471072356472875444912970800706175028905389366957651685204934762351413452244847479100402009821646018293267279584440717794516090876350446884214706455264933583119398169361109041108801180009321156746419845272221529316157609757549400381634509654607500215771970353005597535673318286945238660772641907962293609140311943627357969360004424360967691009689318197298780960034954879447990591919653293001669229656651260330774360511802370418545254468651977531867181877596461812438730442444302106908762191432937186090027274067363310468705044412697086506140821673922018204593093081181274026421822730552190726818750437641127618297992583901603148789234064293094068450399456829104911012839071296201815810417582612374170317991121005688287830977218244314235298578421237834020679041458804329715727747269885863577431052263247332342391532622184854666526445544207681604800849334128709334941923762070187848740085833551274387374632440545110878455924297760982405491209646688873905947988646512338136754097174458534722643852265122109066488959703128433763845823491824933093976705449317796971338706791919803591319056029245036291213610914099501358962082553008760168217667895931742380386130919149570742093910097099973734967352880689481029218613289675285460602150753355610093527858653933767857261997805731151397757633427975513288009340456748684196209874447878781138982019161132362618471415319157991507206678821769908683008100362521119322259037290727817753985969559034735414602767095686902289487778351696563681684474243077026443998291791061376315054444672061768711698411793078920725740157731992549122288071509392114050230116398935433480213719299687463612252320059248815691932679205222407813947559050292835000800972206593216393031608391430969130454699260842497262367677712226891089859482451575775537085478948540179008074123475594027713613274716645563582843068447006032146000758411827962590546589535066374311896164393573525209643344806219023530430218234042119207301532539460568217471516105642854047256323615734019771989315185313142816554285449656792694124984363382824632843658128872685062010194973319657340103493828797574039699836228092093412935814585755976927913268328242563088230741986756097521410273241450221353657522284245414178726985058623718222015827322209190367831414564299192305585612833631184413343149374448160832339001670952730889086022027897406616894824936839471887732078774034265218700288682796311698182400870121281361822200144607241194021488981273344605027827774095241159363727161662435968816879202169408584255225629736473395429781698411822379630599348033902225972230625996033228664758881062715975183969456007531095750682560769115585423513049571094193961686067980852217871640575692991926351705923139376681532076356766884585595675047332839908001884490724084010939561206263162963004643787002205097215552139336528919510311014531091731117987133452047654757968678103456732590512059593933607068286139797065743417437307712571474825506616595196147912643822667529122849473415721566919475399381413460117637274215459600974664251982647326078531462915994155713901879180948516070864686419463000363607267072421262211523145464672899639559145759958926069737455178516095492990797488281647093358847382375876767623894609481280726388807284304512458662676252110713422349822634372586419656669012981667459931973836377742744018336085060901741403774661464297056163441661004014465414815418990295933143573039403688032727231738945917615074237439464674083173079582637332873721022741767024863727386579876063183735846658673285679814274021705305567220709429838999893600112750779497164799963270795879878819107744321271224189255499564755803480014958823204193258581192092285199914986832136300133998313867811090319702282364008051416541702143360838325960148301053543476051258004699461122725627935809445567300170663947532664918341234650388166306252061399830879249231026562233960309019009526117207397463182164176666637944454391249605871579830777709904646250989497090973064743623713538274915144287924967280026092291489715975504181503754509199669339766848332312300012734173583345039998863204173913643732912120426718707932591014584765229072156871444954766322552031126396384286856116798157000598294708027882935395433978169932231588385465965602423514170288481575606376370132601617163659378779824416154600224516531004876864312631746165921417005556067243185378600129700866973817207199481300316122838509166811646590083699433209399621814013490344439676366343548276643893974550855113124251522098594291642036575877172395483287810584475336429139506325280738091770088736158239614701515173753918933890954066729325841190429204796150325974625887538826058154224710401002754836583994237492523490091029079967774766281173662869122543747142093621954195239688428481769150714416963385299643674673971460187567971729919366254671462348012561911686440893373385346019891635652255869343873868083716452430028605264089580692926920502630862077216714941652054501939474301305088440616017321203122942724316279294477761359997020336542412385063908732018420853853076046642151506529703630976454313709473244096026141670010256939191740185104928769249735428597480749307779363233605331429896931749945899304532073638074304792372906250147302540985987236537861765705128168971029233199149385644468216364473145936479742275701583866489827653096388448302727150028734666125003007123613538571370856406969909166854230348256867822236077681709286289248069379636607604558222238599103404192621591182697023567634280524435357365905923211401008436539071494705266775463462952212511273223572937105096916934832690145719914303105207917128556730281788162704051098963788341740328761480271201765905066047535986905603325340238899230660817652414265146606216576805133182451657205302294746727566008917896174407061688506860321541046227574748476583636454283349382034504511216591735693033742122288779875796930736925785871570459782628802766509397929227765125173958606001163325564705439523274831733373048008841760543852379355403178105535475308074768484193628613291013166548949405635004347922024290039261274697509747966451725265952129996245288341686780553255952711692641474226028167741378538286714594857748330193228381998787938207436758893913109935165032623245329161706518846947159238530334868693149600624770500142625294775682456371964908599381060467047624800534515130343323620878768397247867700572921605098142224389855508248023806922594561562495726005951398484707421763654592126883403653479595894591495017378929482802141839464279554903166275089675660385835068229941668316716610520572796044852403843029015774878972740896578007375468608984671421217007851257084045845402956342310601847523738033835741795857220363961033735910976419205543011496002998222347488260607897776888380131595469851484180333363160865825471214444889348240224266303042892795417949920121497734079916269018019536763084817301781905918148330079867459643764278523539056109898874566937712994213712767198028472869496726626495621212088390751276142596708658340616509334545583636161394480867270916861870855036586133187328481062576201152132125209074120159654219345620413501884340084731766993879572720891698089254680162923285259282340193709352397681085551428616529356840005274686625125558625062706570320774709910046001600429533352705003333917883818700196197020391699070304913140600352976002990804716259313995492372849738774995576394562441532697490400511909591188683223801703696557770149116777919110971583818001134695506409644188844082212779449929492528523169215652121177755734387209851892197345587092112697464410387724497409229700392781160977861479194833012411373964156222080851849388191766753668991720403157184961287354501665634848783401530879472431116284347703787424028973121544284506482920607979870654214656392841065052487300656217498302945644022725528015750118512425269969990540409394452311125604956235072640781321604012934377310870725570244039976664231598991328548671872909404811350367785469910974748463277630587983418851427776076984374913428189418680526351280364022428264395763082434266941079820559288786897396712280464597003874552394181828545976763778151890801223435760120794995252225809414428902105145559907650863683062787959487593158210790544077289584005568990080665054257745175796922151495126953700987582428830005640326271305476025505832026530441574770509160283867665326888490865890733725220988755175716937026337309857936569895246552387033608130201430952833815552849287064708215622994233108089419889428287085601212477481250547904429340936377546226903034207040452983474917546550879256870642386162495783554142012802106606295981730428137523538003446784677923924212357462931029592029215152759662183328853376392612016126606532615705560149385471855414820762889509268169970599288998802336041135365531360916823408474797775587252547040061354492236964809188003316671451755691187880991336672561080362600714996995320281211555108133216786476261478177554376225114034644643953806211835640495608106099726974768825512501149921201647390968760145128286990304223771870973088704436643426055909403824215950755022281363045410112065297935172958810488619350562205560351864039857231019945205027818969520631242276330301929655083857733419554246642872999307900428947494193072205703129708519634549296836027055906858521508327170800081901990657851378745174217338692919835375409621675776787303365421002181863672160297550663026659988698152526049223880440099982951216480558466562666370234622132785050126736837064917870103362017487949315397717043832894878556972459090059091538726624534031351659220195750819087172114624037231769649021518523596618413411169739642841374698166925223379529052004836322844601132454465372390149657624867237673646541320578275057313765872638494235721028744472723236649115177576203749666740320307507226097167881308409238366279184699989109993307879712811392849247372453653136530143505465645658683731233259139582225378610801049865494491791557130260980773424944999381752916016956704161542600249735615465613387471757059520640747168054686134571640534917492624705117390314212889382431383462503201664094149818859518474675132556468686117340770198722012927726621871319266410591194357469928218253087103942850548369311031872949223656013881693417225148802482954796764982167095329517585318600152068963106693860686033830929809212363947208217291066344502266980187656276345019199826679262215847648152631996939983268242011104902522922407359329286102419544722952257072939901426819746502893237598377080861796601778811632690146006931650673760075474188361454406453169650949661085014252186887466515677637870837600470304874030134964959210812434697317646471546465507374845305388713914886554528715786051753631800443453323230239695537874046847817406325001991396703291635205542474868524076168405288642880703862208237373148273716925699817313686511407014136023007608986697167457553106266674989672608387779338257830011319549544407068345662789805316223206816797433059759543883706999822927015577447874844628927445000360491792472781406322000131165667824535730708563667021916184051671786162464426110886187035665571681040543816655237413346048436830251768449330087904270984594368361754394113800553912969316867930767095678861121381913182674634332421668493217949492584155297918687730385929577904569396284999336724831373989974311364963854936240026055923319843141601322454867080510974823674353805556648090537356524687205589578761897364040233782889685692115348901674265751316055053255440548820607394481747405189982293050243851129945082018830253895075806889132373560497360776899839594620282817569508684745468044468902802372697859785925704825717179845273381530103445778231770602242331235966828524986650492917171395149270635079830805209029258926438178103188413232606015395242085401545761436919002305770028173629171482694290633553274821253267448065148592109319176444324570575589352696278713042297038360412686137466178042340934057281943377554032976781406100257353856780906324593065358494672721931934097886795568496005830836679896889948109444505860552608423239011159546508239659469239942091397254667952374917257799526806862531543013777897758005013833635973708145157787470034669180416851136292465221724201996386666062381904962278525220319440633519277109067316863054039941315661431801931021470990485853088399830121193805717578636134895512923789399872818588452157345197071844456733674491736119792688639501195507436160289380126108370796643072572144602782575367556133146315685707100537870561135310122177294454693629310110322172570512563958959526741492634074512804630835524229491724738695844744045387020384208367920808520559381431674010974799219482048925797989876782562655854388254700911491063145230385487996527910838317441013015677595042549625327777644872980002174309069987973547985580177530094119134763788091292341913310009254723411363435366572223351340085116193880145498733382613559039555635930330721047474764944893962548399207891420064913677333727251043846868873973404412543878293959433297240573673869767511509581549207667208556370994935315519637446955408152743429390163770602466370998330543524051513127052097664721657317282646190742827186169253151637564122742128616540364701728676824976964991297193937205859968282623828111813922970535205365957610958500582037741447198185095913159372968142923970300953433624825352943519381561679354268792558587896593597965634244298055322892726403533847631401121382062699444993637658445774554042702360917667887314984702446870557115441035227390718757814836073911343711900345904977445623463210192026257238352774023712507757682996267283055901551657323636019426189914554474086452237042166724334318731972361881212556191988969047022905981993031181738742243730428600217640545056460030944052162667126957434827324559844329666022794104896359321733487374840194002960089483252708754175283099240561670699064609346242365513138229337944419280180150067149956286645303426772458774560813460613531741321162408942537265425396316046382350390215842028921004398170793844005503005891520889963355965348791781114918103463516318761884623898855650162688820123406694527527175476981493415543238447767016812806175607668100444176818792781108051816468664902774450127639376354717842822266526912964726407717224579256238788480081395836419015828067309228991191725792929028668507315577355458561288430556768329158441934255102797584825112311316515860889887673836907257967891171896039730523962519008762742991099251065558146700475458566081685695471672520544714965448411928482768420873933123290189644080911886589552578949620340634962868760039379099524032755074130546172750294799237691998902240706653938204288896755827400880823330087715415883293426661373824628298370658623146956781083482325738515269421556849138058242040365488208922759011329964075119180157339312022829204878536005779491269894411920495082190953978267293388527094193139431992837134512070079162518926763335072969558657720512729863549495442663828931196426869167117349449493904766147515802726218616074966778556773842394310777985085865483796746166085284243082396134071731021190751634022580987413315040774554132220007647618449885770846688643071168067550247827844368868871063581492616536616623685596963655752896745047442180526265665229403497514317441783803432443598008120124222460782136106744413772794192297823785679460204078847264098768186260579646030987154550969797201141387751847006186731413134394869530275656274087301160934207671131811022612970698036219654323426236794446790702653000260469158785141141078148638793867490762884630109191204189282426059880244101829769167547769820539140077752530824035791195677765744679392995190176047370722319958353573324031433109318012006084218801410862302591183087274644193376320035999372295001570403942057825714459705315024081397318358676455139690512270126727794184271973305098774615304063985759884779365591780759902077310395911925971680965905695640469859601456254508426417731950127091310285233207941444910675810499937365497159688482107270617091496359284276186034496370339710854773425133842148265909618122525572006858919149506252118347110621929511088258663855854695317931710712875550182758717937661370198840983673100867459809943551260630858072848773787771695493636272244052200339271551817436334410781123284480817269760230341333795263560863638799085244027149088500813519871468733597625628076841471885908355812025483593959774456839271417767516362699328701949421155563710069805689119605301927673820748012118255676247821654314445286161013563924393340187786440133682031465458647261766263384120045064871197251910034994761451481446626156215069528385713665434014094449501322186847844247108412893445961227561306645464128189485772824159175868834178387683850196511768086640480291189410683406965278407623298408499428972190545193871646999888470352596476792340493894389825133847382184745494551366615524998974697004124195210056776403170898508377221500352083719717250891796726387750505517703144296822453665019536761879661819473267405607021596893337935995924652957634251109417661402255600576347692055588017285087114057028490009546403035153701441583389253169477018376770139708819356412032066259507691113465270611263047967489701722684718349617538826677265763632097811490887228327069711209322064533734999353316219596360341293637635379786453859805669429647977835917483202111097794175728205815592024046038924546486403785746788157211635917905290095802437716397520715095472118120199188381366926171259234292525017582630681837072309552449872594669764105007167745587353197973562397900444745382140061324186412454658629669793110248667154384431619097469564551914643969953290097755020868916071835541860064005275652601569735243404070192242267047581375297967363876129889705357322810520756871570996126699400987667973302165708299485831414540760615609452166478667064586802867752087715384743893101338072725176106269509134675377910660737617672926832817339481432460987180229273056597734039124445685298748362589663141874920411093871227320033158829718586390028597051011884252591215336853777020885230328909471882168583834864350147544032934309130706028055441325387044325444063625813017414695710263635258464587303461025420204042729477814903226609154436808603052066829821461659913808096738939763807147571248117520161039904409614254193038918230099920515935036643127583490690461675293811957971230609494153990560459687097996174502286215458388097581690663604177902245495577558466581730845950517958657809683871868611439431953874350790490666875844990529903787698322785997111694933462753449051183949887739039102322289007840005873113439193385546691088315503179465077031576430644930788101597924665865770451447721046356265153004848174212486714574953146951427116317646628947650355559372109655441767248056271251652550071158760973624621942334073674492105348268664698715768708968167949974509271983737011632719872556566789938452397860392580223545074564944540127700853894370674805466710090486614747078401089723582689009724386873027115700019128554243762929763111581385071080927391905007511319421730641859902499417564670010681708376954072297563964793850734217284539819857550278469285978436855141995265199625310361586660994061007627002721350824531369243114343640223586101617553658183505842705569393933470690429098821116904279623717160549112132881729490663954083985619716351873171429068936523533794960664191070245319057109338791346518094580460731684346872636622747179126039813129887698518004661691571627793655584467317461736905048996972993782663770031388917158138974085317469529358489302443457166148781738695822044716883080685363887792233658542913056642279841196644472129742093882061901815795357529501298743757611734713407647216519407223885283493743694060371130443751567009365471373522252789983410837883191619364495565201242178416119534301599232914456402213005742338686849317649506849957228756029675885727400022211363880882995801996993556843903365760939787604131512496775900554565098775500441757947747369597333401753915704468702041347890072207254044674827279338164754276039451276684889789901749371099265748742322347626830140800025659407830833348612592529669163932126447790550615210800184943105314799591937644365808596704951609478654330769246792734143221537095223813127586063313606483752551474084156482003549607419706230769177796002743030897709828699873350884233091006908195961857762910704432064988586643761252543263588145042842569930459654384716633969894455089801984266469982020468384882854335105427223903622399830158650090099063635066992040632819070710871307853683071104230872439995133205473220718634754996416179535918118781926030798137395812945464948459414701335488024153676238518097905561862627376432934099942519704806645889760480785549010604198954648921871331231824216331684653090670992017568618579525579622919959911387117588125604656490591070743939578847432794032831948581029095874938128402868669938670672251573704648007811119851838188358570609264310224856173282896860809720543375548913189873473871261726003055118609042890908485358230563391895833393690877827092250257632684164371997623877667658270583953729707692529781396214590202973798017405803561904534391746638918129307930937957283497507352140548799489198812765265840066086336308103892429661944659051676903059024672699625623129509981926360501326584394786764326248952014759895166714330524321481540648313417290810625406516156458445166389836511022144587472876082488303427209214202823621428608196319159479730435288256703724269994376379732224290364225530142649781991903342503048679989744077045305789609061736934596486447818397534573511788773685007982051609882179333983124478717954970492028451670131299432412296629890998586395984776640474972259923655025295255707187818182330119213951803721166861952863939573131522786979252244595311565584196613379174646976426997057638324203732804862873631736842538111297904813612819905104913074704636725842003613246474906881198527234661144765256609293289560675788975984987107001895984010786188134141690945043007708369673335160831835480482839720362501474190096409035847917094195888729196700208998549837625308401722412008823205546301531935417672567458714544305227183620721921375165993402112734853571210629203067432541696093505922389052278166637308426973663972068769139681706214328453397516439630833665622032077957860910973273711389926340969034226531581610710486489480408522799525338568131170081549365232416253554582191773724225560616772624462742987042191523049108263563145441689359075542147120204573625419792457386444150985441681624033949039523939723019490050273795070837876070696418312091349801124379166679705842743317826875728823184924226617571034989407970183222615989329821230442932510177111079333414591161765373733910139606057321369632526553105212274061722330489824786651804044276093095231392098553635705589692212069808154887162580124919606812376571941609231617929584507628055243490535810452912928763328944856068015305453169717548495582131388866248213790000206586407407873745847972890014215874750388969300592391144899643822901809438682191549804368886503995003852253083184012085834199511172658239748445659716883784828465547720293559627354536210659012727624279347577503105527589112191619352948981146780847756722563823960375602994610085134981116063928654536263305824755674297377913418970524025203478264854343696520865633481764733515006241551927774871153603795269747327821071485922874747823262632854520212518093363045095430140287910658739890656521794719682008979349859594735206543642160951294826608346647435231984412411065646062672344450775931134250415242835304925760393985172226584732201590536169393021988525624631088020341960942496513551965332159005038450713404961745579956866266136342967499977837734226511074313224270071778366612419198571652258678328494985218113908110080562834376051371566640588195359710944060391684227881831854170054688545129690844893257509015470736433308944766139368712350298475111143087884924014789573511885956831535251137971294519387434668239137544657066832152485016096484079376378750838711874702275587653347157497385011245135977072700797728570485469997370296725810260016079516173394235628263642326240766340020238736551814936320732526165843800584835015301059243988061071495243018667118396076256235526157971283413484854539919450085464948099911214810907679261896771573816154684267376451835083849910564187044814752308448778167040713858924653961417971845955383679045696659411717073686645830156447153440831012981313865123444300125248959788832210335929263914529504695747229820508329277403652579608780049661743534640178645567709971659329933180687590984809269709360820720319500577630590221969090493680906003915954605201689992262839305435651167789011297875473870995312763309283080070479690925622014663353894705662823079861283279932831184784093433926531846225023611661079011466504357086173053471391537275847865546621298452948118297784912255325703260105298989519119990303813366096542294457196743552993355811964668154888652244559556284311870470521825956652698539987002273623249693723237043599025065603839256693200327854868589627913131612358304858639634187718413651853169511548535420543085464138417780794872933688170340752314866217082188077319521798573644411438412725979697249180968319528677113477202537141591286744768551579222547964305227841401032946147247179388626268960762755679451043686084658465275636394001216064745849198892907635452048011100865020927173970530036458083947774805802951506396230812482157396772584449039873604971506528923764110862585790274522154346810109834274115560900151243237260771836557560514602210294811233951930095504794020666960266967398099844378497014820014215264770497299474327129463708449307301405427851458662659577050507907154173171318482870959704857162855292784083197208763928671198798034022094550621985745369960396101366037775525492918123164821279115539368626236972522281059295524178018679511258316192785205807924902713237530535330768173062973265361645893210194000128547275308715335698946795833050552716107813969399102037048346507335079823704411902152241535849317077884466599441900529315215823537190270439816167956395863755723797215583963003433183624881483297444389021337469662958634415660297283321307695472709718778718824179412211042700076880704187711886178560833994545332184477305972923704288662546623278633041277724649203910650632818903503173897419920256113064568504974264171078411008042631962519530664774180182041114072453335911078955765027242168404014071820256971029377580844033450213727066288287974745271767937742967369630896336820486925939951700928640811027902325178978635920934324311203211258858630882869889311011734654037423126331742433737346474635674884381994472983174749346615717835663263534533367061132779171173945882213755128258799368050045081917557689315786671746707637716001205333686938095598353274077264425043658590781333433770684104955784081607439007490916403299660650940445380016545536728612328565311771884643161832585627675667543320458064440672214743018311241119083983456954539826421267725414306069689244832238286625742539723468501203943270149063835128831566501911934613631240728642178493677459158859521732039534625531196655266939010079232172922239891843873407025057086266697205320738168775909154268255088685197355735416573436783862546772024608705380070919271539672027351807277428591332462469839680868677234536667030400485099567246058560817184223036458243708663567941047990643757443777404824872122391791227643860988372384199487238622567654381139231414428232912939851069861629168647068096820766469504886899326970082870824768012759830750895845802201377181492067299809155946536289954578963442223895827448553110915042205478681028618241341854762502238585348707045359922146168425757053088165952567770355290073256500458478148839012877070424860318903630535259169125566514086323963893534643713992646254725345208941624834235458278078716720652613119711891083137295764521591458430991286016572149871660139688795580960764846479037695526841024800483888406976298470013931686060902556253669515011453584106450815862564307104227317514642868334719317061367256153022607996903607924322707285778008920419422939826880712021384938671773400352171290670338788693422106680610065058777853543453280171184473075576305845516730962747253879745305605075159072907199199022564601779195528343633059619130508121663760826295647517581823118343772706701218816396579521487682090719452321816050771158087072181621932504923469166217396802318175918268710097119869350794089300675198478414113865967056008914612569427129177486916441957333598554832590171667380504384579917425510743794778382951200616016971197857728111804312380986202638250540717554590838750183828712987572547549963601849545784305768947498097698198899840806687758644450600171226385091688858730108184055060969650762527192188101553043981079939030640839977233875862768600202327897518272377658747639539615153903056871061387312382473083946362570103088145731392261543457327663960352925203973130156307026251931890840881757685344830185560458663370137257839539231296171469558748706279578285374383259900827724198351142576463730089447600728015369075314026305778079893107933162934569292458745539064674180037805622618523703681850764675895863118504952174888920990284610799086402710793777515310848687741095514744267788541613410864052360165736282674366135303288223818427842262913787937200577545894505972171474126822525566151196086977725052993094205692055858399280459662261340791684518675139319703398954881067853292758488865996037829498692051166611867217357327270451506621644106106182468170938862576805612451126790645765011024227020124294055118135197159832972614026263361949753830547099165757169806820214971247824269756202758692901190241906694327245370853283641965562628984755061230180636105518203876939818127791418278359507004680018978150737501854385818085514952068657873022591398270106854466583149294286171536511910843622227134115931028290084413895552522983466583715338208602702899151275393126700817388620571181043830847063783465249847393237905731463864760030758393477592755245834610621816883338291163037302898734202772026120587433433714618593723315927845527002016511512498618686268262060998354906129652248326032519918966375544894870453758156492230518312020740054776773408563609669011988456758176452507189875267070414345500295300698097062780061934522140951814035900237806723783425804443777643808908759895064617682128354857089862191361620472809343124535131140562806005229642961847103333058778704842589454932163684077674952060494615222934098960480456482097576855241350729296911397068837522176035865180895646049682285285366794516583366427847578056082369560343905397386345132208587165257587280517841526629172840444355506931101390831860557037768701803981334302115795002934551340652088286874623779855923525743179189742821838973903419469192479340144534110014905015193066549182117184054679923349875095696641198537384099192099232601759192437102202260148698646372256051800392086882702270174090496090490192956948154429244045980606760947227018710992263284936490022682605226204966163294096682505120431167685388203380420782038506213960261461902852255304568174290481661406663713797834228901408909833205850593809952900857093741962556022162622209262904453804655457257615605106973793490636533701020320913800166546392423224820858109665736748620524674262235979925045051334096812900987546305688465768925592640951530664510695341303900844987143099831591259382033334295415436011119400406745627750803214230528872173358330076714240359757842344400767273415508185870756073777705937759341392009068424274771749570322557395784479600659892628060856244493055952268696133810020040872012683483448698787588999440698523236703389880972373865963743351024639112335727478467191567343308315694888388450898834506413662934815566149849848979691715012743134665958616764384154478000505305865249416414406034241363208956584194929351614320283395787964040802106554906626976214966088457601301394252837603281793074250532781407344530241019297776584741618882837669253895042513763955700783391054067772198443288591420859912350597458807857610021431366587141878865726628352853726306026820412701786243693021127274068252141346823391014687647874656255190735067963834152649119211187474861646922093870311181854217498343237226242207723720528329041640686988815763397290209165885679928904555103179061495198480495438373310740038816690358615381311464802339842345998814941953895414061398098852919584742767195421870140451056131920107534536139784466946374088802839089104756000645901790539174081215049721914233990043754437014552717136711897851351101354423909982525622579008745444426152577638960256354840997144390743720120718621777056992684389000865475863587386704417903562382395206433343611933739084539449081871579811709421650566120133072331134876773547435838404711405928922116089247064016831381820271434241707004875298969038752748168973143501866632444241053136531498545406987497741741020575209900038702927154949114704110979670913992176401793645165567410327755989175523476697827073956149136610364542665384968129172479247078909275438956671326227490830059159220969330770567583692069284651462193894609610647013317026966559151713187801224363622820713816200001918839152840804089927185335544646737549157377702496820298775592574087816559462155769363199636207340179257871870677272707904544934568693254347047205846541426352947153839810495887246342262754541941139124744370663714276972653713155241606307967188191536975480626149612824144070497892210402297964169994598954250657405525789693000901073784465980200881965820738649602054978956823296537007755983168960474243593113329534564213360360664364752869322825458227275733717845582904374346676901910039471623609034634282842359294472391962593202186607528081377546626849371851583649882665481700738865358960968561219230252443964554331579929854875020987388776018669300657416001914253062700449719193169049498229620457966644360502317539243363979462140797428620084753009835776487794410071855057001169553754719542714743145897896100457523281048495067569125822574050984023918921832834181118366255469223706386955110067104714662716950153104633295789332349130052221157516024505734477878995930038590100854972935473894221640614233296445727068352508066461989852969236373938349693792578472039670067556316129717090650393888011652957912144680562284933810480667150794021822532071773548130635547581380513608347698953015593711491973513985853415366403945437105083910658298997294143443506684428532305299114389599199613985001332451700291831485942343645497852496961347475196449471998049893692762498369827928662653593434875784522625247426216456728283506221683050483720934454977187813936324030249785095526868705838461527181076764604533557306039784425615413396803214116427029043706842488891692634383632160574818551618411106328383251800927587694100177472982421683541755555693900426791290965134829370825967353501345024048899086912872406062215604526634285774727611134972939155130549151229842813656699572523076938892914488732623903231212068109329510391300850278537343644275125128987431178705416827389073282473891042403445913408096300782322985630000158562026085881834743029896574991195035422228839903753874072298834282775711821689144457829890266067284580688892421153011383124224396665739501700201503948755266640308035962921832247037654591593299486419329852238390417545951420133188652036432201837105344760914650176878695715033818348596663336721321005929977281116299979984056731170783859774643477405995806697426304977780572055571947627694437225165794808717898291114454131935723779484572137862292104924679610546400930665133628085690110338490188004598756862640924036100280561654496598898032315954891576610440099131516261359269297189251742863158507271839661651288837645774458908594421771964738059327217579676693649658675761533182091349306965859655743981261663890425042926823974353021820906209506968529386190422220731985789037205757747014512795314246145084243184499724653491695560585714546677198389241899609079632763048843746936800612164973275780889074480212789881999532949828091584117911225363017014460869979545923651156113065196339949156023046240011962188262410075672932200792526572811251067671547301072852523194680647737614863132600397398684448998626563573859210545344235049358616622071361943618991859003342385590676392766782077644666419497693729394556366920238724878438515422684410730888893349029087810408731275568500982681958228761746298105845222409703071843926040901598013368391004953623636031324991601076800020016384413383829638144475980630571134956696144051819222399252229594653600771479874779836046117321623451478456477495273496505931483208820379074040188549575890367713070388996894182865050885918124560848620500920114703723828740588635422310557538902393210003412532843877390949522937231732131236555198784772393150685099647013296962772434979368445291771925145877938358860828390027330206285861735298441906743114823501057169119984395363529094697236728236294480240395508713719513781705108453862112379158066416637756087188688980519668255754101028520746999415913230434715105753018199525147208125434290878393964347144447992071938435796703162851382345815354597304567151194094993473851003506338273466041767128723128121904899083704879101104951185818633020362115305124214551388192394449232385677054973734578954155767732540584829045100391517488679181583645154664297032315969787307369573418050786940054208329155448537525225330497043018200970910136184653946507898779349318920246609219532486661067647716685823086631241925140935460184891294857302472200472323592652095427843516495001845003005299445946551240402676818908321990090133490315553033032877388423302484629224981449797912859007064852793363104039001479957965420844594510324942629677145813894391424987710380708169185754202676738885254594335965820340380204023684426788093514514689860467001495052435587998269634870035602723415572178462859421610458873572595060910946153158710171477615253737398560414182507944327407778877461796869841033874180808144193091279281190252850296388430670466661453808374342748706102705188466027138085493345097868775699828396104381975860389814247800420847660111443065832804940920910440682247085948328035557662127295071230962979413094798116933239318890699436253705517428849874636972570699718105209006011087546277521503463003623061851198346181990023051504743420322990531098280234653080032254683110685087413983489565693025915175102175190519220079259008592132430274763083796107708628575846032849446292984001605570167455705405966590222224647204136529248113367067706733583950344124397467949508158775191676538341748225703999362701133015402754368651867063180761760124627854684073491351432470367264870057456507134364309564733523657590300847196464052216981751494415084517446454147019773365204869455697432121809679283983910768721594155131973954271680971978016478359221031989420056551297721047750513309271677699119485228115807467536293465588566849352113624386471964240435239120976153803886959277378659360371706271772011267832067332487844107809372214411659295656473113423524894787140685060145480130337852102077357156131580396934390435350770454307483710486397294618167393310447380254648312036450905465720487927337624348066165358746314361646331721441332164855196920105503006723864390344581319164023490242794900960247121686054549383388268609718652130394191556717572772888238932549239994172790966384891592020163745635188687122446969779901134531708663565170409047637883516857718577870785775750748485659601658996771582725111522897977008812446490730096509908907248758209008414908654811663876521367814351993045519741893355404063808288206219655280877247003155539967158957512105004112774961558772064215443073202768220474222297059523616643182955762214081725085553795551234242175176364126940306888419273127137639220209524630704090557054543029271721406067233110575330150384910146920195556489635470444895330431994974178411343001605519480316763164980917863684554040272389884909291879891935442661433456912859080101039586879422100657095695002534525568528279766537459954835252337707343863733992723530287565075396758554709212768332703273648658759300383911702596994238550165318033921659059291333194102452796273865079014850914964437701414880425758648459200178146747440192036732640061263575592714396344020130605102770498934124547121621100073233419951464802104736261726513721385078075568966645649097824049729833846282076035015000701619099342057354482192935098437704432662210345828224630421490463189592112480925235746807610902282150071551156983567494399632930702212387907569459711755061479949186811984317518824865733455786010945275570140206914004062430369931969490991997130929838808428668266327566346615926570577304265088210403926647853925752121020659205779322066695895930523642484286939356763520942634143849472263426815266817553950800136513797425522685691936404549330463741340845557905684319797444412659441376094756718255583972101994555600234128139089249678673254024439592810009276423230068365018438150310710422522650573997262691025046164465427578758710469911105042789159611448548923342979428172299464908417552026823658903580668820434135357996167257061623425738231769854521709277138391751723425783910388750387802275656632048680457243494289425519940748397022226181368122340158636537877719345360292666471402655422835255047836005809392002776571165929173171120855039356615163097295990039587826629297540153064660687796123109654077351781776363993004383449924166708021835800917936193603380172297733790928205678723533612377360233741196357760859891888251475099449825651369263362277240299444999178310466346291703985605026915480878549809726640309563019112255428952855063645152024431329956789808096294643475434029162386754266992324921814622092018154638358877870607218424151247029958899520864855147666266390039947225176910878346602589382923147314941281852594349044683087441307803161101055506938112235140144834937593270654677855826509434152903749553666197695404700166098777866164800889004077377857620826824091115153046132940960620307985948784281172404284094176075602203294697964472563496015833096118024421812235062839599044318309095387617178941392133311131179281162197801914638098568993734941501851202302367010923125502631490025354985901653912686936720462933043483175048810389147021155873910912989499793974853266096511785975521566929685959918263686927603728255078222416546585447358550161920600253740010743666715100956172612165068162319282164388908894952638966940779793148760520673510118319638882752219447666733062624627092921083698538367721305683644595372997107078031292351444384854810667051976836242299180833120456726748981358275535011739734383108860881640372768525411879762573334012337841371382978105781448066166713420502848221087640444606216931304151886704866554027357726119645455041046958967563428041993992670319794965889627240798597049499120596036963878580083375651637442294805789410322982366970629840501527024088814985636038406373949247265170835643216802503393696866260421208823394606056338573424003668094196986690897969715223576386897432318130701383465490565188836607088601505869837647725586305825966714108664426057351535952742310051275771153521203525477642369011013970434682268183610587178307714261566139438234004151428068251457494549398083862666823471043351231107444271778867169809274139282725705064629957829809311935680611187005693326322542551779947924299020943765087145194612020458932127780680650053380372243974667763237268741568793718682131441477908929415756148475927599267219223646155765123170624232741297897677983048276706135563108617147854003219923116965903125783986814729164182179071071854286138434999610423548737437815209844087839885308554622110618553368888552314394197703383281047585968796086099092015463911863681263308065399326506098506532584472808274291937539134024737653173745066464911528124391745768153596888473199958844052314161758003050896563893174899324126766775879317769580648421799901571197916245625196571474646787940372597726059865848668804186218612983531204918321502147390527516627501131109508471987941562770010186906405028974383633491110916249704439649247928212723546305163769952449043966838133183588065955450709127587985931845201679740981958114771677650820048318138697767009699202728946211775874029131279592930419578413257165042149495005878417183778464033815739041209583113045774278689573685447186247823313642647993525737333475588854261086571306976704249470324093121934442313365968830404191333438852966574508254302333950792643105145396673974995992657241059715568853879613947670793003198843581853282139564633360720008186950094305607798052129117399738314833202719987454926351784471720121542062222792620275076872099670421910737463509263518342015863614749718982380545250549374487048551670790934426969657272233553302746486706138413643102852014878002263304779208064181151404487107822368884946360075476560297970953345699417651597978478522050076140678949971155128702023878486218056874765128318894726589405367220659292577500829439227426364574672823467118545125582190869630475077076244891601366291275985743908636879425456248259438573110195365767362638668875018759498039686587440406659184480668156384505898318594151256064155213883480070306282481960057118209626514170144320976248556187974438281472483969209166112857675641692625641021903381745726420043044294412326999032070054850545697192547162532997849783960303590575922304412823817677887549602025344208738422481710142933775608536466479837871072117683846183582170168093606771178678798326790403121246206927502350342215962078082035571939308374234720902928341779016661584857853820081206957944422144593761185579158575697365991919954828360052556638772950456619095093138503498016727660503556740966667959318161758109720456687317399511089500633091146279902009564453930219324294138712643407480413163724142829688891562866881177282416659184034392965205437766475331092351704683811020788823880122438113502503512829779453743162215779626563238245038796744935615856018073977299026235372568012127205350006854256244458899331885580821536956336746478604487434621458367074459207997456746718620888739914095861757119995008618540516631813357708833827710825103893578844220759157759870655185571792658407544084814971157167601964726591020895451018137406561660253350134943730743702112963357647822791637581724769758701884679268499768100853560787487296292623224374547824138553200042396883852757015980449707028173327210594292374208274288938640638632562067549843783413429607322636254883129929810470878814884645585750635775186446494401917632475420599219418963497172769809377768326627558758862067226973702031355508633350595363282589566930448586200664546972570916191082486392445805675708028901754703539297638919107090986333191158528754985117972144560196601412156824442148416725084043947431913082840507006304124134546562594819686079247454691745908438968193948596272664762110070780521434609170678145763693258913644433133596251193278767079924475480921521928793775957583251404118545275124848342847328738985494004124606030695418390857365858305475151900665577464774592226406547237082047159377613050650014098396972604562289097870057116222324833856693098826762044564764530277650730267428034616311671756278416449624356786008869255331198424133079326422088082329274582274502752172799750222632248485064926400003425936073560215188032240930415424853395283374034365893401483451375870143489155719177243211387754908570810797076889009574429264369818842609355674271721026352746269535316725587763992848369529931318955873846478382546918883514110148917368427325775913710286953141094432890986268787999247571863870822819914147003722217540328009146111722194269671728306341354885942348206598551675341677055332350419495903703491568474609085913088957323601821556348929016365888018288147142130136620461944481918796662358841040582819764356365109271539784085784984681631809575643015299224462435206283587997991852054350401900860542611247256099801522931865845627810931081557309434933401175239757083293591271544760431354938419678833124994172983327345872875127038070771608717268275983223058187969612659688001415783040715051021830127406680092325991145136565922268356763310398328079065453059133251632869185056724471517158517320547961506519242654068105426401375971814761676671656385879161433207837418681419935484170552510548133212122842299591997303711834333932112423399530962635966566832075002674981436682151618218387402406682854772189526269125011713453284425254986447801248207817871478299723042528476798202063236722852371955203249102640929022268488829910658584296235164635927865460792113678067625284490020656614983903477102255936941818468259354059745174535343159992251762491696266061162209865407795553693846069907130612721521704764957712281969687239831816047147702662715775133706158962288359007864178044473519975002817518665383542168015176521277963261511545154065070600965533957101488513979861817906277657100576208808262808397666697287134279741995722342529927705534213593411012408812352286870685875894206635923020712981822479318673289409987175815033088867101566186743409201922694387745444092212370856923513914831429561664456124039661821876002569525545354299168580157567243775129465793296227029702077729384753431690367389316915527592650764145802113761630057369528048304066632896701503999952716357148354508142346581113326204021222347328565072925413157311880114855641468304313616896488662718783402192293083935080708595831885149834841714540708830955712694205164343077852011219232779849225095266204787623480038162522914304349351919313418651122086959916826748493310236369683889502819883388250585063108084014456496338474866967659796254171148765234402422477943096974654780475795056886677525229741956184173388690565392567950212402663202627543323426272752070310403614548271882277353329222375027728252248369064721442839874324073521087082647314354198560691067077149376321497436032566661274424397027286969005059748987766636203615630110886053787277521165205619554518493360211514248294365654168611740647742351562471102807392161770459447406896444913169393636086817114650576747935369225585134875916570631879527892454213019184006038882198780456811823116374672145915846292752954342694476520555532965875235168460317733438000493755479715044501248625864726764020866940980379023686032157349917631270810683311510289777609951908088977784820075666095239872181523000061929172520997820443312161837352583701369211377072218866793567408783578603882241116060430946825481380460685513937159815308170874227876342630944812622143896674114354709117020206207923753464501897171311660977607624476033878282826627624618695614024373874502888340208914396837282892048807355426487828085333568456657268361310979975140889485410958018729944645660927249571724581878579262859692045680986929552910282952817700132986830424392326264891110222703059930619770064393147849304886010403606839578575392242109311035409676657345169229265450903093976099175118596599569220188193859908568822428018812703637449680860709158278502476462713738143291342647894988062976055435323733062523759824974051511701347279091274264646594499678700574051493969163333733070584266921846565337860238987642668357109241659372891418953613003398920838373842356646048810215526625615868267862177101951571257149822323112236628701077415855296799997784901954764299108098137001320400736905594408453990488766853789498686318691655096990779635950023110616090795577362608995470070408299523407602083510636329159556785857874309428110979931455714660393711964556605842900870549638167300224952091399288885027833312608261490146808904789609640446166678288362846230245704393053652986830644952751017651087929957607049033679483641330071264111694170559542751278927939188118094967172878025841309736673133939377221202773114647393506209082476503111566675925045817726000930622008400325212236406300808503205822121290550887600430957210405177896292444839866757745188950140776975402482383220122966257689731944637406474250865655535028034092478393804019318746306722254112314793648153486766047841408403158780324739277452080700704885174559480668087408778650353372300556607944485923215352394889126274827333396189575591563255662592687008384730724740143383275128205304741752450991615832689688717249856858160313451246793842484616104144499858256300911987613437603842885745419111680715966883992355288953655457875860809983345829658143240372005068497255591678485314906160141594480626582037629048925975947952425938097309295697602663828686948615325616115124776615693182500541123426615149738424784297627113172288014003629332362199205567265576580515338514701203160699679133672347535764537323157183322208398795265599768532379854422727890361572926698560556823300868793128611977450780579325073445401598532316208153731897940800415029592577011047630959265781633580853044727932581550360652987756308380652567452569324595050672293884719718494275512183427523769106886701366156226841031831163642762203304925661286941917734172725733593747577776805357646793457491648261567998753689706454049872269277416626161488973978608692866731670127674060058308433807629352878932294575654816141087994501990124350958565233830070266529678925249485478805412127794836039114958541805495519422369650079971416499764862512607732178202222272004805920801060332117580534412477710868765755542781704107053933163960606932271708419966525409733704405380935610887880021932008725588747483074175436701008935556506645411856814313523506221646345537724359628135776610044177314837818458357794314135982537724317653126824714742639690469932254124050289196194495778828503524428029129377422452702195952162498652890566124802316613845260532747968190660563882334186362272227469631805553650977598941584364641358924107310315674871282175513156188747372051325468262751158199172843305963849573393737055250672649088884478841061439310725587920103829349399387160167303281784275975932078754324023207156640212906742916360614473807706437195407887645999995072335030822800056704022785860295392241561236115760582766120490129460364443987643129942549234010400816049810595692979638456928068173120985935343088197501771018298328884871200864091826486531714854409743820367613865438291781432684320465935948313730906218677695549939981491816861579232525158597797119372385368354522957955159804298689425715369217726256831028852155468420603006517155676395296981713384110683376210037310713690594456742603296493756675697507367342660871978783723526272329079856984927755384016593563625296186448487818214534506944154919087106732420690462415164366282452544086274207076699562990137357230549544453984959635723440961723759420603091091143739487799133287289522886223853492905637659142035035324539804990951123411985391287277013299080783817546540882354392819747220229521286915350246384923640237288572959407683241597540868618365308659957651126361600534123896005873636390548903164245513013593783190604707868603625331913364456701833451156515603870092604068267276562726263912737979940889545544790688423188675976682101135921290507957599276185602722764140502029516653609531006942684888659237203471377074752414387136531932454533086840165141128080336966579836450324350148996403144869896557088179669010304192092370141843956584019444598551070228500013898687308856495403883939180331792609397969295786348150889200653804906718994541615685555544241396864791516213044749078200693364480236188614854576063710975200280516811692325537890231294718866610042384858997515448824667280470240878890105313473765016463141810129873498753835994768959097729280385547437098278305832077925030873795374209443078238974999722722144465020252347750849298139273871029559687503404996068148512450543496030676129616344684202620267568717280460095885658757273209979941475252140463515246357112917632441425159920297153293558468337099460186023169302150408755851213836426404062589211500333677179326500258232754588881648729489804608698780662249319251381033680519231764657412749640017489881049798818167280611072428104182057356347507133915024174391879420507147205411382288227870861202841172957490088441778769714753365745569543989326714544079804227088611178942069506165233448709100001636670430637153515063065152885284806349402825931032170387126277134154620032198996642383492977596260600624569109055654975575935147353727652575118222400572420594061501873167144400970169194339303889091487403874392200590315904537385626931285170330519308071397098506897815871286901575886542863101124700316438091674770603941128711458730760220162581936021070734016745468299649635090353508789213744468275383516974608681172691319442318522373111724401049122429984564623930454370476792717329743470502935938817978607445309332117053970751944514161325979584121368878380462143467039072882634546751719274497318919766180184660310327047939681385621952865826794919488690191622013720754901507345583636115242412873688040830576754204087330965457613151219331251005603269096297926661607552179698923009348887374672741935664004545772418061826877114006286005964857553694533956202466817815640626080856959384143399945552677246294062590124274013195045989643836124663528808220268578000800595494536205078496697237928895558578633777397519656343164002346035286188609687513506526295108360684559553199187418196773494064660962144832425212846868111161755720235912645648293791699468304778760104627119593796365812266728883719841420626172179639614993054659593366755609905102448073210748141728711132399182155422165122406327278066880881471591852324429832651923540749990634997274799659033287898705092214514080036633360372790160028124831439970395111828823428448613192649561596948465610899327928035291516201598259622671638889538049017640803888775049407616767839937533083533105734219097568619305275666704091508283847119794029683704919600714045896297063339611673170499438593429217354974082190749209054844476171244035955743083827109421074848812130418123765859116853724087874923341183189610393531142465449524724446573375862785299435151456129641458832328348287733411026679039063328180558774806202083599212570444647878981058292329880253056072265246085334856807516645417261417207536236793449788686076185892986328418451277685162430418041856870959980876609950399162871270096130695641536650949644259751846311280121527123137719029763359668555981522228540436073418471372748856555078326328158027313661203080940880746354993131163661691655149643580724915601877107999532083910355016589579802426892079560980601909408880981357587577161668368808777210493927092722433878135372359942021637094932685149842887088112482338787794331753579147447440601331716705448833796538537153938547807111384941181860149239350692816345609408552575032674281011847933911823533956973529592671895087829999515443210924596540780454931636974111215437576444050570396306152762955666887109938878568323549833549073064256195525431825537874665397752627894287875858911005036839504035272872936186078830475984665016842915657083785612415525466032580517236324775121186205895318731726959705947282691587248194549892022624925850574055615398821543580587938200649902500206273575872609578869654476189916208785045809776686626236693829628813426886344691781190359075289397049221649807746535248187197020026493414564950088747977097908001775632829169879329720038818384228310648055789155271821330752534534564790153288076529786099814323478891385217727455213299021756493080668656418184445247085748959522303703381157154579838177115328218413988134224155150452001058278074596764570103369497113877143481130058414058090311600310981298330329828330828962773150896812328128535644157610329332896886943704708140281751905278326858619156921109887373421587685155287723379305835548059966551731428128639516775842974413055060511867941988448109966512166036288204236085897559238584686153023937222520191355456616481214344965991051055965766817678782804607390532125820138759478661342722338945217023272524588181759550399285480530842241710547137412366859291729240996553044331564444448851325733027766978950240364298536109730574681268116425163598985154345739431722926312011880288868311356825736435164944736161736323657185563514124637382195989381250149187003519922275618259319835928594965683067983577801374015143124919022410595669440256074934222139714678245508254848115242948428415264243006341080667132226998837707330461869583539756912579528999695590289946397147357987852185613412960482459245937417890640699145402698161328349971541322703864505214823631842664546236170823956412904870272219614458859070163037154444718750710060841110974277193259580661866655605822375662909477474484787278721468093522059452767946079915719410816187699289149613695393331528987102168537352356405900892995043656499008475389525251764620443866778906969880957372949574221179510237757728598971487843024367445326149088792149299503429485836006536546543750956742374943187463724015997728689946151308777110033013947428281976929030383031500891159852804190524036245826298969266166911073202883940852172765007451668813197036239392768489436776935487445826210930205336463279221593038145814721579256503271566871001664399951032472865743656551938169496308781011290922558159585101822060083633641015990155867676166812554616916540899519133610270022147060101123036749194217155313273635391356075122722259329240871596321506658332762013713916979742406370847876945698227923030884913716667145453697647410511091638213107143741758488027171968219525143370034770162094063560332141504845814514098060288052482226737613840825838653736743034737899334920818254768205103548743275582441294131316202931818780615035546343432695070166220725825754074913926321750811927516932107879512852538697582409334433281133891183046723010650372088488980551418727832001192625697739503595933124045376100420090892406548682150590490551095928702937767144114693191381063703390623840757947596608471775832467587850108777156960754687551708914475145588795231693688870283187366808779312357645812060509356776440168135253931548327304045822061037128285247535287884323347375775679128841311876525631330092189200907616631183614217025610126486249873460006301028419002437735273579112816036597519777360303793674956321281438333203929084072596890104359142101179585885543246894890650131422232707958945798530106600154283040089919359661206604535636091879744069818426358828212293585120863286329084363841248512356530377126695273114665017076955061108223880661877759115351245092976125017887049853890660537116024650328569239770307467058109999035399595762329581945331984397141856137939834332298728326523168497140536907377584751451610250937245634685785673531799327669220397130520423163533259089941512885978615193342801186861946177760632007438304970706385211112925284618557409143166535320319192951961277260432101548155743071730190983636585406784834813490604299608254767259460291056919865315115434930504411865308107963038657023441276116395702542270399133799509806061697815651095629242798465179806010295419430116645486182949638683918631537480022820313470207312968785857360949874192566330803744151209978746161724579037663172551737761076985173060881120908256270780228883333328298840995934321941712607639867504874885651939008022387564777617053168145473962746595033319589385273762724848753428111379616152000510967057281231540456822728449346865335882822377205700605901967302177504171593011942920304457821586104587270926246214733274531535646856734474130190918948063437861490266147534231545262444375257099847963199268752519578265342765375104857610719893289423940717623678781124107765759349486801524501608447473971758682391604287801580412460921559875839854725536311149178928451080915725607210811731860915323368267276751835482236322992208881198347977688289762354741949872121231708728308490938004825032723505315362275863864754515925462457607324103953033960849240080369287543748665025726187201146207125323447085960918788817245381846976274139324292182092790651062799627086637262634290727429128717591183395780430749103967259196323579548473313489311354282316649204148186446244698768870384086110612082554024954095912802296705281349442468369647194781546913257518189997190615808882056672095328464904408627313261182953225499675483107988520624907359545078537309068418623763735869886003972070486207932391687162533759849546378261400374461198269580105292497024516688070455085435089634200019699204224454184422186326873273311178096748257716017603742549407413261991463838084280774793885876709591334579721817393189740109788297628884574412993044026441214087903004307516571006839000538397354098079347426204761585343731191135896179034709213393432449508284901598824252767874520836726650762853533517329010091442875715574840912159048101952183228970964952864000950765045455516768799073772162791246870371716444738243382374504833508346286218460083421507707746029259462361099812437653824221649736457229874082736042282339333031242106114197586328688279822609559489012614585964975123805520057710254897902390646247279461054334692661504646874283464675926298453945753917387980575903232210538819773435108881436159223068973903603322479833529461544004281774480358457067656147711139062694463553563140345089617386361410392825810122658355902179758709484527544974093750624593409986690962109693054300085492126748292921189485632910457693720154778871695007934347476407941190222883165606426909884561445173547408592332222912323777520103382483749861438264397360832372599832292725599535157534101835972016098185342274190433166144448480126276745798757237664903586748587000100155877319790102729890922442904786397572304590391696760520603279779789597238114528953095128415440948889498435357512513704729449164007050684317886740614063774382688311002640115451823624764766750073814559420344041612779383063765716864712067980194710588638575845692989128091029019989177044892138296663657750392358922836387918664577925027038056649679832590186541686175680004125883794873269936897024926861656242131970172753589920052738743337574580463286745107404169268109605771485463080174273405528819612292521574475382448211387824789266578809770626605354419463402533771432356003264781336512612514536556677462992928507840789777448034291470824125743401947806559699956426603788987754579391508771163289928535595284665160201468945408300864306559680832593827345311936148502534209487460659311634661836393690757229628235963882085852190833989645289708153150921829986174286785234750821657226140719244078435910743069759410139490075186552878099980155373872709518608196706591113743728159080221744976798882530041103776646678061121077436020079113192038425483061731901677426562001951876133575667052626969671860088199762675081562563079430802585798312633061123525097053669295378957602784420157180949080153380458159767432343482086152442554684574876386816531981691658340233167647418558273388458749215921982749113176297381935738832553014367226021770638017952768460596818195741254642784669637418669286610075299138766144274786493089625865547371217440308745098141006381082141412665428278482180720107860134289823863153802306411722787792353016136740579211090324729936336600452585019405410506532542528756687009434807750341937717158511933452515171531912896761391574051891727595897350309426553950390748741835648842639446709822689538337337261061189602119123842587703901562003910961416734099540550262348054741208122395324912864997229479105020932099986587822690175255137686915621487003668523240154842518427066982937835872227296071010564511106226173686719486173331087483081004329958140803665249793599701334337139707484907137034774661385950845978133591692679997466709627264356253884340807795273847589147820570534021972360720618558049450074633457922273808204364288922501072968728978560353966298576265918615434592091884971811583302810014835518109488001639541122146275210136271135277152123556709325573064876666369379155866608483131199015871209873796151759994443106735714708520154287730591193192180005193293006110023338668322200468131834577952358185599689336019418783085205017180081615090948119096389747819678160240593198687587124846710476752041367881762859787891593082886963801186797551160751811437808292030381093814656403114445753874465669356706952845388341105627409180560797700003192902965888671856460000913683228645096340527532533743008155331969655997315767364227854774483790728193050045139634717245013575328115835055339620924341397734786075593659617259103701672093879964720755453529647400889375296179916896789759394746340025696493977997661681730447877359872638516104991003473442733324743944388814372183378654096671760298528810479164410736915520993926401490197731371344542928374766400060277113939795217343495085927125035083334132665869117981312763653166767483749685373919189609831723599443966592531486076942443438074243909584796294650406317121355538634779278810964222413800187524623074755513184323475825138646060896269850344642319254036292165099153365893646861021453381938121304287060169103109000070044282801298348112747667459504016306710768854407665001186739217489048225994189188986622312422439694709588479747243248606651923149495236581074131988043627388549619640870872479580960083376143003587114977376585309627118139063452071362900814378744668643185730538107361192154222960035029238540234528287914695771024503506138862382128927147373465271453702291189081223501860161298735814586064303669526025121002415413036278726404837280318758796667293285085654950327780451583644276768999838959273726930370710373437569377541334102405927992345476652750532980733954250146241744662762687554769462691969405023807340607451486484972148189769087521192183433269115542947321862910874889924168701482937737556915696165356841562655424332339626596528874162485503778330300292387871002466908851033023337629098108353942359756340813594894140285486061327647389058840266790035558329073022827610780173249132459680121239012975237015136960460573385487137006287754548730034052141672732269819856877568391493380886456820098451394141901099392376469963287371218830825765723748436824777510115830728330584035928953848199259903428573620217393774572540582253834263099888814505379626392156547257453856085032873562694567717140494035758624226966476095705703212074843128059051002534679048550166956622870344981655437552713806089523735545794030576173826736260489302121670964982826860920401896109406174613735921329940064643796358529785346584908963471648716639270834999558356666152481344385299408464756985312224411340188790678562481949418690734936315760548584170069363475524248439925879436268029073838426040734682990992982432927757086732225731258676135918325335937855312638326090425807197924990156819158912628654530341711443108499386459011425699620585519943552085421980705745158749701846408755677160314904097743373215409132537981852590998053867482995555741454946232037996703423099778166594462875218291041205842239967151155793075103173868614917510592978961761115505538985479511319467861794281330865934708093087809992695598200884273141702504822260646930100035398391356832356919806021496605453477045047495220633209423994463331588410938288279669128420297920894235088700411370560552818424085558221490134790028282866706423771711109840871332987863481647708091384802328683136582599244730298184632967032846161951367935017338538904178778681939425074352544364094936063938356056791010568059592386104384411269995249021599031249447666837974403945724354377878048822334640818609906297322237757638539838261929449658541974191218984498190824648186246950935966626964560575115021905865015862246801643816124745009399770703440777642226125051290070965051426322277884722617238808805737995623534450786069511021830686880157551293694348457452448169303149212033433456561349252342685750360001440872586126183338141465028409956933894199853756415366564586124988052667636611581188511283231803065284050022991588562479057754985314718053268629224755342876312699640942707559958591774136212869638381424904669048041989095645126822691775437746494486670594827022008091871778738003169671498795118801467889727720192436740742344147951080888990961692010997751278287262159191515361042025072858570121734609536040208905441975985027380293312799880740272681643861083540031041018691680217506145766390159557010309489978123717591542816938635510419926177354538688882198903454743798612867936734428341838517936866261100483969369730985178600186854139743300247023465008774446119105868101243147771987604662071435924303578056573971555142204335650693101333625190861784274977181937568212766621144313191917735584563076058231670634119089961499768517488205337266550514349407260050964578416572980232128595510755004748239044195543373945397655224122234199905159209834917402200436985480621255890217286497351170542045713576451902277507483362990262974070165432499042565530960606854450967540448169885198120212007611215606347646720754573490127559755078760189914839020573767372468035629734312023362865815141529342173788177548363821614803709365661344100066623520878129968671620062867534797860047334638709862408880212993495936024509240787001673141511281588997108868114862135269618882024817528167925318562142868098625768349343424035886233424119155709331518751252954827996457958982505265900887930058222917213479793874154238694112454219020538866523971778537795814266124276064591985404524268876312249287965903566943277725202024478734853591699134213898267287178270908777211995251876515352298733343917850073673812936612300945289765297988529551790275707616633388937447978070362682492602596278332162666173253557203475840269252650137123210338780800837685904525514327445698841016048080365648131202934322930610501823612920468702257605622332387922134633591924939253959372965541350483161889496353243364685737760321483619898796585426263168024975979350634205603932359531118476524545994831699511879792009900450956460215568910381217659467663376592211345295459478210833053892623502574170973519792925608403840054048620633705247024646976576441823599829996638317297380920194062002656969103946759353711958720451142435831533377781906002965304260344580570090346759873868894182010365328440828889878977697323916442930848092526396914360224516352297197243851733209737780062682418523372749138210093389716498858154599846866452784592739111992731485871995257197319827125032644072676541667635257175793667909908491938879235220652245230828471531649310183202149375277633071579799261523374276977360025559861409880256949451948205091054771133236809126286313686476266039820281848646747038880344612046818655701796531684224483129144515180697370358714207005553209557133580289177099790791499772974920502912317104698510245396151550017241237923473507041642684572057916172773893242824828306158843241865852782948289935913372883677040806668061214368675962855028518269484152279318193861458547181763643468522111756608678947977869449002825765120352532957232998420249956902493111500222524595336201086179121218291973779691162366484983047667293288517021214854462656781814653325432256489788724960134108021911324102988586338336344950623207044116977435180112423686544646644097268883000147501077125452708534235851329840893727087554923482558046178443381402430937959050183533619774331854159927060467634626611701260646733311169175142698008427236220101176757282818673777782280080806701646443183353732155065935265707726008503609438733952996197660997013842823686904217036242523036023222577065129067352444317811279472036442228146451321914315542257172461920232091147237446690343289320888711242799707876562170974859495266785321736897967403065105087362147946057402886959898379571128187959210528811513374152661924786899984803928853165170287505642013979028212182759971675177258647264105807282425554041884532263036839402791071196577648013935220307444586732374882854507009412762472832000369319737529330273020985296465870806611213228267885099810395415405639996963367491170035366094416374558027736028222083646285317166204377328681289310802241672288232169730075206330149198111265646147638390212402753793934510225403569429774301786603083298523623680764450417766674295132996906216641122994497706769415913614941368093186631803499511295677413445760252475819989644872596454633433305465691402477459572857471940552295411750230619682319683482538264152016274935106857349289813997823852438636669839848724267423014645414652747669643491655075109995373713414058450652676405598497545102046246675063204640162863929907921689191249335108384625396115275668904110993870389528416383913034822009007960951544465769512789977622933265668545573080960247887546774278345440767083591686536954891324463591858487625701007192561838379871849676431636076742579436247359267600240707886134984485469627393865683757810245291204775347543911291469160943923414191484716172867668519363323785397132250984603250121758335169137461265670174657446508704197895054197852469611303377101588743988478815370805726711568657140205610066030381491482956964591939735427830379829587233875548538505001225417765559812205512988194868175172789747945173744570268888843913813643555020714408092012621661495036152506001563535334356035946544956863722894151742581453569916744110872230991893959843318726095761725770594506020397084908203642132111887114482066380403841574406670775418580579572474041952272996589770405685666431991698817239949681907311954235265857138119866720220377150559948965670011573673000930576108608750928612777213923533618331167560811533629034798032431239579587893176839602534944383526419325567594234253652162613519736375758399223733612004643133852099954477636668893112842186772252977001486989567329807783973201138900886008775321303414091536232872828996241077495659672429903394576477056559089083877277158299634034982811660428032843707964803135423550753994227470251626290316813970833611958516991072058647224520837125462544033085474859488685109098799847293933681770563491445505688059988235086921194708724412030910392356141198892411394322943565935576498272727867787308885419997263249335134376980171897850678354864764811259994852245665012599442701451559106004701298039657111899958173865964902648063597419255895273495778341060736333753051296980704198612994584803096962594138957771411830774975258287878856301946364556548139089806290013750529977019707123082442326217125611594518940311644770296979455578741016495683398022455425027351998249439531177768943695111208125332208950146485916721854109445945631531044785353799148082682495675274151683761901281316189642908494665781394374798065625370823036293400791940660423856358703084153433750009032088580176365359745480712372888043569422045019108831143008669059208014713099222228575284614668493668690819973234804369050501717254449535644567164851360712710891673094406003756576264201761716904348711534472734217264814983550035615597385481548038911530559310032038726710013577696641684145411195768802005836782912784802040221908954005464348343654968021943419730326013013621604255629187821401468365595922399644129541054491277488232021406157119585340230146523024149389350248533200446563465631156538938594049915174572218620521309256271684897183600051636487968474742063388606879264778129274759914071664625565769160412483180675749394674711022056539005990585297631049330050720324024433166073775645951648666288634637935157922496689795620755012669439982335224829081528642388265151417291537912010828940529661956304633859016186864373742900193570523831765889657400932868964095735519718488036170924244781296038732101638084151442529065643730287959329954724088573778603700623425224710353614833457708975043036052895680722341660894169103340841093054824703958805403011884990222891777851474268165983045060625409880853112065174444531463195743727732083838354773918367793495030955879467317897055106188960885597870699634479733349655396575987966386249400567226763746181117331587789284670820617974435054973242923760620534787606236972191484778219231666620101795214175051443332652257199135709318369402490736291410072359205729168005157292145115830133217878885345080947003474424843382681559242055750434966040994917864785733153867719055468655503816416143907026015404153284251420250130294475894135737096569296179297216263379460158812308364830130386957793281370855950771390494330334569352846621733494795171962078895249138054574266483700151357915326746415649592176419498964586843564400732648213546579682222942552411271632493475026307041119334627885735931966042876058394429370694394826919355607647423964939350319549165141840258054818088208455347042144010396747549188072117369646635062375134212169857094115089694128702228888446488782519520944818657350648512304454383231430802520525841967164902798139420869932614568739348000343688162484609851682839041700911297536056150720633458327559405639597410572845843697805554349156529991840438576403114144567205022672534762764181738957709587694295420966055621727910452072335420669271044462590697006012023276578732657763783531410178205722567392463610354850904080405892306694363776288179107344627402481858978103341008600549631747567100452494601074137540606637279996815924759589823372655357301707367626371410446000558084914002172112204823134699458190014549466391864553759400498385729781966722095137249530291220741438143908961780405103301478539331296947431112870213052948547940516087000524630926199992158579808558162536987528716090561026669363113051930932214639223392402666435361201440591732256758563806236312339770509541055875813914246750755251853605229179975600981601529983628231480284915941509260330087280822209284667758962891211709768550300047007524958384622326737188608718766691039132380323385522865376859375381126521041828162824734829389421782418326194208796950270795484427631229534575838959938759201182317518861120290100351299462407500824497393371810912629019897243765399127176005072126752017305614556809431403796359397693521698261156755126529066008167211521195211578415404788938982138815080413780253764942681853026884431072915231804699468754921153174623453806039401249793186226587673607163112233818778742161388501976500521600844192741576030775384139335849069026363452481256632461345190241429702411821572557048234842238764945324873136033541159057962411985831808601458208355803032030379200722119245007381177112464568316099312099908623589556707351804277378785945723801733143372042543420583133898729855720372126331518600761800158710493227383100412146122792859992333411359255042611554371265977243450740452864792743118343064852756993198288926407176931174411686391032245923828288207917386224303820547969988656692620959539186853444219414677060260752562560515503320294375106966697321368725559599059403341763773224074220172191265769876991665159416701400389997178969714637362141325343057369206453748787043698494506763397050747027721314196843329980100675859741433105180283971189242536318679741661881821523234957107838105161007170186728277192420589372679525951738529036485360995431553415122975940924457748438847853048091386791181596479966870841891590379089289269004997427282222827457668923659011702870742419110904845533217377407741701933144472931416047255710082598468283224746266433431719312355950871632078651888606184029865084459041021725822644106763410011507973080751661814603686965611818223841077104311584142351938416189265950113879451631408543450858546705158922787915100669148297105921506236258833085365500281152285822963073763141350489356493792755081313714993861516569127524423891056168527854897627080428100400399693535385681615402384324291928489640870356668668273941512415699949321510179309332147794278538280593430776948331004131840623270794854897673771037805439594468782774597161811455749668586233441730432426964212591347984501927358933826531678846884049184601390396195883320537649216591603423714594907852702693765277739765535027298735775978579268014897526413486937300436909274859121736193368395613720531229937297928412271600797486450288626000101999906196386033604891145400556866181935455033725198192279207780892630210547315680825705704356948519868736589219566645702664831956112447809356505632938159901696581150463396701894814948647260534743155510471833127796666076229245908778286629506290954009905669744291045886664083466135852442615022647916251752040925598337617792862958149539335660202045837488828141426438948303649245573248147733096082631609753361478597271302201774691140785528946852724180809343284613042545089466045502129103770561720612108501269368266624603303218511646563218161677415389238140812055897388291233275482499857687510442553996083903422829063168370035615088698037217557220106958398084385748720494014950224367151217796141685707140990392564769475196169570957585679582774133391035852349074859157362818672416898726355524243353043196873284490728466211981935190320886076487334801030721924398475800432620630674728150537876245158412491915684985353376224118735168243862095637597941081492266828408499288026827060457742986976621885103888782003186976366250692210360622053122914699212671237418577048894190391627293378271161319289446524176269492488059939691652884700952222990521658654237978150958225125459895509589022759494278939331758642414329660543032013254169409395262835639239491948007133920028964290145057518141180971736235844896634978848970495924826322672372322420050600762329327555537607174900558682056029451362319548136499714539005015107250142829295518005041399207015819888559186519833801251369861762364601035837844166292751273546219803690016841391182697581314535280912082020859174509308336517407251174796552045934106337884702796820364699448654838179717320590491249043882540875305744289490199974053304111238413153513694704979625313692288302165756692138198249803251123625926567480393444260147349864092930334141164283720416698817918803560346318926855278621528624561988521297946495603960409865455328849488523672667484081742907690683848033005016281509501737189162444743511586789895145968349280954741392890938001110793667456985392538394972788561814122918760690615186375759654581629553943509083695469964484655987615302071095577622676113765817888068122822047585127584297318081456642442541211513783355491988418849262331750230426178459799015982000961425535215581415480484592403947370126592849588903736126494904789801563621763920185588872018648117148214176392652108793366268432253468795625096848717146548655958013958700626637896026466917232894882499717979954930426946391256261837944249588125950289113067842835828089694953525857366738186161356652354041577650834318754248210581335559206858267829249518125144247692190206865865189215098545551614371967220722944377969051536097857431899047779495546089050059472090720187405128661706334350584293763804673740403943262985257963629243882489473669952307523828860913027811671125084458882591251774123194139806838040032108114787335978184389989165449768229628368734123350479143701402840762402740745771288351546424647796532773211714873355168904770644067376829252899580012665127895391065867390888146052826405464810225979011570469480758967618991740463737226053689740572755539534112920168257688864197425386187975943757505712128205395270168849008952536187786778923569680520587363437602048961463983394813388172107404445582722821977024440817366800299657019205674061302196094617200365352511698490583954557003752414948679005741228221354081670497640008054970814453692100951912389882743517729463117155533693506661184912336574196462315694581374110716314200576203067665507914601110430925989708702857442474153609285835673669942316753649422669474043503127579953416635489951968275986432411357407209927775262650815083481043664538968621763129081999639488022283096889106839809977939529433030168512687057711047633249495864818648787544095271430374212719163982004910606672652002951538442969542533603042642364541555264876224920371748125048902637101318263229608354516912322487080606516858249243916322696770367217057853970784167355112450285357367676042749053304686306060549581215321845424469890107672982542032219715784991688762655502279410709886231871017981945791551921348628729915272564088698054643486000218930917287230849124484529441566134590396411238492573844867766572741808290514018516188311321724237870494625307928805474125120737907751160292144297979681572742970678047421681017871715496803676319589208566776579249224406554765808066925503553156336291707155025782747800474426433467575183828623884296979625917293382344845144187343826188833790628199844828963454944488308740873712147557273215730668410455778802566078434771961032824875938151007090928752753956719441091684307859598349535347615624169105658527280179422452685376974170402028223413724964091935798339068892878179441997902933513899459922704826723310211267752942765340557217659288667993009973986239596487097802473523249629985309478376209525087028092853444357429850903499611539085675986629459867686829048816124223207827681573507681992445929489353955385604203114983948999619293936221393895857604508002527387254365860303581750640886443364795871411537876868081218185603643525121131607370012434261546440039677283882305048041915545588670009697225811472067024237415514039755896862738536798517027010490696449313953097445524636888566006864582924075658758397476003764368498674024853823451747203032694812186533550489630049771384499883669723120933509176543361627061342190533934338805061888514256052347283407598064022797772561432159210657730708935177481369167631500883333176443041541298731132426439045000004115061159864251500671928121890278063616974908076345340919596751570152491361793050757067620626523522967933871658928856501433309777686454541887431692806663309773572527986751414034170821723938171459197651124149627982211287736707754245948182426210265045871221355732658674821070154620172017727516728053552906185771998940171041750219583789208241135723285305901951215941681777172632709331535972706167184171816989476373522386195959340590467760085452311651378169031263974898213516382129261158916979361573672183062357008998154351653205239322402216834213621117111225163128690060192430181728563171635994938231850407394067115399116095651070933915270928441388802241006395213788695162732438818684068495163634737590446149381600468200541608082136033913133452033057558813279490029224703087430965768608099955701493438235020407317337732889085345630316591128346723361066549426851492951791155766053671642968332348883512351247197639749220680751479278521873991685309902002795532898608051477493954899894208639836696233936113265491390934882316420796642531848155132853785412380070790372754658875264560482397241762125223089153138496152579678783071687869901759596819424541126661723889887115888986425401681884358144059634486967070157849896878850508097215045747081905538153689440388668805613610558363940168322146591455288822159354544123701208455079669339062876541539208067216572172424735862556000662175492310121712188856394539238599863898409888031874480347519097186515772876273839038819201048163517512770946875036524660916241946226963557171362780167255701718166828666733120940116702983313335943374192817197178944167236707723072171815760297685437593836983067608525336694113276461795029628610200501179045941125081779290329138218333999814095340756208124660672102072968278325355192426715298016713831297911807995048458489654130168299681023404353965304923078978073358082343133258018482027365428283669164497206346445152460464452428331823452252674990281717333520722724683981762458231242904200581124962516415248661784826392631734505468962592715127664327939310611250970104111655553297259374399000033993965647912657285998910855198075512679704614931692639227951243788769617443693115184531125974158087437552527365951297760602483893460858601437088888963058101228124134838859964607916871623111418720037763756018466273100232293759506704217624660264929645087121729363756547005312060540693780090364625184227145018752926596466423856522103132684923527495386035865003741517621854731838298195549353727215208617400637799079644509252120033199575872639285197283786991070299743862669892617088742729395203824843326510350075144466598016140017160564277301807805658246593597149400743058429986012217877623193888005532323702902996967847713109161188676225581427400595999217526394180495519167143750169773123960553396587880394954208252869218823173679767242838130496545080252821190783735286203718130477566353337438812914994653567355800162513845382453602157822580273486210250498278585447596184527109844437084480399857704462749978474492094883698013687780415851506134229877104124677934457782896449980631948092618647537113384888858878027783861194928151119158182767443861921649050680394073005235782072038889839907251237053906059630949943380232118043930733591722527496594621155642048049650886064114016931978357233123087281596135657813830023332335971819394339684955102702319405822867173725127294067949448566247716266268108522940050003436355823354380737691695008517786522398919746410256596585021719324300381052823701327697354822459283751823045257832389498243078135025384268117617260337163912442232750515201136204351468001936943013826398100129955136946507584579638311002002766918003318636452047049423209874774900191011608193777616488984597569341501972310418206220772531412862933787462019526383866172158096165512989206712042889474131761498712143892760490295424129187179164021776823849461305527734447269619852246662608154222011791166833553724811972973623437192215991455146361993886567015609840054828736960125837412721634473623205920547454536904788475137114230800801849351240486282780416926597275914889356915155574736155037151448857467408178936886201766049093707908765998798535930280544187763961237342548850450713211719590378744642785943000139208793133803494557374882997954156891694331862817521215839370109997724452284067401531408743268992119738841458981467889820098371297148025442457310855640185813131415211115901009777391050900975973481574839496184395522218454115201173936736350934186969945764023379879127524269963746487404930554538610893813841850704785004495123930888223031204709623718478130609185480105205982671991302722349383092431475547010656052039281907238401763070167226026965059741293317880798549409796264912042988635393007535583822506874438198673262818878020250237500223406635900767342752727545728935328464054416109123424225180991049453474583738755610325309596086026388360835207556344254391914695871361226549953942702673592723498115709321490231357744703196275764902373895344171108746359606104391831897174718993670988327289659078353058994768909996239756554635399063608884082038423245664462127504743553733554894466907963702008625092952197750220689014638838911626157851510766696066466721891858428265352194804058683733609602413475880599976179505778444535495824373951611975080074653648247780793293566513254572833998032941329697269413645742140488941705139921711342244781071858510309110036555384825443104897493001556342144106001077989075984314828202384342913574684914778210357649369721510815874244844234824889765555344228430191435510092838925044001336792632561421390242200171838612003014108144888879665840825004744396358975019893678754870074665690302480075476824231164901522012405558885773661478180802049159846298568456358141258557497257582704518159693216833111672821946393605302984783926574623779423228412009527842133555518994318386664506938685050805633166855191564607330519981813729893465741975484807128091292065156769992613133184598623111662928726517824322052888057724511776856198216257922736101610801561564407915415873783527170904922279155644520395969121563051008019824801465724471233012840901457837421601299428434429514084573412858056319909432583273228302970540092617259505165431579906388548665548049700099824114701355947443019080774543148832219989507208989484948706200872642740894442348873720274330272169684391024252225368218327393020977726267262389775374787667493869088265758128953649212106757277022203455933761148345064345595560304592241380847518523199772971144930240561604670068700018588056828994216218646295568988044346982358344332789845636166862491337077920832559465476522362849285374674702980438107732326615210471685699577996338815106638576162450247482721011293240166137597128873586526662984851541279846820802418146492867653857428223407555943591223466156097113344958928252176018429734375914010276103548059951335236072418334677960815657046698502161170483059876743381317169525476958832627627354272894826527565079487758456894949822255895164889947582622039706526951725720196236303861577253718713904872760877460602045148359527870108594638073575982218339656793707642631075073469362578940816427938679332992877182307201880322478092413815324401633042017647583825692250447254023570831985609006366451341079918490093819669336936764914249561648477204207203037767941587935791717109258212899697741544634565360932123791031520543933467259710532032805754027179002154440741181011080532681596100583770119225764051757993998106971139727314584375363820088814641236952323184791401762006195523395134167387527680031378226249784818281069447215742376756214466867692610245724528135720683103163925050654584739237196799944359070570144169455280600940133255883948567653241129667995928532724770736829627512744761892233877089562401344085180280425347601688926484793302737553383244422815756890504676048100779981520788083802197742944732507517266872668396495790503181301172148637269001278274316428363448443957081918568004823657384716302128135940202182034619487985430923894004319851217361625771035420296840747760372937496160951037521162680097830671680842561900399288074469291530739908562277846390536002031041240990697937379114343908960885334322333022530392100697754957101122066450298032133913668106607804569000318594724500801659599398878159356627530774882077658888200514817080071479549752809160382488545977290339545009354893618340694535134583082565985901595783080216378075489465272093978482852906594837395764608401069623545356293424477684006874844975125831466075151318334758125131985464542526535815439015079632697753174789571831920451318149936974222425162785234034512219261854627508951638920500976017683676348768844604486166071112742480416969951428774544403642827946511709032391865667826656408647600990992518648248994604842479523433834749909222736571402325810734618575385552101745916472542110472902768729944275073960952728549569635717825425750776882221035010338024386225774485371905054843058387947745570922393068451098670388815127390273899587603619480403342379341328775573025625577800667600290561390106257767721595068813175665020351131516459205587228201748303081116627119574997768900147561544206171907525367391852936876239574068657920228356612138220025886971582512225107882107745151707122766950197030177276625074088926132375339180486734773923515391510389650984226161815570378549456303614534947715383075664001098622108835973886398294880613117281813048284226412960650932676325774085616364682868577834735922489801834013993214268951328499213103430018173451068289758588526553298130326842686087863521637916606106471283782881357806661750052067725812488128350466386247380205211838115681586511414185762027655393348470241218013118464639171953501455673545159031153901834939221853821141645108628086930114250183479096081464173361603779289225196977541654841198735611652648724513964373935003687852812701818432951762047602210462699223372089977884632112789187660663946354963586932578093997010986090302884797181745280331924661507783221152126134952695455893823871398477499191652465523242218613975469313403396283746860895857498351670952280381265887829303013048021440798984844803883689538481318332773959951635641501632938011716523832679472646842048090713895607311660817480521859446684600616914983984323055592933937044712672815826907440085401854715652885986551206022890763234030460945173410873116803894631176245976109962705112088863132292465948844613639952240290545891959968874195347576658518521067478145083170283826388356163553439449596603427677185957307632185294624418127811207108723194023895872034020032460222898135267527585405860946669370486412721672733411261079786051816674449426755873303651330280489231605420886243492226569523017277444030210067538220865732519301161726069172337571857248836274180267529531568091205080226859804765837011388409214761359899259797482071426725760929428264444562706716326945454331168810988604595804056917743409175423820146985556572195003924117316577648342052796942293156501439575441264733543135124871823505041934960994705086199301756420559351404536739388670406102259916399509627062050788109197122482383905346137969151004154470159939374635359203023806089997496028766179488045127637776162601760089502065547699096010939335559271463139453392423704968334378464771560819182398236314948673900225610581664556110127885641592121923110254326305301104880476834671453142816952306178290762818660961563978271231273789600086551019555302695297865340623283951959265496013488133598468808105569363062338390282221062748222098484489951202451261997523460638903018161649358606702752199830017397378365378496911011373321643966375559045478367461444734283700129583698043943178348652421964835611652940037767705457237210320039323095899904655369557702787221319587884839273686553946714330926919476956623212830802122056967069006408665510282917369607665441265678885829371937114488255725111503385331890882662006887649055646582942075602366223053399415692473904860522526768474315419134231377446087860158010063119214212946406178665002340859392027128488334043585123253713356083020047134486646354479832826767795050592848578869529538990041978221312949857700603905541900049220587411034235267616596605338684810424993420999621446273258191501570356337535088421320441108021102500067677472005132888008967115668393382249556908628270600954983603982469605494461757324259841763261616240707766100273673525020565906715771395026896867490368894746815643141119988316396557150730511520552464325947745048498686549225896031469068966590105143143704402008198114009995449937914328837157296183958898086227278775326025459615902910151613494958121615940920878657134618264926832628956838172943966811539419036270623524551982259803059779906397753387550852670508740805943691944266677717665948483056476289159487586229931195284877097985592982564467883085232695103501192514697237290975579208015089117984644214882307548604898908034959194372715377838301831488444454708873997755154682149154946943548703095542212510492451993613395574085581430350722432042843404102015481531508120873723984988011248619121939979621982531638518591049892990632466618787670676095542328796973245989855661012131494671561071361590809970977662860028940442804502073715091336137369675482992166038234951157034045896317811772114440723520967962295425397960526416763042058645787127067628172978727312999409455677769425737982834513424651235414689685307490969281681493281388638884506273598043676656052475337698727174577884331682431722023386809291152472369810662488388559503870891946478467990125112882748934580540097919909787350778097113114031125103981653291292890272137950211803030714778320810293641971079290611830158082677317866418393211561110664035443923696624497624323819897574206752621656774362743569286685935859342851010228440386886190092024252080870887342555984693945432081906329125858809843842863978515669926466755093452777263110465175309266064956073810963659138426420883628695362929322199802182848204817613570758416248838092630870553485994983685837595546594458600807336157584727204641535728634119603562889885982186368631485638165372534460062490820673546999857789090027640114398825003475877096842471609177396880077965603103424981041054644072909384662009283964373551917212250866229465981191630987679287154249116001438286284298251362487203772621917663471595647018327159045178808311051111030424433465721060337699173585465172929275679773505810883386097839151323371462026062284202750856571914936613096977213978890435083798939618470547370126796629344782364943816698297853896065823937247037543322315406285085971860668449289630331027775615150372525430087774751951503918551266094687213065194061334119433407133701842669275526528834478980743102596870885448868131980628399990436138240922647831502888859142890176247026535580190424510457731845462352829137231581669074501567801623258632226715006264363176886889028189021444084760240975561575124988251004781553731072951564161760396665770340288784337734708646158097882506639600795025867496582580508194163152191759220159214537991872807051904232481515989472728653787947519179324240241533405822400460707796077732742950310569560465772232198129106324248197335514694278358714352041555395319738302408153098772684850183727466476250899695651318891268024754494009937625521672868490544161056549671530711290677936033113172613909918539422455574776770742449950326466079788748464760144403797490499058715434771743733298134542293661119361433951142580743448021540164033332954571975672527095437754207320953307144622267131520418657959944568644604739174413168812289651665507960899990272131747736253181041341942491996550787099869262295659418685044564219483809918299311246530357857508214965015992225214642220268101484054064641837319249835876476838981531787795722064834134667294526736696068929884012916834869996265418509177127033111406930161693505515852079081433411912921472306430504242961948827797705445394483513062478415775126703318593908984886978839273729794538031853652405279575995955774744336887046560040161663548304497402019623889002788912386394805988587765491830304200211865844387427754576310624958378187313288633922130557078590307517072203813787828479389109761807371913336013095607251193648475974418791950567654169554736781966309318647601497717721393861989352730362480803920234357222741485044937721761453603775002991043024698236922433411699363559579403692521796909002201666042374834733024918139631145277631217394353134127226556247210112509984788213543054307619034919256991538530697576619626126761319262872862437526618251138006240451202856463772786125918463248031624496651688927787842627506143262289536263395612194456419735273371981699236230351120313522040346227716033507177260733458142007250372349139432975534259394943019648233953714280656626501288666149808104240525721485707001299699012473784328658434725980217156362305899912504070224422443121517700073432979843446765996459484611043704534023468102586933488241696827065152082833519265120192626085069152736181969265316370164390312666480069297899153953174783597443384925969620896480765936804762663520141013253369969916837736984737413876818641618084708288382130862680723812901112643245826324457944115585446584266078922677973797017824455238342002687561605542646916809770167632651058877445881143118754864822961808593913152494845952928186355393179485412694926154255550456366288165071804301270760498544772892585862417265146778023893012919003628078995986194699970830857144401894179843195167459305061361002379107916129219038339165655121243977944082792963542194856799873289701792004754056650944152942763205239137779668363109191745856963007214819662960439391330944764882802181600339175260483154370379510036694896777461924144964852972999074992460199150318857104633448349117956380956222470448890933743286023282610252641301574244695460860237621733140372166930669019302489831612943136207244721224344610407609293638091464799908982982896010562626912738250365468090464787359186849491893466374796276515452781603108991531174515209180970923914447290410833485750045437123711983280268919517525874632806493712478594934494818693434407572182285635164365303081939991035718462627259525572091989284355395457399876991169720237429313345127183742756748227380702676056769790511286294221847471365149171974554745255613939863014720678966653982215735561967999847103824644307720419342770178767942180608917050527689550033587532551737408150938474107869024641098586431304542371940337778215007287307274894233922820149241330821848702705007534529956523725008270652717355233645399978707647232147641872093941622327787270570891917917089276821937571220972275397370711560659131793703592230887849916217806209714900075035025110588253459164707816152018874199964479522318239310777271711055524636473595626914773562387606621200938823841712534461169578457290121855861635046976897781722061588246432533615857315133254857335628258038618413668260743458607034840454545913439286521079784331277377116542428510018949075795976438906332667133227546635405896587602740946948601004314922539949643403725857535087513524832825628907642520756923822639855850352979753047154996018124511796680170859079441193508608765803975267542410603675385216111152996203094772346776139400831337995875942330770087825022521811052988256216778168966727026272993705709291597603018652146807497180752203334083340995274203011216880565285446284250982404310847751351869531177907015948448658944473123939280505394099173876717095493222174560535643385542221150500880032582895862838438931316385660277445309781408182510866175435221711091238775201639432883394376321858514575345968615981954075944573920545972997763829135137976377731087425801520696947889366741709788818390643340391226634992058185291970278990101261724502269821787557203769435813473144256149276456799701552803598526251775360046192035575034838104616505822805486163806961619745774499074320527286845405452359836085214242490154771377455169874986804969576277020380151803800834661043355197198672866326033045618328295232100931253226105973679763140157317182917719959696248314840768975229255699735395197771552998305504966912314843175083619934052760821070681373050977324652705903927794698056628203117374672173753623257612680933349450893747089234979041625001480910755709524995379432149539000783844910198403642634365214357844556436561288888037244805533390592284957929421827850898485536649380333882512370688063387380364600135648821999832039031413725630270242591419213864538695516916649799189394191890046793375035494559072485587848295267558199287147914129406962028635282183577329889659732117357101388309554052176524844940024726981142672770261423762444862478993207654907549284001379787447115254687983508181654902708953838220326117427756047182373519393046297706056445908986476424856849699930175367753695632988203280139423635654827027827982375788544547948501054741923244526997814440323037676636890237533684776594357991441408484146912700070410933224573907565652302713357241266435471034586790401547531470421066170536175193248294265119714763155942351631295143107362851211712013910775931677048802202861775806441221052503180104769825525199779778664687586150645725849587021443992148837720220623861830447530361478126274873389830216534629285835176063446245132331046157710172728586672161805040008455909693478367288583907406729337281416175924244808852192588500073440796833765473540552792224227168401325202949201708843476932735122425025291200513391399823334368320647473882065322855141348438746727201905141527975153317201113347941029847467409218227701002084433177103960462998839099605888332437058461228187128601198727732920989748471643684514652993210234056949196954343461352732430083139742650095666389950702786160697728021262432547798647431126492330046214639449156690810888974761977359389837683409938138417623681642739146110098087402587064435653122809847582465100256605107763403434493774745207275196997773430188509952147559312606227094468867481891418418685431368710133118476176479270609166283064494489502941601132612913997744573165019474624464890056730550001820481639799725539040707177033902130284743612830086022730712739268500453824483731142413594928327777415996642570653674467345678176934053367880251789820603211449163615042195954951384220070954129011534614071781440219510817303757401674706050950626999848242697612448643077188663819166283104045945962697827138955326810453485121560099733004156534967414369616275101524637411000715343803175780285688552505461384950328568412898914476107372553295939693025171552046943012309404619477998130004653513818066718562657426904960103523297977022061873641270057619520619551871985113058347487910753020679655141020838104232711059073924237457484936097465575837151327150392369231796312462863860363185727783615138523211709771094638639778706133020354335113573738475256479738543243662445055655275353860815864335099051151734796289079172545827887864974905264422997097539938961106713955486577267097547475216426569620619020503977160466583780098550700014637732893308107274250779206070740648774097244077212617847104057816089279325718365170893563291727026804957860097440727908230739900275984076462153916074581431534117849009986477865249176121702885371345651574195129184160411337486490410099355353811742526243760690005660120530540009837183741013867342650363171642452892633663749797040817050349928867746527496601543316307722424008133277933340289167446826651239818948816615302108173962035339137750355265278322059276200497143149552254705391142285548243863752854326960517455321589384625503476545962188519274796590135247701155911584056731284036928525789958666369859769347434222153835234396702706702001911833207516266374759995974621187170801815108183935779939834017074173413772511983839997525264435709911686477193315693871025276718144404175953071498110185656173839884127503045610714900867094673986310149012431285097622144489798167139651347416543341517530631183300580445585416984966221438608687306135660097799345572479495927941532308526727160787358068279594431292091012599357770052739815331055824999978419589946907647902035079999196587823229989578435517040833824972112721945281712911973537671289471965946171526304651765166252427056212411500043268401231231182983336089011776869660658802835298511350407713173482445370611599897367656343879279349374337149588983369044289722298341263226622244288069268808035301023120660411782735726333358381026035327505987175551082157240132637508403864069018281985000860934245933547715599421816617147145550615472704057992507041137165058820111411837943895521894672434879174533205095426316840063285680207896197001321794188078749406219162828348923001788952388838175428169967797238805861085298434312429960330721972983794882497451412535154095340369362291355450131615432399304891338651438037336544427398786640393386223316325817250283399948894888505445045931097337628520247016165343657796833410168783852963376455246174303140024586617107561905475487189206685657680514043490611457421737796018809074441000013719542591231433475657784618285963399699083349157533667548150621712941154217089890582276123624483221275230236036746432833734178688664742321135813310570077973463787435956104307335092586496628497658736023367622504695362356918075039490429502624529970397506537312245589845064140025403133871049168470056076892751117981364546827184248212834158507955856194854464283881052271483926203157348183460453047397318052939237658304405885469030088562627764480417445731518159372136667220026629526066331904060108102550802909571910801858784254851734987505941641046351709609850841940387488358541080426611089681996692010013744835463768413229005926071391628931526077501433667385540776677677307520441786873362676293711433068696607082829399725121863517290180768884391597468612990446190094214368474950011381026855072388762949778027714707638779258524090881492106805867654977199533597241645173838683150629968347661798458140276096197492440854824457614457921877357510477007743481272141263304474677065388356780182005639616269868647189715263822371725269075033896291309702888062875251800190842523323073991251284859669595967058143424216605546184959876594711349346009438212594495042110783134961822483576180738547272996888462132268155930383515054655019534801911939601735825520418897419535609847492351882674314935701127527475421642029060938124835078745666439054110611883155124969794512818691008788124293343598529495254643736157302219602735755893255473623168400591068720622484021113207805555265196686312724086474811060776059567850665336887233824869283263175646625952101122694693562155270428872693844526463102340774234109863391859206303446939961477536138260371823941814668407019001659928607110791680234628395667939472521576342670254869051445194160993264331589629050158915599951321841363828261188629628520408569520204860606440640514638925613798449302627637753476568543091671002802537905359106577103314427215442583961763229334454475626895941393906313802262084399027251541092193127977989127348881976480704612066255564139861026207955252568634785548108021586787538349659712353983087844023254003297387674998194321289176994160548596678514189081163892344979905369515162765512929502882571113393847550339160891788281763520828606321522921614223114048782380180770209496476463995105132068990636604963475588823102345105744962982571452064496001066638369230107479508047365987222356240500458026370630398648136529048074548717499563270586139212626775693313759227160410171118672721183941142296829123363205003802370184126551590788956994880293746216666796901868208352257802851416727097480662350219722353823204514102261105560753359565360194742970125124239437984342709381985868097763649351855023928263089464423213602559019323635842527867061108535956854567207888173256627204582040281746748122097852354554094243894328936361189195465454001803955724970748983916500413067190592151651646637462714049335948146744783700348315794248457634771159294765875006947668734305542348801876362747258725952228955201767736449810078511279073484601755454888218430448329926540376128167676497043438811791000154010160848151959563372062944483480472875403365337876377093138502880371053710492734163206327387829437669662954483373060351759517535330089415993518886886103492588971682610242526515138207405096209629265423567606080003408985764813367215266092529402517513294242355232543810474545376606007483457996009489124413566303316283555181397829038728629650725500727144699941465765321670084389155107590342704891762035813501937020409297444226335825707551840305839921572591730086499134575829236339169754418995565084178099656273271039860320345769574263798287268345977394673944362534850797760348083953964332577839434236068713062212392065819811545768128124541142946878916667527168717925080705232474465319740797000859237104525782396625303096419262828035061508730505778885521740598675343530387199522870052314455822818010662758979181734398824300259414612692398426880008383665546684471712685460839826175466628030058072031864061474764806536601725157961244050706113894723870954077395742758786641264915725832807621216509867629446294587612105714211556496505453395992257230278702646848874984363297593453853531797827096899002899336860815023225455477251120953618332780711592497661707024234912180300146525052072123286397964801336570728003482275420570436823963950485346523087541764776215076819233190879539438771364302253627586135793469463300499973208684237416189415374059920540924187739893199922037367153654798339618576090144599672491951700079157697953751762928445524955250923809481296172948936433609564611930725047499830051934451904737174126186295706295286965417263139763354415884370659227571872395300345503609866536226522786863292191513856191272811917940438785077820845791755440372433161735407108126271449451667312145320792576474372893143645564153185229123054993754132267920469038710364536420385113165137162961038005204274570543847102771527082059336195652965618406917296493069508514765920618013942506127423977096793299206725225293376067868102595618555667259187508724618270449672398854252302068207721171568415785156577956581621445572674419272845018858621482961486025974386757077359064018033488152471388811931705088717121431169584623079910917769001630913420462906731010228464523902410464209860625120545626649922660253872990632881028547747029785248331248281357351379256139314359192316270844792939661294735369961277914239905341414141784231029092256015669503577202783028833592827615361440449137545413135039167276171187624745929700038887395812332124456513818090044535118965602627649452457367297728642720772269182209242107439010693171988537499149509646876634943964957347830807342592759494125019010968089660758614456474254097337879086226773203886868905564612911248594234227509369909982412059490772889851523719706876618297637338462674454734474725748124810869354204167844058802615793714435069332882394648083836027331218916801637976444642568156417004992391676087886439016099315986418831078440251431337221199055861357954403191109773799528490024435411502202407904643089059458089555409871852120553264289387736804480405485992536797974087687577386481805639209851615347953921827008987694890198225226348755532466114443419364143193520812952407384336683996309338820283601624307490492969816297517493679617477152376024934505433312444469524295248449977370523170627897062670446980541487373721284783800979053060811605708469480742110583488963667481524368490437631333253493278831239370700229331604853754777757357496419987587761673271762246555358649704317438842794261422872452692566444365116065905782956130244044501924712737155571223358217383738150546342182823167391975177103332364038889688184872557353032880871150752487414116120143749144359547890040640903359488392476762284109843217606273318412150656243654273085801659268681702008118122537137996925898724514902085168202780163393671034796980731895384339930639223988515252609764157754833591778116128675194104185361905637508446209248191112177831324978963338106706360163573177216262202709066891089876854741678458818622882532479042670223729371669328281375433506033004278029172548250215332323415821991024841713895170748263544339377253965551582602819308188239838016461661057356565904058450738548827432826905796101752926476735292966227403697081328735337271725274298808248647628363945260716816088338504462885251118703940112849062884890945901642624896022366861425715061710470012685530888586504029905070795373180927683595379019643890399136887109651378362626214065680578843573005721468750325850571177143529869317255637741502073057120956607320326405308957539641777389643403534984887425661917909672958487319581628907092130491427157968823446334793132825117343527509389066442829534201487807788707218299364451643298892211677648971416095299214957442661627756044465457025677352298257100820555059119969313163246562609282962407126355095933588284235653702608783431268949665430673243746172137901336186404446369466874818008063877066003517052236406751579498253033996969707354511256116548787917338524276195957024505665018152429938849087966162760350778549288268108901008704980652325191224134930731810264832363259643987303452290029796996964685722941459988450963175835012083597642921556672681126207061647087779580407811039219701752757979836206095487430716736182948661935564337122944791792658340311697726104064083308017698358152963148367311874794462920561446964950640973277686843225608232443189747036520452257198786952529542765494926801469207620367349195554910576304369656935962377144782710615707388932045992604848871470823481679775440497713775852766547906166043932296191832380847022827923386779822715582650596439003783959945488439912149637944341452241555692850025331071615350059126382000593191527331415353624834145702835156614104692094378085407052166089001736587358369518717563054054482560452538431468669336653226439275768065901202719214728779571242764594849633811396884880897491242438563042662032157750305430879190034853969784536813865061668107622605714849128591325765384367741890881370510431367303557637526213893863296791061694151425576869070111487911158643666393733812512564157413848449386854094255666190192994179755258849780699980144795734490895729733462593496457394367535191571204847444928622040289716148405080406870764272290076753769599253767345516725075420734170269038883306301092566406451404530025565494579908511636799281351510141239718156745986098315851106837081354284765628939815652653935081702726655521744753754230560577110148084861956902769936190543878360704763485102511175330063631648108499355735114057634735985734338814195518771238651862415406079646655967119654406366035476184947505438148754094522154973524067775421427318271045718292270253698479749253772728692155674623428154615707667726451699471689495618431058849950591061627511780612412983386924778065428556907696160939160708429228158395432406517042926574730723626257096727018181859321238137751834747582966900069771617288468165830044932976165041574006665265018184911917619483622846690148792036726887660380291437549701846071746283854030261817460341081121888611837801725918058769947494519059778225760583108574479291047749739050379556368024439026335619204682027745059759028322673208626843384817808314682875824834094380900993768576668193531567934630847802516607375830044688339283500877905493157470596362198429552659670446746206411782851862991902282201969199510473352243439581044694460392994864476656973305639487128038719554379111857093055000256365835328510615250152787037155795618104441352553697111830964551821270554215818315171231584656203706446021579571767364829342725964506360099996889315326794041997606365614414512858091971291624086074282125177130065544996556119299362049260028619087579241139675702942497175721398255618858712223876118792473203750655496285245009262183937810272290157914944074556800852937585482759290973095973365033496210012670390684088024807411158643998142395849997346246448668572686128838481759031501932215106281848607576747241567833866032432985403797731437570789301119743547061601409090165287759194315730490208910363548456607061973555552148780143945389812508052717967913587629345499987380108241047435835150199734440874095628744662797225067918721755234331495099210298254181137249190971262403791575856959249390357883497131897354867029133729849694230777291172071859336334696010573971436240670942670418015814849218970222034147245344285796143010531578511679017700580525369564073722042797618289802198993975659367179774641141185140212235261977870036878390209993812399125257588321006325749778977519601792763283851445045378900724350879281460859258494490008803666833448822917606919303974141840138055845271657276878642513224294787915209501853535050147209216258343681457856919722821700369772282537697641731301224156475353463576952319790986369258928161054237363822860317000440637895322762524163647806839496644956061573240970231038687647056658235147542969645349357892192108363181250729524378394651625918959343684467615982826133145925958368330494257835379109994430310234507547606339341534437299624436310316192583589656486691289876550406419224710086284353110857379140888324333743239405304132766164423011915020475126739942554153941983152806366069181454111878062506463722778396063261426728136098264631204560941869235544790189276428709564995098860804113242900857058201943798205822818914217176582688292957933312237530515150493731680686336614845477348198877995928762159799718316116197523625540291780938319214241825529491302675656746430789375582904462005940900380969777881307496069178469791020531916169984124332118204185739297095476124248476977189980011787763734258266025589710095888163397748634580101356623492711010146346931506950500643641342956232561936184016524743234565507558726919174026012031930954426910989439990736820250896290433207998332911353608886254416839788610336396627096613878621029400476915355385130304984077562204348907182334015246706224604121074737719471127402844102576055871236079296370591586112975463490393872658291322545602209211916089356497871513958773323043215200755936523624447148285929585882863435040485614672679677529611733647877443175719409913035898608287206230382666419714146273558340432611801316024992393938406770669216501308572898013646504273635989216102749132951415031405114703423576883652522356164903539827032925759558545260291568353593760008382651874011363076711521739029730148568562910381289251665547539265907374810769230299112247370151685966647656151803069349712711890486414229308981149242951440572040978875719013134582271871371155445866533238533775160781693134763695708264171501738908674516164061552823333687742819793357918963043546215975147608388741528354296479127821574503234007441700128864893151847091056856056140214320642614299120132403706460662140047489310582001271852010725927733160924629178205665842005605843037647237352220310378339328374664101617401451016960070953576722389146936677081406473078892808386431736749848963987507070571276781397437883083861950058642562071087004889849994550465078060805135506666201964069082827625024801071068025162457694140149410673413689296871130304277115181144953335742888799693815615669405030035878807612599502495386587709692475691510132529635602357114329924766382024522748440543274041558536309297725570244261465582310338918267693966876069865815419973630926941986080462843775037530777660307264310834928740092023575428250661240375181859713937237561195478228758222676878025930148976436766575432639494725074903240045526745369631200682032409744012180711943243702994082863252068874193133209612847114758304585824674934920012209623115689450240483263711453284163616887788552534460167039424228058127266120179677233330971039648335119045889310698551139742245559656162631866575314658745361597036110140954680329666454072542606357745873473602471252650219657358505168631342074493824297964729541454543630588783548431749975820273695852851010387830606077262577062630907314559711548734794262236454010007704391737045570956467193756925959357737610907036749471138411253392103364839827582531433558643026094610740868959119799638649808304958572731013511929033277598886534303983717293603411746092602787460314886980822038967261582821474972415244325894900017215968314191447534110342604804830004104033315817612457296075750294791267814434859404057683631640680116169952124720144482648430396328860558298600108855597919670731718417404155057508652916060435258896286778116435216888261760946743232248039360137618667070236653379890733453528105933236426200366249700285957298451535286137462855647746751004906964014033502462915737188656011318239389950365378706863788148940432705809769162593990002304563090342914653905328839432386607330898611030517592090741934349353426043464940724417074039152220366275621293995141859795397708745677687852556296428519379155529557693149054133433130813558192422290734930257326801370709252996351985246337369654051786679155188321908299590981385643725391213082912102913728812505744681081260612892401963400984269305917833792539308559560932179895490515338176349670849606279309496480417180760071742422176805596235133732336504662241619907213516586310300885785398304990688497455713540155402334402196872461158720405035897807979958951491797235656077828044863824429133501632720033393868723932169451518036630940757909749673473661983521328136323492466699980760095005144397099840165724009689909099162873240007601254594569038348637338240099597749961650431902031393584706944417509320364202526373448046212350923700123292250408757657991621836933851337828335239044444297705285985198148351678072758793729777123585148194747508159266659192664855930494651238007242951309962917285698085754622809016055388452393207183176823064777891965528754688098329007819937480170265420561110478153233808615404329857721075838739036885326634602172543185883998405315530895397451580083579553245451069806558289682363886901870616914564912867172438592116626328690686321011048580727238480680447614432041452144327739932026050688827673462961308547559691315186699913906247967694516178001675358517132681473103644379188459751992214993582009726758483533669901270761765160000540817380460090678981504064179979534709523695852792090311104919258949403329418988383697176804832151995746406157872692580903466185106609175402622391658654345724822135896166933290972551419786074526507194541092251054371117712975436691667842220972506404647582557114001432066803508256636101054291168772195609852619332299976832262411022504820439428148400892225366885007606118537108185986908910207745491306134416701095458402179227007657410639214276812922339917038897735440872841368962755122137460688665575792488922436768153747266156456204891291563291316566199268227400883740945463339219295673744750795660112516133770127145205797340825740676077886374782982601501722702873833730174937576993593374354004964857434891137307146638730257521288705943342983632636922729091986374881606161740495093959060977342921028055822541019623853202493743700269757724997145087832808439062342620360485325375074247384200834027784483408120170213487181330694773554575464259908018794635708940269578843855363326152133254164760383284832868543469742666735043287069082055108808429969621301128002944724683410741027586854882289782160170713659859286466694505772736660575895584867878548197674314060081656525186804865815960178194593769779904353450569147448619657729471220689670195286770263439003016519307174004975688004160374657945524065853026092391082291552378321925028615089935583470437776630766595624731257761006614252922917655413467571379150733812533335338916127158452288208868697683126046415548607843508233564192820867146143559507514638335969715538322825152591050537066543487712604137413678470844807426289375298773910007243461442650941382011622516400266916173002317462618603104329462723945123241609949525793445872465034697894770047571094028273162500530359209454332468573528507396990214233381643604204244080968186969823165813016035571184638347686697086664196732444594530286287791319756157044844211233510711210391398522829826269468468486717177974183299008908702285006178150603799517355015670092587849956580748483135532382744920945619177350240778748992612017126437737603787471845107821939629313818430726015162655616480414307199131920879067045226253107577316121858203742779155805939996464495283123437019318609330354447495725436096941549540013990810555218925217217387533574829843090593266644653570313624612623315857581829489253577610921482016456274538429604175321118192826009109455242593752727627905526325639181154421260992466408005023527919376718724995593130515258088810214748312948077690499541893111901521180582975504415003486665466914727879383454766900273642863579866019086253412428796612861456928899572050905681474264299688046576669655979329490289118805696358125969530802631942859834373696783144275949726486345260852346704414284715516843206403669513050054922374991315242940536475493303633097532138479688652175069780399332017309904058383075977428783609622385979063689879316196553186575702087805819889728628808119497198789816431737341306134217014538446617206912392985747176272947358131353874805439559148993487839386210440462643407787317355836786051776173305101865895254017348155577459528492776185663314607656365368425959470090395284607289728216544790312756586700401076759150623866775581605634319053252409440350165556008183289101473320965966950388789055913735296834095004161561812766946750626544220639189247600449988518488068094632469454832862900198521417175291518856705254995252484854927895977219322907752694122020299880242189709250289653859652287362755468487101298872965210325618693511661862058707325703407281494228667441735956109702091452472869163777436446056362970561193727073567652638132266341900021731050036473993008864757707094676115766920211523911049674819911683333671238221297514361035587145246285684827263766842265798435181796639191173494409024029845598680580728137706817379818157788042380969784375527877001842983155428180137777374104914642552988284455571573491923393800330337893144358491504780961282460798074142923340578236848246818891298224751097750188175391966001520093527038699813662691521941849379649451505147057977247250282329319770058671492753725702384364208872571438758424575259888500888518318302544668506329651464515783745318216863414160289026536971732378063656247706494584451631035178140901754135300735099197309587438264019989450924127425655904616367266499810001103194827247186127326031548003053091537451069887007617491002932512333377597997319273591392818113722424128877773684511579232194547034460105409188665852371007834974187763904815455191204619585568008982586168168873975047183640132527115977060131214278746470361008570341368189159916899050951304847089351991144950221087382281274053423820306906628495509944560510030039128674344459560906124901659416433580660300930577531405185768978175854105594141709650774145663164505198284548816587799864973771870712758461197491533123861800784931938343602259527491490012363888463348765460442473600860951908596764048467014945246116343008378513415235576308148146800787201894433080584572368814230580805132247965392898337261435365729013093642139465986706365058813002525203578590362744273607699638463356136380061185854123448517627242554575271065621695916703116809071193680696527165477585682463836027682886535435093616965251142709753357782172111638429021111934244831336776768812695944298974563636835775354666713910584962342893006068931791278054460304068336319993900327450572745098423610602384232535574563772437547522065128053396612643508814441346211872257906758158895362164475348367090260180373335587084984270911484796371963857754910815967351148883392495471291730027985400778190053601835456354274862353083065987661594694573426974395304257719129771091888926139221177901365088238665664708464024843813493252102904236995795289512312632536382722045375893426274740811315603328793014009428392740749614308090018036979332875999094535518541287724425444703242873642254895988812190622330107010121847009868460383712880269776159358430950016261855461600957120334306905314698260084930298494862831939733541392424706306598333938298700164381776186142232699819415138114659734550947446997979359572438679719946748796500298802721817493169353694044117905463962177017410234530368566370844562899832366765850767051400963552469149980244126207399312360512137525113446484363834024540129458988108815773215478327301266123687858521023677247266593356722124300514467075524171990396500892578807084801758077728474068773970385868370566763825468957599345462703543118406272944006554791314731192529117030056094206877686987590020882649115021003716513345969700051270398478258138259786716913362160886967026786956032728275524071615983313730796512686176887626581793017689227948892067473908353528546488488009518816266205511755545012636472799886654162910573684055286730901800433092730437406211406173279735673531366962514032784231357366089249854983616710751150950133326232717301012922065982381740978079296002543549181465026903072688398948265340114952334860241181688318116656501750927945634286697824506986472261529025313697462239337688904009118796836039420390934845814930943107454724396121423069627912599053400856291516479841698356926953104088684543996976428597945001058092865820726600087090911305478717611764381725427658278892584161105022192719924349816416752779439473078704103962143347997548293358345798520584093606716727123291648500592625617574889930199844764556104031731250177675588293308440833431597800864074508589624942559349136416477566802940823724779400889125635351236273455421885370350288769548705748376039979582706574589265993782666654653026505534582372783327746568631619349820797295673419976488193572985238906090559600112882641061078407973725262810115998214364853626507773997401490914790767400884968808587638335164408984227972076542337164645871209062287899859245865812530326718085922514389701304208994490257211760504154582651552882431181127209321705035012446179564814165775005549020268765162377728670097305869878264255387942692589922066322540023055448408839762071621195771405024265588044877816137464187772546687240380301730069095194519248145558712858944097349737691127876739211138941762184635436201091014452928041558040136543339808779727796132556537422206160718378190740330483140517727708374954482110292918108416146792189539734444233913848141781786426228520743326663873037260715145523617740604987988614933336405703881240891062734205133636136687701184827814362138637751243995670642188913013733257502860389989203765305370714811816469882384794055727898517944880821409528274377313813444390260321905283018064431602186214015373335265555849688060475651357648644714830978838821094667220498157381432642533193935046258344129103566440980174385025446638702715976582326495316784107997313658683226548478057604179692846314541013056819181024164924260806482291658419789028190343089022858314153949396816067038973271749094080019298769463196906517448758905540868562026504727363552568171355114222632555764151734552592507148210451146517199162273606944677026472009847929997510207499927001422637186662443570269327737621844091089258548024996748238112595569994668047667951518562788514084905706029778378284650163817022913005439901037616132176422300926550665874120938731102919370840987541934140612546579382885828593312640880581496185840055799766887404248110725763955079406386587263309836716994402785602212067535096598122279106497177313951740170968077127620752549293646485018439416693786446711118288325136488975655855549415873635362427035409891365139919444321083942334039956449578778070591524292607228344264510204281391984718427774068043372110212170786572468937285825149541700110417206501644275139259898075508384129788235525250981555300376623729541911527097896670049898469463437125552676720648556770290179685305786533423546429461704069763386448125747539635061888549564022287099604296318913010109606588095979183890950777913859638168249149273813882841307571261680540471907877779809905601159149072197515290270932716906707891090564380421155671144929796216581225939288298577272318699175633855222770315655770783332792325785134448929626223611406728657949249801805005944363598997025432210711577490357884360986321006146478179631634726323923583298084658820469882726635411644215445984733613539876254328398544706105530779127985858280819448769958712440729410000039361720602517463376167807689039598533614211322639243086479872215827143231598400224355488772353645456758888394730455328048736026320742058408887106728261647886079662659118611619390848673741903498995497993360830103068354173235101585521559508062917886533209832509393825794531613828476254566806200293499190488759526342030568585188069291037599951311951458518777752254809255704133241046860044288714978827706855359896924904349615160868980370678423155296538694255744663114312958183303267151195681949013155919493593076326005655282421752596169765918181004564130340251973792693068107508065590170807449241744999655332747748353764424490146973547912433749764680439723965140089729974691370994960480448315113293793671357836765859891396827755772413323693258991696405418964213163094045747154636289864000205022763512728437991520693108984507377323326748050525884931085602537152518845079178124734269971161308234110053253724561812992086335360466868603842920737523709908631301020341075932858564010271151311646546014291364770438413016941272261958033321316098654256315910990854056479981217999437832503294050678815711815843476922803472044315524773007716284410477301214532994815805217282096619287362875690735749514811699840864666154740141063543475010733939374100275647953247059418430900693863750529403213822771241473550382461374397436901582345861879153838570830866232035624096244074055517735039102866284658463345143111559371081887683116842790100529206950290743486481068168579975171512462975078728558713515375570966745475114964115561585387388933343708643403672879207789368643917126896236936668637033476235274958769036890460608822341505990906344689897691896375328526112911447774527182429961079788793945697521827631681615550523480309207836276105950368088698928869062916978281041915372815644195989689650393765430222097704117418284990339438666710265017105943671092472170734227659296233543372099243058099936345732933411819194909542961484210220406771058045548758957225618181238307456337385759301619055617881799467633911627093184443049641737232833776364934661638222288047708504385427334428596505125891588368844535380290464913946260113433149570461259481406165864339454554623205134531442363298052866278374677275380465772382132536698706609525529965830663462593564694638700658355650978149722374730416898182446872656831667743184540077167809084866613489281566200704454036459491567039131215523618637025017850363832474249049262003786857309471125419809557408424931763050641943756507478563624550398655657163310938155939261092122973372847966920529285574199507637734402678470001773942244426106935254700073303117081175596397830169308001776365012972258649049595658215279390723276411962369399364088543588689352281620518386356430169659976455941867753158070409344862846804594116145130949528979417101214132620137040978298893697146586774801488678011861695921135204573018896069763022287108506253284235913447556022614118504208943819540640431850376604997944734862961976401132800831459427107459587111911879846100157768655831018257152025167217729802676002062888848365517829393117486209129389650471284079115077845251349003872484119468488541542308825600987775937382429566375999046346094078196604600537227758914740280709207943635522027866670988541826358971836989272274602947048225448732880388401945872065908879810469380655791444247804713226129486168956700881460573709655894513670975609605920607878816147859829985731802409516339305732658692646282490329952504251977090163145822910304516712453946031470283398149178642733792834794554734111494993194112928708222943156797681808681728452602377612480445998549565988900256816280111095659175754928245359548188538049963162915022315330559177847513366822075731572854496433601130347533899191361596145719429194108007057400716142184619172535994878294508319827566296048509001318982792983805510969781257365998124087151390650357717040239620851422271027574087394947570458649784570736029377770591198282856038201490305913239456109159774837088314955871154820508415519121831159786277909911851624098547723914835751341575360084404082547976583409616549485958564962048885554464718997868067665973121173117976825108549749202037575546645999298054578403999663813936778096359389236312371749061358811732186003752888095570757710581009873803263391665648237736228308469426171961664490403416243949168304081974653739905509766116812647426901443738749854221039339314098461026904362004431464371932357784286768591168787201861734861514043102241671358973187353953766798166022659510196591174732276163318925966129543023426482269700313532348124941090306346226937043676326051331700932210255163621795297919096099587018671021038622486386888271824177155852777975860618938911521222794424426862689604366999672489860578777858700864665050654608976890360522459419769556473749051861496051851142349510570755588842895995858629670599501112031763437724119367652711920159741754427441428897874910636387106678115739202695962685819431330220898649409364232930820560320626891871132809821874988381059345054292462736801626161310587089738305331166760187583541592241888055501916927014191276554236928087154512115707097771923744776965266412471675674533325423065077548439688525956914757569605279749024664754381838257756238020939172368905447497246447967243368743679304299148726399859391271454511685149598049794759342441245549224819748128583845773317813450892972950588094214999452536770781626008116416452868848188494342835602959245672438836039742684196083030227726742149693905230095454273025543482674070006367598089335691807053362834485279356376689563734659213254695948108455564507612715207929309771465270205489449275137528832046537876576993843201717951524582152090722616791138266293406458427889845705294450830870125192646231675933253018919450300626513142349038578108305746140273183943831951811804721845174934305574766720982227042217356610657166797914475428858153007645673668430209360928586050316500854361910903148583157354761053301519834790345857655587078650385574919449729814169686791911581409333559564378023403631237149990787754030551493344104314754491538823068546832594538853462148299298699852562003159630894712684339514822982806036724339130669031344944255530693128879645920037280572027828063655747514793733882241831728165506088875359233667865188451201439072540623855830320506951393126985417246333079285581019275002609546532403562371957116130942569185474363496396003907584234068694956154449952705988171595482817956498112062151193813794133388001845454494292979571557668142212493106732866119313278536969618044251256679458892378356943224567415884582681092861791110107616085310531593475429883067607588555196857036560259379320937411068539906841918856988366365869121366990294964077853611133627270644190006241231497315880281217152441667504552267556381784422692380117338173179365470630578920487943092320300364453648827101205427888156822361560702981770007105793344203047515287104072218387494141494631629587051540912495634922089984112727760151259630933243131934366018643880817905333310969114004923423829980052279561750230728334105035763187033014058907857242821884780897928902335549959830778100453867498257644616265137629694399374549038728158887043258672871396463254569776837786641260332536760144377012695271562223475935368693221486182311201856918159734656558248320649757848040075604424467713800447464603918249406617505296751014352447555929596327847462756969064242663799760604799287840041232716614495927548671851646267824724785545552362751740001272941278351416550667644975719027352337117766064331662583105748163972510367551329645647881010422109435218899582952852772863717480420035403308272616431481142470623117602048831729765103377139434551606610861111807264651418945547841342482382647460115202162493578079195051623249326679824198909411160929446397746524688260228968726759487588764966913225240183581883592546137355986150209468401427636903629428007586474280581210917715107247993967683491685110498783966857898316867060625892174697291299032831215673430430741765005804409021074783215016357966825357418555473690712639964680691234772658332318393816943577509405102353566982394902972821624484296199911474420555480475902583144187165656347350705695248402048859799490756252160629403434890514229026943107891155263436580810577615064565819222110969608129758131959179629212027412342223451632429292121477071514474361045982500627953667047658492177177361179333818409537521987315525020432683612751837850348408765272466015206510041494640728772560238440316612613873192618328781611735024143924696864476762776223555956316975588922674077459991999884074288450314607646939218196892743584426048920875138606818484314382523154759435259676475576258265466391131727863362422577040801075968002223348061361394911349685865306980054981155507720436111857458848786808958075406130643779132126227448590874030320498879167876780518285452436339371293156183182903927274639703403862556887106495656590118084997859806458666007173972106203473135864889751707331220029867818954032363374475394468981920803127784716757327064718579826508490309641444801193373445206194461389265647466545048753245595477260184963890948085122964517893685654624862453075351102796182231550089187703399796172110179470267022103403422772717216870627040207533321527728245776135026392534319850679033989037140144921197518840387721226737321514106415379607889224839221964843382119752498308454723561086541264532515496936898221818584130729203216849915020305892629786668409357794146243813281097812597028474699650146181888070013928667660873227214160508917505134140548423877450138290963984449325653003549101570847705679353936395154969775818427723632659186558279639606796562241217475490649728683044303681804854498233116561748664026842518492513988477743390061303549590322971731556467502672513587163206604735273858538497752209323273121871631770275147945042179743983412852975917742847634360814220733481406321744693198544739302993676501658377697346926852916747479498236617151680333831189402701662646268704621761309606566480734103816623091254635563343280892975952209686605973912985635728773283767057034804872336821048487607539908742349687212359393360724479519013073851238914900347040574271363534939962923809251422516651579440207419508452948009089815599672434570248564469093728937318817887857486049106460714813761478593808123541178414554999404498447516661121227795866256345389512094628250969672618341410527232293499179851932366445476431449108758852297297936074412178514183569193077828464890550933975056778983350399008444515668511586312585300529180312880220219766940277521515791621901720778542813510889638075359641014836887175942096901533339245352731069719773982464524782480072894372208496964287481304712595319710619133140655940955159997000795367689365437009857377292157244712760177531633041375612481935522514047427418205244534357518632971092264132390927376888575670079021210774677116807488954618844897492898800545853850815784309706107600016275958625385441928160756081276200791136276305169657116724641779807295767596888421658885057752439177188438941977619702846909250738432196376342211065058759976578218899999302988336823024485406553862177380922407373154811309711649925041844020595715654943495036931628803661023295113969520553240382432144218555750427981989134824185406736060995344391334395017640824508208180610441535471078043744829217011729391558054694509744000320053126382187166219176144702116976321604823611529551267015143627015395763817637671310352767409338137325445841278939209074718870283870303143326224851063742648294363061888005714278547478480003381633441783615547069459089637463040365467291965369461495530218735673955873809236224780466608669353577082719411828221746986812056187694035851681058474539591460673615727150057740243562173681869008198084807443172683591601164554581832835555687941106455905668698645275167979897673964765506996155992586485343699871087566359672968536949235294593709978332583566493139139166417606983875740761530204677551327255841739111714038032977014935238230282545112557870203027455031138522409607987961823747201190033235162142873383975434309615625043027170791155001850796771740388767941603986667397252112581950719526387872422369680531739544109948477765568788572827087644262306960154660381582277493025004074042379661801107752161314721081415904941826743562732283536657940766564449858457676463747772953178515846823315675627273838649872937793290462639287512835740186255080958979173246140848145309180146794579842684539073463173803025711595839035513132493613584664028841289527902293776072197133748910304859397095167847449988946289133943565965621001928570901947516892834024907313915150213333217666376159417333370958637872772467698898689911100958961420872428355228424939772401866607703089048184155216478663361982267375127039467860940023782238467755960656047761684955382264992582444656229880004144455036948341651468376529615392606602019450326933548924022631886993058849500448458534291839768739567053404159887171728966176024921267397750047581104636762131353375746077989027961012770788075248269691188593417692720745379679051123290432641306345454034477462853678853093997646018197826253476614072008275909682051459904453004391112224213761545038401735418140776552074494440203113904311645215167128913848841798355828015362387341186375824012583671541185881694013026547309528117224338211932089706665917999591456429793022778702808915391503197033881367648992525839643052134712592494655342649818212737304149329664120822123375489426971930933445619531083160027854443528164907643707051473293900193376734289547067331474735689457449197096819970978499093233670638651166562791697910931255415588912470562131912361418280742094169783888757476369034508611640060248876582439145306204125073469698406457680670215332541268161657627973816944172773851964692098306340587437621314477234866713730858396162842470141626332424106883025599177005617674189620210765748318617319174457834195189144233079911568362867546429911440059734953995479222424808627946905976932894210483932116535133450513005411512535912096472821265269726469996743696363827038117296060728586040663918680719588573025153673849200799044925842136726585043096900236844489787790136156202517338703902163481240581880486297843222742602645307513366067823174884890241124426366797655726547059091325184514571188006798719729925445810959309180367320690081621232510779046383980906775379881775650846878596205628623516941758704891061841584474607722948863769871443939513957760564208830626826197597371032434186166862012314865017291804799174150770448467216460051318354183499635509720386462766329630453131726439695965180188070529210075021490045242008536685623595601886327392770792174387564341333012356381094593303422249030942116035826872918844877516257992496676591215420594122517986399888110978981266714273933659286254493354330445333671063988075100035079466509483904242564900626505430098648055260365097553708415663357922881459864802078172616303249260321323901226465758781337329747294832839874608682279571499775886197193517226254584903816390278989483320013585787976510083257855119051206575278965787555523000636096597760820439949697086074281974315939467597990533611220240042002366204922553389388838361429625003826686071915780638529901949397328944676806296271988358311543995035526571521348688889064231286199096319165093373205096828851180558078343335987169943307043214565229490896543419693461405966677462791989227732366122420474618905062512364980079606572096817401599276347195498494349841623386567343426139862513113379650830987114838995444820199328643349109009289681725860823085301852386073062704243055298895126810441471799868244293646439843306587830419435651130921238594448790191149782398176381981743553912678170289251843944753034140009332133806382310565973881001329184489905426161440742556338066926443324030378394123107087267853423094394420780218572307067644770630062717644647180782580848448753764003262034877273321631636587070496306933308387646677350982953147050324530078865635977742772436104519865921181949561141384234025386170968612596802689819161423715133752166664960779296510062676448891011370596289389197756729348831301766426019254105225010240983741431897054434347448729609053436788042514064106642861107405939976621226922964571481491552403347205074848120383647087383966178804406997231013571208231247887454926219058486287504348970453730398652371485170308746195269074305519475260152954303945182374243163687178378312579561936375861388464975959809358724587383603394013142828499529382025441009237196649275566206221245464455602840352695260235270140774586649592984058533855684615470946689534098585750477751835024330129486046734865847834508321998292941452406641140947316246311179238464713938320585187663210337502691714667125564588790736476408336023076504430257872600423300216854362401529265268236044349223187162676836453090107569780491103546952386901926683954464184664452235906403868534403334893619861106299803563425473684366620596979342794944111906028594611924535285565292615628446191177917837397490866256506485372788532173256468742118490765963788968141249248221069072987850502577367973551301231353094556839661649969988221323420678877450848610518030990505681607550171021634304334411233942364993442061518512971804671588949584943855135728923732361712754381035348200645087141846370687622428311425237672244079249154827655522006093888757370616593555248978688769197227517127225494437716582577430714563424157333123149681321525553734406481686158335712246975761764236634071641714042394226347417718420210070194596543916831445082377418109906890172934924510462481148454227398503996302895260278910687236472206214659021353644567473623096662718086822299971119705732309364817783116347153042141259292946976815284799128486796851122416519581298120954130428621139158199021322454263597508003655141983115414535633420495694627927155205316801621350028480184665548974508897766748964694573750856062234491421225652785269807172386093051502983794163827355154731281761446327080079885737178722232856813639279217754841167289987563338383875398357205814875347556565573688461422955718456384965543158360316015530050824957607270575213228045648049117320385740866641275147730678161885616120150825647787711032831762077746542427360169284786767522285015310630151157182352189750122574291683277828719951491599681469807963223743508881026833701304216717575483658659617297141558923361630225017683732716819529837563199732934900809648402675026287266524682944818117045709461857999371022523487909204159652081636046473703692244382216532390146882967147415466443779972770732369459791129844702694247576989392664158631389400908054097000229145806073478741220906841984395658747182596833090510259985065645414553144866051279962348769670379857117371944405478599133898057005554233253789895117989701017051576425178568106376892449096024315195941021822637523009826299515341829695089493412138369885224430646198703422520996838330964134468584607212682505315956281948628874336787531171966026125089972905291564566675255091362577495687784501414315481623925180783191604426175801455687894015014620698634092356079783227469275995983145055918283395051117375082258611380846607871033248592804976493066047594645947869667422113150972354418639079308093355197127282203134195584242938746007395452877388792027064437171358368925220228070756553535726740292189335476891702413591896163168132899451255066672281131771052080462911712641291358579418790096457532947468478261703552240102536450223423077267853716222341478441881642130155795488885028995109732841126035617275277899700422676893878898040932747930001795993706639278191025283862841715799645341604191868775221331547861177159442346769054889288085168968764771029688117477934381077017819902100216457161466631527012533225600506179501125226423370846306560769493497132998325996669539304397372240128331467899657803600558247862604705754695032690049111159602713228843001688083091348011154089706335425986005721416884348356134799771034732362848593096968644785673854851240217550845302014494980409319038041212981472694325372538807850198240312636915707559994283031329774259523107558071784860262895999858886168054433315039942242318584245554656388029295348493055516820036543235355667841450978027432155011226694824725061768783021497816095824132455575493446391952021189579705225329340954261192610660259475841917766618620869858480233939364142630289036909366119316296937213918017205528696991320703424319764483489077117625968358505157429209817296963607821683194778688944321893819864175530133117214336524110114684053145333968864427344300289545113263702290179577978394464040878433628956986098165597144215264085868800676069414413592255591463884851717716775990544856015761615313848397318104564281756661206232801041867545358798820880481000381336162261794744209751239763212198381729091414261922877834646715078000765434869037953814695431481261387708808815244070359756795529159876915764765328244675640191583694138581028700896182674998011439931359602893083690942321633612291695147718523103325460231167623163875073716458161535294793620603638721191793435892210173420519758954632316339822539947048588149419457590224490233065890953030213034536221980556515609733725395854307968844874459394047886952626671030517284441554076178100173664937053814196153783267212936834954729591610166942614827653370622367541907298705913402352117579937874711118724258006516858463244429654628918468787737917007715364881577132888948153780229747709486798265135944991851819939381747165778514496500014434274999352336282335831192322138431005178627761413132961957238428156932087376167336047324054512051012594365979520880666808688815888196150028116665255754358955253028015120112709539040661861570113027056264491789822230911544030361170036624605503617636910106872517004283334977278280663686687301427894839391105241045855037077093452170126766827454766415822783863014887563829291731942109591134491355102606356159625086425784750239273504339896354313545775195303407489874820440994438104328332185202756505494967140767015109404864516638664282448308969473107499626084134212936830245002035420705998587345509175389637366680940687269548893221014735863932549175443330163795649350820087644326417162826520528319034379637465898236353718494235848745285880607329264146932607718928979513499423633378499019247773669247647212460833537157840308148544737210217689985480249930352069693859333265304099199447643315415091237859290865952711928058319158013039899117663970756252716357835448914798677542534958160137227341761792777435652956075345253691446369083086235754436274810271160978395212112283914340933768316426952398179461300914750849343127873578591629394646621980638048472874532101401032476722657805946963340984436847850651147954880062744847349706683932401456364191536420146830872430928733310404102462553804119501339770757276781517959208623350423100425532312673630153588876884174512161333931532829131210572269996293772955812943085045399573179908176620949153033312057494321308664676554915680185911434573041635211268716953828568819332396681751517259898563231052904302896299935028398694613780223199204554063843435998193451336143478875494713210256842537296456655278381049343273329938688255610903684350412657250291193357940457560640323061634668589150557087336252814748376092686191559621457152648087865999801485608497602211455252460351263778556612508784347941883731713248980296096740271861128107984752135686049158149821025662004426226217044783165297542868945321665399212477517328604521331938781372563210089116623272427701482647013191544687901921550160081758752268632782469589386132560098618234446962065608070896156999818123012492182947632479197227656341189062468836010712614694331100563008613850617713119925293689998320155248159507682465025995112689585577299490690786111771566161217101517667703055221057352668767808587770183787045668787581719716825540551099901688497764474725171982733298204927785033564438271746063007447803473953643732990183612298026542040759693830320548463415501101245010586363781370629275017519168938924539030000999776125514702739000187934536002954218872417184499407722315068247968032362545978982734021316231561470546936150120184593771143844769424092463983197613286814052583711765992447687483014691379694420178995052368846747136300847540661172043724977638562888863433867377158565267429087556070589851048588695137507161956312510411101881368319926066532003343323346584338350561619367538743958082225323741663461782483701473270385318945705860712925366964812321854662127449171689248476369632402916861506744262175639117653096470621050768817590555929977412324941174126752225410269155308807362676763344507032994989067342995960910920901311715051618209939106359089413217676819141474405761292158359721013453130341766706755772053928358248947019620609640433359653184596790399169220296762021230745181682384748874958797065118179653695478382806595271376307053029067654045391848106872507155751556933217994703888527198134753575240781467012658862079016745857338845866826943952197576530319814000931806749230893010072951249493053876110673854102000623844598899269628745220728535136478745806864366619954197150359746118617468106322369347797975763190010470950223921045870537913315420631646250393151690426891757954625626392426932307068746526673223535927560039493651897786266987883966288370482801264704155608668632512348908719923327229883173607788739123528982134512616135715787744168084598436910675775839763164391054503735681256188756031882898579023340341654166717504933945221629854896223409963503676943757990558989889342509884380327957918366025726468904806827176929220947618614109975556187520403071453571166612700142830921464655877789365321626411153012452513971767128696300755384182660424631777652516193828087372474310007059976734646180476147954693642769687982747544922187228532823044303665820510637955560780617421568283726996437625556098277688639022951639290360014108572174013054121915697834109406025238138621317123321757411819722367451460549401534334879390682828130343594948747572635847633877841906915245253476857007447666178800969743831167788372898583407365646414282777479387948084476516991432667419735097991494695179612567483884520754111579229163777312874538361356015732816655219596339390483231848008028225855988957045158885213343911832649427792277007877646640741922824494579862393329275929414514185373380680511382469734652355167998129986269336457285713818706629083069092101005032221941887055284600230120327638640774482129053415570105215326050199128444942042275677865565944608397731465672039667384665804373763840746742457318687517161317988987901613405543251758706725783866124007181809472337865318901672893615088292638748493143172548603523244096156990293706619004047808839808751807528254541959252420680387464407471796753619362758445116190197993089136420414549483887551166623468296431942904508812651571993547009545075982279477701589748135393058431695905164825062025427816109661661507198696881540207695192629304154733429661727365057790885305427694819888735344299914302925712033313682327685758082875405535692717937581443848141497011422771278616831232245596961198205031722081952105837327485061509539941547800547852318156730923636939910719490095762063541485542500992490228192316647931552494287818660762046659023791597500717732136696743997750986726435302574742496228194409969674940024074455259143937769462672541266845612685372434198993133706639703554644005786560651478032310986831103858270646439328754825117440096094239521803506620423865403468948190532760114737363348371991975055278970500468757918093862913765435444172796886541513861838309293721243173561282304453737981006956157235568632087967396218162110471873979662875486716219857708683603646894812629545218288381598029596379298367256175575798311681710878582010013423836843520534441104188354159348513839328805035491381881618303904100135070036969360637089285099415391847096470238105923902049339853668356546533012943791532726590569506586513970330746802582376903377133939900733880569769804170547835056485229125061167272884918890899061614836892376568996259555302431477829984751426799835404805624103085709766631587106333394514132244199578371944992196461712154277018390617418916562491955854272848172779950565202602716076539449490114434663824897715873479804640417322662067941283082533476233826396234689220487297916206552019988023427141969610916002866723714486712938210484820093659110096874024879806248060095597966128760799277129990720514481824418784805215941710896200041756698291506373512668257272637150683498744584944705390914185038082278310439438404527695367494523274057267904137924843109734821246147443980501911523459154393554100878385525284955453711206694608129081583897668931179782457809449474496487995471600983624618670592493252216541592598203735739568958246422565097515477264897832945692865012749933874570721566934610371968305867125317194624247673983101672198992106152931565044651841489146545344977116220266125131023459237194900218334581798271904697630920404769822575473105299686642074087077272434514198482016785775374919775728662985268915271137846788308984955010535647804340371149249866958445646974984142868325558656065950348567485640455304194668502918606619170930899172915795117257488911232656990327696752094607061250172507303264735202228041516834442068805338823599468223952924750819692300512632466056208469408646684160396635655017565288029567659314120191300592299679060517040356638444081913580160240146521917650455722197394772550573754425850637356397356386010354337431076290279662334431175484979807756725985678234731649672397897162052719072609719604117345448308594687150229673960880560624821763897112689299991703744197412763247813130550504056930164851704866158779347021430976223281321572554308893061992208050110749450462376775706259603304140088040395225855870068636513919434732981135787940114301181227650260103199258656944580677880524763033317730466104147029365479888271199561902998142483272239012684755555183822469019746565348811283297427338832384396097535064950214973429414977863878978534893638195940720866600460066815630538680172763470784405204971195796934145811022521786166030986115952251461749167097547381968108996542814391909887161595394283685312530989684680986090876136666340799603502759618187956466921946197091450677667715026287445739686791393566210617070173067994804383364143738824062321016407735729930740873144023838577058524372526422616929586471906289690454735022423869746888031627189246891380036018230409948610934101640970872397978468970593634788698553522344907535175187580639079852252809265534404602839897825993246495892667058179289545030988844894751873148510406721069441677931917260690149955162645513612162677276859068583117223424901639499308674162409185464069020272725856306616610376775333804911448992999663347452884969807962761447011258789732799893158879309645383066533960225805834846430667003755433408700741399490433776205498598418426677948357428906855609723922752505518031780951985068886517166621832727543371649615993171589530989070286791939776167465674006203551168068667089156359988683951013556631739271407899500735929294256042235226971184688266495771459506163806316949404850954508217568902437942037789722813584853798633922645047671541468535752666406323255446235255793115747664139324420511437534101814471214033707493635157643052668998015913731277239365897442769431717883964515100981880567855151266362945890715103580572904432581376035603686535269306886436561439829232274460045163451481966599983343701658250592396976558475960457752349256289892855549790170750243750583746734315290189585242888090660228468320682780747418583223004315760734438321298479491223924147435162988342557378373685207978968703470552312652844872469773590546046199395082552218631155824949419841751919786106562119041664360431134454871397804686578036220066942616604103196840316516269175386000191870635043775566672318052402223438458941023495895388206887424049615415567269476463574587451116191763876769748681498460604049987464165274571603737704744533974490382099818114629114040898343192715845670645574281074937128289671057945132184222649926801539428636709796270040590685086247121542966792953995459887338979588603498431777020658647355112302074600963149617475549615741015416478977247499483109741361538336829612791144496585951932650402605322670745416157352250494758790542316467481961133797714154126967801810709598598702146101990168027184015606350922294104288535460122392499770186673609813721271887794493886991929134214800650393043733663734598265158931185000393852462862626382232479821756756989593595682129371258799610159910293789635501148255284438792086392263264580995051472490347511918586396918911371744053892159117983697673993368317440842449477555556611035960075165329632003528893619617765962910341892873973578562354146245453543154694164638102349248937704647066841334048395464441301391283054941304495630244034326925381472668365396619715884535901846478006813814462498740518279326569997121094914591797261261957627594006997543729089855695681485581850407872850816427239301299348835170659332314456323260666891450248749377044900027587517568955616600051023522443900004586158101320424774801519200389495960191957308926054363914411065420758541158083083608172138547464441143576231512513768470307007340261255832146574608023977363032637684673187891547102815080741907494106503987373848968520350861867562686772213274746784750771137306214430795014407225567810178043047665556963456949848616046265992989270808388685585396144479201517495533288632271119001626506618732589698607284051283191162015187441067489657609143769486995943742093002441779037069775927707284150418552420317046601976845687806377334641695163118456604250554450213991943643312987435362970911182758715705713555011391942368450530734392067663765279687532288775310897237856632726750119975923950296762341593726892266150331303398013745889937803683399139359566622895717371815588611167925390468807208647896688636863110125971664277671197859118837952975869339825572700099484845174526697242493211808204670744558414024224469429717476176915773192104982347922170703602817403529894222299770701138681946840232415677706414002632746161582037123895448406316508327231253294191405102296784263525261268110746718440087114391822651017631061637952445400165944606772253314045304655894703682082907391301115147686380650893878558714542095389717294661084611129776516786658238417378939487953422454659619231135414076830722061222703725344292009927772681765515409305668901058292928512846987592843280809912474095852728426297911150893004485131055832242285101709556962397411485935497966745286546035577511873127131737400950405053794891809327635598066709543718802631513941174654747006437544826246721912365087508968036079928430022715619040898753425809437936087702810207723982184134485780145265900292063123800554622363953720759018007340990157385877049870989615142527984712791348250955519210299791730791932830430697568592459459833399670956192677276069246029712691372396762756975319608429833542195470862130515146384390887553070954783515252150487166886258171055940403596985888989287980953151008420650654991216839441656711764772384402554161464003285882309671383144485791837139386031033026880315313357888248035377773115023134474557239406456167251739387979169326405993739820465771814550023536390630479077005801447314022422827551722204683185000088878262845633850822606897576661690133240946663783381644160282713773451915136964379078265581519810160184309956367589784343440884387485739957366008827567794992623440869060820494007039150667066197599485384633561949603642518096235690591293572441287304742156397204612196427242673348278446555401758872175443724757074966787842607478520442153078816700435189747183246641608218420118893718376147218450203190849871999201412230833737560605399918486646785242457295410619541119363548991798885497570091671666715958146386670033687315661543980095088965270125629161617601027742193287600123355210770832411878178911820185258723934022105688037465669876913419436753512222010689673666947323875541406081279221991445188710020775960790289743518082948064166509620202694159271987071901531103096141290020637318184595135648911404548330680129792443927943961599654516411059071422711053577270217913790318516048368823592979907435350593258462616813747765162489722793096976722686025111653301239635856851366084753284934252518641934919891054004484942765037525654352941320227307747003142158456099800782133398358750205255666034814229639920931904489314719681616366685575059091478938278857909849132889497953972137677635951152291206496960455461083834983644001878571839342252126842566528240756511953499280289635937889248478267370781793370023902380660202638893111340983365109525371287355619505624684936014139715476056647307301847854427946624764801591699518507396256050544619241729625518417511176524542738363630612511915290042284838320093154231881130048919580857303170583824752441451409011128206739405328926699956854061893351402614834820021307590902915392338785676378385583998150286147037384434797594265730265711954797905471058667978722135975479306656433906502951752211890112022556244295254899556997797992917875840124884031172019343137626720937401900464836122582577085476231320414563727131740869676085920382631228046717591640418762319274423171213607784729842842111056032956826910149973534356580710436083828395116599060005340762386325860852680558952754608215340643147285985469558576632082273720594074567500004796238130677279445108240719392086402938024412971175732264514348127916604783602153426977391849059913686165669385165363010558668325777838546410342721519656224923278314986612609550152710832839730284697465148811732960691599552499340360511240598660154550777828413002960952012557351573966742493161554181713937599293442480141841447004864027350043299402522314182084779841602912174153127751461051708870528202517844847206333177073478595215256903238006457063145176099635254077278199951760832574558980897549967503464308106123926139706137694656492609535094286077278687114082273322671346103621851318081980536915415117459063946859414884259919493086645932813718836459213915659069620241648546505957711639769625764917842425412816994147670927266757781515846494471521569098540029353827127195664874028316830610870130992275213746015949422913555963436090269712168981594008083035736343661525212732088022571139708090901449478995689488208360809639323823781035048518731470425226960149519571471603189046760591949130003102965113807496167945002491836368415669599047977315730978132654688878565809607773084851274313834238752369650356516522808192731436268696242563934216746186284991703291507572754471675772183218527044396036593956959789020746538387748666936444865819144826341520168153745660023668165096937829477490028029916179433107902804780707739455264283439663135445454458384032961830742194763014644261573203807775290702365006644769093174630631291441270438487440084920707626668698567708956246687354972088574799051540312933696712263359880269954810037664006755882153110734431246873872224067072295318601195261119529385651620389822592228415812396655649147765273311948647192589684884910840361954666170824646778978854609746121269158097082663071446643088592023952995794490451004608072718351222062860468957666724711876877637649688948172246233322229244727675193733437739743243865966184704159186282788897123120579208930693691010332779014011873022959232843110782104839208114451089268954696889094191956791085493826685678671079647934864912687364412198973521789431691920865835478950701362486297135098801927548364920651733673876506644824628905197127351353782510967646871984641537501071133833003265257679548354567505116382997564267607397956595731143179816277123044689444737977773081787782555569941426039315984003582613269203180312814521129325045389065818573696353271659490471472314013401782743478237692343392422547831889438935489591918914390695785626880009360726947010432089092473356830520571034340304385162938370821664000477073172719696178041929360982485752856507699525048231655318478445285333501404766868245630659781424940989796559379350206309777733348884743578951354109506196435360792511536529989283957049813635260919264075812936725514223461151146612169628297519252336338600490709540306563711374667298512173963074479326720823571764282348698865039661939624282012226483137678479756605856783842931862525332216211145790779623100981074519360741708625734568589034196084197341608393685507002070777832963508977772253607646913101152922321204685500244532029152396976120927849618224087677095717299879517257766002352981431416496233018861301506570270653542398709301027500671997187577660965298044706304960059036469573434536183249636605853274395916185567271544203260689583108776591865335640061037169479812073135626548500881969659433802891696840284020137045112565141740332882956314624403558681114868005624442242500112729948349161235755752118302475345941630694653877827686493113616245470017606443671692609214430437263820610052269419952147450623277527245002674805588364364127105993049820746328877094356088543949316204077122608042477142411288910874605709570126662107424326515192676689857378419170060308491078719884318468023435909962629013161817089032728843682168609137890548434360249553693654592153730497639957283671628577749990793491787013379995400882503998062443619952188642023158371663316656318832087715992968315354677208549738603956544252799974959815785893936076921308951759805701328385710797584721594900156466963730401090283130281338994994860427760016507517905687638178468185158237533951498480305968714944198082214516440382289853753245807445037534470332244796392422555347132830264713449634247837845645434619186439056285080904473377209703135130112490177503750760633950955592193749156074687771847141979806800884228612668272648113785222577371842465174662568702928879434451246988101676789575062206042943917051206478492642786000404089401955545174768705772235837135444444319464369309317784895674172296326606725038817795755367955386636006854533238468881158929628965514222109313733719561683064523246690039172019501087838287831781334805039460794430421058368372009509458392567576404800386901582021111481931500580808601312798158197844342149968234976215936158193495972358188363828835362165414886599300777160743594887813729545377842042776945826484030846865197628677542175144077496281442555039166685786008437122486919494003005301929494971098125749025322468635076273581260731724147967955633176314400731968477876944039502141110888298644567332758526207610776725770459473982177572565300658130675607832874433703133998633592941313691184054598622675001292432539906792064653750817256054366248579122141425786401933419288728576201612404165493379413900444358960545319788653579792071863484095354407845820578833214968167149562051234416354824156574346070249665720365843361186993152924588586882116789194739042705515436439347980586408989705989070145424871485689557986120273854772148702368198854037459006398651435575074275818831421433945424769897241199118480780732042847786676344125430184578224190420272682356142448057026915738511762492548177339501154777983436075508757253310979987868572286625551799758796341006664706083201469885611247164710920523707212626887475222610933640624308616246111218016887695882602559126793322327308228085734883997995637099729754701788777782885991346181093678626440759287662489067094563082337729296897313695627978119807037188814777970693981844457183629366298528221811076855787031816136248621132769931207957958340793502366925258304253839019146378856517014585511235795938455197568675000395130392706124169986581106896736587939243002741852564883555895547376721224724764877051144557239267335887582479914917917123472816572340735042503647025539812056970310027255507164472821441829169011240428505073970770670216950604487281974252205035142167751049365586366966429227469281746621505665864710607839197684116271760045975829248115627138887812017004433343159107507692414538555567618917627738435192841866319167170081067098915653036764861072775639548241357711090267691837781852844035628165258057860913060336633829256125254508814359474861600404074803736450901626813447928274627485042208672744706803448822045700926655829285621989608515304573500184206622362181982226822783040691752309430847595516639822280586952297589240951483607381981515019742130487664881431268721489326143308908004974019467124731938427952465686067356123296141485696527911738965150737361936664082295272926863435521081968038384175325772728463693638548147584833078470952131637093323729828819244757816520366961014785958705069865865077506218608240665580869843499761844522734740867531834412464524562113639176722432999333680646426515705473083049764458098146580564604007513858675588309472278100071263014632897713286002740782244655047746545597635800051129993124030525132654998913219211875449130256788285298085622345190662169997560806280592805766831247108487763951483588132490658937357665272862668725568005017270527936497915756538911328708981962812285569869530506955528190627793630040949198602671803347409079097939214699015850707696561368528480985070110708594175535373707134980761118732587828042462689159869923371804969014062330702132886480277220716054897095504094665180977707897095597681202052970628151128992266995433187433337246728115332877378287990711752552726639227441281371353729214773284968324025821975427441513535863343877515642180061029126121478208862400861083635571442719842955578532597058368159679760001163273199058568243576573849137394734020148179137248773440501467741761493940954648740788409069876021562026876669730800133800186054681961571951423369126619489086662962308997590955755110011298436660339792430595561061768047311918199878251642701959340404950801858810431440586170818455819516818569078725897789123113904595746768127104802102979508063428254563160401102120675843288692064490649798093793310047196943442142678283435024076623619849037354766267025679283112725394296366099434373749385404156030244174996244701410841721633688519836694428665075415969519426721783780760820282182712487354872841902959789052850877865651600448825091475957730806269546948905546639600946438026261276100672086091286781509435136531658396946535087562876052396866830462574195249681135078397504562734375696078166275330885479470989494853981728447448470351274542268444733887568649003978043205405329696732721390891987956761404537473401696847238610103150880518922080060018033356242680996583263555103649889050752653427806386071096385709516937673834970986426496040802160328641705897394118941619093716199985830479935610959731360634164425583536593217615550284341026597462993511004760146772554673471058791342812223757761624928739505678832187496012951850898781414682691600432443304451112504215687128926871199312874190822794331641131943182049741771361150823489491501199357823374796397536110130804782790377238331182472398261392397531270113457246604588885720406824222218698307849043911167485666879629836590785363045300959476218752148687158469340064174445875700346167917437742787732964478875995910243355787312963592746535224021825252765809369863442002462821008311262436455135714446486075769936018606470726082833918448117012631399466569905219778813461253922985707224378180657437402747766091825012101650330006387689026821596794068567906054300370770392012084438995622886329730965193925986426913568924221438695911764202822289509609609460700039682932960302533672702999606930613036533563342307999971502538754684166649236433894595665640700237440605407548114429043011621116525806354000976994362770371404669891688689296754864178152925908453139206194714870580540604310861592564784070938396835989317869688222932059417796411555002923412115037866712042354229153562302923177566280458535998888534498957589551067666972811934116855936289145754684928114905121550776240999186724043603484408506239238557706818859825382132554514461553437180362040900374900798837895739268895601109241068254011041734745186466062396315636311156716678063612459525443079313586721843049610998686009747295778648450728622820989609083822269128608975289895931447429866848718821457878100816904927130538510583194452946150224688798207034823304846531647649585069046542900299460982715766163596126890124001598083948617119386892745430934179517280771026321119838148901630327816135835558394577821277293961112678136474527628547221102000663228214968183130737376073243378442853317269277517729714304177957306718730800966356280051580285118966317983537471425102337565859040568507218454484895993761784666369430700671537654108011984229458220016757980871556024599644540644420942066594850217475215001210491209697923257319813379733193390322517614435411767589342954537636918777350494613592040728585864138213025793243265093399467631349616596196775138383426234311062235007530529981041085008570770155162506671072795293513541066849709300787188186556871913627539532184121976754730737580356210249008927777212259715625060097413184255631699319704798998577321979909924089122448317327018889336580297896629613686325603714921030220186781534584391122877371599146335041358049178597362717782246845456116809227023995289343068487311631686186325924087523132485796601387813331471102146139155345353825127312878706277707401060328368739910007762669430527686515781672376729507079345161085289144292710490006067324394348227823178943124070372066568340186566397957001777210628826485633086569564587839020004647422225556439865923141500165763437334390608986105374211334361165789199879810422159949773577013886742537585367359414677036451050101072436856470306080531448556266209262126276741914597596877043670863738907777624662891372941059572610731048381196652362985136714718549064048545474150838859526161032825877213116251336083537682522295407362772171037370733156011389041702783399300473262247285265335462942648163040757008592113692403119005792764933071155871248660337561560005984548036999475290942101220361318484207942089545373911197038327338489980415596663424815533483944726787759852528854743929256281201752667999719726391654189536239793784136710724474474965550307393831279614590949729121947016968193552484193485259263167186541928511414023300110625833098295902016131941063488904935442641008653920265184721041515215154644989923963406907305924183560425685444937093733030353574951671535156383789891838819402644002809174596437779996927548701264611795522068378922251897822351405869402471588963426632756973436801075557112432998531600838430003131336988136199256360832660382867297826956058366262528203646634654780780311137203556392605664012316564907188099531098582541530130217514916693009790474295502714009486354622274477104829841677457531025063627846570976648367089362019563902443275451522106056710132967895904756153772690132835961814047777820767363264347952985392560586624250987847027090181450026520911604261472316865999884380147622448838018822573371739567390780322908062795308836440499025527478771125717236793712505390985312906921639408323514257193279608976846181662658465079556666231485141414441197343332177271152124640085151444112414098218498186545611096538427425354228270861172675056685999220910389226164267667672467014646685118808661100906332384466861934037523098284292154825835637878117114797555396437497607343162929744636265917128935074232805649795346481303941071464413025558125926614980888092039861000572426257098477581413147850707996999288988922227502069838273967529078939455220322037552207812227166517236142335825731873196201554499745685287095623827255893452948130051925995381170621719240846022047535583194786423122508340920013050446243323005695935886804616678565820448085183270267788347897283523243077327800148201003568761562248651338458520344663843025696259449664361413802316913130203603576345897235560585991489638656569873659147601713774121102322743056096213822839203481478178819062503999679868181832620061437223062760304169976355385514827573808031920560765442921794806241819190993827749892783278017876057954920781377255259305162887111080870643319292335715812043175232095086208281595786630684597416200036279643229799182491711326600875015634669303644143228489530412145725787551166696547867485192737425815271942517922358569029147557226276165860517547781035013339913972132087402203860114260230905169202805315283647246432884257723982900423274800298754141892578432795921364555209870945137590426876356296262039652870049616503368616024271443282349023546484955423543910341970557284807733376898331637830891883245981002208776842425801194154719860338149187447332702466247819547331968916653399182383493945323909545260162404034188325914267374009170047078418983425123827221349314789184293579784452436898279641216700836270520021019142488242235049753834661986008577436476218418399952458859498284288148790549189130495381735318588931445278295529074160311081822023737777827510450300307091928288317754101543143716758511279349750128636701466047310590626097713410762834938144575950808609229621722996224420960470712100243493575930436009875908078845122336113501411454001457120060270299990984303686875891550424637692691132034791379956996649037008229833343379828468276409535024430200433989699924522572515222760570828273665815659266998518908819056465304475898375805656132726936406254536778337796112255856516935757905569055672874976912377223466170045018820832764499877293779816274589547823330327247907246249014513543468362893581842319243823240781574507514403712576710054192901527432365107690244942533049419915184375744438284126189518331357175400254479971471627280255320596166229450837748175711496329362301648658695140813006939927735622155300757931411200298668827200620682707855222851018204789300956210464371551125742307261751462117851987130829283886393795214755189416962264720656011605738964684030886369314118217612276936891028813993468559369839102151846788057805932180171176941708626039330296666547967919924791214779980657244753311431958307387540219253698100563760558105783566853571656815892349308107346433395103837358715084360219757388809276693742709176096185436661448491293874451617123279883191247693893756094402187424517494332314552721347178130403888486005807011872646014798470375133695255417696211362011734322286625291080836363321570787026922419495927163203136911846581123103830807777965116225446754841740575801521752522820836286834829052350295620968922379785939459617322000087956634434159161760635118154383835701035258340724822947907099968313646939912155596788640782853874031722302529024493412389025074261980804068754204763047074509839284948284015413394849311949996639472038335668588120619625724764085735066778646125935593042669871118207050465682125357229570476954327974276209817319231968721905867645261214599262790733645959999764891993806995283811136349077226586022274292857692815731724989069147995829951160391065446945997084828058593742021331965419868580414326436376027599411638619031368588114478040121588908072643409267904550586542380207595674955206773513788494626388764366307414094683888397298714335656637248608475344759232163921960399492808713507460926160673113321265232768085274775778898496272383593796308273082040431801498436888522041026857253951577840483338990025738553776794105043744857312859796158363027646167038400833165519633511557146547117628946807249679262143021253498636677296370483303135925452172182485737215803113129526989193889343345145963487525689634819743097986150895101228263814497433188840305325722954279345895995374648527320757070713757552085103338582670550479257482235550858521178894177843139001850380764617663937121158291278147196988202791825567483602531352743576371600290611324944441192303248905718152561503210087874043623521109213518581065996535564101769454355464788672341546071160451693095036358891269984093739381785628255635163471321961182283333998638181769854473349752554567177201835764213677463457768941634326467409362511223294670409445230536180578595561559680310820915023484143628275667574850005895513289720014716617918118624969471142015975400302943866561217971306469552130242016941614892121972141542268467917599600135699350116723533016895427388958359499313091833742977660310354179703013622050174143860767902443235026580180935678089454945710770622338487539845991479789753536139456992534591299576939172257597175825375560518792877408770470724245423836619970200196565300851686479911537621566381039361818522168535965861687631180281057653299789818146324057136622128549296586050931009267626677327953267749810043026237362646947575128076052963574116388966963424701992648139379451257022393241252478152817958610668961683028046381679676146338987805106635462830391550521119571639643121412995151992906311099570109951182761495541674712319397864534898605144022431813233108973504774045850395140972033922137349385945838579151363905937275571318934142029991344344577833914520007261489149484778283789066521060594301088041176160840060385087853988510610560307273900167950458752073726249339922040221118151433871839881631590487452932011261046234729906228046367634331263678554931058650804121833027168287123588163834374547988329873415386245887557967966302581329212937764046007753401073307888190198699151066100430144111497219195643614538600167575102545159217439499246040067783741485860131259697386171393024823615407676144707424109101325015515102732200407095658873495130208806646239123605851234068297583923937175542672956124702362202923287076624080705130082408732895215846888189202408350121354412775139160353170903134245755075095595809263138957664569576250247206150697237159629048223464311882617910262578373040298233806536329766100984127634052907967120472690047029782907000301529931539071130564769916236231921354032810956240948289514357606866309161039440691861474998080361775883324901264295644454106313023487606134192826832881439354379844116678255404400616784990678325431182010478178563553029484670312006778316354809162392148880354474800535153890760102948405944534736979392767010563646821348164455754206241140246999087682753985224798281682688434158714555640176631472167775245323655771474433662879105665126381912971225478490092983344779775174959839904172564332195434801571806520201528191338585680879430522279273767039290479873453387154845641895506370346406644701630768879840795446874032474160235020392058766582692114698647343762755921567701078374201058983918319877695097387402899868132331651064395890498869466194005734858046836588573398008649011711067443854117904100125903937957471145370128467863219455374262664578359235400954928076025170283207727563304945071035353759838036578984776837482825539790682868461990899962627835609842264421239787256747934802386192634054469901497442123250678296111437643238115313273811590381527792390110119026295542977012398877161865443533747380540933769832186596488578232562590822339428394759747812714692155174987828452506443894087049058515248745892097544780484188606762279474012341286274287108404942022459162513457840034509940490018639736057352543978966612398481903332743476845381259544314598477260273128677140006501362954182404933744672110037548832000535404472774134926090536497730151567418512071757846987781840241854246036328984350744515728404020477904870885515414898316229284690109796482868702671928651976700929550932309894103342940912049432965380076335630130671623004336435261539919323886057406192152625725423805377257134874125500166606808507541459546900246176958532687317148180349532671307117756922652351498079623983014265353525536270320208612609759321216575033398286549532358713941908797188627639557181278024297832974514196444143672534207927219405746020442914721335027043327765470409282093709203841529144380033600658995852704333883771588897687836307182859897007441891959293754352305495220989233714103110880115140063229823450555112390031662126365031545098283283536010928044779992220289499842954871067228427140811664886692533345016225484156124790678356852726430925604529884298575385725688159159103546197292307106595747621967086690362146891854268754288361012102998945325632793113517939552477760605670616275978774594530973045909603406304320996084560978441893756961021622419234678387914615395997099657913494397856727659470030981636335732367151990139109438388056774242168166295594102538404193646517353190149425165896470258686297252006720460676886919628281407079511106594326911525669497674801789832899301752904781904744775754040087299785887646519629471395348285014023007603448198383277390497585939795104764475756482132508044577740110841618015425874810223371972990755031200147990288144967826232473957797507731577293629372561568713158167730589156427626794542820917555024577966837522640306443228860797765061935185545315656660573852437214416335440307467324747964733190629881378891822534754543694871252770206957713752679354400262464702708016432396740599023368714696104280242690539637034186431001885087865856535543178610594406393172273041129939310566278693664907155002493839861242187015901518254471380963757695512190045207960310345490945878862780102734119121079702651692375434027561842899806825671666717134001103315557375389363901688535163061225698984992095748841004944156661693721998999255895234162227988340615925750608363392320312254537576828317619810506339052340212792996039415366847385551508178806120845255566275492551921975027142946877844758708758211705015829189232782181930442323318677844506126788546134931628524766576397056621374169813810210690016846919250656116462423625216482580728907143488462098177629703391280070731994639682704462393587340989540456846900464285889531493640495091472510072169346515611382199036734510641641010440935402224875173697577750396350795021426180086054198587495274849217570090090314455885098201487437601758866193579888707977751648113027378953142679357094510803439760323376244878860304251069926557534884354348725924608466273720644405963643361086127306211549859453879184846405339744615043870070342789282262567687369742990875835792907507894527284973148113806531140235966785226955360694841209635613755096060455956576819450299026370024142181363316257420348288301745235567576154367714408785838346160950333020593198151918456755601688118015884519149143796274583441117475694672217219166828577437201688141022660077472312263843737635168607441423476745467980071449901788218333879752458901658359677915382834845878210907945706312383732173623499660519577266863522148834952052410491434331062800610981264413315517000909242005343782276727547087147512496693918133066490043768195159339228529251221880395703187630474011126667448689108224377318660420937729149652248028752029407134228877805301078587629760044193432277059903145038365020075687888292276329497415477662064432489657199347732592175260140578645870420087672482289494466421358150048997211173355150146222633143856787041832473481072925432197189293168081337360303821692105396467473237838871859697440605338422540300834045218790056841518981288435519673932093375484681162831069161203523803994637870813616522217575173714603353268176413148521256130453977772892082186464412618316571647732320125481243498429932924466322674503458657688680216737105452683556844967558677338303002556027902823538356643551062949915749916508167853010916888141464186101162867781313312998347746923345604604796852260162049471656135686845202791683430795253305612779324549919484232381024583476733405818023274562875099992554590516123161497227993656942714000375535006463547995786542256677046032247078792158584922753835751640423484373064751230343162411918811849817374325920541968297461098076103940701349324740872969562689403685571160013794255175848399073306593702389697208509183687444914885362402995382505460498567592022917468623732907495703537082440225437337689492272362363736754632749500299321897304323516577410726076359016334168944861938046580616549798600446454662875150166674538494093723165475824801199009431903474270686082984717111640405214597231103563618580822522189771457294066161160479466769267634152241670001327668892283966510761065952637286251312801149401600051576073434874451913660748412579155093766004271739142181388475793835288535268294970162460709304160464630116701829597286474411070346241982233454237442823975030124555511805736526641626233303618879280732774571246719965436908986484596582012805081094975693203754330164344315469867402345440919708527003248418039635375042418973992733269261719765782407464456115419370844252186048323188927485894465607353322217942879432889855114489804242876204394564022357056454865125058578833482887810916170579047065582015276499446011309648182168501453770896163985541121984518746386831183154751920547108483108122046333893040656882428376320246363598700291226329191955490529928861195569779878907725167504180364491192734284371551342176437571327368799288575339328092980258241794853453273698202999234979055612092340409501166900310635567105961077716283149511978411602407968775239919852490736547221089313119869177290031051483539706318832279764611079240357661491990230375337722212459951713073631810933660422929143561568646547789907075186845820403536652527637901548408945530308139796190240986657395148956962187051760500695979939203678936452126501730166242561288140905426466011143855382392777506334331465513920764931469354239122722971747817040492272846768719157338995116416779330014319100807227682539626786834796270133295815390047970748859436378363841637484560468872202030021988541532940766341839888209504863110269976647373472938599995692291628245007557112154335674735916061129836237748746934829730692514705980851094598083896170166241862657543271562453486024367408641101966335628783207634277894687456227189323393343068490185448102033932340730721875948307748528704243474621696730752338919907134432418191484775149579936437388999679502098712945472049009264840692987724322298930220631886161339989758771708637314989416065751714781101884741753568412652041174729066128365801485245397589075317238153758751350433651801829857186523373861032936973840856177573194924104368842451987206303181945006039352162502168927113818640587604922237696258949411384379577952322090554808354200679769206303611806736491693607918263512101969445019179976966381814273908766680460588888789338434532786038325547523701010519341960996144325326342193921674662450264844924021481905343202549352856325108688126092262683720236961913242361460489654698116131291071065187828491464970195402275984990267611995024663198159174071201794935665761506719596528202440731950109436991530928464620436291677548032616766502942864067398063129689815770148660604482479065509151083135153791641079698239899524722617470585385872560905425768402852284903754807870509850681843533064625181301599307639238822020511589575170548824627265585151948157820032369078669278537543745141881623406466209561222244214133156375045895722321884206731340041853148647617865851765822180231240260337851025970681157492515890543717194022092431468785426941986475629515878549460308478625517781584206693169950611503588200298539118477804781560869898358970959403836665003351974721082549027191132572901870732872955039346365430841982108508259307353767194459995410490008088428533981837439415657775315356995356063684956412753625096254024405179254443237190149575455039736813852368810712388088724876285642001906869032345437929617342656767338851132847171866007692603058981101471907655029281760511371933196952659673406797024555017260138585738426847560364084624959590463600406622921084954949009057725268130871255341530289628099034212578237155778815807552147380617145494344861479729929721435908074484265058703206027757215204243939983361596733648350942760952657951944101630355926678599423302233427132747445292890916044061165752903730650591876246635408903685320887637346124177813553628518510041595688658654698897060515411625019304884916305342418284083722271213794195864591721131589899599757623599598407455964525513290575813614311743660691307247799319353843676342759391150209322040977586944193279403505999047557298732512557417912356469241120783139281535194793099766991252301639229910434629353587350827096471552783883175603474060522791936700873760628050072147178932695504697872067885893566169377071520330517418134650639007591018863356537865118256886898798157903187209878931272182787474422040132382604724595258773604426277265045104192462697688888306550896836756653626777156512266507391628528825183701548954073588175778920910020062863360532129140635218904194889983367104832375311170960410852812571975982605336171352421596948562715269909860047237959072950351622472438048985910383057007783601473363395237099874696300299675617529700877292892653513020388763412858619813281559186191122332139805279633358223077021305306281677140026101147709588014272236099284736461144703444006430443051782218215577845433983903807886137314412800195889699494452434082121121290007536067716451141724198149658338236826234743753591273959336838884140359629858845727431076519955699092335343709114024426320561205819922369425744169254513941982028585186076637251472563978722285030626267160329271140982208818602977210509087810076927735621921077268999611773841855470793224802738512378637158210905890990455560472487659030141136825038601317341971184575002833467086963009198440260066002927380758749208829502650353287326973482122331029517715748184040609725456027162894364963369212727798033525071176458050614342460633196538062190374919920924844873822889842404885394962295503060125508854423522512058278908389594572738110585886155340971359180375721408361309828665532464233951508235511020901729663185127601195538196996075990195510217802342626595531934151661519704387530398621155117517151007452197173217881518874417515877075379946687259930175099805895456369222056574631380613020631154011811407033766688020196632140164972827371496858384812663281108306677266652702929675202501097417854284675480485064832797504222425063377840623923359803134327416548400509276364838360142607819436199253514634216627051613869341405502449798796496745681533962844074766865280538252094637641235653727378984272624604273594157182324638134416476960147610443148159410731923447737154056339172685585523191095726396320905251536650514315977128955110691268581879134250910224857598580891083123349973162192240090244046880270302383585261445732661168470612309056847568296270990353683150824453347701693088846847485578739271448775963411063148280875045071401729747980175448372304310886191745429988678128728995965481974202039976161815677630577608896188249526945375755502894827020076349808342843185562143283483017745550736585723058638689894640162306425076100581756589765328631909846754015875753365500405121609156566652460914618527442360635512529940408159053191431227627314218753948640124712881177856897104481678128749653348663252228333101629265112754787240827040743161397573084326907692273620207598674083980123526327636805698643466457197700898503836574356832242961517623354991832673447839179540737458176002898915606639707561880442031711606829932244990380032430325986089718419462416813515350690530105477040848248866406677202656219184040732277520215993915173392984859212766224190143186360997100231772731600174139821071324278388755478869524652428358272499163455391764266586811206253138528328650370983946811504787831070544556288380776232522685009783926173413732583976875700705474461123372111088973641254049668537884770700920498262734020140997251185135841001594413349615371709210321125162302694862960771357390477973714568260605717950773200492189901599615272354542335568109651996818213282072135149625749485158608157913046305312716955505327940866810093282585029441823068565031962382043895299133060344952069436511586512112415959560862957127101989183259960344150446417140373788268690143226951601736124150225790645751737351365739033123264073520825088760744573973730603428139145379654249927954666281024262862285910694402427079922806631316373724514883634358147860170092595358353899635917278658736748507038681356141145609819381903750550804509558978934965427180067254066947054852243976595652689414104647829036581310545410304450959255340458847631631046090185574683526441539523471114523660757354553575276923065531566573696690063266253931440378239143229480680140022405484703801062042517699584801958547166296846930004833089815735649581690637458358132514187606893660969721941865339789818413567934030769474296648922744134631916557736208697543441981067811686473073154643065568411948854872299010924272967174596863699599284011644579829505851870003650710341236319514815892187650908195470504938624736046706428603158625852959794786192888277147760580934727026316012763260958305596017637827325664270513399986485733664634983427062627628062953931476189711078577282247821520537455857049609932863413935478137447463441065795014689859104750898511974934742430900204702412378550321225651418945584251513637279291296736152828106345995187932089690454154933632302010325129876246102874485431152795469991423496124615293785459555960519998463126607819626694104044283988292506720578961206919753667092270881795372001452877210207048687367645789364119417559424077283696760420852757634331594728347306319712523920410210471015203393983408204669953435239695684799036265686958785413934504092676524668479888626799936082139799565334274673555555177659293084698746360990770432395234918659618475809291501351434573475519551877059078277447634702760978865806536668783979043492027511748577618994470903593834256870680326379994210137729211441377786379941236519025197285151394139963870897845439584657863923380855743131456429079366754503388915045292071229818069594943226478536332023697165558753420794658560757187314649480390717545027444932868991296012992572577146066324746392180305519630183668852993056943766518101316520223431343819507046175626568542955032724252480389945769414195324222239215163504832315325163368288252487866085667350214698900144115268494633028047901310440982509784614565943760019782635382165892704114388626254130262762246526999261542208094384794430732181190126858265044661131683056859932606423772499126071993756247329368279011725296383372080562839987567526919915197794877196430609417856000367667780442230138783343005107882576792132696772969119330095798222740085212798344408613541529603374031997311453120137744909143926703799875039861879516838197173863422471240043430899470563963289186906868259679836801617618418047966388215449037601850997322974541564765954109416094830653218888349191740742656836213903039345127071139372091730393906764242352412340392901038728682695932383303339569509272392760002307785425815970490294389489028467854840482655410498933060558473356662440260025471310476427969329342105695009757408422567586696514508220881716216283366676380064355558287209885982143292518125448554089760023702294394661436958141557483358527458275588598469705752665923208377650304793758688862139909020749210263843152623355475911952663413295914339914598049916325906744484597240649188504898394576074894015297971491088565457298971538528290041419275275008444123179858270807211488277718319880261333395701998558941203290282744877914290427310890736181269161946249223477186805024239194549284977274029910003036196152765515465015711954777387785817752558838183839962236949717069492100945983411107512816745308203441176903574125679514123521297679978833220858822621742505494647423998775891577261701780075588008329421643978763343246824211030902141444502876658681451268750658472112389457837189004055704766541477484076326074324365725401947179900560475589764155190745661139108487049030992668332443529962302087236681522318170013233931242959616553749737097598715194240050669330143687280854977966640244253039283952122166340414691409035106792710518117055901704297878170138040663130620575763941413279085612867849147466774801151561116472847726066268050646975549988309132484010658801577954174722101948712246892008787837851391603669687755441891431450270266294609956557598968007818372900674888955622089858216434964092799286706242556048937204218435435950101833299726335622260584106421247710828559064678851912665407234095401063497603034801243837405699847019822592978100933700115333790495388567743179836613214595007140556618437259458104607444085815074419950710114633303559698135265944823992144946897215903967498837000919618437358083601745114725644380294965651428549938722214703277716830548385284597774168051461727717235906019595483178468446322009651985713260199652419870722595240843360397329924016304447010209104051144280511383081783935874558101352622739070903854670911347081503803406475791179463353906913153309114960781477526300823637807954861284234697214815042615025569505718226808594947877107635103212492962211519103342657773127828900441559790978984549578627786604146340651674211179097826505117206811948839435642627708246693932336525996779354672537411880310860140788520523657063371349440903739583173709950851807727558660571402302634071306075426980508685022585225549500373651743563278489997153614619103764231462424241468313541356095056395848044117616855686616825596958865348737421634986195515714415455618066136279360172125793897664521725092436754265146703071753164756727672121451999339685347757029733856542402383220164720809442579369502942090843989638686550434616622184195450088042973296162255564089985005627901968281715388472450203792612681112528639208782234941813035834141659529634224234298111121892152002238069997622293480153359319937215108915479257527169788664820204371285461677626364709271372868180425539832047177097111195119510164585319319762344602120597386555921379495379721349422617382291612456577804098215880103804291035838765354577497686141740039417706856444275737264699384627777812835048653419083626189571367859975272485757393493049322582874311156433743065402118818408595350958150198443363544324455510158039250107129377268406356522733903944089129658539901261143866460534677616223710705871161824912014103286900935249536111535568566420616490950379964104698072306628737934536054694990112102245716916964521777479585830253721851280999206524975516455101126978315669722303185992254460869590939530093803945374944639557606342952463500731864882601169300003203842705942615264097339688555690514994216059727864259400013752664948898710445453325487374026803906921103389518691572331377907752374091309674568961719241360587707960980593897803715083407325305630949489114462023761363554825883130513120155066245614332805928640872867162620245070974704332872250574023595246957189472389510205968831554046841585844342504062143791897543380253510886379715668268127737420243892248722264610595304289911288056115717791700779784691354923778116109755642597110583457968558888247091241907444912373492404008177991317931228876111150730737235371827441319709018179613840726170884149927757267661096180449701601124257890335500241909603871946360220869966170857050300020161456926907584325102572234000360566424971467870841161531555314291430734236347742350118336682829053444646053029812637487060712564453304814353333463828954607389870218196930770365065297563896787523341137634803231145237364584972183195986073088229797678991677027658259101829088184466014365553858064098914835105964356909439164677114841727193328628575107039610644629819225870527151681564139767729582472219492678165376781793380071026030037171934673942739545936150384446185915804044192423867390767007136838462157159833045968337509338344707480410439565741685382216215234874061175574091422565126720996539391292300506726893523871780414977855940542816085765209258423865096708048585865249920290837635163009917482602974790099101636280891065618147661491732969125029105668728245079410978894060336369880502518919987291602347374013997438124304513774562373236422600111406822763433352639064858028643930824352148759740841018621151711097467395323776461256787590699066687251641883277973423656231350872998779977534046466551984491929507716840124852604145776214370646762165685793375098647432276610288665375851466542345083018547788738706069720984430558374027491732845817693083861866087722274760853841713614643423275642974879849171192079824194981548628881369780691161455798249329036307450236558207336175867298247887229358101678311471875045661943543168947991526152628281217093803792912089863147839409423169408569441365811979314294709517239533910596812868183783433901002662607948821867479530757165159438346505233602809414000453387532328104383592842747890010121415753346287461598618275007033947997681402886946807312601487931868023395155140697015814743797236323727339386073709210297277298596009314587192803369772565449769172558852290381524209890754873030824731384169545456103058652474434553387385834108781900146273411680140424031259724213762591609083526419764135293103029713013635551906287160294831589006836967964094022777073257940515543890869205339870092985953645651385017443939998580982001907177442863790655905780316951940695947134732945105478619886273911274820266446829068837644303514364838629780825070185392189535120274945192252366040787891184137274663147870864094915315157236799220006746403919287031542370737671201431120361139744582005445576003608198765117685330799911349078523259745091910457913918813021557304814567218291733628510747653537772272430411824630583135477564807324644977013946607571153230261564020046115841549112119212179709620226703648465953666359550050159763667678652616477437328156419677150094870192647061391633014234030384206180915063180167120434519029608057816006798287932304399153838544344011812138207066165265353682014210718296348093730966249160598486045530588138973869728322657476105972985350675957955984157278804663135882985244172606475932684685005455923225709916171071264843953118998538363698641332026785189063148805916089087903593484475586876718990074765570213564575190516878179022953341649720951912744430196010183931979235440955355051886053261949705497418462624920233088358392761996816104650525030013088890314511917193615143591646464138456268301705500453752104222995466782748742555648045872705757276050688695156671968942357803073649224449132655640571605254504527111050980533437081244643066879593693880116473134344034796959960689732847697303921195600817970887701762837146825844042440044735900273982016146709326591856030378224733421841968623258504742846781052039043780768280704370192038885314900413679371236355334684322518674582314183248247011442216479849784441274953327706687978271132719691837447453634177284636618804459002194781937379232942068362592899510135780636951996152665429838881001569928407568483704257637885781266495105334131729072455253466903032977254819785787032642071990147799078805129611234736906213421251826041707442761521976850459446148894026725252342470537123338234549116208702240559136359799988762959374706131066102988270851095598026531607369846773037330701802382376992605519104337006116711600723896843184364652848128644481749978977676803010186195072908628322239207607990801161830222054943469229562590480768213784869263196624516455615045734845429404633456451046102169455174505318277663136617250490704316837040539971128961470526940289243095412492360112311600954357229301767725496624567304471199862966001897479000550058191335717493392108510665114590182428624399365777832362505006053876552999501510810076492605840075251909693252231287985129800874284287744153362200870754629056293115391735249043432731791117436393122362715446399082921946920476219445422535749532590931621849099994449284522481187516999512134305140027980524195400086469105473217410700236166755432628510897434316742306531718124246174363846692143372354159618039644309582170318238388782889324125230345744186910664514512666993173636860751517906343913805420513696465430592766369069659988206757593183336264741720893011688697607222480357700895242564473194507212033348688834956498736811511885515199695203263974270231931562184511023464874414453624924526015234647155624037300408003122120354012636615289569676393728777215825705803280805429143381289491095023288479936802449392721946740419274299506400770639749533759695858615982140194831848195967685423968629237236085502459757715081033607427669009958282585939922940066133752553481207730178838197812479921923812139154381689190512094974047078078143871919225904049235422542629548944230245286191671229054489525979776962532830819024165418883901224337705631361908718892508663591243102837983320265715268771891120871564477816960185592334036673072677410977523005053115628669806671428705761807635428956410787920705170948015894985150923910401443082286701706086918709855522856325720110381936174238667813461601524230255862709217732096662590391057856822112620044081069600533216427320699192247268575463701395329825436481590905337585226192324099447181203452792120969506631521866401022053510598954331801505546058915691584152400474796754438522253415347863893707403837392749791969878043836295183413688170367789476957900728207029041341064551647207510181980257508066982601958151216019324695334144380664096583617701046937705756226867027309417137216984717418647659621041769273196140034755655292461731507213932159407500698015399594461591601197899151159259206199660477074038275216841138765971424166240384575713069361737036799101828741889839101532295828334509894607706173823452477882721622927333644774960396401623893967468942741982747354128784564880478175107870723399788994798760109040080769404417719381463192464046980420705776257051153821841611701511676133548156385234727822003302195225600941986108762326257752741674534211568975225088568130529254044967119073116376976858188606516612377727938490874912092384448881664018126082080182060069435788313635220588434501449695421980332212499599718534418666277044439559581191385561066329123405490207524237422774618387461956770310676184493298095658553261794981130278349021585659942058200306004437438754360006599792699577574821366893329937998158482618264085659386292437955287558657000218309087107320468781731307709314459722436744281054037515180738051708810692187578112741836110124584209921771106648126327227403733286542649215359691241127064848751010171778146226579185628254895413688567043258129593787444010529364515821742817714910373272817174002533331360617328965411278792398931737113320518310124731150237210346356577620995004479633172637517023686406566953711510953691952722519569074245196960770795133712045453529409253845899106641051702852830650123670716216762589572603171681955186313742082774224477831561680881246760408072772999779863484344818050617445788458890800026077355603514608902006356152991423438578621692076450224139770587123667158224311192568768852506925053512104488328667703959640392877796633961533414888532525747280486080931676571461307813827502358617356223507873005943949620253353466729863472688429182365612679587302867646310498085946427608567673516924316668932171028949084266701973075286457219490726260955850169674035567187173428923984878878408463804545455870318634812820138566680613724560493421140575448230424856818753973836808799537524188076600719530940951576543952935727660131675237330032859785750194063926581498462775434632249938734506100058650471061706140768400241302219115720689086600164717436760599402942521257560310610672385840043119422335315462014055018473337287105165526761921577306258309452138818313119733904247825988387168078075383305881937820678276155668456374444406590827343450411017418362803005169209352148231089545000533155179666766377474311029526303458374825891849948588862842726222893442264953524853781205935446051353489049716739670569423886296091115328398737031689288191272987189984108481605404546931160032666269563312882178029846689914960331871017499660911899202362560662161332153567485665463882782987011035437349925076764538797028209229039198838136987754700637749363354244186948515134351670276807347549733920277586065236045429377325242030898608412843294784166292910690296765649179202508094646993137817616407313237723275019624971108791422401696854902833108058848847029698151914670350534427317285404873978364236957313550707135256071554496738661169724869407768103645995191468859948494402381986862669757416831756412527246020604249962622152446222547585031796929814947534474416944321122016147813082899666340418979437170189607692375526705724684483340539259365278125933757678916414361233037718027008835929306089246428193431565601849481862745746010928324415882827214468471396262338230847486603661426231753479799070431165191617292146917866496885059122384235339878113028621830194762591114174730552472625089970965577108697011247788279283769923315478456178297800722237237188337812718341641642702319764662711642902048061090667796013083769133454746094995447931063057808765220844534004234768403710747870466339669283917879620570263710431998177277448795613154662177409533349471929962826188014024610120122491804930228048157706055988462928268933259403252376369159784867527394872883072126512235539877133062212628555495296610702489585229306035385494339126264727865769172229157336377417511688073205186674881087622033828553221443672968957194072007239939289923806602267936805526283286694234947854274055729301810842235640406889995344522316403034390709574062336070032846687436217686540405710601071754578836240726826491782966120683310512606329769845078303434688813301864957119350842957845949911378849698074735507979944231970292213620843026851822103502970851315014878523461439037149518922254534986851504331690734721137697457745880063506356894330561629716941356981689106609745884162120277221225692612138627594335254342154308177786791501862734421404186759869497102743382677979451606926836978630176265294261873564482240484323676452195344333026073313259190755565187667075245216654235224356303830639217988932730087611231578951362975457768505690320965154508792596203199420521442011871249819914256036934893633463119783775995723707976085779901164436262436577746606131992033854417527626492430872666189643675886395300481015016574767586620365737555774004342225228019424911108956277837349726844786438527444293456084417448617889550665079849962609227445639403199540750446386122749797124464298707984166867056840015784872992321766235304852866173072466095458449544871477999638148595165089005982710615608581792487293481628716296262727270053869643479516847130020607943447040583419770330069536362233722991735408519847597927230766220380957338338550008679721898494360431693492670704995727336801646557848950068810597001384285565263301843762787620725607039510189445068336110111377044416276520834864026848880805160617740931563424676354789648604381006107976785847876847752166828950369274599283598750668263196428753602620809196729685777776955680200696096885666255090308490538873784280055469614536995918198898931601732923180719766602223441518676894513255594117276508793666393443257476438925076844564142920152218798927499383121948570346116818718311967432704116424604296204923326588516078655280236527427546838250390546938440052512191495553154901467729043105290231931712266198979731373171316904230934225751077057005370807172820700314745899625223818423201799811409198548733527542764697051936297178749998956896075396427057734761090324077748469142709070483490342174319643388061095837246934135752240263188389669815766346428358885298950470252846273474297411612279085075966670152525612923745065799945394350899028058658316372660601573960458484268129251602496243670244934648305868401952611420236459932920948719927730441232872413525121455325635538481948427626356158032003910666316404359245500829516042902162503803283345083369519982998824219973483091002454347860030164093358060148653836200217951293732554949991822144521604392728377806340333710169541966662300200670683208836266891303067611403012580442313823764434996977177716173836401181347152040870313579176539724676046656622862942318189605050232041540792764665281602622258864890930073057832280337795379801214040466925521199668777182039956093459501320698952858603236717456735918172208405259759442206785467157712788945241590488236748379097257109591555562328368519037123458145052751682163275350497629967659742368264878969619537869644528152289704621827957587965231692374548261820694884387800181444866694530975385827950124223750954044018923005728129567080470542353128062510213418741803156534269752180847580739105581995883481087694903404402144122080335542763287011415893738138945074111288851883505576263190741716566208179450194586839084854556940827362295014052664112369202095228377918208890669067985651115765352401906262996749722843321797096564056953937717431183864712088967682828228793752273848282686083074493651539537085838677103069704169498236110838116766135981412369945734182832152635252516430910243060967681347102582037354137924818916272042522431586456497339920006451303630844407649170815619919046918665918711010325934159722464884509099231161096948391056104361917617495848586676043032085294616510273763705041254974934817040544703536802193259720521047485794000853314840891709539939557156019108350496537149969909795095057952853951088459113279214186692065732179582460822920753130068813902570383316589539006853876384143145311476647078545533989473310208481506323477565566794483274066619513551578035889168262881352313365637453444486724474869484387810073568843635229012355802886192989360877735435845928791911988496557232346731098323876131900695844426341728872392194469314626778089907119105384317410417987353910012270860508716195248803000920103611646096541723930877951555958842710650488766138720101058887948512874956025223171237349277945558251225684296363921805095269054101266875414233666777282499844711681088866541354661417679398020363344426288409259804912838036543740784034042538496144000584577323678311547307292051218491368854352848137669939491310176374818991264117969805193615441470463247731982671506644601258911959219838856381857109395445442188032643000752354848410751010415369215159083875750248909297673900604346742930744521152164225464496392312145139892292788898870710026017863108686660897750427336592337162598403308576926294121793994622785269070796861099467354969044378318037405548133259275617736663324249098285262194638909188940316314077728976815918197923583714950987098514047635324311672335744365496890042908664869502997327387150267007199205544416963762460197482117984100535796626089058984809217228838781846022660165953241595793702837320270698493892648738569931467952696895537459653392927678756431287675987727088839946236690427294162868226186312561497766856012184568215239570772435771606712157193169913735457708828891047371944242178130949558494658727365414051278488255252973734507452248755151411135170897570609310448460575548193666097751459585194348487938907534760606462826514851081413733433815542982667752193589685241815254965920502344334079713401295569496498683163725769965274147388895921518037051812547415634218721840518229295359184054604455210676207323379725184524676376201397700649093545413889835170168197405442613948695314297902563330442772459410201815199366664127046824488901623974266406903334659383421586182884918003000726060541013324159778314251897446008334300112475798843274445717576917035531085843462661070130859586319158243318294501421548739618495612659655368505896804523599329002692858941117564324420201999625020852296465118737832804323142930763192564384215855724308729977138492108669426332487792175490294365838148730833002522713517394369205793376118432874021843511693520777123367398719319228443274842026229995009829935995831218913851821220953152208574235533666495148181909253214340905994714266575339852620107338084559599877915115589562867280297868630441477601670222618502473498910116846760269330670772195499086372754633902642453871917448146638592846989878615535290378357281737548492874699162239313470523185903719622267752257244637152756205554012864165355690985933773683465361223002847688349519370001334472116553396797703976871492078387181132823973446625056412380284017917854020372985997097428479650131417927798354600368386632552804039557592976997223501556980708607642667939099142972644548157484471112986731358288927440761187274099281138316683525138763334439601331122175533011614323394079571767480004897570823338907506192490270851052908234641049791342684978530369943524605182056285197960748184206114654315308884096277325787337263798580987373520078273310249989665344357003125994408456076065402785527775208318754872007350198707163423639126826992893809589053002787107456017405746629378876756872428013010022941663896298780550946103905065704413129164873210426866064029993927621439109083937549798083291997329093380022793629500254014170045664608834808411047104168257055249320913206778405374655784510948952406543953787344144824273575288716581383997651114797478943370902118906760912021691298739670642067227725221822912618507026327230818692252409497671502877971178652553226603036157023509514116467798963576774394873458726732856494486353463966030064269236867752534557386427784981385802980834131608139251816715931686969100807574251314647077475442572588267915983833555839890924485796239519820444931448455924742582789738576498494578189159375465736920467152792182670987711342791685369121322520361434163852250048508870101299584942818966346640472461660419518944939100304865572062567684697619437685683132935169836725556577810544237724666406167959286718145407543140543163758964586132972105072491470705880907796263448163381908904972332144199762834942809232241366052019796677230043388900838588433422394310763920172792658468725535369337334000265820283482337728083586568316786126094088820530030755550602923049435986278654393494684814003178843267949048892464346089607284913641792994153390756242079699680004352672854597034849145333202493454830671167881339261606391039777766136426918760713444330835705105358650915834177124542999755825989299191220784545940375060423934346671295533785615625518386850833764503485919985490237688713399066404213946111555871455480932149231172181123134765842568394172482197719818045596510111121931516777822556407585046158709530310296425519065585304532826835710030201576437836503434460196448652652760029071990299703820557805234960001456415712337255052863611341899212831554065810321603529417096726000808000693982521505720039758798428781354302581398260322432543531869178414461046610239295677305906346595858158133963715907418875496389111650008092131482185270815585508641230897896403543460283512719303021179731028028644932646129986837210639146264877422847209905258182087121403690962353155341624745970495869536702924831219018922419642397201765363261927781649221353888147503819843494702792930255321125498826212068447738571092232689397762541250360858672593071238757205054987767060814360705328172572209452243200415757162190608622033176603493352973531787998157059781934630326358549057845473708760442869024030052141101699956260156816039576926783265442972863060976305125870031087740959854902483044812000629499174018827514556360406552102561742444548215566297193425358156846362418244572558636879462277722521597896829166219701482147712230788749034373644548201991707071340626008926582624637027931260195625060311566437993902615209410954632026632014902400702859734924112822495978814682313296242603598690203346660224166191753447715743063414421855284624340305331616902519665925202039144456128141497568583579376867934220322150556093061975668897352980218872029188734301278433718118667815492753633710187193993316361759592946526924154028407526615576424664186846433732424724020067199983465797526355904164490075267136036114956443176631853711866573571851582746086601196871798352536740238861540479080366497444161369472686955089114798926368768678943889170807928457082677384384348089981341688606541432182778502902418728788326174772077949797554113313720171495949181843090172440735206745963148895848451752313200187509477583530789678976201945389863216983215200287953206410875079289985312604229235565592273415708519863624488950468173824063930190503724584276294122898030449258506769959037501625309713977034377967884960630694288365403195114838863375187116030902876971175889724730190398950924817442770710619208388247208152312653662824201951400678842971606368472202500637916341403180124540336492633376701427772485118867084082664575397084536558400206425921856211386751714855191317199178077794532977386644147893887311936520959877240954143112226358903052029427726142892912679031773607310390553641488272125509715425247620570148107601236265056719931118335223226266079258920090928204042848783390712608333855622737956218878764763746850092534892557879220532529142249252321715420318932027412303090580066834471113494795199116286793629657769470450984175327686676941240324455629149728446770867022037382241557829574111839051956847330818441117531135209494181534961834757235712542803751435981856066504943884699366117670765532636894724037520554420939973648409971125191440001771163118616264105090120881923145090740267286786412866875438528890115109039187589447696939124142681645603067132016020554987109515021455687410068363568808613026071926944567026952168751066839889025917757865835074256208040987986334579046665910552862725704720031478764905099611354652342254907500874593830723404451623732115904671561364916575149891116810707847978524144681519757290211467242519140686237282876781376931067047148472317661549814374360344764150292173399822892344578015313987324273201926549982402275600642500152324784469450541226365773034434981684999162309015587157653856122374640668538353940102863026768552965293783143697652632310827740131331348474763609210095970905449110922213789968460330189755647073343226878732657437401764684923736131756734044385661589847855607331713196401771669402191653600761720190704059457988656077336508740513670299064125298670719015737895200787446740842631404127971225846629769974849473203098558165604414564874595318139803452651655628672115319344457007202528424244501680911978963926965557350789639159000652574308262382484898785543487880657898299028470337980671749962094207066449747126495799565896019419503424951840452169856998419874517126100724877955470957084269850861458042727450307091136288159509933985924768084528834771752988673171373540912545471564347084416005279985956824836642559806287539263476861587316946165235796014951861013194992651160908116463873864429604458359746314725789535595640292206961299084449596653760240889424987856878942983735413481460625094621421058834353974664208327413922923626198920902957418766189061536390958778381706525382146134987543522128095841974767525888799401651932215582052488347326559897484644597698263548992528707853922429077866678333009837748319896481243047987083023287470181661612495708157071032048176800542741001757753703512866043779332425493729563097099979861127602212798765477964381779219690197349351557872580126964848382761403594926664829659910707757547848264496029252427501175547355385850924371240446893374839807706236863241101139810457106324952406338591149859764336046014821248900901365118907515041735563435585239620042565720940263006306457295936036393971620082485540686877061307519415118028100505878211140802604966063995479881977606196298432997373085284970118035228418241891046480761304822727686311875668620731685056230992498467165133527429374333238660089659390436854336569378222985803362534168208717446865316487705039251807741198120370246851413787842181111803080228070163101160321489778171341029602708803490173297560643687952730273063423623837021998994168912604805263999132948507623062380760624818607276222970663261417161762152333066288827482507733982408937429185840540691937613467427489478651940046682593520322894101248636719189360837337331327557634215875064272211273105537248412497734737144193160650631855130271013626597850225810942269142084432666837837229999855313341934958237773481460614681911231250032593172275976295243734039566084743808701359114534500712575754896970638832187183327000552800682834029149672968872432516741316625739657463053673444404338028089093916314769362015981442810209372235241752465276130038959761984399237190159435420340363573164914655612269206434293089560484265600604960483209835296661660395266202745493593383714192094197544890647317565917107548704403763416380378415434209092968336547292746870089875097877464315324820124276241269719725333045422038854401875610023442870460089172990296833633498932709870059282279163460456650043861978422016197054322899650989723860620298701678999908956519868301275218845709027070533880123998202513229403324062497250083385087719870250147591743429181921190509322140481329023963665925810762103004369003246715359019889095176846813881168079033715245844708204697841881785948203944750627770275324303287435810277289089903529967456972456630400028509282771803418372931373737481046828370550640483296594034608901006741149351686572627026381415709603557364939430849891537906471830341942704318796296808391183565760115644866969980505089631200102654700088144145933737359179925424633826147583603549118625844045255814977838159788051534152451505884187878452777011639295600664121093150753258192945755706809622120558034413045143575821039053988497791300064278220512865607572530265731539742793453615274276279459783136013596872847207001410138432987568935054429962300766015124263158437563964165916459884625388006463578314788367599961386620140060623409469117771471430096630720576702896695266187945128373639709885566139370951955416776969533479248989830630286971488970433173215098564269716814339005934216288410118645856298737364517435284499397728589672352406753595377262455929375485076944747702427005290903678653396729817951958145264177616657521182431925032572577398082190912824396242259830608333729518830591824475606738196004250582436509939387335572364354770768039613797685206477318164966863957746069984468275597867673669509800839074739364904782043867184322718741165308333715512770706444348867710540558717909746533162704703545300962619914039859984515209024685451523967996456236178614266141707949130785925891205613232058873009650618840761950805182369561243453279960083445793741413159678804789281249715178071711376930888579194442584328917732080906595293397641931694313842360213820548572736689607432321413531270859828506616453980517114919343278042480288564604578287218314706124053401382894931309975550373127932678136819983520837544618763589587132012085137441800573225560958268332700580591138421357312452370337796092629276162798743708130994415513911507719339110439011985432289494896150501789992974287921255606089730912937955192422537737494248204843376072724768217321377783886451001781090351845222928170743900923232052009142558686031839547308809104011172219979303195634632571340020567622673973572632638218810282909943890372308752460170837442969227813488916071397891336561805571228457380957492312415512072895408712486342310688916231747901841526806253910856724180444724768056745810075754274920657126880832290062961186656589575438553852535227609708681998209637876314959911110508906435979910699951092700041039588177141252413646803635714445158413514187688893043066205425841008401589675238061538658514348553964906288686623973516690235858920519914296237550799901735904606632405004429045202708798340381733718890045227305282110462870438133687514967382379264592430328393989498380553100718612281057301610210638662405982320842036272219320946556970439405183007876219640833022970159775328370506522136338233396798041884081761063781741503609245450421874411230032825051832441920254516687837870217818427080256747965753510736919049538767615352330565558550113018691561884114265769832445793539869815553899424904592735368843948279329053642134797966241246904758799370979854693400539605245291731257129601502192428942008070482822496749772182314272087638190892120381284899145200290849890375579404643234875648776005626950614577439099562957262058338006062980605455278121162926763858354831818959589631157458776495471432604899931535772241336509396964598421730254995652990642350359160862579207483821850133291718175356140431010670721552566308581221748742769898775516863890054450129245789734729726755521464994859671602096518217078181018970021743337552671143102867995988023672999893075619574495659988027165834255601573603639580212174292132425438197829084309175799262792194403752766080272004099392464629773309281672694320076729566200499778875938103081367248480851670797539484306303646812449373455704300734262396625500771930466329340578527291630297548174128090036278715528975706967056662693660944765999702453269236512706990581233145621664967345860119156290746528074517067988101176519739914839507665332057849179612580942948990087061647603705218180658267825643372080344615755514696262666202055014300824987620520974574006571814897537367998370374148254363130333829014140870420254277931964919878932654874471739906390461031374425195906196729719677286002983275827892097895093432409305210903772813028653224439842801243607423461301081698563238375730102142389267937046487500252604953207466788050993967336589647427768665673456972677930241842718462189420634005199728828287450362270096867030037121050922284220847385730165084475749894226219446239018265911173948222195712696844825601387643948403322574324830572972482461273947983492760237567711847921929015429270281081315394792804254398222200695285512843908734402727687308849818880539951653091005611413966952966450073039530889716299075719066944915292494614424427511206342176549783949184413074669745735102957686750378662554304366506236407418148374390093411513928395374796293640139868707749849257661103976965327666319316724771226501985214786586522793626828195393845695068740636634330884901299560713533199987627699662696842530450999737619779886154146015087524993557778753821811890284958000057218171008427165909723405944610724148810307935334953254036808355183050290158054244016010631238609932035477884716561710684302821847698032550051081761089379149697435218804709131584579868525694105645024709246312240820163144212123808520438154931819393019373021566196681253704412337947742775655190248734980389239087839827929224168156844304579635382767060476873655703012539800364575803925655648942986249608301623215535858721526935834694542964889707130144263339756562549783773930432857677154285738938259890659981776283964541430071907663561868731911406226369126900293006542860699192968119951461116767711957020657478184355266042703717861827706956644175374203789685863019613748181503549714545790249069390654280720188501661097795628064044824396534636624155235748696700338499899024178516452761860517606518781648640901939534193302802022266298248684136346595432032321214236471904142795788044400768048887024623269671972351971625497523641719682308594868578632872879067991593350220481205107749926096030624718670757831956925764901093073711668361099006298710046432750581593450855977212696246516818374103536759996356770303318090178405010304165774014921558712186435340656822840190658793310425277619688023380709180365641430727284618188221179047209749338240913560519536836775784545938275293749628385567787870517983048534237644141882764102241438874123260097142001406383032362065077757636585702141386494732873233222791147040616586642225954188659515059674311350231378033609714892387025825175300691064961452474438545260983893535690478347539367028860652530386631492567582958251681461196223180626816544611303960893411018594621194836956931352916993195875857885896356427565525747276608389803860284965632473115838382112422716542776116629775512713056007121047435327171672862087042694620239052369336105315475608129244058419470518708676983650703234406278830378799044145412514609947650491114207207060969081410384288476887077606360062654662415285885230018541596708087875525537484369202415240061290786929297025619498868511123289693215878668691000401329637691103852108734586914659950830252579858481694743411537767538845914219507061655265627313359573296072473411224920476281941766563306690784024565989543236633474925752978661108943996570975352277744705278216494091143733131854704352547950391266619339445415104213208953120799264350891740310220974846180144884195744827440780309819604023429133702030160269828518950758648556894967444342609304761534874646505652768641496611147803148390832863342764684287789325213478538533835910023915470916234516525030541893756841658527900001884642874706453321505619056638916243923514868439749139277702348771378958800013099513738323872315639020297526716778431992912342007735832692410911081431348047283290492551417695559436083490079750791268245248691626879865944625398361710880032190564644558472939298212143933131683740884366658166460323803007725231787827733106146564132160373566398844359972983897624018675035550264574541964664856722306083637583328500555747764574210483012417646122487401111101805967810124639107811201827862007372985164247423136480800339691541062856866349101457406092616831107171807954842517119387281144395857128032695418986451089686409884544793453132455262247559986587534584865016507437973161060735850083192534590630185572931548550567913243415216802732840949397026563601656981953651723879984016195183431495118604001635953823914537102730691715456294439790481366696368417599195529174954908541262629327427217789345014420192463259510192185524709498227560478118078794090495908383576511458672005809398987665516288746817877930321691352091147493852681392765215493277473773397081824701134146801882129103972586381456236019664924284180432379970795673439768172567570148466616150382366257600501740155730782054388446573727792408649896127561517371971357902405825667521186340870459046103454641598226497653771102191312002680600949598425907979211852902393177388362164087765401953739477121953842870913681380982530751484716607753528333845505712928265615401598806660506653675517374572101312074362655900440550921708829068063255732398395288828443589906448264687723597708247686735774183083698751185644626222704546635520736752373268371168777967550777819601206534113135933954861378227228266976695253632952855493924653679164377186991322087059206067703402137597042029407708610645519370449352489565824507810273260734062850663947729941341433072138623981886832230159231622517024628387650110659885451423786205716276616064520010605621430011700296097150407255580697257930834694523103553807345932845457827237471048006143341336651550310117575504105559047535474512534957683306240449850565917440454066569771299998748654385644965510217011594300236356620206184930268657315063639164386493233135917943180675394783064746249056324556234945957870695497977505730636782589241984176531542822337199843906323962018288012273093444250211918614615403263931535461234708845153652918246081064597349519469956516973004324732803120230476454094209079895446728761759546414775184456706516449360445781452383423698427865315410109792538101688971518636527989551023777365216080706402540615505902039765521449949177154828182605917999806896789514087364868853940351233828711915050557789973026261438891789197197404084241307798195542402751235172217328870447285970764700711448738021320933085844572681499086728913183758946083706177936785894596830078525083285532936838109149057943740436604475179716328487374185764509764146560164466161884480748028901537962363091805004992840439466740413033033964962987870061749330614619769105666860652483531755051866537266463753206849168440720803684645021609404572837439014244964801890074601387096605447255719825638380176737060669334243657400199149723408351754595474005931611008673536252514094363477366816659556349553066459428293920816351754157216033326647429851447496697366857321356420601148081942449457837201661866468475929641548203978169291223123531482555160547193383063050325944479696054136986057833703805038378012765086719700439583493141459438305767260536820493537111029548998948774702729819252616569554990248382046460753668520093311306616807531889441272262559864084773636047673469774901284489548829920145404329483383239254074353311526971767965542241160722631353684285275096167658833194969155634259645045062129519466686580038380356443779204414228726798995204219841327765011304252020846033351171705759604951032482512591617507454335264542322870613001841655937706641505976852980531797354487117829307887748723564685027148133184951446991407809315675444671400272614946783753123351577340564917336035894780665994486046096205688781585081435922215669938446783039112833521156578595237529915850589745742800945612699144069257328504932289945012308785273528515316292487604705628765549576419889453682571139579106212769869389665827704706761647372735248846058879618245084089366501982163105504156079586049769673728491863756123735192943862011792313026755797311803532197024824733614162687073073468489502326803011733007553216999321670560783209736994362908933385493463809456029387613432849303944166123995098355740455377938268743722982822360472654308730668856236529928210031365301995554088786147617329449624476291650927472098052771940774070165607599732792475831800599053659559445652627334845238158852704200287126439999697665532725454047349927864951318095233869434693876057286092540269957898930775278007272256112646188440274416695385483703935026010800352946262682652939262842107541714876261790735777711879121449035737315919318013976135572068421352126024373507605513576752696541587980728266654164231680853566152996691291214113209857091591538087527129824537289860867882236488325602704967658918249671723622958203348680856418984942925460511505706498188299966932846168561670087296863548768951995415437506335781715142055575019699555682184542308091466451945385199067311448901933557911238886322063623006293574522333401858721680322952640881088155673753110109146348631769520888624069875382433456926268468449005785529513542040737107947353874502763748606638944715170738591363293664681384734411550462717779100624614493793508997268296757433423317040719150099513911847032994354174349987346156431897226288662018794069089815351149028134386008654775171971284463954095076393269276586098564561303113602559808326264831584400453847722926408311055004324654552303479821944204279159401398963875248604995822141064510969604803642494005567527022346424995648840095079815833341523265833853149568844295370924075427547779763756632079481457362663754480499863091624972825013598114449299426959596686476523525744670755600337708800022240958890569435096816325358456965944715032409528590529811904125503905787895367168440360770382881338564212331538622378143143399507567237567663093670795189441028222628295836528555859359659618070149431125286049505652016353053593881849778730749688553627131479660118876849906138417650374499302409624603533958049997929594325877784058401684079585555243103283278829508740476182709090495668721123942156402694704216381653862025350507356897160079304583493551581380219889553571084903998942598441456776619105427656146293688313904211911410712291230604993522381226667946437399548959132028350653494251322949776760288898239979795151302444103904351228355126415704634266990753835847746752608158848501362253356068314714177000039504003608376295012983872056692829579143318965326462443742916747828494734060951267052212486156998474910894002463200819509220204350649318182531832534431606122482286235048783156683399142863204969872010176066332982621090039594822186454953786940384864703646152040351066069636759059651677515266699007190158491508563198345630363683772312419053133954506236591641029111589215565382751360821023973914111811323796959242939876303525536422151695162367432369238163286718597342614516116779515048453549473615093185378093972373387703714092980304710277592734694255739635424354131699380970118991213470621357488956238825250023977163860245456723923674337485532729466152248226540039200339550287629039655656826838310120429715358664198789011930193095327695410806216294033052154364348443253454383104958022344861034216412136382036347579471866037608707945052459663152193278054634074394978358071843564976250310726080161780743050371559817252841983261183593238560182957954457342006716718332900916498736590835120226052298251515560066562902486917246014300707538121423395265637460431473829637459367257099812620468935794427378393851712888077697804525011250956690216568312711017454684516662783022057457921879273481975891209413790263024555740381873168398399272446245305246263922073986948501940066855918462702737615288006453735888047292154497079965035528120873183957204254888398341477055625647129485286723873380940943277880742753734238505365347814052771028441776490805522374313841787655069149960029800392915298847340404182234436122922141699207319027048451221664626029999989914749302010237124131291056863437456082795362362889146181747091332269089220314527043862095249652324762711824289401375666778724961918507791733331893362878921603504685777855922048192271752391164346693950765952735556260871578437482343168686101385886887401680705820959061450178069414532615027058382726408918940646478339263819657206131494313461210546146918131779081506061072955274656701240389201067246238766081851621417984129983126415095586374242934174569088087196076838664569025677566622175309502072170094524021513695098856792703925822859188921164405761813400675550923870004553373976395216014188945718396451976871053190512985875295228332615026464663714854692391740657980382344511636903563405048765741035427474024772897608171437023969184794310385938384369580137135266365675621832243036151091691584762123345476642043263409221313361170850640580317907090592659599988877835660964380100146505330399942347445248453889094399290640733342611076872847131725191212108560748954997183950236892571900415506410640505080710530102987502174150477776590800447564394584251659960615408313002049653718335223864079675191834379407611497598948108686201198896175865394299134446499283532565946550794717022516553653447475313291586640113475418581917566359381068219201109054426923071560542403378708039071325683020532022394496502477921510068883114394823981426000466786924433472308761317443096995368454530551331708379947923378025932336874364753845265076087585695059991660369812432831295665462292146323712043965549116540269134414562622006587203435111819967964219125990654785172576181696162538240745658773232720866215930465938686142530512975074991174305203378331140548573188884209394298311390477209453982113479834519949588334627206550229982823789671725148449400667104472829798055644036153947323771432343535073520485078733437093662213290737929072376690837145101163271360429998509944346819085812770493222910593978226112870867828120909632630301880179152234150995666332030659402261541410983722156070854089049266169794573735440884059872197410789348043116435082724988714530090870764796663572011398002312437630915795049795874175018865955582446408601214756305464051666992417306199547471708075464701959810748379663541273258976803643852248134264834023810180919630070582851115146243382288068639615091613315513687059207863983129868682272918792069005505522272776800913745639561487392386035047707280836307834626652406723034140542390963309787971800713291482484477846745217779381836180034911365575953130709375693272806694131959902138206310526011740364172309216813525746005269582520370981598402815612977882300495058701891610618139985228519626349782150948815419232421558448643678727095703956783205586300160413195981858020496103379333528307640584441480771847990589643401967747350661737031772068721394505994658151164867923942852179304910219579465877920595308815181838157507878804116970247158389696970451999845736353494105878749058990424604840949466963369643063912229229143956595400702167085228507826795246877235550895462116388857848741939252060901358326916159536194366820127021206540526253633076010167202358755336343981410972937967171512497387856467141744540231021903009692169160140006883510943262267641656208716806936597580172729368046177660445570780209545262964167678791898854372458166409970284756483395193851439725546768170140216107736914245155849181550913722987754891804556567067526536607045801078616873546763575055860822029016306641425808242167739439763494508962165173314676325226706272172409749058068567485847349894334849218874533926257330800439301814530138077067666648982428052132118238240917494076863994284600831708152338946171087745632107810156556613541725814227762131941387792370265326068580480174308935640330792700698791054717821404005372431676426447895415987448909244396650352863880918422920304275618026528002755411697211548364496428492894091063846282460296222259415428443614397719893867948038120945221449197311690551706943958530073572856730763094807441675372880472760863563030549462075814800717165891207287338022711496176931675882155974070960582574152812224108746572972985029314757716469811185578620318441786517281230607545561948800929078179666579416661422682446554952712385628177092673792078682194372299238021617715184113854518484839702398296539804382086070254380511009025785146711162496492938129322100106806148794640040211356879942249650428476771419267639470634871063322928705078821313905855661782935799041040867459659791806394491101970987539871608070720272277960816146965771878535414667031051954868016903810281438152858655608986531718547655706521298356718020614207280319335283323756744712839836093694042151413039455338037522671739756297856114167727019123506092437998230145665798504454267668287128126777856290945859026603087553051884700616569620401092124085289789839961221000115806989817383589548456409867014079918295829384019811097387123074655310088129720010603852864441323401952842332023399257096061689746790469372195217620253637893303255961596351312679511506777994805292833731397128991847689212213113460175366119324612582328395103073385998956109736243847813006602006635098472915222099941611203127191683733597451559768905282572460617535782844530704134285367872669933484813486004612031646972633177805525134980084242335527164535874756320449295586738677636523888917355405765344491209340082792113172951480721510222071138735398417721641379553751023305616072099348930795786748045876455713259652847607639854970042950969372409752398660192402442476710656171300048779487646993756989956340517968529645971673807355155343906267540492756125131628223206286508497835955150885572895572119737188529557134784172631575703806742999915835125210668328342025349178115882568977893352674911935908829917236801563580739477845863236433197966974336985708110963409839669298465040587618715729814346235384735822658935562237195642910036627981741515721495338527592318925029286874586303731443475668772224299492841247915008555853372196581998667110082627868930864228318864140709655317396410524125822276089864051726449955555093171530183492712036544889809384599066604802476548955351687254222507509826597708116713819195437858701198132364749451940551416763100799169739197337770115770168987615064180631809488120543004316522149018124228356476557861223453265975834826501680773170726450564494711343362050351752405673535786132144701529326351563832676621969572207582662635970672589521391716702134255247332431064950232828166677019297011281470643177939470362059350473505686037006740718329643504134789811478093813645206511249274409294127550287816815685569981768383916166492056555523354355990898572238008021864220256017844048360736570403298801242528307276046159063923593002985082944010575980483217992188547019801463830851676152008166818058789982107091143886372695548058410429445558848069312416483703021434855742860236441518252057022967494670379461481178906884353609626215999844297872198945629219615005833664135745822021013599166970236984844103133865602029113218566424755644954920610588576986771738355196689428159115105790821856583955017849863968227479063250286922986830905138869884828682016182470427825075550623458359835182702970735013520392889603904744285715629545471034190958241520608305233613148423807597240346336558154886384510675654575930860642802661211558642975848048964681716470801598847780222410545175475323808390617287359572986044379836631764081252333716700090432903313682218585139151163962574081834004779734388249498298876447443526515765664719495062531077538690537197107632561717544177073537915435558390625113524422532272187675444119709976738009447527861888330275400115417852375904173268286367048154185587627657424102595164529004461338471642574929263964372430941274271899851888487746567518060826023668152907365266415769288969333055792611435423919748226033654540627813486464462793355867179136592925796840870818105822732502905427118619535800122954909730728477634796721208880159900165632384091473468819851093434384794734134004883222834785817416010006897005152535591431017607314306469388333829486137245034926612981403290263155772054587174030496950653849260710578745594338703978268651632197437363759118282317678770087611704814039162646554987309099719245180191194325504797993431530381356740581963428370111640962929234844093331928292144976130466106605287110210718639457328000551235787126965377851155354955946293330803499486583602935818007330296544663855159798080948958644939024344264437538114777085117285054705543818208785707848301812511653924447912521765164397679416910610019791487658894766043483039523121650264769973345678616427334649658687792498970283389416932437877023493341465198077692219447912838247061948093862641538209319669080910723417277109708864959520284054082563202495556365623912909067966722346325347927159774748376300062120666681731107539292999422391627054777434390386393426105218115194363732479239804462346314105243461248756393087297931884933326597570385137183180602290076275573301720345434942924368741137270305738525411347831798004368517100656401456845996720632528109996174419531093032531982360432301385562848985283984866346967734252736073674590348771250745965968143891766373257710810896396102618928792822693592945894510636072017270502363636776113674665382927296438001849899534999961408437022196977830522335779210799337223507435139021201278993332420864559432427300990004896574207502517288850114619114913604718711893491036133788176613393516653608327758005387947661156191650648905128083537295779057161080375590895839167153084074275209752778168795565626781668454775591787859018178436294376793308504179876490604352989851584189692031959138373087916269255933533351876018969531141064733320782064188497108382209211727056870371180421813846816072740849972068181186974602806464550499926448657610784863209210094104690118382438062375832889748516075336761915644426292588601402573592712471185383176312234312202023585384691313295536758094374399861923512756076537235469656049432345229069231238604873880165549327469286824514238933422488066360405978384698445291186516952838550894266929759834815779626917636668688163928976470788621049545401254872133833100656193172581211645509900941846324381532567468451007598865776190125373290641359945540406162358405019559997083407892577733133349937105650445775610662011114470333872182245307990287226459903021273206812982449398618523955507323085613460907474049679348002491338188636598607489842942807037662951680794815395408809023002177566442041205141668729258347169305366324987397027385160580614527668219635721138610570251276704462288581387207830645152283490034033038824144911676718087488726534160481600153103678111634844666036492888185347976837834764624624441609286683559409160954248176163789416814028946537421023093053360590511250377104875670805859991072159358944810127748270933807587724598182784421387532791892351911309661101514456961667406599825640686300223206256428821336704233378004482096195249220281801491528847820678493145873226596083942392217443143254263318944713253485111118123410768703332648914543447924215328548882426525013116327612960239262583777221862197288042016218335140329325655741963971070365007324355985689491706773834857264204105031664878755156743378315863829123699114940312559112014690613927740938916327071022716353193291068927656610304730628069934616729325980525772849228858271614667654171241902757267820769690580956245430348916896495149464173202918245138968371025442238799771461127234906939627756054900150606549563737566945704205987228084293451206992625921899266784860030273363398890021407405011721618417890352167069046949960955896270700473802747033459850109120545057258658624733181215451116324561492143090147729154185942580747198382099207259291799456960971254234461761917426888526683260878021543600275325394468352548889163649122079910744975626433447803435391947053918286014192372648363737634338250815430705157313489478872274216444040652360308681206029561807922280360467170571907259610231342372656017809697797152964542688670494712679283089151480487200675500984562892921526876465860365755139671190098782261485468202162859797708400983129839423392327545253134699835085715443717510374893097848921941092229623485125745959580162316307942049064929823486756282324969525913820185891777951320489821541295499810515582091973464650715196959396398052404188029896362260654948696165592232950882757410162136989696783312138010102621451840085878425272082879465735249835826938638171224025195490221191639709227711011078671225635225870204153443855584990812480687968150502439822912177024495426759781469858354997801065952664148645201839884935055633834129299681158303197886064256636706028245202394901260509625201197761698450200248945687857552452555051514375803106081546318381670467315071820616675011391285858666795632489482680304693464171227796413177218414761162014755594677413189282595440784648137993390386281842899159492044616264801757624525326761338130954380754853534991729237467674138172126181180870936370429393887027986799824856325102455676197694223302490054279927303854661947090732298854223661458362070535219431671783088482844770012660876057044914945590723362737143608638692085738276900956291257771775214938668254376048939705825762120908394623931508428199639011818191970492387162631642871427079155194150244067079862055988146440737446469337623559141979363967286897472317831195197438262315541422569728103108502694345084909516694958765201838528927383617845612943304840779355269768963825584877208233037462534236792699886181344711072220363291575809750958825448778651168631217720219207848071784341033441556247814197055274109119689274332754542281207217473712583908438632519426242370314717946908074337636110476365258834252526714642839322690867831353457766297700419797504648588233170435309962790679456900541224060385687058832284418309597723708827030480048892562788323442809981234768982121704403252874533193809549447854742660589171625595882460582997693117538540951482353254050002991506982990599655873862622501615507562699272660468402760231503590832434702623880176158898902436781435689807526060164662316374602668785877957384314637228388562096697084075564575657438122728486419345685097639107301146838973437401456204906981662716126596774315885851298715065910087207602220123756373700072064655353314036610756030761556973087203640911487250560290698257896497238734346917895196883348176702129863477516460308575243572697547218471614552762856477471054034905980236343302843258453508746856969383586871021451186986914477329732537424390866462104190534367504370344583014858172933518547008291154817607257973550508105967265381692149302597018226691434910742251443456321114796921333550307165143794671156447772203208310536769961511894625125271731728838425661638392342560632143840169561286540040637631984280638713753195373935200040892492350786888841580380421825653218623496743458201178674015872009905633494377343567075237535571548103425832230586194392212302800084731885899120609791965198151319756439044441674287197849965540738085095320816809900271163758315786751076742446244273200302940900108239562460296411925259534048274862368664073036090855418421243865015977322258184611813584987437067898792450877949795122747573023564211978112670866947692145780297875109127242220014185774796928434017797457798148970137445193650022582764230523807989900107844261560520177990986622019779096527922570837978567815569924269988551257912561257250233706470122147121165648911698034149990219712306299257399490705109583168322138785048197429385989844310260498401531857957491947471644225958066059716311954798276279304789199531701328304330174631783127304237809985345018140268451336624105937918859372918864328951649827082042281549294210424498381169943844345652407915697039932464040775202670592998028762002805523845302620081973926934681930213297541331898589177412500460047595129828885259548187583397706662144978094174225116653218631694930274002147299531890992604585718985980224115557060432446043111903491714368718869242586119463437559845873019073273005929914877393808346285536174277083992465547649337557739053512317401909862925431246269571519872727834258227937826220675534142184396077192419768674617578872268321940624881898206790400129006013149922319808780506901837997784687874675614440909117682859285084231141350298140732220718577339661808753087426556190933264548686697800650997483696969585898062683529278317421882536328399758502550465288457563584474206518116749967482920172458612113742932489976411810307943550159881752114695707110091008068286985865354869659791083871817004636237091291916039588726902929024066097624070277605194462196636186475875895501086469964703789814004334181885724904647851620823901475126868695574182088917289818733998229330456518180063017690576193006806138986516575377565506515151930622610999015034101057968453505838374067687888329218780418815622908731795772612555642356770077937475537758932436816228305929316884676198260718751463743647900953782833380410574768064729420274583213122578622246698378860801268986651417838647896764119263538170128882869395115770251082341060096565244108249303535498738754475605486853790288101014438350584407203150703578169495264709511526425242864220806062481247948234892190892132839160987541352387354513854258362897220950717543095752275053474227703325905437714151054510564975204495631248174056848494433591682437315790993805032983242359717201959586911726215886974274228183289782703903472737335840217656594450427044412189879444329594648859592104267310385707298682039444434263790488955974959655364933924705382538627374389700528722893465784143672356694845284982945174753495582820352000899689637970969859598688039298794626836747433331283222520600658864329734326112785779579348882754019900018864266058090604558432994543550529634309086039091627553026339770960782351480792833576577576418135199696902176373472707819409729995952521538597842473851636885626177558989269014165421170381734325136832265318197836622018298301847401087413965280967264707179758141004326018477374078944995107644322023533524520407655034096194269494976460289778194432187498951305666271860942308650292832812839989767796444466985487140618809489022320159126260794116925486195898746966516544170903230087983424243848214083871043264750881282304343950259166917210565974847368491978992029592193372017248909099112530825938807935483521376158215550448901950003778617047430004095825108906130245199605898858615383989754244827899402873850438511623805853647946158404259104117637648994592898457347576155720705440513710231095063808979404964113645111527945822456364655054421903387691833794470591061236597944394469376219005082976419895510074995248685291371096861494429179707232234870096900423657470462416341357109419263599872125387614592680624281866735396344048299949194261660052889135847411222032669294728871894641432926693830828291621230869264899628516093363191997632191368184390915159536193813567046041443284992393638644158555281828564666206475760038263626450905306937227117351227492818567680326135026612464352016234572678483599501441075570617127450925801290404992107121831797099030838367338694914215339345295294202902178700024516850459700472855505974459939700488677829343121205041914958715331517630794386044503664627837772747550180307829022332300637719541593108126522687192299440468515405121004926982959393943013131759125581534518187989495932337843811730437367462807664888454331515406842506671365091300004254432299638953902290448040957155322782063561500629583059926286354803507879652640633151811179836672083572056074914115388215631998921279232827995420934024512811662044340062904631160255822132775261494002254336292515113195664094399299098072482236489115451845785742157029266727983696229295398147769395866159981559237176003286484703955908624328741469269984515734853008153501286263512831133056259414866590853784235399657971370359594928306172260169135796324687324359833311125257333214095528069060598715296950203748047366670894857320098971659701888613426886776310402835200370284954516044936521855038848360137193310867933532087999255037297836737854445181173720244328708897792819292267277213455735133497914888388292743694420149245218933444167733742775583459291807471714112457897213999310333785963970215227021035062569389801809155527087360097234302742316526497666106075277582081003066700931412950765837800676115722806472640689942743341961302400968708343906282761366909886635444195644285469086949340467297456121201000620476379317104346294047286809676455478398457969655948296320593404625480694987649482208228064495314774075945241394822342086122680785277343249159321191500970864189914695587905842090193354967497313807568473245004371137714523944514417380623224513643107104993834755756253712024384697487349392326374571748295254692554508686397884488905648555170309912281036853502904959111683029511498308567783598794688762360643980129178912489265229094853343874181377105446856938427172076010903572821595021551536549271136578203338908279278706154737467721000601503249086535316975014175426538381035871447203850639780438189544905946559002512345495219950202956523615697798676527750064341965194857585873600804933323761697983655472969485479321073132916430330110106516470817641609462005700994091012320451743823328216171291860427883797630281334800570027831206489291755971428663332876362775029050096019272228598725842315855673370725149680650138389622950355849891133113520719949200385958903693808533259564855963261682884608308952707867513465285574702403660423251455230929828369248448571349648349002586698773515730752973564679581458832881828262031765714599113221451562941494393586048461187577596514515110643379830703648066149890221721560552730377888111946038433794911682431368994572023324408967203799330728103935084299708335882482992020395611220040919364504380204768065438426717999255431168080617001138321287061736133381882818930137599652764901944079524203609402662857804342588058057563616215959346254242459341968886415505103301598141078324833840676615749897839090157260952118564878091874202832760509848977202692763095214340747272955489145262679268161220019056143351260116362155356920955137456201646009000699187925873668159726400991188368084014169355296732018763608159866763152452601016980425628802223110698539979684313255908416128159609435872377668713418152832032902141894976045416676463964412223679024784102272954814802792681415871248618558059379959780485744371358099995164192460344441518425542784056928261769664407209233439252630565217041637506348971050096199479814906144088779991624175900779293401304439662751930883747943277498033551473203233012251058700863740889204961047810722670830417461424962919446110859288862837161468360229553025562220923894946173887940384875813912911197334911157199341717832498646955116655290828245201309430902562095421564282682286384149229981535865462749392512624555868598489304902212453282766773656682414543937305475716780287892172295297192560157709550487619679372480294014335831673517122623308708154053390576058612838634594207742757373661383252856572674488865131066842241594278763281531078622836244909164035644819072062422116743511887607167036716243431046776132607416272385049138427398578736909578158683456356323210050626770203382844490268430222071770175639932035604019684490315761106735313465066692794592675980102392546152951006568761962415919424859326788332922734061397774192843957423384739969511894241818314274847189494050228771370341869345587631942435125921725169776933052388211646675830135531323284485767868233037532696835020191965232108646954870928269465059671967838126129793859122980607385594666316090194637613197015954279667629295167672817575746832164517948709855897252293777269944154089608218709478298328826160598256069309868637536057315952068431685364775876767413759690080013374451213125904341909230562593705575051448053725657733067613049255150758845438629464481406045755322443047605984637601838171844348464733251630205895749695220785972512213278927169885724625764840411702690081617563661165921746352686938347184438082693857486187618964540599056603981381404209416124167136912189572551964531744100285600212287174136668743439815432039405398446416620542947796528777317436632754300606221861388666342139654305698021531089565602721999373220792885862832292146777586470768905007915339243227517267249474850898898690905271565893083664196226357146845486253958848099761079823785904191137351355761433445022739018505581569025799679609707231185111687393069863434259511417187622607085957481480236505349860264100065960021214599879387537044308204385958102138571444250416775558592156977290557849719191156193314938662136484043273092890622880527641830990223751757255351427389481704884252777497327853567798150705726120061021007056597010460863491235071121733141610879582624268725660120710090772116342235075664727671470235653799365350910433250790845572240257439808344916661429247514591204382713998595194101064073519479405435443452010413053744433427585665642668109523217145196748060088416043338687354584778549303599453444972086138887817014732708046198409825270830161872973525564041575790512643003680846311326024285245170383749048420611461943631989097048930754494630508659097812847987424458583208412967836595161493593473148829167565764963871226944077916716888696311780367220201094554267073120062151366077606529441896549971602332818032076170217483628348659312046264530775034448788265303878766904873028260615401225751960541288821205151380505480175490883805758026577186984034308011819583548669464238557082592639686270701906947345344105095185598715204195427399828310084137041131889911345620880508362731008118755318521327644222981945662584028588279392935493851746132521165159599096205398843590406656600055884456249062942292199293515624977561700904494901316844769843420643639875960622642984186600862537668539398353694153708982343745975785006534257640395486753297428364127378094673218295930881738055192447762300565160795689220264465827244276007519071885583578199392449440071865211452539192248020273063486677145545977711293451983589093122012778088148173273889599955918383920681681290508270056732001199447669672723316989248799221982963792082280836063043797322807432150931216540703153735396949680839050975301471802866331143075756858191633010652825244947275679414464677434643772121308478835828571489961242205554801524585423166736403916155887178337397579385933978862005895168837419472805953617333645695458199069660514505976648608391189444699605742500885289692962525290757759228123873811663704817152708074544355147624260931362327908455571952807249441858281686118096328606809082439427996941225830325540434296182314247786176335513578786683816060554146517005794183788383706344662590398209270047560870013620264629564734124320108585100991670948557492344723847243333661528071230247572009525341210764964112662380167152443070714301226551895442176106748717886659653847044312455140043812453580842092320015392199128955492093136649444268344356939666600479284968236194146891956368668543421463018254494395578229302191945319547296985979988438035865658220475249851902583965388984501679177626926221795969575743674104224198291214011511219225539284630142883866198472653655343024144133944379355358901954043013186874333016140834396193005213781658131700074804726673504792105904322657662965709398905608925782028783801473141539762593882122534670428493581978214050429210808406979518708465195800276497854763748709606216663512025617388236497816276460476407741686162976270411323459715701702915601775506526230767481579043104572733955607182267712591031584834507162098050869281497751560162005192142630436107635923508295034555642504711964144892792686407836903280345088061667494740553892738813508741906036012098325870519752501662442179231487295448288785686916536788310303562938211628939006327943452790268862399870819034239414895838788339189738377666813890459878122198552196256190140693180324346939430476108333726343758298375959681276571251449507287974071392393544127323097844157759384145005567740088740221861233220621854124306733666048932133179673693984737050859079652741774476236166330537122654561109472098096352618278438801064668125028763132544871396340166422960195142228812477379973048812348621122025968186076464339527775630393414208838310130895298849818275169422730004418127987061068503568641170918203427948136849048406983017938978554434260189696115094473957683442206934164706512318165337066208296361117466066116589796333518801189211547366452612943258107321512958870879188773866394712359456285011271373694034155521318578665766806045166853505903075894758231724952518403625468786851184716015037606123853851760335434593740804896637250917646253880509778941917060472075671186586458629545321441802482105206346243955753753026382783815692479185808273286482091026238106264297475989656939921401515259340298255896139710946065764324674697760070698736734692764123883081511434039001733706423345592398805502025361827617877859596076376146669718653564430013970753081602096546009614340780144420720568065793154624405669453379018501280744619551446610178337690497822211963467079446998365931795505999619561116242634820924253705420126198928780945034859760542078725328959547112777445731847340299615557710111013524933307770966761370463550185707242965591942443474225149799737895555665674423303077687564535718137447532654353614274819685276174199868187667976041736328069183356180688364859531825994375235158048235495626170930598711193351013211057246281353651673428550874600927585678161073638750520250224048562022346321707136051812261326598344327276689205340292376117945184506409270913976233092780900875771719919120266959129578499117210758894934768259131585186130997657750535757589077772758759177730747359466925451598020488614206739345866179394550470143132282452644484104658207398704191818399443185197666088109052619832572452852554875101181906492666636250441213246278544889639587085783743915279229645490788342234924617994469532009673339218400822398539293136001681262725317344559904801608380098831059870059338616652765527029119043504918728823380800922755448117438645925585324477378796151060631177976377764285339125118669309024672185516219263282472308281329058564743637887005037052186895436084177297312151530015503283210521850635511592113688005478631016726631875056711147822099267161729153831074503312105396691423801865647995740262812265276325076540502240433859735878758018460369046907025533185201742760120372079765700076646577274589698582209033510099716766389335838769697503384577874114825549181165774564158387121899554794974980184349038969099254560054540845185712969099694008696857009496868988034155191325069088014850656536224792543090143690011291403382673787791725174795769587598472324917886703872224652553275720351031281826497175738275159904699515134241365914426747712660941670381837710694787838065846123223026819502804184283908309913234285026536955373307821087147509153611893095841068343218366014075255889887705757122784817279073596273980833172501005354021015674111935260634685927614289479046872003038970036937745536999054191089221586062585990556849242203655324034832807653323968151529601745552262580504730204127236751216154384974351710080563014643724223701377549162326814039595643522559344700946539589010983935674936933123845940070276691448953556645268747033191318674119487966660832582073357111279745650620668198698100268564491482003171884517201853604135654756076130785936422397297839246208349553556700841083683646599389925272915012963324451724479252451684086907434075746006181166018056046435814307366795234588760663016474643146898067419589908794091988891898334634623943155593459851774677934738114634919044196433436593115284442911163210533352513062589519397159540423696092149354768425264112176683349107102098154226194764703539737416329510336552385370725123159403795171138731328534580669172765398786286187944307872112703850999897799531319717773976550629191396541970732807835392342372895493383561043377928860592448390687264406219748377219318735880667271347948182639789236535714258759164378579214968293671462205733096491949589005592469416880709281206899748250592387951387442732078430939794831420418034340755541017016831646251874852705903027068401795927747316051661326079075482974844245976015825912891639482059197768102239488176664222846212700139072413018717502270807205717468893444452285478819088978573623003914572819092804011815549815935686065859696676974811026848150914222043650570855268409013942184849936010103294307138338204737146912722359765365249309985539873686248201153913847978135168201918201857248507125965822082891698123568905126614590283889444067812677207862871497999941072890181207307048645184509459648475028258130914577390054073565963615326149970743988795472330881421030792078458183162510476365617847316790308618706749307992481600247038021937269119246929838904362949616111072691577596896912640181547798420284175902364660517341890691231261466483456397140414392003591208226579529997769655513543498407203351942407973400818703321395058389883806956091832496081556725605519359164926193549504231290360332786813078781392843332636382271670933602571925909531762076715650190802306294105584787658515435905532453570466282942386106249476900332744906195188510835221410909910283276433614920503794351649505131432490939951318448147373495546705151605301946779799509350330108670311312049377406251090714635471827246455730856784487284619358854772432527982094088623697951525357726190568971816827039408256505683276313173744230360708399764496208361614926237978799781027986913707437865915485024193643968189833810264891784746178720207790175804191619037921147489596954684515278776761188381941657218665935621045641900933373060494357902303044281262334011858098966743635257022907700702995347179605750774635938318477579219401681863423313549963002570849420338401241970853784860214674025065860520687566752833614910549571319627714295669062641003232425570204872913285043931909022469361965629148746263722553496824083524911191453444751492746871874805769351251506132691346112368106394267475118243843344191444818451213120892899001620709210641652306670344628017709770671090233308342886434011800975558190357086063758421497962946724803211802233087830228569465987743436820187602093896074220326585330862980447156969846893790994224858983147669907175501381610931173297352511708734669007449041085468366506602565543718613424816901491460930705276672902804850337327989989570224993163581058553874709221116188948288809929452917471329386247982815626226945418161619172462009958004745046258187428162089275509849456378698743424253593272115072985455357570577226372980590158021179434756307280301206115375716958466667923637500646896683861732675968621375834622529829086535324986784014650901791365936820740993825686341041927931709624090868712747268111975167615133162260265756271707574111717535390851942596769113664841435658199189767722906964910698691067122166077915748587672772282615643054081850289556744614644321631762434355989549094544093987965338461202420898832418122804469756970805960507440789790921187755747183276078412827107590264579059731909311391974726826660595861488119629422467811881479204676372657077756250119401039083256659006122875559795577606609689074911680661899472994632172078829013250360507891775514624730874153859955206940742027743160533153571711288060490910395595461500728268885401094897315738725568366078449277550575930945129447365564482021305183931103811267431827053774376162105273889273842028489925373825192082355448600596063080885065005704505437282819374791412901239542859770225682971490924011391471338478352383241823921584313496292146152171818429617099078538427052060475900049450649695498022798529961279636922738089366648956174081798314043276933859005659635747931251808659283367569842775016669958830428912906163281281867992584472757867569156640435054797058213580164428408881907181187521885421080150058222385527002575569176141805093856559532687509200502193508827529909932153618738801529027713965717994958882701048765575620469130932593163246531532530378482777025743955121071735179269049879971300715557641722594469609336627623595611873994910859744624163762296966652650736639935486561041620055774928340330171175775603142269703345404715829609180578976387436715384934666323458377738335594751335313602059727237380711433263162890862509903653196978930591969205405902395061107064312877273684961302477822550428381936233267936804838588378729252246827313441353810137598918484998491729520133798109154054131426369588899537466529766471279314359747263417273509499277978681084754786743247533931134224715586777209018168794311100740836825485219250360518773011701660447906512781959943360305256639690867934112908417555167493303096812583855742615784138159298990244893967532775444904744973610037989198068384494004046307940024263496678620939739106148706546436645202257631579693912154169314443958999101427390080348470869946055215375527208693939976962288958748791178605682620887196394151239776414795940561801395821478901333703865238612556981075184913209428318441381811392000088294689970907963873497310657757130545808694566716474223141946336728450857523079746318003855617203799994300200757723351050148771654788176895897593390718800199124091785399795850073391187206510188756043714563141139991991046099853224904960914414248227791129658286894533312352117106265523240467393520409252983260528024500439275894980691152515977536664344646038553857396741959372947745875166417210858193049468916934408179366851565744590023076242701843355352981046894960165206218302972094727176519966448362589449958840339333842112115116498227971420847527082055807659583252935892204548895876823138592804526196123288944487424340431284410089196493185640786327544068945863796318512684995374560954949997939254997478903596422704125608984951948212171078794605868993740442491382461407146845651389450651520092383243832340808516816306309404985752369570147117686507820175983327759745816698025341512663475615527087157499571024381268037578801075933789763335379308782997981699558309773019417899155502628134183899318804296384189543026398545041496849750730189693171508250784177746058745187173304745664966495405713338922900530022586221122044657787439153861541802168339987388170323249699759829530600324875698260851619321670413862927011603945665304106788809562949692696949904873081216550792714496413511712866475338339312958668729617513932342452188296534968088316617298857604893655497305891034223453812756192257401093842348867994819630091287035947866739715284328101288634257092632427378696929433762348758439322915580887287262867914645248688725640375313789513364268092871377561830932163958496544379748755739688432228791751161434785091040645914441320016106172367560629146412274228042279338774752078285814370832707284584658598708883999183783314187858495923132907199727542451628203180597808617499373227472570524142783856748981861411872428867514404756881261310007583510075005403871771515035071853095073725598741073839763023482670839902517053904599550721979880145369868298498342948235343459371402844420210804912919974435609210994684621656011741303083723577750448852323511125960048244737403371228684788243522258075564742902434821900792675425065894302582785821133657971242128583699384185808725353179762001109841981870786183297121831438980601581156764011747428732609178495159989855834083060883510795270784845927790038556595414146569465272667497032804061296973290228191843847528173003399804733411454382283177600809897229337471503620352400400786702088615786408498500825701873052326791026164284753306098423259612078137355804112865352509748585448525060528157128012869724671374556647649990005776777593054694828332103077223816364366142046598155808326178347952473366060609775747854654088399037083076409225777832963307028945224795744094711392318807892058407250489772376082442278276444424383826834060986764711595919011580099700834257713986515782705210018297013937090246153508876490978276209682610453541547863705009489365329324249212245661745994699762818869805660749588269504772771372499767205345317021950752641975152234004959998084810721618820716405100921751917042788553842665999814456465356287116403815261875777304813871518408729257774050873636948638286316767004460727718891773679603203386860291822939073449486758427783855123359137701028152065745079609738015077976607810094655546434008801420237227774630204173897225722450034525226163049381116563041369372979262121800698498950643020905723803367941743786194553592488543338712077705870291912252098846461038645556587644362241064663570934435321811445562189524065511266473236868824307646643155043062596930350606903638955192728055708363869213794375453063260419417463888411125625100131661642745426915771683853941023223014849231308763713282247858224404159871695400286424534806612409208122095864211092075758724343915499174104936442614395281253314005420349629416996486197680001403559373059191899795089065581023156022342367095937698607652151239147624844780922684402730546175474124225060014393274196235080269578048019086579968276681907975466974962185171192272321187052919878039007074013458917284722529245658272413101034007638503713071985217316852763727853751071991468096531573067957114334683049400723760037210930306819084635400767534957152263858319564586308119487075028880532318985687613781711139505292842924985676103824921132643565580223959875362879394540108913643544934321852873279490970354567019095583578079090106514357285261434417670137558634570133364972739748373979614830662812086708436677544742928124715104435283408201340622026245930900778240209185790672123573869464988395820729887695965649868174665057474489397121543052460414215943605240851574942441399373183583648800248578879783278057451800116558993116546961376124733577398369818804136664264447536944715891251851127790077341868466684127846222164773356328043825284874679657223861537276208999145556723265468969470063875065246994283673495013679205272610473812148326994950581963927690220158036310160248966510386091870907799523595144210392472909059680169045741324775701574540643687287114801912110597372457781166121229972101650944552220620194571011403765970883319572784252960291650769852859063927169258473807305175512984808563687813331826127284495253960062702827255287252646232291110366058892998838765819524903735876732054236684432794345149788656722760083547057174742355222437741657443436712038943674313601071277225942971139982217102022385589312146220252988355782950191435566210480893094996067701029843584860271772385433838831788939169210221542489258506392490393584180281239356514134215424023378254469854891872258225628991117121139663197142857665986717690353927252171352562260815631981470798468907247119049513096472629619465178760497655123502596713125273884439146739362742681979665160905642740220318869646057127674845576548817929468950279217203644816116589525779266879513179361237003622708909008349607350943137566951679062558949702451327037444352509231268138505852626664083684305244629737082780294063329795406329517207538306581261031278358614090043097830766700205072442913334956001942136972926410673615065692684528304382177135244391810964242809297942716530111455237209201423267292434438754015440359627141162167412933491374167808109830266367618325541195434348515196058943682085226375070727251269714962301531845889539314322041213868390615825336589950741483132252321158308752820802343390710104106741107082871191555610990953493636360822716217312395974239993082261327587925436245647971578234742132351126244678959129276582356950380560418474467981833579963761124526342325856258841390363854871230321966583647220914808128651089283890092380463061727676368580455826121857509192105470800050140502543691497272438963077452722646766230720612208144857239571153680414749760810187852792035315297227049200398170997266346368995090170927041431824537540368390117523968923807419231929526622490526550043925077979051730185600951059610213581722724335554734509227262910322489697095818004421409436582575065872730049745723421361940609533306444497920923461885718248352426570317890049255951261369316975952764909616938634599724541501480812251513084238920354433233152973713808443874276273925484435283708810737741677454051805429511784181331446948067178775150096993733873226057592903716404415753586522778935026827707128064917658062462480746224090722429534167529518398128997763309922872238950586371013637815018255074587190727604101876381330702073972110339645300672424902189535393277424251954113737088868446618450003139328066225277514369634035016391095038505424194349567295782115913514990362403700869118705079501445676128530328797230037823318958145867897290551306736465779530114155479004546610866988675221759797396613349864564406397958509622759379415514409414196329111494517549720825998839634693321240518691855031906247216932809981378062947618465460093919731101604707829295133189743323371899040979142042427883234536920014136214405191327332657875445477335145228973846686615794297681211543944874860266201484968101098938771952182685849197631174462907737765100208241247712227142037980055548267847622734356321942153602977904734770791206628845819458090712101026787238581313440217690833141400562479180015025593895177711230874551584972921292341689744392865112436587074874758341014550049461633338563703359318591807527396940619205247555457263183607799991106610786993198393522104374699654387955826417202723083925980963199569080971889188355184038192990318366653002796830590128907228374360751563762372459578134562907526246039571351152566642621743291700797553745789623368158256744914977511131305547430174923828963645848768216090297933356327307266579403505804830768811555219881738211117557874884381641579362006543404886179762084923448306719660091383892886876635822136649014596226248655622194075480494684044679512370368956963518047138477098284459143782917827042899192300240415527261185146940849357548500450012698377462515047543692871697512630040422020419724084895313861543993582643643379334444970660466382864620448909550855938379707178665254694536619481854319198771587193396583108452625847854320522570578558166568592042608312958442925439089300361327898391633829491264886157417700310067597786359540963547374627467755534872388808694819855588584846616569080114661779485942356914607100089775248853577698768932683319015012640490146480682557557144593409618683045958875673118312906197673908906018154932879821075839981682649054918645116459271369027080593971501636111242279645462829476036527115373194647723513423485536282850021778815290375441174040947384483349519163282388626266123956405452544455041446519785872718076490350488611451430248127321809716553909313735181314701853494972775315367716722591213835320954787286682630752632089732882372418514566283789775528012554749334731342421319569705778522940793558956844454896229679938529783382527516205961930777137717408158768549117112258755821808655474284206697923630219787978664480420658682996656170426334359441144781929745823663627984159833610652015069520041760953077831184850572498055727204879627630034174990642257457581960377660641485701088197432938185966726548075621083593716612125278502189081736610092844922911996543382154496441227339723059854350703098353179855960129582427869748807170453549356872124448078257658877613172035205011538259428588332077160793623052675068089333684778444665170799308734178989090332866677234502041440074569807843299736022697582347644541703915455730557823679895487826153371715844025903745148691738537890295630020674914228416252543868447239799487784694654815028871261682266270643381924029548510933161428528187857857712901425857375463669811448240081039295862490282466133672773183744497140892451864708913377363391976875493436037522888350639222564301577639694599315706196711439238131399858255624698579538457167466749402887892501624525103504408122380906239796511624145732555052423641271713227448937610739337064182842333042249402201113955416012940730292324076519304348065231044165984987654766025235842770433669964157296034070386292257014350418899302947077138373987752774448408667408324112537070201627239783603186275402845179771651321102854755780774042152800372052082485376449146205350380267992174638379387405044552430158646701337524306988442154315689295793371008011779041196364672062888949561989025322027738995492476533845294363151686177032201989660474327380210824451806251393508545116438784271843330904110501996798361579466022942079903448490097728429694753464810788066937757414391458574272851885511066014689281174950452297867923419684921316729591972193432656129070871771157367705831538792652993518742990913984279202420673339083914306617558118449782630507248083684707746581688191843750321720441472604864045122357413500430273447255020798518184229947941391178701649137762157204262228125810557037472353819022504178920255926427334597809766101187545561674292531515410963269543881350617539368421584369994077085770084922881810825648951451227385111472170547579283811283989926729276698739077431701749358042093589653992123872906806601317526014026168889346545059991574944758973505514317878248952782145159197944377542957148301692120536964759513971841090882088963974939076265830659567138001427048245033369302730578531128616799187645322370860183485708017982593373731327915648836280257408856308997402466988352444164748011600637104324463242452261784956998946598637633423359656532693270677031796945034090194553134952251521785829781030090130137884874971721560982749035594052865209551155969854798375260859185801362511521008613347417873426245455585067753754106490318248531028808084333967604559349304564946405718615858103519965012470400417119647163537031587098384461882609737541004315653644418018374938093362522310358524916677238815047105856506152788517669647570549732425239475026906309850570702989361177869923098629325398387358287066070114572456982299894167246234731743669169905537289174760635421462314501022550121407252881244243832441271401151840182790956420321576733675490506254334688183023767765999291810694560723019820033924789243266816741863799000258598129369759118744735940053615056235136718499551509721523492408898338091015017403781286763165629868712730929851174362852248461696986571971470527183240120097803829064152347804949488676939273866175431251480016334600545146116429721993603927078396036890532962901668628862376501414422615206930438823511094915838499917406912713394311182906181041497117903807420117258589771813328987088162758912409496636367421606985625016241428352353163947059965013983745699600012861862308657404961692064078790351441484805681708288412284793822973535870576116060425986939259734530792312275500615228163628628508375900616719539903250143843287562945551589646285413996432104031386693230656378056200642445868264241867956316558298377643519181278798743190268626233972500480137289885869981099316165320718437834140903601320045948474027792874843075565747661517702951495043153199011523672381928838180881189713780501832980858635446719588916052900551981948224053550968629205867553767921916897141703466993490037370841274745325846233422376452435907386936302937297869715416334592001819939791621037582572629418984867526181144296917072444800608024581862505264027660803465257253810465357933111968801265710796555413115525127314717801650744645862831607677757902526612242283381897670034596377378382155112453470409575357287963497345366615913404996450763960420207980500004972966094859170793901484100061238327258748557133329737611706598453588366289526682762503170659967547793144084358577088010491914564606118216036633730138275388990175210934907636891407089293455724086337415146282009884104823771927587862023956337581687735451413548423183685096351093049155061771633580429303297527367483499069491909226780419261038484214129240943499075355562120988496467905655548217614435147720726175533004757588465238590941629199594520204220442515062826561525484766758310788584177676495019583140012812589144864336546010579504603252270151668203463960768262479265968625154895246536239182325245545116055745406802096810154313500213955415434869089308077214793728850736882418034151094548216618864410193894472841763549162508987271094465306546610594819869649373106432447097117833316437179754842576968498907562990067678244864584689960323950117397459026995161959525209999735831267007623494225701920152523278312462390674155890974711126382968374760528896823576159504124224847475270629820842029754341767334168245845562750984450968807859381260444631000886516692300466809979765043457569239461638665676004035389009857017448664068545285095963610384225935869019281774853884587444399209112323252050622729426165151918388071754856634571922612349229229219629409482734528693131202339350974887805270392537301408519060668520268746554421332695501846247767750545915126356875466118253654729619563938185923791006036331198963924234865628592605726077162203024424616105150381088951282642953587649711422821702753654037311837502359156787012047763424950754002965347900004370222434451592982988615008213303060336658929926767598813877917562537619581449594686112224199312812772357966754724341483228249791028147601892914686555892426704486732442021000849349634766070297812081814234113598321536937786876118564580007368193412021756672896173002296055657232236653104022174709840171812745113274826619313283881231674747567034650086277595460963285329188271729832114806501106040638958161933246489128373784723773641514582866583318934842317412663756071206642954077023068095895318065890587900504122353955510586603234274721005334056431720116956744475656207694596903277659696427365251691705147130780024570748947122988568299062282237808866780609496931908213888353757705184131836293995166731138116633740779513983982733340033919885570238326310930073981224117035736876044959177755575688165921430652282760384004202918397154622990215444125380458609175617410966255824565176734342501613586843330777920634518580078245413767404007900388584669534519497316306285503522715012496763110434686845657010904864484336692428306054634672782326921765678910727760551872063466598559609467214900330926042963895549866635447256182785660205888202830107497805746903085263054401850423424247868487482316612043330358483939396480170206670162073423619699366416073516113266332763957631067467795486750482619157746675521198858309483806746423734691801563992026811004796020243407363597404513502258561919515339906781885673054329433007767510133327563578266892667331146273799109518991119138557733089488056691177131713352543867684266363057709517814548439943001924229663715538086279620437583846933932762646279578042101946577995365885248695363875608547370965624913010584182689048255617948535551762220554610871341017785006990923126225672049705949073630300864925683388803662124333984567559076834281643652215535147791728258090135400145093595456155557203800711332855379758002250242489939190073541056692003480538180646179268640558540357723191369711842972249825532356759108357041315960111864851375022541090350327320813221033429612035475093983558433808139056190834150994738293163926013087416963865211943047900390523171352087854111519601456736663644416651372763250491480969698947619790714821223466385381711540123026885232323541053691525097367455918348832067895847501884966271264332591134802827553266012530316132512851694147953325820423387223770145268370585039608398341378832954438205970427299297922950337723339075524591441391858369523488330034100641232802260339770123247755978782524094557867144015464627518777897946701838031415252337433390545615740918755868449121697305182231547042621809992124904175693621528874457043612889356436565005263300385780939067474635426336988251390255985633121123663389159689835632786889696477286341166924247265064733136167446906140226826353591937282023423559768257199119690949940636646425775886446967135959219070470907585931416962107804192081354123914637791340885472413651951433752023087327243044057328337576743110381794847363017743644921071244155479566750373978218969500272911384952679149994227779280953704945224492156781567055224082814814257381848962425137311835940823012129298406573425575763253383869780216079961731538590899873145729569664737230984262174828394898679450757495625228883470116995570197181245126390985363090851858070541800552382883607272756227460796286300629678481391224347262307341688894952450590204791837543689098240565636335629729050591242476288233486186080897312356015600633398709799012425943238147645722691575738416625183187344150116395120150562094245739443757544206263289871045854287668916452024148739511531311291481725391130365467016907017498592807529083235084528140826706284440212674513087874678098756157601355973055159515922084222412960517630493398645830976053796540579947446026130152369163274973264869185286857629810069856779630616227966644377861499155004072418222293912050875729893293090928680969678889830972522668534218669907677129121182171020521283565935554227791684708995594639547711079628581536796762210665536817091484791707253542677190089564899259399120964334709688798528107935520864559264030857397622622377830595935650321812290269015725461519966866840389182750124489575719363874485764869486096403182699361023111520854510895045421824273780438862984059012261845259594961539499074170110291875389458139447917722071999952943278595746049632365595387681195517735927343518138694447379219402744952439589739226092738583071885107066429789294298742970937782869953725744475997541082486299830471662046380198683912738682791714238832934943575894014959888328351613690620329311795189659046084911478139674985526752903970108310010041674918588718669814290111205417978735849445204843287633939820808266656925385910131549505362837849687845420540911165594673700593865076010105372255895630087014937667325826513731412163366079455787836266498058589281947027554620569447045935125915775802735789984872180903332143057443747783236779137851870021874949016433179973178220020012664774271455920815796317334521941077224520044359189474560994220679026396368323524716619841023027211979610913142310054931862521116831675094751379078772708179778999870502591759392913859900404780049337648674467980145920883726596958722783146831635166311395101322120948994950356708281657034223830681534509675987545395091357848111265639813356563184695077011749934454292611972882572906216513149719035213960162000053861749455069705768007857116831669001379473636190746148192892138371946321729700256933245827482556208418661574513551442112327988172418454727496344130493683175180854495414109108965510778765345450484854420008558214641189240558110061108999705985169895478804662359800964858233197912050603875382532962142833990584145585264934803279884049024003896198893973062809492851398344994549061703260841473043695015550164838942771438550060416787839060045764132498199896614732808283260448755894315278416110981089825715434100784781911510373200278690957112290217093989108998120390492070502952178635301848663273407783899317228068482836853363092585763307761350582929678398237354732265208548980341761611634556766613087785793112713616630593375307038971577752217327435527647193670361660899317871041792638429920523562591017396007299812831983826531335357205539837243781984927554216696865619440799727489323501326004496003271927928862117328469373757284554003382456745195917986817563892817266614266685444079935413514424776673718936339887692018445689737801216918217434861273692219953986126110000712914739300403634206418986807225891459133391554598726705345482673438005276063011811252646278859583289614528577321534312073367043330831535883507817942020857390499161899634937787133224098023290827611743780148429942815039340099745128303274378419067897290233539054301116547567789946656117559276566598196841475335463404391014053529246108014642168257343983062320173373453308608758554046580821355903178375998171388559162180006349535157436303715689993620347620522476692561273163835177626734961278438647117616671293881254221115772188242379747773568742272164458206970296785734710828743128278265215037979440796461235060981902785451882655465731578266457791641627172022887066466368194458141352223425146702487598112987761501069148350300609642828194562005643937561122059421022912037766339517182462593603626663178277252975988258647291180843487824108628111084425902967283346264483707633247575389603851111932456061543047936004252529880150951367908867760504609940276057260556897759157651668494914069594023671362678372745586041182019251856339727119804960709586122088319593172077142912666942960285394736616693505622499558966102052019995309984607802520486617758314391440213365836660340736333497643306980607149938621939738471441073411341164398183141450769338415778113163809959579379823412106028868559173209301124671054607365080885379072830058812543299197623721846426919778837120572468443024141573802928145885499924559054811343395252564200947716742650054763657670394734103616835344165380009297040162600540096465677289469945364978550156148619719342322346641803853318977576336432136281012678294588932091190468697820848565394104834653548436526069877280202297341119806884581240833170534263826631279104825693296892859315315435111323798494016665036153496093242989225730550272622193544506641218827626663851145748918053931313992356599903890494906320513281584304852546714327672475513648796829209579156841828301751105160956356994512111385546113266410797262430332075046385264636582115715898840156208077690170506627933581450532922368925733388796593109706369760640705127374385506991463921235053690878057910065230420738818015297925032708173337345681700099097395974841983873977487799538630366899201119022262759744401553194109645750693410264693752558556911069618758016996069749085318636551389317908291597386823608682068813904741301156533194837475371356262403270786295623537191302120257075360716629966082142935633596763716994124692670686348471055936233669512341948105021884598734213102912611054876373418460626260732658099360288670379520375142809857184591127265055338386653121297919459978430037241158675220250966272542397521485123913397391524038119350285257320594253223613653897843344743020034461026320175589469611804551480945080958175520300039462981005256001107124370769142606482410950962862827520042950449699291257181176575890634764913958179858379562943339202672340791359414175925613771050231141400701935777111119068692437491620395910797195947730833846043168464190599410714874685196458970557504875784845043335528038461537075094079245107095091104309765313448191882340662659586364432915377425954853266259761957326616125296094719606979770806326354159484809142249520132987885117982161038588382933130152069498240590516059087672117149717554711451125348410644164636622993544426805926908682901066135348232333687619731038042539083912146333084884800343580728493212424443812305492707013550012481621790924496629552816345034727797353625226032435304577134349689704638592767923449768208980692728450255065468173245363434377906209285258126883890787246323443716343982557960806825191225063921307801951341765285962548906363171795028761341007150504281658089347972117497826946890783516088611040879247108499981319021305976895776894991787720899233182318718654505779835158835924609843425672093321360238834106336817927492377353178898579146222885739110083141645977174373361271644763017687624545688551243087143247447598980356040207606713716957045019421363469980452470601997052206498641863249866224088098374726880435158698551825099932187223485232937293301507821906568466545377002884077877553156191098805392955290126907945850540729069911209193808928218664257620768788596705935489550220473159158168987206726013302894911129298238533010840588989587807387271906517861316755476523815804515483682684691475880638130927163557045246586361375214354153066159943615121508651836292001732079138150249518637681089538000730744558048483600841915559171478524236579139683222691438453339609975929450734690010647137525529306823645934010478705983494452265349134604230801798193363709988051495557453839742122142471336554056490602850773659126589589954868789930721744214872080006860260378769241974332418749313546775045262301885868008507684075131605866829754632436217010962624661212371263284611317278461456239245822786803017917750181720644747337784416021235166803305155914847761118702001451109588882213198983631177948519682165150554853890284388603896066554475303441796662549649784988691873994394880404541378169342610800319525476263614892793342638412238074022251545855263354201635594348786493161234280928812682945503511057838731616557159440320461134552533143583862131413443684210006345607519493941754950251111743639882941809313320027966195854512847638276167256641791994579762110402913133182960157805745634756097384728651465153374805208897711874041624455321337948007393065149719468172967033147066990514731905067536894694233949787549306468175653067511601263329471564999095002505686296178369733177382958441426758840841732144506643609990779070988870276613715515229134811391062227034988809718919614386101494473493848462695587176781397584665134556069703201386828777696739331716263978948357401539920819323063168227283930399786541032077213677220563349145327702877450401845610762354819318145422676233909281984083959788569062435601571586030798941166142170999554214222392434336142383161290445922443485669120063813959064922619868132095033711924226601114418904093674166430576312720670881638074267182198266572029831750889813940791928535497125543469839143151949211327158991771952674000135150946482732083805117497089689325899452671136173206754346263012404730020502444562730663446821532307418192173377715243211904950331637145905140272861695509068970386604205905186326208846632895607566863126673601601211092345463635735699171925827744280967880201400344082851263059828271845435669845144343003350398441605149856489425216834805985626668608847711553402821435281617863245664537789657073518044378173237841007980816152004799326697521465877097665289665143085453719659553945589868389750758302586404618529989434617866454364084233402679735971852279531679172399270219946457850108011062260413742376103227568956975777161561600985199465205812682708327533394284899222677696534843586934501056319352261198220509202331526536227923847434597197005125900367020830677855172489109173361293640808617740049660640915707440762778810975274418045836262020453371968887661940864657662348913323016857521548030483281207059781075495929149406652923221082703028970476280967529625682453156957480663481188043970893089747672939276501912237759429554812503799482825595575718971642539668582393331558444724393014137564702709609382085945345918123698548702156843691716494086825546306727793174297551972801705950721615273952701118122570440205778460094905898767861647917946254812758283352941460837880183459021633818289455857685450966331596780074009317331382270569193612887355745829030399927006750554462816121952119440095310484689116712822223927830571335094372306958114868743896704633449211161591852801681631094598731529997169645169861345630316040560784843857780279940716641627007595155493235696025823881999409196851789544696927432165323935754544102823542388324523585682989616508802064714225326749280128547794567603597580754573212302654748289993770089937891001891543049643988181631314742925037014020835772620272547989284601398672586998362969314771004429505900423111171204169462868558030378768038135313788510452681066480264665999083905904052343528395272901656982836755976217495141374759774907824163548599618387616780884616791689540941990153530942582915399776136256435197820716853789485693366977953097425254837357841746154726949661840761840331998640206796250133828558756463921217213323011853497292202687619257431901587220407071497211535565311943073229291604699244563012723168834659801625092090067007270876689030514343145303860640842194342798659380751394067094436033568104399426337135644758699548170756820555344974200919628268525715262411724926536659695725109323320803619054075058926104883255112026025999056839347166296953428046619427385553212582639996369479137038560312699973951674078475622974506667986560909967361370173180755947718893101913904847026241362495233663530116491276822124740480622292510707880342491346163248755043989630689623120137403544412390453281076236398573727197893282139278678261735573944364759638924148304440736763464965093540009899131862525808302810702200442483454334672638226960690289253865866438376210831117349961607223895049097407652200619834014620296037058024251118206901446941877722865665998218139303770256348278087042999266465099546740092733503620649424814481461368692896191361605299716263740527578856335782732487196031702821414206335205107566531613094341478510333744043141335090512534833013901571675566228659624838956807313578754271424493468118194332497135062019520017636277118796585282671067260629810077825534472670665488955283528377921720722616016729819406250426444920139351609698538414035963380125666400952306216897579643345914780327519561034893556119391242946384411048828895054315281172730113897316136124151624617362191030506141085817885684216737374061226610651185730365852501991299097028550604798521261815359645785198987473320444469947882288571384188749297028737111746130057054727815447594657709651737017221910441415930393274117498091377401568603221882933457740297243750233245706655422899336040008460278723372316151828193994626160887703913202027759924506775996664404589955764882933094266451132047185134470852852860670210816449754546597035795102885928685567254030071154204546939008483505518031438605405324104875397536315702742621888147260135365204181329461717218697823644054541001911177535217519086926658424458084100245734994866912030972732262172972244477005104871042272830428087145442077519780261372866571765589201117670896757256064031769679830168932737030120975055403455514788416942023323331843061218579171676280470766271633946895990189007768725434030792222223365130236554825784233433632134064747606494788054651490597549202482284420897943246492444761315728533758550819856067862305364869386426705082375835715628776701204873148193799698982650377757160132965504282730731383351962521366237513826887676354498395112664703961957368599874332474104887996231743805287152211538784383914747844394277479354902449541462207908453878686872022550977867086444819291446978308202454345498985497660522933205548512521154071890774989566861976038342444398064502404952692633589604377455747328133500898909220484151047514814038206378380999718347122389294993390528599615320566207079856474783683393751826684937613094911944510619871791962149128607824257990720567557347339974175491791825482809935598416095106863630089133624335981582041411673029235403211285037483057842576191577865938261156100148804409511667904524187777984829114498349612313569698465982245851284455418712546181116542130600782772953182927772108292567554420102702041833851826702307882460714859558281442560223786497656086839700388381138762964726536821043832137408764618503129705820270346456123033515196887017835477492178000308017357578470752993967340097111808983726141028019856776638232068758280175768177157179434613414122068626661608990497144924292049359867054243015727989938166752424997288150436751662766278134482695281915671823570760685729252069895991589270959440118178646091604874161992467556550021562671681124805465127022144076510025380687967920688517658057534052618431982493149869151524055004522829877209885675051351078501354540984783233451022322416408814444695320844864032630800240670394642791048848130469532025904907017902794902735108220233698293542164711213025934318721836661561042496469125410053607475595005331491474382141824815907469832513416455167876520096271884108789983118592356963846266790229872698479603738075909789167478456668906714179156990344375145732962037952938657621187187161385676647443061107124489761345735982505276979342768133429906414715222059888876528598312189806280737117161078648676339810461075871776002919186866716651255536096953635308986096407560398571149005646113576071485815762297739131184317623186687505067751453767743414190841508590032821932556387254303799733181091717633428779150586985934892433298891707529088182620520208819815772487846779196701442584348099966424250222693954142757243519503597036493584282895693380919320825189319586260557708746453255978462142900644947674543838107229316066399070719363525331995911491927150257608569108572689134840012276249820100627614261107926353969414091719606744574597805024252961420798606875105615127999013928340353010730213199904043613143567634615912968611432794503756341204972791000560960785129104623208165907237837240055644327634923801817925753779156597543740571335560087297145545796338035962892031740943397115994245590767083916894299442014499679140795713223631321630710029861685481804929141838594114960720481418804962856591886752121790717789682917326583717010019788353582019919327747466942143203971716662819459048821355240199319991921018164550090966381610568572191677662245816032307520177029638811225031340078464226436113614806536799736275727396574972202784049872457449051700091292793101681738195526858436889287922140147572045402660643799975258148855911005723965991601943194240513217523796694030635655384285775624720852894165162070970096140844132798566514112678765278014152789475777779323601048035396707855827112515560205717916622011228711790410624521115130933854953588826113368054003646687258427488400191189404360523216558406789295972042557863073205529288793676281850649920116088759494663422960452695617032054712834841282323500970170849532344008401170582684808987950727144785957145315841082293542282789804605228584229718331791045327703027389792853082263743555710746749831712479053547377426490767080170598319863492456130040418544551049209291776101068053469878634878055305412650817013231056319818853532848420456691039504820520115673339826345167800187821850912591267300410519746562639999562332586559435521882870501567711024620886740100681601727385021736082223075254846486691486551024964239227622100731002290290013081593634394205796199096268108874058105139829208542454393520564333036744491570997336191047466061135553118572688358880540934011027260302859335497253008571805365604051218274235973048846213126843807711184399810564379149979711426156049367883855790547183448930061608053375626296122941503999460701337063137055137549578061079913301890670929441473148632073713336200794779721798222199426986964760281290316018780791583035545017143026635155682062570454957924293639047657898570466501281786820399727755699085673396815155403044932703487093736850923279781935797725516819129769027294418692953740234145234411276913554662173596530396006693164561804661498987866714486177925226065320863485068890743328970556878547510433589447552149875776927689081803131051332128854430823809256902402448746883789786868330004210580426326956590135332521138349072603897411828858305068145975955747781173439725029232998306770511376240646321735039729627015594875394659936903929339385031558469699209448866023799606091582065738933108823945286695783148506721866000494811662564163837240812864102168864443753555896897662351862921202947304054668677127547919895764313918492318628136533344729760716025384942863073661702840753250795526450671052493505301881262524859538743712910595965291502201711357764722176610470025441102361380521197721866009814805198925506451835040313369756778807924229881074492204261409686851615653196321473579946629341891595637044239051865428940385284111245009181002907378810312269506628133355774166443624288125721809216034672241022446465037753124402040869162742021129537661032783828831958277643209362809900038531684782638529456748518496626047950716989823548847657552568269875862272113699719216452176928992256296567833948712728225558015601550033559451744652606159232142660950842710450170620924475949746177001451570345032758145286656737830373390688159123134177924501472160331589950539033533960935514311097828968809080530791552538804068734838729063362448052208838169003889055194083345417441011724458011095170336212994257581927736448037840053437084522001048460654004311525299218854719323468372265160312923319156390267666289193020827139672996494749686377597451619561820326496828612617889507614547408835184891783501007113647591790521503298002889279071457341006134744214588958291922126678497859076259386068784996011092782918446520969943581241836967454566051379552256525794351547110416307327680659919872933850376567543728015576334276448681314440715991014434337720034550685502996457500821874651280533250305161914003632295251362660882980815375915459747997123479551600493111262983236683277765397684578751789240714644808082080017517666167746902103574506295431831480770783952334431405973027168730038654143684958741192398016220954422200601119860134673647128774563575850083112636442451286845215391110316448706364515532975934852701681102019345071855631303872096310082154123447582379210682078631425143510976195873701799840674379636977595262017741282767593001917015403131149443134088117911110330530356372428896054004439414140964356322168167882823489568484507420467740915154031386417907667856770729901569668246835654270931136202157801974526110738008226762777277380890112579106873592624009932161384566534573374228719641095588731869732472869227358848208298551122472101585303877413206576440872245105798250996435391140049145143320116185892803175582674678053240636202387090226354025099508905709333413929798342298308087681528467208579423529174674196092473553771365549693905154770675458057571964808595629137769425587560415410206358729625098020304455049973677060910763280053127131710140380240711505904671096438818838626411573978646441209158228286679002325802151999108395741861497168282026202801227761826728552322472178926374406724523151029180871995715797985096549642165700914795583319848331647669514651942061458398270295696274050550918602778674493911092680057097574174700911838188859673953319313140124287418015929137815036417418137319187428242829324288072032047262076551437909373331652089152271085709582907574632359642214591857580102787873694293897487942958462951265720424688425403607791839341517731971004790342701050473427792466358709507909910448166587392625775416989892492607084124242663954995788346581172419059986222621142588624567377528595795540268735218061904541974737110313392447201523709368446967364208869153051179713859940875202599952933849888589421570393494750119399122421334331631258813240653779669562079275830490391509788237726574220600623399727572311356356853488629603505585496803858320077889134788273340761683300645899805296116281900724754871618847486161295951976379020184753809609294108232846857601198878994086712200596678716554956642540239820407569625800858397471460963493992212906983842558891241969822115068912618281705394790072216234603989884461445792793826652767358016034471436509870863285007857391135878808801118756579693039079994894708539962624697289295086603445467689761310808553566025507668368972648021594250142985789155632044545751759231105519290383923775716683309471408536571644444104305131040874732456663539172971087553170757342858378080548863640948304106705923748633806024044902438759820712145835565821995036701929690921022835679768698468032131667901900403663065274790153372464764415002491467045350429599525444535551496129047358810975194658468321754945611933398325499889903814676868552705876177597622729003037170182695779212758316439113418962048444610437382314081713078767126312380799660601501539896234676714696852233227024569313535894722541615756024908957948875076300464153836558286323244867143494171535989674399697718532380823053320520601160974786566386076087364618550035416641467367519369471973303230072902121371767122667829363620433987990145377339676118565112234560773220711377128870960030566563021781486767212493043763735065332261041336753463004901429355941851490968923282127952811162711102296081713490286306426942002183782640695008859379997925022715106943337095570556339508759646772102236368281226840599196367941505560419671329149648840272827628800973455674815303616969004146107631788691832497196821604240528360732966001678708195298250580303144648920728249584659660218803328826945054452434575550257991146433515086495730018977211143259414385765719308690304804177910122870420080368148860415752811008610345061836519031044087638151306420608451867278297128597396753561965138017517753459426613434918257591176530110285153712189092609439873451734876543329244149088824503803060732972666409516366918880374291502158302227383306081549324120862706356226116764261550999861021650817002105440887695512197566373959849231007926890899519352154382469066722471196915480169469442910866813471578432836800767318241460829680275774781920293292641615424013196383103549251324737646971088792292248005650244644658122005947260310123642265993112052658170817243788118153708196264630954898798398744951445256880366584427855030780511300602091252670096041554542804144331607923373680829870172690395073896888561639676522519865169023411466037790066390222523486242940794143454137766170122887332202370785501735803872149357153549176372363271353136279302783324509390394669452437975651969738176767787729150147856872139812361746622646678622528203519801048425883360353396686950436778567014528426913218494829283492513202750325723047633525381504954761277692144715363347382201445093987202050037861358521609792958300720177432555915745633263798780622559120183806119184465136682242820408982903137138843323112810461029122934416640439692980208758204926128418412375372444084494840508264052656919894919724880425068629435268387402439077361645884018674392162851110155249501299479897234715478126785630364182923562206288867915981004346221659959740877467163043438151459406137542744398121479082945376845019415489403873091980827933496535115605759429554869163170853481547701793280662601259945868065685360615731852915392476289414221958173305636109345708225313252202956957458125633243725338997884654808808341513731333927077864363507153001911536892274906799419045093005323267963632015883745222268877300605098917559927751687645310148731056995812685197782403652389816455620765630097322006196768623031277109428019339141315427016590950785489960686085760194777644978659658063254176300578037401588013477558684978356969152832222100268206340568047151082953013785871566184775767138673374391926999837712660382888187885655522728672737857296025845720339041986432424341305976412866088408446153593037466307252580821047605879358816027074686553416091602424279122704515929403630269309629407322028588214677292164194158747954253670690295284312778789215518590054923496581196711167008429340867324362778189260728828862190638666335516563948251330931627215448040435821754856673389922893325969921482030036323752017900357727549358618293232680279561104021425753280662460902407201978969142188720241285731540635237852179246365220595578190823454226509826727054657279102482785761175514483093729235870342042181835996822394583309957367816393387268973214746294618209423191146835047150622953812610935244062849140355100531169607363371931061155956887294369581572788193446557922808480319197060922412711351665411662377211550601862889699544654431940661148849225563201884950936318154825523176494848609930869888994212307512159195636116345916284618799033312788559029566165635109747840592579806144210281781223961147891526686146034582653924811454179267236550530072310537364863047203837663101292746513820621311722332810301202217421145275748049740065782596123642332704661584440237733796297572382647953039035423208538810588194917855472941313132091741787106382719282934394172246980308361991610806963333669796626604616644240375649077132211897837904594493111984801858307705384612813009801243149933300838443598353740452888880717857416282352520490985033609149469564384633852352365668851131455290216517342447689942448558028869174527121867222920512163694488045486579045991392367953423954076178511421532779658236893487673966510705740982609247707682536467543694464204799201223875965472387058406980309498056239976245599140946225902773844462418048402649734834289951236299935656722720308727290942020142860714511093921799236171822771761790556753528085036692007911966311579326614777330449221862445419788270266498900573736384202503881716019605666220853343835382228136022996398484282196810765514880446073146588178809013008345746227546767232789005563733451756456185124503257178694312277390678836789246342093859940057694145791443918094835664861985140629265922791682155406892728711861853277581034237474475226425802710759079847020499321862469362959228777347652104467317574560649784113295258546423852200971216776290754926054763066084393430688195798080226442546740090338184289727998283103084925317571741679374035434063369335967616373889108387973930102348203116893354790200133893673516441115177380798630063067139019403847117765927058965724284903695455933342220589023239783623824929092187977244772926897053067427516044335315548188455518220866296743502963019297320184642100609661001485011903754983869284571808516104427572598312208042773204863404626338024983333182632204325881596370033373118560926292032697528521413180314250788864611764000615931051935514880910766425303320710633248241219372207346487434205646943321927822096880007656743160420610006888433297230558865657816059488380527302369478304469414022575406450041235530153023648627977008372365402850702340152758015577464679796278236278778840877868991109814612154305681365327253867817953767075054801344602679543326662665657221697340232508527544873217348701226100785571736975684147788697101221534083313619222927079117530915869747946853814051797590127002259241856616644012537530751070366676324343628643327246938039183076151123517794119948768912126254273140318928551928630774400345739411473772540768983691083662339058476272097692767649036574776650486226834668586841475605884434691538893963698099226071407023680155588040863811486682723301556488983852546994663239058237680427948244448939297123009846469971145099968222600238561894442933411576305322795664853944444626395393487311947305786985536959660142864496658162007335171796791141263323583915253670013283621407881362896575151810669384373105724549862582661693214643432379254087754293426875858667324217445127462186932062535354561238167584713448846055378616232904183381788897555376092022097832349064705220156552175428472729972857769547873674940203970449005515229358044864789991806379951540286423547217904663214744382524990782338232166762918684415530348908084698755996410192209404297088174880743048839775051260351822970671083176138183991991184300802258909662027046003083556240997193078855413506791561878105799616682143029194141150620986824908106164921069407395084391333137455181932649156978970963352051053919490405766912642151390110502576088809660988814256992920495103006859790432435111734075892724659943651207864167323763716377657559536752154392632167885564972489269401284284042389445272949731343640468071075899835109346392824455371808486565091064811508737691436836427445111251090553125080695882036727164011155074383768632941944094415072994230190873888096633507270629096574312384399223330843375244325913684606927591827287362036303160677624390475466109910489371259879018336947702461139821071932584475814502598741451529255893703512467341351957642200232587071068507780376717246126945203820507756261400248903433270122074426048524761001524027944748450835298749879303565993349959094743111857569369367675324492896393820145176673379495573823858026019124501544586515898011441546430963456642827044258042904813169785122887333151728863423379581851743084091576626393128708511636431151235852750059208012093781109236265631972137337269169429263438937942839743919832827917506226127130462034338123217798918003642363651188728242312374592799828424179294890785142606456349063577534031882654974710341731835447073659686555940393847091583537979507426323509542963423287342930889441391729976287150649215204605044708347630405874001458624305538348906700086353352584441038422261498805301518239991280466828660322611428114261776193155041233596243028978554648676748294339074438095137575448722169592816180963453270638030625160498500319295286756374056978979144942842336604083323630224420462319171276204243796483860059836672767184636188346909976258033008565866450249321818999411566589313936191812548878165240661903433031134214506449556378262390723333672572862024150854151960519205975814370864829231603269285554614940162720078197806862793544641210638772544137769575978476517670996451052452127486189920584323715265114332813059205945463395370929215843472199457274492623754885198225562455954348387752487151968125056234000765165773592240222155989833674300724202421641514750159294088592272092105343103368124763169004476202610412746253144855947530604167104659347513464995267003129319914978611545570712234406596712651258660014925590463374062633847758268141019119690429938697825836236278991996590240700812519683396943759634210328987738491106042870144392050824776288283816972592816198789474316342132265021844046154537411839205315466520169026754045344202122307946961075571503219367603353692248524027219557324847700968851870453600723315686714691883822521892762780407520039233611732859385448311953566716086214122018697398627584660898919054296787682740140878044110369763674475941473472300130301418591639464529988378431393587081159924953793813003898937379949422479015461251346879573738266599737318574192864526651344392229278293264115951462151393098415338512416315743746163805486622456552088459228187257767619354495899283847522546962724957720552515574419614882585921577162563988947008407501416015304967324901259589427484117561722127675013970950726620683104899924806054720410751472366507420062894874961358381414499261410276707402877846570298930052977788444655728414449585416688537462949321673045306464033515842306093542547749227886246535454260905880479731603700957060685880233025039182224631153265679892781282754163794059588115929554623295296459560898364253647789458953288934799081080902871062566255332512130804211002646190818672851059717912467569807694575961820885449836140225398356205537926086569906379824370468069860519965509645967814507156422259803426882525553104086757634406531115761866972975954920920010229044645865151530519205354195455570563792975549055697889052644059793319246753942680882302415139267460768900693925760754809549878993846110460866060524887379355051195356997961133547832228878625530353688858800902576302631277745957056614364125441726059368528867268809595540784697532276554334670529230157457848345193130771969351831908918009165638919865350738767459420629259546677529617188115999336936141808520139880610483407205574076280215632397226905273591354784813687074716253529218914736575631846449348827525399530773788280981985717651441602315685365486797966005922049934548296695475726139678628324588258550918243773393310983487429061666479851570676617107688953771872988152753731172717001057975910936724587167986231792316137031210892539941097456523421161763058413286845051141022899109485571941739763202302469091330834344112168572902891580130708560802433887410109650169891499684473362674861618317420941813915771673021628382197759887833295993279492237770567324059597822771509831608913775142563755006811783635666592621335348888661803627187555375935729018058813731660915999791819158212932079100250283502083812162985787488646619817316250646143762530443315067097540691473978291595345212455300047809272188835249448262308196068709827951851047487307798437105746377445873122544783786244579881284000834588838823603678718521704141763879038356241970815188095770469885566200473708386722665983870824532361345719855508338353031254955377819648516060435185334467854130519571507818967998176133343174161451741315621196855186123706178467553687976171126564950248217810398740960804146011074080252768639116865101316758624994457232399841236058443264474724510100950667766906601532942604849976618158215890248107143609822945409092078183097433888715143838478571671945776267734839407994552199131054497290218311993728423562253818148916217371733640734944385177040486543223222315794738505044560573351866206851846373501427503563484851041746402281151784801968900367568085463907883428525826738373091968872538094097735173592920401592860862149707467974857234053436562314067336639247327350464198479196090384940052963753251769336366502769867104159824268219355400196160741243919482936488457610231917026571579505483170876484523557758226824525901845293351024668235620656480279300816963720502604872880605618996647094410297496045962046787194720432384336146884564153941124966516249857112356602072863552750137318783380595600237267585065279752992440785648123083613712357445893376599055456883884230401526928858367865178361118571389813067759133600912543403433364649234783757002983673843932666559390161091723914783968380761221358316410360637046650220235907803702161167106878367526173560549410806018467181352701219108774606530116671126476778499576688746856973792721418893219694737296324575854796622922164604045874688469208031765509616330976228348193189235796751090992357598912843296303903779624984479169682541840279432890265749173117319004286813744708428701477173789069190027542035344344594180968599431816572924160759050501100296402054042264471053228144460148722504872847799891421477772677008861206619231966669120798018743707426646094207075084399962012772437758370305709804327073015350993328144459254037881321849413144836341535182849033739000050321102680062730883966909082874186047867141730574905523420370503635258645714189467175700077419330733996251442011502677661585328580720735405965028463691866927525713864142692169644568216461850367881231411540048564709210152251424176525666552066976166193502610465821483470875947781398575759295949669435004792740004260082377058522548929574520579600912274669313831011218150481928222968219783717138681002157624668369822410820069054037387662397067106786499436178782655629576444060278942604171396137575622265573296189540762210000413213373185206609008241457911051515563301721598307995313301709134006005462356234260112606126140512198859654119677386529023440188508546374888138932633065728417312303093508633907793956672413944499824553255674243966786821971452424977442260081314678610422098189702390990408885158196320748714795699573533520781236427708037269683406143831744652962904441104484252356737824534030638841329902801455886043861354135824307867131448323211601245451894143266612329071904548312176243812498838723417561013220730148533419556956222972683127570015443003639493067838848258852321107021722393967824442839398605253891692852958522661017528078041333438677190347132219651375252102515145472808644804715194708077211859027682717487196545911454918083164103138134044613972695124777466414225730416719847341762427665620463173354711367759954219021427010258686152571410424369204727397898616650299784560336786390892267640189341096277976395396827394609643539568079176295120337215167860237080682515885287387413172603054995434144078283307791394900543039895784188098358749675559068098385656196679820218882390890618564545631372885287063533661999349345265472673864221252141212093663707443590587772707996317004602406470245867459945589269756767797630312793181839332446835226982706166764931631404160097940155395367599292115357195826855608962924301496304357756109793057739090700459827152314344382093844827067763416134225264717521502544562764745368347347931081653272836842498708378452767177573924956773392382744523318894177408585719658658239812643014088592293349758678540833341259811613597667028475739347618022326657012593586120732741691092498680071279508113480388233630696771272623699157430238981157081863541087435666827029889877280715254670058990255522483205012606621270673268320183129386380249480534741020213748161063980258884153607946011230780286582611592504593182753502086715600389151781214979077513045303320752875667625060823460681541010431883846019210938818986237540007240068078056354358241731632490479651712059515008955925911214879808668407186562040867047227811087260232215824739678524740452097342938608298489366198880268333627656003717897752084880342356653039280088339789524957992962232500343819623441323105512429604524067413706917331170151771552746593199249321242563710510353700277694296603207545832615798621354632693463176895841959627542711886547709378186935019077267659362303752317829354695851886997218426160932978596761009104574148986116897431636358188447781847710068051483710941444357145821339839829374272993013237919652829581696457419683758516034837877077125511367775539846117322469311358402220202354551731491005216722077094370989416771367989796319793302477532718232774493450717798029307997206902275634914885751818162526375264051907572827648197736188804155345054374192392914840256349604927849223985905202230878125765566990945797981143472453726606107217773932222212867790393411070971348302309218114436012392613095406386649083497052375119759539335377055151848031281743730020058424718688496137231498356566682685341809118048260874955505870492549536595975454910035038633621568170041008938290506843383084846208392516661483143739718117019949403962237416866645547616537427966647322663256350900066908771637362836410175826210094071749012639697949918811763441471169099575688042655772432436232799926468079907644581959424782197698698431976536957268476649421683310089225781552156139821788151023110206312524918420261959286199098992406296956940206925041998301992374228725232236962379760953705944317790209424908564379297158328086561649259159556618140105184975194770805152494106677233279545184102935695335814564995408805007557149179415570348089324866889469956331077235100218729986719959980853394274361447122660530531383718237088797877730728446885936630449669230097964883359847907610636322549972425191531560062315142530931320999602447762026908176313643985777509565265628651389076851499697882032969892511765937148286518285667013380919578087400703986116682908807728302823700047633209463333041877129998427484159854648547706922588097643913819313398805385083098164840973053649669229408198015124558878856474440794015558502943761998283776061304222156562266970091251640096627816336247188167054961649589464383394923620193877306609721291430874212546856578870769946235636247120703963299918699744761876526851288558437739863306497909957896421896790140216174273991701706035845310424521506750808396555279921252341316564264216131500030585719277599684026955036937072664568382583182764300582804260478154719641569847312444252867312667538624008598651944903248562830139471241498682734873678368216226832800318708674583380520088337283372445336839264528616664268046331383209077278894086032619476638163573154099142880635870168342136061266104028556142114938068066344571059640075207182860239005926672416162554823530660744927974508987448770000486650176397245611446359371321126798553324422939341912720474267929614576646235623547393010246466456092208886125429817235701325078619397467831552480317252369020209986119520363263242503685265937759681077100429620774783718673637830032753711057528735645300373169384126961432677363331980786449040419748359926307381100477948483145762575710080100242690264582720077119639904335771776643974769191688055826379706554605071612864289190213886878237614285036945207738901126336002732976993289734205683919948437592705907052025014151887580452174228502727320035691201268716871002800560205962879243502306966289424055363854789170517870785663130583965822884857897841604048611798220761100634669405794463008585645869255753316272568606255665571728636516510608630158069029603946886373660556047715395031606171256475932704565872414066822571696931293941703781189702753325081063827138968540705806001916848447544068237316942813392754940395824560538433958021228197481274780629031626250338749277684681542000897988014737261318084325253536260397175331590732635479232612874368090898699630972192401347753779017571712961311815168675628886406445300093631272211228389033205449392287260842176993586872968942363710712151387905930263272915186678245493934094681743692408265626266825930351916949615446286871072265663318306870580485289790189875915346245719241910734749293329150850009144656794796150279276718365497505130864621571939905527361889033182195594471992497806189148257423938761839766515620740293518839189808372284592766626464909640800261077960560449047770338586161114358917346157466040821994232262828317736865789857105543484441069644446567502475792838048295029787227799451407305906437239329274991645813239349676804805939163311297768576666219774555042511918924893990131198787882401070993998627528045142803270813551191628211376146168373065220259940867304290957042494806868258305836223625552202397876496352194924262483906520754353189112565782180633244010643553624413422374023291536756008735154324250215927740105268934138426914948904421594928746144225611048600712472186106172960328803259444502591255906548908750098554963465841897840289411351784958966391696802957174289060193426546471826033519874462772502335015024176599950892259274279611618222837756317912644594734855356835716190738467478200872177535475638539229855735612583138014916420650351125705446513414949773974563789284493478022080495690030060110182001510926283950175756671555890114577392332149512269391811163799130650139544660697910630058046250281434447574789314579706113009399547467010474049788453128895229469253202011067807760963146108400384611215426488974050516264043216012066465393991706933223425998680637602782268241490528958738235961564063017265613802143488388880041802476027490414268171985204391593737749741404172252017183068806875558555142577336623022244542593556436608659163112210037756411785463689227766501715675336481660683248490841035426199413536114351282869181410940339335514673407877962369437217000425301683639957277868861011763263970408701242982987421466072607421018498879426384055464027183126901794453392757729936919559830631354423888150395055366552184509048594067862113542885194343467060118485626234562176113531222609997172205467097289793683248809470947724502763964187124452617353874592542495949038624815497357904648242218986518413011851163407798474356664895159478814495570091110516338906415965315730869235944554597632605304280110268822960197653294201076089689465053924969212645815503968391184916350266094803741872777294675840949407426931926719599556513096356911994410747288899767567207847922834617913429319322602551558116023767299586642713467800642054717152963062666516686311860050710279360937212548995830095161212241242238745315507107533101735794675893881153687262593004945728787570222769732298450652968954155809116198137012836845332878250855556707315152938384247033650249918120394650537653818389981383742992646511872035516222239957992572984000763064077481849174423249218266752467031318325390445628776965310968063095159327928024141839323641168136373495118646852113718566985499897749556574200398265191698010602545141636660259697388531911198798739394289609294589631643352502359764190062222129161355624000403634941987050520580049287190495250353763976969499517796286745025848617837107734747946623562393488610164429384151842057133315589818729448651221202396027846957315676971205679295526209473828225574703829409088243810007394750470385270681428450707497936320972463875807836537340778561097346825495881946741367723483536662482033152489801871657361692769433182805813270770664202200569694496664835767098180626081200813411390040116675775376170095837559856562887845478447742526180229599528922726879035458705043832391366218731452502611713148593635553932449081222994977857288965806811956566332546584359798842378480703289966874951298479388178385772861538034321831602565713553866624323407511278843225007263485249187500845429740488233122431166896677896144492317590414280090507036514615879389883403416124213557819812606234644745555220120266982762428726993526134724035604666752615613348480907671317033134610591034119671884340321041640396802926080888217064754541135670155398635840257301784409277369728713210941159021790796632477850470907053079900833126527293164565780330280057395565724385878073622480128535735768325841744489540448275531168070101350884589352111856627782798645435008618364276690086572996309360542945723036668956420579018174244411671601302600781842024705983672684536639588616195952458832234807041292956370653202472998116868201127577220136583530370148230327739270434267886376078743192049578234728661699187756131142543238713578717444077548644055305647374032675740359492739873734225291992880188926192491696413950654442733419679297341390342041772395725183605689150446398144829496103826970785514183532333097322687078254945164526885264140832198693045802174972552131615279609120948914579480030555685118475007002797448775726838015807181806982553562622502798638092721106741568417203743100919181162359486936226273573163686809530672345472013805998675934940488917601645571760460044803420046585944600121605588237290415365080050563290559581286278727607269554995625455085956274365845166610510570573043050804408426150773601814856964856023401840345222516135554910646019898497520505999635424443639818345605145938087585686197022192115272308987347176498943189299796018585117755554067829228890626295705738476339814986943505444543771440615596413127756386795098197452474587416015816066986862850632873508988104168861783496887563931847579779546521651830111461313155431825367789576918386034338663432146898040104469682199808957984061361734145801950516112427924174144089469510254519369898334763495803045633982548971587341494915731844964953366418484201648028663082507003546339008388001474314620322670159655258040122668146458963194142253220290802587035295288257689479079006635002978295288697614530994332614481969322904616938134887833849346207191641682867386334828450544689619169763107138401849136763117081638627413319599038055044367138963475372709961608239087042309322271712659386538228517238478042543100372420244639434232030515560317363513691704787810829619407869242844861374025467969146636916995548517815787857808815487596970859595603248911765795557251566253740604053235143905323949080890737902366919466985574271531028474252273766350043031858936204411971016217262977905587453812414158463513066896524867475028122121401364700746896583961936830617455107607534851856722328195627770095933575271734252412986961797307893523842173926309196656748916087191602618457754537254823485608598454264525095289676260772696807655461615210256894855300237428181106484485353358750445109606990822730120631335070521468775762581230131427311956982259346594413172088808314034952987555862625768755683510153401100546295028396962536490589472522169495816039559068348981497736585185664964294052165261004646064638610916625283011110968851859959273001282741039135928178898317396524779711219752045910821064736337565094348091962530987669025405686016827285919366312531059200454242678005075595725042820492737436984247983088711597983508217717686622498797149813977943247161275282886634883184476935607716530729423582343331315022099047157845379504882303889601967039090404100941336405567713273660165788726298950357105862010685731290571528274231860038834980539369515979471505102575613688318855848192850158089967262361956822714736681698431769762989295304433791521529564093416783764225308608680583260992563204300664628163114661156450691991667010684029279604341889924171470422117065437924417395183132759597324165549503833122315232327309104997798695151574233333214498227344579779013535922008776288216721584296212568922881661108485398028680860501624441958381027431495144655024607279249098280561482420084052514766480647326440742601237133062330419672703645220278872318103891896098171194441945671705526723281364092641077250331328040655978624664619007181567987762568438669485862863424671385997973542395439721937135424474978355042363536626388125040441067635443772337327636369691268076759112311075023472634610977492726315415658590635250861624957540739204710070535950178988974589192833396110515448029951888869918726486364862664462493044236910556674116150523802214212112418428273365550586129637793156130317012918349474420773519751843878173436678860298193765268541277311317891712024206961703049632579101831710938713991977973484120459374404751620338401837555967341019321453580424392226548096079961501467048257533071273058084938399215109300818327443513473860459027527212888744256177972826830182504522212553884444288898463277084304418027551316433518380424577312734224564226203102108738951400253251682750906156372704134920879709243880388247931377391691579510918522976440195864823800402859329100045543042768443767092314891909260403374249379970907382494659645340209728867650315208592850540730133707419834084186824647201744392546709524885629790983513656354878025606071231520421881936958466672989757134600659311179699117591027503129171376231748134546736678812496802366112382653172679654040783451360539194253485046279977488455251858109717707646811863635891782763027803666754564620111993299044157619193611052422999599182820483419281768569767530349692370904033022269336969884614590644509109731912433159661086964228957259423100576782014602405384386367351888250593674742703777668499058412825609964593187996657483521481343344787712937098290874657903331740315927196274509921749639325772658445743521426947065568991349060657447293806906608313274911928561852604316330983269819213842936532780799382009965392111848756387215377848428881276371283254223406589596059543589618724750668425706207860296849857529411406279097429233409406178328657431620467654088754635554006644648581847261847284470900254717150930126631850194502749134861313999302335797570457363139215168628730061798831602528921215667499315226043765288410114964653898671853898523654588239753600341844042367444984006720397332104034224260522865778939582760694551371015181106881723777418487370755042057082156326840037716410366269727938793966264681151955797940280605503881737039993271261915585308925655350022534511623784040853063094472706084760346261299729119030489646930945538535850608654217597174157436218633339492516113322670870817605436737308066342908732054527727535887293259598692705128801536306415286696494878231985235053655664425638898006053699049220012729399810214115509187598657285660445172184813776028973694057691729958252463800385651866445837991636504852337027959861815940464474811066778450927415931076330994517208170956120881854842994483156663432635634132545615615968947308843941155078415244830957795061159164906381364472668852146519702957275642034754156087615657719000945007847525645208249590811106400270938560453220335594498704191762894469301695787363205234046088797443063486547293432721295717912461427999949335190257298968842529899610353922258392881894167014280941367636484494305849762391447798032156783237058141523058015177923107762386166663736993433646843229743986194273218089347398762477759019814654568243711717498401982119930314348465720852763722637594464815882866358635986432110897904832410152288860398227439386831305386717504507133373539174535438717998032174828759246750313829351100089126981285915108643583694534652177259778671681875108810411915936549048059961651341251237806854400125438711868127107825212971196419107841844094953411318041708820137820782138126971842782938205661020080892705501696034392842983938900653840664478515979755177770263183861507221673739446548052817123121118531612313081067852713037351615366943934139345799307023758688277087260358497539001141309453638735106664198140336815350031013653580321055522760733202162905388422071002463285724952945392564412531047897861346485828222390197784234161858248107802447450942527487512833674609167587227125184455154040863769524739038788036628434214887033788621777075110967929672755553710844337057978956047347666226959196297430053357792014157965420605748891968492965834495223526707089759841402536063071691119554323887751486303077709251549447921568404886093332291435229021883240968964689037338469324777233575538309465748802981384306770444076554138247701729659241749831967514298076758551975081499489880260917194262838519033174832613635024724180902211401129963429233313717835846602834373295464379275662219854898382816965648326301984776463262855858064784858075675029435350138878794379022877768034295298926184741211899390901856970137328864836964960834594505749955245510674467343982516340834919076360757729929707424133101739927551419310377661172483173032987421413363552821705236160969971360266684404545387721504731548803326072135099348267372223714355372534598520771236862287154189239833718021011821183955213014826817964898307620059023127102906276551406964236594813345754434425781012618138915261577714578701494178694610320770401821399504368166070396213680914803933428582463044192773497438172277837715175819639176650670009639735133900358479058851729640386792829262975572841300462617210059034341725299758201238175812471064614792547599290402189721804235741200772749454246003716808750054442088597494129110280494869876687427625998390750885374003390918928277403837800794600008914739961489076562814249821695515067608961035703123675796193459255907129829719786407766704283145890510069889672983148904987155549792318891200103623471633019202043211161216879427536711024044564489466238394649693508235180261605302084906140046485468322290606310827042434111307944771188784301977013483773303841684474235815483327736725433022324229422311398652848831665418605186053938722066939624299062192700611790805705954496683637105762239065177812004038382391809109813243737788078209969479585527936686709611272603009600401449915346630191868010438964470010861292596696635665968019892047388020310486184372797684295675264690445860276165930963044276687166424319862930637338309612371944777933652339071548688451495128518670210371881235133938562074529085661926995559987420185922255819505848095214977325345495891876983030774497896437208857556655940951337743964120725713363752825001575611874805716755195494875169101504531383415396942909096773092224257004050339856376742762458317114600707956623462385857077539573237719501820948298285518937215104226829692511328114321741134778855610575583145569471615853851678449131780062086441641041084821260598301545879206213374926043716182948070289416294747132437087630701018904453898191251121724716399621594234569199845938261203196248541141707729898357104095504870646726450713106388799470291893313345295104211987289790230621213612891104541837535725219776593429408791094304164944717101386003873660659860665271524787206012086345440076444981274269430828646583110697638431527147745276027278175918347193506004417452990398588263652300510366485845583534787695591889701941111203894106385687558725419512830783438223312574226898485020884320211584248764584196429478442468723136170358283152729456441512399080963957592390630747621990190736756271889540528077886232166239531431549736141027944637985945481791400108375835355017340008402273076277545643056567604673379481594778608304356454547913784753872711559033527079144804172305472510694798723384443474113669652853032091764957847218780993387147632554171775517532804313628601179369303795001291637135236350767421223821508166119613551924601283813456947449796955094411106170674598454217589110184130075986011807989514501878563736247912729635712591027585387243211563604703633151800741376110697927437149451067717537416701911852508969408354744254737864535573282794797329667839526417388861894251696583519132799323557915823174737985054484253016760250600827899108510639905908226767982900582807307844876954158077204233960371967202470808388042629103517956274245663623348828022827434393452675429984040871181052362803787517580098490114939770442075269120220401573963521065271722465446327208567578587013432998231148641084104130702855566675139810241872420197361677163559151682161196577210986091487666806150164378167902999779261375840454576309704906211356775895295900336939064400545647586482628672716006936747002216271269780942235044273470569738926818438489948875292715179683777936854835166793211642687716793425420940751037332969312710002329084161849961395578928296768305503429560432817498466327559274042412565149293549978404300492670543817435209193461176816753507637053399478568340767938679874456481283741389469955885822935773467061660138224166889666039205691544591767283295783790707512427771469361518967192491046028032120671162862902054693236621988627076961134751112021054737160333729037114119557457104092355484707289514098282060103507462269370748496879344563118400983391797625311702272858590181421882512499510834454214506876326248436299231901201747581284626090618856402187848937540438758312952914327900231684516778910186327840835848211765410274879076235787138523881026809349159551669748347256249903081196117825288978144350368974550295833317802349735122201365904790019495615952746833687765025770734935953994585947599581111785460840901702803014760964662557233451370204484861799002134402741892913650147866907923331280328784381020671361307705548396773178124443426694719134147425368790611501692485030716378479508506327442395742075773138074091037052198522254292104765346393180812619067437668379861968108582163648636065639955091839109545030857593104535185681840236306502825264018745866623445084151387805639683881991326215585618576791933760388270418094829477409119706331706922353000571015451512785821346131297823128890004404730761443239837282974783587289789592170973689171842621945577607425920410497993105865280412662864264914390099289006482680781489942728131983666101424613175272053654107476550611447411962320406581101891132203659884498980689995831504223145917383705640186737553636312600845974362658625667709463722873741560507381093292731543190799091445470073026360644801309759154996443074472957685893958883394539774346496683943831303498756650778090894197233639256873383089059272737338723615947102086774383183025271554016723260368042095456305892142649034252070161625944223948653335606689245936186298658533952220382901272558767299631410717754847362689571896390511927266282076972471840444272853662252971499999314698676505110248663991756498220693376730063882867471064912566907992919299285944089342172148689420261401854152560222169371711394798120539046311689090354505653694877852411525322712236441908434317481727846464164488326085079459806786420981277857253037601495533667062439985252063996596391435507715166391763379878266196260049382927430384713049649148468864220186490533115155644787762517804172562041365742959231305030478238791401722521082063048717927524853333005685638088708045741464750783590751312349448785618021691357985757830968214072871036391908604480314044399101907096510653424223999111571977904703811213290339629460474167102120274153117855261434750097229148817702572226020543456240406394313260162531735896391565241283951314965854817997497420575874804815920479768375379053489972611576087977983005563798564414961738322079607951423047797281488819890370217974200691197487611266801309629972650970299708154004995234010995385307801873184502194521669219115641287032509503294447427365787744765077761011405106222241195746432505831073126827909087942991834158624605900349662562244775795238869696410285542258196698449773313931616148840997521488135784063312323992055396315974899128068660804156062537457410471318265858781721081112384551812326944241026235491560842898966379769173613282208869615633942914377496504381985638858876691825605279046672696556109372322027541353287360187079854983742834942989869563247833609118463433351900801178810813713412994002273089415942533842947490081802423093939167833935640426813633790498437863196296687011310022846231325522582426080379767145406215864115046526133376100328565201405208642231311642344414715488229044395405808944472439759699481010721124207379266707942237005133769949623748598861924181296357795214234477220039202822093127209572990737031732540946046455704148102063093345284155698463384238807999444165660662685709591098081488433180414650702739095531895503997960032403263488479353096171010986408012001978357458434587965686109481377943149460307972702688479983087497746441656861877795040851344597923476814757769867758969321137244370079744721334125042361026605204760179588881314319180257372237091139065663555045071118032520319479732683701929542039309890314942515598169035474898819306677084785978970998363751416400353585103474764109748479818016853276538907319323260519558745629731917768169895927825665907453782085895391593798227038794376215860134078016313261651581679013330156186875931501930874884550163502056074863350731834375021325405218046096188974290630213909912695556399468855607707444605280954912166227676723071291355861242103332903132550846479716499626941982056754571266432359848518728864155893258241207707336528806656618008615350054089999298798154061067190505132099513065002818518453669164003570022510138888660822114997217628762594945805667387177416950338129540843381218011772930813147752706556745646123977609219031330285911504989479297327682378789035221403397814319661074263458566650054825153750018077046463864265379772368612560940698988102019005792502542687443771499795038399841833449938163171145791158235736043001952958892247810081881078363997811582353861574276899734590415204419995701301659343742344330371986237139330499698878821223066824915804305760408013765940154284242581298872573140024434004624991417118828718832284739711314132239898705359551078849484742189342773691552348375590168700913689182860614168997965401287593906383680553220416661785836838380077510055434586015311848460284548004804651692404328043181770719352884596247575694744375972867677244372628643777464909331795114252856742991004367997527124079922757005579637880940165947448935104745383340825895696768127949510849567224622417615528180786257314750893207204507207694071460368615940307367503716034277669648183777798807811988213605428596778602436649384205857694102587019212563081298967131768503830677855754012831985265739162838453139556948487716281668399723151352087303919861984424758053096904112895035267748027116551379145461812726702313765468371041445637295470304909738020277757050355860439496163771039779525557539575882271501439324622947285668893461536294031623465560936719760741218785878210290977063861826908633350919779439302155185796410028235521038632560906615408171846959286862888028695628441703083524206136447436326478905467553102680499001093754623552890728847809370885200061975877711638994034070160325575935796597682794568494150277895776398405307298685903895179814086544987781819177046804089605141829158332760974329351395130191499579230547772450359448386722408647656648273822656107213861259980611070922478169351108993414242580005342545108796467188701123733532029674467208508971384623358206803671331678450201191417905817975704192415411462895843290324284381866487516596646014038626741137621761016117601386618171397235751832866217062438320100258758729661126278474310355719192068571597451718315324460977159161890961867488279478775269172177482859372721545280010255325626715058877423072296945195964320388456265206929485924327121858954376491329904148060797541361204329905305900299673669358261412414752868403848377266855129661942170910349420141088861797679096843297675693359370239426197179175259849054818941754471192923089613621798655232473027787580470442007022571601638723188390896831880165498820264383650577040431329366600062138006813458697764265884723097266951963785483798529069898999286644778403996216803335144466266050795875124693504531067040379263251286269977541548279642205152516102965928081002793817639044174391506921892412378134876845003838933891035378250074419716072740381135550128783323988407781669760728366014836278074370633410837329007914162390273120530557244644793055956449310493421826155702849362294183718345342341570862316533938202627401003237509945047187410844735049952717626927847712317969857111311370399103483411129428158381097819509019027251165065633078988037890844794163072761088478116775174694284399635076180438893400960799745816195914418837636299659524797577010104720231453267071565607831850742035699405214071302538913951781532777557732680675550628498779315202713394413114313101307457014176426703303060237306858550406026323835222474207815554783175439663987952514802944330246936075857464226809833614915377427729639264421137254826013092846738507931552815204048539392390357846991001522054459121641349814371386898553923709084272807906627607207748832721203258949756150144879384135460381837753938043590306668187811033515761139235112354644575522072928800655744577716327530924587739906779489315773998662505251547072205069152915562342654566150438215894490465729426087248883200513634942004505742102398146309752580562149750626253544452308984764754099747298913568580078512573263302047804925342128819948667276927615724486766708313416184586576679062870515082438570847381937459811840670436140592594147631482702527126446961394767477397825814968285983668140429657169399323132707466903991719884983929454295167958323195226741595388717546774918631001457105571068668128588771392460939864265863140272911621033350900257492965589715470408807707998736943015564265973331245478201969051066959043671037237135210137653608765158319511466811706712739067796400164982924871134109288402257248422684412731695268137798338722955121214210164850766328530578236776621992332233684714974670547743336614348784789402523315853633468852307389484006093847956841024892497089034301593239906475764409696842926526817387053195532400582215012539572280966132093924397643339397506246785257312688178748422053897981091774840400023863566648469910818520874699976920540100327361702852823510121779919224447935971294839614809977259459845075647919383215455327708405341431262713468036927924871053368016995475441071279953737602966271512546288943488041860077587191753435250463573184128257447857863449362825571621907198212984834840608923009855123968615935965614436703323000674437305746544517089888025418651692394747319900931629929354956455938122383423532399874191605580123576478901840705820022710975215663986923547553775467686420536729747447229119894898948200141227765369692516805502855520222491784050569897837414324640675112520247049284725910377337526958389021761783615594268990314704332160649905872455942383644044695982135469931166451587847983335326022513144478436010830290866290160162306626120403393461870836434156160850129421039771876452865959353282577844067859743165469391419652903271529438975946306919282122958067213584964364567715534810770403648012165199453382241869808463788930315233483812195156027812291775608502675577770447972612414266965110501185141877036676778598568015158036300904905308792285261342188940607426243803065837742918957332115730079441223430742698064019857109221329609694911666421977213118308790474486584521409878465463080702583524623162548120967161948362014228856801418932208992424537159663030686833593117851155483284533650640457195956497500896114389464713755862706319879249490722872597028605398649657340604208922225511569528350246826870878607500650667362691048400488982434860096143554469040657794278913689557239113437945447401985282590529893194087102007826707554784036617508514717298057824332493185179619479943621876960095558246032696624551026280786471658944792161330025494113852116555121909664403836657123927578900447224930621101259879278467752190070001953358665321045359133232413387250487227654096000483885738459553014279980901306068793571572569940806573922781957265364487695643469730885300595243661656063388663674595040362548166736756192461777310982511190401513783077288989494208284061109360576872225244328139109499659940973831902016215633980252242518085321496245749151155468752880997201825017089728277882342108332322096072533719108155067365400716187143215684832163980865857789176467785977215681041459503317484189984689266164894655337890370737447849605740087923378890431033724277488697810577266574576136008984968411503847515807459604508711352530100134855998578942849943980372665708977607191616542108789437066926938973094427689343967297413997885398974200180988686655545508043632204205354528357011275712564842372936349918773282523309052743641254271587855305501484459382003905839524855005535502699683661697644636236686262818186062205293739428548388009708772533808141208164478302092529201667634847769439846729230810656770343414935645816149848567589746347869723129189100571286411049888421352503099164711390464579518446989376392580993634664633085752593013792350064542175902364804011673089838675820889433156132860046952065410851925224399510810122701841104604854346688922405532293512947503881867677048911644918773487724641710483667682590227430861428099075234986271317757399098700370242293900465965231899100841209438292435850462133354030103669413578994274144563264681888845139316078103159086776566049317751187296368875625440062657401596337329719599649226691721756283872647323004407049002615557421669212455392744165483320746933855682179046658004996310040608519747530406475469674397063782645150403373534716284720361792954007248230471765758913303036790653274944057831861327067110722192608390984657206060900354830882357961216746128708706916483252396888705434560862032211913661225468198977245364814274420225120740955184349340180339475044066612311259185140583234224822501038445879610434958956442974018742214842353048914885181109148375960856247766790654212259672172913425230202225075855542136481648717702977911671670758574345027490822477254260103151358858494862267072787143691012057758445194452726725746961214232615322805031148620791795091611118283614749366944790022242916287384151858591134170031666319630308490459489962859502822687889679765292838269044863919493185752289034354053611705731198410080260519510621816620954505370276742032893042007124544878102021763744211011012579011163088810306564957371628536265097151143275381702366614754884624840999851293040096196719530679098858945587089944319916776874322409703117476406758970257959714562688259626839234880363916950714346716897147790284637091220948984729657480757007611471693104460748931842074870096254946260699401021944847706366345173386669596027445221189216162209370810874152689599423882593376573188640998955284379582101636449429133963469964790900597293117973710989183727325027326800086467825837199569598987255538002578212847358519093061730832453371417671820940547322587721278510861583660849365676011240998404195985385017726983797963132131951053117644616753406497852554978718579084200624075687523537346173180478792145644442410630772445054846183379365752828585366960670712012600838004444549298286956583062944842217817703105153620230590156947576757333672592070109004374429528464640251958392117693333222097365561535690925613454259137924439606526094173505525588946209233620449656404798280594675393365923662191201686279299375856776355946962757184594584061337969319099049716546260571024661047779177282847113587127729888783336432826117329324316557046327461210637941161795132057234413588807863086359781196915274930715877021275972441549395336654660891368702971367376892539036271019331561887588573664320752777521263462714469990075820248619445303119579871726562062388635065555984223783092784244361244884241852613442697246303380021996527323362167395262132158813046958404560929548932589919772778825927016757601874098540200512480271005848943346117223449337699347176354512462017468646025820072451010381820217437845135003669498589791257058319303182632424719692089156042739865742491038160541150622404812019807486049003827778880795763346871120469803683605879897346845952567595669346734048343560968190128726790659443056360397259586508559961599900455907353902271366379523614113031240816031866510178417801427268095993816903226407794479336204688619618212907077069976303189255356658848755233034340072942710532875963133869983636343022481116178661906872339905050183746261052049214333379231497939143060462316750147203691379758978250967412127500937053851230964296573012576712658818132517443526872425923603475618717310335390019752319708960754165827501580471718214255610385060397866560147483142387904766683872842158857508295421014588542822588375474226374077829902601979208751797452255706852179915474938107720204664081211292145103794240502986409864334814872279976200440165651248129415559479316344112282153220296456782997727452337726882343177432171945910478931557809378959773953353423443505250001692314729392471590096205145710849316005569068539813793165264170294580704011619660364615258904282420798131162995770957179500016627939854828115894533223484802816977263159230768000038885939882198321943749902616437492911128158196288703776719566274609874064787885328896486655958803553490360513872514218692092144062148741869376461495209802355615611479931419368868037851368873012283853003853028777852675983732851556304054030703261913054865041462057163256763963744737992393771618430435733178634826957571085498122880712231831483555694844268475729556175310972807372001987796695411877814360803953090029569829088900603378997223152044692249037171749780886584945884355885803527502208641502200946779836661055230509716286828875293825640455656831508314946455412283092760207985830454979293511377843943334264845561106057975713887416209202611465745139670616290483157737779703451427797184501744119448465650943038426533543045906844768503814616056954713684650717330291713686531925571500153391018122390459259929011516700138888870670709669111284556089919244267657561263659169144840701939630261852975823353712023939234520167518410520416574971375004719614189717765670684047325243257409990654068393925790968590521144898691859933291075822247510636872713939340166179515245507909561568639690460192800870589749977566163676804069812501575858555718948249485086888188235024105986897574927348038865518571040624275299258165371654852114990869501991727535220627922633379724973180907130318384606986525343944575155826514416894667138444473220725225176156290760301282969528749050561864410593090591109489688147719781337597941831462348455612512044049265288005798273810599682155140483611256811811262765630629806087310470803715055944628365037524919874973674219848630163597210067437087178711584374911900567896489634931818547103373615090228714448411638888788245237890479793770234356282357148664593031781776126843622792349376157738840822333915760778308633570452969026008752313036490545162022761166725294549244093974961379384409225629636696355662195458647667153581297447216607052955504633048852824310936218201570017009849561293330307279995125087311786645000218273094949387497049353987582505241853670844413859523731909360563225662366584823253079011684352328483422846574050131576555098718047843697394083642042459941057264648085113039273147472105715406955486879472388998055325399647855820790726592017678389992105328617912808406799151995848037570585332709715753217875862144684340211599831329720701986895920182822002940173768191114320366623538680731179789716817211830493952835168996904092193126513954918353237903959446098411807414573389245182695126779983544450644394725551037097387945221708121029877772590898465407535086338538238043515041784276798051030085851024724272772281483575063766214612206617087662171748469457008015571224689603890555378537278618753942589236133731907034677037799234791738502013909349662350797764680931624627338897765069768961203871592428911759845039120660147626371505907597152540591391884927213761853902073435579851390871236828186580896452877959549566691381917641154747014784384579401644870594630336894846981488159172288365447509047460263930564843831273629101134605539307938922842746885444835372853983742926805986519332872778584640774632814541310533828599978366527225534008921231741883728810041783887241860247441417670526725431442355930956065785420557323277679375370855628552715191905223745878314756958508973349715576372255911939848323373232776577049707724323094321045457288550676088040782083057796725494306093953770745595698891515903480298714100899915015616499868481811492749554425804043140995310689497227551880120886023984645280818893314410476525851745536435824571438664633131199345524994700134149843180740740902424068887098765626128037833253274752004616053131102029463620935991554484655472760848231311591743578971866447561744939498036447006000860622271507113474738648885475566780272707334184268057623222606118935897082400146334242265126830426342285815966450068979755602224042094229622630332104451175624037785175066951633170923579785704211626869363436861354612146749852885824809618587954710606334254331470512164420826327036046671455994293495753437372226482404771649592384435823694977401296013199471141483169909124340161437900000281920773258416901706967882516176814698913913356963706149674449791740901135055123050830022304403293635957864009118368029827492648034277287299937508866086215583469179264696743971829804328954649151796567727574210382280557209083289827265404461068354840270362894447049350331540564012251775937189834291710928620055632023281566353100608357058242490538179169003120005855449597182056536675081484392053746080427552639374149801895865416210613673215387116928255161966291688300967254903529973019024730587963646281121864219154079157324187946715918987402142773119910005909431550814211397647511028408069088641585765094828564327005346203360498221966423709567133802143953942721106024083563342478588875033846044919007052554044986219051272208917825464259212396017890542552202252845566461921470204108617050124131843328379223833330012096149295450526195176836167060774475128101330978825812956533349257649087941779185123721561304213028602262898415722369912656388620111261452524366963924604878986290677882901904428419433138748581301564009482871053247024399252264577783704246284781594848245278901273091157328643792596868416692848463063058408718266676521334931390947618395310377132810585186348111715192705866118750228170812322859353811703496523736416826763877204660649338203826073800572805192400186203446807810946016297435595903180559380605685197329247649735577638257548708744430081185539680331438922796879296909033861104830292141874003439932338680331613840969600334255052525505642155020309315803965671037905226413915640086464957739123559526302868169110470137673344092263712121899857900903333602996053091165204546559196682083045363014933988006685068289946655066473899183329272766159329876261008885695031352047947743706162051591675414361143710338209506109494153235434073305463002264102402731023633379007662083617322464020763107853421852794460329074762585927643651354438111977799506172208652778231487707343508990042819520553381299705162858598906224163659152455244656395789169204393922112427907391529092269268707822157856938984572009379382219035818208129198506228398700475952684902996982428375033383554643400794159521223423149264393811445134596764055535309388810733280758937263613994639674492052647311377747241877639710166417527494045090051643377573464853644378615187240254864859835978705209273444897187944795530807540857195321997750307173620926967005629607064979732548075208843897195422146640769589089481573789012678774428234536395002199056324156644082692696596011776892040372138035982779927869225504218835016008581344020597946754121251340154451932615190083080893996901558206743957777040761465776333764250764490989302409642705220948429705510784333033321993890434727775298183933763585836730212933610668105851090552289603536393881911455578009352574386550139532989116064903018231385129873620263868570303278965221394347762203634060891287855110071379911281153220619438349017944434862725623776375082667205957671395965514944537223349128153209732394026787604001479886617442089356617064720193635502491106794326697572863866840887576687311285601688941446998939812026683783606741926026163634939542128563308071666117291352028731414078254809054318842609109390872057902987710736834286570928057479442250848695936940146338534078951600700758382757495668106255022534302963751406579791574487772198346891914823814906684450020137589350538625253876523704500950689305891534990983696616316516002891650915107853167948520985958114091896801891745150101970998234942047648976417698063501118796797627869365029451132785573750373711981596527906244089835666675103627324873809785141781224680850131189786437125334503859826271415844196099534277464763181189069012057791716677463098546760320504093984030554138403444762707872785176822720556355431122680523248355609175642642212067049429596574713194487092791283219767695446685038071103614107155689302328981223288064566350937603012930447535448941628061260928077387245119333023728762847177913752283182020573228577673718715973034071919666947241974712102879521009713523700723985204324761336665098852616732541694123476380476065312556075463054201230412857652984653201516304350693725203302677379449119077011316018067129912755524589543407317038800144066851075587190717939190095166583186331364766587720889137356850814145125076026537073229050074874183686478037483211097866308754299468416747233007355231676804466311508175319276760880156891284787424938014716263834865485479047133766993049794363811304513629868961056435491025865406485233994511029634976745648591850566572275247657919255623609200766321320894450995305499745157025762854236642021638776741285914655586466159916058311233288469707655726542079579238796439513026545459710796679750861047506656483283844066326903288570775754050473619690862244172405900900002165143849121757479055526170189988695406431818459078042962849589090872288501172184689260137452620902695124492456899065555769807018934470686441562462175703801582767245611148255040077738133414810803986731083590418415722563780616215243377448122574400198788292561851270096298027313715470859392408840657332697662915474261894317716461515293150023648502156229741364417704558125364575484102789332530921208369685694939847685816800176080054295711933505137482587971707183847800615272540120193292105711569475554501388978426948484159231134540528046374040935171373074705811091491082089963178406676161248015660217521088558513234583610752536495392580671973070858488779995654985083506216178718429185945602001321014979492570111311070081249158571167215407220697760831390577957722108929320795317655881584858377869156788512757702029949123060080702367772572703551115481467493444232156761838453624769055568263229955400552792074474427595968759724211230041555887005242235792948756387966460234852750123474077124879373551496216575453045248336673437749487273304203271600850369813224220578979732680324553222796555629489061867074876807209174684248924530495180118666314158390094672273076106527793801059541817883333788634157364018929042408994134925861258915323056860747917749579760243244748334995729725320094954792532545372995394246654485365001141348870677639459962384165234913199871315378694829410896099368648020773294441282606302181524995520918554289560897598693044620328199012455568337999065102168335048710353213687961438398859195289100803758480348689350977627399623719585121053488041770524612339876648304571697655822878788657734230844702647085006100610838535327338537970309685212998087068077107929080828778937252992525591220307325268195626668722998099419876847898705574721321258417137580330464117603101624712503692881626612403637093257217302193456572294810361994071766315453560838606186648593891720922618866048939251186412337460824001002581990817018544392970302692167412676415635756174428604032510671297210261473290081215908500222003142695376261674735524987290771293192388749849001088396388923062901537415585483271665058589849624378393979574125650134103708277061762047472530906597536140725970381917140022344605260845086617891745528892317757233597145052885361988641080859229781502131632834700281876115958711669514925332439218422666299560717390738322092837791320464618410671315541523065623324632951243304717357451859702278719540550759028887525726248960683052980506795395652203521873234292595386470216118800390126651189821501245637520315333625966036341313762735768430066695080275182880493764688089675900517860489629637718565445053379548469700749708106819138879641926990116378011232720660965467364556449411290853160806883478690972343164037133497030704776408082144959917357190768787863704386539317590753462855672588174131449785293652720607940066569373252065590511060579835141984147331082402432273072491481620706593920886849967829277865495343219840983053579714283568293397583429608348445192954672216211261927115936066867508855706890088958803550108920981873258700039177850200892997172217748134167603042195824970571972869484027153952383649970564147089240237851650667198435901054166315292392926834607327527882328774279561678688639718535347073349531235080822146451770651388578707194246523794197893069006809231414364778761220342367401069026427968923535856968464831520246169864317101888289586780136635283207586934639104567099340023084271042805779068850629393941315643116671881719657229799936326675187640631916033098493490431958421679535432751983464361300128852235123298335414133868480272654148891810623146822307082937167436501087313327786663139136181549388791026809942403981408692445278063485731098222280889122187710166103201061911120476341172873760630147980664098862167686116414889559009638932457146565210954770124072144133228976018964701806987510248743043380343404661667376125413619137299778638354310466444928704433442234486076664298164685007722203083224840445095748549643260701038449795886929569888120105276961588647197820362320264294614406654653841738934814023979733120398528125028408186779677722571425800560703304158886580497480317922925629697539826198460665798376403732261432811769159381288478968028738690857294634732698052823517337296094267629321825165581046432814904994805247615668466037553045951127679511204294204036240215693490454787218533506531053996171375065525592450071812849247227266040400412529842361942060504000791274512946232226321239441994277567846914578740957865289931144397909095209692011118332528559766996560495173855009972391814329089762324107830198591756582545063638237282824933422043258520381211880712143420904055244670201781653620994692196854044367892807674437619025946450511728616856900697154656053463976083177317688770209714821954882665798673949108368677119043945806878248329831929747162952270827617252688769202295185581440185896395823797661934156247828817018233934350758674106050866743839690798931114394101530705868788371926154265175306785341964189030629343993938738869297644601005868930677315174908038721648966762367881452713809471006279596766059734018713522948914047537555479524097579439546999758613573724786277866737209053277681105522893882063880017730542702363537114786193355496836888592641835977213233263729044689931122855425692095236319107061132836607401554767844784351566614397564778557701935826755785360865658570491335790850516842207015839727455220048833711254462469742339247644610173895403423243917761040459427748246471935075435226103193105583294028250592872393562839152388682140652910924102051956271141896235644255872759042805081303345444365583545391684013053904170511319197170062267366606849009614616244803621859391625637368807170682466725915531136181248223662418222407474315469457814072317808796782659404952086940749392485564073877852919072057898557721056472968426039567294547492744248655955206899783073967586342567567370908233086309431983530923847580681618550709332578817182523039228783305529312932263754058459476159542688085430893443086755393174757722233832094998933302746615868007582310153894635591395696782594365255103760028948063991174507143442943156149334670430226913315155757814112635062090533976701638567881135446447217195317708547977504602966563065575678534343722263117742176248009139333086989949687769928665189516342302083595784186197563094953520708489833152212507604494995515107954760311716617167148983028318277748846790658531792088791830990677362649424087779122613268852648582316620421861241930636375857426329321133652809102579030153250249584752395923829008102015099999255726668097856459012822858717596850484277691288976508944396276471436111809273048711192347173825749166857134814331851945596744538493966150081548170245213338851369632473153166065681633602245116870829598598982442596773891149894763008592401181387992090109127200159166999278497557699720848733753379814675994475933249656110002137707393784276013785072259776052901583473810927919629272795611330287515455388202636580452259431105560479866882635334247107404776037305730731593440742197995618576635873620889676013421120308726089971006909211081519590414982966384951510819057217317822849713052712489449718459913789035311292339958277756234093936549444311680467745940796488933203816730979445074483797944598965724019862601376404362356814947196175443889043556292195815663484063957407874397611281120735163790533525740895820691928412261332476672973806665854521185467891997671945318924195465467846161713244635861016141025540081574181692088059876272726391910777492414440199520527968086477180170655575514332968976389042773797543772527105268773541704217254500607968666695631996676973284230329441795906666047474208471440132008404770357909598193097752925938574795705188945616754063186594544907709715742370749114735001638207237524238919003780043428959743780448898109976620594920938067401054947439974449454568570272367702075403866579640335126934221557651596844138987098830521740936050192755214872603245440121268545715478548566339018914824033725078145717758196564056393282946121914414595238369763292682710953544496283637846466900410488536311777824423339385947527889120910793996702788490861212166994119979674703522709131282385311207039233252683568248136419070052757103240411096233862185443843322905291084182551630864841979102614178027134490997054730438769419108376890845905416149336511894084870001476729985397781330118867659282830309528965728914785252799544379467347434372914205968637537927011610602084049507601817979411862042738138771638477097823757473977491470023047387773323008875400539977123477843045924100868913520925613979012733287633973084136431123763957450249028259781400317140134361607039640872845203543261465831470215371824061587152052887090024282834612600039657211391096715967502172302399369611408941535699364709855322565868459732832231137903677291951583523573005294348673694000041272426200051247470435016301546780350637795417734061293549980378996773131618892667037983246138113086028929494864532914630075988795472681297855598110772177280390971975671498644741706008152931410019246798688093985296605771146481740218806040378644378896477739127670235545754708601556914846602843788268207412399633684401699112482159271696290658113419052625413961205256380850328117460901577052454519785741171429682571042567831563243745990442634053052725372664157775779114929681693544126234144988932706638299792337084291378809557952785495993515835852376724695655939326995892346197122724670424375793437312141239268232277956542374398985942254441870228162022416714332287664965308053222097886681100299817011079576227915278662528939828500067044664956653093385115066941109049133274789476639195315501486097226077570487356711308832589979949310809099735894341662810441902566225606648426578412407737396651992715685563504004998202323881433516755247809718108771856556367779189385605103174793348938002424432261948811180308107828848740850118482386399224058028241780072842641060372738910305833280060529275336990689136760664679655771576337325826614527680076365099646917248889447147710703311112651354698056027425312118475976809904277872325819037647521692862166264545914736996957056641508336573312833996798795025759595518407246852592972724995889462073718969394757224684591376604114306194290102607289889722025307329635435181250958534835177000631831662478889192804458459060882986054734210244587691408590337898048553905777921037970509496664644765285237375344653049201165935068375592389722795660860140404483753014999992994354670506323691539273764698388476987235506336433750889852289429199689661333209452956157039924717578518874117567643506980329413176560343068778002007365415126681465548003114998837647114082851330367576650930317429181067579205199920753829554047963579329069878378131192475920166903352270232906105969780375312919062472746104517608704053179886886662819191479186187292375710801206708094370372684908796940991546595700523882353806797897924699781599686895069140551303418042552289613448499571348624685891745099098053495012489335980023544778249980121545799311646065522147200690170673442888530303332762389532594648231930425309126357717477741812429167400168178843004130599801600368586086544690670624949232537576605492522138749665046607214156499355611748956009633992643908991133109247969829608633494020077338246888480364079198818028353233916146707742927455892170369192489470818667533112027166048938952861403274190281196145871797620990793232204252593247020702248988987054918727440628061363295646394913732832545904990130091153236281950719820842551418450416659062147465601138004780465262458286893415084200757264661694228188419880640813840799308732431635125097488326425096163757548697748000829959005249574469382526091104271175986723087035216321088830920576012117441131190237939694429306748297474094081710880811616190087646568546547957209516787035252237919040883474055664958203614301315157780540147981135870112591952504952810163926235565934123982054841836980067818768419765839336690529416105416319387669064588790566628509293522815966622064195325348652268317566699863402642130625283173177223896632407403657326138455736344229473044876851116658766523921575795074394496443145750575111058534798057010428679222050538677641080924421259959209095688764722857966552755738714834272916762357090450061406693135987610929031086522561844333181872661234479085570129023247469799735323001794153138628479145959113067700241532949452289449036599009991180394153391036810851627890014558389608264056657741108660543047751910196331065348893052400037371938822468247922209209240760006068555005382346621367884793510776135823237869069896975851168561354972959208235273921499642296525894431749488436811138271604223702383214484670807260430595943145426708924191972059398175135133844224800333602198313557704430877162912219845014217426618239002508896219017970514987656870358417741045429548434678043156985126356840009472325526261787453781735851137876332424725939306869432633868478718718708640831047345969888802957217369907050976008844136759899417465512667907134294989208605581864126640068096509432245907582564542409072273311179394651372138729177661349031119430741053449784456418257665180330683988381039781513199341285498560095080143627749255092147184025629447879893639987931469359952171561838467934255960829049271132371992156260978506674127988588139206180893237637152222113626172803904523453944466092101362233922807023659121845547941858370608542626734670341534174290278923944904333828917757645792474409522804168948489998415353393258499231844276140615430239072514639746336359032412773180031569060976445194039120469108335929764427641876164318751646742568641689435341045344534629471729703019082488938434694989701091286317887199684956771592886664530323544732699983036112550325721651930695920533608126157666287644600811666864913564347021683076688061624196316524376699325339046209710193579119636435535596463630335636978162654001113057372703921594552893483131370175046448297843567538011113728889722940384274719555204903772902972552111170559902714843860173072765146963625219777503860893224401080419107860815977100209173503587257635955581818750976343203364182825841182779224775737565073499417292424519542463386378557540581965001332404602726876037086172592391108650337998524202372907153773087305865386923558812276411281748183219295528597738055898312294501418296337585046736192019813879737548413508934156391089986094079848279312894093345994922451304466679478451074937157778093101334173925346160433919307347762182386968645985367983426314016426007715764030997223382610882487392397026978099823874305749722950550346125361294141016152530639580725449269130764995780769425537817207182996073264662582949962180130135199360552517637324541170324600595672520917782506988396434084254251740198560420917307262021213399911091988224945093352762140370982646176257172428091989043054498199164951306529335703271591763435816138283372316630067293335554046581878780202090979645279332346782985014601410805957635380726950804401179631298910655383950940704715633432792937898592439792295631696603318300666157721550486698413179519805775246600726001683342873307568789997436599475435404686202338660985227971640970342800501755431754652082122745714892247222445673099495558402938342317443810803941850123630045888352643883149087334839046014174148346236977886228303937649654309576588966488577942888316310780258576534540504685923887784060843547706371592326596722617016789519373221992553805087869986178682068126910603485606021115931179125824417061125026660572086456176606096949542349960991724923594871720645617123476434547464314649216181140144269180826534927355288736320759758498989486854864536016257204028531098661728209090227465272558645085436840100850186288782972662532263477313967628553086365607470649461890802041707522504332275659934614636260271390859882416716145801683489898283744624886253465386310248118483212728859651214510492253148781890947606851316113042119493935429596806782256533275685017284906447083576515043121528203869989186907968014288007951974078207421443082651751980644503143145237875256635330037756721184152705112391402450800685657355366510736479010658674602331873962714912593820235441275492996928200434005105050091762654828716919280948559519546912824831799479091650934739589296637044544647166538197381730545350358068653121531255614339320507549757780614108121838424603038135619282267067248280671815871852175772946086297389871805435738752076027111892024417976828617366133759554206748763408405558127156616997791441914309754565333175979077210214549932020734372641032789467453762378605318560711357948540520591298511761483201430943786951451631240955699464031042092047812203602907123265336968090998139172986545130003184951094656697194212509568897304033193740784136980010893041975608663705489236852717435841839322680027791743358038328806302506755370634568134047362301096996469280348456257991142949974819627652540860469612899939508525852935713620416697646248934308685750327611901091068273750233543948759225083758861771345271128596911839467085031043339818451585280336174224045870177265011662964039639107621904783704129981815289147388734796572611150630129255040462311996152344915467539893371482135832413051034769874499925685124640200238809218722012788245516405268608681360720451726418090732397263999337997000871700634368785740675818344303545223004176252529933991082023974068178427541042259180241034316293605473692015701801112556994923914204119245540318195781509022592636470986553990232765270627860250670897994414660406807507291533711373800913098493300462500220078289134652535931726729298692876767743798709030595015070899725456899087971920636590884268055518574040957892088425512095229280849805857564057722173232802880490918005395899184931733713777629472274591883040424707360400851048301370016699322228819936752527744552131184923136013250855735686572088201106489778937878448829940870579374890698763762351384579945856634556780755276226939955256577051174912747656375952016218036891338215872007507597120958026358009581476489605742774945965104028555197633927662583490552970654258504986299509443312612382269654269119621251005262720307963091408440663211896364161392008633360242437702675922418133239950073242353228343407453840765124582277349707144512649864215815172176547726269818694415318959699092520183259404106950019806880817851935033083486262160794618660476838587628932294702191193271497813149377682003989838294670089202407062333803131847227757411365705405269701422450235861426372843630532046257375451535499651202487706902820569494594446290601604209569217396390908430559304502208958643764849568453992531893049485653119673477979048350251229636473672512216473051299709136084896925376670109874479744127830827113877947886635735951283392643452555282887419299271586225158637916157272767139971594243571002005296314676226339510583190163733746920294881813081517388326173726056671459125602687693626586796422577776777474562481791377706918744460156936492374840339290348377570925258107515032904986600050860879800099448920299949567236098954696738113339693093594108810680169489939590414546831963502885376659443524954599239695164553293007138543112915687438121637010442526400173807779698690535733062905214194824797711509965303083971122932938421260991674266936880077009208381621523063761490877846340994901833849362572137908940909484482946212419151063822977786898011126506695888234257805732188420567178368760400358588508778099840575086693917099718656836249035155320923835657892942233555557490796266095894729618817367795666053128663815277404041731761333591996328304381601553814672601701420579199836877130379309141806297426375414947196143762596892470790745045500129370494696218799409656453248142187486707243920883226221725993195313591651769875639645756057059810298262798980767444378805553437952226377162028756614458277579890500605721423046624027808003167582118510778526696449517367693036838377244324726211586840481771389775346885469205612235489520640654036507000847649642279203913822522288569015798945690442232782461341455638235520876482421209258035250333181523537442316198003428489198620829021837554931382236931384341805255924109106964232607094324773591892765754710897453925655081344136728301773301496941400536587253793521763926782065817971099600256634523524355482761167649826423732259932750809562499059454384250895892496548317144224882664521181904003366551226301130878351626826922994043174326468340004832190576552787952163494789928269091642008590935762110907056737214191413678805971884277426523927829337688694111954122531198989204862011398898660332101477291338827929535779214031427609395955877022329371249642083315170353046464894296314122108985709367953050454488212546161904681672845279767317485315532430440078987284862607831352953010636802337953963091376955311131866575896495642509004187824477037000520055942724648321755433263841850485850594759766490202682595953223673131044139207568119849699937267316327421065412793817026050756215307228353703627887621646215013242631615666813715023995795830296112642024000597491923866798072714412172336207887200456851225859042591353780978976487635671170380315622486249007257864050505813496040328577535855445882591089843456240932985353621162914931129640945917349200941668721798631452098099902603379796863200184043609830308996054047417343787172845068829409552053445030464028459575854216637755641711382031701250450585884706298412816731246895940535692938337724009929104671824757820973635657140982181648277630248916930496570479507040385737482796992721333506323363378842914526803164082729188642013445812975971470422621561510169914819014434902822378205871180931870694583355592344018048465763143700994391840328045414063369113425953701812631561498095882458812681155030836391175734433435499115681483469047473423268376755760487376607490760831846035868290241831181443444353424254631752114606774499277271367202158875703688869226645709920254418425181118163171337372585935631719733863691733463881377328988268034590586783896964865719793746477549885232536274199521375980667197614243905221614125796621842193694777437152384419454256985911621090929527503729567066895947999429177714286027598333211318109933582535227615090620383226030969662548668671120929423675019938380715880240389943848927883801322454490709205147435806706911070451317756985030100842176335146745061054517505860311133785520551651265583337091173510428038466349935972267946385070722624138402446769696210617611672193974464872089456618563674786780261336873220136998626828845475546001408686521526741906053203256840988447533055821207998669670085586614675526496870140295945764930818213595267630970573661661765512249584449233014909455553851364147985251748022900258439473322207618819918849817791123988883325802130164819495338630190708812920394659783964045652345092136561800194492081602704933653984236166395382578014248193050317641281566227416507883105692330754783382152176601769427182336850616842798396533637763185804488959674717979028230684598862820800083673224353443218897788563065725642031139026108655065480842497979734257083858759185592790279947730478184822117405619813250643684439028717559981751031161512079801293070781063656412635464580187028356989640714731576951510575953789189438031250868488989098852933279338040452278716309608159263107577641172115370320644563121963139286853073562136182925883135528594399810356626391123824925892972039070738326315704935499406804181662538054907967204293601859695109141830688630490879518118628088327364829370081551644600142589178616937327243899024684964491241173567490362455238335777138997802276176561669236393019741071122220500594070947573717786537080929484985353657289718014737720731956392417086902975331885313556453900545002931448186480612483091450482363947733734051086611844496210887040913009849435070568865937000261211563982606942470062419736334306017369684912758205706441424296426725399586430026609504811047330573883843706259762958715062166907508401114433758510298453317052441661573087258405640380430759441517666917105590661201232052889887845585089388930217359991886813102884498757015472643252527570677666049590635822386135106800929281559991449211035652296159105732036653202678443107348050639143278550508480803363290426778899812545787604848247716897128174045497047957574495858385117814142135074820770200078468777992957724430510294283195706206687865731024144051627207546454681224724351688868446100694651723183069856057476163261634887897721786385124895756559631450248697615531387651702712656404407286549597943312867988993730033149439996546456711816790341723362601251089144434340354711400841606621134384810044515676680797473596309802572022520559501447556995342122148021168877785132008981845935166481550994707938048077362433123508424327732927853973897433368372145393000751428660391756658395744233157622463085575892995890549894956004041622710305475666910123310098214302732088743226117866604082211518173351012164891654381613324160899546070167499661767068812524942186777487206883563972219743195883144237626988335054912999117144330147951161121282867224208984066849009681405893896090285682954333667887033310699176858922409263980908887673488027832434126584158145828775746993535428027678126855088501588585203939748322250396306872068328641540742997649305262321151663232842819374866671315679549389783508927362458449323020913257946695945685056119953776106380212402640293443234059532069332257310437431187842595769287483589569626636343554868355912877858114117033686592997795251319402427819564089158287297527471627067986608576311657127537545059229073602907847057502809345476575299782744040600799440082022794121398353163556036936893399531910424376197065317108061869078142322188657601888890981731417276549938768693673919826954712470868077804911325583355911830141114273888704455438297858918942039477499950372256401093685241992899640470483061375628710586457836065269709720342000979070757754967194873932985874493021990861762611439669310309011276397265607743259182387417735873254637906636376500526192904398806004520315829658691678559647618050954473352067935056660361113272611287768059067761730922549208236389810861783285916603056003519876586157948213576998729323465160086821117193757886270338845359993071937114016356158744135501600818997727842229513440503035548160652057311540076881940050445004816974896598073314232318975103249117300057628305812072184314245523811485683801600866405991316797130715370259855405135600203669930564880164110302742603434124694492694309929743185786761805484138402848299005715822712510594661930901008580483345450112178864314769086766411569071025961858849014589789856945111285017732895480750875903259321963336883871129140149726737532080761049417720999101348154836585925986445460109437824413705395568033994987443210382693932946955023306734490431188922194014466484215825702762026294725940893767405011608006989576816023604993797125813970062228419130772080642382308968748853425457254882010772887140212909964898439447966774462415770079108024902285118691335890850397558895908786204855014103178201278644001572329149858101225690062155075481511892010784667184167658396567923050695247146342347250532757187457817201594511758088489672709528020378776711008773376777222194069142351730500775471835254925926829369076261101105087730083575276228185175839451341098675965520491596621050291200131821033359497272042762952175950103551107375212580965026902899333901454247959552198289046480813130456356382098770171471922887033239272008180015289834744708882221074134881217839138578828120610860900645125082100551196200817360514686432723796122631580100338805175986072135852760797965424365757134346868263379086198256640662941120620593660638453301415547416063900120436156141438711581717131190893742367651282196589157209963535995164018857935244729691349075135102045703606484056002076835261524578411145809564738543553948998412967631455270756073931890681376052475573133622213540458720653237943671954797852932471209598507180050745741037491925278324139066052398069686732255124581319956027117702525074544686129369221787584665409034948434141366786148612280608237436693043253239774378302749367070848912480655599596678952247884277044494444629386418448042391582424350561459296750715605259855342444711056783749808931259580493415999336737185427170946814042907769241141326846913332138714575289094410623287301080189977565568231463789202656895463073517700891587204660242477085343088177016455281929775396092530305915184877854294079889532443533282083960303994027446797058731567112656638458809520390251046844656728553615928617299416262406861369972431346640605454001393399991081852111131031711119752195300147810312678148532824648213224732501243080075452494489753788637870202939626390829206630835148018508153697951478031362744146656260633098540060922341510088154257780432027244136449038579527176324813980510810590559328473842978791172030518382695533145828261553430288497265344372801789600808061043648008364712038100378288706568064143411843106112281582338523822282662543795194999633789275632149496351605019745509964011713165493005953798710902148561211139802687280328913885573969216984102342719315303655410812193545279350936092601730023919145651044442339779013639739168636281747057307758247602662599212767532053469450106078341479297327919656931606612270347047031988655438051510189678416315773936944711956844175171570745065796798994304167624782539070379321552511939724862823361325830216954909552825454764985157687039947126671258377768349481115541388109985969344553708292300858152276348593863461503964804014299082062224082676326758988977786092841918545076617881453567232195823595458860480226601206645847392550623205078354995874352419700883368945666200296556931331276824681077912823578250501245870767258433015571957762068262286105318587328453415081033504976060210156627100773491298717006228916499779354303168715916518012415998485340987100337990924578553162193854480996786728587565066615312737216554691294288918713242813630621893142970286013997048089637562879505057113334003639949269664933458938090719897736020766851184559274701060372134827047166222498124483274473046998621002032928510588900193096673180154225355120953558962137545971281677651703162457857290488091581728333178511592630072423659517730976339275443817342733538987485973210101514139217400737753477753604037270112455693395234089778227602524164466354727819913779106447542080742762438822876237467493838020200200414719109240172193600249022474575954258489318067741436251177568591082597704337171508290667989214121732978602080948740766644874496329801934680337843797866853760028516530570406825890586466057971327272238288726186867071665164732799749914490300991539575363153722585149733976822130883762316964792303070131804723885259396794878876966914994783869728400674127312641413037433405533506424612367909981297085367098364171045295929420065010409594510573411381371204926044221884437810963322720989758980462172922885902114347715761574216556939506150019992308284342453783208136344573918312639914453185579307718023063417832274273473783857442366781110218350798091134195483200442142401258337433220868913224859887368638688882457988998231136418037068867735032016336513583279704950333159549808115633808720255177491181654885651177265966656776260807367701416911467635415807160778574648592743980460199405895897139497300542415590490934996165344637909904745645016322175335483968680340921847208119181262874510184829559888811987574988856198817408406053095617760906783701559010439291951926718123505184694548628545098014333149401313390405192046457764296326121839777410515522996928481282324192395397066552231332123467258855796203080647364632088104112466827185042882715180310263655766553728521315652959497364433464514819713515878984053301271912169537350817193805923559912427002563438704916362597738730897566893070801960729507292592965757484226273596933362324485070475906600721463161234145482420854731997247962185139555739645306729747988350676631123234665677413601119687920216934745240304245099907414302832913356471393077163003323223242389390310017550858996882230816098976925275885030549325456671145950923868196515998866370070700439436964161476060211884871904150368488523772612437344480421387544194417014540634916348531095937463563753283447491091094028678039757958755005806961745633559839536462698303765215403561114405259030966273647959015444448435537692523897929879093449972325403195975505128184818226478584019302031705594857551079525348441833600093017190959620052693837232300262653958937671793375679380591630269914357603798805766973231745262400928772355563870647108703652340525249576817583672693648240739592370330369103014170689095371409027214596472358395631542772381054834649271592305456540320808060349079334607399417044872966720421558315264707345905244355016321686801133202533684154125107327968425256502755978139201271940624703005080380130268621990284613345636792603795245908386306167098233618910678296535993860977979229492299682180162817375850528897202954562559776451568756132825760601263802983768420734322793503566344307511825283484788443362503735707897423242313351048646580481820602469185903914560097130750063696313839557600904152910830749418765946970796154240177920478796997119802687039629813601349435861060474081965056462466981143428334784938088288206672575484464281809900761838691287158151937208891318670004294106286710279934790395208374536385079925048379921787542120920062607740660902642181837118063368945574211888452966129214784657483276628763763687811132707530299253886190538573552509111247217709201130650470751063120813510562817332426784342948816566371275801804123312424386135092418132194559873297702007791754689015809091635821372633531526990129428804976186372346579626289647884906274523710822900427403387206568254004227940781885580386404783559815777038543647508260683673943218995228567140922449442737944204410596754848838325778847086361076939988563242375936721698452860448663826733120426924178596480904236846683131234359890968358349341480940871676242014807953302309788863371785534527417787434053797555371651485435612175490567552986524842750201393325999447534744061636438604644717727055240961045107410599817494317625538359817457011492170606291078266948328403045134243275977601596878165219382883821955537756713854779979671918293377908119060086187165997578092402597465310662651561234213730261051955457742411359154683422929612654333491915277334149876386672227499682776484782243866204931681493796740633481691432348661875449252190703340034474367123167305811633517904232698326698784399687368525197509031763986179772696086940143047122163415722071516917566165671088647760359067989106169338166110946483561557213360007643485836497408843804178732197904473484394577230503820183077506332615612320226467403502423275846318101371213808598183322670165031044755429870310428021242200786379395614606106454052682771878890865842352486895691571665711439527869981535056857779669588661278518908621998968704285360219622819846230010976124874147328151861296108941505601590162239200120577248867538907345326686422048511455944834211773970935379028005087162929694962470799641106233259152692012688686148617781065719713473031510745788808432782143928213761334219105836008062327492792260658155928578506636897331008414108791820618725592522820089169557023116672151582148759565125931284550610159727942451794258756909250036465941654481385985055921816170332905779546482089892819128222180717009131903952476925701705149528408800222954728924724439705108386016395385509522206269399092405564255318455183667583224792945321514978419293586035444756154596430562398126358528941491717837062727432116431268936940239221455401721248563594632489598529810498021713711896027871870449174175117553773275629022848944486885215032215546956491348718890462349776256211904850024831589674916440556040568511582229956363776255572163052881526901935711379318495658497232525479730627387111973432965696346181608645073165696240477630674342436779360813042714035760824384289150972032695889022138777444464120416804707502045154228870175723851555226465794654070587801191409051045372783079717097355826077345645627113318337005608635912452896921771738272675241859134789023971424380465785604132580845482599310969363396976816731257475751255496273105729799331788292698307311355079384134285167291463076794599849545596498079910801389647867139445801948783242380267397796288357305221883145416476928620821688365005943252656159549647592761334456935117298801735034516579443343026179553597420210476147379983732880969473060300194410884548554391518664650268884945214236787399635024062968196393932055563609098692207612838568796767477741089272022409933357885853843306506259348118800239145135515262497131823030002087543095967324293637307049800192125541232692898053836473092973240959999730430385657462103451709192062641559894215281733529493472104172567829446571873211642508490003850895988807176662998453481760348164513915467981175389656563176364845685031133239684338027181050996555529292826758983099414968882434473804043506585995019743099692648965152868090653718216526087280028668171686848632651170219337272112244063601284280326246070506024214850378132056078664832889629559855107027232890213073716360364213473616264811632629227313050858102167802593818902561718745206977408429262268369388622167967989039216248555003460537214485671056071354223811446381375367073711001663065441150932658998544189044217315643385350569761733083891147636135957573873521614011458878023531961358499427639762862593003953029107895419643863369121518347743833759148444577494015841389669759535056467620449138538566882963777722153700931348865548771565946229682340646588828404936184322617676827065311872818068943007388054112438383822496205626343138771675920245763065518126012120597477532238947155236235106983132608398266933745894299293135137650102220649585684789236793151426009616567013960459492317214727777363802051089343589948428140611113266165489085556336254075726854883914528845488999200238931351808367615663870100318314144365127919711568657886821363720036690893739405480691803496726122049119531187800261839644407940359088601994790985585005084843302323342744582050508435584997570869203105112687730783734068059456117523286532986745525700143153364372849351168422100701154284977354621456595133609153447219270985735401145200611950289096088266112906325436664881517141236026966680450232024809752863704354370860785840069478100879147154931544339927838121532541952364153111946570215858063455830264501656888817765283311417861540198437287978773640859555216731607788738315152734137294436249751644787325858570281924429657781199239009422219626000633095885931055986986329718294539252860117572325115507778948611688638096668750948697551440212033924545640322773269814096882866436551387914350130708122642468803722527666717029214012346306516477031795205243313724103684434479645527210151303524454747540174963387475717235058321417720788051270762768151001086637920109012523258006186815733543692673393220045531220396756757714929584352115188091952958059121539367109424727284864009316179552837034110557631869950808364394857834291687109374847003267412295750237808716685025044395562110232954427145902056301099148146310643916932990662044650908355880561786098350376768230633915922745354467024243179486782965899078699773113502954091224534031015213192477273257154799662699180476941122045164445252731617913601099439677092290769636244435571261504247836626798584097974872788824939739352348548441866482721750451135840242490862264084929186679400791242429571289928533702475907026261427789381892604600060755685282508278656255376758521688021322566353331106846038039206192311690904705397668658654478598234196500301530640539709393921650318037157981433922093477170940840818305790011826393254262179825915519679847100018010839320891887932658845575583535278091890172777814105227024246623405239651859475814001945964307285480455121409555807322542724255289376937242021977463083452764885423924191262827994067117227197927579144315763393123178687601715125635813893876328536516845236294752121975308004750032540855074269749991117274780226145379963528009601658483626671506800317635539526105492157420333523704340613964573958065152063608577542231498745179107295890083640609589665566901456963910822808945001629006119320338295584936056429479240009326159158927709936059958276828149903140797897999189821771327207944288787344692388700474409044955020332069681890260814761269684051924634960817996873003541086867748943567051868459026806288873768367670876954025649684978611488209875142604708393848191377882396057825706853964646169225405476593545665332652445390330252790237025024577347578648529231681004635624818382579589303556560644445243448360978428167226398313800683325183548898937892128515440866800376781186075539480667628800399307255282719828973292196325355873443061195006139964633609085236441079761272704786904716627996661273533855654333124114206738130091175083582151127397396040187897151338768806565549392190796653309526673391349358462789353841858676228544428586841150291742607015603480524206662694310642735505460031937735661893522150730716138047656019825697879877036180727777515866541975641657676445097983804495965192214225782618367002210790669056218217036616457287085829895035815908136226145358600771232694629094247647115889333421655841822694802594417980284582475442934437613831052767035490744859945919458004070153075648340928010006061640991413209325823187486263703087423788817144473399870946176904262731805527849801917718555936216775163585946189926598142875201880812468522800028228457737450102936952175067955241471893863029927812121305851299910633398428035557957807222383193947836172075669206154511326126230695085038455394329196249689385419866937870538356524921811378813620912018956144447864968289179657716361858101839225556551430689276243366572643834179695947291532662850624452249552869724670830903488074239256561013481637366222516641806818497465783481709231075127597633479264749552465497344427220020554276116559805060067863483436102530900075096125635216276955290376023517702519531985728032761044823400228897478453828953049313559808247556762602542026806891958756661087521337439444653132960037657567387940468615167636311638593967073597691302516254593397547001653549574243951765127247144281637231600775809487267211062114685694449337557938270229440245228253304646719326776733435165942393214795932701734747386861598177178882381556000678638978223403768419458327910353563470356662076848219805434637498451737564182059036568879310661551395142538419756624256917952519476213218436402758659908079169927941877659610274099192217855014784872889283934521990754924830913851039477700672361666094116628010005049090891682655611347734529668162650018966751160589764910194074489102781663245308369296865406229680019914306604913841853398034712062984118623309335239591025095307534097585151099844215196988101070270109686293104744609039479595110699961042422765276987364479928234798718755257818683252525441519632711720854516973588283125697223337368920420932668552280793314584885310495158334055445168535326889164423489555211164986410943730792301504307019687233922627986559761114883455051509672349604190184663677898278509602709128716411664589653836865967665298903409793314925242707555178846972582789803321917571139172731974245366466342460502430074355523678476917037322286375142253790665321824787523454044632041675976490700114183577948894808411072143724019339746185076839497140483837979735362239201437018438084147289822354212909506894649173326594911769807857207368375400203635143215550576706039466800102627848149624323994388701802995536712590562340000093676973606942314306106232313178455599726459826178750034659531207617815189096287217908353970471551445360881741458816575023956446425607992256938904964728330950153097335033771834558010053550028993006915440964336580133598560946455259725099031400477881175224027719126312922671473230412881675683156434689015953026940873888926009042510056164547403369561479059173287768157417189436604061111754283471050478743020913361138534171759625584547913425090871215034161277098633122061497288107726498901432966979499418941577571851458595474015494817550200076205013807324578241061855698881294626802310194565923747998379247395116307507075485482071319364110381387999519448461931137594789651374019772879627478892472573856524025739687167231275033214802582892102352862265253005374913177939449354228844523401360636417648039456170053183595369851822444893782505920858228223184322404313154033587653906547978952730217263327062639832460304100631369682972845066555067843406937993413324434240005239859177176442665652840711988227456437479093317841788786748676219651154269600121903141193446395493564145732564164603149308970018865219833575359855021096261243938767903063994942329024291560996636898249890687363639292594307743536656787267470461591734543617995687967429303376746750351533812409444265244171761939318260796242509616879249039328266296257843208020430813996100574865530808979911448480024030665214784898007607726678308524597034685609723697892834979929102184906565060060700574771031432938595482050914424574993421870359771042499271372720659773593971429697702734422901313093419514973146162905198994921054752120556331490521609850543672997894077917555759261471296277289981596367534666825449998742283442493131133476490626242326781290924071656409270487057460878315005180908762440307592184632399122595813742211503340967916400862448096354427983175648126408691442564381487900990751154079290797283651155066512679679099710098175012814330938254152107486071158367085050609874950299420310534326386914808775112077973886671767944224365786593387105259618760589976059781287702188368473116659377249066585330146739209377209388721155365560302524762049731037621534546937791648454525161635981022392499303640639223026559229007489461985112166741338006463866614158874271258028861276796922506954643568773821058982499880184528870331519068724976865140983933072112738304683247429589971216860296039130762406049166263047979777361921709528985925335723651771650439548529632095952692369282714579036375190558674709779904149473142113554648457789080679280450362864229324325949236770458395005861259232992907231882794828611376471820785266631547127020000975442261686348884172152371285796866665925796766345634569589701275552271925462209809922038780873318854600953363825387896042122698875763506539289347406131068472404864727547373729857276810902899827253739742193635668484267897648432573757603713266249276978815809792351196433883384955323494232925425663774268963753883494638598848359746126337975253130999716095903423612634146752131289442493845382087257634269778917127658857551554149881886397281686719979450225025418268366823918536880927068957382754859737192697297465733924322189536562483309363362181843745010913171723909726386460373653558930445390478937335291595269555975937234881475415891423065451933405274168619408620220932446328778035439592715533126528793751868215062380216883187882573464829656056135607761858549349719770444360228149648437753962776044906883464380927825297698397678951658899174988544174538071936192011199591438713809790310121494403436173693101917144164211166741693870046394237212741666035973841036511582809235018096183282472063582884526561405175916964830239987336570622942274344275660525492138520685634498847216222662268578517114306165030865164070192910809466102074919833579564870965384996119999976193792410095446442307731733146411451971794468652073843091910592524330345168014056952235052838851495098614487141883351352439911157003360794973391053737678058185654544063589948242505532296813224168807740358354545550181493917589814622833654078516140866014403369696319671025846971144923391685868279884667844382667673994322438823892288731373213563611338873779239020660529695541187026904111569320636038284137838472885329804140952497371479699484972723973762863062634268339491973380797779762364601954059124394451985461078267105235785848377104417928460749887375709359994237598325478912672693868091427954131667267826015595360914622211768270084332482291333221680895931845074720458157224238686039072743576410582697932534553942972611625508393652545275246354861815876939464837872047096671498808021119140258185865509936669560319629353481239172018126671578870734521694675699456175502389863597115345574139153983876164842177467349639602897046159006617655358507379452761191942389124765795331138130638202976246988404292335920831774597488511911719661395020601523543133472720846437778128283980214455213739749197583545200874338831123651834098158496902043640998718276756756993171844303820479948284652245959678294097358575190744900570501522046781051212721511221189702265982105397187748758421575166175133215569450861658311831169343081976006598655088159496558037381249323050338881093823737622522520544900756887943309070058857240032893187437749439346500786344278575108171280038752681347813254840304863935301340071714033970967908777794825908120175725746239118823142452211674814843160410381142051036562780510828377991247207408359461374308726945013494641941221974236683922318353040323686803524616047486927535069563481645492102750424749026544854006510725637567217254010895496673489299144780083263322742658038034989351182397298914195899163060471503105421267901293115227165459788109104103391885163114567635191040183587093379495812053426369066729626486666583968426434528278249307658245625809150825357308997994536087323769928513121985317099232885124386187687368016349345782877120550040975182928008390173384314941038811214735177373199714609678086147504580490982376679279465140606938843379938109585578976478875690495120612221749429746301815808991842323965924055200782201393530233260684896366511763251101872094227326239952708693419337081094948201079265221454955824176422338056962008694928205171828406274501387728647068814474831804868395693234617534975226974985645746972934172497746404544538528453132016233385070072609373866313201058589524277629498599755462342332375040802198392432907837031233512968810901175733651064395982071216829413890419391195241951478641178579473133703080900387282224301382112333213544144179432557453100059275399726510317672309332420351177096615431953909326219010094033279869802115687093284379389395044238479630848318102354711229362713412063521565526673662971970374827672245711885064016026991547958583335783479084362144838563197815533724234103868230993932425367085955139841867657297325852670382361993394400262733219220644747267701445451030445887680486876866391350625682928377537162166042342889743618847862061498667509588575394393022677017741361508132661379257616924428519970048715043198881459889433555805376052676266109241829336025118711605305220684809353810790023453472208588149460229670044935207971898768777185094237910734560229442171574916534609709731689944521504762818720563956205768138931660622870757866954753383300185942171743496569533051609880337314397278904355079783143408612456664060580435572344990160376827003014286783797202443358527271761994277811726873203135416504568120372599774479119196632309056576283866881440433725160501709064702931965894042915515618523810160549450485165425266025693371320170612268111835792791301905438790246395616898426619908233225994074190525292952749920834494716603247072166731487523956153948713825444532344040038284474875077963943729663155599287743091648444875307772260846259929625310089022833167873052316406119685902270898515671149561167666473201573759233273122611435104012616699496364961228772192700583322304279736421853927583662353195791727023899163626792916227046569722385289141208041793540695256851245620892588746843104951524007277430904084318302982785611069509982212220267617280726973373950815717519649401200035055613941785243779449014451002857370831793197708103207146421213538335768994182641629990509756069812925316852213586886975179502764441460312877915397679173115656020999676899264662538680659283966448910569894750850204908264102820018268926710938504795495044243097874772715948151415784034131700239052691605767237258655714424510053005200105527550652585124392079104677933161891894299382652559563066609116407152704186520188270671517274683203859097008321576750984154573382674438978657890085067195820479632686102211348307286906259700544248257235814269658424893639168199162839222201411202704244563095132280136580422818726884887331240234869655005765321259854298362494786754227503270425697710153923358660866412721918210259772344803883869144285142745666176128509369426457722752303393503803014945298584712549274528273214010636440431490078072827873533581063508195767258158774024785460740484214785234322867559592825728813604904656570932656524373591369248660371542583588575712131451397388297961673800049375163973639631862963109731184626046742656979518231595465228334121653751966442465694360658762645003054034769593338054478166309009049793253768366611667251670988268927280900705628127184739716953074668308290295521674727066568694648358611438056925319972244527724345059614829375499321568833250162430546318942265076486546830470675330740983243368281423083442431602615359186078939014934433991851528993351854331508307500039419158479440223472330875885100803841769795125572716012252478448656532838075737167141687576938126494638842289638660082026803916785123368136603947917863075732409211283019421226518986015587418683482165333822511165459677720370024770052505541157995932784418831967723248409719752764486714210581789679493646038173412971997338908120658579345631670837776225332044445025261629968029442526115110338300099682474310198896767392355588275583396741763027423399296741573187904557766194979207401343713841305312438013090385612319075058390343923396115572920132060716599073066112459789028088988516662282737750487903092453066603297590111164975684829458778285418477839641968990673296272894485543834404587058787552901558443158390546260733129180163455784095628161983825516097632148427931189809269120127605452289172299116369971752379078323882555956015071043142211803410390479354620533630789585211076813041325457536260213175725477908435479747119850106482716788353230078000754344297141623502626496461851039871396787286667654208636429826315511657974005043171078398104416265058862833608111111807136601650607599236844798403390883386219783615524641756771400567653827099192303836805587585367214548046651220641445697827468952349495880807160927011537239044778753821582473013202127081283422773387957959379096352375255560962940752064626188522178903846391620032015470901142452406921812027509373413364467491826123511548598387518035274451134020140498623378130202327184801446109457344830317715397382215074070187492143789603514936164238353549488629811755310518391845884212037092793117601332479655600771969289318315646646550502418258808432280260050241973310497211242437794448482013531351994032671004222386328374622048751973577427166402092249263408484842811185335876467700231985750141002862538843013782884948014230764705442091517119870164594806569400635545255215726315637653851585477041455590728309765764130710200463538198039500896360210545252833829947569872710036313398191544723062924963648499386647394722384122276915247536066802527179513188797050821647933664422740955388133120634928491300100729518810858426558538920007529496084810868846897230178387875354605228949938747961593265252361681937879544607381843237797447416407395719081099339435582353867455650642303955511287828350190184243439966622127349708026005259025077770630958355962470179810439095595016122849514614647052736145369952104743057739807691328820850575004802096145428587951564228893574968047404097421013439412923718444842568941700832905280150293355937109588792557292336934194520789248283857424883429983542070762872676880246393910989735189358049383884003944350127473041308295284161975240192802312758314398229236138058002639474259591637535422286594644269263611039228520332097023928618724308222851913261658165237340045796815546595497157801743121311040109405770991115638525062178729515603689562342491708167382790888419514855214555530427215437136915180064227820780985029530455470902174761583746125992853218764027343429743963473913865598896420337077956524148338929970203230585972366116783497719368721826489513046924587089712781267052560835160471545366863363421703198361677388315306471567250061455358482824542682851902459343878682201636997223071968277692275167250012776584430567963274156025065376800126705450122347260175209842547122481345349655431939501263391026417499892825339001814977848870190030063484496048463876390985880635673484776387112725605250685370149793220504139610343854382442814554309475720797825169245623778690620682667860684371093818774368076222567102543264905525273516510363412127002889365424715856077940025334149943086534360542086525763293787639039540369469186256204740943312056750980611362920157469909420228852914515750275591332438429119641110730370286385450323077781320421341561588727072960716410444251416289014042189325991424707583844979937340415269399990615457082959549423754881550792830812606432705486777415476083356464218688910734890309574388404680579367949179892517634336183314737947181988718992439490288282728407003388084752300586208654332109715554742005081556285907035752056422866716225793184861497220466445148366837754537832913008170299768441911969368454716975293545659753829041229333964091131087670696092497049452134299685089266140003612479203149475272473464495755502738419903162383883539011672870589486629005266755377653251759236308306860016150564722684920477142664912528410758128151537174585718584288794175360287941916506377358178754957466905927597255260721303143754849666529673073186711141480897617969638105854039423610763373756368734391546891064415646124208824980635321982005208711773547853661495788145188416176673956834079579688161699614473477782086445217756244349266274278704393321046495674807397650805428909776496821479983832789985417428131627811692129596599699362415468544474896003541724380738812262701215183220652851274897819861148116737464034663352937427824092006291821425957241842074392187004097055722212870618144324486125236312314695841427727805836813975207618484185071185585332753391553741874631217751582276780375474022571726742926528894772405403109589466303053978238946408741993920262797948535510599288144511658225230644915677246254185836244832840509581410523558703330390180886029084321827565009490598606243615442096253243269926509521296924910581891046862974234074612860325616200497082217036641110387178128118566107648305014733117769991664073152675940661144460604734547908405004627797285884930590600720608269179506569139674900459598362593882754572789824859375294688555512843646787942139591146977727600422377716715223672695734802839392788668429779401400507841977436368209315751446784327766821710203214717341864422215200984441730084678330263301449034189142351282389084450363326115008377489129867846656987134242574615856411752418462069488057431028634702820684187939767492371149550301987122810518940157469156356291448984328259857987565504504876233803377195439388986867134347130869186150422094120232113716693278782054929194477297312439684357982486797681505526779688015345364792533826594933348594117485295315069232626675563071138215960406301707195346193131010867558502990350023397367062591898774399390048918045288959497806177707640299881331258654334526459353946392761720382800583261290224816176478873100020898471410240692460717973466825180852440955054327140630186821817072897387178011232567675695278977892546169087574878584289419603691650937031022860679619356413603812237498520336766047394158729841511154651370385741727549186372455846882799365796586574325700228590922749912037482369355083783198999130025354522481202087436595449559027889212179776974160090850910099538768365691633066650352182809095313017262905269283635137387260213733864484342967478358853431190674007488966672621914388069827760116048381191269619966111324521910059664479645668321474151933716891502416730697261395478214555100114399460767757377204492715157588541784182597733628000267064922695351357409205427636876034633601739315332971171060972790985949152126346402079232154643871101779978544947144111924173950567709759994905660186081998849817968475287862940993192900420635293685051643631077120500667021473095324962969995529911913821403044017122835245268449660803079391230775229880582530258435668312475120185006217364585945464722037944072579593830091374624869262391138025873418625819044304851055991033160936596230667540728292830488214619663232980327215255897769162491501688991921404432673355430940424889603721010992436712981013380442701248165270664995811450946168853281360863326669919426825365498917186031838555766483399782684354012498687500422865071807465135972947606951589690348900141925400811889921313724132241054591587345815647775648254869498773501139868034583691896254472419057453282090950153895007629771194974187639591646616199011000973206267063379105261915540314944584811712439842085340669372218663559451789825578899079996010800523465600208625544944161708533609402343885476529105752636332173659301026438742211277345037044285817885032478755412601208500601279291118645437436192117737555356664724310027432394434565193992713363787440471104639408784643073311494349791342385833999648104013596504856919428012075052167696826999777895187850821877584491546775864395995858944754963618495696219836555954281759989370714556208470525546253365899745763515630974865588498468177487979842631720689746469239171288728948673285167615000620206246890310930246700781503425883108907277868585392981296062136132574466176995020490822774836166866226590049841009266172863279864386799812887116278292045375832160687435574009410003354580291990673059143488209666111423533544819591234404788854872073255364842041770211145192576253609803485140665620349860881395793139829361856325727609938180772973488387849756245653662187999005323480141303837977474589372700593087168047059977940637742581207096679199620374167758961424365006190674840593125122283748876304230346603845213605240682527268136756413971181431664747844122480170896090815901876506120567559535630238760818033102911207033122074700113543945230464679559447051073410087755752926664515051489360373572623365585720212930587660263053867856279289267691867239164689341220675416808862441802457109418483146191679526286364900597594234760695230630113473971105670835509856894074210968395897843773131684743702127770591257982062704370882232692554911421899137366959506752343168004574341913749996932007285289422509072120818166107509630255591285985967679505258335391223619415206000131471299040743897089041664784010486505751417014751376292082775002104322087514073308721661573874549886540503392029810218281719849665218402284253352247560616775621941314996856103691024246021753644467528831349195453684681811705834753234384976143243503760336812694011406292930248419932628258750421088184261190312948129804086711891134515014379862114478633621842809796035895972261042426139463512586370451057923597210875435813327462288642302000113358693594704404067263817719014423491054155154898985845025454556633568896452489394142497252564536193607776717755232791709632305505342253522736478716298163017022714055054738655552951315018989332850590219716794903281779682174704235532928479376957551831333155027336984113847737540196282556172483859275027121181075390617340023564479696862480916131560891786656054816430005660628084347375812033543534640071040564947265499841372664974984479159372924278981123243929727906732665267279770307460980142439471084715192852422922854873646044128896184841045908125972289291541474360598449533058927834985618031126553589192108067535059326453471095957786625744784363748326939462791175031168331959820778257646665341601916087492253226536250910336896003198255233107366772029253558721149197000966802409007696883445228508601949754003395208767183449778755233792859707628852418536406578538919680162554207132548777560081785795526827400892657274680363734459296363321889080735688204425648069055728138246725043853057278151990317555021559815176772081770097236480778819402974300506767556701270136067224008808952747910133235958580142418600968027375380280980286069757510296429092489840743513586410893305055918427697509252128932767304846296561265342233985044240229180225713741793668993078172611928840158953317223557352833142296959066302569258651339222979569914042735537007682266046258964483527284067929458645006258453368455673222184375190822549404923754103713229706476957462697593336269077394595516425423812182556285303840338533812396293022766941186795905484312230736916808686257064069511453001877491546688100174193355289946368596847005571437185885135757676143417051682882715666869856484889902310217378711160190384537791166823519447807196210797916208593588399002547510365735065093422330081976607205599408255261305057458413566843253201084453417086059071842661637297370742984056093037808541508750820763205301869525296656424826062310430725086308265902503794272344844348712456721738370470600653604286292428647455151368818652854186636323626988294681945528205388862490429198307753607894032923601539215509324248324929162037671342434450492194217000401250377547555452474657270413778240238536938190801881722528210403903150555671344423560583355054695069191285546103738191151549975645689197588413250982575709230993241444471435392053537718569685550780545902711184782907411673814114713999127936557234031703470117354244670804308825558828714990294366527818167446230519624749340762220495613824858120377018628298455178688182308726865501198627885602804013556894160633181187787591925608198591749745182524815173908383964273888109480260277552977688829856636730304250947951754430398490829905771092101951199699358415115500214815569354100648961150853537882755875906554835506819376440784055086096534952460964491440449441281492553767123687178325725045950192797507909274798522845610481050039702144909351328534160587426031711611886472573624954308362450368419566210073714383757898486652392498065519166971969327946950139620573725616044212663516342197078603525827134920111920947933648974792640559981379320983477452439644615767295386737739386541708899334060058228336409186670400130889834205573530679279608865015857940050296830565637581299337985743076881073514522561345248980211127664800372662028024161122347919338847221631154850067870542684542020391151597801660586840524183301804140676495094404317554178415142615183874674425289444474403806662067084243605443377786618595389854180005911215546241508305429827623718859913749718215916882399020220680916707953600340300394839938823327040467011979165427380827130355589109053994119536859495068949471002933943261835049669015120354296710390908237318151392217645354926467655447913541973133457205860347775532303704745692671899547892966206908166191036401768909464318974328980694454506204110674230612713987209698775735786750896893605583944606605972972534493161952835117051615977358983992949172943890842380626429875036228962204145421760364391254195028346180207404691397784320449025014244305188911251584749018666469842077163362452449691706219595607771277729761036895416913989474748467409172942176487779733438545249611544503439558499654600147870123298183030872967130185185389438099361825568480031684753365770997036772994305724970094763005024198848795563189743588781014274030972123351674299245863919192492479279442900092638670770806610892102419755203626257310363068301549389578890488193516936772824652597600807351963926968854927048343691378342452251071105277667242977806489914493572838197003124427309695078314315868903444163850620603861340961614431399648830232477990903558577835903557260150122648655892794600574471134295253887570332379562505913916032293227325026748447097138313640380510516925246931793708491270778924782755899393858087727313076435946330934162494115713669479117681419032231247916849134706952724848049100355546840342286220753698722703626121175894913659818119669521315035454968669247958201967219848110459640640842935118969203303050797259389456683201507245929582152123585172817897977582290049714409069179812399032909681810928422357699108211392620517215910902745881514862235338168133749658478153738650772232851693461732344816623624455576556485861895958448275979918286918110366808048231781614887815131303548431941624561769249297480207128460604944454829396237108227641731600154742920588184801650364176098793850324354524561869843119301075905078160452415237378426875534413384969636502042034271962099124652949499848631508453675473884568656332802364357067398552475695521896451651807909621898681590066360124252147205295556946046636196883949007290585236099964340862629016448869746422636253178027425704741097674033148945487864157266514947430204286417187206748897825395568293846867424920012105184413482113902908869350922393164416753351803760468369145783949515312075237031429156396874883164535974804814219735636249526871006844840662998397578019657976323601475069049211765699487468952870895054938474938825897049138677753679763291845439506155173366196677381741184916908191442772912837249381981936922205786784398030339523063809667312010417602341700521763490197030810351300005400323950712514318603788387025746356317721756027895505967041351615543467528762805409807485727571812467219489105872510111653137811866047220669599472238494477378638080640032250895219479367880849441519416016683617963232163165645498310560075319677706331974886352929668595134548587619217973786255275949201038640971841952610682259779701589459923997338620340910272637674768079604285929964101300480531878302175737947464919592206034784117668896241799506985868888477730352808185236454156194727062394334766112104490033328766521725057133894594846647955528086456548809710364293921429435872305899701945419584563757077696895107984869980638976534656816152693267046722507732951105534082685335601985653482588007177108276695636725792660353924932676960358897974852171815141194955906658424234538821428681825794410226882227536572271775729870929744687719518344059428174462943878291442235279096044547896010052506510345526840209544488641477909365743398520713087086696376481364993788196765622965645064224171266159581782735045805885696356792043170523441823918614021555307857903976018182443053765993679242345241398743686046989072659900499407385105603423297254416915943515778681542728471039000611429272596113332631716341132879943287835542618749122266250700345298312019611924770440977355722276994932861612898124068380994059286162720816093882096951898373063313149870008869971998120108108350997559407770752454030668552911964955267302988977241819945222919908699482373357616592962602884134217887610585050223378420431236879102840447341101445692754514400417951586012839566595732727481520541300992385097978435547410723069050301800456163923108281818640745469614837314693211513201181276932209320905520203360294086247314723883901252395302407338955498043994955680192908606559591325682600546956188712812800666454042305182707561613464019973268024308050180374323534061581715454676863111636192902848785434613946085994264881090242903789550915246058998298854471980686043703059237589160714024690098137746776469639507885621840268616509369239627849443325580413720774747957380786308351606759641196270548165258718780893470934445453130056962088022218700247036759191077127182837502526925161711537097857983795177100855109707977140423719165364202315553853228789912858728547866264417842189375821039336193660612418535507079545446033328953915073056227883315130681319056739829420538920142881248890251274550346429878611754961200779611046266951741310056682105842825728054686540369859312979557077417663774701006053360371726377536281485435692733280350035405656871796753574986840774878842401219895140047569833987589932377210355877333276806217676261194281541875330796272423136121168484218846050857867414408152106359471032232825769595684623803117127616324715432740629050350701566848161419088448505980244289556564953013836872441728260168554318876092120381331936198666054532317860190434731668786197560086682148766538790729594943310140026154605641209506483477785694755603607955029469703290069922942801760582482583091804065530856100244910574849773282771384324389565003376922238325338446875890123445160102242081727906453983364521510281876912914573454014032179139093094381138420215255437646493515948031511334944432064596649588099502804321560637547673818140199398098248878225238174627504981872234043576676089974663313279913316566937609638583113579861968256269226995179536992293864035586328762073353376725870195864317692125146402352656715179633033892486983494931372372550419695584748789458472277346920901320291136700787856102765420541115414163874776253253830063289918268335028474850946986943091039921967017886031588450730976376249728826552321556699844800395986646683438106245753902972668474908257704177429675331494539424621817953711871883569302705988096951950382273917127953837450565945327514324792301043963368663185998162001567634638005968181630763150481124102055216030791884156285166385201342758536806233286597281364554649070713516186040429890997413676152003286037665746296196732221112685951595188298633850716894042495296061285650694986945195562460882946642190819299570555003595537255578518787706197182164340116471461662898499670838189352990384937363085644653652879714881207331713686784083995845556453170271437903299680291447483794675584314236028010027969784256597230998471113335335595309824568779801042172315394332312182597687963371340138124660522741165893950215332355543936836518306568640444129973908355373777986220330480938385524859903071817752906777689380077850016609323125442186906440439766607000073589268569590516136989273356809470747767670121609447713006612004973409519903968960873076115112620586881951275496094021612640497363285289246586238954135371855240471809226385530424667998732373236321100624962535802839838984558019218943481455411572838521448519616728709161859285694149169809148906344679921390851920436145398077856382189282961654903695274365628864938648995645559907099518200496192951759460176325698094489675958312363457061259156817507433448470058126673836193947341982774519669119779878418531374522083504509334576416818714029218244558552631385457370764035743662909531898119013484295182797262005384186813480104492882022447634241243368520706686751240307587091311182065354368273662537825055264051145032974419428961655038169080032610266166284826033595987359921468089250885328104556698628093005942427869005435311815621990916911902418606291810069324687633809653262755420574740412254289279078900663879408554790237809892260588934145345787079501260872054281279630846688352613992118008098683033623860792350083179214020423295429838062411760222692308840663871747294420666401202226894145589325553552700150890152446347657519081836949790162108336974244969344713295826769712812512754397254086722341604167278646257009652798590442121046818906183245355782570360376001597329318870855710080331036101797178080631130084239228972743688869416788897916582854748634726633944526411722979431555260205916340167076576780480531920025615244484759774816881260724289954609668333935846461466719142927031119728902869967599444030665160685158084931279002254618497457294229648299536935427768853712221312110529547644377263261784085752634294908822931434915325021989786465578271639160874862977533030316205042205986602713181084452567954178956816567357944607264913670651299019259823180954089297608043885084238215443840887121874054114107667198948557542125960309681408800953288870749468907900987350725881302499243578500670004392892505933734488514696940034814236284629779340782722261506923035299291991148652629709741652772597456727647600565940540885670263189156789448292767294287637402435429896756302351690657047556811829861218210598753649391312465943753991997250371734405720191064533583278685867459422453982932296702559599026605224089868698335264712695871356900377310229209973121945338216952151360053989182578074972555075832724023454135618747337857544627137533022028936996867439724080101342448787750023185812887945240010831863772743887192450710894848295831496064243713272812199568269631306273387342005760217170515242553075361475772442443532834751448030073806718615749931247895949959970514895143712611096441163529988049750099471076239452808965483909472774077505608452326596543630618663649489354376955669474371255231743436232776622179706771097284678692151674434164154977940204537778196986612203118550569942267036245793698742567463638731505193581434159302146364481068122145738772956922581515583357738932734077546871313040435712486403339592669862829090082575112069587846024178281541551407976059016210524019656453250463556511262790761359242654438431929086976038403704666490061620453062487638173407941549618364525857963667902338665224728389208358237302383881435189393679478274554525095919482972656636949452454912866193525444991851748455539903840417970258633593244981388461609893460966161538244917623291294681826726176323637455654428755655033464207028072552895319231061522642195664289185959553066499285087862716080374347677331254249521137160064794648825059027672472479753077622309536825901542313003621490827587651996042493190652315952252231089185745142661636477439011951938345025340562620714209156379119589712812834243457367850245900506203986602322977380092025242476333308305953791276291986387937201182522121431890784141862560724062611626752599637183699660279844674725435553589715830816528772393722590857559880655932852644768456109199076344066830658912217604506008178832846740109148362819720502789239435071371158301600561128175723836274482007832763583563101134340851052912991569122171585717497649991000116684583790447760565549327373826638704309222119107627938997184787829261971759248674937143092995329864912291882987757410104115669021588784335531874995691219869959382742222582915910344637998740236098636782136395184051265423939969897198535035953604794394306562782413512866603283579805697112259705416742892802292573747014071024776552347979390841113962984216119983463916608478092232484441362126781562120849500038843248232264993446549818735831720280693244031711745762246481515573717994007507009955042546181417204239196315234667652852547152398741541314637616900777398820896414368012639633784068231414472057784093943686299120334243576408793742814213039069748940716505527209699748923253196170223047215418606996607495991378987295464859794579045827300431000309574512945224645272431363478387151180956189399628295859089270351476829565064628688527314256546416090624957809305138986652738808315932581428457573076980396178103609719051007952173084218003586579673219296472801127563115282839566062039709270618583223858488329305167660174570349514419154640653237929902289117273966483325451192239390131292154243325721240628278216812058993659363234862014723644518182530988039371211849162866218782671695843248909257324884466492003713075086058869905992224800921507242324069942533989107738680186962195692165967667335682018680777243453050528193421085300938253968960818752228471580457131253110327857870124878287453656603382449007651937612332924682539934017125901541412827682147781383031146692692530865187229508114955898627923265666589259336426649397529761023236629307266918489565821797691148124189639369512578624030699680569156920168007754354765224144054626830929403187843493322541981417469291690243470947902475355618455620968020010275381729405121151806575959551472043975668643020063468928536762102239802477225007365455549545943002147210697617972336839271287924804392356916333499653392795596253224472547880835742245272348476208382322463380706425900030566594362690932881195074270365299953333421271351982517657101908624099148741686649847353000229404260841518950659739351105088605652876514966902095879715688057089896705780104136600695459351393015034760377137161393839831160233774583240144852820988408870476849913166592944744246739450625607149886591260166643697383672604348847668006319626384928635044015812278286856069588219121766442915749964617358812245747292055694041899990504820982544066569402213865302557374606997562183376384813581542836887641593305034113877270786653967543851855009820697763417141615640129575869575153012287805202978266673110216811878412866165207528094388387577057305173490622447170847810094277029812403381557505453293528158192098825120817915239607270729644561461183003889513631189068767594089311022110293823012310515045264712270879480122557340294156201484514983683801157827743317027479696416162532588540470513118386110153587775030628768238468109763955794050712182892748050883335504532553583810135214828571948983817782971203428532191379915193998256430722135000317409139456324972769350820458285514295894305547781219672681480682192206039834072690573102946299942532964658541264173000922724097474571310751383351112403177884778124161881253731917717399907539496010489579746214883292356056462454408796819252684870749140054056776901622872145223168312419526391751662229635836648307928153545511069184839777657208772375442923417567219218084779442784045054389820555652392381350624088487776705644011909516606040825293070387772019494025551794760771948471387580729534569745868557390513778814246632736937900667428154083723276426451181011963208900652754552758834446973054043668038714233773456530292801916835876128277512446692489699594670126984995095001245850550041202306899784867609838222108056395460520266266356502405463872361608397933602846478648920924362486627506271216312263623350734868076261925403387338384835175914401374557325918051225173302323016288160249817442915247656127358938384212203580415200219252687934138485758186653714698696273035413982897871935771754285244148585942512407595925895623498394672147165121820868704867969000396739730623737815932096965167734873262741013734398742373764883799175284850803360018222945356979230828928386929128085282107269985566413656835910257620077428616121155193955689928032943285107312843476507054192254402188728575420297740577715669855604783814348729739249278616743321609853964121839689795347429189135913956549308987678877652125426967543035525558683206864963512499626979813814687131863856955858409188668262911228895588780861093655930220118535919840282075538160283764461993982553375622396022554684537744677044738551908228580361682851134128080459071147802757975337251610660517009020181810414938849045836127264038060036874569727053350722317224518164202264493794420715872263781302891010834827519856172377328916317685880788388748249204995760393324763294975762530176019062526406085775955100977237505852220283409854653970718445325426021919996261048194583978009791774793661484599652792236757733778389098808275363464968807603776062112103981034545729945836290123917125171808895015301165440187435172476500167440998917161756101384243264713204444821179233173798493661993643188285341548825827298272889506843272348819228457966324739421260355873183089620992783412966387720365832305856312793052288534185696685713478544350901010330690235739743926270394066056282384639777454812188529763412846244274695759249576264685936571925275267388514380524757537399079126948115826763050041959931478579198405087973179191745343725399689938561191301989581297324830899186008256409338737347093379780456474224421465947727930056546860974517250345818611596767196003478832990196867715364029263348595191283683146506764651263172766609320227045554540810449029001022266662171534033822212443770979227199338476597128430501029308968888188474320009136685798048491631290937946185879260542928675369943030859203986762047207453817712909831632120004425765561562200239818868544936534026934658768798123312420699490338856864868255902656236558198684505310663072846396501749323640364650120411936651685822688949802509522546227108381713625855398406125671881138087656493399558253230348928499258366555807679749321327844094858213354361867874338191179490349188998159795592972142408640179247350685561671981830743346796904783396439702106461016856818961870570892261152719510462270594877401698614206850042442380347001394878707886624826993407705132363235864017216912016978689926665050163819050612675838995784201063564034876122091592170722341844044421717970394631989747684042223293183989204849327136505217560400008110039212637585333707714357541585037130104855183729318292977891226898624745929930675266968133355709256531307746280415899953410326176634041972924645252938852423703765930083494328092284565254378464279093846848602912439629969091748007615620193630635348927098445735153817509114748246722698229934751776418979934683875012124512907524145651061569341729203504632415967544122591852470082287087363810996150311452913546434975114580007430597572007329024781851799191972964586521699127596484041429741681053035893099333890871947411630673016247905854809552631975571723024930824704661582953259445287481051663011974824338974762792502919823032718454159141573769910637037051145160985146506755936820421516840240310356720980190057018761661215174114053226895126896850066611587415344676995237897789804077757346145739186419948229529361057958161337877181613269340180521558958968430603454379497375989175334682904664574591742395232291368119287945835934626406989942362368046951338167694877948510323889578181319042124918563154283647236854273183885678713063104297597989472757256474853123165218995129765594815682921929752766982635404374640632304511443803690724084274331897678941917300335569079263828537537582755371855659379139529587696683416777585386659799341051926587104369353580814032852070269471990022092148474815547899188785358949566472205447993981804073372955511666569721885350364161176010847221674972301400849252959328108521210031308559562472188719390751800012136345113836141807271354237533139556819558680213153492411942085063089908157185306740586005701983291296355710860845472466668122278462649337218074947236466118158896923438574554210704410199242804191766253798106916396047938795874849457300359660695574406476324608422802930921673608925027996290763416558183266976466057123685622864956578595835686104121408477119806431376015328181635627687416245078039079522548649369684989766099467598614468892278862151300138438723309648199588093656989828134671284518905974871459238038018773953721795900230174919716422825853181545116447190496900753873355275958999753293244638854964100979691341297128049269548366749442152068376942724798566954938605472317952409029501830448175266895675749459758116110495107336443864806742541190116822890189777242994008843030669854317207668349711167376242625180002672392704221093339273755653574964633315015229385632237216111909791629358204794340792393644294218075199400103914383153935571712483586170900879112309415036512515637067037395229973069483359254007235978273490163145222929949215473680536937400328564829119742310500350111788883959287681107130496518091778307104650893365852855764018312181841232005737752634388751830745510885811270746381113698378982693578245382084683230602581147505112488161759926366978136848435155866729349492536253345685128504644326945232814601222331674613674133664299473996997871143768941597833728845778826950612129014974363551073722003326488404179067190120471775172558575772614615245113787687975592403510374097570470296232760719606581213298277759670497558855750333332320362478288201047549035349988534346908367002964912713057989026429398640562765259541472046347858814416344235338166857055567808804304413341893418296950230859498674529647983882358831831480824798581014629405615415182831331025989266165617145070104779103548141658043901595788382252733712409957036080130195379779351972814955317097881129220362419651233882899677685699742652152110243565788165062935282195887259367606883786391798590764947046655575483520413031340895644150042943779792159654872271543664129285761343394788951089491324623607754458730140167564497401619650182938462407550218272530522685252350743995772744547008903312076589425048968282186781988218199529583916712008923336850370519536571661052957901533973998352210054107346458128119990647925892415017765720131031770135540024403737038821514358660096176236087701306741866136062719199964678464130808814833784311882887594907378295294910506923282852616985167350779544622295199886857236803891469862758827786861145405517105321236477425757266706891730488723096056356831913143997420626027379097048933538941033274970749698161317179579871370261859391986400629770548618504924003473616287288011713531338994455365811689345752719908764017631238768396875379319101078580120657924787368972463788285415947016905619541824350882406090531793770395122394266850673209016454571977146840511829079931056501161635687352092768889852741308106902726215359731059401513439514690966313076120225930260441020238157364233637199656655812526913509991432762412883612988293475009275922958512833904964773108034745800802458053249998079991484893493646242597271262260854177521334720554281510532155258100596613155491176437764145495525011163933653390040721871661362191083171029172083718034618799610556354268379963935614774566651282947668260781002220870262161840963038410654476775431109059387131314877798885887825356215688207974525481531114585349457689725308613480253790811866193522235637913708744424815572876429419026881109283792008661555220903081917407436015652440139329027235625783908724417695273115250733455971834187675281753415106556197219820716283734253069904033185794583477023713552905036579367778072348786025500501890891230940472126888213489507736439989138043134889347729076013641470100722243309664445147345616673287732636843344656776449458056749664385171047818683424343445803538670425492182713094395683400712574061478109085752663896991332795457388549539979123150544513347620475345408617694234371105259866844041192381648019762717086342675277286025774106974876818677294894762761560983582605811595152075613249128334624219151125665975273078699688753739368855526745466982046481140924815332123904383485949157794148940596683890855248702126102152398248099828942321269752060708457320889687105310067381134157695411378724593307966662796499093595078918964737429910322738518763989325810454512183474743106560709056466115433375958043430097812243958329331257814699478401734117678311247237373373425369445653367383317668511665519506681253474268022020131231167228127093694509141671710001771895201087849049552725169084547873431253544557237227623228929855684201926195044496371230851074229205183021936452426974812811325591102050840829859333387841880166959650615642856997182830762821407462604509927829515111768756049157445391403070151805896422379922829173070809011307449547831926803503497972322006064152077209574431947292071935870396739054088665948628341039984606202582031906684953031459633284232267330523017552563788281058983647279886986674105158548289718548504571979598024289229396452291531791834932728065325519584979199896933852061476934761135203860225708840885953121987992341047630916893819662967285239983198302266626924223607543771634531088748827848169671927978710781970016540829965389220188306647570559317709658906666797686863162896669921002229465195726500808806866492653122595837015912021493975407467844099779328896738892397978572207468913615121915999444308424540094688650514557840921925317247751990752304603435878563970854563610313193714646086293958046306821536950225577637422557028556796955761732040635005818559360312643800443499154341675065487903133785363934219590815572540527544998755283713263295096346827560249282668679856925747800248088036087797785040546929608820194871087756459591075396935710636019187388456237176754292359615181121937229471315828004869855014012418068368847047834689341350476289384416792065182842482383945780712517963924457919092500478670292267704232726787900751953130525831463527433820233886269415087669350317637778387395859953420148906094050680189651327683882767276258228344187072296978622362053257908758925822227617869114872059469028279699312984009683904640171057691294434851329452349880562898225068264543879038929477914647752771849581555954180361003712927778499333403783993648862607716435273898811103797118541059815522091151529533695757787776421039743829019560566121853316525539782961288251657741158225324438862638240799601220717286144439522283946309229415670065103751264945645927300015995658049707374557097702999504424995124753430222099117217185637467339102162043070818070681252120861324335526945333967646074055033463241338717475033731685375027830954729288769300550185752172716136750806647432086510903909330475941412330451071970972582148475445139045176435207130233266486689209679997762778875929671604467897855534164245042538818928952850070309192369941312391313455221876672466638713641301685188733593155730846128859893050353564956137061182968143708720671333591590036274462046178776795982175927807040462269837845555018962360951308729902766946382485840673764829922313914206778779137613044089765931046480902275411809245981625392173481977869836540259390651408237301631540931540625037694905222631920642624006590323166174223103420527900358786457273453562924772595434703341128523260430966614588145576487302157104835073211974972791947201692286851714913852587449316408123329463661074529693814116400793286156500359303909626557460464321235651482099021858540114411506469365411653269048700088685074136306776776961318273228629777517885596046835353012041521998911772259062222555122563174140018470408382422635445109312476423168641284498052802488969391818572158155099390329697059720829547010737257378430521586695757572151643126209793111891581497317007402415563816446428342128835236669705403209594977189436337149613793988705067481396649915387314824791577654057488277521622848082453793849022046211384205580577366960493353234854180024771199625485744053207575282411907122823789530470149406203803773548742734399694908896103988936568979020542192772473455950803081964812225172776097804697395082079569037580826691542939968974777350451175234197440830103243685731363012898626476509363431329497084516561372571953332080247119434524927532058249653506427738564335950707917254370004539561021994270144531557644670992972915921734514239914110392185361490468314482145724713135886627990928034407473288297482629822264470437897915577586607476250585845407421831932002058037903430557742215253877449659148742568032572886405096883612325827794077929062377299153053652164955294726910521749252700764062438161278177782934182030503699665024729680790281524138723436391581902233640644651664886463328311162222238468499543910065680335638419617747068154663044393398427323966870234216304485848795288591053059146157082613467542759810330933394846360829391267981791922179606477512214177377888262238026782853977600637169550594251130294208182225677354743184755208977032388019700928176788662629575817289663946026405927304148786233623285370090786820252870222288297351812750158426605035877677325676139265065332429888989580963480874271547635081597466133335735732986006078066792048415463422725417589239479765839462270356091582826330229837205538497996893373749916680961963831285715934209656644142880669835937927806242869081037117287576548575804535853461904304898403578992138651038507774399537187579427716690257322658931844584896244567837257817050796512298087392219746709720337357246576025144094731491949437473237059110476844864793956046130707078483691163435616609919499514522230126943944395343147581588029490776488819147590442444751187210271675073551556759894879548981416417306554869249681273725295014958717790916375399566452702121220911255177549303815889084088650797807877191848450569321994720905713891153216743644759173021929466625235868099768919774192664176524657459517485040445467029148328723924190298343110271912101507521250163340489555077282123270476223284830356581244375564287001704511457210842270770554829886922219141874877560647508560932870995208046033131795707445977291923051934607499687784488953856571565191074238209534433736669572474019613337288474007435638613642024105402103143457532000195213699966188959820889922587836884679752265927759441503367864296152285402531281598498904600167323799008825986243341772964185771142732650705826187111634540055403580256285768129666356614600556367104852010582959057827528044265850884908203367649885120979975421586320585111586717548125714837890823016583792220703591488364281349455572611676566966336163860064733847455116127386201593878900254271131967339713497601754948783482719458599349930234876033192001131563467058881600184875465076985291240142880297830592552864344961349418448050196791841742569939607737556713518980241750648286275087365490489181246177788116668558569761230329282355052265585046911150153736448165790271982371560959269079327625538599115276935168397610317255034875113245327107974049565846268402751308384778281898328355451341935373139892312253232358522557852400418126021854156727271678308805411237252284974863548322373763978029552486417635238844566039305160187626265630359832677691819182277635050143054472230789582042119679537144502121753100741909778622216593443130745535488198336704238728332737944603591511638263234406834774263006268978399358487541895696417811854802996321966786688763197307085646389679468809853815507439966028025589391322623634151625462217328322616621492369072472987135531340884836715308890716575584053997047133196782751199733457643442675965405859204705081801400486800214787829869478232417447415316613475821459332940425757004185712452612109960995674019343876632490538237729428561647729002856196030018749327340227892364461909491812795403109232982899881782997759884943568350372013990452427204214569276100027864693803947588897904917414665039999245476042845007399977268825070883459693169338000214291090039570607455543290100295817464856010274128191549755553263110682949338324394029234213419800459103038224136327911664721073910250486932234169180209707428507909398044238620477883422680907268608951006383007317199751636900863598356272846013429425470632205839656486737105421460760573505806390458545423840224079515637053973433446357068663235990738390704455922854306936665677604906538298806684234249015611282674728705645612081332061186542200276541625986566373175604251013164390325257438934401544927364183923027704778412569076998706135021631247330887689944452589354012956911244732113177890247585892441729475830678468945224597937304767484574043746990209881812129722497609220415060346394997264940553981506316448420541124552508603723474675284536296476277354713683087369540300414366795615428926020467919806200301336894629859389501343584254170348255694020216379601053515817669285513529959912476005889211832055727659401423138808666736845269993891829308654473736765829909130696252281968752118357528288189425248848226037158488872116959409280600225814949686484366591202252786040827632250963218086728166168939265840582206011913889570544239751962568984222570215978696893753130056812767500166407005966917659091820184164551433481802020549275017038275241282048875554385587828909609544898966888272850838141725269289198575114470634717833881261555597778469187316108018701571312353507680734594140733688998063990496607660184500657474845613741719934012772720429594720150657942748754788397362966106011202301088007849858502928562940795931127187448960572460364142029066190917621786499075246627243745033043350632089289587038612695699153371763578601563562259977362086066724639151356926422558837345170602050819619065149415094248297131466899307827833452982786986245404231597785334811469896546767456464994063179595538284576495202837016068779083908132146848489509667362075639206910130354736699332241717499541281203211988366005440977305290137092326843335809888405258784528004528060647211718841690564297639847115135079608830520009804219849176422781058359901345473137473414007320651453467133548396232603826139610727825127390174299675678232453578957247213200388335815298521295447281817342931650092199511263709835924888600399436425200856018695310797059572513229848443216505797592205615027974229998464498421102938390185849482655239332301264536776820351977999627667706409258915328478247049700969424342975019700550862964139699649042256797930929765941449207605246301135871857712910116458033847261746592901076862058704325450419165370176301524236356264687947206839634075503154839233313577806664953402767778265800355305612100839223429502100280134914088009176570046856991499527213391893531517414389975572632570475131737193321725675683781473633577045069539448727975324714186619185001490051236125966201292385880025247087111580501615373341405337811337136253983631643469946262210982250149668681269334906930827452099541956251199603120171846124979187838292510863169743760327436238580632059669845473189716648280673022850155283816237533157980150123422966937977899494105315503327504334919121297908834415647926158284267337660530866577551673971151128075006086154913876218758920474068738578269562449870359907106211303370731737574746093895778917066291756682840191334346960663566762844594327463336003854608340062032444995001399787764531410138607329990429705619785300339656010202765511385749281193907226126340869863231830101237268500208335172102311156152138566220227887168573456617639478884916695088785268345515451620336314821951327221281908630755628032161073930329052061142008154876195045486387421638396710072496433373402913365522103666206053388969521778291850779488546758390654815585712098622914611775433595783269588816180098252661632561274955231864769837119159642777790968790983629091475585709934608607011370277901430185505851124269259753094304531523499590155225099457220149033195188367979097333997907961074100327710059733893392116148759627279379469203760843942978732776157618592552121099781812175042431832554868258252348602364686106239793244412953090405049860284785074503576625553119618230245389268522234840665730775529886112025007641025067487351236075460063380888669886637500141032235750049527707214211248875701801755348078702574082395011528666300364332432420277520981571154906484724864290393261952880051779794169240873695582296347193350878735694737678721596473266372695447712846786995055988308613631615063629864094222077183269319318375455203064213509356387016120653615166390584305268802326488531231858235995578033058784975175164794065289299589092450913273711715059778683451606182498052543794241247522853232183435651166963288043189855044181104898205941072581840260301409470285682404645145933308153023482545373340656583183728383561568829299247732025022474392120402938176907718234692202249637583225209959571866569630844801791839245915072103641857619199508126900202395619448470656418008819453434372604608047738822332753995802054945118801151994538635266087644681388121274609803264705138025164432356669483445770552342650625241753689321853763222160728816907840824090245644480231640309428939127950339697945676792020758440694106570362590987144906817967743104423792843776854470641456801474344573796813638890499964051535251294796225635941492060616053971875313258394832212381039249447515205010963572066165561335416383137373631066779938278071945333157465497320968393655109482516595388389141567241179542005335024706765687965914457510599383764792659127656220137835105380208442377722909557129703940452871837186963545514031343800222823387444024052497337221238296402947181574663958783816835310630983349368198539891209010447243144032291533358110346255977260857411416488295253856206718257641988182883558366429960609654347982396120340688861719728186963086199409156155292386177768460359032937056040001933684798272483701666792932266525599892170569327936374029442635696003820420313534922567710964489070737658071757482509740718062392619858370623562236317852528100274501855617468834845069303077728674742830259068920284480116229840361177859176578859515063059482759964638679001926584180246988638796161163939825665043127583699638307092439004526617248024252506117241477918078313037513545166641588795704012386155929293870057685910735327420644576796146960081199524575927681377251700043584918912963162425284611498596997298557071040721905531877164617281016506498969013654314662511587318711881388136372659343101739237725649983153599314593266682963556320258911075535034211099592129582513884214079945469001623580582264477629864374063878639049860045379937522625780117413411771926093411407767729968069956159218125535419284462882361561595666433625510557446679066889129394418512490367186237900920428765097418955559251206117099377419959653703753390783124777488157875452354291042643290855922844103905219832003626792353130933882486457574802861331711786197881351511253130618427810031839254293921520034561164877001647464016921504100242600593256392932329896544867066806068478714956183225639620668136413578241741223518290431349810667148138096302173975310057253588034702488339013447302305957006157192694330530094657084791103487182184439653561678902334908517193541530691179406619000973780748021023087903362683951138760101314801072579604854437741280367486164002332982248347906543919528260624589277792649174279502824175291064253014630370093298430901576645556666403715572201818311791136985394805498616174151983362909768414400891590615625673610107184008562113078126878909603762478507005672362830225216690581565783289203485178709643060133442433109266064916518983213432612210449916059218943142415800643644355875467631611000359099052913859637900995477798349673708283466402611211395225100229195058036755389331862957106168714764815583992492659485714424815527548200067685137285395429336455033376437783914900884322588615761643481408553247039333274108985276305230258907237233542075423379878271580521112109574633130924102129875392037157682870846332940914121596936648520132895935599559799576303862224061303386041603495115902386417113167006330162864185868019524685914810934279511696474949186824143273339187815358543101849257218581784011473027755632826882076174656853400927800654917212227456135635958722879921098498456572124257253610163321193083746565780149676320694514362688751498185868740256959525841358611289163877262293739747425138263337279754971134317631056615655988267677659245096778850844865647588720085095010434283145931346724806555290660667295420756132260379546030625256916985332779760446437667076754891373283289382729282143119838757980065108461744276796286891283925567579099165467532095125261583864357636657317150830121516561370634173295083841419132733431075512619552376020459660777571519219703895990511615990027665762024682958151930553767341404817000545459816367939902277284491237946059716418848028016615315740725343572439812133979054191628108469553576701861850355639020755162225971027548047351812903741875039525636449169146474315681782789444879686313287077997280708720738219232618473526775083477611973735894345931106641999541852654906931236442600575388707696329749394343292618580574823599656246521972282402086513918666020403086416497646886092878944292173706328600676530351596417433226456745743513775904779035961077371769568440362699310449090782682111829086340930180457499124434890579095323803219578439587508789071109244676993449762193529176362392587418823357178764738373935225990215609413442821228045925543012988058087455655448906976685714962345892321779847512742205012019177904186904185810546888273322805443366140502348419553642734826253967253416866523792631287330677115022494576644273855277953662168401261017335535549670020198963172635577571284481441652207407694357179945785982193973489969354446868008213038271275482897329735935261475849293587559825132683149603727907742077877987508885479251637645947408542544524936441396134115978514088799904684214354443286173422838213547372910816675895527427508919911481820185638605528650166837927768698599694628535560232949593801635231652199884437448451953350021575179518643019618999187667329041128318208336020134593554958972011352666650715577993361660098070172396399458356588289428916461543658983197856549047264023629593340850504620062205805990700627062695822938350407996862380741813019023993622944064253035370562843144807672523631395795388135698351836729879519815456284331726979425035218532522033785314398096178209632051938352932302724353450210356277419553432454913469082045920006616467722288527497288175913841611443876737440175895285149547050666841108334730264625059733093256231136367183200198412554383772778059707361529672923928757542843038658268711410744100258421139900401011406373781096963125681454516043477204791516850988518975426102637532654112301923514328766864252402683519720461110021183074205588494140562056241373429759392451442387154580963275851669635549645285218630623492509292963316849262959262190166181086435923634670752181130943506766401286639322227549243139132021336152329658365029015236344550754455539010998525674733618241015132509399138682852789616313992960469664752868422662386471206041575600787912757928806294043253889922041328213610826894309358960796073723968580536887646059578012581852179980730288749983281848056682777591313238504474725889828992652166193699023928892914906990523655442026405987056548669044308091354264849783885352218638641558375924192448051844846264933742649333549556800019886790481424851313258513526961384703075814562330996613829978125528116804514363842963435179162020884639440781918307298102936606930026589841793731636063180240672696195299162663213155731115477165113754723499618726028049908982506165114527613258377944466148238641884052888267942964615775204203813443565752970210142148883845975096552103743473867130138451829693505859599113247990412809545828193018821221901852131853494492137520403552562759710590781148946532583009091876525614534973133358312461233913453581939758500120253467900423583044372432817995651231827869411831840854845568500522313305450792323645521731320580265641205030335477240920810745437775981138129548279101125228319508022117373224572135823491570736732362490098916177632192077273098260476830071236048120869741896866309451425649861194443411180203644179252478424164241791833682116771562707280889799402336506154669229204075402842653159396027850880203082012943095255588284115638601642941686410540374398654451444614818085975580217227095555337150689238760428890798076059663370657397916465869493142065944807835562035698327849806836380729080585565945036966906213977796857398225239134805719640183824867838944534783195415021209032113425728609957035232965479811845792790707277960487249769311498485444244604101581423588967492592466677926813836581765755145625245977785528900627988985723302591775675890480253286108749624244773803130349225229906079801708971786953576552054233899454089660190953901979052684722809191574224099280454930858465980995857568554812983024991108048724948683638033606650409184426635209267126347494597544182647900149127011726595649110487805161160012997187980209141629712196039942898974130784289576340157725953274890485942204791783253066349231654873490850161143737504033608719385187163197464701737589208359684545274769434372831554875698020055279453600639594735731581562289216636204229550660210690080661004903930279321604588028553803209540834540642804281590096472065657161363127097528621064492096818810627325162718743477383598482520204505233928426218876493704026603451765280540174959001049231972076926298643101275271343892768790551016780901338050622877552619275174716450003796308235322445777217849825766135835530315630974101213069417776394951894087150071282233277418875947087233905450395512244168687281484581701542462239719640149010948916325940844420653465085638170300438241986491155351192178594051907883607380428640683504277133442530823436363401006209612312093855716212560136078295175993555753040415276675221613578089535259194463777056064455708806201593114059906009370877213142424163299012044233758635995409365880381842452929670952064006862087343928265622629462863265313631981589643315794222068587080777049992899950476476637610107329511437534290782993434762023852629710930213483618821475500690286235955764578189683109175727845890087998511495874205349136491883351661551707105774285728732034477960853454126368335996368597262576847641638473589309810094546767717053607373916087565137783211228623400354058256098219460494254673282386853819626002868151568640058893626539354534147110525839494830085532399535867566479851579109349813836121363915165776160515622776010813980642529445284992087911523835277933023369592080857925193724872786906966675002988445828611716529764876628436276455428138670702597257987168116640756485117564015802680538093265922523064459383449789192331286269356116332563512362576443293884444209055142197712218074147247103049163600937646540323179203456329207098472859981554022863893500614009127267518712447804893205660762061075087199472534790525211031654761024040232864460911605875001493765933218492709894438536584414166162299145504990083791932449331363396248768568088265439772336904381379936832313978819991505291552538732587785706308652895489019251255270088808128251877651159907771891677903357625313154805345214772550130454473633003050886921001329625348481499927914587204709304989485130111650003076474982382005221583517605297051467749208198549115301583245431202402595023972420112006532342018013506567595699761072014802095091621017596957441526220431306858061213685988078815502870480957039325656355799557867947874583659706877886541994639265606390800512341811890103024270142354060584794688991461106304416922083931584095891389977362016815952966972201225363611798996610670838475406852756382768513207278434489730739713847410505492455290654090021708777079652734728358567550048804109724072848643440585046487347296920125144451963121052968962521939317198491903621083380590306422153846555419983109119656552245846348683887937213059978689028604313844979701288842984143321050120396829115362096985132375021885067436218809110779094474082034929660831084848950987512632970914547565099266690744923199097958110705834102114630452117836418150563279110460684777544224236868841986479936465048113828760526375345886260218784253611702082788038999638514553193061057502276802840104098263305867994962582590862798904945995789834828639671846218303172272314989924162823319340614563364438554890303071855021521400064152253673163698813269088791990177665819431083287956351463945378861328383774321039852692076974767864040721071037245210431909213897494882087449814500123257569297584896736220470447026511205424674769110664862710019776794528206797432854811732973643595809302805130980574417980362376666634894205569656492599763119114823715912740726214678769007526929149821456389688362855748491397292400446328522915903388288417464825690252184587439828394862338979374335920881852237545104271238936605353709382741190837414524672002571807412465263723058655296910250855609729685037271227438369296930604293974619885821974680496597084362457232096300826607137500143521591809914387885817643755618158860927214329589924675277394897177481240326864225767113135440975308428223837476696036343720200450711837394841101043338375489610088653215353305873518913882400706368114127421522262565150409688195481425971816911716832922558435250719042087147318149209541393322145081336440288647117547424673529477823342411334683518925397819861767806431781624564990068663154648886329475367620293731888494319971961813485703006178676601769126540989391209538157630920392826143026472872190316044672314916996694762760063565696296643310869851118146280545820798943392436516553557336685557661928705633671112335709678777650121701018450334672468651184852132097654639563205456657525162728077007897647742547906083644267838924935640989858343525331018899979378670505825547624305039746768970064190519076947711872379318274335575881678254469377102668277949420789395513525393210547590851111227321679638500854800009385508951400569604143757270489136302464681605641069227514381445233608854367536015313191209106450896360334403597420919167373151950472332078973843164623997047778406657644076635200241907055618069962406713304228305846622657982799583848499896502062453543291180615296342916897303884361299220992759720782138465925765669977822580735748245859314748021835530056335407962704420295164901503749485930995537018801440781948875411268722845938898078133447123135585164420900410104866715554630447338516216436303572528616188282676981014964172809546229220177043352637091305271946006794273318050298682466436950265099204594188688036429087825617551774663610580168860834064595639714414438593722086610115939148388202462308969480423805318078464120718737118877955361023329733980433437738547065292259478307981190125155927472067270568090548709955868571979768126996169069736014246685995976770320854589885451372718449362547623983918196872311787057030681471017192188777120937014103132021544618489083838048237072873956069414754120251663958327836372492962433697185133642836195110860327269978851325285563647718434114148719550878425973282527135732094123200694056004494946981055013175512646206348067268916336525469882281984907538158923805083439274191296680427014209995020207522337552152391343074474938997876209686635800138315165700755686665361664448983464149988824229032395035202957237139751668806925445682719789696928737520816295794463984905619403679279480877066125123066639621460076617152925765533793811243665336299706669245553375284832796203877248063904999623845673547841427121051270091414624090227828868669980721943689251989618754784465311380579240185800212397373239243197148365406891229971183604845962650841067872408740485601612527330014035325918342967978814204576667690822783949990704330023499454609944274879916791486378027936125540243962341466866338490894578920679772146354442193871912551335683492110931071391129966149020422266295753279396573760826183857573303472315600773638999673374035926159364519735644750695557317258046153896415707541182063608811238128876393317894732214240443642911839554580403533175356128714948238745331526341033555591397026406589900830953439834203748501773475332027570812510996196222061318612818261781652654153114572311661932436739542335471304246545831461419716353746326533780829073572753176824995491321454171082558730808519782501263460461421135775960039750597134848236719547661194061399294310899888675566100695521368922010641164418511237692127055362398979468692592493490325881036067761532749618469381219277879274434240480147578986430616256545115491108721132100670168930492497086914579146788331976359860267883341954975773646545289627132230823225513066189076837379785765910924672252087038868445399764217453780717811631676611330326952256409463098321216857796099675816729080321937947537407516374790966347195799320276255428529296158406847713446403513137197538612529151385405149413753875997377054872625459891974473361438940508672466485494464562415146264381038408732376744851151933469858677283222847641607953360530156877765572419885058273088089638554199263731211110780528372364425081707269039291842925977307519297268317893595563480023011872252491874802278196788809493426798975264481376608743880534475676230827473973675281996744499734734472553100752009952722325873400256530420593079883564566956756391033018735318205795570332295114232896853947024986572052591280919641216263852094698493313474418337615807545081432589563147182376982722283770446728816432713962686615597559315853041954512281972070719668681952849053581908406558517428477841677059072954534520792572756314006865877433576063393622237669445103259127781400466746675253972658628319474073911314691197049599047154834707598207336707501297343577939813074213088289561712260614256486737595662323319704641578495667153538312547008100317391184470110185434930599719936905993655520134802729018494588638924958397586705917383663498862271171554716321232752533144973563554434694244749289798669132110799565041633782638823125914653081162538712627730501794430104064961471727291302376927744601442135736905330320521926115738683931324945950550417121271728589677236542783933067846375955730580198427539055800729848278822177695152756074261049559478025429846421989894887144106193367464765293021219846396704077797726446692138201862463847212426468396089457154483413704947230787641716047850196768299212942914878783787426006409394241234203975418961392801249017191053736653055828934554972834732738868160199047334784035991593625505480500872994085657218888779129309279298394159334212616263549520138380140985252329840793081605657109742864314098734248403045093029258706933928787662867386401889158194724713707102046388048753710292932489507851907016444326787879427341798215715445763167776136737241418231400527279136916965738617247142276301175369146236693306319338218467632447298929687146466710188884121607109130928326309628529109199963307979481304562042122884724401166061807794056186786528101669734719426867882264728703814289936726046814053349952512365774615063969833712554362773913390551479296084746507983769867077492712251044766454281694068445281166494819706640763992979716452754740999388362571904344171053976056719080406836684561295421196180305029657314914862299627507425307151149855737625865689119132624060813313935128533039438026475494400929728148971506526824858700955473783720275706664777994225069742380668436840025731554892267129480988788948584549059685819321029974699597753195950417554294462181642458467998919593253894059021754047536372867823168176558178148353119439826363721535216458032929119903566183696484275845914369551482472477748060796849576517348964109086773836366740415466036054737344717402677872204993507808926584021071085523206969020862448381774765844199278783108757054308792962285039805465087641653851556126283196864743260508100982300022571122764698455845768217174733891793974021311319057793156507058330999302365468430143870920819026971422976222829236156308937050724416868452860134300750100711881160025750095573400463561608119332444468174242346957093821681445077353905255221680457676449578940520392481978576129210046049050279204659714175257322665198540931309425482905580927986287651437579888207759958300152821485087644933777343232662321964462900920526442092750473933091644858096406612166768726663112269812696897355962090950297278842796281334849624464708245994981295984475384272565747190950610825129284336213127101552850683579175100795200872827596410886494084239874994042940752700173986012453510294245424786488118067492997392447270558284571806385187668257726676035030219704162564273595175945095194872061456061524948250903912804802796453447963397489682694306458763072080372757811112554148701219091722097953019546083084316885613877226199251976329872926328691437030466813925466619705964799781753404376866861506080738470860691674927977244961801936238576406717130408919177988236145057688091421324462843611985950005899627495986276908148913436522943829542138481846799870929951474411394902582231055038759276661632800545184370688031870947338244675968526417567595609306690806233243131965580106550689904997633525657161979593970203748563482029298266470780522469030841328309308021398824302013886801701259779767953360939254919890175834450795322196779259540256233329684370842372579212677633580029727502675623557346313900051854742019969666655769832570055335684011727496351670010209904627234955979419282722551942641533805803814719687077906139281437536370487302199247001384967335768813165276668711519838738578565896726267145963117482491211755013532403217020247955365653642633208329066660863699473052849560594431594426716859120750984427793935368578553071006115034474402936863594783321863849937779026943637405928708427115280006872480007401658542303852085513629265035808789194345386669665777712691129495559467672272333617175054184371892899435469631748374749873356743044836156837738742231207287456412867486823218434505945781376483718426925665762731594618904008924171702900772721910482552699447461974770540128443193426014895878979414096733075550734869809213110346860576108466509809041984130372036465653017894837726383581144539287944761567750870679651171172428695828458469372831559084893221298387675637548067780603562832730536527950357037511537274604639565971046255808840510277522793423703298353294641071378518290943883447399536237711931755433251325126722865166909864625381495368620742574216658964434498756586900259776578537627449088571156978783478175015540425342405442643174622214292023706837796951678031520845350445766454678120894333873285127353488972006486327077510685750535449477141177407797504939958667959913353850269595073305867756514159914463824737778230346603776251579706026623264928738787128457537435309052368285735388189455824123181288081295219227012926037985294080483314333533854129575266873877675012817398814454026883102859735848750111152171974523016594079141321644312365176643494881912362313310151006802730056610442922089608297070585805295900611397022052586548035704051432972797825397065790129463420159657516863251399183158291282615352233557213400173429816528936262585812200184110083081237915678503789844465252623353181167078076380126435311379050742976605341800440967828638551205805719353687463277141773023725434064422729957706332754373019205767134187484783291709795256412084804070284786561448978667108111064675008737554475796148841117112022342068519799260034374535768579302777451171999038505949206069544465096274642047700159189284340001248780113884419558782592947062668891559183173763871932023109187406292158352301000455043592379659009208192760552713931216718890197170749492848064138976866242365427402969518633598546300677872685658592366371452017916501369480284323892364095683581156763330753378707984280671036130949825280726045151720769763718507646706021130554408480052532467572188236723560635721052529566052633420546323782187249333068754088165823135278015911705716498839542637245793585937699006057379810233020111544066788711292167735159942263930464517629681943566734682216533433150565476507494106724606160245189941900357955392818218522375919466575110585148020907298881319646703253729547252271968150204751044193334909058692592293452960415732638319359963154834569983571374914085403699676159712032003644980216664610422230276450863696358393336827809063733630731224618593701620319591573460754519461930257736649695603694370539567661240581673872523934340192681916546975875753530157500229418191679290521672032793478681261448438000645518812915188111796726681908195179732656708644004112175377511999701554898728443941401696243059532387648224959164679722567026073965312407212379995110249264124556074105297267327982268348579116021602946268893453115075379111083514009567337506576642274586486048963435425160551867311179147187290430085434878874924451210854648818094198248466334651149972104566105933042325662336963719975055234177498672763758049916179962948551263002216506396045532914196549699411337096084671205146387102955845914951491980696264717425536933855890206617335920744750066552248943314018392996101426232910412998338742135429381711169118198607633523793501184087130330635609597352482259974399948745872912590569149752267214631970396140983802182966312036121801725677993044241433408204217857806001573256039836349024641376437729026655428770182550545578108854977534852725839119435989750590807686257747743083879236471002000992268298407721486181861209551416125607704705289646962082911210313091222487938202536148794990124207566424581992415648376159279120012981960213519271671395592915798323524106184960560163640322905313053650472641597965709243989435212292712902189094223717055986509395230650170932029880362269584653681200933507737772973912051515448524134262873930216080051034325908441282086513103538956898591984532560680239951804515623099855886693831722722415550691154139802181054342719524978258007249544314100469998226029201443304480296232046404605900651299243989279855200855322917500178227542593349784735867827834890642149979153307400513616707120883977905374342807242749027793886589685758106351552757946695759412511365496420369671930997760993675952669677932175608629975627024026489505947230426305727932723855184198795759091430425826392679611691789103694423984397374230361808083823587903374366261062421550166674411232377297274914794660422428493912298453558998414793946183192376358061843200526415595615364671364554165303418965739802153958292376247964108003892243094309673867609598623863373781520495616757493307665357563208558906030465575044677126183972160161369886240797379849913591378318325492473371012936406655877657753977678880673171484620595967445091947326898818344992466137384405790868850511619194636618757835702303717944509120581924947683981844081800488304879187515633910091144607214501912670283363314003030901951881364632254334764651214281839268873308765528362035804256493090712753203608817359223732664065841888526453787976412992161652924714986771819351646820604285012158139076180634779987881543989427929796228628466020481752394836956227226691184361811445406624624521598512956472724714679055096476565075283909638751915139311817271599252902655455519668645824076456346618872057313764156477728241566893961731509343403785260981965345415284584158110861174940009692356212788259924271462029847856691137848401230528428343544743632665696731769160603974159459926121029819941160293266404730521101840024222028482475453823389397517669484661015895180923556481184005520477625827885922790271527548027689344730460103453975380241004703678110085116757150161375151078860201100835341087412495090735976057532494086761735183619161738774075014100491372983313206418152530102875414710986126961001764032527711967898616284412975552158532085891601483346180606629095529751214999040613199869562256695802473766177352574568284039551395054393732806411310238069934993715045332001909191833832801059393753921815723334047023578289470001501380121026308448666789760144645868480089053114752344305552676329024867067300978421576512147021028445341686511936518131012601761629559305479497253839372991876964194564441426312842792176769741192436314436171573621517191866420706919238819931449588109586846802025969322867634046959445205860807077901202707163525165566105421849647353734219078447574182830813121435529213254909028664374917796036606564994150155666436465954278004589996556988013823142322679576092065271319958932042182224504364933972461741841212975925011620516424055525275884840765446084773045918911069498611686554515443877906193704090722725914550486183775780045801132050416849064099807744981968110885508564165659039036540266262861648790400160597539164949313609937631695517588227611252792162500158392735610141670003826549001081548491195153114170766978126208648592172748050131699734655082915956130905671595692715696628134560083983265400734988224195923457014123570329511257108522142684162201381589811374734168757602126645901566500073710065217764503744811453741667957785701231596512417953841438260981831219951003140318043249304033955926502775095133795134474699820842934464264317120316392999753673863258988378685742909468200937282622737041477735580644869353680846480709264558626559886175444308698694995668681174219100238629370432431732708449706960545656830012407722949698858845970232877254629567051408724847603713253143324985299253635615208336756387100851440479958977450344633519386047002478461195706756979724879245401684202398083799618883400217217540085451244362174266767278166436508806159863528230652901946235852936734550919128703335481617709739436960665301659610638162761444767973148311728022901373211588634880798772143898513895875630840696478018761599649324864866807497067749756135499065243920870044746970542681852186806073817033953351745036522427070734374267387663073532503733105299944967693912219460242075854333834947319977148898632130652942062713402304676715846718915253298724453465503351393825821693163913961963129401752871790091119825720835820406748187633748335032876158282291317844029578898128983778516335668816971960286007549917257772517101736694979919066772967449440421453980463816229552795857701903367220144277207232071667241935466470380973713932310585903244866205019908950769693659966456864279804426807924721505775817685987648179180402819364856009080497570984406105802748375127445439591173026782002860135688224897396451432028089845917613180158019592658079444979610613426213247249645111740200042763717520803571904004762110387547165602849680334731112129899034641113788650152201024748618009412449044029934270007573477737538557415303725735728946538021003342327956448027613272815282499974980471863018378729040123704427771886463095409340195775344833606686304912455274380483631577217991782511224876111694751895616390315420514143049632536434885195236227017677306377084693198515455145019396333977952400472828501762829066883273198718256101637038759406008846866001473709776505400207638896463019657725414192258969180464925904207746405593990606663236534211064507501654165976915312036668917081199467219928946144393663226849253775572243793624139550762631742689054826345240020731726273201586555792766097057442936729111025684817581255624328584660887098509363220038199174455115895630750001605090822405620040597494672391644629553536074350927527489221344869426474723202684670929743000811310695730789769988689827360500952126939765464178387072529721495935664693153587632119210594780069041966682628257412757957709460722181047876980714648591764495859693270220374928593417686333499889824708879570506620898420150478320800158968846544518840386628192478466057985331233608851184829436071750162329361145359164170539474636433122940150734305233355615746272510857552478381955331190148810361641120365865928854292116620391346679272436750084287573251810207809665943912334548349265511418504670116651367996184413713893247088972326057360498246737307809250515662514839412788593574898087969143511659479399674038801531275563268656484513938986921613411148748432001787560054489573119453595060328248286113903357437201085992284706990293400837631598981304420366995570813335578852501860865035283596235802664354012274372963794754851305786169414771925357492003547913569996385663856619225864974355147913363682949603196744704127291613666011161248064572492301719766776055059938400499757056546333647765320072224831315274399253279635548387672623949771091879140699606425861464359411404770188388096760763602632133780399315782807540102244483963206399648539788735886673592763013722669163195373713416119106798237370475190353145956372332197263627540591732956589533345681958130575625986294748677261305407472461569722127820589087408397856470450980248139789473323242247222027671430123792477396715525625574793400089522790519753709428629392575049140049786263651696381709757949720872851435545993914470977126854155697018294552608149379321940203009370748448878351114113980869509689468856913449514039557992878233261407819667346880144859508338309024465302318483440287702944127107682970671493236351283867297731248677046451335362705347620746321213656071322952268230666329016811999113964042881490665377551928901897814454352101922703483386652164483108106130752958572967310512102442707842202916884026332346227066360157476647753425624003604281338062901485999961193135663539234243121063640764733086890023152918809006726038710857255119259205832222786651764129008461762923869199095409781249747240666463302430943699678858208208689349413456059837428343955619207141922978295635043562331918652782205828852331723422469386391444619654849767432384955884177738976361672173029163150773370320794837719260694029654809137562893550582510264574741547871350532801973396334764855024737598650776007493452465252620042634170389337821692126420541883460486365036084565583786667684910514848344330328060828987059022477073338347891861737455440352536239416829629388785418088759600417886821511492110722861058457187592590886930274085905869781317351602936600977865700630709331270075807285198441474801266149002087600839490671427036715108572546797116883244509551243330265600560956062031452392645172964482086921551252738130153093434854033528469183227396321274068545819378010631230467468337454504157166710790462292791974232715461835673204278549917232154855561049508394713883467409277580797312223331255073078840701946162343772387447393074844823531326529934964860326207069783995204027514095504469559804063661847200063560806596081142184003592128595729031559521718222830806793031639638204264566217416690864960176659657523317367088461685841957274859040406666553740382970571801478127834647278684632162262263877826728848626880657733052577141702264613086114480210394304706208845879447560604609866849259381821116962098303065186269440556450955898643711289678920005510244975256507684707060599873606835348300398198987279436418051899365846211983343120085565925059349521641162781922265088798655272101719519249602225316708612489594552845674113937642126432220847508041723583582984777374363601591024644470845051761989737530994029068888433551815185546244267543422785401074277226736895837370366960129298604733989529553641697101277489018655813282397486786642141604555571446885496520189429875278133609998725067329832541850874287291121173155521998228838594856244867696884152927685628795706230130226429406725768496601042836474080257907481934416468219163142321338570750664955375914056241958353115775250673774038363969903826635582448809769793343390563079937523230335871011027778287753388485203513557932022155075706170231865969861686151844589951748587219140423052371705919943406616041033253379747380126102637644551624189060044652106935448468970370786178199106138977041121237696900444044569621735505748476772857934953070153700829156037271509029283568630604675040367782355746776953933840796952658234789889954153122822169779875273838624929425414466789369301733050144347767786988220599156860134497946245598869833600525324080366284631594532963180182318734554779248477088775066749249326652906695656816982369669350984485412094485219038007416801142795006822088824395872473775839476488972108913618047552048568919834541094797051507678358934822104697657847402038054856769018403653978825330604435804523448672705717145188439246085349824160001842587946407712268238752421100701784297284981008102221538952577243421263010290976327977219040248830522984020178230099419069973492583910073056360032097577271734948453298353348595171935006219481079014794050633135247368280672497515412050143108072851362614085786423501911227888478646579204085822065469749494643816244780503592912734988682012320933144437197125766897716210060370264791104293488671229516317578849738169423930354478905214949035426065431992309080135667349969231547323994581571583294214203420275774119484647842316416450047230339031475027931431543025139766656139005672394914028867347247492231607228317244367459083718642481812248319444725164632637235833249556792381897646684129676329014395109212248194875500471087404912963614738674374034780464376341306332775790507611354198253205915142902630921902151442630854264208259850803160346921179409073187420543767700240012558562166149817963217195203550005844713047209893381930595435341467272623249893437699991936013934574603031970746498144123060586436152597490872203107530427346957639372370518150481104384588938178119714268638917945302699072744392212108323662957757754176759679159519416116796264567764773624711376122359893668755374048547119700865370546961783834937516586444740968174404552603540945373879253271868299780804385742190612599974522167417126506109145772532852891983875703472228074314147010189458075937928901448728152307007145542991843035481973814339795654448032346013393257788201557889446310267797584262488358993345423520020633753059058766067909217338634080538379003554599932820630775473902924369577199381052416298804288973250310017646277236680586301326765046350093036652189578899334346778136128978280084220299730015986598962420953191452287270224175331332250291501705725678503738711684178513713131328257755754779317357610427317830398290094668205013801926312061855574906586865293612256938714257274241853923626633071771390767076590538968988277985771553256268667766733893049882050628805277558907802442342289532724357635387576323161865445585392763120469787879789964835000906541509006594878188811517096702494985258255634302975276031972756834605282767266325767940686599616723658884533759440436860044928919915900046834738335621644598967648499041280944157578701843378920989903938637941302025869463126669543863148518676888524163564337426218340925609490639268963808005277712663091971730465354333521026453386397671843183524794807387107532772431641091469865595681411191336282981655811508438797858462674663532694101680624784856118184128391682825767823311555078954584711471488711371447688247804339166768618785706830330601587891361960190785666889848024890366329343781754555787921586985897941410427477038881704151312800445292554259279959666832236824275769080622112268157217000300820245880715063401235506410433242598585492584839573702369382768269021978115623949419961548642962530264086694627923397880906807918780122177209100353290932434459755716757012695103487852935166801251812631965884264581520466826546087018542695357297445794941359983304391038130637452074838357886273519606526646771390852879183099592951953331726845804912586066428022640766966300280491987744003854250427659174198572339405281737192704183957121800461284969999010813690559743631384522146475244422721549530789546885367576193313426824028869044531491918307115011553055737310859684261561583881723413342780986336174579635278119639007300955870866450148869778856003677063718302615290151836811297384216321768312721578191961524960284490060354939141184261966761679363982928674763022626116578549960017838054940862720833998367058508322117725705216989412256788973673090201357248288867651928775399641776303045313219327926227848661013566685363534698736559722671025663645520854062192069142484938118109625273150851847178510477864694369307292506573318605014313773744210919255270214895710617997098652207665975009953520685946680675073804194109062703364718069822587787824778955595033237578599866169529890845638566516697983361577199111782155097666226888696479834739366153844035443277125063444422512957131881279780755467336140700887455649958238217077577820618491145164928344322916682834838937694847891028218584047927525143470662900932761922201955395311309597912536506918806639894080526432080760622058220107961848840340691710661052543171470404860358505375331684190189934466847377370550171336370181769456513403227287939930646710523699150090083827422488015231291279611300092958297131212307702565973246545124580378512829747577517462597415839479843859444698236108837808354306265974396483303217502034104170045444057309857055447909791183445871101081756290791154042178418095697267455141375589316977069902168321318240735832385573736532966874465145843328603228437656959642953651341592815802982815276810393593576238643357438924425607123121332757007839700509392133211705132416131012353536176197799919950456959923942251927490411854392368669583835344306977397257685107133143961725704786033299109099454544401592779459483470123017043720637929416782912354650216040624663731064647932763788892261432829090732469218309620031402025421764726126256010384118759559814034486477949923592989805396207675967403751906243398633664534351454818776556871265715386670584741434619386845813212589522101270187545858487767580814867887315790254784099658329037540069811037447572857479191272061637872423229988297675585250066326403063510982687561837252698008706675548928897865601570049865675217041098452420634799222521442883266708265709212449729396285583487465959760898997193060131279937293990604125981918921853971928318469082770591113397441107980293925136135282382251270071205571607014337902008743104653529657224061650208005929023515602358853414982235548227904132200557132604181467318411559790134771966891796923189535419004897458739212916556374775722723764941612976310068845068929506807818544521844555543755433380846866161011814705890024355094908562317455111525125831406648213272871055021860568959846951814317591966082593174915735103184574871252259497973064654568252408852757123726420091335108961801190359986734900409155904492313665356313983561487976548664634819529045662097845672184919935939526894677552814651213071606245818840171306421462705704716055922401300256320942023349669603019159446364265596795110046705970784165640989688471938739539716423622448438128958677944762490188513101455813378607596696943220775160365589623319536685070049814764157051498090326812698365193972126581752110605970149474213164289110548265121810753359487387413563280311795784269289398470660920559472238575820091516149225767862473446853527249059714173722533326952788721707255991096797971889549019956179901714852338745631065230033760569529692384424484708202668769610834470012731893662705887913861252312142713512638185230933664877907066272428940727588879216104311233082105815576682293620927712077963310890380324715817467920082811536313407648057377642918130712007851203066214899652152293818333141868411152332779843463910336075958871229317036658632073374585375774934831612378591324649320176257300527201791573353151472867831521065619261621815693693967173255765416047218907032792595437589620633215872701291374447607998925839260745697657344525216173536576171410906042229447802749705014736599414934269284911482226645680924471660104149860105749745896032747071042751606476108599944137477734773370132302458380352462553787739759666834622337718336306303226385053545699307854971916484965888261070060869188575850336817410881602677536018464912100855835285416178562989821066077811308076955096988146672780621329907491216161402069593274941545937905730592989145973265238394170299982380051774791251569339593122976008834376179138493460064279374772101895860884816456487498583752195848907777451969921713586370281166600153470323610154566781743312643091114470838579877067955062242387096035070172404386158410235377573177738145718084645153178379689211054796040248651993507069491880651448507569384163192515541481913010353508040673306742326919426247380320567633581752045331759245832942569734938793396763476550580444798985036543274847279671211133320720928118713735211858704576115814455304808972732066913265447335946954589495612503420256044535099420368090350981403692313062611638752111377735910830860757931525642742164162328169313198203805495049804231215286057125168645090910025517876332926097478324461948653841919817720733384523083997798482095612930004168801347753770570724377141527678568405905855789748521446312001216408899996861137053000521135043128343199010328715006251699772087580672292636073724010955571854086148732613542684199465860017699124553999227908667869051277512711888310351921230316655198066542345362233149113261838309674950495042078000758221574807999061171550925158338621143307904497367064619135327752105129687817184070658742268239603411928695619718829820970001355434555025708082834614738702546478372205665558613450298056684144901316370100395923224610061572050960031536062139194320967125304779843078558009791128973941912174844856924199561493377081128671343256007977829671739713214771081527790983634310496774649316710684919710729323860752273728749707860475456140361380084785424320374968430156937004826334067124231448472446372153131695995658145651527641865460175856452842884560471234503252793245716949339484845519208344860632134789458260254088248898228123477851444277877968356635305448213828623833949638059365131193110441869191595710148371050776962552025436682009659551776900636352387031128197445599457447379102708551425646921877812670650482125163191171005291807884614614873700686361057549453278445098433572145454308271722278508888359226710114894233440464276073770831065676367449537448540992860183311893518553503321974501180369909770749064270188415867912680148810006999832700967018741234903525458209410572884671489892792850301122176617213305825045689297379533508583994321328348591455070687956089385421095743036776420214499057909736594445288647749598406234184680871714546043772542593666095938506239284166975669158408634911719725286688426008984768980167891664058988992439900077571266627296571316990695920386154362018948709945036311536813773441184087119627099396405437494177767451172615739594519299764778900495601010395744629801020234722145019950767645185453920515151807746933104029600435686758219697994938149241173119258668004356187156159873118551442802889641919690440254030205045998934844766962882068484314421331682444658742317102062795308392819048919674763979946615718122158915615953819797487290827705841702194317949494571080843911743721572893832829768865989346275540055585176575323225413168334667885582017969881881639158960837749884958730343654171928044984361799865328926635213370015687436438787338777446425503048775625129176231296048090067061767450843529285065148454904792693025492878243452732140972932122073577125568623177619714068842517485614994419570648784002998987197465847762471127161990266351712537296787033445031025614091373728302808332420195147709270918610739060084452138993046456931446126387113497684595881672472090491105537489181310562137291168396184363629937633088679838531478204176406443633183010435519751980248325181373565493855650545603713389322783266758643159041734171322158728811055091183233910854707107070653498458168853841314203132801975694871510292253351986524176984364249790239671507164318747397487704456802464374756734228728495178539795189972402931341449054199427185991792356696581866105063713018040049199869655211588501658945507555349314430441280728070836148653398466896381054929107242475953312399247574795974845708030876422249472651932050188613621602260654745020773733564101052376004664419581077680487511240606068573905708932656787447090918956768367725879061003237114688054032977569443079112184086323074031152650671135393291723294656816856124284923239607433078555683317719000002400213113081916916274772021201216600104848095634988128224570883225795313760355486010205940155097423361402081160959216833849313414753535038977917210930268881111107723638397962050061234591466344892757507735752344728690639117287724891776558517354990416502703883983600700212806782380773406288621717676359086148053421788135406027178358129833886234672591000685216403944000912235212132480228781443152915265658002322251843715198096396150720959132734496424601829982447061092372666715946922383803984012688786446943338311875104001365223354449512546633305803142943219163421952801014543490508215319924685784830327851170673316901284561918723235204451998915803133762919897671493228271648391210043496552054788804168900043174496160918822524811152618156663392025375003122738739761946125341971832377063160808118861723050146018615983340645585320890254103565110147968657901688658646898376905600048051157449687007985279174280466524351688947999206941998103101184580033271420029456519861560775128150244014269043808194323792102477801118611436771508896409350033477634424911489981027978041693397440321149959681470184876689989976145910525719705442133736585810589188972895635287698894534005090038128229096447119032431817040939672495578729661515815848751377949671447491013578913409028477817627294038013269305884835972635694142938493764353000721550469208177117318052038385900367367818903612864761137375022212929893534134915332690837142059565704993714137004292005951455620900713959988313152437281930221080809595628982811530812589215554936091455760047947654346409846114503668931586166636809231335450508555599491104197172405542619882531027023433690872910700975472283994221169565774097455391663698365122855986702324602488856837189475639232950310586005815513684123053443553516538880923596169140632343636809292089898253505679666741694998353759909815210253580736766686449074094928236126905746762585000936566793197993439710504206707275751511439417638418273947949417663514775674491545989715556354355137729740912458390151997482863439155743695827967303353057464013299607129783036493457162349107669887080596578727229404965660737425862979081028500571976404835402875236022063521691100677262083096130661149434022923003341952119611851790655519121799162031536154737683049524697614592036285994584137944333837554529649320112573206621290688759072827466583239234087369312083049193689775810038811390733821816445524888255789181669246009616055772924341800838153792312089469354777991542789718566124711845527706684055551228703119274971893712293535226880086775436358258130822275989627424903951885479743183991573790895308614918843344665294520275903753123015022970703683887383798185957811518442363284889145893694988421221273344650531218222947739959949220251918221141869151422880676658739716903123467316433258587951756750826790147193307232632722029509295594883092486150364222186439979683510024682542142409046362819959818810841507012252742904499436240938595284451645209656611224220213406625490454678939051880056935545727849459224944012759319795271038314040592824948165564969273810935120942654407775191954791435898545367195019506793072322284866856636061318802427424137714520801416181352142798865951112811379022202609392294310717084300895785768649952110437311756676401788935988958911431694165887587749356491698250362615833168846871950553972089389435449476220541987855987791769114259496109505705633710010316935424769877708210424576228681219055883310386177699813238915254295214452339379989369844954443028083729786233849515217582133860341477822981605887909220854158993159114329543498760504111596624825529680337488486536751421876242314742697847164965053904800378114058519312032931714488077863757816949498313498616478974180373542683762964767241764834274999721876522524420951635162413871208309093108042085959778832611054451319649674199698286480131765376093564383544945793068405609252873662374803810684726935801645675790863198310090620065702138050892475076335344407629035387004724778422851153235538851301316047758782065348304122520087254452024873337234665100030280197181032126142251788293205440892437870241040931713247575286687867151224250546516586705741309334432731753807846805838216885611842495860120150573371768471201982887026080121850219748523693101587137520360958714056881438369256117212011760156959411922331179681523941982276546062545695389907385004724548084318771514764932754021797907118798212985779350779330115031614268170083051277250684553167524612661706583670137174795876196664945213755967028059541394608844146963865421846314998645348443645015493778764390053307673942531306533650636813695325861314686414394759328340230167719806746158363040760020396848130751051238815582668874667368128689399753228591113699829297888511390596830131802178636370500358911824711886481674882892012722763379410504460687020423593365135321025862645393262600169395686590525170929867820606637303641013276672276720644378051429039032400204846740042835072932325672219646592226788295600605611446965121063534642300628585858654470415137958775517821575347776056463872603425230306588222507610999818181094187194791472959436185505748452201777724088688208113298096951589869838282820126643228166575214099982035962178936569584195620536717170933912143132226028901251209108266351084218145431863650570554507631962988187820578823755493876385513664423430150845008076538408205968531314045792023751337000461588193143036309000289801941206456544957767135333040917762790278113803231681527560733552940847203492588747551506280677046889474003687774196859481640563116156078611531005999963281448664674233172093801821118363875050089256482653780525995792300990584955957426318177158030644730528564303637034555279485339058685944392680986097761889656784822956498939955437519314641915293186758019981549591820173528810668190396459251984512166653967934052471231049594930890501301086204175348113719612363947741164402034673878882731590207675435789539954156894074041497001454149069452851136706109440377632080468575929440591954886025786422536923862981427516746656242735772147924266486696226558143568906739987784638209408928604730203278644744912259165119685823265294453546754694388524987007408689954373644948304426233780946002203103953397792494657816968077771187888496842777818961671158718051324528797437779195964653279429224857785898440362817917601577343824333105787180137041004912856999521840131004340933296049992101445720400423991609125371542949382999437197608176266123835625118585782763468929729891719204650425875119932808115928070520962310290653713022278391134738934239415945948911016209733758629436503249006402696448914375115024611795019808407064341851381923701374158192809097426801105912942433919367487245732332544962114033862510928022242371274661267749515645225481031804842407961652664202650081441169609733988961847221679681735185241402712905483743563112436454645356191119835120994784040586753823115715217889353665262616714795002861858186977467370923569898352362308680205168736715194372132626431875430442817501764749408872579701400769825444062123960787655691134291130824569008696892612477733048150046006561980508610784097815017139187920565584774584422447984425852023444318883681922329958334244950098729800863383208513192990040386953400211326531150429349664574195078402976208956713912428663380772519499144735397445436421014945998752802213465511705489931373417698517007597143365877748357986286705013773791408318946398886963407602774234810620972436219495702684946476093611520765697781156686332469266373091945774143469132552341919155170899445445556301476315413666942297926589384360281787781769339879927963805470583849636303012189132833670796611375807330696545394575513127104737785519379715583237307193057302398580053934825509041211374968931426896495073046321603603914699844391321313373017640494683401288916661430585360915156262766245372528867783462400107653886320912101097450124135889681106138410316677301346340013097337847571922212325278234568528237161618648812479611608766116038041237020920245109445199938339645935106306870492827345687430946265577978660438410311636191408106349687842734469194879228035670962246357741508896654892250972550400817178366762479343238687279337593388336810011204840650733292376882764935183441105303443789974164104010863333147638402866910155850190740392661110752275824157471536666953411651549214055822498532483403373748311366135727748425570095233694676984291577754465761736547741213412668282080372198914308853034021951650250985586833239501680121837881141668425023323677605992368697424315190955893230688898857682526810368724198144102109367223453891538748092745911800686229338305723388637381256180844901133439868956668013235623958746704449353359078454631116696834551139736824481681775200992831693170340928328625595632479708650793171594481223313600204838062107633676568700398153862656450733036576273005977319893931676525285669462977376103193768403105072376838121129952508172726258477973735082047006198337231309890995302047341365399703055488594204344964753310421791532051405875124693816629932761160080785011671489528077137995457830653259505572357719924395184448644299421004066709907833904738539547134541511641841114027204288029156242930997806583813957801213941624910238836690908957040386896620768348700605279373592563911758924054930128119609118282852488157356374846307423263023731292262293486049559365135859792337685398466279932402065250638850094762407324224097670627022538844100090112543192238721405717033180710750371877987370978572763947199622778077338796170912832082387496558610217527218191078476997070893950292787263977816072691543726829580316692659813370544518520098370424285190204520566567005839858952128625127924895642827628742887546328028454521520710450981185188718913292843618641767066352727631952717026104719913114009260846417166803114623979459889090597502054821428187249384762892072700111445703382178492378055663441476487881969850303906148070089702370057091306184943567622946150180903556685598770810886483723609583109205163522650141823231238772749487177112251747723291391187661558489248716052570541439233110149198359041170340527168140797952111465608509633821660955993770596677463074654102827323515264527334609440272305928580685158944803600319510813721383505045531834901336477131638250200569489911037075664458736665427071927743082448332862333934102458392159240068014802665482014115698287448233303472007766609336307937466536508530555785693373711183277038705826803691708609983796663985295395757685503180239823513499342092655422761017670209942749074093154892357024026651203883160408009436707774356252155062692724091072486550258800648599936025267353791775165971351003743256123251792949556212984251028230782420924689303125028346297880948641590584043281804692996317747976237197352255920461894289602012779257927701150818222906769713096563206398659028745076547838472203971503114686887190119905211249517713275135211229968162642978129549237021667112823920656749534590969684489181254065679362481394232877642285709630244188077354045498167254319139988705272748863237547271891133979474258320476422323713277376682137931727057481258693825845563197028824155132726701098144300007648778483984417565554109152735797835377955957286152606470065519266415725333449210061056107498704481315818394665455330728419135031052322824065146500357846036210309957367629937956082056819398197751086760463735449519014837968678401914694934444466121241572922674402588329864165782551521333520887511279068153592760789116279025397835772425742291213304665368705021594846763242094411219253920468032858170535340752926227577454835925130310194098113964733349017936131249112768816724196785170108276085503922360209138535585493983701029341032846359382546188777671721374867798716676813248437290650437106635815460921258329886997648170599552615030635616300701987798761003727067828555204372240601647257512992022851454169843260178524675985179178987151750866690596477835995490782828818306120194197389776748112578357055411949458140772650503457911201089415469043154943647600192900813521616429042604260429348295682453210842532579751485567544114360702190311288918238622223317986926083445085468303647321854271298018948357549436552191786683268398565370675634164934573340323696443813674889373287610898232722949105666697211265131261039214880914633924995163443030477860614964193513530804910498030942876100574230402650969318209968650370054938540490595659543675576592740018457468863751863662342977444645851321951648793604928335896172365846225231407167123814712360996162685248500922594507996988952893741941535018841918777131603262458119065059188410624645476826278515899190824932742520223993083086224466694621641531377922528466631684659327016938481175948891121895935159567940377590838673560334341514330797394692386299736273650789637775657826451243064327425979431137118851377899827043462120984400426843352464950220116450370216698987586997630459970591097623938585298312837691162107086925416604662976056816453964672268428539826615404937512387421897497320932090098088962113326680521316096222129649886900599854501475968304716247588905114780626082773004525947076073533577969650799328176566977759525855942884842421806891465117422431439206077340288993464481482333992157428229651076445227691032405068205100065375026291021401286065952894278365215246555464035594236805457195260900610546446939170533654754812631040657498526867413968741103245982854562919629517320276990534861305689553664664032255638720614835107782822339240757227775753986874962470011294557967824006775041657495656623033006238390864913014937490805938465164326786798883689845053828401444869239335273729667351660855615980436483783015804987838069887149620908659202167439040154667170463062299298533902852259389136234889486849784913400278294292331686990856816504440552652292598417258238464494265834842382478456132593244671821518405058739630986883507289906603916839959554048284177289182347254153934103141398343039929014535890053116480751823471545626490024588596780472009838491628199601150121758221230485043486194910408224343115859182995350610338094507712060130309565135218612083343062343437958563497977463925391557236771510327516790548765048976475293773475353303557793016833654204877878541456977985192737544808631459454522193237263103890681690563404377634591716128968934650774566898462616383561852037377706029620672613873398797074324062991003943325707952429990211054052698967631854644881908584925829296275843545728769562227968582468246696889533570624644064909463215276906494790404601113464827261205016339764050600515064283078665759089666094336145277411778580337917475135770636897249229197437962168931267949439893038914272179814971501695907873172182543281979328084067738057921600422907745271664098632426542649584945076842782746171463476534398722273355410216795144804213480129721191070379629243990256031325012386230408004145812236568385008639234104265766940049051349084070503011379896580466214183453061870072129225197621903294555082787561186638737546702234499761202631521478128545048283558186300669575855644541431778583695526303825254642688141830283139722561045518623681954532753194602560013088293759028316938032218688987084207073798695485847438134475523553644115326641658947898022963462875700018014045598655390348175273437130258855135963129839991356438097397657202376646936894487860119328121245793176407326034481167924649721268181340048550175186971495849238868253161881457035388939381099849909177135640738053291341775737551575931736279768960105026809009481688668563691661017522460093646084720813632994720539101313009630189808380728624644720038428161401847028962587762623039151145304037412457856707778936817727932064923217344323552964338564323678557163978376805748296059370943985655897458808011747312211008184277609540013616200740370415989100415005931799395844956924715565010561482664045677373879138758597293115565780320355848710483736844904390204791997313579311307711361311108974875847079134757052310719592950245003415143992716844899031379418908040771687727041031030183131808948630633960770736329391752789238857491707172831889970100949351147892628329738859272998483432810224616014557168367263489000633791433958615117061445313181944228952922357855208470771338702463520443715524080158558404014739517713872864844718338808263007655257071448735188294789302239799969059296605367191865799772868055786163876647267354750389458712260264438565586987800593328679962105212985312136589061972600949792542356712030389140577997910346499610968342671598548525321610096320166268448159560120380680064191631474058666756655375247718858518301713849693222067286251763245243567773395241545064342826738761316814977014446036403583213142748203284698783995210407923063931645518935500126677953104757080321213851953564781147710580133487648616249387437865388095433620900387234981801339728705112239460564698298133010945798897241112163003690363471526248894404729420302057983071196209717175688604363128685571417997862162849442659384092592201511562197674917087901572427167231981728244361540346991152385533161506319675670807013153099613611853596909255936193326114073396720389246461047570759607467956862273147481975420506998738128692396735112969245557138866743956159920590551135620373240911305454861750168569587184209764715110441717380985876883432511459832794901383188476672483808330324604801428447354647496138228403198308876278806410013849519140493697736165003193572564393439441506500783010891539482745821242854205087807547165697144305450425943280657702482323556169013955159251756349802289837913903826035313025743253899826476489815090355704680889802731895455131325057373372738706918759536385189937595984745117152861016362752684749998144925758023796751040112146349468487385224230771915436070827959240996005763693609081312835559300238425935837902205251479134267222201428381188955331855531929845129117329414194241673397741188604258971713294780713203316912941326611214524036159245428079546553511209298306416689690041522142321054404094281651193822883218123058130999892841236203783312081936362478984378867596441460164556710449329228700209267977796960355532112514335001020570947442366623329663955595240811384409024401924510108638455126113423482725117386132226005326068423830716220397796578875977361382975831104545040772240042655891485024684321725164026234792266732086869066441705600748714681869551759079303009466769775237919211484849533723082350363648947136370164048122389781376234294773300135729924082454842015010809706514212735326186523457916588456845389410996379363342741376189323844602362975938838504240012118616253115554449192232405744669947766501648104109146893152144036370346808676715676771612120331927950168274919199140723295989750623378037241259389799808356297341887090535922384118606852224135279004780281299183585041947448882878242622120695441188557694264080578380789191256346302645965126673981811026591142245041117932519801161404969908718506343160427861379388880839127029672489849963550790615660855731505855697620493837414132699651155765543627050033222281095561454579271980091208630697484070750523347499368910210073732478271202962833155488029604973050689136743536274577869199082641036820421337562268269419206690657197852519781910996400530258754041062272225452799082176944056923623142927402171071275621781557606542879248074112144677174118260585666976681004820254424506522141962422804102257476825820145789416506838872107576061383880606116192701317491398165428660822190904575206138206227399733520939364087138829212148428632512247850067622992479255984459755444626275726435237783169121244718031829247470678095048533244345479779526747732610381481919491750543677985844225017530785347903027537008329756262520261875978639149169461977286375996048356906949656330479750991721429146236575919518187157388655214089776160853144449128292521356519606169659852970326367308607550422968868946527819075519695168225926387374448353324220729527777218064683380278070252370832198586683448080082188900580383602881287546771362681753905952205347181150325522777911556844903715414486927480185145053011360695484921127678585013338588691810094652252458856190643391063091595179203277267580508646644919265500755687356346020448509914812087960582885792604314629982872090004868087219222076245183681962567403250128067098318399197524803806807702535932817286364448494917504566208230826787687944674138795551139335027168292201595542949076760700394349811327434728528288071659762800451777362275372966876153817863640616919645916626618269333167815397434386756032735211522006428671922568889918526371483331736245176713434626066619271489141755900863684294295298391720497134445401891550515284092132945357447030308262689625174202689751171507334676112047208785642091766777109086548317870557302798767312300425785935818262567147869828840446124212837320193022233723861332245070596406442589144434689396750278205246825118403994613274958148501447364437731123982584918282171818825746955498962966507859520058405558756492344124204072371603571973988031242491515356453759538419246842918724814977956026155088111476361752735850077186221284007379497408007508873320906019477251078662528887703288132055268170938464354742106838176263876164315198924985771953172091912499533376168747542676985843310757445198688457315809895785387460968503913855805750454290297434494220797608551355832825083171278056869661549626723233212094743029765106242080659721506942223327689631065862720148136130072520683725332603851124059565197171186423918674644420631764362588962742931191134927270799239311035466070559036215315447574523931652540605306495894369047972582587225024274974229823143869541884309887793087893968695264042786515246802004845902090554479165546817004003920040320002541072442041651563469349902312710949115737063760495374700262346706609807419140159397936249285413404013374589511920092686210837768023673339848463106039618975077273809142955087440810750840156536601553718562172959732557217457856850916873788982269512984242052562659475340929379276534007111143877128088924348523303471640308769591348476395628664073072398172109628785107245626990811882167309000328220391825492232487058887836364574575136471449204412861339911431486103326847636596646733495683223037742448710086688270068891762001545883350941741731237281976006543013426170617968055529553894268644506512078484392756366377107695077101716419918140529843743946633887639860656542265998668083296439006686757896943845504628924985047225719708452422233566318520099218537469518621066805884355038116548341322112982892384476325720617406039190801894633050075312570085935811920245787007848157174140252867250853783250613734021485517635354558948324406132615656634299092859606144207705974977798730044075062085394320227695240201730017067433875277836140048604478230836053270284336101081956418756606948011576055308222283539406113516135909371696755867738102829356260825176794656080727717754660040488013223868743511466677942985590371774108451643847803279981206626583884640822186753520667649298604161173268380959057356637448592107588387357537300258990255076778075689770770302983037640688558161861705308175513973347972358615593582548371082720655619730704240352808782558610904049433243835944940054133602063813633332592844669201842751546977270252986002425938176639462017661186993041067053613125464214558393321629442699419453890616009167628857128462469723705997192433554591224802110425307796000840194186790964264404652160111202735065182597096170364484554902941293170861541497170331297786055265017576632382156799897310096492158497172358523505380495032085953227867323273035212280950172098074325424454326623847813189331281225866118329060837073363750694252780783813556382726674808726011514158297220791513251187469488205292602175301930940384319697690454610665842336997604874665785256878882693872116206650945865798815494266825081337135521830116591191930448390129445975189599402853152862674906885956363296105209499272235235073194937935214573704283933695221632656190272419246570826355889558497154878956126699645705803639667660275627615617269961852779191625583318433858855557585691494934317455586191662556387593047306582806802751102551719039408612712628099245077539722804695698922027377196306499666045476395778040182007507825394220570702515821368810943618848946585056535564002972131023406911896440485558827394703614960440514275477655370402334778327031224045224147437680310124716773478949899951201218309941713681383462135639319989819684929176043436943873361243116310828787008550406638696518197677660949635742237246512151130859336131616152536912363420270187389882588632198055987732803402693426446802925768630769280324451137158904042242899808381278504737312281757757417561498594587721791894140666855594146753024118426907850080626573207891282968889103358309688555600543515424509080055101418388779560808252689619943960373389365635423372660043388202971004456988197862752628808837910715770477203055460989171566650240737758511560677731737070457940723604707799287804577295839709428894865665491189242771055890915796254969412374157561624163172238928736638372883523007940433260670854267345666069737099160061664414813628611196783566089958981262963088930944280774829225261439923437591578424299785635600886850390924123686379708313129139213682236764068531025175446505779578353744579144866776904781136039382969645173237227389757936637754558702295950082728941646350580525353302051710523707108212821557536181437331882560263723318444201372780852873740324351859572818537193836314358418540438260410036963569476196598835519154501860817947238470291284244192338504439353578843520518547139507781450018282447403989514754026497501934598896776441015057648972818034131264265724552034648619836816040288576377017850346590299642697169410691832784685067187400659161796240945793258769885168859177287393111538499487121071082054838049417069064326725055515998743689488196422157226171004368077029681486981689618212910940541889356593256109966133100737158741123618723705342944129643075606881105260961080120068807099301392014350272736511883386084184375341586775467524053270662462485491232007866027793356663180057973359293411937895599647353223522752795170200539928260757653288555030432022980728429610500490969487644613374813396333836918343589911023913114008927119740671507652397116268746171932720359125642928965677814946562541457469055990288939426384117349038089390337257118990554740054278750309526882673497838965349705417599712863862168524878758276740635080183789441485475872922049993664002604809220255066984890338851967814160852696652743128546573346583332178153239294925364853726471482404492269482966549383975256742059776923199606716504322641342372822969198953949401656243819965750550218376379022983317351126286933234032421134450536252612317046039935720687793558842889374911777277203332191823854460450054491367343915063310846774770673065957621198317581651834022341426913893222894380528092285291889897703096196848005472752949773222684037334024093513852633463315424712172119982817416809006398613726467609629348429807259704548193486112297949551064528633493446648200819465937983724424580205027663972749778517473482129876226924934731100928703588120036357865500409015866238803531250858223029599897667189923123988482085938384708901030793110483624337226621528596732842072056095477570577028526451437257055306082332867087104737101962915832380643318848711075658014787402107199560410121018893877468171927047868914168489082166045149019118155981398147082833252811685588321155378201513928581734434252640575872155636350975259486060357881172342906578336676507256207596417954363346004686097673085552588853841898012907369702535313996777746916917471643740674841417018633777212513881454173859292124328578811026684728348380082270241943092689438851218372718289334973883563481732601663001428868577087566264884467411273339393127939033159617440903974995025559605805829149759778708817610814116761625494260809886331712006154935060685880119113318065496602704386764030826357070455545315711137446379204426058043755143003705414423797804282110065958752104059884801164969946755922525858102867414577955773456664097443146379279476814352485621331173392825876917155012097899245029033296605621704754364624673399825482550388150112140150811919833298879059606242043170793476574371198598644656932503191872112104406129412888575833837341758982485989841511889381860322604815329364687066099865088120961625528073960671171826566067584930369384636119475265662206658925845661082977271491267738046022430666918676986296725255572058915971615982324842428221142600615033667999633225780809579124119990838968840968248946481747668305719229845757231187523025541810422001009004490621112632200056939315908768235524239431039486749163988632538493870216995580601119373372345005339068345467941312654485734538047584610588753781324071460399863591006949650949357458771414868440884760695127651997978636034559908292895963938621615372036372481351863432849653883587004855434586981472124190530854698658424573808194070929279347858306277241694734343022011935939810198636078511236055477033185654677855929942320745547173452189935909284882364709746112370610540297149781052349226385589747262091166593915290509843207335054845010990221661076299417846259787320972587656996330676087901272647979589122041653766581970670814354596262598933298384941794367984321486192506232555430218182897092948399437672598479269715507520043816866187972880937286683591280595706737312409399432292845562522670565582649358669385921335978871666938682266708169272291890257621409548986833197825683670084846529283054255607741700600049838552928547472288241987653085375237658408961042151653940537760276856520755939574279107131272769162523914754560671463583319317825129529126123561656346895590602147924942139174977181319899949322732185067015760659795695456224198772329891423633610746873273100323633382277154218397740998805170503123561568078914404295856541955698802822237933616642165413233184781553883248345365755164564170500312777245578388683043840701269889114966179881717576313826126297866519009852931953161642415097690625901268881685632368450810541733793933827387092886523500833889710290996976365166439562912360137484048700313440287117049849296496194679670185964912537102969810051416210860395054023157191437528582373362102703036188430110416588239904034273601798190422605185492328693813178166320509028960726746355973475837787035551782370836426585849756371288608296324219162928389068786080332995593439357496728071377338164614216459101306019985123739141149642032146715433154035948810395899514431041814157709959084449912177683757035983595863448649269321112678860364940414207578793156406348693917672688325618227198657888118934046981286003104948572158974302743704870708817851830268704515774609881475980457005137137691464319461511984945497571272635131364073959823951859978275449622908017398662506391589449885219963790061418489554718884908078211809461042059542887661376948730148955730038126759823662222041584171533314510832416338290770302321844549661161992304497620146121804028734971885412265255918800225216265472328496741379170515835761121944175488805946160370319267002452734857589606017168761970471992560533884464455462218770166178956778209965724398708691233025964505697235223628855043101333194862038276568726820320066983854791703979319197993933072916665672928032887597014808609494649917708715241055556412253823427073777070200000058887878898736364978130166660656609360619715347983481840374591560433755578822479425929817333776490448758336814601036242541344685882406365105334649295626083560126963812907272104586970773818021376942137070309455075374311620375108921092582969973961597380671790472753440745004616176740165358324863656591228204882057402143349372394695028637765328226603921310950531180932712738486090060064141033569083881885207797311738500288174692439588260464600141270478454915426297836982602910419524105381896175965928733608320713455938781473506705174744603123219715815574017709331201612648390722372207855648375446551326035384300256446769805970717977132353291860644111350023698054140210517892006390688180360998529279441820919547769869223462016090442202041890182043472923986515683669486063437740298019773854061421343926353329457182377789823466318446449200778124959215200100329928168314263044929699185345486306626079702973685609583311962927166491911702406466030017166560526412186669285972569215400064569362074662185075824507399309714299348224430415290133538099688764122906857664096358351698671490740556770081410274756197301134497614427331460401280609525704291356041867836047386711457224720173364371441070327186759220775987705483177736607257713517541659220585465510882305431214339369468164753996716084830478848952427539184416957246340893470665370391057394932114399064169326394825752588517560109048059388743297121699585207246249135921851604905976493978370607434285474913525171818100703762792698167572312595629219530775159114431431914082050237814983504905947756430455351824684613927688157324122105659942147099625043332007214898907280624439760735108140891006868978134550672947930067138814759584833972651362034836855278893084028303450024853147618643348222842739352072789648967424374602570474181681407949438951959892378061893622272622546610388132733670353863477291897132333623158583207590948654077325114889877226531740457481461316098443360754432808457633064125626185402262176985127543387408343138287018948885907899632097363083911318399583162672690644032220951511881063595043898711843919087488300334310976563770985878411843602697955382548983305292073011471490070017457818445168075110131546959741339538752354600400283772938531997978048274962875023989209863419795387279106660458514845274477427583358212924281569500380546951488973631450811644399169800155458355744870442105283814103309616943982707943723117627743666666760684733878636136751753859099774697796985198188207872445010629892703683290956431256122037609070198088991335261969913960682091437925443428740060020231867656380589623743932302587957045249794510212433748333173718168856565161475540506234017770313930484772966022505973260244292703360665634936084516222901076789255982667694752722287251802974401220318056104351398288114571813389701461831425393652867893241240146536577644168232997006341018889083867175124076978597095238805951619282081618646335072072789281137162597976518992593135513506474928606722892534105421165564293690410669126464518618610747727972797481384307225159983876070218957129193734314425813551320327179022425992890414529910697683812426339998808246084320891449448657518113735423455347500709100633730854878101145614102483774014932896440191945690493685302795398712672228275738092803260978862446304011387035089623828449225971415161190255007133164137637855649725897076450445499639600622780629162987376748111240447774455750369074616288243231987512570359398931232720710258077055364437399137617303872226219259571592771541172983455776099971705234126750486784299676616583507689214789111298842588420115567006864123220918384328192517666104588416858657543555346912386023082662237082921758236373342141672435055377358632968099903907247974089514217841901187709047690209533055946360428810279590970867236642383212540846530556408980331889643385882482750826017165122651584470221851222321212750208597793743091099140517391757738123674010661921305350767392640945943431334708739082750268899447250541152208374638755010878448623759245333954234206978066878159861828800289071215868878513100498903905711575085688065326417945510667998540276977376651546877183106670824308520352834115702930642072629767108802502791536582738958648598171859745872088691213683355159391377808332269875204072629767451017865502231804611677484106745890694381218874246504863167165800451556734406769598859874368140671982118803053387862770383785997906655888608612116834716768937246006407540536039025571411496529148992231278492256890277709512235732577856065190644268703364105105210964871512076723327111363209589841386584246015943176687311615968259176344229573817585503443844830365307512347189280403192895714416621243728627620769279055796679398661600906653921334220582477638080489961918571040752289829435076462686522274275834555979573184844015524575763884760896822087597402452165260897667907886123495775768166223915653382893236367725715123796931027782226982698795410439581120117823630694849869228732721300636966475679588551976720880658345110297217516349448535312686847245824885614287250888307706963894420276496250028119594243103847850117131051085178787969453393767353479379105467560704749183610253252147921904645569204889620691634450980040729120649425390043606394651077424901996414476292675559482100577965731554775406682968200303749344609720541364204240500860397001282218006984918407188631589180772465088384174526508257898982768485884396261798977689560677540577812276489472128650697452859663703780347110644870608440225604890985020827688304769218391770323112105676296617673613902940031184959181484737019758859760679498081152042692890923231752747877446787529818817710052089274474324438244658977646948224329729161269665254821638965907055967226624097126349209131501555304260631309950602248130334260675704853024780670775512367484871901902233515559747210185016878746169487445683687771494300617639573044936510095361237963214088082960342913145963114373035858621937969734793007756409944754914751217415574783340665708046154379707312046914599427581603745043849364611609452404888754050107027198840702323757901717667525846340723727820205342930849200519029417085244940090706741572967245184047650220120222140196064541730615994397653951939040868457457290350079658689540217652546278383683774179802082867502666640715944638316896050566349507746783128423419478704226641844750177379652143033279853339848596535574945989055442439418902388943798516277117979650754666204074960568617199650336749273423084491219794650983557825462160818034215865903278345415303492157284277352729133029613768137892162435273920751809440323345888945307176621353483347893099571945991023728418591702406363817272279596939317040178983388038356254931017091862481222337671227825193426706618459502620423437539007289547317370087090359091751984046530281911916223377047354618364376623429735504960443996231381087159995746820696920468065022397174853236369886907855623696378405836773613267431900307497981570830987379459658487984767093947564715426679732810830712928226313834081217526325874879564199202638544917286626027240129291557240365166325665960547530027530344624881197116206738838536614434605551225053938847751016963062392557477877573750324261038220609253867445845470987177199282987086644957225889570958965044905806726190850948480281497683224954632354078278226729002922072174080555355442258170556579847231222934200981387753943315218561053883395473172189691613939657111883158266320216881811766152140898588442048039663377978226586779090317177195227028451900253895604438143730942332498089586387950012878538216701491317360360139920423735282072608902656929996961605687910124740481091230257795445550619941587235516103701773863070973162540576675315653678531910181529054054940003319512376906521987503417398588726431889506192386260894391474144027361570459775135268485852837909532780280294916974775149068183748823297088431042258296440917807743611667751509419052472457580290234151062571028982322798291052522532073919675134589039889398339049917285606299772300927513713928023060989875369468339418489819741427949149520798779168551050867856707382646692606645723534159405222624782744411949137774655636375273126670165838463298211564096294792077577135971872809600392227463721902954367509730919503034676624786111031600092376211361526543035109555322993099414597395787159620351700170147252564400183454991432420917705383684426019366419193029752115898091364059508736263984838274437959447850311862298270658315211053952398770154857765508078111976593463755698330990990932666405344985861722338077923737740013424785783223993841086644715071464588509838424877733351528765120722745141590703830480314771258463589998484743717930267866631319271330290433294637092654218438787755179533339904903622749562427365348095625108864655066939429133349216750145734967385258403553929005918080060201636133194200764702426890110534763710951234368180670351134765841043968883316843561230559122269579991274218149825891546393923382733910340692591309351517402810706690265072740181622851777751903991952619863811869653028211040052838351300877141247152793870275997511712430946740421284573975790805672632142244789867713907095237733550632809113996306613461251940226160845445055900243569525329990904402632002432963365498907857593172978891394989952493251964599373658136982545150800510662707792080703126146101086555248512146634722709861060391389110453014243637686523078985342105802628214856035191996818541243584394547123161171913691994869142070165544658804193654120156173054486476318359091493512259564118625692926978438653458964578433145956824427021883755612110929710311443007317583686436108503501556789456967949110444112541526422317131640476843611635704022238323659080046343994738335503416279104847285052963050166482170629297399234161097525176569473764769458410151196579822545463641304961032120698982743118193593408138350502110596683559603147782807503367911895933728952444472918199086076806973725569469031194284480585904641148652419488399823485276488284647585336265544709895201558798462913709949602657794275045677706473161395837508076404670729847669012608015146877569567192371470307700883966778973084462993136375216179161885186278458330775345696041743667709867922503930414990107079253701092520984913413970666035527470369937489443012718568215534331583830544711766680136179313189313026887738744417330946811810145737265502474781290683364600017260367507936128991269732091001387272571247281146086299746256628887588219826360933643870382481084924572708180482337590470033117576674936567596750149996816543587387716989072388978775048078534613076501180245942024165039731342352797857899091408095596766935949092344223899749858062280623501974532227868201684431076439064229371537046421103405587551576200181563183933979182479523888767394895389711035543175903162243925960433057419106044765348320740037635054572418522979386276900405325117018305014528263717100989022941315480131411028262914660788210633913079699742928837819256007761397189900222418783136888858614493409729676320335479804194692740532220420879897240176304610041062094132992330942461250499384314798648470243617406850088946086952057070221891190156550893192948173827439562160125259218775351163668923592156805199989002634213762858171590758484789979470696731116777776276784798773394370744111560650328078989589334930279010126538402847170119946001076846302926150192484091892849973538818406656784263394761729790921077012950045502155793951439811904758321962437564244130478850044320974400271887048414138790416915673995294512540030581374204415682240405574247272966928882905405814147475244931134040127505868199641666927974547482586284007829515938263416629107806003256070939875777841290891222536302925992962341585765603135762888580179262758047958582525188569326512861896154213062324172311547052109555456970688542065722140560969968374171605293783939442966675059038651320772611004064738065759360526844883898995942617335454976098146635355354209758652635847274413100110055491248717962552102945782582998505921848752158692527471573099299677182232934248255002209895687640363827047547911489943066222723767593883288145083215191517287800067059274409799728338970599222730956823392759598619338590845444261802576752379556695319531921179649430309533862033873145258787131804912282125282408169035753683731810254887983828534302777717799957283811973537891384202429759187724386149278564141075143631138447873434249598304031156603119943400150014207498348491451708960742670217152505823794492083796620967066143771413933014790084396788771164697300933061940067642133265600327978059482534905851426273173930832230665085049431810410453821586648454972105831147449957816805453027917359978148984074743155086789929475512804357501248080517894836620932302483140986790534663950265744074782208793331360431062032731058880192733493314162578752522960901260547996201863035592111968039182295862086316347272544750413927027657630660572490913082305795935565814950987126230137066944304997286292541183915074412971910046733132129012275302112262102683922523001101351030791444629981739497620570578288286701044695789118540479952966734248051742660907746014397871177716651741814233775940088249786429999361503193462235832673532703783648953329096312648018679822362447017145910180892437737546262055579491733406052861908372833424591322524928935953179169867484187618079845552163661328757194355306183886300250415406869226169218355712720843985551434571399914647430862339835417929658939509187092226689995392984547150438001285805047724187569710447209849973975493567750995256679550989128793935646930283000817736512332820309838780533015343924056842860092757308215784836024145768713469841553690845293814997819090665312410830187233209183599907482142190930732305871750102380126017942868596485879615898344615403657670412388372921873903279173988793241103315041788581690493613412942149549734227884602695511286791167622449116333408588523020460987984078127891406967329258395094392840681153190873205364551883657773437559660065336015830480659109424938051973259357567235459534731245431027730367864660837565579961311020134670652648999342999229995092632876156695548631636897441146887730124330665536548015841931441730954821741057181743892300320556271082836471457943700779974012293876540990783090310707878931527217595526119818603546379726874453977400169040792883879652100738505709490104295489158107769985379443008327865468860481752366779622862202376131440327778321204651315898798972648460776030625283893776320362718191657863016304855297580463372516747240937152929744232689117107507140796848072054138696418808931614772443551821731076891341299540616105775401147417056463364196415661209927748793189968917101880514701234315580167230873528229944420214640874526621246524363262465896000182934789720742477590363822484859120237682740169498424415622674915151926131875029137728359352374148937562274646088052760005076794767239200381968181874053368668428972154486903473137782222327969700532144256811967654514074256789006136710010244491577116454262621744991777124237430084613309889837209088549826739555103955839721146855123362223537647130104130035099317278578701263145223666723773310200834550854197950961424382955183157984878847615556646477297518734060063503287201601976060440161448655418928073101713296401269882277564104104308766153160144255498342955025910293754335699303330102458662705023544053623987996307035663323833332927303163237769180106540447317277164659171978825894043101677396037183648027904533634800062255480686295972689697579422741247499655053274425678066434789292134256529104632953016624345942861095547231183125299301375004315745719791300571464213076026553488697426092685308486315202696026072193461244942423601175163582260052008602340411920196919621690598445133565144309246646665801475086775295288421163825310285175003190705113883829664939903190334045104663301892852925844239187654458351065387804205518613064813147662504746049894790852563005108756303993249858233260697549645732208492422271134553110623616612546794383750045460856919016214018665046678074065887712165120256855849809639911666289481841348620569905885635709342987088316582103910223937632310969789446745753100054884637949188116727895164387743112956115804929403901188735371869398367381330399822977872591048757686173503872938091073126088647670923122833658719159722855273195211900268991143450137095404983249194241181133954139392213858747844931550133752102136611116166053810325042515229959092169222372845661915573750075979448200348079621804886597562620011436250888297888734474547870783462981388056289030790877127297316750053854547557603343474747400003297186309171999176351788489646793864876758010575306930213008324163636522045192972638266041919278706368431727958293832584154715738859285697687700650302262271674391538145905304992886366072713639238869345816472240939752335746891507940638992271558938042755255201577267892314294409384510283270865734303483170084313192330691025842853171993612678721045572835187307865074226811488614081980007025297955592049000216655026224044533108558990046926922230642849023959650858427397284527506122010883563790790501913315702026542620937298130984113512281468098916203509091226852902517838344301223972492083511333169982827740568934540771718009569766666040647612941185958261344082626574778929497610374552239406624347285502003073764748735698963450192990241184321555074852401706997534238498977325934291341334857735958123971757874601858644885208211261918379479316594165322572855132948999277319636283063661873460819086167732762139512094069091746112748264084248635474037089216591562540327651009927663748183424160314881915644210275157471638861239758140803715518277747436694917456904379530230433298887239066162667792422388584276295483812162022215705590539376876417859972726813612192949633089361461122996046942255889513391807058519251367039191835769024325754443567452531882456128199759936237776737722066720749997076541856853257740969619833742082080736409845720414043785899346472879493232226129072744489076532023774773837630680890219880427128745180258456609979628315759177555931619188953079121816618705221596648239444420011051286338516586311517991740326874492234132877385361504415692918271164385313659626301104602334480153870823855947820993597736903910967590717371738230573287461174418249879029087794021994278687834034157205624765063563855508326344281193868033264790264969878908430916930246839882862032535729614817766929409837395768017017196683960841574428232820448667279315549699229174878032539769617811156496853008424288717595251790835728024042340868211621759447440586717920884578220940845643732689396885522355714192312552432197399642526151627180264702700972526430130270028687121869918323174767987996191262056978196759084700526118093756533239450368698339131280948485960948842129549652495061099978253051624985299809274449971746150994777582106235621176712575715455980615766229017732037713517056769598632153695158458991806239998524829896711861303317511664150614293341562300258874798700755337914793981444719688958776052942796867296079704801787954801978801108713712839413123948361126837523898298536039595481796741528209391467526506740066344338126593073368557576142410603134516871108718694032265428073296032509555642089904890424639990804004283920621997760683468880178910444485470072491067460847747711241418317082377619047965343690310865879080977724781498506500449945566870477722888041977598322564725728836708836764468565909375458075129250260312830776993577027564226067890401220870194874061775812172457003400980759351618171461351622693317193227038410288264119870628450841057711974843429722791595088740341759791998409354308252600727088256700288178061428255791046650376511889753736377867734751514592525719631720122913481079647017860243945152089901158789299723814344572447383920359212749477747868158487644820433271645577536872733549587877503847294141168412278705390573034556372388438721828990944389282990296137997593502989786979954373087148874957086871399901347049552920059904682395272940532480042999573064186280572451758263380650045051866153258681929790453989302361428736495194467119108075034494179550639379380790293253925410279767056599897266818156833374866338082867687964756301685907987591343948881082091741301453940729916265468692981598333589488880754426642198761124789430326562417366264655196821168394134302760355735996133828053462490006034044101406157421231773403706326725742587916804955300370930717287193760368418883114234179059442745454182616707533051550939847773952605627616669744385499300316970773622930485436227422621001447811907674261648147488258336988622058581032926239981436973660797301167527165989908306529182110870272952907631332838163033423333151709517692494236827212795656852886456864197733616307044206998402597150762531857131302582137655201973889370379125368741861535728195438875663678930058918279778851028766795850718877675567720502697623442668013994736961125967376085057862963595142743445412469206503142723684134823782868752471280224128545697162999465350980114586002796843758573030262401698839691490271586884558957390895291821284373606495074682573705036522100081171660913647022081601809126827182177439722013044888083239986705813536371321207460601819970556770716404775301239566365305205858570648754724550288964509431834568350461375121997127697743434781177285254394147235598511734312434373711606779145277380277066321677448447898948415838916137760194614247238930431617507045470882760006003226744727750357777456048894380379583830197641791102401874752065620415014142308149037941435025104902546904713372076835958053091827876539590228841622865120962870980228367257949086636335443338785712501694223167399574517652651760892790134629838287123762260304433227519312026516152384141034049954253156036156801939232046842029954897208775930067942219610556340480220975762595323880510887151044731036071489876164907542637531597248743371711586793928508067164750944326166777576236824911151970656149900144277896488386442752579184034138695237347651271031033522489815533139937581059374125454489633384519365789851411088287574611526753620072979174884767319797404699192782362238747111052343479973581295204454246902680163779251515522627613838301462854833289001268606265003816250981848056686082928455741676643867347424931339522996174753915671392397513544693984351687343639545666445227784202752625366094042361760885589537780557483898996807595481796923355791990322080044952126034090217965975445444867324763094291942437299735891845304859099625277849950256760986315392845758583623760948662796239635314105811487175561243839120562528492823241344187655694089283366932688273364205945152606737885337399715442398987881267889215372435450832236236860286309888590671575660255921708503953079962792501173379619706699068100017240055788821780505756874566710584680038995915604003938080549290311571170296449896832315331174845028764025019628453281826980087624977757433773565091469372796435524334768423143015638134584902693220233055831978688367624889791518012175588532708154550298911734566775369235618713308306621084660952866211966608460533318548162609826596753876702687714352693431023810514326966436607107290212763391070666762179930334520128658266817596364615931958777714211824933016188082918865956533385632168882022573414823650987280135618625957047641169399744986585569946304325196823673232509402969549898621516501174605819760430654736144361777282053733845972566293283681180661030499560242286424167284612410068143415532326105280442002389280443824938534005289438270775633322275131353174221989763007275733969509369121006137855025420755558153543050417164020759136214664030448250889828010799708239620570294227517180725210225688031136820130969931432912733502898561772162235868386805445450665906137666099628464960951333288606215036980148737468435400073127883099274907166492142681998019025188403070279205822687459315391934787402479266480229800613707513498108207817654943114339690441902208185411658753570585930677594936318111272775958062396691148787568106316897971581236164635178712649043547150205729691909226277778162896335071279236459211964753925928127364416138253133767359525211768526436175283292862884451533995260485667340509750980408949340570229974293045329637676842202087745919974887878242481716726639664073008142741943125964415660544450935888321150194207298639445907625576956998018827382844771618103876900461143970365883517189925036880567797623053452772300134837806873970414170796666268909235790298800245155759807313333114839121874610761560125249304985155060469997869848902701057720139443982032496059207851641715081638647667459439211699473833412088615209659560903753560523472631012256364916799249558305606516102469430544638075901283976771847705122965775095813644533185527256837369059846989410444453894073134941930219720618244922015522395129052228662267839823546739927846411653479200782955446552980469094105565343220114567823909865215036080940754950523936384920626303575502052764699712687676271349660396063675835189095099866026454416448459057426753521140218571741246153589155412120752521597553755597732929205301312720256923091753825627266512166175453937068909538615327557291067731102197104545443357332041238043146019699951929861603022576875515334833434103231713279435795064911172837505601079954590610488784496033692962455445689338552020446693081654392857314293534651002833295361489787624295099583674186698412428873289435440647056381287468269726066242345417437454379588339802945319714180985877342352865853828493248434268242790611890458893155272851579054256099294031225370889940921128420171102050797779455468874193935953010651953429288173281625066593610571153018174580466035571894360478313820140142457016424282390208970562205443130131257093419711306067164820362057764443744004472093307807901570056874422292168872234594862022824512368006746354440772163706786505737642904298523343955748862882870445081161412886964710932724270306551842903865157992945045057365716420528202195943106695260780718180238913252236726806406081308692938047257112272032979488319226324015752251865455665933095744989113159743779206589358420729799095409390453041847514839410125500443418891849348523167006815293558124927537052589456497538880886521471415853822841514157266447326454494010845443049008215701872060718915260847796419982629020941527670921593196123142025308071065758589852493612809578315639737859903912637374863176631731762593503372793022404542529746046072342192698103965374107851526063932162704345662139688755710425385424673861545493508460098599713848080820937676178780063599029785303409815624864677189905925304691146486034990369057548844391723795897483762144852642213439859641759617924715651403139118057622184348131091479390370321487714827969688824961819327360934320041373347935590327171961846831583934447235418159084373032228372259719804335224912001804149648082500140338609263549759546772660803596533104830511751593697016741049527512246008557959334039728251501178651576120376368467575610223572998678646777499317321119707669361247861883846998339166604911679879876073815780803982671724124933628356978000562420338457211118695595754508172531511799115915756454430721369996602681722516869976829409843591781612204166985321629092761532801063932170226189608300505508868738378993529967847563933780066860588966092665921073258864232367659593983093118909781253360450383006990161552987795356440114524652231361613509904381409117644377725386875973326766049841222570691902166499643737661019521704090352811064569514820127456437904920017926694179939259711570789245883388865455289304650111081122554334439869508349685463559887897091153587683653416233848616164108269367616329136683332297428519670681668485122060475082531868499165396909790608681769934663720011817867786373951355975071941564284891643004760172829661471876878475736228742566206793854527491234822614154216438796170521507242142820898385071927626325922882633875221987489726502384030840909083308421634460253721306310881545326744679959203396656084982019067279991336784825843724172047175560772449813267205941456194546542815233267888920594187948136443419707221856148816122248642866295053926261909491714610608659674459105891530172737732547209171892214056160113870210739465572374514870338025419656875719337490858970152269462256257085613705007813075174208109991126596326026465698593741551028489612989367440318416946889496028844332914581604876633455204641295074419480235201443061342283749413300695181822958557586437321858705558598544091835105210555045531226540173810111443105659083349719754017249769579895602273919746078925218971210959631275944433956451189068541243488333623317580564533625687095064367644094162654186114280156361022011695154022146333695619805438439311817001094048284350135729936186371040867987339365911961646558932286825976637634590019871261007900719899334593622526796716058875726621733571175345738384109055554821620456479387234768150347746075931796860691899617581848758135236420613455279891594244542008547776995671888998174114666748785462361945151239885616937133668290056445657934985949292990603234231378005328205420165101146938612830119767005574211196298063285436455755437319961563855775512336247232704071116818770001037737876589171125270784326590532460362103922581790942232688655619202898864344042485774581409178261808338293494136672747331994190328325614385563412956318174247887608544123792743800365244123317260878315562048121885915585318266355548429614830294175500246298316151460414136263521686251299083161373450431392696047183450637018241741697308589670261849092650927622722137626627393316417050104487974750153243114129687620170954535799733796653610117669282376384856019332312684137698089633271167109514377900960855278753053198572232273951821060872709416218618239373345607422639101842066959976039423372792693230717896717965990378201648101280464815356110425381554154940240662928231840965692130541265963968840392155365557458486188303466974465592597948851983265722729612898448238132332487899796057651053244003350417264749019267088940467729234516688548685214677226651366116336653626706290427429899597395176931013394133054603535790600876679551822794178579714353293261848101024579511616361450386152816630595777690128438628038336512701546193303828966881011417253507505725489812671767100506723135468875908203138345740497880721247485983910885411230625581895681234011436171971651990529143108884329027048740247288007417195447078263352807474314275017726526750089008001891338010707348093046809656243768515058033738390160421318490762516583566422503044482761153605691116260156606575512240573257540760033016010142338095245226189217047882271745565667459842881917274243617782302802716488040294631464632762329183962158874551689918087399917602983215049478894558658757729302027797367530423725196385664056687188952833183307269541778470454183658331870426599070654924657787800663647231528253301845597715331873353271651228917246938224575187684984383072840991757559424877119464904000634029958416010954246905163554179500164649250286526651708179027782122703783317820208415298224724259049100751741180193474217773854042739624474195024876392838314731823290117487315359397821209917406529634019185537943797318705064382849525092153375375174249104260221425369494566758705523730719810514834005557175273089759248966432582721670889222013661598568485680935533890559670771070940942639105733275628245212617709309931250648798501188622320532531686152180245507636455417417653393282905238156167171521835379174555206237488767872688173413851045929318204930457649807692177704183693026280272129427496907739255488403490931784107423888430210087155437318578022412877756154591370452730596041314414427389175799673849994578672123218285102967340080645245308478445912079869258637637887745280972810613531690526114454302398847849169494481758474285127473840418636275113910885110182277161347434781697587345411163330962379186760855618802352840871483150110238093461056411364056639061644341644284493378150839829793243288806129001586518861377586166637819751922350062884997096646699161263311926590582416908159485410534112234618157712187137707885013127495265099097563486500548896343258756159972458614758382432595232728945488900721414686704171429881009766774354728915286413815348137730669879874910510264719417176657892300120287968319844335233758746023114518469415374415595375519914036249994359622372435795958974818731828580039780228431248630417884901494242744871737598733116264789470761006004646531823316429272499077660698749239422457117060395062391485688357898261326025342363541625370359766191678067785061996402493251642121592301795466697494543460903731190502170505997841327909032129098502519414143479025469041489369291875700977736325496965768257688383552597636167938739914147827788945125796544118554636942081234767426259590587510568522492631588865819801935588710001870729694321737768976472339943150947675327563908229219743355175210916720628747193459317479099757000340639587043158406810365034983782075093060302075759759648654250828883575392290525548564203867613028817350469019517143798255652902332880002048514943622810762393781110917723224824223503105255758630975484985983801026365499367338008648663793911222484811601655610470993754087422574818736138637954843091871168607318085864058174876072273565434561931862840876345989355153163715661064003078800570626020264929762124365729951329034931963153799387808201470143048327765166614335608556572662814653753782155851863887204912118555366062776462659186255730498361038201485534130923805427260088389599262339236580601908461943392068690367686417356143608694393834429074149660874973485084549546406231496483187179139026674291254117791474251588074909658367680487751194029709565385347867535284714617880429789458244684055271420857232178657501769292927298786196800765271135328900736190929649968052961207446877261132023771880535323509538229890625953214002332092736815220355955974904811196951943167778122598743666057917966848724758577373499640560199641329134965655045239610585708838689587929952928044600235509804768791075540261771148103592830418017244099345101895238653103134170432156918270014273933652736734458661152595089473535463075500611517705356524813217711023979109607168061138957480673358589796987193244486799655117262771000971682739015398816744444591460857392703966683868633352809248126298588074410490303540241369028644542397174633640042231583473195322699396893309393472757364149489301137180221215483433216698174512973122769674326326048164219415945384290488358088638348831695137705042173890190959178866972629802276215651033875406075003322453495374839023710055898424352259740928638546495519367472211521253822603504904289760025621092848298085467292880793357611443906386728346943044504860437696118223647305974406319952554200989844469644424754639352903803642082147059831420839947936802447587050468816354799968582375606039141282853453624677155637654510627131093554454616701046330750157430780317787891034599961289726891331027155037234907074753857138829589578855445105228225387634361666430474237096786776604104412909457392878597962228347218809540847489862685727439271756944481199789384688869676077219171112453049235852877797385835581556413584511678110261615668261267005740441585707416230568064862414917873890188736483985822879011575750548116420144960492037775296021722893211762373324504368465487654205075344875730794895054015113114702070220376606736544580923927621701427284817553086078960106647755441150572786865286186496283088872440075457699632724943428510047272613281291616057210544533503835215508975730105201391812962003149651693205573774491246263195860985368114280939896838207618546883395831406718035435155121943342296943337103399223840518549191915078430334808845407787127328627127967262837789102402127264152410633174213241269178719967995377835027955553189106674842515241130180369562339599853237390784675364210694278654583112013609869697385875946399569112490277534368412505643412819107971584838224885839728972228667401458037176905927392144765672896274732889481149490268419192600176210435245353497467765093587491704713445332393791529033466896280901720531800749961683928134447626047021765186339552004020115659459159417179715734211698105906969879202970173254987399341359356101719368246533623696686914085818418974809164422738043078156624487184912229658358547418949940335502665235346674227321957826292786626122450691993223898181107525551892537278607865294974894363665155818696318315572553024654806398353219590579676754671639129043786552031189812254226799037234939609545490320314968591373300745249120476104600888697858526126384925279925133691376078323330986224863500261047700405418485550267082762990638642077598955662398339319298305177111637862152105056136165015694319355058426349845507819461390050804402636315704897556192335372545201417751649987582937292490392560481790342045392851234849724916511141327310847228544737762247125840933418963563901544010909699298290846548387372368739027163286988986088216359559229577221918138208156664096358547869655256838393337694919703957123136336373268938954928235377336554215923859144442451755495663711909699072577519015611541404323864740710573983980597197175286661287622595558576988775925198788704638607465592343596567690410766542188137522900787343357859881375028056046924211856762497173141802988275109002134879672836296155055403010907300262300672069268637344396777014788285846103489048362237977060739459058676253190134503904771117271819044134168946857513707691406711516670441442224529854343460329484596258586855330272603980727042618557626404282621321053657104544832985033241715070564378724537257584404875985992213722051091419173860829288273491662193743811501370324393723996181391415018116562052192051467393432214248023549707441229557332634412388660040377657186485350233925600184241453427036542825134006745805988135868668637699565623883123133744652092335768294126514791009726190268128662057742732943365721254419841260897162032662421340740704830840151860503904065051699096755332102342117437606424629682814828457090200819905224197590280023479560648801725500524985606830965559260089217558604713445553126264180005095390175706740436587467491977090498680004842983915118485791537752582933455647761067679716671991128348136287103712679651978740260475343372285172871721729279554732754031794048584446669226276974117873117248039330419569472699624900235054203120555941940100462784116235269196050251553531485724105894571034317409695252406161859647341386212369410342817998988201529262302038060397478440777404850676986746178480025103320796667424712102693461291468393119392565152697160232033115114266422685341623448044486268162979149138406563839917894822039108362592482066301003224627105576782346062254336683820459535160670466420163095708780141491416869937349251615460761821990587503400422862553111586224129761690840843961966756634967514432460938613612928187794965900027795421076148059465816213667387786496170518002200721613086033992345587172568006122499133542318399822199897652718890786882424906201549797069838786045578085562307967143098097646534352263467954452887054317932280370009051087045424021095016279082326855078376443642886075476417131967569371739058458444056267334090437126139929171874820383852264114708353665678645729456203181124439589619133320413591210278508156726368954658560525434329157520566365980691239801623112342059273342736872083434306393050990647436653472689477226601558007013593633453464244345530839975082355879859665472099770284385886028767308742873172966437938963743886085378946345557635929661364260128135639860744759145536485295170298685337203001290942704839248923679230989421783687954388682947456608494615186691013418978307434343820247613930987208615501891324019755360185948064233166982038850314209864059352996178690689191906596335882342875490140365284150639105426526378630783627423762984648786701999226165053872569414562010557626097618935812339675854130933254299735567104604824997197596916044683543811429858317233015519313274657107553150064464246202798687319974394354584436960371744417384833895939521856561371764767153706675659286040263118034077239826202549224793299754204933181726662540175483226342249872995946783233837530643073396009741003512033944189525377733684060523254366540234919405941970573878348677576341370222509385687797924334542184153533909862148108148948756219306582015258821000228605305525663021329514314475610558900049790591827987361256134145169661337615551000231276699017607749620534983153971907588446991141186356601616988384420078114043418326396335055765510540854892902937958269604308282405945453135353151333383593243332743364876310723848648795594281743862451944221686932318772893759881531269291294884350594942171194111655279403990275760801724275544289762637288220664672151659734435268170281422201057258407448578897105726292126518646442766134845648345138884539267359295643711564181737165276640250611531814137240083359151475204952488598107589994000156382919000138603189790648510116441490218941518301376337199686954814582586056504914635795060043687934198810992030554701248387151066985395253755015472356004021801444361203902350072406474384952605915821319297817531706234939414201185539805390528202523075494645008683797807076135085592599800175348039270526803018057296300129517911262029899759111601658939268296450520451974316748599587928374262761761525433758028303015825725960941256937526156736305419117410856475759231962341069718816356817996376137997894977066992361721227545813296442760981658530414734891324366183567611507053710609226178800332478547591392140713275306718288264706969423736534301482205023942977508909145665077958506612583013135499891405184822544985457549434086205975676597357082357966274453060596901236553356367901913805139346810583741846793650211473166540512603970937191540914189069161916671183658535147055912335864759168991086754734434690279132688021896602463805881012664097727416327994227495007167121066555099979315260324818592440606474352143189537525992104003544572921321021814858249730519736438257282390280750264293100565167740351356521518521057647821691406272098635653808829863091409702521477895103684133124564332577673145379101694478780825074866204352355591100630569354186745852493845820382076344074322773827135960797556088056604312934032765368876675440183508002414300527154978798298323761613851380971592940275317070982785464200228926836000795920760165909110718411779712695847705303017628801799012595077393438506935852353109111515847921249416247381980289359713515359800333787735843210792181139433075611042184026622366311859192300491067767302247757945984852320755153725798421385222683214096220530304840421082341664745963120861732256664315164305285474024799397736975272925686626544837465157047290003744827053363533512722684977761846573735429345248656501513322382992124561355212017206576924910480065897545547159557082903701487591254046784760885350968965880353195013017851544568735821447956020588050497225724404849913249728862590371801881430500530756455223442289766192259476174366795366097308590346765256504440523852165940449727441748384631401655088179545317552591480937087560655131329357850889515279732810125864208015857372618920375441142008166767744425426544034666415800849918830810052444264452866538784853635935320214006076947709758518505327825623146060113392500475738706084024733996847551902947372530070788659319396400071200071549209799925006623556891492678402046600404530315736197983517126155063420180845592903237802435757087872685471447147840424909819096242619524082430640074700700648457253576617055131803203880998083664697813826547705666467915706676434080306608343607344983328024855333396690407154652454150791734481716953849663570489981802005852827565437203173352734113620587831328628893090188603943228724187410911398369282255459045052467386938682905298827058950637163831479375390176864297781205952571627644370165418861554048542343937071888079331972830195625340620281282272948974357443467979699799211517665349359711642415355426495928624021444067777800747051117457468237229404440815920321585904720530900683619428901858803016153746464268834379758250952327398516513890027273764246750011580646359123223788435217940050648458458228251359617782294019104377840062182493384838086172435109768574855959728856157231089907227829509386522909606543792271980973233078483447127154167585438265922136368984715529889770828913069398195061405487746663233975920804864268819882473290669186859892731916096306715644828896403431536918889612978087834651234995310112864571855008342528268335148515723785177183062730007286032828861980778230475858152901908787244375297117170229079249606981505242569773373102681257382341759026195533815783432788422319370766937297388993153916036171387234067415410969645173996905998095667288613579349581390126543257362226886342485793223844551532022605353016798422387460085556241875576775840748288285418525192387402342357958066743242661310438678745950499082888991133863979094132176713821009106686921484390728919417303754056823150007103345222202356872703691301434636284563235477162264474476333210826081478955656325460678739916949536886575939271831141156230025008542273073488791945390166091582235814132012499426491483425065660948293725348113842724115026242724154969318147791447358456256359308838390259875690217368165109752136145529325022792210167640840303586018754278084245791923842353386714883492769640950978901503307280809796593774670705277080335472880265165729180596867468692046009186826101950662162206597674604252809383485229267486849214733650993719846608751557645499105236471100609250672653989347121273748804990379679870804909467372763771206524690206173130637919548275498462718982997739723537371844947663215621683452293532993834850014661299899055490638981524687243657914541747819339798224046486799612275052640209934997427240539005906972981318590668772687921261147323005576847349602549763935249667098521812704959221074420851869835405376676791555659262328821764694149221250683852774706427400794487416651594556813704795993207553996254657435451296592339659381350391478683218246802704390941407181363697809168705307834592836884108048427804921887831895228598957491888870296648920456169891128491297504323389072155975894554552561394119169688803311216976721246734731076649475206501634924264579969218933218423469055342987453386439738687548045671539896524690323599215238893386621475824787616244191210292504084900269383384034583308822713129840276094769301574153736496955754166595154728157889336951771649393660360566741176817053809582851052883608907044777722212419897388601695136897069852218178375123767603554985945412771593712306084766588048626141160236854583166904426091474512716320211224246897641222043297774133307135443892695314503593374454965285070211549125241965443706284318297120591090218181281641819525837446559468971271495067918007475814647814398855496750560598030770294745764626086572256420948324364897508306782468651014241815286803219909735208817006230282400483570118732724106833083696034668221141795707935621340670869403890661975542670886435724651884298200391086629328225438077433848517516632618893609798201467242236047067446653125883432579246534860423490875626133118153916404735355544815350381244380753971958138300499561226986930448368858059072065343048374915577262541703576535245724819198416300335123641191105957384665517902347884901496327518063560648098462824883457614722223332308443111363385540944597696621682792092213165089808892639565653289680095940446462263309367589758272340237881476306337697604608989556606014102210579328582446570766142829429009982347313186888226435564832911203316878506262259384589807536602847474183485613961252365687272535614439149225500734440393844263255718898474751679012759265196205095332789680525317496709162680658140201111140159065698916326182713799845102315074100380099246349430551606146367345056881957140116082090382370269413324163359854773611565370262322343986410952278184693801494648516745791091796738501427137118148715504238206038503656512546612740419519293654974359446355974880280931060425692266190972405507895081339916541529689988725936013040195230358943213648211896496476118305400938479588969827240421694885115971157409787691559383356142204331686810185039350558773314827455136099311614276070962998403554812286733978072759473137258567342559419281456531659925549466834244802831635271024612897533220982250476211887345146883851800180176289833601318351024246209592490880074042425464326106567080469432079508926591831578652423847814541995316635080739934474940523884461449800139374979763378201324942947806800171307523781957096372421547995346013743100985898052311627556856821751727659125534874067680099462232807049514573948727445690838602687057834502987394348675148994024490915972125638142679244929276082555721644686628679665358908434005133226000078600779563016187519339225232100945511054087750276023807843721745428460604973526224644968110879189286065381120225360940121682669867133427474403082851447551870131880826997118127499906320859410058118027333351967530698241477778903643045437078530893905853684623942976501628814731146384529477614304315522841386724450091219099866415789253740985616290606009106206719644204837150485520873746581722125804292915769188766352757746221028638586463317287021075754736518202226481283575744481745637631664609597724446700649980879133485052628672571344221176857527771369467982121038832953861609598903395919131210572565081583590973865056010334403024162545309845261276903391590440781251261890990252837717424537256749675966934512317022474090711322619398164971130020788974717517717927590386656139814221292230090685796144853937879560585182841182287224937542615973510263631988541364412148556577767270553255278160318645310591903838536171444985164969778149901315176508502959377803550102693312897018522805116174144345218021774595110345971808298289249716115032580865649809040480826567803980540463783778336553109501740578293886017623047138775015687866101080832976872040483309383080551393343006541811081831556158327631370191084819370842682164571227586769019868682202464194394672752596559878042442787396655963451271377251964537267084976769277035339259667651486523128095512111199877448118333137126293539367726423403015215665257303894803637972931884506272206435428364897145772371025216672437368318648188997607841646987744397828343642812826854456695817425138017311663313961864221288712257492492464883324632573088828732019221900526932180494608239856256940237574582593001553661778794755651387296548880572600371153274076379263178268479764770374919122230621442994247952125843928561076069321252704431528853273502865471971340275175496087256806840739251693408619354516433370838896352511384205824941956696167649225335004569652582232986264913974808312974261871784576863990999585411602369668359101679553603710777698313732220249893606140291223604803309050348420046113184020953682112954801812427313682466637224112517613403620830028621803363047880073985400704010479938059730710540347194905361882146351046307173569641344240938417456942201774626856748290001382109268859813870401731568453333853824502218397073350160779814633154706277841777341254841813296686436578123474793712501544881739371145431918111417340275432251328578060820899839337401447329722279531849506432577226464982491732048073861717541620929335906160577859406907710035269543786779939912418744160775820617787720073309190076981750071506135566457892716570928136574691213134036978209667676483174828012582424672976503953540561678833465267275354807230607727184092121061333928346611094727495916622108363744850464061608891664312344796871809987345151917806009406550991453503258278474325998395534196903732260607376125248380832537556603734754640524116133872833078432281688565404948168076273166780142461003001026237294165101236982480169083769839585101144444866312269045760124623883018374059425473480280470759083551770237330534593481965514874671945228285972218621768127715664783931713617720904033587729009205490231107772839144518761285913310936066178980635317102360274113490384681345343534156113549419394443279227259040740627899801259539344943606248731661496803186245773195752538657473017560118220365905608859830788120195805203048788959533505844125875470318119692125730781026548229288932664091277005923671359902536140807911290970247314284748345277951513294153211863781883584322351786467372800438588750457575061991924371290450069957176351643933549362075767499735240383089954022496700517303015000184748747921655763441810808876007282712719670521420469012328435989109554621081784755899822547123553555356811027474098683110345784204347040922657852747324636283005315088320604760160207583589783681231450769871494342323108791239930665688571395855735511746190303955106651305735258690731171970871151508822250568153899134894754493820164998736789397247413059135238775736768878991869003461245159837829809717360644414164017159093033025183090589153912408432017776441415769497045391808791224095044193415631270812304543344527235617477401017881859582512404688187917478058022696867483287532356487376498238684905369323076270144465109298910866900639971721817017165284469878835080944699854634234257928177084758376220604684979447309904422220190086759029243109638247791102827068317145478766564113012299539923765159445193066303402956980156577226641832906730054622149239298340538860626902966185265055409736594783502167379120253929530032038418101499558379239044730004108900564431961046227618269600380304618189478722599601271422754174443611316797661022253527456684562689962822094613846492143461242924300029259006576394146828533664209155803821256670425271843704021179602997386290663884734405255915726399164947566557943414663694014968751522231680877424175324990459044527165859777670465490147967724008154172583269627338924812546365598142017297122432988938911611386757134382574480518887347726093236364996249472254508824284437034216717963855064994011886321883249421137412645251760834277125902047435798809626865891946965790611945196406985683613699589252254968156195080807611776887518298917036351278085932760836236074444548850663062447197167624263578983204981546639607259651090905602067241965930071886751761548256390526552255200824516217868117622951256501964068417279756891945482736699808262873689595356674028553094251643012056778346904764770967299823691751240336207800640011506400276401338207719991911016759307457322555568216444849586598522037618255785486996670597332654606657566023729099517049527747032100375062324939811410084248270880180323539927800585777741942470539342490439888253052482370225953533613442966329879407723747414386303989763288746343431648263794680745352958888781710398036174981553910205719777754202255887111159465401755014689627350858410155506611439549500532200771260202978755317229761651831065245612679517547314772517481245618337309895591147785087882032617738176579564998418955475607473569723000495297768814374896929884954323837830422816854853401365061757830024481444743596071497464333247576929886267234142371937434756520001496813207564207778065961500977258409629778709000536244999420207519457600186923532952619351162838436030532096288183686427762658446718469051786692269415471618499828940103829410360378184573674740476404897505938949429504583184692702724137337664555605333001715146501738561966543985825620988607505065371986554996465654692014774423615708134474460797527585085994855397321497185604356446919263979946415495592750735162943731880988525962404210170181759827399491624325737168957532373640642155780978486318211326623591926234915568159891455911302855544391531112314625609123879199273905768963107895639714274780402912258811360341231158225198215674183722608269370174502478549723946401766588483796537614840963929233325132689446616096824697365758149874424214640764218017156831915381247619835409441711406051887709517549834037195845486207612313788309460829478954159106383256115074150498696499684739363347942383618886189782727076551471308606813092048463114515447587644004937562565676983793122558934753441824709893620712078865728178391669451047997061868987203410473183415339498867205252011504153550904796031258169987980885117753268920370802937073235214120581098218214819374394663743366911112944602613319278552906361790282834333905387608949833897536688560003865552828995088424702423487606166904645388834851885106108803779175253378951164159711676951189037787181680672880868801855525207301094773928591683828987989635216138926519919698830858191541146469659372799552780213992452233533275797337168878422568928719385130502227948402334236191038864816878967636684851497502418814462942274060582200895445652768916945109546398320582979385354379341270947897132558711797805516498172571691289889047272092575916737726426340160232827684610556400613996454739232830677217614104997482441105238484389964918320859339790237574695522816995129512913118030131333272634254126942063443629322961768654936965554184536015259770447748431149192777059426323959560473135586164069012651326218920264357455531943154873337765262056252118570376330639906819522948131943360251008448649681249427573615878927661234432873051993842155022918068902571284596985977481850389073827849162728626053733483038003382906871702964595184113819592245674808003386913824697160462012145129859152353284224909473269868003703754753230243334957192749232342804949520696758525116352596626145572599041850349324822095863748838715173805674050304180074616158755450296926356853388286769514387989226064578744103045072523214119137023993894437500514311490059596039450203395123390062029457417579161474495130382989088581320473909162790978394513081367599341737848801833745566063077962944957238932994809362184947478363393161400575327049946840052274160353893914875249398598024607433994398279632915239135909485745745090859517572665667999494212637203752927250221601514203962337421475917022285834849041181784167311574970292102601753275075028091632156864156130738363693201482697430882676730455894535036054738009351195928111219932287343079736324074495477180269165619227555664654961259183526627659968012076302435469696872184825241282106638920848605700862744994233107235093603922278506692128906162282653595518056700780812466370219747150267948546494946496700648224509339692579362662681305920096280807704898803588438258005530943609394294605304509857860083482428975805136707924336009879189904518844656791670600286601493537159085648430236691756150199458421507233373322898284374498750189527506969395555750442524572846470101202211319173284008949475675735532137561426486605472790445484214137660775780536036360392963681076325015405117800473940267454008850648318435289313840573960006792315122527403050442430857242653383912258098429726280263749335912380038782658103063832910893069631231248670375461395153755467749592367930902193761822140467001147629188131728005155001216030746460056519297395432779365084621954561317481389155335326200548163611028932524356721518083498594456084110756785518754806081163427485862118280916511014062002794779574198104538712773668996879316032845110053562616857569808960740479289320893337344310933553072470197797177243337466796403315170859202374620534298126226934761804433865567156582618578125296620241462965825805481495165215479662638182019460135574575554270021294843298207851525427775745960903260159678356033966281538224213153665111197470909813340426029041659187037292418071904707619895475211765607770439037208239498982938447545444724735612321439994957662696687669569024704039603333002879554743416184968971130397525730701752666854393390581124888714845572705937005980502490469359157413088059482550684772871991246563276075986890635980757813311646174008511580884085108229799699248461128036080747513311385990966589528537192866250573587300474335094656911195692946936498848722447181585974082303877702211124217482890144858576383973510848287569703507917515547492939396123613874662908184108413303261981803500406737498683174015514868266098019717138676350962234872151178535280612932483162271425748532919236718313722049428434787886018020533974365553420378031663997297964347325864624034841575456727593755325748589382019649714684855322253359514462011556062596946404269464850901458635187011677645395889265842937355466193527166646421193824103938361600125450043930596070491675397627708039136358663478751011117888993174906497706729079709559136642192230577483183402716444664204876202391329963905506416696250627309188219925116705864088983402964756765196033382496858616441017205497947652760186586770309893964511546918402704242795104435494691247408722866182929860599519404480188759070191993525556158683905248845689078330608075703835239685747779958457652731150176430255428995736071241757902405302947983931929613627436954046272288809379030449337837634270814658652947973942296191982780430519924492702096233784866038639379768894320872783366867707680770583503545016147276052834982931039299706250534469227772962802657905875137341190892706136328112880707947417319783237891045306616770300891804710146259079216419961918832203282046122137976936518368299680618478320088693715628126923848145328247931212354112108118598910809815512476214529355480097489408074125526863834403249070098602912270235458383692301434700067012619014710443760156254723671943493079754053839350605658438352132686191787056166933731123540170484454318685617247902331986962730078172473742697115516592459858200833904439287496051510387950331429570398058080466326637583577272808823337703567217568351362423112364952187284429797815649859455551206689472791728749532067589785750082768962361962355704128790991917237914108049333371966600273711575937386422389698621627785412618149677669005335528111522668913414588868188987755481745566407240721723340904134517147477017872585230084224103553030717998379347495644712277071342664295595653207254595148845673412127219617972026046313546122327859423081620161125368564202278003395135502400643775595426424579392055382524749421489903023178155458657951378488659715382424096739918488477574210616435954378727737216320696164051995850794302928660562611130952218303026282768985488250187712679559062088881543777458708379913293832957002269802834006085246720040952134819238083283503244287009030501593620329853248421409689338741194759118147316705040080410952700256968826781314370401338613620321707564710642968176048898229430222512012998484302692728023024586483202140480091910810226237866520413216770291321670330999663659165773216823945925261287664109883491034686732016086163502641209527777368022414103236956543016939799460255754083516885994867649628997336678475782183856169870377539592222692195224414439996181642131574414759833321863187019164777930243588321335140802640410454148491680152623631870800875990643739909202942002582167980736399602814043923981848369759518327802578979140627506861854213631525739860110416948347025818129934736575658231073612512883477038896725023098174521506328421561419630316262188714274474967060564745430247883231522042478736595407314897962435603935220297164869705990147474473914608841035823885777580771968316815033032265987548685603513591035486452008444504779172022736714665976037425129057462714971298701952954871393499175231528237973227653989616513403301434442482966238555412368453769174008700785123011296059943467071777015378020155577472314981172093569339873084219402421267951588329046066014348781716732001820779901894919515690308192797740010585171740873439514581920565560409427690010985201852708757542524793666296834466110458279092926697643053804880772713352800486034728524837508799922636987199825448324080433352683649999796822487331926084325942582696429167915073223022429149102928263829445882049018889668841889984122497261809272949948339426770408172248226887564410184201290897055408485396072309905486082196011673414980764696688263855329223054806743194993971271076979568698288751640539017194794719153319293362211732259520285551063625116591006313092320044573680834704666975817838265701263903216776025795554884456630690779079554018750178231781150627929036983315154898203497432558314089326994325085891526931976680787927447423699421677910119375244510469876379191466251847558969417908501034685542497210690412644814512285988505112048378750051956417017971955584036382133130211866868339634429089829335184723276806861957926615772901426503642613971538613656804943937870965097663071935004630435761388925538008729190232151417097361329219419856759185087932682794153912671334934865653997689678667130379032047560438324129221817584851014559740338386517449002908849661094328031242978419238826318696005932290983787872974601694730352565614749517781916733821127087063975525428020932999836372295268015680743704358137580621782937253788857898713833201712973945826581393390037722953562422285372546846036810821036426875079281613035627485949508779587506346516791703265865264753716260464257002198730462383597702592072727792276260953713402872455102688508939311326210783391170729062193935377497429676392264477036295394540723267089297731198278741328351712537450942362156269878866194413096357625524011684235749669358039386574283694832453287145167834530527628707205104715152211930636227546783923855376295111540590718823333425766328381821340539981370216376640929320355223615646516250401409039129755805119343961170732678526768659216835304109559563242970602869459424340665096504592068767770410305580930059297591411346797773884343431488684524617125581684910182153794756024559536093996916956796875838459116467593269486552242325995550053988034895784887406470165219200529036061984267293693576744034288597253037983892826714687633090520365860377120388413510660705077467216893812179342911159881858745626490445942350186543189945347585500281163618673533070652235530876854138408626589105301311653499130003017140215863657061436922686042378068774943371476341475818351146847319253263034532435644536612699018501847073336400842407263839353942315205865995009572355073986365203239675266534583088319777842696775855400186110954728945833140082132899782946173374358388288398730745608039235737621242767374807685934404189319146254909128471182177151087718049168932499060184135086168798896510285528380299047989894483923335799117924264108350907434718737269442787025885722821816016473747397949432444683783548631268702008498515479224191793239255381508649648583734636407605588077012071822924726636761544690631394645836178149735883618183471846950018527190663096221061642743813032667857879497768132675244079924526625326946217871832527168145080374029561176290578279878990165827725663307380969954506108300860207184982446111526606035677228860270358137009533040327866128530778648414519444859478258643616239233190461768629177853264749295898541718809595584591708007846672540460867794887482590262433609322569419760784502608373217588565453373049644972655062898863538235402163958516126797998182383083987516325221630486075927752867691425411939473823660153784315014358435822908408682551259890031569352676302835144278891215165084969355485153375904527119862649322822172447877442835278937928995859279514261371592166632967829362000751486025820846282705607205341343994080182948247880695621129204155838358392834759787330502322268603802122424277931656457941390215300687663993352089875262698742230785951063246125097878713646489983295907908799767966047122985511767750914117277253499465752266272950300831069532859605718698342944692670435848153103440057354347732910916252994309230595916895330508410085557533491141629634101445543151296393620960642592167322110839545427361086201415021018928672818615962244282390097241812947144922915381496656603623625787699867418198165964686610305758960112617299688883586430540663970470560562177483303585847666802865288981889908253641467097630107423534572757521435349385261306206010500505421011578178951424070606293153415359709649789256985298001573054417495201499983783839067166215708937119530047116861941650538543033615534816079598404853729993789772305000802984564015092215640607376805689342990142702887704581604130555224517860588684673698231319908370970326416080491619719679974573571827558292180066965907350061573923695719148752763272484493185780885497686314682059179884244694851793420522142484083838541856047143018178776983745868282635396426734461731601614088875866683418029418400781884781890068636415380012972181652380817980672540009361557424464568505936652430149643421896908182590183409992636032369508618387055158682989372498101463456019383609760438449683563527684905503850798797960786227078304642804591646912354227513231043972394010313914383234673991132232141542823975024962924168135334556079309297267978262385647629425594572969708467870005428447322434998731249964274846733238214260547126946236328089194972251358656335203436874725234550897971877755427196037002786769924755720204946136521740433795027968440242505428163563104405589393494676866439517687215702878705773310922437564577977189968335801774220818201824296655771281329563008104181189902857662462923685736433103126778292912295513740801003863753443785068369924427252647619165565869233153883087241928231286913731727602365930926113977903293779556936276919746596734849656016564068273439624204783489475826187229680705321434285477812483643429410686899385754947428511259106663952108629652046212319164633340987362249955344961370940159735702445770240671620767367603312328511231066587346641693293915017373541436191785464918070157230836165667421406564748199289429708799456955304373470487744298518130122418791039898277441442627474226114510360645197877555968330454879653979359606505383006917478182549350704770450691071402616132889498371535409765647869985589336867996763047475484850979157574542344206475597026268321309297512518820023673553903743663186591040122799205994025008853238611458748015734102711690600519876530296451370764680129272278710581678491647393984532978220754869367523805880541757583855522633579157213528238940406094764633347170799913298731332233073220854601506081569772379561963984911815134527150670984752458553471831818951146746983047734802339979457881179145451067420100872673299906483643863263761584885779426451355604397616426047928503623369534859621742588741772406073827034045348851111546978911782908327964595150384033056866948411751861912828626459908743970369111110190917967928592043995798833872604982565707516026101981162625324092084570031195803517117036712513526295954809497447066820590452789667873656658052604810694371185513708200017636779399776102846632254176709524909422050715930878967977619169287106009093241709710272065530826347918935914196004151057963709902612584826859731670967934540544378547908199558997167103698454357272127866204682385241730315532077397452320920192846184126609064273605073030431715023188405650786036823729685427203952238293428454874483628834545714617440677120630620404693008678244367307553142693849081306158405770507674950008714928092684279718858860112169178720432771815817408647860575435840368391743836837602441882451647115093941984566221545675289790168785427437404769890513733034908743217851931642135957825559698106614313090986382982642697801119649199671285181320814171892171102939492682620180624819015661006553225865537957446497368704977141610081905977039846223879123154074600801207227103993345353120953273569826445695376028644860890052986492496803654559915751553211326552031572428044554695111435411572205377007793348331974969198811445692265665953874108561967072907149541050985696848282788003314706021964445120330131298990625500163591256717249768728224045098256630267916677969954608535477374126311407090579295248942311114055920806963285377044844249254463341564863000296286295132907625171399454021961313679940116306664756590886523274788742302505056097054389696632303823431146439352890467802693063515360143148469772200338720698783411074943157806653829635734959960148266152070576064922772382285555664139356181083273386618146597166612457799724164773807412146377538820664571336970471569183368484261243836729348281347383999205590412656429447328338214323734875022439636505452318284055806751325540767587661845550621991906634248708826074983787836724307521082646077899448915957198412706037995696947568025927267761051675520177112124969908570887874496540751086615448948660789521313288722799901005006605313529686149122705975149218902704032218510471019194109599200620983354702089053993264722641626250392563622114875702448588321771690593876596987196083363719390767567073295127375936840829363514453632424496657204773574009376497725988242078436566672748600813132091182521252309790854014248611854904475669862671796047514316422875823440235463729528358464065001684326310704259162862015571171777345193960392794555591450285570752466886994464941186286155434728274835228123343443202183024294805374882330772998849249474169468320155068159106564414314219588773581634841203860670355506296082668049973609458055198914830252561447726292864039133070317365613691661860770191236297583555797574343397682873310088792540841035201225867850916904608122224079805127524173278128184314004703021368834641983537981970515629291069435680513277680303411824899731809385667350148519930872285495942664932139918124568214287139238724735273189908980897341374405126372378929220683130463924158949579537539890889766993522371534130725860503793010463468110244624311885176303159185469768473063188092841994462350307533259327268334670190507288261652250124948049769303835295075038602173380642952344927224819658306381519633564610258966405351637883588254624672248954974710439013903857327084910665950203901631114790597248938630511372352872482038556047959056876660151916756289566257171061759086452757039939381134322304260917387571456610859465125560561527128884759122964384141858613478311150089672779635491201502741502510145331429200037050905243157550158889363052502653872597415110429892053721128163159602486431413232223662206682063656672875380029590766438171871848097622920171091824415528382899611028173033049665251942883715606656565246249090282832519177091475358748260960253069795180049504702734295827043266080597905540096908496299905166442417282929946922225142568565508202479393569088408132685846957163804260453406671304248437314651611400980857951180959816809466526839406445850170859574000284806627742850169682078946355462298190267734427519547307251814354441902516800828000066741792173081592322656546065509942978249092592780283505943898902924692992439778777794340101516626318084266253263772187469301626383406450724285455092615222138329684808191566352076874516417490092314196398657278244352748351955168688391087450843286736601068482315862530454763153971447184853781439560366778671446650598290584934877332072712468242548266128774117683505169925606403410942166116258635284827032894035211010753686636025595039939862102646975704601498032900867918110943250311249032667730160391202964578582907078959496359306671334296862190154459312721959982968161856424219643877617707500405104772341981942034983470662009015334134471716427033982974997092660694796735709301337010802757869583608164087957022785460186946778319783449596629551228766555918501619156390820217424180678098505392483184305545301596257619843491771484293503846008514784781112696571595584016339153438591568051787745772525168186691062923044261398498822482343477477956115615923874572421278177751940163815602718370606052473809005760362416282270076667992689994750065581976571779399786160104956506358640634240350548610135979460978598762183004821254977718339783540494631526885895935598065245800852727081930731083115491020142269906120318294151965289390415803787826269426908021972225149710516960695376112607337286059213659692733767969968204117545284728671289787957650290563520439116270053896877991354551564538769342406119724631945627592305994288193575173311725649485186050345210723649071865727967876681672803380880259360192655934271727085909292212721867115100523654818024126369326998178914128509068908422866395211121163492923936245428276333619280977755437807516265773988061023384519547498806498004971961281943962589305654476569730449301334009103784622222104820022842160277633758868105863785931055098645583435589972007767615953947443666770767750495833876555485801998804036843723913197617054258281794185118613048389502778072460466068023335175241378814188709816007006605968961423275515192717158543427133256157139268340207277506017620817090557767689113678357062558002067244529012965753032757912863669567364533421614899115250637872435320115480255817469964241868255569576425192398449070760341212341497953326058584230194452331402022101997536989894380351715209363192805036474806715439285019561574458964125439096854570922410079162904791704321088178578638432975301920564765142374881962216596571476263279980338618922851360827502547495335651463982811909464783798891637087968266207830858436565108979735472927081679366297607125988937567214362860965313502149043034915281142033669576297195653738581156997312266365778647310264651310728558592397431366111755652591674233349375160607656318285554376205609442941347825880034745396774686338272422321253761820945090096054549570783081166361279887953228735678420162815634842010892856128368827342297175874463910567111662469139150604990381935231968343611564488715831976315518016145200151781760624533201814936472594476538844853139697144604080841577918698362399862821385327128608909518407692239550092604749146479890267272161339072385371074116559725308809688020835241300952307976816378472411505946080030735766775623496188046400627312266360405703026669483161983699376330770553680634381160691757444920083632481829802799357783140089472403373895972802391356499864426101074955674721625704461673421674613904114596296580547250804599776669319100595462730302379345176966739611488291493780171550189843854865585680890529474875095866807698218625947224104934064815508573439501184433719014483256094519309373523081593732428472242326944504374206522513796428009624912522868417842740858448691649979777721473046031915023522345429035684092768033868945008416056307491878965539105881415023945227243403943583885105977500776543908436531863365697061711402896740649030738020268064480776400585736441859322626434582368892074292544223559971020856593854728651065650814770473752105179119316594262921573929076933115062445531265421909957714353876704825814968973663034075759244983298453087505253765404011142856694472884969172157968260193742201244730510209717532078889088693240282819668621502398992932487727240275349307173270742721902717432396959987906437637629824679742785021514256737158850247113906183364805825744915977179451769737746819722837702462020213134794757261571038190343664947165834709596132723799409859928506635275087701391916179139106382882543537438020480526449981037813359154347907019177273174468308524848430035890933943073177306943907309264863274155060610712699157619994848813942282652814047813595180495219290214791704043729732120680947898662220435238477995227149347374009182158026411474329667017258536569420987282333429051053627177013382116734136443816565436022362246160852916345083544784281385323262561012391918378608232705247162474395545184014922472920229524586897728466261773947937700757980879600565578887856120910078282516730686071000082044976821942369366326960444518925163576100463327346895045137656182172352511184085208620432063268935854829663922134453579333181547906903707056594954596590340318210058111585122703683550647989112993552887180521925324111488604645239800492273151840182604719107764874708669497452615414858474866133911319250599100077003931865564692417834710714309747891100778268087796553753853248027603116517696055948882166367525129967935268111902772731685322299449389315370696245505886803011405578454553611976854069868381537432808779205564619575729476624574978680217534429681218013122892695357316181522734840785861832067858305409074609396976305628621654886256034351380665736777269755794630641031424696066093916664805329796974781282682843382715950999419657009671997417103709729687194599896950117737391933961032788475123787095874328379610135410376471597891665439187772689540470376346200267620717129606579982405203125568164471211249459796582337550376051102410022394877264537718868591289893523867055115716390578819288801559720577639044799412346933051014490255914974571660519355663437063339452433372618727420723564302287983120486264010419947438589459970224832197214149121446312960631387868578313568267662469567876906854394232571328677901817132347494919119811239108656526143518744389131300661236495673032238122699559458179816139373385279473208515073009468261015961463746859535188658695845469700520478475251322946657749111016560000114749565309346385344304670025372272340724738988925860133756930612534502526565567490949291223249996970205106137254434065780202209855132795062791233648753853276765747900847120906884153701957279386782592252992975038683169599285367990582206211615260635247999211200524955591715124114642264354031876890238202030310967055659645468750835034715738964475915974892296620621946386120859087303043301146167070301185887917922460974131651256110236731995695603847813307956970547431055929048596976938106041207936154004115302960356482529264029220125865144004042917159575005691305643548912769679985567315651398857278216853648159048058983362539723928982486098344201467266428273547368125786409681811113815321578601754580315707928893821852312032107347493299752256450166672558176698364931262246317307115088321033919901038712662433826085497031427118632613578848963238013069650962460253879340976114029117299191654750773371333735950458866810218647599975723464449551072218761128714919027397279971886408107426699896442124073841800334521525109009347618233217523626597810772873780312004720073230723613805025628709998913489475384363245294595787329475075212828990475707154327036602196815417048672505755485124290285151864007168866085616381110081299228680449437745710793586226373442376717488486458358146557514573981249372722928041826288345714864592557771823274536547105139250144123125290246098244696958829090631549046350253105568554414042611333970287959773181188739319327962351426566749804422038033466224360962358112372806434675959261229640992761953805342159229539354754360002658842161076521568569754818777486549622515187461495026858426471692052929978381166579435875360796059597062519941086013338301712829036983998364306709376984533493519738836791457416580046753367265930313511843887929213526930100337394924916121088307113605482852891618785263671890064105098335185255969336655989674901733684818958598091566613051387554553765821378738263537486123071488180784150815151472775801841996850474379806997203994360652611696475701962801448640826031442934861560550911627278440889142029161086131687681066894864270456164344817071135563553868062430070523947754535200516326974158508103606944334198621345102122783505518924387316787734449106058586055195335183383124901694279309931017302094666574837050260906746828185783718437158443554396068525946756858414433289193082433934365694649397029750019198604405893654362931619740529652253462525699388205498245302903402629202119562637105972979240331963218656195030930303498089944931950063008632676960660582226026428760015733425320211795265637431225117042633225939496361055761828293478163390862278486277404495773773054625296838061481218521570439441145911058984535322223664581352846390220162068520356470522046438617272675563213852270057862310307300160604258372907639519827344292786782493280551700283637860179017456960708561474356733414662160632245926512019230485289986766177425971887224925669457080393613096349730540656464564229447960659309992110238687800251358882797530840147612234042047795791894815327008550663889223704709612282747297667186255587973905656481428705908600086676549353686630585242709166876352132562187548203674792509442577689894814244231896356254358923460691476723151227046864342383934432107362969785034302240815502435087386291008018120093640081828224642593586613305598166369162747228917496781083324295717960745265763837208488267788898864890868525082363246492229733775613556801973517523808675971578323506044187942506357319941803291766430397646581830182554182494352615235386924478868687215763669366755683111327075430630552212557827999167356546287252092060889300394500077419539721483890290607281271743449202071910445688909743389266355794980534885679824497170950686367409079859722327769874523097560055067042363166200317379971253791066217600946228024651525632813398662629925899883357820575155285470974856927341191434554862920285215225843898032922663115023412738129132611085901016540329361787623998386313709283291664947562144807334493852781863532311953179968351881286657378155353461704920696406709327560010661811210674603308634492108753937072392463879063750451160003679613090962033427810797271242160290721425200966875747205771680406198028668831974800234400863061647811708341926918960963041084194138471581418440036594119496113645320496606262096276513237765352052945537864579999207978344731982707062992094466472386008775028626045204494452027824540217237567325368000008275827264052790330801511144812155051667566445177119277481910616001646425214847617629045954547784752999690002769119237768057056952422741451952289346820110635961955051521343093790168486992998044072710055312037486749269751103344376035199127537155776467743398109300529444008779228109847768983107831273997181693260963179530015003014566472412388537656708716221678147135552709162713999631986084346969865431785829236619599257725513229561426160728653178222892928591043763495484402375704131364017106900946026162321735552255681917094713017983363177328253537073898530206640166356063629917990710422400428465006358076095490884850532047616675324185186684084371571273504505039002336365876314533670042574513571703324733186302527119901081803119876250733851914335060104336130862112320369770871848443267407508410660345150981154294870011601429914670094613036000315210735589351376179943459482246357281231069105117353241858014209085283362231532674378642823403254946546290015050182089785255557099056359727179865123058603818372476907934185956670208256683092403465972871097620973291105524696059911710126629904204431323762569095833243085240259296860525808662154394747261375696224182023000582170101858358921524879009502945427068925327310464168927822640046481789949408941401831418429962808944781551908324101583159630388477555475181370811169303145681912614764169120766339911599854132157324978293360660517162349758845894107820594421336543937543046518278363646538703810956546978699891508960501488199347828845502287881033245216055735428593109147771735185235337673733106313308829899681105545551517010388388851278646584642105806370974165385228708883606466888514956559460963646313073176647980675188650237360321591021433026258112930628935728456225222288544928804126219241648548807507046646278692493569361473764535722721533876650428765753909839581781617752825463956799861308553595403788390107001890389642806493664675196110887297294752316495589146977551818645689124911682731014165245667842271384890062444134606744459119186457218398394118562246535822664699685782601680909091762689824974570860619029951340013663584340365712976329141919596120908526804073339980519421038784747726495230636717913585060541387434173643005979509114826309070067961136827849659172083228771555387942161722354389453378749543965733837862497789417983109857830407287970272942725616736377084699032231911874334953025354089744165155482743845784486766780279941416274652476447055521740394713182384743756101490077002012631340153566516879336976495068453552161842606470920653518385376427321327783804751386397369136951879428238539713583350667092940343825643074844639381936565091246707417793531333234857414109851517835562110627550764154899397503196455634926776517222272905585059951000762290755375720405522924916025234874746599100629748365987047191092906711097226904602809482977511095783370958544804977070046537993172677574114227250869829159509499392875653333237779385802390707038155168436683631705745285815389589119029409378215752975124559326399291245376889666175044958287469395251331631957655764168246156203463931219768568142946248766798480928281531981619018375280450790045056107686462651822015374365093931963246485853512753369536519663068484782933390076664130160475908900406883149147361165308558549328898235771924684307474324489451152698792441231210257237444826679529914530031522182537658205753794987201847084634897137284751837948662179081462216747373758812457829128591359650560087842572897335550300263508330651821157980904833771620324394836480077696098512049617932521999841732634035799305221543737984165854835512469395073728823649808749161563383040211638189207828852865596121735771575001445301027214033672763910305941358991604227628635341990417384783768998092164098330031001401443781332411173282506124570813499761933623749727121560226764573064507867990584680520634837502247209793001392177825481035975464609771538579622619644724672994568085358616717589130305123513370037207315323769564192731576267669032578808763989025268363293013579683029879554919497953486197604602766734494464519869612195710222458253102137062045141902435083212219607115821204523946256758237240390379845114197504532201174824450239366165260349853023225932001865359349134088934649709327707050101165830730082592458495228374008946808785582943183904735275236960564128868926348530808064895735705463245104068929097668794451947536349829500933128929247549902458270323527969209304745026115518010975240543682470739954318818807480531525368189775739034820101816766264042697464270241504157554636559353900322029354787573037095989256707693451334961397365692246877602281778241260718563820841163506153578295082955217921921520256736291767289597069750552585313767699816522222211407176551930334946106149977102124932113087592920011316000856295543111509917869892545551798705735884259197454387026745928458054902899553346648509397616339822023262883731162449757918204163930397510266031120575282594836901402732158472383086561028910674136731957762472103081044034431357480682667399298732374151901329868507301315729916646030738339007712178838978764000654334004371799914961620149367922226358803123773393317707736994733544012613353960483716732722620468535452973985887128417605317101007266999009374147919905479315701823602539545447011355214462653490627094272480876936966978010963950855465044991261702901939420843949509907014733186166329667311807971870103390918127392165607759346224039112885092750504331983345930300950243650667942758974898110415117931162586267677613682239987649486651342793251239298284929107470226723390806770672945827971790468968921178039483142958041686649439440857623016538249781497429131031045040222819732582627190331755626682009799571614546734465338862784433927810735961880148735056118159764322559705330501132451797053649290493104242897834670971443469639265186183193310305749118177898280911418533334799654723576130028802346990417334174710988815313948769581121133268255573799912474926691101746477624618605868948769101546640637959875429313817132428372950394813240409157198468506271503526599196811192613398717231764396807717137765094766439304279814483624767598562023511592712725610941230911856778847230610166225745930854685578882303452970044675543446548690365233609241197900775448750461154708515985785675973612728830214570616225085472158410098575627153671674807585283374083315550954463187406944033174137092094846024737111683733484419234006075771496546314331488523167971133149517912045144643430294195309496148884818220482060399006083451244179434730123570327565098562584077611711415880203828383908356725051561064141764992848411489897256871569688483982705170403165228709841381550567420741069165319125081547058554046752802724059426478424802181163254324151742571071685541764337588228026404986483120056302622838845182313465493897451917341349259569268765764889184730725934042739264749596517829287377221157289485967852698089931786612982727400648818768386607087221030228329048213734042687456713370872973600358682159324435180241661968597706704414658044792423999942660261621694559536213939887828942046870322000099179478006627312473029888781587678956900011544082003980994005795699408223737357538321177311828423337736985401105465248852983699019352672297056188827092381766253602356977461328827324752800429464080951537401528223875492564139108250593124451907342291830022408943238063796680914483641871715444853341538731997609022750891029210171955890586118283318780412501170740287764858123046627758765463379386201400417157435448948711065263549953324227275552257022122051910319841734702773801550173986872594912940561694665980375611985479504431298232482644281344055143145167828103893185368347964064373263324427772044115859527532953908986408473650161376232897047620504928222748194874532451298129650339958676127258126152951802324684592675525126454592447763794179890285860878943055157850659517462466349601065461969560683032753745287836019827454435120556542052576015143961262425077668792455106702196148442855315112835896656717231444331438306843350492191385140813025760627123398800035515747412996110324412315884162778612380798604465811374946581057998568878212209915436355168819338926379282973087833552709996235625534060579103163395604874499790999850107776093947315948413916718015629543431736917245433227175178215785345956061083578164601417694402273431279126287393822511687520008896219025501833774852818679763097835570439945454018316974844063687721200470864134366817578209842761435327534289826746880329258751766553102514079759059823998799677476112439160584695823203569519028030282021362041403184765984420582008579090225538845534801715164031348665962525154177229144070976954528527220738395519471865235969459589612833087384770979164003838919287789508434314537035404228917759305154477701241360446286283983205199583981411878887243070776835729293270509529036364564763661113267270048528613965906866843366308004847693107702655660395568030001898356516351519901434470385767585824235499860846188435613235990175665987658089091481354574489583597814231823649271238623381929277964278288867338566569748679283666993405952357198772731841363636337404207766048312680176759416840182283653372751413922925966744824208150435339697651658640560918622119088952095300389584041377125356937295611582332823503753876145664473936015165809406598513511135280164647965759607869550405397611769528101687404038882042660093458382553931909182264734782187241191370036073400471450452120389573106287219976461601426433880139591853046122876834671806533300737341674555637895626648160090850593089061221954002582990594748509923595637126778957851327819238094355151305814381813995439407067592410397974160373162888780540323820138318766049288428537897510079078688996001229887112675921578445648190489391584504623514539554204700460134018700514961615185428445473808075526329615441758568955423969532522510795728525187974522114654987722209273391028019406811196804539110553805974502540215935365833467943299613385205548045099376351715955115507191107195477791789680287859794259795168180046384934824536462848457456360725369090162766145941240839232225660768288601146692068027447682240033761408100898035956295720246692178084155545828291740953413386813138723483817463287478102919038349821422213637921567149705432902995775932087286724351774472118611944630585949322047033205658023452641094378997100370581267258976421345261118140983065906634575539139164088597699542642697542468858898411736568383994394093350297727831171056056229129120522796468724774630439303246455710801102279957181582204267756154808975815067918151037636225273762940812977461618942851512377560982364957360834372511076833548350467332277653718155126853006376193208735236812883166991520768558213040162218182399001119663333333760197485330605364877557073879639239983758730440369791647494491886367963594043757969865429922713114426899951181767147264491711659215277873646445095570539341579425367105627044220062123018357762277117453238677409392353471351106955757972504089197972373496552741377318071100071396927652921278657532907085994858374083374439918728329374344515212799456560546101612091134935260069359607608068105334463072919537868802349365479461600296833354558325889963954946734900563471722555216868883029670944888850444271309145998197231790405652634394802568896604670358275186102401426773769894569161397805375044475483592516483301587268578925027841611940299635017193965806933033175606542947469793690859933559329313210471587090763164674715672597295234232629623464531747427079657263654992815142044631160968653976244847341915649467445804953574253100174205343303393411506219551288877736539429813367058836946401182433143676580072522622829307156223385179994643766793013358691257097567042733403878329816023123361367698289479224291843394964276052437816355195033675433914180535337568493083662039146568019705359578678341408587800780657652487376826601505459800767535330179698010598756040098352066247477461812114370251288636317351120686042441272614770271494259991900773843548249749589487012595160738311669827875380044569065913591626620967782163768308140376117325286126701342777736564958517117514852478188419778249960195199098229967330352757647968460266081043903459561798981029839101464062401344960698331419732437021331547915995370702050679672187702305775104348042070195543185732187468221616440701042006161925893772149359299744131992854946129587753167559849128159083623888880450105200879989931668235360300401457530095587414087243214526841922378818935497714935321391622935420730586501936359991267013393936049007420929507354663013329314858429505505226390909810513910695506138322193935502352874620127418139121329578995537906604606749268262619398863433311491786774439121955942772267092286115014890649379713523620756823178543872754554577547807574011056810564143078443800225726873810618468193706591987903659365869679544617549297568075740847532543824312088078903810828048405772203436201277569920988771838274386872293274259899315636661199130742081306094198323988213535358243200900055479660247774907137692548883859164383301209589317605110107913653890941533506150345345211145853760401640657532196800348132100899438477449484609195521691974730786737643682000060290280825845930655396711429298175019935984312414474792146213329823989125644642020054224887084999926168093334093452055047134642152075663896630054817129739247376109741446825393015660418915631091049954723683686385727758427156307042256227859378578452374971249372286779937413519558739081197036410159862418726681493846994916846749456847661873667766448732353281568797127864946204597504792704927981334143663841297453395970329538264990949362602618609929444577602826168377908044508571138176023740462335296983749856455604051066852511168538171947682099187636098674563199774288408049643106562707144035484541831067712068087740113796857812171548231368189498988404021622934669225504805853982046437593594363217406473788037449641931849664647007047493147029535535339343776448081369280939455341888994359408037883807261386988005943297232788566931049216719318292399916620616417966270700881162888271406243856807234211038485679888668404199449657087704105908130492280847032192026292860213564563123408896951019087852143715167638780077326556180870456586057993455530585930753757207489639166052271806488075343282287364834869732359053571603723697409629110764605589813123506576376351887247861303683629523542192824960497803712819294103249980936582734063992921981032136421549398609889612607977178149983959178640562918513199380473150531077004772194587180629296335040668097026555475181040921336651534858877684126562086427055198479113657439909828697717486856846893712769583894557941453191280333574294867012773654854736500203729364776965344104079193295114101343448054400271722231987474719721224787207301371625697616278088430107905130118896033629916745760349516914032272163704050975541689054393699487267388145408973005937811052739825741994544617434451629287212816059777483367263577408487876038448263035629924223860116045426472202012390150006509488801260502563008855242616794556898355919957455451217516956306771014182330974966669551827141399583275806563177172267126774707863946313632825417384653044441579566933069541801937666380286546463454172034333237517983759755752762371225565110749432892638445393387719150977532659583159505079354930502369712615420021055745922204770935840491918972562613508762147284042633498586078890819019310485035794221002904389163310924297377672813972375958239903350711678277066947822223235972712829701705921128069898310276395511808376053581075045151443907772656000599104718945619601255041333540281716390887412129965856766729967978064971421497751379465233334650076932496233183900468145057980243070209718017258948724684245999547011519562608753875978252615358873971137064362005697700935581340444051387939401017236457856722347013337258576914205397048812851538770653807551264087182681922229952784280250025728925216123943164386411394336680312928053478220545403526386821781790782527304813603178416691922678152484250025703410016164826601028487677167792195198922161860938127294974681967379778657546045874001351737959112427008345367942496564806755961808609200215867563252238042441263167769755464430416212704310508582430591791372697410889088856458842656473079147633501160240101193109167575140287078726595782555760251797893683260725329164041759471736929111064204506113944946692234165148396400686573316444348043389009899571776661811650994639100385285265509037116174910286230824295525387580973513946077333753047830349741079564577251983765517306672647070417027763271249491714665771038402105286366932973528646622913063669941905036224619393084221538660387106318303496166604582728964796894113285288447587515911047828530915179239690403563361359741684916057013720981336613132680374172726001134694923125687909795641422933640202856720393168824424368468162197755993183396434028308917243464582661920949917403785884184140178822250036752392548845687264897108711877477458269090375603952705310671603213523122203768022084126561927740527683486900783130342386467001863681218248632839594767663775237148051341085424563200149651552006394087303846727470243024309527588195492746870738997634986456422485653080586482383194743090799132723683372770334736945428121049666007673095122999306023163392252854186171735662723364552384099711002355839507328884939509237621718906168117647930275580580098136010647559386044327802247790181282569885928780779779718736974307099391819764724480940369749542686246566443231551711046261967454094635453587148737065523565192406188256658304302181033947533828157581808074230374176553192744844714383278611748171542604861767138940653313514719262023826375912931722363881774603864407817650894987515132378773475018277138307207365612078070821768553316086421485415859532450278293797076287996661334788530840286534919972359710664766888288422152280294554064348849159334142778214646469828219861812962685287877846421295828255367488604126869680083448886679212632320041118967605747791186017281033257683048295673922294297199930829304699678241597327816103868371056605731638346237074325111544614650653167818108344578458132418954422247703760112467005359244626376926746167323891132959869593043873810556633666036893264973034943209621989149666991465395071794051363951091778574799938943556789089136400402668638666485050720312329137943767963672915729279072895136684803439032728633067257523360115433645744983446715886766396380248176826488158911258845587387435252398008323073276360818043259709966711071823197693152999096809540819592257279951734651402386387837875997463965800299752737877167804483162867058487077108595803305849285035935275620676267342938536969925516960717851194771527258735281591251692214625353898594401667122162899285621547240814301151733632959294032033304071350430924510743389079960889907353159125875449891373592984194491010973481496896829926254576959141441621629627885211892302829720051374136385901720739144602781362272520877038010038127310376073594599301894740348999840991907300954009900426924066277788089912375924307325389914771322724155937382908013592472422569124284754843207455649904676075867406259489285121417043396637421790724774996198302647583599951425464463245568025082892182101936693585618866930360607091003269749091313121881350402030730490626169806267359140129035607600067832834711874283054821133659168017646022226760244078462615872140618911352500123635609249968586440885278944663502871405619622041585837444395095435320113272267145435375583946759804016745218747332226444884738761117179963191125363816729874966050887727592141047214109306065090538702505488517375003639997982447698656243642259173917791993375345343758248799934181459400231603961460043718588749666538084307364518558373649935074950557248130718145610208222464194887490512795349577847123241270074901109573078963049081341539710831315611327642963506421458560350171793459903800128460373510867144153052155027839511782850943467526574255657399482530919636269688591328279826033393449735072995778293279790661250570569855111070354211604734953358769223628604113607753087316521327842412945760731946739716920930976415564497308260373285935481331863847046224194237123145963952804452345732709764009706092626384695942997182666555835690959373473762002888386057639753904922183273170114381541939410542152116260320818643454123024597861951665019365725223908943083609964741004975530991045136716599180296603556313198703005183872385259786544599655444193774637634592087863104187537534918169271243256672865246467645911398784659188426293649077834915133385909309802564299547118572224060889082892710873130332455953671927510681004113208565234955073025732306672780414505587310429268824237213833526636968307656724778618124487000251174936051627006340791934765841942895287559061023247403176709165121653282863974979659407858336239558945013694584293485489570237765338120466350004751939766947076152898467558013907332823458806375497716293907628953431192905452831557157424153545729869820852300538918712487763916410721633063744928229155144637142769465399375847034587401814798908064827451738049010336749049502508851493219753746992796284435950453955605735172128241146517701429088595823897326489441712942278803347787574774442557587214996016837693868656327959113919552353904499516816568836427232494868649361456442120507996524794062576511878956269568286588444480998637688315302963420661093507397682001418567739132915951557211506892040368834021695184708501812963382056936289098695213190493361233000952139479309889963710517037630886515162220593732500024343410551327338329832383937538216039504829684513746654367450904218000870984260762181062433848629083712807978454476395798951388125255457501882045731846413311836163762007630938830810878663647282773041995047852627342962565985426670582434448421204243039837660030652120289084638254618142841177893246814705329919800145069525290354232066437945388694160764265423324206759170257466160919671719077613271974020375933050842628088497504813718204095317128929512830034523466361628518446804951184108114172015082536596414105051405453072158111118534655118162976498400737825156317931969559316103746281212816175408312955067815845541216470186883097800538894085986171770115656066401526188989259696490929146169039208666378620092585558214400166590113912793143876142703248668257029244345560686310925831952422505796735687838762173687062813391953882520021452612839470205546223064601871299111428706227194971216655519266362965854243129023602980567126958669790943297865220040376362004477141378818130752900539260469435195496570873091803988868291936435826505559392004779224835031353534722937354247722559870152213670462578127658590580894294150884182320602354049309857625883786567268774412273614145914479234660515571299899550603875679511865033252176831113182799238689480528354464357711229708300585515694523315833990146136789901448992808612714619021880115927405812581410794250628399083423029807943794651348614345164084147782521146161337928573378813943259875491146042945418776573563131163163799506037941283494483364211475738663303052208661139969827526514468412564393262939812913384602212044283452822746649151124057525543230804173868759712027475044342417984268626569859503482917058435452998036915649644663104914914553247370307104571851229962709672799756433167360864965289265133080373971650418025991028060309491584353089277745877762843624220624194039378809234205283367587892223221065407233639633650956844042558113407489017535215425851287832895734040617337671615130010542112325116433746538010983941397818148349839133408778179084655588028797741761294737615306465750195879542428485679849818557176545967262149292516740693106185568236961075157987267797851563085313928629594904778052415554601024294872331074108152842254645604197969968792188957974181651295659064181497217505505654631477561804246096540910603295366967879874095077485085495003566275287051990541189216384313134392420597222895199586068340424188002851176789026299805590314657609149197364227123380530543865099005430898484930684465908963652824350027228276503969333483953680931477429459201695642866991061312131808287311864331052649641342877450175364402284378083047902552565332709779035771144526243057858931723641236548373262031381584737976475338930506983836104146427879176079869064347838247476744826935074897546588313952386955178867421995339088710840749667488824006847434421167595048274907346690060137644720214682453596377625970211562105152694831650142626423383360871116462715684213360239090847640913969837641057461937216492142694828654864764779057756479229267408609413158908774969729292489285255729259231434135531568716919714306177054880941047521880043801452189646724636762134251272282405028237578550984547815985540860394220536424587244261919834107143427560992445829487549271239958940000759684933740808304076193825516727647979350583957776323975090988733798418803109693567828508460757929320024151259785767498424414762452540852882043525104200956993737832374261540456690083192919460447739947698520405183391686356038092675145404429771202066010948441550309798292009104281771075010051459395126577425055051813636585771468320480300025813464389415918421715234827890688821494552957657741683807100324488240408652467287003375435131232391152507641983118503700068981739582191317808733492305699213685522182819442257528809407384874445172534741845074600999382090306084162714371263279245398106520949822312319165021166903188702617119739981949651124191005212618221006234784049779815203556050306326744721530998738518334166796308655896215653703516802589919240494782491445635864837593938750264084209901140278452964002488990853918488038002670126362537779462288662977078702698487229780850968986995030932823465656527065336776585116386002937422219120221127712348301681786354765982562369254124824337997882331567807794396607704896645826369202827963775940326831073639523850038324506266555137701346484674755807958128151755744840148428956081805713678005617286772809520604334627504964849397949441824670849135017259566943856814395005448445576626526060674788683891833540045341033435439597976236192501874086797390089470556404370605566210153816490446543951726038009864897742482526030730428319340437330218804206972046857978582917973190694095898337606185901768084221870680682370890006199382906544103522561106543934495648806008025711746372816370881924629486889684471481640607374222740424707278842373775195725459606171461991522289580731996785388397970659817473137697301747570547114071096699612743496927144076346988126231211882619909196681696359734807842194889675945220704132753425593471078348396851529245264369942662735487308558257189292149463632901121406326737470563587498329554540816889081465765695896705256924113371300947856628402943060873848518326582203395259091550857730052809386486937606818090060214769248921908363222522186730774894319524588064954176813544495189676614774673059139541893733271703963256737548137685558258393123013679759449218520108753696761624348043538166703242209719711410959107481282445131590992390702581433886385624520571572214632504155892806480418926855264443509394637147068528628299269915993783839377487753141997739091493000722010391273996257725545028279022952605407744021324662893227449516377568091329324524412091568749546480515215767495894582101612373315136724724373577429005352538318335658450837801755073395999481720875471680912901915442175526814243227686343807631850211020357527309756817626319497040611810082358007640834833620157974758102413511450928436210995078149161433129514152300792855832700033921378216029984141706857702260826470067761883754989945222022343737016247039547559090953768006210926831169392561375020460301880604576029744017135025375403319755543005179312518233139401516116954199808949398335554759940081500480194727704093538387845609917088491364830872589262811380404703087493757858624031467606084585951740074571453415844883256979481734174179845413315895408959929054107122164630475658408118218095171569187293926227399879585893351239184662711905752559235376177992572900393547955418059122450797489533072951253450200026677410991941452416010770730739273612693383725737691724513343678135905802482298942306700664896134460888452990237591209335450542836102515558296163433582010849494305324508378103334802751219841123196938670797820398948971474267048920105750642399930872301993811053357020595188045213891776360192390409178811271003873838591878101669836426964029467630262992850538339500546834636131944566781232176073202714012821941535863910312850848984868441663634353505035970535983924441694335268406041544919742288798714870283485472534313622707640860802488818894834301368520250746378117827427274549563752523919585033355972347394445293010787625467996486155519608615202058269934125537940678564270916624833117297957117990826604736543879691848688797350886683144570482727702205201625448165643972084841786593175864798352372358375364761076389492447903025541842024619839596270429530751010196972779209669856927106761264704022039611336211452879413618269450701389666724798351130213534094327781520680395262643169418880144189610041333422204634612674266644027319161021924236594416785575522441801290786574101298978137974915047643649076322072155833440405207772835976321840007797625250697680545265247942714511670913489604270656823364628804794054715069249519581864868256329998613905233819907144652184556667984716196759617014178436267833468186639239413327389638594931568903798308744509521516436321611850355059096808727569072032181124921940436552542894235976834641544342822238040542840286275718688922315203500844443168515112947382913372903730429906892507731382342491334061951329625607473556611259092834094734709835112301219587876387913643557134169799992571931250057694793307798957193175121177351522383178247390977158597700690033835871800187533150147510118552843871462782702701803355649225266768063214465016292125128722804149670174918937411628201185953065911030133136402548310290369666869796384906026717222237890679450081251595025047072739391321663962603438629294917790131357531095686437998932658026028302208321867901332429705345814548518019300148930158141419165451531518966942561116984058378939567371871868355615087954219889775167114352307687031229289284474407538601297535436961694075057417790717435379409281039653775934883994996662952145886411186319763746058251475513855163304711845809388274503214165322958477834963264072170087229803649824263877114742516437936540250680187112315870011826541319376539104333753631254741593263712466982172103455697663621447571455926772501069993148411226258165453443209107844969917457803769853235361592083953319876412431168938417793050000608528680023904285214189469361035854576966784958022245096638257417150974496287785218064864321917700279277023359563710489043792269962955388856132674021999776131910116316468513911905753794161269542761440118886966390028024711729113017163147333963683698271696975202472356016789081323368108609685594797093767702676205315922531302777059765065660544665283258939058803592816085565908215363499230249284516288422173950767525401319044974829607237600751203443701940964818474906094851785912493688378530171779042537187895362613588764327110579356044241277775656627184790600730210219562960484246381472344460220786777223907302362505737226788599459832259787791289391341180548726595316880799264498077284723986069038678565317101568748788248310990575683601421904077572583500494073104078975074399086730055225483017329648463285795290891701818153344349540769661648952758245088998513421058171573009477184015021464002875420829181303649504734773636363422016272497210546773111645091883087624267287971306329593298772622342451114218616608808204919309608007259218970249351307389624705400441931680158978041968686827680093941369141053981677526151630324306516173637620321149938677875528542852823723828898746694101440835997702855022624893815203055171465307512574557189643721547636044799267222961851862454477876581428163816705623522669703910540564806496429768800554156793186704176130310335690027760415851040477052995578129010715562060317699396744763533144115198544617141206436378063345374695708523970999906084828711092953755261101492334469917339287935163085745195287005598453597440071739569070114906904997123066410529735432098727456883588679418196760399364231513788666064577731048125798972083854185734382300718294625005059363126314120949941362450646350939882861725021833171577528917148270315099364957969744205471437279497168679966825816462513644031328495777878687881581810561424329110389502665720897918040703382035307686379469131804455598527480974322031205656706171429954616191510051126983309460316604321455425720310255590639401867095241047472655785125742179863137183221295904390554013290773590051647549802801866840633181250116512985302203556184712260831511984594228919239374067646173808778044684210551620470443162275255915047628102257987517744701595482089523402346245920904823638754315240984181877078637463376202663215933698822868912209978628931909179318848299449829905597646498134077549540587340717665162694980213628942925026456416339909354784887159911906944123095384039494222644888117754104606946168489727197091133859152766061742900795874892337048554779658081920379655926112712718392791047345453448094840422638859917246598767647140251871905459632104852917408294951123837535322959653425347412257455552477342005393298190596589216580155808360428640831350586847593848680949513460918790636752077251104277215473307774133139974670517398952372813054631100565731765815849672265733459107773650794820487549102346609286495689468693744224829145707904513451993089064022983943949952433298085861638088066983904797978551016849011603458182947775223612124975257302948612809373030472871522178596191001106972865402105484412232752272537131197765329699420551529927205930148401531971520767241895823980950512860575784707931158870310209752995317548232256303517639415334024959246084488614994643311167678642663390475112081795676874712557593583248580837586777943199224905188882045046444493607999197336156868534417059997117506376035938880001665536125106697937257732195848476683995746331463929960480566770094339133179243157669770433940717945640917325922705119780715117528090590313176491677460705824939943672872747418316903342531445997010305616888773750873248971522549239509489625190281614559927811639970961528813864323146569333423240863911118281071951868311977306095394608148957522967584158495872921298078824030279020779706444510954930480775585361205716729995691743358907758916389942328230805159182788694361428075025685527530268769672713062803813364302366039453783814392293918062471178343201873331468621731876203295320120346605634443519981387236132707586750665940317416429750514750001059603689195758126928477694235358319862868360883843763710350657024669967420658664268961749309036284314584424589640622576134786054614229414410092271383312645258191415183742720255430971667552899490553338310869969767073977228931896941798538525046176790211242884759645383163853526244027304041991350061918348525620502592574156430396117515353555779462494204612538712985330961874886065263600117018023827242633799500541635423176749040758659532180271439656458666171037086505698697030339620047444944313003723211257839717067459841297112343935781678043496165632628000260158616908618546480628911989477721216703220748850263741453553601574303947922293919447301867152520363643577088802096634677442356202596558574178239019498515520509149956840491989110816550654950720564216692834999894692259378151204140179058288863596993540238924551886561862431453823305501865975035784792154311354799669158647286215458880451426216385684335006959026581940207069307335088978977405581389992081904954925303148179145235643829204711949776771549646566107964030512980265576459643403137437125630341607954767019539130683688412181729197124811386276878871383441034689377735245392538714677638788408270556492131001419580262670043331312897448321192087843426423523605239926130283104675821320967293730176914643327162094449164567281118082654497617328468344399804805688084288209250972362983289329225495455530454629112253158921799763682111993971517210188791603551293938835542841295466860645161041670353246631605913010682866764423523699629427868636398030500810554483519445030608965725571375573372335977648285004332046357781183036096742216296609640234401275314587007769248021470486150715408327124608423135250897384068661001323530563828607240378669356846926821802998468082635335562606368205826181786805934644728267201439569800739123431355623971764775019383672126845297172261696659926106094537799194678135818240090676375093533357357752683400651682770111335366968961343254202622062676314302567305851660421753935215738748442847326629885675039767737575082433205901625476490687642011992253765611475602119974417306891891745836147982870337180521960259028279731521900173865831904852687813068491553501678169776196445068060461594861349088257016283049246403159642352565739423345322227112130578426801403634729592534828027635188261559392771416515989864037320367771576504270991829656674948240345408386309553160683917143307546058310197991885685349032081692267014615280950644197501991615466661836403847511094759143707569453128108700695685380012182157230678735364023536770986818239033604091979724450848748792208954423078309550985756693793921859931001814676225423731158813469119744915790376409518259839856820097725088754693040588689691319198433597316690906171738729753694903573588809774610656317918156316213712693060498157398765673606657155501133194588775145409462347099028801014997990928638440526716487635346478072749005081815403073459893056066337566660970012420187749457112034084989908863114228427723645823595076258865946774918195354838387033449498995832154481133748379667547825706281901961940644432347132323158004315351241123963492307299625667496829688537215405496252898959224404945775303961763259259278382751799864469475128475688268102620860990888189377222894969424072604513181118204210215193140775589944230510175889237185890964309617767435483650542095448880603629264771376483682784561650398586075705728952767475387200199465864257975858992827287225309079256798571634138811586093511572327619130819513200331113651978629063786202209128418946190052307759544784429919213108524198594068370139100048625084155096501775662258084505581761632407913104735991929199252430945456744914499562135657500800299585360104420378879745839279690800402021932387783625502215612093153878853859046764287997583158857095892612985182548952332432792097697742918461942303949226392358713587858629102685900299455565566197758840173844803238569668247091245420446699258594943387626316607149640043501418416941175008012010319396809082095583393103966290444022703125299294059208708888775982330462126254487974888848712448761916903412634005561037332039734843305709816077844523722651601326745531046954365220006186288021595911942114483960342947793353946718665006210040599359267588157859951324933249300195149002416901649260866547145289645039550290018439831908815605171726573052717346780343149793376867922839938711392320882745578510803111919680318400259817821233437488260721975495211546430856537249886928832274094467539292826100455588461016158604375774979919278096950832095098722686701739581735671844283835686798037264627341751209044476680177033772498557968805358087898462297277647372066398216059423499653872350734378376410446067947497795955074596239864725289227857673093762733115345559713454722864711536549973867053874966574585006982985356837221695155937066347397948588082127039521487771903469325855145268392007491634558367246484703558567351435199358912104872849431421110214797583823284670901826442168012652068344634013413698824977135647173996094020654771588002966661352418373452685906635347460891326476324852424821326467657612747329356411881864018370035082835384367015065768579215305832342705057183634197132644487625123245470693614598812228041136289565192339897495629514942524021041744898618395609974954470566474788172831600369136865014447342811380431577402678021361280068729776803273082944981139516698797144455832883013158199870484334383916111783886145346459025191264542093931671795048635648205114113248881321141833693256310577235354649355912381098015872029466497477915900526993205064099769425334867030250760025551781759473674934460757814929081854479345864978028429881906097338308257321316407070424468214777940730676753167636701856060235315278914798923860212403667922849793016506053499336530921904350828276862723665445413812113378616474737978457490285717040319956523043134256332250469336822743018303915319569034861806226603810285839077263869396509588045184067788549460876654076828304911596177675214711204583999943319954932733248397201268351895760218043933970588484200144818082739344729256068497877677816316850430962996633407647049594939974998816089584623209962633136760598449229552350452910087340470971392867518064550316809783348729490466947933168345111541637468594439728081192487694306750249039794840973468673970711916110417813468206338289702582433375067823815469901667560812566742054002208124921931368506210454893211868715562766480688836197779921158509611887133793482368049482506901196348634379633660359606697541859985079932889854926896611167228650158772245258684661301795897941427839198367117643226678881562712730390629498948836789698514448868047404622074232935724343345328432376308371153348530763121259829091735724423548769170172020245812657510520312362475331910659254964907644126363732651110958547030702099926239492932684430679823214036040606696669676139689913623810128287373336448144562896854756584162100714599694329965038966418134828621461182885238691446124490622991584503696976389011263406422692353539890604594708795389986106070988349860082005544718417334985393012183013361035543026948110376178444415332549811989889096418728846375160501094732863654060842157102781587334115757101459559759294913534083965443359523061579842074874423138162605714036614817325352166474196374195057280301512138947668046306501878007256095428602375295412022052082025968911409956474087515198854230532211182452424977960233186150908549213321072636089399093717427236608610515962320721316835800764233811708460044066891846359223882596317964785471617406965287848583595235459285807546193421466199598400434233767927121145187034109638544382748167190944554252058824111886844548710173467576227690990908863751224013135470336071180323191383297573895351698748169480091486566225656775473250550407333750869285928182213944497307281746680096853318209595276598712377826185003463143326118924158892103676078756738109793327806733971951965981737199250998748908521914766024632090057545127174196664685010119646049473101000765998387908326914982919605083580256271891580229794111476379441290434853636581307969623481249765330830157365572379909185820918563396304171958949357189875544088357424846872012425039003070173756009515592318094729344280997631081141644375893216076138373652549905439559669459709380304694927779240423447557540289321352959171678780756244408971638837491555291832683257826942979183797054459675733193420030986772736114144978992526014967556984708947612533491123587542290856407998442807471092210429169427487658992579741155627267816323041789318026810307462136410951708852832344928061012860068874180987062799217313076187320764628503104247512610997192885162657968315890580478703546982395328550053540069695771407977192563599367980671769559899027777425652337232078241497780332380363951171728750356033810351542977677535194162749210825353116865120891328011463505122093835776178231051068516107108906532576748777420470533850741982317439665239004229956577116486650135231040229823803219065842702763169912645095980750656575640858030480030965688248932879248563186675253779592528699675642286098849970089660111806951254493601851608953743186180284969395527704211455576715451033268489784586518547617884878482778225145377899737221771102475946685992806168261624320037199474339546821143331273213763347981623776198282506626757684377409433650064106132007657374878430430370142743215741771883644546815574477837757953214990102710908501113629775594403233079555579714930823581551889709047574691869698740667285051819774759113542574501830297405624256040129007317880631266021748094135558778285712091826963477758044361465716301178887760894072236435119887346838812265226914782399965346722286463756346161846262808503768812177539999195512599036126956100217698564366143412681386277867297793146594673370455305599085017325894561365110031839646483334867927824780092335727312205271751241719832740686054027228052415284118600730262494265997442969118930489983058294928876376176868802893982752013203051625356147408459392496115102896256042960532547578537201547091234199885950235779772431684309887330508706324017613031754543183129164286486838031191300692451554227700676193688733322596571145671400046681341585472965197446632749420166993240047232707342795646445020404453258619443380491980821323935437722750857513054653988856803881908552642592489707551843446856778660471330205009047959365331664398053790035414327552235925134907320487381040376464683166800272398811549317609486998808676735094873521316138526092514598968494507969872770803810532193511787221520799317811860164764249877043445712781401918734064016311561402821609492881470024093599047014181697974259049380041979135843884571695642301054979840451228456062048355655349278332983487507885159030250505474457074977037339078552222292875386515968521526709643913024708732257335071826791187012999438146559732938862940246646233413465790810506355829613039018691504846038557582055104558310713660403289651362025175176351916720638707875731834369185928173004707748017980254754122128622720679405693278948431397760501039164556254607051293619252422745197770596704949245010837098843000443890741746778547956449692739884804219737098112479527992051043606951358525736033200717509660949481106703543636564753673427817840835864593483230805391065099298897005911600877257108011591532379980282357313159987709571033752684554570738995911782575069390269974572322572807484721641146328758567535987768820769165066075075347191554093378475091343415920899443246355050124258455350655937184867306469480892678410219971402361675734548632737258275320223725760714000330219881153517746869841031115742093081217345199186443606976302123848750699985123990864155948799774350865613026798572119935457723714637375507124510852173570228292394435246384195739912711162610403896578867486945979497342194583198183933601165845379530460547979747599626503383141221484680224033292299703492294542113465107478909046697363747510657246657925338903474272234821949909964616936726725512472072912092335836178611460012268295999487319728804498028035898327495102288169510366422183678354007758807049004981744406262849178574216558766137951885890783117861424529684972872036303780836356512752980011649978407252662883000280475278268251092060296613087046616909477208617678975237474591929299409373685324731688499881190798430352218935078628322976402057058936357336783643546391667681181283086061095831446012354920105636815693492125067755952660474047604220097764082261127693468779217006700706323262323658779847061678723497742904181833317314900748404651087338251034318666837312184235407049679287313613483528935264710807421131471212109092056599612946141867058244453130022027429876278990024162976686058107802728000724254009097547243951411783037075526521045834970276225312886769525922669928210604695970472975335468690901928200251862972489703327178691394536139548465835401010761521770923949243514287907952204596093461887506194784380405346966751823521378167759918640603111134134970689372543010908805612926552845748407112269124995724752919385248540433103387883776227951855498015375610570212316185334436008478353721290489566245251621116150139260657806509058148547869087148019866130554448483868169908273860187747774140642472244921452138479909456171051322671895109941267998203644025138208943179561886180302873097877046152982767981491235845898265693787771980448835029480051964344706746877116476926264655011067128849457816316977783688242692584568849067405134842368648741471261792200816073122370467123642987653960113351856859563019024429644648093175301520610809202552374484275268596943840627074794234997437580506516296735928198757225402626003694934172786685576736535571749863625655460472066595626412066449242670633647506322902877710614173631060932693199596909653979179378516409777933414171982549318542191983108822668206065690049713219150905334858335809281505877363237155460076445731578964692860760635465356972569702216303052847741530623820456098156873437687956503023090894506390184375667574762446741528999918089315557079211720796347292461193706919037483742119923518960921683021021200419377949369481848849329574052331747810417228164020055035841167282297224382922123418412125331651609252072240533247391031722328683410093605221946371647646498982605594580308999041080758887575574639018373278227191336686312242367878077556854759445189645625950912636141311001640447627972360793451239739418711751272927549205613627221794349369126815463148284186514073937745569510208006284810485800742256090738707753569475199902455222753365976099164142548125814691217235083725062908571712209043368270217521101327342312271271525329972641726840005369724278368753523564120718969852072626677807399632495546685960782661474461583100703200691578496449818854115811587069956498946909394947927684650150204896181847965609365199654845215304827977301824784368638552589665498258819839287059151277743312694696780987906978539824039514885907195778433575786001183088658338284233130813573679477264340841846365457334776256878943065431025447065661982155715410115143181768575849463992169942010126308086993200248052683901797752058714776684939418994204603896610025516404232365798086543710277720235059442879793144471318893236159904417768902508118031143415212632811938973039874317939794619998225765892388166220713163803231278878427145909087218978675097419390579555280748189900196602638615111027658843858235761469306313659234655532610847691298755660949111474972613078928297383360788857014347392410740346214487155115860225918955280635370201001369605898575297262824953690869548068124680529239263217909930053665857071214693750605540682660931655045755154530360763210813563178848533550446448518064159619834310925293814839753444565783307040879698495641492495364579917279452766330268034841863248897764698707423910393645362082163982341513767628241760458432934614711750883955111275413558108915893906963208093979871539188583154170684558839289124375621851265066008888755170353469263033408249422445223162183459042283236338050455234521532131711220292537503506439309983925933636255861197947986427215619287206272473832473241056853255079428601410538503805955069906808122595009300636946254649897331634768373186346607498187213694755617375876579980759590940908029617070376556725590436634092981272185668625864502198810670789075253981812907750194802100870064679519718394826730958108286050482064429881480855074690654724827992302540763087014290901239824325759843426184943112195601118418000475242338035156536122708803544090788877166330008969569176345011992112822276644072723907231392149512004286215617322819558547092793085002961549646178560701937329298117338543868450452633081142226166734177979810375757232298729446666959049520895781622726376002208678699239740864954097405272524013592122552250519298735938910159219825438877752474262045480030882841535868944181499921161370517386022954817973197161267804601102280940919935615388401881350301429523668941240733870723431591151281188499963324680588692651664584358182185695428236934533291634021657793871251369794448246027578129857414420332311044494725649049267887058391326593164483533380471130381352977895812774037714441328348397904881773411514065049356674177931516508766580124531113716865243486935627079304664200821830877650391637680197705483875159964953524132476779886215958543734137693780831628779379671309563030594735723586150264230189723961742115779714069444867474475130557376173171314465256778031273669456796877926203271852867351960235966191361497746218265483866157556951154101730764885633489450878924888847990781479548335572067136879077441419827449398233192409640687319880585993325614088898599413295597023585708869430810129525814545642677085226954398520454017521300022698741985489810195114669956713376643441247656048999235106946354845051472998579569627316353236951373011361859274189883051203343200199842385231111910536640249302209034864407654356397833236934342166242495054210633246111920251590096143874155415926978855157513648581888438430590558679773729090668394910161155828803925222752943114030819798975519539269446702185176411672646042976435383230333707161490473501449243708747593390016650067601924236471598891242252730469581131043844443412125761167908189451082223117993681077942745353162051916713770136358622372711054039923407367628761455366764933217384641545017849271286519456027115038098088873233545311881408235913763482243596281390480701911830235362396697703132039198484382159337899094763880658358398719489413764478848650882583627486179487769478542035454507567275016935567037761789301007333375750669651832897782184753383144413582967520715664114009477259208461118573904941654786502426716464910928668309669224568310968438559192273238587813977079082329473635123433145882771495993693565966924935025625033813942706360349958071281115505161996279805277921994532955562726707920567341067944526169075370162814880669026132182006007615450348307976466604689618630979362815424381554055051686150358420446779269630601521061125987301952539160739263030391495939620803535722329235342622120669402549278703217071787644409063774771636704326174975675795388398884131642640326892321356185894541626219395899556285251661358447774312435651120058917593386034539354489588783883912491054342433864421791764258765378356546182266629060848025889066193646805311131768114255425226440211939601378902477133320393299590164474738159727289718735709082340504853120731693788567830744585790187520578218721399325263207974741182874178615959543414017332586334752089437450046291713126134040327712574342713205687126957976535096697879905904220685605379842640195982225515444848557286248758932424418162437309774031670820402922108594118923284670243920463417281584125629679995696404278095687517374751779888081893466482862092065553088015026840734920297509506980297067196833004713856070684623526334569731939097341543436682727364172623812066886708899678306430244346460449856470109421445999136003227011810549827038514328786412243875537080098851680625897673118431263501729023061416808537060656793910010386148432237638737741175370819174657977369149214836717549508014655846809273999483561871299966992063613558895693812896863085363928928050240298626077979345666057394991769090247029740003752249031540180052929797563283603239397509386894035015373071121190523862442428879062920623008101439021037603301875460392586980219677589519780378605099983965713620345142537097610963092173775265919084639313543747294674702703776520685038883260713507452323807015726297115796084564574224843736917939153856818377187381367260060741954671233309395683541991830247897357132501425603377171709767965927951707771058134492880685120343003378167835278869632037137619583658777106214155358657263150271116024358240250490430521831559766628565646582602252367779423839082320649481027679021857966569372830533120388469686800776803205809193163819232342457428769364349708649452360827115910861623592908716006248636831826691128897557836690631197229951012332402394883446814480751924398725662570962497527663630210349303819894355408946981516812309142952295538036325648860755532363026289925197950724784847739516031886731550119071769238767341213747236876374648914169121318123465524902366112013450775758684491818252010305128198726918287913113286972661053027718831231986868928056337170271362806411293450211587286575869288617865674563590372561976706862190823783331730819363969415129412728382027703230801342853465341073303910996261542525561481124005008070743701903043703581140658539135436546568742972079415285638278425201384076892106320420413841299067218119106731892790245589588065978606946696489045947948753095867068491690816035561172928241565290552213997868257205590395936734795327393596178724644247308513118152465517120967623059570913650108255738927693886274529988936742535950393627916625854386897775142592219280995933491831728512316308253026013016581162859546104200957709406199060638000533253801846930944680980220453778061345975991463232264258327355814253754849035353353783541230758293104538410901208879848170732355827435170784004785062361443044099655462059106166092056076145478202936832475774730861215446911221360801071807555132744194412934416186999026484094474561668567177604324360670546270852783656635077257230035076138265364443980302270528289330429262309559935601044462867859400317399492878439758092841666731331848251940180861402107201553109716551445924425976444341118655967152963246558323971148956426282250203906663138594873076008462049854449782884165991391365545763460444229413144107319808099141517199617843862845775209873477956540405426921472856562342983353987858836400046572847330511314861593484396387596344616625399309422583668015249581634589766974180352277998259971038469737002745563519204442454123777763297361368089984878807752890330767075864166305902159488923412199689662118655326287233570841066616685714336942908861478626272781020935371266517866519291426341869383453795376206671913532138616065009806750891579642827727042326434899419972047338062069547515294048335906933318413765185287089248325016708359288529333932737809388572573299649007674867265947555002146922211278158246470668669809284730108733845278046973189187285347005839439876787399478265536671097438107049782908498723315924123975170412971016543932498023496758279066014505138915433663469364317171991428577202982964983179346025735136121573095817806136690203977123902604902152587070198716740472553959217763766078843017416933755513135058809193795869616029658283895950855991611691794366707035505902037725392302862923025937658847055484703002354772657873236802339065235825569887865147607759703015045914157972640198894839856055973536510522609926259005621227950428556196127712141491550559269905998481691221703751514950505452295670576429690789101597270659160035170157271015514330749213612498219146028351698149851166467950616816596809457217319137265187428306943537260231486065772431339698792041442364623835851800417347819724685872768662435782227868565573958681983684305008683692203428811801473068094769882907125019542471219274636584803561919030755568380228918882857792692082380471525223996426094098246995507613786904797092757657730353849139952506480706193877744010681636768482846984575811669238812539443641739682533776458173739475853693379164283678692870976754748813127831826050168850508811462051923977832055289615071893046781840139752477086354801371003293166679471939444550756136639737873000043062128608632675680158744545499523625171578730596217810053899171112538081146441170129936988465101177385827514040257438463226772974865530644009369465051556884354361420309730410683682700998707135789103859986012596881433511933767045952010736617497225356760497890428238891544735790915566066413142495563105873547816532509045355078673734977700494302120110405519905057350076028141377512047795559566507137302893188896759071215050118732937858016878986006454018093271816526997643414079514117986298630068197748058784095548135166429885783023417865920717995285145252616725673617243683782880518562789029644968905791087465894035162373945285479968716589400926476474278355438114823507441499961197912208147953359411100829265262850847348933810232417070268918344250212458725675447048953586168149747848292134220002970196017470901475801959424949784536970085664628890081771022044023909571379167074513863142365569025318676266298314357904683783261013477078317313942928497842978938579516509862646602610188635719226223667393988420789474948760369274975194903472681825022003861512840250854529056262173949452000447162296825859356150109776280512310673472975120422860709874683011172056224002492439074998084627522917543104709257971895489807139890449493534226599346293552078991622637022039255707553860114142636354699260364912132002764590944498760737732096770542092877772998169741505947354215520233638394572012407148445042849421234689883978620201311579955416470535307789103406977725660894739595886283379593018920608773755403895093059485044940821069294015605657120785217506252465993218705175157665842043802616022775245960451781075417961513879156085766164720459471684145773831345430679302745184175881279024401162260908872329916134572317857586106690505225496413163093085239353400317220521350673469225666537934862976609970092809311805183367033093466182506716176928123875433554813015394697507913282453354365559541615845663461151362713898087346173161964618764931221655854419355734069658378129456632770276070272330087074796772111220554465573730467305060473068919195992093758736949189840258221106972738469176652578142518341448582438823796249440768141338280411269025529108988091994759743667901021973619974770766071622187891252442578380762177514160715638881706040407794866984735359063532953699853614866788313429743579636681333301591202344865705853138579953881123642292227921193549042862011955284348837519509845532894360123964322682728919560830091513560860562442925999403149057830794232915009123442948241252452040687206302024432570029921505322470488798586305654900096791119728536181249342380762803275418193514926806209327764211739655966836578450335753383597935817254312405248344039223974411364103212447025568491547592956680928299302606750663788875300867955871448190819688831828889201934743897264067837917239694915047039671781234962308715762256200789850710304964772630624001082993265849676786773555534283784681589396943185404809285686168379713432319372500295831580596646585814658466446056383216900683802494610354500501738940122090006004385951555098813198749249632843669933261058041691648747832169661867474663654861110589876450939953331745710344141524459635367860214278600980495339337297745680647297838347713995137228899332820917638880356318861064079393546486803196335442916806603087730875119504427384597299181256735070431037588921482664779858187174375316377131866788190244562456805317884365106643902514284620767951174267554715516744426349307649789288736428652285021076633879450524107827061471949219801471754814078099895013146000177875049124790074261611225803730577829713603975349075193159417083448475248937872557051541482053555082544734527431365335299348845766113443166170132031020342994508638364120273863828933743434559996839083518316288521831638681376914523243274428613563260472397580376532133528785221523407236211955910321681634955806174422908046759864638596555623865703954735611692560240962819183985636844883581193726554339807947602510850996757769042217067487276266070595097917959123442463678595049947593594549190188328420319388795537756862491680757428320971349208812189215465206601499409031756970430749384734821190544386196638209916975123087903437994443763608726950090382440564540845518761363191292734663377176009817503269839376500761561846074224048983270441658478836156279477777136165826552907526840442830174392080303572412011487222004127661713628892395013847043451621669042133604376947534805112364884107195815184516644764493382367171924834575748520390489895004743921366255147227915690819468802920459389528524964271243881814851544407394246193130757103681480719040433091747165053304370893908355980398047270705086323680596115315730099359985318495629725091941757406372205093238043446860538238871891054023071064951514978134149755491797561119718811194025461695099836645819680400865146472208614343114622520752081464247314102921830900119382884429807074429855062744305335851694835347754684314328210590435508294448419308705876634483528200827130628602222461567104938395562626675839593052385913957633882362174488883188610291806993919325544737828620702349976435431856836857895675143433128479399020603243035017731774587808962043784946959222084545586992789339225757931713204564790481479811092138445124074162455568786669071145760968662508748649484301372422588344592890276164298853882584697595007504564636179624161161114897836484876516888161212156823577996145096223401612803129803422445158207157133041652711726744665878183238053373633529547256211309469971352975148159677867759061103714732954390902663115502522779962591556869902841887830616412735692800942532298778244439863632090311745853735040700229196137752831870507366100969303788229782270974533782483666073083895850108843802212150451418736846746630632729896838312379319004916369315613830663602951609903437634394529157604279405105834922892185249591166392371683235829315251233397924102305336297430928760681523948530756288177727656528573845221496650665189465010199816853722614613348020621034139815901985724861480254907606028277377661480180015715781342559590998559178163984341959504412741360491759286183916836535459132594676715612154104519001884034036228835296571682162901930192922288168006873672444190136402538453546560449530222800961031827587589873897030559956049042101594552016125192598999487661141326576776040358439137455922175740322723039363993273536170445363624693996258232957241163992477147402884635861693376696648226078307094362182038358560230617913080966240897060576832253423557023883551096893135382124289342678234575955536032750757952919191521000127934662667147480892254082449199445741339253792825894355783943238519141873570597205779174187254805724361023321715987488989923285264171434130089178700970450838695422448688504036711079671771218460711989313999496592913426019181996859364232980697093573790004079220456986376887063678507517338344951041166645077268251314386334833820598290188366997073281850221155130874123427279468835406150450228816210710009118103620292321704714561204972814681605277935878948837401915215875340147123130284744051823744718437287040318183804447741056590133827284935010517030179162533417224203125954532610961251609499100636890315323660881652564052417174401028200069508964369242171206691433900831958824182261142834656377662353145681785158157743956262986154953185237453412251325930735106763126214825244984880081300881159370367874649097669855080670786606376995217076140327374968195324907352032398183516295245408752721618562491718043395175666330497769545984916093056285527933256709673604693526487334418509240873715429653070013520693600792881175718825367403626236922641608416651457652201548771543495711809830440234992847022612028579615145055428066478850950671977744647194264236380340461605736386242388000541920269056174098518120696026456740985391105825396272710033897144119400019341331662213805194361024731865282940957360079303011219281397767781254392575420697504804646188522613038435989956878294788968711191801392801628658516119778344713158813240749907316463110322391413777700900071144007110720560627270466992050312373714446292509619893491412777944391611421837772256160491447107814490383972934155253350126654174564156719778806454356881868061518078439634406921347468635482076803406181477112052918674217611165858893893894097831064047250917224572160097377128883764619370175335367789029870676265839676302219411742147076233864319028577654870017780203476845722270585574719792325345742492098631013232410094776219862318465883278106326784449910365094913424645314336482051998443572804975755425887927534478461880837944279973969003092600779439614828126958815520397919294899124053990054537380935646950893538419750233288010070325709124747314054717081425190855879212149243194468833668190250505867757277715408868050544823047973765704228432403782662085496963378873773342258073590546958898178536897783806852294006937654639891053718917747943056200554422495947420722271837484272477293789634712295589736824629918324574372468118652296436901541202276075244676549861223983230049311054597649701315626548856691098523136079566777930015772456818479241923247229767216545628637827391672765442749203845247538865642079111218045515639264009612551526650057159341003193496259409922353403216494796082532967241022881675338611976044557340019089630553758131455622070658634672161214283045572476101767705931084527701249600966243418341028835380806609084473587416643862610981623801247799162923907441929145275377911543892444310027197992773945475534752710752645820794158257419479925351703390524128831357795534390189355553495251555864905968848063479895356836246047061735215611264829192823200462537035538484691234257826938192445638593401691569075305582406313531140105154405791098521772569335781662496293748006960779060389216283000011936529471480473150865264120249807314155503772227461361843260641789945319241182576715079091085289884090687058938268373322915288289417231639199983986310827213908011490060296143553625551073296867153475160880053753444135173599364692002832347820652975287583145766754521214698242974153699271102054003584747474937367288527188549833156624776548994261508989159976362551823210955059293443283937901589240147790686624061700014443962658337663992594611545280859087220038967961045006004942300849335177863642657561344462361548575806656375383626491812221708941584118359631530070679272730097436533740407830135050947904367358474171713706457158498747838808849848674679579489791826745614439996786307253163012308309106469688847055896974129643936664107470717866765867663170280604032335603702499420205917921506604443487817453142225839367173421147046052549765064620752922875002651001114536992719657748107284834845207287548505494806142405185134865438829557933120311141263762165162175034132425015091672695374503732271736303882846839129346023007038732598834823040745889122809012652148138012568641872522329637072616992927198474523175415722214754339870382409488628034111954951959483139809670709594765873495503297136219936973484789770519602917900478305417517922578252323786177973437773777991894789915711329773518448670336559664470164204370775211094186979567398386513004452334699979896030879338457639814207570078873640540187526733169260171417298886518406163318901004938897472077071948038238290318455577012869513304101401713531897918025725572088252532072982971392512023499977423966725032699168968208949526098689611580609312074223428828871442057960420858864715779278556983180308215794015273927971163471803165460766051254828012566903438701823085551350793184982350181056648377710409804680222388887196024109499997083109778832381029596215831808714368670505066695527842946875687168544528431323040676695039928285253434995039182390763700308504062851430572241195436552589831581555010047168564680892554581870385613106914016797595075954487797686386146288738494787269422763005126991310158943540489314408755960665764499278248672803824327744383310203871545631927232809048709753155449625871029274065439418965522708953363062943113247098926827889698581733835779645532692103503391992825804472004922113032456807454490745402899509723128811212988732207329287314561407942415948342585340205883428822332770928584818843612158511679766367227597298354098214528632983844934759531891007978621805121329923785286850015138706116429518632656751010985085767467353600531460402487888238382749911966606947149072010261167294136843889054762186798750700057733428353448846269256827373637306218332717589509970336179078538699705076090310639596503912766241665599102568323248061924338847371495267931958336564304291374656452757575910131207952758588135007481845550924536404390153008113324699767302973400073501809147094767032546835258711758382032101651974842773455744467933595468402785959449197770025317425533049342510776011151538467731818799938072451822015076826538791980795802162229242450732843247015156120474369992342791521292798398227131935304880024457988810482845766981800399943322030213248394781732309056291180767731746869716300456130361074977644653727952202531404732516925549259753517346737308623947951837221711122182894788924661612800154982682767715093939421160170262408843759967679634272967969315329537438622638375682759334092727650901878299977354936467869149263024459910876264144030529102371711460082611434823636366177072458170326544822339025112775099524751867955782370567737988024952061723591471371841407400395174433500272599054192018646116618372293190231116490934521762738625744960371985964766322144027431963728162286491784576059579113617678791236609356382744740220034917191237157597726774152010819746482224311109765892214173807068878899722932214954687971486670820127494774224767497513977591546657463378575716125318486212912351885225094924395192421099308615546777899393828703494704037241402341728005800492570668400406226224794049698968719451151005975962837317690494488310067253281317120550452360046955762529221209367498429663799117630469281084414080657496310859102205610729001813137610057953772413991939177027242277536350912983476567408437492700310961858113927440031956356947539968777546050158365405887110234600019359355050203555092037347648679378838865080719627136497592627543350548059676499657774026714815013938809882025566653493721190163408927842543461027138963201144136200064985755816755333052294456783873545834659444910211336412143857685318447498530373539674592547772267644969968818118363774037861594824964008003906729776380284638448790943456790867505068742840319469001539944486219067565181271118682551527448397813293875599477920859568967767231411138750343632421212063056075082638646210991534897830075711999343441157696506630232922498265868486186405374115758828955427085442061371749057354121149377781033768035479504386595668831633643826219492593335505334979287972870369295831128334753170159086710552673017605743999663835942239654206325607881646901317682245843546101851839485191296287938773233388175701319959977312816113133903198585503831593162449056886616816772420084414070615728754064895230122147336378079648988319833270465101391914043733749098193215724883385078001813086674407680501155084417188999352978232041309125557367168692089149711697706192712456953446439665131362104392432718327855796098711600303227003638349180459440174892992044319425807428783926812946161088765939079129694350448822049266561891901863380819521112625450382736242474165595851605430636534680112369444104647956566771203242708727356309417516516107525425231259300847685321074639697183164494141255645542548004623112874451899981114786059862624188232322383941340634246997242691097155142777746234508160003705726592650321144967449927533859987024744844400380486863164354470468419358232472757357141198241591243148647077874976999017574300060678081853760453334755433402792219470421893795224634747928380383204359630941287076275136812523704326477916032216146611463315931346160167676802190551344826919383016382265529629801458384472379627318240863849756035961075499733062355613725557420235779837970054436031946526851302930776922956381661051146776031095573311257805532739608593230836428133239624025165245312744855527577910127378207553640162139737864402850915639015821848743865774279627821451217711861778003850191624509128491975295222989715657106429096897426109819809293736468012313020008747353899350044768388466070068961022425074181378987727815787037798408088215467225190460336052752334948261165997641397638629228905384647944344607887639724081778416216097265065998384857322275657529884374548884571106299887743248064168389572767963521890862283792099245292929675688694462860350739396907824977618631864984994756968272870915620467145334788640437675502390449760723602236397279713032799697403411458554856166548196202478810396681145776821918202803123811245163417009804985378522191965580564089770569779981469682641750165774304604268076936310404018205183954013821605952669032956785857270149010949821037149143178578122661125949855767725721742604224854064622980548755582967962784567442371838529117866722209438254139502627804619930149546957479084001332629319852850021595425400605094169407595667190273786815341600724416586077206478447635596345462573607831287694010103701290980699908704826901172154637578940954681288901078737564280824351770300120712983021363200204805326746053117838072011102599426295726721236859568067315759799218717512017116793039850718448245980242924344547723424399209187512455408869845232068936684567586914961698170917483518810767445323682719004518350824640362094356549334947808506118791949974809674295798875426271921380159094340435446831256494876508348383334934629360054616275108023622110816187959551682317736425549765954293863390959744093967300750847763973658373522657838075337169135211346676692887809817676738890679581602461999434465507685111209577675831809765765163334380194891705932089637869126237920768659081411406529008802178375368928608308123710244771321108375153960951441518470052256509586454355717853254246421769920916590935362421685690324116922563722182525823048673277355866504368674988056241977513517151914158122348983045269151513031565829325511395041746776610272197229511208230385384233419259179879291891148387660656261472179593119798794872519049436434848788709212177232287417856461752427654243100774867693334563395957815935723327961004851760696374423634730445026965999747185645311975306039545009998881806486671288190001963795395126031650749603454961160814552884293745797101649304039433565358927541459312962781175466158058632103338334420644149434037140356292295041038536159771946048242899621146891891259134224238806775230789665951961899261083413278122759210344251728493138055065159091318736882059900087591987798094361421090069598741774151778457375297754040073315400622596067826012217018253835595071839726083930943241609547488145398916131364594045720436813821954391934477222248695256260081718680085133990891349912187744077656513255992050910207304289630622742599855377482824320546771409351845318060745101620485627012318486800146273421756268029446921560953392291628986248125694540662369411832389021783782779908149937826742428123932626940675014216684021654106322541283781045786238121019437056880747458736051508640303270758736350051218302225464080384996626654546621612783498306621511689545773038886038682414000001219151107864389059030999933691499429247703689984074255725286502257457866910605228619645059988649372268748128355770213598593720165369768103440695488673880676488412781065779554548944363297304740023099463885780831348921070962445634238512490166487021232653073966203842789066769061559869246922686200329293279121641445500261128682494536534042315076872925041712939895658697056528532220612855709524062835191099147827218828472470673513957445814333644310828883468593285914812146683074640699687932093505067390101358342601961893249239282744956464092686031253946265390027985460703033979637722928856705311590846826558736665323753275743868263737889251552958870951803156699543210722644069025870607463469637683223495102273831830848057459206733033856966713008227831268380043361430586861361551530016647712120580054157713579375940936375976664955734566316571638472106513723031433956089558724240736941455037586454037170110927188987620890198930064777748368257242006497337968839841814882197792973434499323901186911571927591787468254090481626837216657219879392436471147927528933674284113217809394661661463159043237354974949736135078141076078470444390060337683888660720660181216272090670588392087970609494311201396750972089810735799239658569521306965699183836646043836885954145276266241092257249792269761657129382029330483615323593293555274350102444605994546616381706496462702958607142451406286434321696851917963169845341830950726427197401494884893608081064014012014654902813468629279462349236017691047228629896359817323252285583301179938360173480942937253495207482173750860386537003957199296697911798219305211797032021662844696593455452473415512361997014455531695588149409755361319215086024590483822424886109736437085466915227019656650307095279770725998387741414394706508793777960116117691690230255049104733044399649043054671889119611845738681437315510789649076874474339700082824262251254616929419817642544898629678892719372252145034757702162530191649928886863148683455487599356901678305714035837426027632976683803479922512899052986765042845429285201971634358875390092311319457037483424123667689426962102955228338280975097697372072768152581559892251711302107163367661548135470195589164992061984178180750187953003279662011462787446605135963337427346139313591137306502902522342570400620009643501845859112950203690163310816280350190460323846972631538981983962974474052346238520732440685592654141613183487827777493103511906281771102072299326446664098662594138351964155682273181423857069406864200374019637706538572065062060588394599400718134014161173321523979582204006468064900702730434221105352938375621132640953201356575239458993240737527689528228643583210571921961009942683073037327651338911874506471074564520497218158038928546112950564107072050602688845381336539524965149333047429560789053881626322633579431428254326140112726424052919015176624164026556209954332072207284139447553161180459562465486308162484883201557284069552210138951972685701638597831222698950687005891387991644430855334889272877145505266489157908819025038902906997107551333532483187164738427819100116839306107199709518701857453191629394616212430567877371449686437093651875359044026460791790493545335169142185151131546522879801204873078304164358501300951672804744856835890770135005552190221564860531109023564210370397365646685824030526937471660555865346174785501124417483911804610140393137904588317624713576285793454599067581633603317702298413090793992373139115609581216677735190487121900977851742004196494084971690088199325687393926822029708352137300543446261823378080254362416533188925122406673383635567120116080590965802474413898924433376043839914944100929924307639529930902656124784639633346996972495443797126271063314039936241939359435082968987709920483730387470212817765044365819136423476780479380329867255262486048690378014371065533789076561184280469270608385849554297974804941273133964250555107394660254812657262193874239355691653542476099659302616522689386071718600381625214722191654091971510917381520570751030521581278103689067107956962067186079752793968031592011557055824493308323571655478793732875468017297761374915997916709216764381561612449265152383217577375305433285276325397279949139548840917835535453092385827937572276443168957323363975133048860285956085981787186356284190710097242792858597235812277246923304952264559143852020680247647631185832484157154422920065885822241562127320142019854378984763227300475814449373018581431785034273959142245690828100836850565821296190079072696651571618919374774874540939663936413863373339142689549674928819447480838790418867592776884198827090198068234352306253763643634237127438363675810430343727569760483657092435943729169639936917068590766371417606509827440501935336002064349586858874560644211481664752948320260632612726622706518025302109305901766050231284481472775983330003897118610549782435339681534405963768974725304481277277109278240248369442590557470889214598011300122703500481167336837414282883097122382296702548559789403612003938897046327731262653149416481697376207357069429792425068187468153676726205121162746479987731084273706493684907178659179091627462215328646021078588825431115586571899436822781946652475383435070618570714232151200045700490073933464117241632313422885347050278155305700565011865700243467895981921781118593196504678823602985914645136535902016445945504627611613285113026173326105816364199669098051330293895921941223269960005820486049031105453955537790222311771987191785810802152160499574073572830769301229993566189825532702396432133090070688520688281415308531232938877452494872999468891292176303497527905673171822433337135707455339356458544463061722058201332654979759047554962478625132214239310917637023920606441859465261439606074987366831922154331852015503415877795095718344736458838117827853508800624232239335928542057053878184180144361705029025910795884286062777374711709405659354617176912843945558088676943339648370622617591078239766274646983908215934972275770728858895318197565273961354904052945584619006561727232805059809866712127998660315899887075392662679217625228953980439095946637744593974657637842148226765024564181944491147641786467974316043946429054229332504710751173910449961018543249649999118879878357277833727551858537519023091515346760406000750757447967372745873228751449799201665477545270805023697020428886702355692431242013118380892319845971472216523427410180070780720393531598183507804077768144597211230464433440541740912728335168674523692551876405484037156463056035554891946627184768447628902404406928796175483420855421759628695667852332721345003990721009834740620332965654311418439805102875307099449246720118109371024820871194001228900307380681388836678861748511716412572491925189305143197786643431713974609352265192269566319159469784048233285227672111944181488158971371925279917428949767091624439795871105311001131299487693882313801415299121010631936429956994137665242053524729026890298027721776010029121662418825549281867115759231811130896119124102305397999860607311284508994023665292812709115575254659084879689032258126022314573136950908184712468841765445234608984814969880096197679709752016046267278911492472428323267535429126304682122740555298070879939816510000503535710508868491250453951535146983564546731753644203896728968716790432424271021861689890458267722174327930627575996333157864737942850597571299885152146231445830070798340641284287911588218905164721488629750538889634807114531018613276110516801165442828989173296322926900596515828580218478478652556361682199236776789819911533113480276332531499041900437148027026024596006003615474539330837498499710822802465099323413172704398988314491032835852382824817073074817488108334154621659295000826168068201000973500327642659861512408243465435354857724951622491317157912567530483298979126000549107548863598081180681884402343486648940042449602454206013063246539275553922773147859993309407063548978612102640617153629665925413596348411578498992662687871295555140472049688655228214067318685653357169046673312767482222941353982668658626253719565134676803200995375128109330494824900530322763331424376431909548239288588788841143625291098486154886964903396777605698678900589315237375108469832871629094729379933409547769653782258854608534982650632391577195539393088967107809043002153667808860188225726954393880088931882762081031759123840522728622593775575752383384255023404761516587219933347175233712589254465872624069351218846524311819678887228745368889909637901376796449173053136996006777569992584383477438063139856254032358414828156124747142942595800577616091244553750086795044459595140343936259420728761351746157234578648204661050784065345919594092081173924871187390187381926103421760234161314036237476104033590332006305198169340999158338025531882334747115224618251956111864360155263723581874093426769521370247583107356063046565680751158411428894614671664285226809796576058112501657832217425769470439463434691662028245176242913163109526495073229944811320587251875917528125873171879866020984782842350604151154184474591411861772379634409620730536715213430022426933763204557655650024976244636632144015149174034257107163327277164115969874419985258868714141219183301100301044316952199775298544696294905286418843380829678247367476262996048718856757146912906219126042252647789681842265366400418690455040592662670496732610636483725949638919848808137320448504330948036984682587172198693472395635539872536256462846011084854308413918913250945658313673384955946564919087074903672117216529071421801136708213704141932763862148280857461281681934041494617671961162637309780959943905330025449700596974595374378196750865932900002073261132055020487988383731219011443856269965118138049622530994503576452830807174993409043560336976963678335653998372561942469055865345068199034453497842458346452895416294836972440843374715031675095367700907325315845510088046997175026914146651131402438382317012051134657155985353040345797531541630448899070412927787376770495891091114266757173922962275869714197936941522267471351876603752045993532187912535229590655541944569570748589041726853465286757653564930480464801740200990889152624879200465530532372141651436386001279626291613851556250085265524764448847180206831898920558533810374176379874072673677805065206182431636733345055229228106261525680489594779453808333221356272735448351196328799744828106554556288540307651109144570405193893579094300408310317594042010955634369476856596092787687695147785329090734798758114786321480954949831095211139636835755258367898511200186907973252649637185438671137047679707408898175225262706188737226144129661442562317519451031321585897612926149516665181093668691244796966411997648028414493267908955466249814709957840873910851041022578217441017903815699896918761298942120899403486071156494184435398835709660812267750084731722031895022300774896539590272255357227408309424066163381035952985713664709618311258111338202209607625932945530771816406500166678283043178884889288937058969833294734177201211349306678204249350223314602079470163434764413782229330442936320434293966467066020893278813755419938019703036236995854949401098362532316464886887594949072025813278065556339249141452000215293908946854574274714678894799158444484908777121344085350334633746567564473717193625583554939027097297975252172727332636724734012900147196710687373112815559716441210078235493591360271205769190542013945240332607326993095987892038557179156839229987154132107091251720711507341149437572541436950940416929030401322718749722265614627641131667873386978686352212327194849850252919903242735766103714324477268517499786131385198729430914909037105557824865271261789919946274021096234576793750713248802017926408546129495097644410332677019273634763698636362116142404798680113026442699681204442035500080936704631498308241759356482401940412063067430568922954536157125673202606762747611374583906395039813958732681027654969882636749637048903582350095943162824666438014305663269749162762617291881868085545573094136836895477511326314066089124902939498985250029715286412407507753614286711844176239697022237037198092274895414530559508928286805490816397011928433793412809622065915744347064618977286195195631325540239715843258307765678765633369668978002786932961609507594248016642447098262336976349300504969552354256466566194999419740895397675540270279768921924074295833412140768005314428960615776510594308811374339490124142045522536988281795844767991650291468445448074767429212863186574760521007610817946365635534438015182629294313302152015449086789193904258169615468083237749147969386655638045810644015491783348797607239566346144049698766109616833011687599584551587441647952371757414742368875504750726810308852584663071645010544581745683142670340206590795781174293200354174174118807309055550711830827435180518577232864608925705391956893458386810396135431856950486402936999077718024253916527521682579641879458021973738422957404001901917625207708255818062908819189793869281816731375313643798157335075485400212995541116883754546899199738329963043869499317872121718014793556116752870220303565865189295544716992671366646145565067917668710628991983366790085394046493694679636150466701872229981015520201193951948615604050287791091356960158633435970546736587332915005490327256137264664013270453165442315110710743452364348364353463548816661734628308247174448974538448054164783375622906716731283111237044402430547934487073963365058658093774771778187467532164765325243767615469493960384636746926943540285997028749747528940831453976725349341137316004605103043906961943684129625660412761486417232735083775194158371015101811044145179038118207792679273784874744442698704871083568345296956537433021625706911588326598078937450329072650332718315442971828259400133058336737403024578682912758501547694090481821958246183041671694496421966554742832724657919587830217578750806012125260555473639561643595533062222061558422588450550445334554253563693250029527930375648704906287872514676918011835643703521603170496001067444593588355498052685867413367343604076671895646868094224525436108165088013800744610922135652969003296732398883083615837621587728595278858907603809451726778922641292919649883013285045723114185428648017697616016320273607101770377125672592198999458820139312194259652514003945382284064970013255910681953031061027400959928835006352210906293674712867886276323862300183577175868619398588100377791535115396799322721414751337999546052630007199106698772296156454804523954342963505535183695313196748345599735773420449165438707434836306338420936280249247923802366498053514342313171135045266570716145979230847455339926046257053956897727391915927589139880807044129105112377654932769651614111464066931650164815786570695021490660781734216532704471772817165358167401827651735305826902736120903880642685011077751247973235721994863025507056313494326882360626433370765490836952391888895552747814116606293784046890488176288720234728179873507323030825892191382863373822340739825924775003262975313990253407929323253127774980812019208637408068120206477172614363710929294360623964584657750581990903118407461131060068978478606375319984941513864752563142205012738382220836757815106336499039626005780480746222016526963028756791098129661962488788760411682851192876693304238812501088479369226419924881516615177851495812982536335409790544438271663651450948091286975826502043032582311694166517549500239229455988076746993759935284899357529537709694250784537561681892687385362802924527471388283824594426553442558755493483165104714000839397235513819044607078794668090556802927612985327942382183165206998283704395928944432164462965571937408756081610136241088636929658330295123640664590052315843694229446485862125296498339235587489691192975581316490985651455743051581570030656610756093488709484049220395559719574023455705253609552718513806844564626597025400642321780311229019372624054808356555219225377086996496091662661297110127955700906079258327077901278166554037933055467014093068532834292706276295816907439080120549495419400932911027430265169693365136200501781354307626066257869789951638050034450665504748153599128482190726515033850338597384821614994358244776124150590717789553748005344062453181340607426616640489618863563256984742633183814491439980423676084615239113289060399655156107065025706173985349921590923312587731862259119245804630765824666486775108686265034426933919516289484399515736371030675139521069852278636843921697826078959458905268003816914572969670315523800517767091589308693089274407629209132448585206353953546899361777766011551813374353204063864050693813055511043748168853733311346794203514578593775048302566876681133945751598140363220181981246475625034161978126703929492701513007907426781069021859204455549147378402059031973449119484268328374738031933762706951338532508933466400988275774545944257928776480218085291653859234936270155641259808701099891825101772949040908688307862525495247756075519037959936901027907611529716607714334329518989772813037074599841592868199994441763475120759247526171808915535105356087724998805842359193196608250422243389548342982534289052708418877244168699998154749503131189282767884536780700678921507167728843136247996017566013983243515990020311152963838486306993980186305556992549613130531432250577370503886556835771091865969618595625309992102551973357729640192763043711447661474424214985210597330769877379885326600781726078758213964368842407169510400771164701222473201716513524058083505000958514069662863305238864799418431597850842068807824377773942617293365981159545134567788395467826820800190082967070175887627740977126760337081847847802381942680587674998269440702833012753026000035310552606738597069769298366802169997763222019766229073543281717705221424378744370401952949896207796372164653646538434497637232471617237441443331034859451269948462932524178352190537188888699680494898767105731054292178080612540764103100162250657117336268880157059276408329485631049287316091282809138558671521189070101484599250079601918218473311523678200715517585863582383218661838232404965662702583062893570774905465295990805034717834327311225662938934682167364996593031349148432699069071678512567608263277380974780762213188416657983932822691540095307117198805962641820929886842253204944014250365326155602481795637676833612535942797073954162708120069127121401104228731139717591789789835920003189971386612129189354030446249144561782108709032438927252470255358318219998329694796142131144179759838546361311805554329056568550309690137010586887075207677286761716172513918590487515102247008972812948878828876983129971022706297569931694945690255692683184120791549748118646968744596843556985028306254621689987927311217267333934428834918761183354428522229927226314116163045265529488173151682600795374728789869203552290200836041650004808976188882685291408198896047175694938896858635419818720630408315780899068072824104292231275356861645122354670033161414409466176043164150179278182097782669448727982103905326264204678208173359133808645399873270032559751222663230729623537478568813644108375220995655201856777368961246099566645517886536164871175375217727990717111109637285214370869740444726253940874164670330890689397825488552170858276405879050893558540400432146421008291935018111859628313818915787746254720659702256175485090435618873631985006401084915807342536113478916236874030898086787020712447697267509183573363158306974141564690170738471794718266539540707685743456296862107679885010705051705951875891036822822699438577612063261376683131049592574615790170171691805859032514893778908654385007410597886055969057881824865554397330229807561684164189964748400362464507788976865727951214005444820194790098143166118836930259575146791201213706511777471709062761956556153428642137074666646070397530596182207175306708344348961362487460843988455016927847215517062138065963868033488827937491043688362020732219428433938014849426917024538706044666347977128792840441991616635575083103581140734056465622721059131154690032503089914617064275384431941989515177062573914778237158209492081742142536044802924182234455755152925491303445738614267579453209662456568360207323112532372223198923983994321174087569085492980604658087358044909939417176316923216310502180936702557477951945362474072579204876378130309660911426236452732026800120577680160093658635713952357949621439859491796211060489116147715152697838583180051265680047585965834877063015970665901671118094681358543119091449453010794455754121512601606921116689014074103502443325662461236745057506897444131094940403523384825571798162445198806219978804809942959322357094591626233692870782611780914759394789005719532560769364870624424279838121313550970157860974440421370004041210756564303526339714051744548696907160717539583651292678724496190777886421915666488051374605556395386854764747638738087634734730079305543938876321096658222204039340306190877762709250418600551426700518230484512775956405429398902127586042717816173283653948222060606557596599522422213984015994013300701344461747930219323756491026345993723321301765044316678341007632246792692663394943093413798300022051974406090677901305605564718129328296605859883924542449778451687397456499863416499235357898134224342249952924263762251108157452865949129263233770232047105468576437336256018914340988381879700328585117038956595956124355332246943088079668221396406240346561818733414426231510033905753298840720172536493547801560618046117778809711857687651277028567966550376629664472161490172527378116451757704818800725071719529190785132964673246663209712734515063408225976467620250226206025067214700146645872277757110536609388773845591195774553386527952498848824601278328549833303248707126102687363599253534139724254739155967106589440909081400832531363524788179008688709762794455652404003292524972557595945315587765337212941695496018154123853058681045916801780156901688168260920247299202508432938157593186916896692824124813097148383948585750379458030180653302569608117555824433795018790092710583935464819955170643806584741480826734877920882665904337465193122265346896017323683291532156483104026384797537905449257106999989636162808721034587296574405787472356966496555905780591567912883636978653204186296902832815729091743784185463819826292713563179656181173169900086713493509995435890827885441163255845396754747647155686929869516836837440387093435337997475817292146951890366953059858845702442888238530373361914898739708395680554929988901792694643078189959344813655175192348203384977165520604305027166005664536639235630536089910118787822530244310426114949129699194674320313334790948577604513806197977776708670127345980464148617451565495932632627398370585641262428693453497224661567927094831534938296757213340066188520829999131698582777740166632973715001440836980069770675497759695119634949953881742943101630592074819601136406156113201715884955142837838049855547579604358103158658806558090736148240058782066026853389496084066941948391956733159131151532486702330184358275566666814066270696679815850396890803828107257571264506765741668048316045295111412171379803248316371524566951010145837139806860388484687959617001401445032350101705411329987276085145153594644919719950271387327489218267571907267431786764461665390429441375504314133638469193292114170450158831194608578679863308039063217390860613236011563778917908099006668067712695742503428400219262389490245228316119749898780644579468634243052990260438434417481581149034145255678411935160680063635992350627716547065045623726140852661218640849202131830489546368752255624682470497722418701470588295677040547842742391577268256177524621158200127148994436597734666096817314938366402528991842180514305645611393603197498812197461274120269517790741644974815774843393566473190512979948155729381872054814710157628853995531720078516799574843580142048592517581026851807061648794035391967332464691206075756639836002246631505319570504282079896187631120254668011164252896355814627932645993430699301086358750266945998908052162628327220917232240723528516500107133226128574316165287468533948732970491329031311159905138619147005474895061877142588753078940574822390774526423953547897025895762446677120791023110271789537924244388769745047329100464397270601337366006664904964552021572705538876222003577312942050432277546274279207972779942847992912629098616086745117468812255783768276565177500601572692680827083029269686781449470492064586843197057597154595677069082350604756354542003329758864009154392860216553571187415007631902223024878654667470588130111229935105194571498202597107424836907588938860903057916085036255104862252881503590771943410107966373673439592435652996927835849627229908910434947676623546664274262344757090289773933186522134969300469170059170663792588330048665670016788582995020148675035249234182648436218999934316350796003610382642475396623293480986455207538638010797214588704369114137315811890674708977857114073415021075642250286712531158488528077095187412204653054230708406866831531958875512810804399321743256632441864753731494279986872321125655456792005911649066992408464825528717687591227798722977966597307790848214884188251448402314631718578895857210653011730193157610164806296392386997109088580265373421829614888467863967685626323402601491316826385491915351881766022354216550239415246400669235464952092337261588781735952201664442643680758674707030002870519173964317900833998995630948882716095445357724614942695815429946878789762523878980613190643180680820525763238477953490631543147692430749439424060002649664647343584969111150898506347424889367902754593535854118339152709162308082801712374265810044694402676575091271858209233029089291834119317324583030941698230301589388389502059608086266853765930269581127356118450718050530595417599281879626457327888979103916675717922337464557467117883148466245617304424850552443879707285648309547216554437815955034189211529135282877501238798322023040979584211327536785034085127303711058989391654903741896300273267358886933020863345976565283224614054141945412207985896241125996744777160969803178224525662950887368500234801373818844365185760778698385767069886011581251296423023818574058340803888494480857737221341394527874389063780008355631325097453320363866795864069536191724406696743919673610194892353562832496636525270317692620793017958927800729335705936790707367224663989243579179591014479574145473139065936809498374002288230212892925001384659228064180929407635026593500253229739984434342531913089663116832106600378080184581216983807146789350108103041697119142421833992690035297602166111971843210467613510473785343614644878851565277525110394483471305584231614328772659850781011551434190797825783182731081183745689280927822187294569798949359490679520368452168992125637522869052974878879931540465589142988652083523238574002167591324944979044884935405034887596306181538076558142126810674161804594235094095007660156704416199645545039452649333941507370589415145430822783388614421356699403290275836852478652234448281635396726969539724214609363976758133254815675302076175038163530620452493233880456321077227695885035995860266773656795016780498957022738538428822190068088172379623524470064342082408917631099873299087986511873612908935852603432884642686712572077512175419762488282784188352397537411198711682768641736485035673200756731462112612883725844386734858657916565930952991549557633961220835222396248333942313580792649264173541564454770649338544954326890965068584209929218611810725556749058679735967574685378631089176531279136825424087002990210360169427197708553954140990833962002610146821134947642365556762720343880498083542002101038354999084719317023898723690973497227603431978954129457932633079542265467134743574770601012816410239591180993512987038436296283237060903519416476970832352878457270287668306972480966234984643978281889663023307989354335151882356968367625758873362617097781489625635202683865837320141065752711392747197871552412182032720922163137678941919874890199718530823967576601375373812047764490585558010813944014988029242315502968694555627146673512516311250927121935937631984011821388674480425735485307026511245144648851029337548330353703861315689785717422245109517959442438164645898964037745857256324415682565171805086146006130387174742759020645969953075132733495659576422827276642656846359220832650265440078536468807334098759811585679204991295360913748932527827462770542270258994005947695443478726634665539188611388445361488827222495273939036021131863595663794481910237024651543647619689633796229609065809975523197706850959082445261475571031754425348491676837461373486541079161658630536244048587729913085307390789194109658919414717844130599232904781805930745088689944663532258314296890660701016104438302320244449798800099620868824486386531417822635214165143350283953781598536119856307502437764932554099065579598125102751463709232008075179913983190287489415767714353335888250993783133573464440645830493836018009468500178031434534016230450066419886564403593492463786737492798606865112601440893751910203973275054647379866887324516566906904529191283781988492893298770936848336423711980515843045759300148805544013119662700302730531267261294118130278055388197011068744476641390595364235421315975891719093750197841593872540159467281958047926916653776910256924117770646283420188705611458006360724378772771043008157284216238506272991362536933840089072097573886587819237990719803784724937140356386207075111556935476214359423702763360037830720061434886889160982439438679319340667537413100969581823760397490210500869800884717324892634727416462511465603908065941098502364964043765411187957643963057397488576747572746634836108004569051724042765678824484716767883864516736480949147285928034338504336541818650633856644484411138200982555039374542105811215894462047916228249396441107070502901654609888386745975963817576210727947181079718789508048187843860809473317961028029174482029041945249416816817243679470546478124142439221896708359945769274209853158122470208594092672004131500260868640620053444488225461943352118358804359555430954006091466336098916819456723892914742252130368852832497482202615066788397728009221100765254914941818743946012294956210098050418772238406404660508604755630087775571555816527915012257207648726365220790336121519626899446408417913797766899811471940183011961319289987569798195527641734333255525487182423727342109853969963383514170889530136118537198308973290680765283279237273511611643679467312482170634324074561044738166461631276207358167306489233470793201576387085527635057459535010504358428239017993021799865577119680915974242106869425108647217073909669707432052795032507122351465579656173492250220962169262058424468076964749062477408531373733533388587933374190139569444242478650629115518468498381456321436461618172226751117274216622351668570790020547634588731026223033504189839217250995110750318131113231404765319368095508707194936014973722410384398067448740912153936826107678134930194439640587799946310572145102392024020908974210447535280495543716864638087183416452438276279455161264274420883886410376247613359374925350623470375011530257334470345798201604805752579549104525803110273640247059543016052364085004229591879580808309399864582003756253240542500363292071599582845300105506482464195199999442952554350578753840722713565194517869383617838735605011462549249091343700465425338996570942935049053101586938918884334952225664439204731757193696316682787083138109342045048460986685154320743290304214064942795882699586915488275589741655280087422787011970273239803564280548886191157562919814187264177471472366214345654673743147078758339019591233754635276448075268012710002158817103336910427541521841074672691931762846478830204771727231200482245399402328918829812090713208100248961360811130873403145150592380700929716133693097198500228593504482412813352217228462847508694222987811972259084293037740620457066723089771957814445504556093766751860163667458209694655365493789106139550375179584679244052655210886426065075998094314465885746879766195511379214826591423804278202300809745354665473526316061038648583557645674302540397281106825142414308625209223536465425392703309211286510595966968244523888945505510525023199105062716024864555565289391282319416732243872006376548120932288310365843589107156804051997841730122008727914387912427583374922159939962937920723162141095416453080261609756076123155291940529439709474019116729127348367982181594597220407677269900245565292553322578108881044947383761125184408370866224940243646371152766247115329422361324176288262026255470166968154385566553480164935297373838109196517368862949210839567959566119690541543641478637030945211420576693049554615621237127192122477092040769127389947133933080133753642056885475187769962735849329043832844627013763279285776031221926630087589628704937882132696999001593122332371884878942390619588698961129575422146078015545771991773945693006228085611298752771851223632584157335229583991010726635754218194709268916689111761984007946489338389683467540377387180161646832823194504076248119229236052032945881536442077358181384730532153431309235519846379418891097306919369467652272349139921061723308913581261471602456360676465961726539227494359230566212693605616443508482900085883974623963100341008263648159121924629738936051374042760198536384510198002306022384507291196681734235605373492221009869856767357356977412239604601009963835479147380819514026205564966069117503243404408252557698715650582622374770837573979205383199897129280582247760367191137882897293074699203558651391364643032763200064917469830347628568479868317608289082041303829904496819142364602413497468267403247801420451397823155096485341417799023513718346969444118627696807494428391776061914319690998625044863414497527181331111470117651223853981864303264899435732512681833337435029337155680888078368280737935139662523227765974937896987287350900350260982510042696799621690849755330627224260588011935016000623869182501965486742650422017543863535245969227094448185723499533706338828271045879665789064366768967988165107018216393802711846313959923615142879700264178704233492884361683321026094675681175854966444599975932618899042143551569260152952902819846880441142392669666395364066543741239689440695395839971354994217143120844335942031273946708957295713420223825972043849538207976981561608749421277472758803831621422624651137738938839966142426098615881768297807459491812772908406568134517611158596412050443954881107630918706267773342334308673488432940288027910474709001282637478935273904098726042839184128557528944493728566064984459455617600871108194278011678691102440263673324768713831590338431698081615215623479041261504351554318715555595841316017369094582370620331623795659647787900789886936643087742183363375025342272266448802833590325034996026562226737732060715083821816648835102664798542461889676440633138095243856639995932107588022756359932035679044572338372685202488866649315422988244379592112204181092123212928489756046134429338772845353665721452866641344833652915414592018981818743785228154787384642081461759628046533251779677243939245817959339712935335691414040686891347734089561204238374161857059911122882265528977976365582054973144769810950516307053663721894765873127995468845771526057562917157632067399478930484861130023203563279171728398112323029157446338855849403816656775465031910920056862760463397368358837331514677492887203243124877566262552860537214072050940656040468233585535656758309226115988151067720165423212628270187376619689296187876330326449521978905585944716182282344080271904297383289390819946453711791976373344864599409099762794491155389564420367560224054781495971333809692248495211341755239574471408942789398274046732020293471734489469474230369300742563152577486951467249555181821331665115901114551513358473332763642564308972297445252801227683415621152831583485713294044794094056186964951615675653234197172116862684134147560842654280781670925805753463223129462955533583684623556886247296893697248698183136488335587212907018266771753204055873937856447171104876891588382133252872944898830127874900879628078428358119810273422853851921935649733312116079195131940763191799810986605532466872782601515080583914695520547672792430503488021548545447630053149420001205980607124861268764324941793882856571428090875388833806273829331688264429698786874226376875003069661971089608345813538370685789215036162574797249182157351220570983765274174363664795516645313587381422808086887843666946684501445735706732549767410487975651580660747661286233045001155657832502856079563462963679642738958451428189609503860085303946489796494508948724350403847014462120170391439386075655729345444117235254516948498929479810767585415906140514061643718349556499506048176352848986315624586194271594952984307991144921746433443930469488970794627769999193659358354175889147207455761176504543397686050263280193561347091102823049094077426223555841961777076515824768612467271435869791167891098257731452855736793715973652129819098999785125235719655828161349220658587250739576756403735554024696849828887551649845600278792827569287591758381148815813960790588242035808038589043778892499726467103451653924313785413324268135908505971012998443344223009494713481623675647677120865845022657401380843107173922702196199941221072229874276835892114326525427798252045320858680124506099625689942985832623030199472728121243939177236621240824440749428167280443995269891608562706232998407285059189815274589540258046556570685529903639006546815948023641160065359539886138911848315168045117059630630369460243004429757060574739447211516157305564744943167773116280143849962796559467081562518935762787345629921597337738179666621927347954736217755224448768223733358539003702330122157499045450167643074215292721201188516361445634971455772434316738454823585997324445486465641206983952082696061217974195410086567461816220187988948277517139097323852152520510738013960073441682600639145026838813836573736580882060452584351211239953994633583794957966937291457514257620258197205212141259730703109089582438764971682835100141479800494878608595285307534725629006088809784742803167160445903420810228732189473701599079148739755729590226587854626819784463924960945818627847394393226882274610338931493526642198948816621719692503309358857554390428519093991241328551797946609398267508096536031727391368432091630525204754131670033487416961636615931145707170537181661292200033522412750631169612036002776067509325995543701389496462371049855646635063163209356529176918761286721781896879279046616561101839623286064760961688057664027086620397322973396581454656852516288982889600948701940141554333621509719874029893234456169790025314640519779775985826028663134346462718741404482921297398771495747275724928422516674907524838992296229783666786447433435068801146869196309821948288140713844657149951968759087798395034622293249466192024111231239083805689755394169014925569682894178977818374276045676632422369739262984924389351935824909576646648973568339230186071174301640995577806694169686104604665393807895801999390910143432225659752597365781460792060245434775090991836298516390622294834032475177479113464268413316052156308530387002357339723610343908482629239955373242375538852244409181856773205035269508467764166808415688273461746894024466337469669762241353085637017579413922417168226828440878616595642503685816491187997863653100047392807920407484671034058384134535620064193053222753782462197081384459751690555671697451547101032228015078197899634466568221258526509093321372965186580818526362570478005562790034449612803349719398955858489912990412099057200178290218401430287457188526288406721180872123346534809007720973735893199593217396636732932527479399726546185476069093816817897156878206479816592540994204987602153790257436412844228315672441165987822362365128839687607104223254015383966913338345765383951950717063803190149087713790412338005197290025167061631372900005089744542019451490000932919933536237725264853413573704639112393266690263676425060749775153768472890189756382373120173249413880227815228014236078147802391892908497150307161119675976683476342795934877735743381687902747701146134877269450027345764795599103043018947113028983445944977193098672324355764657872468194624932941055314452746560134292098344231091577937395356530027604388796667635823855078072058556891218575574573084378517440486504008068645697610596094875219437985663096300547724722700303416583176804302226690712169004002702049952655887691977994654185694594772769091766389886318411095194270977026930357231077450962501399066247580912642667375372975475190634936141745028360358067687648148607044851251636068058868898411538371583728470752810404609744373163654437757394046903471128632465372940357832847070384246392105668431858858769276840174531644731555989193373660749203660616796924350199046272462640312440870578653785861157149165762990773868534503218447950332847013160404672769150132031451419903375805907023387388383524799592942544517695375007252124277761874020049239450824172883058157776792876738875026266659616457363223677889997515603568542830376995818820108055694328503779524560469659926234984558291621166744289032100490064754979298010288494339734409985850580833347909842764695584135648450855071961790004916707923145822528098409764639530414844881366379522203791452864907205850976880975063025943853564968932819966409889785175035126316982721053892582118605119668435576738077176733703818327464147257914837606371614857367581959536166851528471987129103283873211951362499472226030821738498508124185725908804331313278741238025056944327318719657846496313668466011637628842050606814716255730947544446492760185713823029752918950984411199063088636997337729136720158092238832819851690613240452087645083821063848774471310727722433178547054073621264818117882978853683137913432610505560371623756666767061442637902452085416366790875469994427663360098806578456903481829497580531840164653654063541261141952583575530079712317805816613315343523982404049703662970246490807880267170850052819269777641499457124742731936590616133364233388977107324721934138136783323073081877347959920318452027989907688315204764907484468719725924387931714866597091505110870345714029096630564758887639478779111109010305097603384690629639910691028378901229414247805063609017994674363909875695546671674461909394623216773952448063570471146054895157581903402171046622515730636165255125535225151344308944609720139646873840508580196567501679183162404965805050966493385429955954010030254110507945924558260268002558314225041118458376080845213704640370249453781628854066981199921498221399512411760471701001745318444461067766599562756476228496965541895378506227181087107899276469997927112471638375549139325480216705898647500744667454496359747972377322007544431256403606305409294742065404704760990825806294801444874159104277361529367010947257461092110203456979634277043349628004582577666191536946170695791768321445250992991711218130818912920945323072203982812327562979724397597607677019729294497995163836467113839046403249243234317768324839346124489374844443264895677129450137569116063001393014944858013509231139589802360275135442359631986930354899462496551096843379798972985138399605321526157956517942084172583312907779901609613489319549257810614726289049212106528764270657564786244480122521997062482058870647381319196445007769859666064384070634276821875964694717543284263871122751238425156207098303132369561188966780131973481442937903270060540345455126128060698014296553882084389486114982009814156296194699204813317986349353416362832317862384825105146037364077264802142754010404792337282158641805756755679287235369545591141018702140110630569423095525465983305790268401296389898024630731883390412820098880828552498368562799098093944186686412981168375531349003018565200102748887424530334311395938287178764147360848268399348933230687949762761149735426826602010351306417723972485989778708466417428059268588303979344832674358744161218841163003611461214834361041647696802966230507834106036853428800337662925747119796116984315646175289416981645987698761612902327837874436763712812923300402903386229585936151055289933588302595567420542011314483417076921438648955472307906025766542752872635545866349088574169679665406689061737743734657227586371917304684798719193238337389615210963351755854290702716054424666395273456849634925865650162771698298855651050668016744836913396120204349444792441648721577526258626948234162499189097657981507868131167207606037210174237891735556838183459835435277776191045782122007954183419021109901155993963929681952100323819430602580128095781838606631390461319479689414110943218955540420998471808098807447581051123729506597087970785161665528096575082197198677787063402060517367679706375068921868501038660740260726470006315031075248569112435701457773841633478017641684013785233030647819928519165763077056134622156747841151034739649982255712639223888880715820804360109727383951383533236688730778801161254432902532339605780300479813860807396250950531982721053201726276057041434236730543739911732262203015303860908759123564084337416322040009029625854544145124646889762460662073214401299156746309889256978620946878137400203410195626574685454302280832566762020994844434114616436610030030116590327627016273911400532527836407854364340305987748554170659676117094770997955996628552083262169560850845913281033045046704454074448875994502389453185668461626360026957584156660641102426767230092326218909094093191848389585449069536143800896171129973577290211569448891539442684964167506054923775564652330106958986533546064186922039369444773967851391522418827556202753639441402176567420784203639119532066983483609076020777740333643912341844567824268427017730587655773263288703848490451177958281060221922035467109877782807708718091125049642611144961281084410827279884944960904414071585927808612261447978391332678360655385184868963348145703112476902781392948082710981406314034975687669934952161844061634556951066053708524217258756068911564505239039963237630311899479831152280819920111991381619803718630797851748403094647441509908960374601515750738356760270697166045073514720016791414733212067761546496804193285456182039096175145629209925672008830737911256356774044189465937059430936786556917793689276569366857464909484382666085117701453375164566329876911384695270514050524343642876720677096729101920313460423664239525945529979404029000341970319014407160490153867548127224845990165954661071551768131310788170773554550448284400976063823518731785618539424768711770814741886277796481513659610600733493808491408782816234412473744096960510590022131044255952155158093787021298564934667779882265149727057786979660492838117423697031309182102488585127194081742091866114445245968513380892299930182092137323566318359590470675984191332290467651432610363956870608698987141623810676913053372517920416037811607281925980054329775148303393171812770557047636029034265852093743912286635174061522030802265465744977290561383915564817102820016753784938073439470274476662326039230538962493844345360035143777498577079543769317217250021198894685725561278257155779391862758097450896981314667836669403080251148129320735732765417307285939745589551942405964350056121722072197532592341485352516837828807796073824047796043457258864568904551389168122594677585285705919714027994694783058444448636480278101053022903538236436604560311827980090065208092095207047306771451218408213330116071085147624692985021141689672017619191670326024077699457936367040931620299295306165601247235553827017274375717083207013661188001321502012818378382848215561241311112856511242355728024241511557349242872389566404542656509559688452190347691228308966482409710176536496081592102401806706863130284462474692701578071324062547210986077198396855218278452843703556144897877752345976608923104633010915155358240410742354968352803281243566086457500322939580351946755069364457695587082836598874763996825731743982423403331039418116615316795271038879962257678332237388130318065417333528120464755116514447417292869575789049771150805822119064847982229841295265781755798016176364310459036529929671356100243867827057949483266039212056281348334222959006233150941438311372138127477850188964219176878956278859917219474418992780156687764854614345555491832524174748646736633483851519251336898865668443176172049877165542397781469500951342391557532573165277371561463372832661361193719822728838637797919967891460817133909947122796875922160886441656478672300481559982067308155002420268668533640310569209955117830030168622490848306400574474555354460768744322744883047022866076811108078334333496428026643196388938081679860885617594729188572988522281982588958963685365023062397478432772960127977420930138506449129132537948696331323941153531133797121209171253076898431241411480867382506900158816703203759661384343597694758127415736066506599002074807014588666029532905692277945860443094431565296925172587262718095814737930649393437461217053458448765840197766430997961289887357615543374944218064496323513722477404055526593040557288709365321625752722681080590335519031435147929193883794998615981674942647172067826347442750757101606563514308856347835434233482181528185976773135544642726991918048893945144437396366935920767522097541766493263040180663475252152990352655102081410504717116006552797009896160203532569760188414369225257513236882005091587101300653097113381858591034634606541913231762326408889662465898024293853197390418931895834912279110426136783936546272267772972482042536992271455878599210662432723963249991540841655795061991994310194264861025157825874902667774828173934705063124988070952839713819442649968998818237361573457954496476498126992233792557607665699033245240720843353116606632714811578989309823024019838452796936019465991171071337953052468186744215405992512593802799682518928323425139466573314844097071358960427335814025194825884817008735777382726430452872782485678741896951550015174427257063809952882099347648737902627892200854651876675239964928743344067401362206805564641767415718738933284694603363797496707766334053421763849344021331446378146376626619816112893606467400301076511172150117483938979476288113779738863588833782786827231532782289238678913622976778863017297800621552864284649611160954779574289824685850500829224834299635950384040818015808042537322792268512457086137379579030068068569399722430987974237234201498682235700961558326870451888299895015385234237085868882704759594531619827946610101970536763090685001836006119924181001470995047064685846616890484652669526437428274885348554979877581367659056160586386728410436100341802728494031225612269388485410891813501454089297839305195797611822480883792122299883012228929637479381048057304834237545625310775395234041048072574764029376055200392383467038690192951442887426048478462490067561194785135851063757512090047235102627282246136892403623384696073814471263555147856288539413304951764464030102588234452156768961814084637791865233483896567528433056146638109559747536885550080786625116420570905231574862117675772886352593369328496775066465749785570420902809635446904143199348280104694579474060158690512630116721559746096604806062042963585947739720302064771550661162787996565870947642529421262294512927407665309477778647343917008980794103129254038983777478587472459373267538743411370108781933130028462995795074690135605695370934186930675238603971324833715829482252369045234952417312171513621418723013715215107499086936576831786933419601431283579033698228287952001728089100914229613818336961171882264910139561978116704605234084480530654058986601388346937206892699458300663617410401174537359734951046925121861364348670562788036047362784848112030199149787629706388536526594916196630486099359642830425052574693350890321038367058141531126834551641182641233513617945796375565245532576123609641458116239475533359272380597877328164066219474384080534544372478022637100151629513475549120348585713238606361986869667578931868037802966596954915472781515110146545470460164994072543049485446252897565065457565911430296889985908313741158187043922243181537545639058817106728512444245118792592786644230969130327603585820087972276380443615957738838079960183399086489720003288499978505566238811707652631080556743537346480098994334885165695183915856888371930578955256065994757447598377970574950654009662284693582764623337925637530963842907056749670128865064763978046887373726522887303493094559926567728181645975383251689299453404438819421922032928615479252702823128412678501068269001187776345528396366289846507651218825906333185664162151360641671768764438988621315044447461304578365680425371603557204390279500568873730800250931124519920375539010824404909594053316508789532846027320381477950223004418015704997411673474186509038181123561768100566132124880488846117963064583911509892834497257738742351257849926041630240194696995776766987617124714746565962893867195470375296930900437646980165035610425804462299604290092931606409868391062586858046326049053608206474174530844495746095967328217896764922252651066100743106950224327312981767852542927207422853996184445924770738331363006069632491964006156046243289468616896013524194487045261427697512534097852975694335755813625757727319564614248574884814303644515303610907186090423231997502903416336584952418537446409733907522405462362365011246267022601891243359088403401525344971316173642383085648921514463464066960691312106634121229979005794916905681821946189317607359685115747233178141857638221784887001276133948526470687124135740392187812113876511345655930223987027325585436221978736547952874623480545295909999948585013620672934636644067746129614680072059512833780661658991670353590559175547755356180624479931918894008978308918727508646648961272291283913807344294931554484548986494064891127019166834716790989185552981090386763748998425715589446168462187860983105275646271471689309232906159279130611875080294989623502196257438122182880071189016756801317475762853646020279072128819167404589949723702884015715346131401257545843252381572729898467479852805408980675686507064258821426771278270936056638075706513164849668454387653576604907879604909735314182744874090782258684373641239208276409772958270444416173269736549621347406239965913548230411134094803359279707528805842109429086069142835348096315312581759094626090550348090232093483291769058293761938910193786343895693383297520669784237746044739098800977555575723920763255473376410362748880819337845241436819030348082257488037470488972864351112263935983000596784565542802185214375980312736876695737515441149059205079727245416189476883380275820501301449203374477536472734919536354252161517389076799819232853100086733223675285995828064752150835523045921701320442476663057851027944825928289577990606583456502517038447935076376871217957174012118722562700594878875873224064650647440071505486195340841169574533780774917262546452040645406913309403481304907132114071453568657423232554018039608613013958550783032873274620497345124384379264100711560428680850539492481014285386040515620218856742485329420873417171588205719366166643501970885477180172902739861432928984866353812280924345662324132672870399183926916475378620535657931681425215727628089761362852793225344188971212788590280658956111440475271251438572129176972935560540456353719268228097169479282050491801413993486202649936241941913665725733099258194568115071513306952456649061220383751660113722481863812839288469848892274215712585787034849262659824559798968011675218319565969464352835675124211647352149023076667874392872978267057785700873365856208308737523337994246774432223556061238944547061366874406999269449643502194191702030866014677023003678450796171038521755693541891931284618958379904341017357738806296876031122254173647948380834294174979240340353212858781448278129930671308487931085692712132056127376262203330499996492478415487426997591816139868595284378421958876157544134941374815663613381324459635568540482455835954745894714906669144092701121052266657890427190332079345639804915614611546677376512066837565851440677229853834385506157409006335613170634501403700854583369985691321103032509058635462391465121560200774399281884766697453788359883580731254850306332611371367914609636030909301670335023841371703267431431150153908583079936739112915488896692045450394690179813529959605929857301293932185213459563927144703282116803445535700987749462645297167196408427288312398091859533685189448425683818305662002868280456100289734449186773633168978578066887044505228495800185631477990761072374562619925497517297766407091196865755048581437747469659407154003451942369496276241323257056721836194617493531349442710797214454955231864478852690643140746102599901584707450736634984738603385430533814545721529569206873011109762557603145747085814124815381079511333453092299542437709895273615228688250520580067153245232394977037237750097977841023392691070312532437717589423384037821472533219477398819860821370200633359540125208360960752786973976077656775659630955886677558720661604453163227420034257116062099292607195739726111332001579360529869857968582906834248831161324514032193795614196670221083512185572984495382093552003918964435250417970447302923640678472936983070991828375612383538907881573323893424932814503032667596158026305337307498178751680442017785870366368524879212514645405251771414060966263798176935443109081805959291236131447541185182911833944803136663885771097739653793026812967077448559559584525925812839672588994931861510772992162909729514557098364014615830333289818676747941257458980103324511932183034673676894831216128976997926163816872471462758382988360674673518170202775937822629505883902239114234852887010339541749074691316729360510071363005211082258391199844745014562003855947699467239734373883808163737879484498673223916723387811104563636777805994389039473250661055394955824362220643672032864020991907548621934909299527302543482433679958523558802094221073748650923223074283729574620736804103428429225270972377626226596414795606001778654376756835696245530060543389963361089077282687095627533397892447958181593086184342685525069542180423071384339934822670748699716470122194299037271112045629638695727994272641252887862515253834735118419874465244907299526282959891849600261746817036580648212857184056944436527970613053022414179249645534083976012177759353626790453274540363842824356630663210015629356440937042617167873861234416359108312913073371375454656757897061338288294972516608718942103643237485138461268650446400822609926607208164264322377126613991445282198340827627461031279372888758243623802866845687849842868406992018806491640123515465195508856448864485619565585250785231297353547804221367242963084658518374371793264468777354405054512090206856212190101460606581016050009373018491154785599293725437738433563894134405235235773936825707084036570223557959011055706329223753418720148603192533201174766973692381429774059207992047090573910525680747602429637561983725517484322591819163316340663748837626263371583890140970179527919210384642391345971498770276287205799846569496574379316709587103047533370984268680209259344114666540178595140875855448580383967179392024262097108207065067557057557098841433300624013369243679428990188111903768164036726999035167258287524259066493316403367300199146242951935559394921513673028282342378170330343963782456597946745018077529850046586320575630221349834801286023257541241780989912201832734897073665620130070064033052580420075887565715139583053206738548143245188756085597869917269900541971743528317957364960900369179408839224447739209442761073727402932743327907507231924371372544248814587952662291630977975556595959600902392143622408651999155964352488189149309653590554296330241772904591001250373877638598956830413399857991743775642471183426350080015311530010671689276558178994169217128042880995169021168979199071693330126716955138167418626626108144458792887539805756532835282740218353477411515734654055131796422015114972572843789904818358731682697535797412329416836748840645496684444392790715277243013758890000459020899745962870993742976860239186341795388340039427522041092981668813938995993349021026930196966525380959459116708041181397474608948299988022701469872552971049571157326453078059079749172468896895118162666029598693563173761664127008482049258477997447371113496435908334174400313820224832165627490906005788811110384017825679461744481422537621941989018654110239706649306324506594938975051968425142799371689318935619989424221549160899937383695511690138995236414075775734188538586362177949292090561676692019977077864136386290925808405264180171180738599248879050706056311930162664014401800528790806211018625751335484845910563389318946049908464620509335701309522438023868559875450799579091509432612563858550903422352387812274501060293584646028578783970527380906255677960151527959024817869686623754997931687576175766480466406601943671564435910659317092394435122122849401347644537438425373052571307367844514681307008238498690355362105623495360836209629869915248763742088351000764686574674476254276319933972246975393080126873522168294506113978732592187346112351736314620951134946457962844504311142986014976732182487246839599303323535736127943789062794946337098288832779755602372245700052006150180224146148278533974502999891053233196278088416100623519855634741242303579116328017636970999288335484104551978635267066911930300771873539019220930289824469631073920792940190452799016953383985078850646962329187265952985058678083810930901504825192286846465016312060996713824986095953398670108683516092638946477731055998278384732583838418819881837984985577477425005121372600294997845209002372723382017726839328777099625601912960682437918339613967544126733761122144816847099410421483436905883782696957188478230575865447760555840030022933378755045268313125976890392509804120838788077248900927204857711146909647034144881402112227571088316403783868141030081249492318928589788530086402375803710185188345367142326299594440615938972064533472551100985393885952944477163805932364439409657065916793282409998002285387768930489866753166425279312025513428228822270959311156697357843017463952625425567067952583199486094964030055887067973154090931070774715193112611965940415402524823003416606435176627881032924719373226814915585394694850205353093060270918613083574640795147926366773322734747977750110251647197224972423249473399216576599634963301565441142403042300645572572001838151581071654587508602330539543363893664761508643838008202089867047892540464172992389306739610192777051745685047449833875615235621469737385409998520082634794059084842871090918421053813315931083007540317818585362596944014837363671310588354298678854542807285719513594589705234282464195969723721311879694884204241251238641972384550838475593804093991875418041011528583637229819610539351683085050049185203499013619465050577180371628534844336383781188032696651468521376194815295124244307038039993266683517315488227778711598184842452906506218979806606808780621884483700532396995563708281558039419681475008035942645485248600698714505970718106611178366885295114644547695920403050463653361325049166311205157173556184858345577059498297818332554145738671421017888923338262133406971197986003703229668064392639659857366948123863260627786945210219297973009469729632822858045520389277290564282335654600517095626405222727831203305004644777695555525419112119030972533081254967007351811733661699516274167182270139794408699803653168565706637140382441482305529885034478410161915853683093799951679572051230274578475001706145857915395843979535124356555336303064789010814107423424497277852903921262317583585412648029965081583188927821295663070909733045912866196089387798142991357254309555931740517020391466913194506749324271920150464316451466987413569281286026615901356754768416947922089726977263744813272620750613892695520461593592072039609725733062964990372380506196356508940103831060162568563468015985337584715449406197462807481945679529898503708495795741273953296279857780590052462611805998880632293367860515453730218798983597619293549131066094558859497297367928469736300801925687848132454797352752569892284453976144930340216934396264830566371076725487292321631637288946427640827329039801034031588130844016427239126971241246694683274838988276148788231737120692889753568974933508160807464776796889374560595900440090240956500059266691335241972113708075440841718677896094900492972827454263111876078604443063651334078351092611572272672377579654677342034128581548173560039186936829587607205820081305995006692480304745506442260746190548043879223687339395249020139011327564495794812130426243362833297790217289159484207292665354323636511155914250368996220671708371445423673677971160660279947598175706732726908961102564120811060070062689657538117510709122687589442968171928338584574140873161282257907635357982754558291005983258067231675185668732358691899224101015471467680564695013282867912753078935009369566873259365659655652198529818052037039326176327629180068168738081607843403489316275790501643605398061618314841334894572077290757287895055175540345618731036328097276149832256600210013083041243161838085258911642660537361121200827548146895469888266385429643277571538638706262846730018336513973696178008878260040853790593135179503967892096095678946387868412864361912152259557048798220730131276174226901996962682078089887437730711640995240432802578958681960124239553149416663350160595010876632347668084201955616465875154266575364167803007929236710293921847741988177006151015823001034850333007875435339134609030611349319152703364319167745777301048117780518297453390650600163019974356990279361418367932517388296316266026491876445435056580169570668000067525848000284481769021780831937732285182726640257767758237801442550858713345123067897531336391493897547246008496355578626861909508184971460390718504088590030523859841739314911031131666023336033271551890190218808313243793504938353803435929718386852303352972914472726829862546530820028776106269929224838052646110363948533758006943176928788931031013087437553440758461465910561676040285901771206671546763567232438573837494829628086401248252247313969420917776493484060605183665523101778928076957625081797185433169201190555025155470635175482703869687596107792036988753314390345407382806053937288858641778447838264929284234503346351832059643607338389674052043324328796474945554055545973987621946595654427509567290121586322003342124054908537673211969196955273611191753727591269145935077472371957092627856009337833066750951773189753033392581665245676068708632767575580108073280264701096463161170431530584143107365997472147859414000900207036292939796487680036946674750212111652642336908387253378506934402528476986930042458453330471306781432112293192803783099232582155358410795928379794109817978404696383358105407043483071476346982437691008569958090251916284540592700777288675665196530005319496911931419733902418370780635508369589257479929762141218289924062050492271090252534943308237253555051535512301771415707147616555150297847340007350843031856090888515057590022756816036629366839080240398166020344808919682311236412761577394325285276050732861870879487462661154639890737581425626644840979238668755541010803433802739427947469102842869762438565473731683646835728945349854322820748154249692442795689650109398480524432593262980745983720549934717227993392076718507294674055378783544468983332194323586796086876953228039226013164488128752091310326496306394802073648003496050804961742253120382838522479591847521090644358652503079074461591291596141804679011432897181426174841628394190161071215713508614785935852766162568060598768284349133535994301024157616966404231686345796887254540262417464066881618914696425550685142388636346247703795991092810521187225398584615680965702353838346811549337640673081298625046657937635776164588991058558373202356819855848196464983430662744737153135341618691205990153551515858208664763166067001536804773023851644966118026288478838547264625993709817649423872072288186812317894063550565131244503860814920031754524765215099236402256785855586546300854726138066146270678594905627395053848252855467964921582146554465805759225061791655022113355185599559465496954991557307634421838240096717483384686564756940856192641877460174476161776050757676166468160985571724209293317366677774370169744251352530424326653563228517426178278822215437094549620690785131055487186123941873322149242408497677496217370242393572731134100353334527869733979640757084067045337879035920777111877506448275583407917475861319781038108282610139188895226777079754023082212858642917321454388448875779149453148508464125729477216999362860912063038615245094960079125686426723259023668734230084202630599854991654423143191255606547607924589768152726352286091204824935240316688168259297834061060639679872634125218221591829688293435943783333576061739212235295297965184747834531420913676443096747688568461311085749875662527818581110083646273923173943633703213913783571049279583175290588917062772569508600531231579494034922482431291452329595602676089126688948668833748751196262736907483930883998854088825608406969978098616808091236079498912952899114588314203190137340888219244612888578405632305542990184935514656358432234818598046305365915034224885375013002772894464132601305301116684106830071998029448062833731120356982549008681905979273639405688839280618788042132637940231345571964783962679726849367525726070500733077569923627287391600128712734607495962784859163669106293433689774055169253007514728007057584573541629104031811755439886916426954217679969572807226015226298754055465837859077738832169860909038573064488994994907543239882281791786626045869347749219342385716377446608742416362425139530455402100423876812683608483511126261593401768617959129485176761977907051690810593987113476448521532793740449700140447007765547637313681790970650260142789671605020286815810793168055556377849882280136648795615723240555338388415851805249563695310016581805331355642456214357299479520233347691132517081537999577432131943322960039224492686871902572677973271797330359384517560712621991883784742918852728590941977761347308233541715398098724574351259634824804670964222963866255577546123884941147129969667616606296901528061699603458781377272941956925771530483313365041956750014889333731071297559603786997053910233134043211078821300211503569590843622803593029459440364605945808014955128738868386533868050346032502946916068206538018262387170644663900627983388803174493861175897756169997700441252533512084599113189680781352617533561754564770395998747579831566152502902337240008069805395035009495197905885857717295256489579283023680206626921668200617923100555854481745312914807125292285155911141720234278591734040681930109140634865582630285316886946176384149281698695579499022158993427771410625627900780934068963006488351435003870380094409382412053299836787707631973027202444285498213330883291241303217143410827333120097699092854302640649440193148071009451893569276152359200087572669677164814629737658687367213209611038996556216217725529755522562865279460052235663990950735485868955272156727878198602443962169396429069990935873894207594597471143624409769402435100040711322161880924415632471042134761912241810493752633637884759126411515830001426345619017862135513698683413788260765338400427294042061456028231671475549805973053962957433654682936049004289784015290632704407721153803915184546874884902537125761099213582877108905876719214036962663903737241471925624349162759768384395366282704688216700251545136825278441497927595417264359567408423314989250913404049747562443589901576609937281339466276460979500711237630733086535984608473740235221306460818678150592472325904827373162158378190455937152875712588857782100063318705079827256085205764791780047535393533288555124851765566026518904414912569780610590725084399496072671549283092923832636161078554079331822522281298065485714966280284870900109395252960105515594164298768698797790327905423622087228519474986116345783825985333835863465548884570728170043971164529176434246663975278334168621474565726931370840568806801193607614979608053333674208780992855484979808798003270709838512385198325426002085721739110781939631409797222429887151302951990982646377799751251711918447422324573683523403588044474316622057552589819241680930075503636046499771191544138668894938056057827382948455208796763817311988510983280951795976590001990204825583702475950763964221231466555557442459896832480029000762466780131231657448404274298752155596027716460983369036390719686027855075061681804880881227539320916268076049800549434811587883259642445212658132988825600837722134465714957646206535140977064769288967340263185054422272054272324350432158206550599209595681389976840259775809233065206160026409006369669847299239554578794734011330706826959884146959920049656430884669437223315960173601861109154375463695540467122841365171220284067034577757124649767036980041416436082236371961585671525897416281114692266160724525845693734504854726325734633716399088566576558680827580217504225600547158740305986382313034965392836352206319771353929978274376999319482660433944801818922308125213339376088124115834649538056615957819346972059711257276896731839786176643200086946271546705688056050199682200752885144196238509879919323084161411856737204589715849851807473060566176355055714815164530033697842889850545208075059158415665074794948612031648702929690034821092033077113867249367120749734055666724974873145440251446336174229932145012820129042926940419099716533127928309764806502399219771640714035034269478828876467633397332915690203575110894792714991532473320061558015225104808462945821323648876922678073734200445657366701737404208198861546554462686034700228198233572281017507577819431624339561173069251936901833883749638913658541700507128503868911274943663724482458082811153446200956119083288522971718886217738167809319795994454601429249446768386829878550526169988134928163650662085559139690441780081187119244216624565691442700003198601539736718380612867842139145387402201667919052781453540961048328074014178728394671520446084568751560155551920931428767483864309372546416611319351115839313637882003461939406554015395007523397702433889002103114419383076812865789352790896391624155233150735340375621150574415614932004806354892350060476710126120873039211299176928082252388783198495787645724906276353725367761719704753931558645464206299820408419328318079984902016713611649602310217854430108070120344682920371914517547030511517580712145030758101235154949604241951096953811784733869533710140606219252579421263585701597181083211355788613806497179073554095058030753920702516085076699013947716889909647560351691477783264473181767716865175644381454638290434328811209888476665899461053884895709295706974451438463913072692209254559310239590649340096036118420785330344094444863112713707560800484666248392136907068439922654838639079376399470623342586355129731808364912590244359318638966519435826392343630041871281112216482342788897595545010554497210866002875395075795289488642256949668678010667998543687906686187584069262831718098385523182070489263228412163160777080952228611325683760285499498029169051257968554599626619809512431471780603159955144471008446233078957127856341317538587868943180992062644065424906497438273142771001413983875823062802679289286510073277158687301950081343983487932675129161518553988530650063788113989686455821356086595051349253595002306957114873362688401430970259396553899962259145499525974689162564315237751612713282439913850285346506879213503577050381270364046626697063838001842261041087901449899986995907955589123156618070611530932080297253953203892281879043019484993567392689107955060812113417706826146389026995204138535566296360958893383960751307087395312412898044475010614681109961301480144241538654952987458849887601746620038153848559434284512034098004093007010009456934352495940753829479507559264803885978375350367535816158279927143549238724005190347010041960439320871658521623224111573400242627017293680619018304561477314132324344778991833003407520157676552770147330764054084698695107352442423034028093345889892308154663788975816915882251698438723987535074453879078090871294547009115134598781431392314110748976330646533226691435567383147572785601471412649433052160085734534111982282610325552484395095356693608690214744737095085276712595271704199290253566089281126582451685975683499227063728490826261173809485301581600481618941617101898738117940851399308296436804403644002354014320107015376663300331200393550986633850397559461659132040493287782658710504658353076451051446177343862291272492957891428909380191403356971663974885873443844866854003674678321853703832700664728921739936161306324090840712869200907127125090935410906627843224683568244343849498314901044917627862547061039697400082964711258240316925938199815860817545966798393003959787135579728914651548492459489078453413956642384947955095529689150094196858317799471226813287026104961043302801189447859188733046692538158618321445251463527291787639567682693466706921851345895730163329777664010684177114250297413485256263282372059513915781236650549676519680646280247834206935896634041590044499379024203420913546731135814206382553880520339074947476078874373395064362344611865259958080385054720410725763644256669538300756766219292305058887566038801100658493263001626486178621273265072405090267757812743146771175761908812728354221663580602058902029055168121681499979001466703811743657540133511263163385008503497703641361013671430850685116395376844447287834447759175139063660240722878392013496398514875257933811040003612138745147779377921489416330493411033182236238008612905258030573316144185971989379431849583944713603201173620932759601912918003895304802435642608384121649076412233347301797338984600734492910287792466767337961053164058147091707125922422319154984208483030517424883971505314242938132983919189775237697523441524265428859752005107916865557102998670914378408470077946040496661508074302138270520923086181998762294582847878751620339014049767833063737483104114998996284027132881371304669748743506432965366088909607813778334115263785958872430576900792111005950911873367854321708753332965021845891614744742407622983202879896626039701319871044745214122331195642535233016273138093744372083656199775612926570447779573979034873288669010049712004884488134103788782262123995519554624485711121170014261788028107145022433879070432222825631287789925296200487564703902576214894424615904082607240682155512182866814426429896945251754967741106708619962497075778513720524196733527499172516113935373819554654502784970391795347278325292362580853242635256180599145741165385667920563227301392352779767722130898730866939023114329439833899851522018669182362040075550844696899997968425740801461205568083782268387993225659983093379429259912254348304269694360650388549658298279938292012422431856833636807520991746783547346174517424106585269715444754434998259406852464661225237461127724501630715472368172238390346603552653501025756784107967491392618728783145925546855826454559171424081155423719180097581873755691697444732565318825993396984816231109790771572635077713762082297911569426593573812770420754571868660968282134587762015893975815542745949461546993750732917164608284975957053528420011602341279606146442159569172735443250811539608400098560738871887759240879711004502750310288103904481423607715676640317309934703213677422090670034362230254175382985129643137955588989143390582746688900457961465503215709058039966077535398210882548287072032733855232758324069867423890086001982064093477922771277620077506273915237721350760968340303082751081423666657102789271925854046350217898881464477548656888798587502440688945014603760674375319891883327416757778204531706880560470333510677722425480348054741524607705479304914432856177653988566991884964738802415068197355597745739897821980420092337637266596534131306633330529015922850793781846168112883298023061453897555976108040811467267417640972404685047023670300564187803059593405924872792620611252825446208640155976151534781927053718363914862807047746716177710059760090274100665473477101325874227619302367314790199499808524885924400209643912654735973720389206098840787815620173000670016603619268012291579307177441219464623228286095542215242196202779819850548516034597602921869473041076245635000827153390461606920079083141771873211145630481330210135668181801611860348817227938914791299680991245920606515911458316208028219635072524766264539188813532369682365778443342192423752675493653161080601168962416018565867966910983198289630542763388069876613768104280016943117021252501953001466730963283902690144162789139786607660853625446188743307511372529851363319881645291177392782621697470671179856289343781274760499518610986203071166392820631209141810784357223530721097105151987119031497076332036335772356240898661343760402064102104425122414559439737397086210408080042001255024120618759822313207531481474346714755272361627214067989715328688661494838190977494812920207608112011703564091058940170375513771353912365129715448089649148729907813832694293356334997276743863967403316940491909226209928941209001642767231724348324266801780154019690039135350452344153171096930724764312235735674258516814352800044131634819658277394202349103124971988956673648811506123671627514498258925616022374631569703967266519947658469727872905722502843083798128455219357019454869936189256533151822369585997015792229321612667245425017869033839411900137332767796551794513794332064241749808154497270642552547454820895210721329608006537355843991007672647111486283555611380580159664551155120523412688744744077281211301384684275057602097163107628220895176490013383817560121280893258765461090357434822405368287394845177406069299506773297759218870474656520402575232003524495807352870428909022899386297405824194099549814327390970357384074131797760821604044551682709484141312162263485331808202380617496661797954428898554736309633798650044506351951467166774638579035702919766999570518918881647287959311697697501889918516812498476233058450448871770799996433623469413370294262336363487621903789259631438713567112430580748393756939213651691592689094695532392601891756991571457459168283056597881637396702174678467209582388433240666384205337415862829277625138117448048004251377697881247328446899828269889834880142873286674616108261030982361639308095216434157351157211300860667466993462241363099003931293238655593027648943308367087331017580629156652086796182021542435420805754107510782539781178366970053881891232457826565844944204560966205539797962705346135963067816751654519257523932085613833526847740858778322339500818205168721997399051707337300277552685029262955295646271298107581614950466820932988948523082147737158193257478271010726451260555748006890899488103948467008265733547110073374796798629580482908778892216928513534156160343703347083705293536220061487157829711196596815543960057105075951321895612760545063581253515045556941699595146066062769418884165567206620334225091676556790272726422301509490876368317725294056274015183490604861126184296019629973631253174743410952661466015578535553006678898002331109748562775947962143846689820108211903522169863297210787187736092644147103027763711215572178991274535180954755040108355590364104072944477919215720587937889559596999567288846523554925703226702301818094059691520412653857040240532250543009709011007823702171597128365561757881217676804569788841385691692499227192211671361873743068640475009964298202407763385039003850303178176451180777627427299086335436629088372209533416693801712043475778920644107482083298369730691009204146275457288839681559948992134884157441035331942751343694346476389158552213154487920883487721547513359860109354702490947598963457414961962585723879883961047639034907184153189871862046181030494285211445442993474210090738725479979591063148282576627733063140806215547952737232134420800505637282040464969737458725698290723850961462595454460065752659182161830340469989433499675439418952774956377831961725300677258105276369059077560547329992251101986376065563175591398469295459677503208953663867089017425657683543528359143327148585104585058931966720662676051670469815895423314046603220308771275268457085861617721742054162157388177983094240720484052570447125607084694262787269422645724457720375222446003681116866490587778997934452805868365734336038775519926320328024736595902494180035074690846825868933887663332763623449737534610316830606503937625499566239745744994507737447784928603307908121826306461189855789129241260949575869680521406624927327351566538625842962998187698223016338051505283295174805670121062876617848191513076705102018392094205227243732446696561099682243405519095437159808576916065954359045288902246708611057441518465284228281184076751807505922683731104923479735276045513835772144829031382652412159618128693176234731710672599461355249552603441147097060298052703308287132168295291021013735901149715003026482102528557186118718221612812561791672196503253726907389013196168278435359214140460308582894783218670691883508727646254943568751822906149183013460379999409803909057993660686079589826933871869893003140916939656943678108075822259312108177239641467255397401949941914746857852108779458041371094203424351072633043338808599804216255703739711040976146150825637717112446934487544816983822798055345006390432482454346090005301345532396290062224761118740860377739933172654746898792524109855548284591932842967127514502157545541223669678820857571038266424100638948927563419651363201885332633484990126695716052292151918161297788009245126760181125503306181776184857144300566972775055133370907050880115105156701402065273001129530141146419357679735784055109968018981017363219799046797641488012679079690342369044174588758665401276910891049107321479263131764228240510002373924575392908754316882195206586983990082697006936366382419049085888947043529511261273729669020022144814864489523902179046085453374686882119891910579188815919952172576136678873294049358928484336558043968475977847053951180985236333062688777827603115701028615960746611776527286239533041895852917532057411395046551840023185407088755906429561710070640019655528616084222376911930279888052194102488654497813033807963530458543077957693532511013870094964843348748386523391651866649388462326988010439651830184880807595260787724306942841027755489972225131129937768417791835895763076184419895958528361547305801193861718708481554228291310924247521974518831558292560945974008501810767145780433110578894094675827749772462636074603333554387008479305830718822804020758716227006264476165584319645501890534931137188026496466195846797811107682475983160988988991907184886402161240180288156738105364482340279021871670847282802822823431999343400852933732689451912414846002779845281942945868603194607985563597135657342667126104781004656294462438452322901978603300998139241302511007056378346777665730077463625253939436185232333193794299071157943442656316107187362901002003007864556855102131665340031727709644102223544786437722118959283403586012045110012492170410954644888151077634256715897553267109949902174731478996401821248260952880333315225374910366884160165940458330288367130498258831219345331025665697445380535319851933462569811992621861155993155967146221159715252397570899182272224643825605823687588226290205315662804123598506372571775810317360120211436844135390166695616198657016922719183455253628652618060772896796468638097833709696984718868845288134743767073676270019392200526289597269984216166430505071863388218808845437201081117984289192188055245971360620058126897811587014345559330675600595487468331657893603949544544589517930010668100146681590754780886328960553890505691106900720489627420007226707192570457703835087889615662736093355755146137201492184461356040361058982809325611430467990041594051014591724763370937353279778582363700797070517717846756683980853553997274964608135041958305451689005247556413522556985773283665530748827727490371688213383579210673865430360703961317129397707839683678269278975363463610360352046325322572450904847747243820998346100106349973626387219200434052819170834205030553342278406225708502544605097964847555825237617643556424163770687978651352874761042510723745998479498137034953374556619552652110079555337761518231594631502659241060996460190067080661688822510291534429936775907772156000105196381066230536581416403231247772688283641576526989346838232169027255445304564076827227897147300434919081504519942481304168796190503506509917560469856861694293487795043284644102405792056671529063247705943073077195538142456952198851097824201298406725738231221768298976668782979717322154767770706962716235186538232275971426186977055745147469749193511368377925977599225641505283899132888273457713626553906828324581360177990185057879948693022739726393067357260195871909818067465190984679178347174611326371745949500077018664824428528814198151518315646667699977851707757133214350236033944630910877020183925732443000823704922259933690226339042551012118135355974079484041126725873159605839856657266821715202856620015447425323855489602525644282162010055432166857376428245487510287360987255622258145063166877411308173797335523887934949484891936963711911213549823537438703315909968877190318415600077380447148662369989825483281073815167986951161622862886428177044659694837037630906895070583284369174396330989862115368696364885877153701476850929749637938929963684931197605971196562268491658792729468940917156479908555502066584811087451139977744643502249376141613026857240839975097015340339243679716527327158956621199586421355070770185011644817939650913149400987463982008694606868869422218336583315172930543055162925318975111659138353090753625808087380309491872030253764432899009714741311387279556811537205255975147457354796405455345475597981378737588275168216117778898169663636421936949387281734143435220409005201282494817474147528477781146767572683805605251067292922753290099661826200877873203352719823693665056930129671017223298049107684880605012597850916997489805191651034517973614662989653890415823715163730153201728060379577363668314968189280134209921540369125465920396813483554170925885643892606654032233546902131713599156253637886701450211378221691791251605787314900360282744306399334367460834359646125959500670767322324041716360618261649094013347336873543692099574281567548010672455866952001371976617179687728138016656842614648397641101632686732862985305468038336044370500417005141334025838861486580260664181289678346762403642092197596241313103022047760156434690220013238275575537942732641739904312719821268685905853215604469697357748291107264914704730018514197090311113351456800206447965271714099873321398689615793208198422972919691177458710500780234347093461148402513524181323841763117094867048428657459005288037467041578042786162247391711508411398981735905835152025953125230120694332610128316525173180427052771052050520125267095913165808194514830473043107903864874468854010015360401394156245154664272023412105074201322876308242805113166750209932430284247194703675046679528504635978648390864547294709270752610482972718363477196366870977074192966234691902510062601541090629069546124168349003872029331176722590095036256526507820924130185385244155868753415650967775866914070288414271840709060874257529875262013090934511326660502108429786422910817043256798287010624597847660027525162288012193002065489700814677551747187609553239398394509262884489949622856494088997133880433789088631993945132049991700227268005028218366753455556626887994739103471392053478034617244588325489901023396871712019454605511313726976546620501218257833460029786700713358810247612418255089929628388075385997040127238661052422847218565877855755200466042486584038298277506280838557254944293176120521961419452736135207322646973572209531276550772647230952226282265035747090136706251083148569886494659079107969883129243516536911030618660651803901538411217514342316650152730608510900594246972231670196370704895058308690747317698540335579716698702163619626486727847519945558708183690285100321342834840907211119531909109235639325636118649683640883867281928205329861020035112444934119885791204974808217561040116351394566267909294420506254742947271250379094633497531770231062028921434602373494406543565730104211878969257980641214505689057708111966863906054194565278976715721501094723951264032368424288960811806982384909916590510021517893619478686638695282245176757389551472463047265632422443314403340909215427434736567807604177498487929734055612267875869823286614176020408027806467907302750207694038718320180763862022652012366466528784631553028572027101459925540695823637149050456241741680522477614881777482204707255081464464638711785462094485304982113933184439042603229406481673089983501578711950018569499248733154679934637848626628912834905894281417326011676408430179985771235677144901731763478473265317451096108473421673576074966009359488577929927284375482327651969040567659926036729707330909631893710898644329881860600661758027490767419693938505836947406938436686771008636933024643898068846145176336353502355884923586899872522590468444327575181751728738157880438079498502996266051065980729554020169752034300712336480766006409536619753249843206122982858910440740444892103568611165834077710827308747334158636687494959397087726266317548961413978201727436387310475679892046729870848744912355420243316386852427094804310607889976430552972140159904313464404176001979525596998738955695347627671738091083821337444394133882462682032976165371786672951559443660088546999802721842034477487905399117534408113923482372309607915038222253935421543253065442244426943428947992145311577098926755522407387447621727186371309594067404920477201312406462954783092295824498144261919903862708957174555706057780125301616471653514957663249329407784047003664261606109685869513104285245277465710437737442440131258075049939662820930201583684046132371423071331908793344573740389338108992709966131321547002909980443154636873928538082383610786813890793779928111188296775067099041534639975752186198826612234221536775745262554422996074138025319789417680040339726213696942447699150395676369193409540179407578789741362088788678419832243934928931932186188866635941872353874307384826065059255606815362932443516893998330905071569060949671954202169161167843855690591430388549757901020005708901380478427375429039812274639274493745664189175880389918306960137785010191135101535793160666196742283430465072059289358053829367978379629906177212363296924103010699746203446101539164121782852653012707621978213230397497383225203741246789792895275071404625329036319503166324142543572860667453553375315802317904082480130329007557516904896037396282034503179688743484324843815617779390960862144209230294693235780179522071883413821998284239597447892922994333018566521331631096098837850627588662580690030987709891941424145749354817708071476079487458366711997105461193222160934981371152775516937277315330448163018590032787731095223710344227175954320883300651914428995120594425533797889007323296153959739211506644162872891634008028648649765219905194176666765311200414281116940532906110197036905395516602006625804184718423295170019253426982640466741352357387269899301729309440443811784811826078935064411447212116697849449548571032123289689235853345268780992156487795457230998994229625737163559669010414612557212929652789677405790708252610499888310304881474010279057530567477967111202797946198074071166362162178319840156398652685137943660966221324308149670575781573651368713823783699373633061923754047420267398831140538915747970231836444338445223790105529879568437039531371522676311650080365881202414371987436084881100620381142807237051006960618185202752823457982105058451529779368517505942394804695237917388825933667879818359695487477786014541308011504742393225135227538328753609882459302628751657000023967076217023977971192931826336967779096049956936195632342523471888890730429706118077037973940248306125922308331549875860353735545429857972997667568371717939122440476971250288069166518715808536392407773268177383771453923980141126688985385368903244525679130941006863155587620934238376681013738140442022344781403600982220121444558454059466096627810948930240637282811026037269818355837465741198926224696932718142745666961452001593275196998327651204748673216659576402399461271885865353705856645631168461808116167539761549506830458649691906335117751083417467026682843085342462100206958436300811544023287876643825622453241303762241118667248249215916884933667774218085106340858761529007513458470727899582234646893003701549844928036437414484691767487954028069231085912087978124560850013233565419984852860755814757159809837567795994820712580265746343971230163902282960781135521453941829836144187090632729375379010295215462495800833403834589113667776501453911553683702095552169149233346044635045707962951271652131335607790137635715854682382648404346039450982479320179949782529921424339123895667759492366999745950547538983507998317820341682807870743511635068359888517730612125118866200749731281679979361999684373197215241928998864597667605641141077842544664138405113753996494118220229716377600873992904530488414605149749421185475563766060698456536292152063783648767430763466363325919435350806630922936270719557814320622637549383419772432862715681186539317304304155231975952138622580843878972109818624067363106264550074619672019045376114916663982068280661760287777118279382904684895055534200779682364636195787688546072015193756654872601258014403175585976197415825960233739464902644794711444396523323805660213977735555135297843944360315997016457864848529265298432126726464440251590424922508482708124690561323505955452819729203948002856846557745194376776530646785196151438726478907548715842271962006363744971058506003680445288250367236345739585978108955247219933418811356136938653014225729736357888969335843627526993930796746248793075231734192895987458580907269543723021988281718626576110038805098551517422614576023333045824671860595468446438579099724934352801298711615955645883769334717617114816938760955258470768259867418093495897837634777089648920055264206184196711448624559748736914445275216431608078661826355099656806488883357631675740826669288784048561205720216475236987221759069819524819438246363600528890567769897715299075521588451492587505142992813248039737967653927189142424410720055530670964495399049878888745875849622608946575289403641772845628151195274181315454063441064695354832427154641665417990478692848132275919217754469980475680858615329847100097236542637209565611606439451339779028870497743407262501455224326252325879296788230391329446931371463621224353074311610010945578495196137278840023336558944854960317960711761626399420799127738841783784065661632965078588609430023102711548207784081752654005819938321100386184764160443640850789177325024803500096475891236478163230432584324395290485864024516957293380133045517082224847407576703861730907232116076177878209312488751681293203260163455956852283865727673911525816024382363958063040016647753529696467563594181315623871424825937716650412704211737961543081918746364465972205379944622044002176978379031735355441502671184707573730679467330091314341579931778132828287720990551240393006063337170150608768531588423670284316616530419664993885313059097814584457948139524815763702025060268021731487387542908571363172524056610075543172326775185183450667260749987674145290972011158176280160863023490735199208580077583618398660705151704079174885530076842790690485897347723132411539478589149139955444389197501493325764694993189193679410498455046816398913896774194614267330189230645756774962449892905276665420632328149475540646144032382728335637377071324579898418045509843362961055446008543998648653858433537169239462119421736953253830843352223686554333174604163063230536182268865781152655568376744199154646499232844374764883853517817783085870996633071448472099391732809585378699723434425924472723732260485796037334286732072545834576913894707489481491819326905141264450951920034805298623032844372990369775175058940918031704690245670359973531655903848502541423003322565973994597576487603240092744164836106058971821052980363295538236243297891249689882237119322819984336075176254353900650614170065750310399573389324826427434807474497151816729997088639543266467195945417008614274147390497000481165522656074448781994792067195730247625625775801826653510907953626261520436871173104807177675620336911680829386856598325269647726731992415730926461555987874453839912693640895999612709994417017913063690487949571754783667823518362127692734955626195790014125734935246200499838043804713811728742510140235861429177337802654200425237795834621293257291409421470967467828322861883870457149411466408413025928480996280873892578452085766888735290325461334273746226074922600107536643325316020929488002602411643754111302866206425699672596380365347702634467418587137551059175378873400168941490880565443793568322130832750211167127749128740035635247159771350545761566497067163576174718217593580258449784359142275214037249641987164530754474812820887671660806512615776682752837982367442929504351767123942367664889064930247623861308865577865844266003034967166082165193229267760256759041681995249551098851673012343535368277050563148464661304336443945512397117482088367670403020377333068244573431630186605523492956404170064012764791703773078934123872625321717615074980559961520436604533676011690220165443093411377936384815885849410037695156655804366797877194312206722180467900033440014474555164144100129176703141735348017439761797481414508041770828799477650832541505720350103254614576886740211118464491494232286305118733649203887855864237893081634933774634369725088633602157291871037484006830323032956750433528544501299604368943500176474129055697996803948893276526297387067018759435295404189178668000549498315881466276734977371269093297547374238292332599813606755607250833386249481061940890831660649177047698177514231148287968723896000885327919805974922796459340892646950636986554782040532406755432800240128593501869129174728835372121280094553792320544859490704230218877542852783327908065611856615810039121818418419300942215076594847061228648879393450666348180216854336031120017371848508046896622221856962418810985859663558759750266962171920248281485607428082028842601421939553193950177280419129944377471074693358255969848448270881295587627385076115689036295212596012798604542571021339237455441273418405820056013476789296882110432448470700674621693660218442147954524592564359947240288548579585891273071223200872139485181031615622685715306628961885487259098882275965969402979155872953242598878569504417249110703620054014073859268418273332500885422887028624872810319611122548527361095481502895045421944534434333242824996751678387279590387438468950205567717021980979465275201461827607339149152119596039560706612057652196969046725603662554395440329496712669862175718340555141033129728178829365166548448745890374006314497298077125529252625135024327660632835568830048655823468267282876664007764809677448416842382040971408577995185935121379666170590536924482732516951672206021211650658158729118027315952130919001703284938482922106659888420976171151621885215941909290970191913447509164151390719492911733534167315797995568391722604166175812789865954416928630701116305206360795237357714130629075032418173761352900690615601407982050699921894207478324734035364248582008402070719967063107532739268143398109031354552329724502073279495054911692160594725910162904932327300226214078867586602759479761730577887773380412042480307399734183224618695479824415772249098572107440242939290009021729704191246257800267609121561796122562294427205384126636057203079649657019838480320129733167607752600372814050486412573423458667076743050020681074157831284392832975743591236179757294272741189461644700617838861321912324278432620444634283046244419535456436315919422229652169201420770778250158050106368559940121882762660975131966047026362977667872007169583060055991712006702168297170697632494516422525567666393127504839208361377475013182443973232058771892134853784044693367986132976200474626715961336071836870352528002636874362519145986271754472401160401828799641213952126815995261581181725914919976674143604857574525671838471752173046216698531482567542274532093349777659381467499132826116545686521143367201947681166620450644639659469270638896161787292692802842614790525630246781834333610995866402398122380861504128597244101602746420385404290197388294059226687690493579385294061774645865853784162371331666129883860908509870042416599783777010233931486970278914437094944612157227890124994094712493052603770078346181425602549210237675653203855029336011239433775698797743509904773023119128308383328489677954062545705067017443373120201745120999974523383601607957374115312134068705472707714896775162876195290458330747443003279708090664584118671024499273580418965264928816374514290836926259870866549253854599654354745852780341072329538931769223986203237507649991828846191489318099563514621172300662293994164047752555049175222588185629634793709525225220898656086279161767510393444644970987175012466355742742945338105028414055514431336227596072928148721490807942923666488500054971495751804941666745321166639592425829543474157284784505617141749733279983393194530641789139239880557802856479045340643556210442009982933361565897142293775483828850428049186102409592636372547486232560954665159262745195683280227431152395253165621297160221963467136592352968090725007942407948446984011551289077259997646189670946168403746597136487070414329639900052299200103161155600684434695456668987461513828593765020488995856967867327762989497903437518696710789254713862080758536456500762529054426966343970082012775904360648713475325000507592449356003959624855404118542367476475154546027571864246303922332188032188893205870697174544262424478885943828370715174009746356026293693739270794080807553153716943466936297898376617903065774322954274656861415509841922149740670808339977361532427808204074777613563691065769338772882559935892904270820520557164789655043882696100528300180757056348511499760651263881487265057805185436846359289778063589116465261170700021179185783532761780330095245842260493960980746638377017530554140128024033526083502416691966015761684093196792326616246073041839952125233523925432300082660302926647417216667273125835868657734953175326735131892101996190364489389261375813964229998535601370211717223485486450491943783047116642506936544020803937057025489918406029701211123213141329967234649553308188400308744382652585883993684021282390479946570512385831920565458889404271923850956503113391998940980354555101000669299050829840090510561373526313099553445963781183576889710890908463798465268067742392230938538497756653910993134474363100419991998313504642087330013246433727658213189838039710119775513914403359969084480913567270010054304178871526594074962317481598617271521449897285334306213582682053600145867923488088126357429199332186415171801396424567870983423690279934443325679733621979092703837639101478564399540990877630903282931178736632306953875529968508597748065470737033565498558271188376367412541098182174207566600841015688844922839906202272968057233388585450950461092240198770298652617338799798778317573339311409633201255432497919863000219123157323692550333723883873747796793414271000946127500608498767735185657238180126785113411689123267875098520356841339557274590814464463535942764703069632248765629259397923291922711642792751879255198735241447404213042046452573593446614508490047353253215252522378294439131711711641448913599090723046582275402721548215480424045996073475915312824736243363824512995298134864892384345158434385462580944680790350878204343966822180612951537607358724286142730355490940661195116807419925799664467215880417119661274934887848436542719997051286559501248841433040968298122442830069929216777137045204972434867858743893140420527999935172179066478080692092893498352384758373754815176431628953264390475645588616071844719154087951508797910493840435291882581663197169773075617214900486506307308202291145985615606236798755572175631207079913097137728775521944124156326837199972458666091158116151929553076187616097574908299331303815095354820547140832808617611416458942581918017992203193673123875522386359694630008171394934083693805986018348437532979708885043763526522480576798447396329783237486807367411936462444396180300730619248778366623265890335360839249735568559710311527753631154236212488192619610194319080408236942211654037830816248240750969567271719585724350873687621004729778452473915193256634467636730670248684407567289635887879983623568753689174843350698339774237186694883307068654217729673850097277171385352888712670840292284850115963078969389955320170568181184017763791950097330456049153106288645402728742852351205422061901824303375810510274129550436115574014620502543937394410250569209672501091422258531630376977383615935898441034721395402524445688837552222859338847143851814610133828146284132402428933396815029179113367227742044358893817348477594373721102905696636963817692410254669569033230897548326820214730071205049616175953377061700389538739215862680263261657021820577099168810014178417379661799110759212678494893099271643686038317125749731532648410364767928814321737022403059519137280752692560865925052594977827584975890601738563931511022111336728437260446917713113466782781125597078843684993974670866031282050434538606355088782766054777580336327549177282539064732757909877294019887016428649599579591904128903371403445375938110691378217240693182792415264183111057711898935257008261432293371866364476813407563709095517250183778832373099196903029662481235806034016913600983914021027094402975406302684091422414640245805641443156036984550188161590064991226462535075350508834014349830479198269740122185860371533578955841745865452675113050033001242267207226651487493317084040854115257702460641750657594384624751397003876832591670250860811414126370159555495347112057428345863039619517655662536679088862967777333024304957708980364423337568972608775758182213765402071561919913137942300212898904807457343297393923174466654444585355421867682206429521956150458195002863241814034831637764389988364179272860207314108701196971463284914814806902278916195580396642053848517008929565533754883818026357789778096817527290592078552199164252804219539513068094267290814708762904185671981976561116116877915850210939795065595072366191127643992592906245977761586393391012159863853924682955658341768344345817092698727556617409302427383922970071345597986006089011845407866136826003890452950586721033639640751506714182891424849877237279862174636735484560749577657483510072522995002898139671639257029949498115088848637437223139966575145165151308803409223160854982066488481265568685208208454688275265285122774351340203770323264022184392073540581989968107372257974267344588995599156694979946796673213896243743584602872932722800824563758469751448611701893508817443411910849029745253641992569003250081038135321350032976581075227110849548068380911921820423506986964972393836611545333506046865713967158757371991960388099458133713210630747268524559620970771520706046128910046278228964328993604867721454288064168494150948886741372320555166759503407620705001025379628423962324917240323275073512538063740819779808819299746853965808265336481375066281102807211646484763570836263703512678076626498996692022438485773772023765122861464913462261062480585222167168536821126088014641305695933229175994531093262896641669945487073407105913405388196751048990176017761192161538700480983366324620484310980364758545678273035136893241509030657845453831692697134331850523403086600761209694150307594465185044250583367928152747553504499546745469679695118297578838978118777463787858877128018705030330360891662597161138967632439277052442913835591060582120637452326798707168407453827133152210876950384001554039248773679787614450944937378481980441733762168850795337169821051612334921737016228888030686730200909500724581538263487149625450616778524611188764055099801807867646981639404620162545551791758341182749167685929489586358875467205095675307547962093586398803187185627609453172119191069737824005003862329092922022351350167161387584523037857002784918964745630044301027877240420257561161780538325786300007885302169111978755185910448568456696312157540154495270666728850550127558732141451815502338926880923297690346992268506139750546097825757577888143532880037575604021292538306248786017564806454313354552576741433174173525860226810708312756550466372742362145565410446826848894428715478860046424238051845285965341292284708261619500026919149497676196400944223572549981669488112363589321591065016261038896923753259716019874256836773039166248011622882002508324185023127504904585605246391791088071757000065577965149321567552400566472072961750754097413054392766220128474351021308499750327388774475527883696588790432379926239436959630386496794994348433724406861563288533210846041722027769384801309038928929921474520305341769498008526681706331431083428740382272085592020268052421246912598393702119174109644046865033604977412247524585572134486783238683793804716475197998983386920066453401930777276808848103076473807224580598094183508158900828159626502843080221483794589655948384000788934658944212436748224939160917203218369093986073302264293774216493324208716807383105999454143427790522375361632211540912136847118701867217588840654123397766106724469851795771876578318073989247343266820579552045685989159517313960794697157695211826363160200742707180830762916848151990324004505246885377237150058005249981081090925541149559562041114537697569523748620459187170644532033843951123707907448725538586713017494244710862010947556095323560472066649616734688832680844708811501328221223685277152359386011748640056069679215994373408382507637349869388140821809108754367112314728964756291559289581681900783384801156534016625829684056162483140043575449502716956941355022220493119095359405966895543719792652389685952448217429041781485835661400444738917236572051529856482958407118010240881701151160814041895073702892587885475776980091383260383475221526945999607580954003673321142026601034363202744078257804912080279876843028683234438880995590123057592468530230016748931709422132384565666156773330099016652781862208914347921817694435082308748286035648678176833623151596770216933839459337700419093788045184337292265674990509086510092718499387970768391873957085757228804029495775015340812739170798481491513195234450494924477640169986453486528272353773561798908058497781937230907658957510487339081566878839699334898655049931109887038932523236235437213866364363825877847491787387471133669926518507735989882164435301194206841602783784798277247908584581879841137546515522341765278931172210314454768116073202168251603253385599195153673687146468674023249697245359464721254179089911893783917016187482001999948919647754068599296621624673664381465543959306950956648940365381875133734816505319404061467631119400685417163077160488839195629621421184916618086456014832551855308187607359207763253788779497329162881350187505977830623214842512254380510217627953973564306267000163079193492618757025331154060140088786331101428150398243453606921302452865135914348077494492977495718962175637641720579283157943212686638222688493550396464818933140507221983618182020242497273767838607033126695542430653822744425382338875241527568337060848002794646180183664211858449779899803296856701462525675395405473066847382663232894866956787010297549809803061979618383893721937734700802485091291162442665029946416920223446759482837371351385053598274347399396315343724476183607451288492119421018417270077858319450073076793085504607828226434638328639832534001291794843734398521339756012294516753647299709236402358326017975537600952420343784697258042195674711504166016534269571006632697318874240223854668416779306944940005091713228789182970009401177489056916846784432981752613887662539658480273945024782660633473626572972365676662903477034942741438933739037098051429032873574869744710337980915041887704090248065324848803659893979948071627237562079565849166718634871394479588729142433780706753667401074489245414215666066779841757232719102906502847389016191894639849014907553047824948951377639227149312610839270821381117930384412090959230347105495097873874230349463206679568697608043142661040330639837791791682787137348270785593543326066189359088190294738823127209426125715856778123692206991512700272821755324353922827503736066771064416878625319653208708173301661076155786701941761461238971258621118586282236078791684641473284247737139925495428516472773118083782178417558371783072888540555726391347722375509613459283297305349341610647732742109312659708843181536987557445408110522867406319866654699538342589765015364390609687731010436022383808556891380875155333814000560802189534842357861259660944150116940004184715030146230074621631315098328724100944804545379823228104040545744849121975301581814637206389281046772890510592587311769745217479348186106493738829765224514885508414360483287708243488792825133254294459149121845349863341896887977513696396529425585341699677896448241467823807303571915622543629667157853830298795999425088531267912034474615306369009518203440897596860267479969443869573018904470121968143670175291924356511329271565590736081123510654097962175628376687384297345968553544027512260114554941995553814630088890116465147674410422084015687213750491756235413781116831133401174768741004099163604555216658503324764433391401594953420250695394554133613031651668427273080004509105763936135344738125331934423283313035565293735554325550366150585213252138802088267526176806373846598607995091205657107236115772815069467064221502544798406278511772299278878257113625484310424862926154692505313052511576444662617098691379681158185831589454706093202444902082476807331161851549789263001939541444593563202401179981847238617504874965208086249430919375950034463666065650074759031896075521492032756378263173500647138387756611342016821900997490407071297472377718744613796203405019263358482616568239361650717013977070821698258070622222747840163657614465226594510251641023793724062988467997502427056760531153649134532235774086133305413293570921545562612938583278747854039942644708112730399416485146253015946203835862578865429775869315896188239882388171330029669896720536266695004958687771761524754721214244032823529328210862759390008764223387674529157347158082727890123783565285767399162170023710024778447704427347702691940232224153111801814593506504052577101372936388059344607911691062630913677130252503971028940634860140342503566238221643494616505566587229902042132948991975581064215314270134446015990507542245931070303125737059233703548726234393671804271976639473840259535469587570606924672693235356328424123757342142834587282989054128596615994127892274305643327504020587968685048543036228899546817385589789929332977823198717176925962551069727994999996874982774933916757625362973876694217127746890148977137199801292027891551966536676837290684341834246417256916258980382778860231321127138786012565118268458939201454016222882657699312110641975273348688524057641674003989087297492355496059483493986732781799072331683988997753581582532978217635150989555464847352912583457082919676892009910044826501870734458276654905074561809037357067856692701787551034281246151908042220487293824673187650032450678612940396814977137059610452645604183773218669114403608795495388805321955469030835383066290217895160306647218464240285976071696512588617694767210317955782227193927379958824945479887796584750392620099517774473610207032972103866328853822847548456432109298345736586891337897876074493582992477503716534044634710553614456282711683960238620335158598442042917881109064565300135634448554421694530296631747463330501323784963516357390029476658731456339763564887475026759121742996853810938575724703789258893450761401850444283981812482331154594800049347671747790581696118424794336620644226188270337897263842881663945972888689304896178498789569461345687464463918711459038183912976765454207392768286277753564986817955549241877320705852433115101255667064562238156818272447944095693594300826724701622271876512670191398904604390127094612212844960828029144785832752708099006637193803881343559450182003791508628701421849569215758976580354863340794876672855832561134228315793254149202325712458017626098797124052232252273153448601851734242224076534646411795869036772974117171833255138839273613265238087350979234502251336829537577589177491076654786215877089988870394237955428219371195181641271576588691557235340864134331292874181011914477972167366098195437493162539068385726943092980118996262743286069897981403727070018003784395302341030434950003993846797717291414933673263115617535519387005796808750170200958467168589431443984212188471564414993694049057610874285493071172428556856838953342796707648011894225959665641889987326579212088124893229666467847314807245034055071643017910128613747978035354011514509113249391914236431640968599513043619198414731583000056319074068752199267299881056450467679753386575333849834880278630972808909277012847206551541492562688954968296077938376655438720044874696301477578590261865989525341097752346282498809351834900051218191047479980603781731004193862347600556812752827490981910079307695062054973545250941174077540046172682058876613978505149537138466810398545450587115192035879042231202951511907568854566271200892703800496909529927297247425447161547188304577022654020143507121916359920322596334018400630890616662831924784955593671332491678482478908249665913604232679260413957802184804884250964965537261801326865360929723716704579069746889450935226814448639638413666354625762512725959986981071700216310934575014889622856937975271806610770448437399536199622230038333323581401436075629009332082782516529057477375986682330496651917437950622487196018658383346681553317600428233317306353817319537856107531662809486547803471619432679276153468331096785617011870633110138048722385206058230189653468010351562584495793842545635935076803675690000778116904717724250343712795175846237845819682435211505217593272484060206194651776405682035652280564481534348038099317941138879633933714843839471780502447903780741651036004560270151950279087069057855990337133857652481374866044914846368486763044683636383219238252844731569237755071405786023703873727498145851571045762991805819093299379246522545392035656427356002815571619174506620338785714715887240262586127200150906003700986586885325167832839205103193500547256680819812714060734795418649667133175969223769741240608050216007245475121054990754741636511627952842535925343950532797239485755302027200787398099916859171780186734853544918568455943753298702207726578761682305348246511608853431060698593777194952403476442155161050177345631017041049680526685689491237232451242000349621288553085611650905490143606574869485111727691093191162690595001249366420577300958062339271403037563733426089979501589381893911947707852680960693184074516858577129737542693610589520637625850468461095037771431398037278314871814253238430563844658018481339601660321362734345604703297853941319445607642760948912989482484699391924698377434479700099577657747208046922707596909111749791488510805094580704900801238389007680465334070652307138327093822814742976310751792293210108606957984033482091877004538661044318021584533359332911663371988211575330281636577940318556011837259033609497465773260128850797087851212400541130291704693018060804674370316230211536153948770848112267717409923207632276697932266274956328718548266928874267414293228826105223512301794647317761975045515672513820498230122665126302134703595438560549607761808444412766626784822045988226337653203337906949859925566980168116468211637106979306665455867169691715320735934247157186658057249411087866287008589751728445559496511697324925251931677609096440457516043901442224810039843637503187662727107770024430358369716216066660540428514979493024890901923507566545251332259262587390674805583762939311560286758247712311992653770596569302024916785641246905549086899062375662526415083162425772563969927858124013699823758833449548031723746978878003159047339882715746823881910008352239451287543500232306713690704754240731956261278354558651466989368868458930192684050586321815084493277024534886353957567825724103601380959802781022846925868443661872088452366240218460041839125090971440701476428533491514048472991125570071485211226811523535345102451062544570907641907912333273903607937514423734450137672387706131652652160873134979255058065305264947876929513983584485014820688800167024363393167202609594005949498593466738787745965528310551395957166781883332478217943652764678237497184091844606816777575602388575157264460098583701485218685475723543845875402631719890396972339560814170659536077473767912675519873401266201272152145459243057640186455853558385427682001257562731018941695807812646316395410780404787496754738346964262641307710722972002301118743665925061737905031091305548928126288961205877116422613755861049461822505960378440503436826010530996399680314177440823465036920953044324662524919707418094795564481240323083200511850347073748938107611355688726271470432389467393914294840922348281688731880579555368599578368713259231161554763078700088446443835784090719049411723910580298813467219861130452089410975790224494921460843581085940132220095972972675405673811334409640485946551433897868160225558783323700833240742857517989768121762836046504831175775487394146500757483066111386356336264912009645631009189179823484855797569445110895330445783840108811049071470703936484829226521933662136685423417728221606639287079435271807308433949839670701712452538855428416812116737036756297140417045716842564034936661359296408978716661082820443077604510198785656355324162321612117602875603553724923938709102661876559169408522199018737958620656927367274865466990849228749234302434431863788975081873737620270413780138404974982094989911145170676203274326053633056898800866255135117833882486031251903855261520212046055377264835469874569565323861599336870813663796520956221618563601927142506665907077024168561174312247891777368494813741817999119471478294253920086824353902031506129787836837975058183877393075137328942817599814370637685561300713753297872772154927615322871933064370985638562269228901609496934469470999187224722284829641658049067026944049338043610178949234910476650262401478017255219998755023831469164597497220156811534148147472756054161920192464548179619208094014027363703592745730736503730211881822645556981177091394560590477441236076976184744603825904379915356989433320675576785161912490175145237071340646191671421821222456411044394094111802865885452371357980793192307853763889375343638605087549597990367652169658987420197857567423388744792727248646803753108069586220650061726031599013525117995052792546352500391352721848939206509209779398413589772781008529000971397463412771888680176309626992062210566858521132393800448021178994233921746241115000612804436700822524127372574640356562204614736276866334748703408098437118823379332110407644741437098967814686821721039596991762280180651636665537761127636588260868894006807465382580434727732464723071079015516190687266596793795853280257112418357706575877104076272970027996428990983859375171460214919102888963952096478766093163264664305298886557251877542952683492261759547188208424538049537081439228952246966506140608353642849097270863239512606647956310971485673222226913409989031074105706758925744315536482740757961980219810368201203163181803242584249744485668116290582211962556260136457951607006079301208755405160179654239488569052479277551722900537032055285752756074036864729612944572228545002796316720917412168158181388239013729584310372777542567015868897680434020444355850806408761763970970644409697580039550079762223051190012632123211072353798457932064037733395271595364832239552830952418278778848377615334327863872618462515760665711430642686772350392880061135705032628889759781381999245784435589758300241537059959946559154519632514810527208666834177090852734265554280912044082394981306728913555894807160543321934072961196134131534679139786126226090418270305060216798658432727213921730970239930703599384617102613147188770219193271173530255101739088338356252374680808526472395004738747009562118931061149350264697470305465001107331090859588071452051665395183478644510818792784352984345957469965871437872361768142904105782947332739761444438491054862329314168976655378568108694288018143447799253130573973253251836827070356736879672336637248201175395836169006531220748538809830701807655311005441014368882776964008981602008819512961033747395880368978918407043682772556270182477863744958568501448944442498968843337105649759859446578799467670142856131006775114170132574878831206383873100982416153605337966119545854399078612893066957747782483198538005496978406874451521114980127164347934528364432328738912200541049416032308582588547526185129487332082369346240212708426247396352451559611356739160520590533758129835094652143169975941316732194117649919596980137570946671132593901999064138165362412470245398333223721997494137862121544752876850247853872037933205839717345249460088895652604749419370093211100297141404304699548691560819012436245382594541123219228033022182945028387275215008140280024418020626299618244365266635185988489840011106670263521169927340082694804514433435347097194091782835101238483092758048469572647483633333190029407346516281160097431520829176229842930472799529634884691046486430865025777584464039136476288976529015614431836700531420289061693657113428514536477633009837310898447643282432493257315430334005436822791331539431726341427699799518907080826327764513531970580429380270808953853604756290892140784723921145748729969677979639764775897070765209944773895132252704894289529520276844451924154265088224808651584230496649484822433618676567076816321213709935002143710556489661088244551116352605889326386632025600662207935025983563905793333326099657970904254765578492831427571244603504833399311653287614989956162398797346624179906152335404625767982925355328885841087433009436148692074503746440978820156692017588034393241666806673259969773341896188314353004178587133947912236565360464341364418743299387384922400115007556265024035207070107710024513319847212305357945682363820635241155425792362976236685553722064909185093529156585974860609808710831758046199738506809768281792346308005704435295071062101756086179185319076748660986536435196734418238677742417005576660412780862410710138978853772439748458460166881558954397193792256921210145761776191838951223182978878080335844105998214296933801944244662340983824559560389597748587963128402080886829487773939961260641801843316921137116045898519176378915343580791670935836573045928542471819177246853165435700104945804433834780088095968204199565452763432218291090776333797425464262248278479319682023309050313699563022124513608994048533732946901828887267478824465967953259935379995450475845655775771142401928521910092030197576854053089947662880166705285480253227767330647666198410475872184829949843111694780320727717269480543576034849528780288659914615281118610693632639902922258092797290984546404481617536616772056742161939027485767927201341619649158056234209991021089986544029033746517735383730856027956492045206994531522703465514419129963258495492945238588551203591231606483218453976820080086207307270850734930691848886424928638048851188988111226147632638200237067209641077091179104069262495675294206666353622056825879546668133811799967266132506048495039084567098164408629365535641876676253909522241283122982046133308751160742942701188435708495513655842116174535096353071406482193929571501897935995657439124364463229826791966365564144128774051543662349733996323531482628132606085772683635036231503890111081579941896157963165582438399199067100294369021945531368812045526149136062777134399135204042761826373566947224672762076914980489567613740311715342952613534712271948788611083782285719495249040392118276960298540128029186276392279457575783275737172477826644532295961864148409517456800827063923736731124663472789507826749826673880236246416150167787152737479063291840188109856535918435987179027651495135385532533062336665783711141174453730211133467645682660838743597166641972400619878650855044947631815597331818035079023936650488889745041661788962572044058225775024889144791346275912208133634477191692362599525445357753454456293073396676778167662815573808309149332907938310742854881548554010514291783792920326267597450188652288187815554611495882805319655501168734355797092170647830655072227838396660399827264001471887390494296200205617729046803255284181409168956470759768827581667299102200859961340787740449014184107282949495278031525186572124431733782181444570929890358940704904323218510902315092108130912026862845418622537262037879231131480774906754906774350115311118777964007399134021745931753661393914814034891858281989733707830984821005382274520370347203933670725310720914575437215603415698016487689937162355943994874863006880125170428182627120996728969371766132919510024467526153384506349976817193710373612436090715910270487933757365851806174162466757945682723174585724586585810420871639779519281648118464733741192994220458191288909891055915990912106867462134361014597012116802400447506605285254903413670666033546152012986252580454236648279759126072408115191154151417704270590987363628702486252676901396062962451632741306826520159560378559779627873439471812459532210291909983298240024067937000513766149779809536849097917033383363895900153640438311953926941550995420059116989755555789435523462070841887525346990595832552425329053899887526347764358668890227124560877317309044328054565909160052745074174338673475325595983234847231010778008771176017329301486368868146934921756887595532470609159429913268156465272035104154274627889713409200382074284060071473533391066855909949961168887464901036806973444797227975002833360320967512915349011742110862901459283183334062178166169445205420457752342300359077610899530990429729828348067621381751600035664493297256804371762660373041945266684161931600137655558189432884480854728022090557632904754676095926478184303757269575511474890625486575076353548078494418051298076758085776227757881944079950706339965025453297399143544815630939588147297055877272648549619675494402671995127372117941204382326108930810926443529200104283632635145302817770326884891360532859726417879187743635916985410499921213552474983371054398807989676903876124658246853272628800910332114716882608973552720922203934390219692757415775378513850266596544627795746677715262612290484164538639968067043523358272513493051662029930464466524316789337716134010368631367375044023234030799737514399163991947125368703780259806593380124073490180053291774474240149238806890185303064326636368120301642752708095272224663013871597900183052856168179569748064767431268687842362455263058765650434102215928818128638335862249979299951178631199699991232760093905383788766766526407434498423835738861252635478509476551301949976153127548123959239793569758305175052589616612951138586552131011141903240051357980316658330914011331215839620193327872474528005624460197703578373089613827989434302418152436335266677502966156892989087544200732192339462755444840694446763942975775958797590448175043854295430003730886082970172397001277816661553353693421484583921721204244651437346654114492533791108846794995325396929303393961159132146913777013217432738043365182496901575155721820845386545865424706483107297078217852475849497871523902983362642850919273445071707531962914103350578264900489535123311081017936794013017349696279201591069412108070224191902705198319504525051209245925172272680608396455520696840502185766451270942246522910229832782499478143179476310578397422765921197647569040248113064910872890738116065837195218332703045558359648731717310329680543234691193354837414276348992394751250114856900740208831407047149874113542057498888941309886879201460429761021393938462426239136863408212855686899612841643371674753625269202017108782190311544638487567762922060019557017222259098187860211766563181311835492097639425415404117629252494692331302334350063005136024847957540502652079254142726650605479329382926522765862632978039381894739174033874629245645355749270332277049399763038994053386183407465968902752482445778413800118454598162903092205417897117309727575375427918964301959701968076597444247584531729127627073859641325124596854871861162334503828232937046596651930517169756834557160795827164256320233179259003550111186280390153404859271538145252580830036462385168783384247487512629185443858782539132446748548959352589551625119811764984318533591820766381210536058319969244232164658096717030809897027397763714034735064656031507239203634024544550860859343596539758609435058472847243086118625394655730375590811174763542224765829370865475757766057013598328953481242710368147385947599230442068738961079479886875434064324422244194429341764940591563505335405767259748083708584282947486032326217553608727722842591242043596053243862788424597197621584947616698374136703024513797299237739988182813597426016095642866867007407326537912707243965347947028689190717796919853404817667308013596081355784529567956472474940950223337724704070597174405518525701503786734012592420488863432119831420087832413662667597344248665141156365089199590019706921618150410329916043660131175010117407431971767278761426473053841594906808826568724267886474856723749790082895177792175224841669315282898640257796906904184168733494315770144177203947544542272905047458429423229718239242684811894540416538299829081032333693114986073434719171713236962024614033852941004547232640983682539827213556124618717833217154541965362413691723697853306560706982917065278246143336618723855183721717968428259368017305163656646814919582069865195892376128628425203732471430124310272551930632345238023387735306213134850598761112274406722259457376450849099458614414841452634965984495903035639702260179618165525017871172131338561347629511793467513268751495503375167192839512274079066828542418988072351747773352823791349784971429035690534147713769616107921123825212189949246421761466666929524030832872551315104704133674813112830034715272284264745792311084142629187099783858434842877542915991305275791241423790279144855265968475829878902604527421134917265444219966791268759073986264219929002344955430462298257825199751233048030868318961242220141258755125373604876673100930733110931138644629946445686560425650168046239702350389545387485372773251330275650595553873261017322947640184395169723725864686981847516470105945113463836511572409777380835935659465058903897118708098351734297015974305208731276317944729055167649420350769374517489437352376906273406923333448564953611815072030231127129583328078502811929372166624796457302722300804754565908036717427833813064157469358317557705629992578969602726533332533427139860123642563110681284557862669561602551551484219683511293149221243817320181698627430759868245202703672309416684337613064688376847043319886787371283441639351458573613078688437462301059011143453741015728969592234703141083126591935694144932878810211010726219243344541072025454488728293945280343047254407382952253861299725158279521948910939911041623168851758432983866507153647362332235723110916854031436200543773995691939972835082220072497646266575494641166152680379662188829516080092057305825284899153746948638174257950387279719406684680691777791002209731567790620713212960044425115211812391267073476536730667451545616279661513603069143427404989598836503285380589075452055171306271873694584330934536449276198666150517181891600382338021766400598551222573423457944101558675200777005157163989062794866958308481757833757629262324414700556798373324528883921677868124870784331312470269096974197426482290548395347592908265840179886533652740758022890571737253525817466287538363515797258883816899851683730620826557972106674990097469122465784617405502762238156748710507573289720918111824442879396476118166562009292184637195975421441433470730299202032104091254788217273881205754535920892869989611270732330268665176380472169580920293942494764662486082309903050977481023590810127834642344247613829259012750337405907195455432111529195855978546274354139501194156195766129961323568243697650760558506280822930545934845615284556398440470553206121717979407847447169525783283563061404970805083649911854527108669307877775430603820404391867673213017502065305317453009594793817011248109160296943465334350698400704296080313161817398868155743793947149313430912520148595687546383939371137995643099415932151138039873340365450719136631252414787893966454166241542765848063708477931093161741172405884154839046894805858703144288012799634518085976875273818857688054385816757016949789610559443879102175207382913321540711903018365209083358385667215460877808654756765687174260595171197511119996393273262116437735022188410421447174790229681006794630705992834042826006498298562092576588671161221868067499759895874052555156430762878837307354271471091919631047561418280385947946557054548174361749680690672667742504673137567449757174202581692511169265095646894226381630085484653504836400262991827689957560304213102977624557358785923200215248778174918850629437867470778316093764908608548655270169234254312577527354852569583823062584276438264803230250259829175953739142478053043703066248897952031701439985760754383237308184749867856224758009259156496561197603130451053894744366726567904472345520644985173332127155694192480575887251469844338613856510990378422295358412697177566186758215133373361570428572489865575779429488382401914015512622908061388300915870493145164537800059299695899063248720965413874126286556509294643417176272666625221996759196354909414639469011386417753241574633223389630032779522537091925663855057266447729290539632179016465305463071721283027315355016169988066892767149229082840229500116313053506371473799932127244855596237663601320960533855177690911613897845467209027510848212493173319074300657692303663157317679055436133643840731642972140726968698215273453017447885832646805767846289281271429681975818724385292907579563354343071145059400355604037328022670856468471854453817386628848538926307368443050239323858695945897051129415583983140303298308568220303130240768632632101751595680706646330018498948562136215976104974272924862929106551455554751881923058735310855539668956847249751152792483701564148293658808418933935504253885997979491703920833689386178920667137056326745876664358213431298184359486496670001901536842170806748373069292713578782317886887365739010518714230590738098761813866738010874965645838069976160946128286237750311662088461795028676523203305456354848359413078479538861443002297439239750218698367064397088268265039517390037267174536904173827563441219332481340412349926285683626853624793977869535851033829444270256713280647042439988869233306466576991537178972333014838898467972339425338217227015115605851352752063022154382758936897701378375179546653827031826570113019229512535818977560831989345839699142426539711168818312328447361899838896160166084592119609083384564757230376494786610901893293303813749708665253708575107154604281745220467595433243938474625782694280582823750627908471861986418719724837597613463643020629225934375028488725042171455013299858745866181827264097086288465325943566287071328609044597788764043378249801126683853851568777524365248050306830622112313368520557138984852340006261311629040190275886813569671698565232548945581981240750486681374042196219138099103175061620591274416771653798233943802676496255842893616235722880358556002067627025562746666138902816760949761821467677216759712889563369408477769776660786405417875934105428721640281999875178293227621721307893238449308622598028391348103019550815657068030733547042147350667064164630978376118748019777465612282305511427583846251702802253545947469000626365747001307078440914278035946673921604867020849333904742110571963148554240339792681420379034397479742718395920010634446712207744073136008755279881673132134015760191350459551310312151610881715621109408600624619710300767129653192881672434290073706553934948150858741110231635950809625468326601749384144591382047486866728244102225097463817822390554629517796029264695667310936712720096341128449391555784697380768221295373147933467860501877796497411873100630672388704904046289424686814189307417034082189057385253755280904910542234520366084658331750955142703370569266313210663989613169549810116305133643799276104061884624143817922465590805862645859867363646843289404561505692679979783181532978447845238279176879411689483447221110450324814010543663362645566674188280617807921544339640180557694102421531315681043824038972177989284476397726917886421755130557657630354748666818638030966336272009518217205355825833476669409755895757380954307784200824116067670890626066470575792160211936780184283162721472139049877338221595534649247742294576012903886222011059277901018670650771340192660848288713220030609748006129998509323976547895680014076851498902509320319643846697964334673244881705385575589803664171560198449925951143214709290611606655996868174288239867874281500019165108176986633945572512286615537722656202099306256335107579633707992122740198892070550112439558692814503067781192037222457027820268086770294023769542915679705036025341357500690043237620997746701264006035599632475071047633722937152192158170698023343588496238856674651716539718391190304198074967233547707584791560504458614774712102596208145685479838657181729222215459056962184341513650822537948267099422586067085852026553022934724835420848270350744831241054282858586970732672832850050891861868655821423526545907165694534923740054238464740403074444815994851639821598892645646111672002467008978168363399314590968973662065583744451334346154676881525047013816042759588683973987590597363929515559847554336253537204612660886164544549379763884160144758960099265952401361151802672903640065442269179754303116988130884329746905282802262233387380659175047025504795391826856675186617266305335085217145742605737380965522061834921761688928632289829714781743527559234134742720708372935999483928913190035281901569005892392240782660599162585387470570025277671555072116416782980432521660272113792140920565126004272960944307734940394680089539951659187260717387571309235182565372891930921837726701450364013258481639199930793804001471331929127377405429245691537715429314983209611664375833590675902159160707859946007290729508302379275101790685085153249084934464315120717977876456747297834366619679776157567762677091518014583515957578695496835099376297360118866142987828188834519221105671382633577901118127187802321649706456174064092364735190986819081500623488862363081350615403020502512330760976338602211533350371738969356574666048040120094513376073371037782303677122768212948061979259174796213417809337993606575025629513156811503751450743268874126940974294858802546697702056771928885815800652226400449302353527863224962575776104545225662012336528674705921516639756530762527115696520094249969360586373553461487819267532895850578914082167743271523909178872929777096573948257895895654306166565237675446094558874203927871786832496538755457080305885451065546547096371846264249095879506237664593969254797079703096419369806630132325729222513433495310286239978451267109495034391061741050626644162103371379019264094834720723276868296774091701241750727861995108215195941828825232999333695825725819913970698743833063514627946168639583297977122143181995811645209924033974656354576421921201929304171018597911248065705317313173024437906144288500511169049958841105472256730483048620943855457535023909314029239688156154956298477189679305477127580365492828299180584583832628366221170217812153970599085995137005141725340942181322647743602980368884703064048689916990304819534682895456470849000680476131422565782212225251049186788250998104106968187297784080167539292255819953109089723024116264725446043131955853824581225346972689734515227535976525028422940653898855681867547819038988948954569212195394861453908462299604568769109572660161736779664219129365689186729082501069633843285871973144300260903951927924073577177583308294583326407043589219995363082825924920311553505212989634421912306622276507479291931942799177815564095592956891428199943344806902628704837337615127750417567381931541943257927687262039151244391337176884858510445925785646244558485433149617999312993558161948340809981648503525742904732906969361716698014070252448334470401482405590988553336180672505313577950033504509994793589608017179343322449950296172030546716717016290418933279598023175004521348409047441926307326970498761031714292170568928860673321648795145625376197771758088788349806682840679598516623890486716523231066231158302104487636337909969394715123022230887948373924362388113877111821202435309757270864997163729939585038284316834935846663153597837696410615357235631385409784102794339128507105269150724755071753195410341727929651097242656213394182130752794500776584340704195040746524330711588032042939353337695235461998599882920688686196401358720588894183862701137876111391695067861465984402904267950210978359134747705741976550352214343272754670550865035747453161177786195655335476808541632799756041839386599300488646688507049911749654574752816228315302531649487170758848568827687061119455465452313466208748246272560099401771881230126497769700198124633668267752256666806363747681684170845775320193441215551641689898341338689979893614477439213525490673036840196276720783815329554694496720105243534019446991489612403481023757647473201098531982168945756513820049512113445883429988279229029543273656513700550363032708618124122615815812097935600136464948420315748378853572095334081631753444847393676318336814603816357940932522415842264396349617812094555294755376905692140129941033711632385338985227948433745622473087392520349916376140234970018086654599319931038736051273928416755963519188965364682374786416551226228465275876781939368180563636152691432283128780122157597953659239502852095762877282941130014501668506534333296099702520632214138751187974743013817294380489072931759216389951021159441715207869796614969878503558508250857525484982607108439902805691737884966782800663785417933567575544313577649614190612679052597862297081216489520510892773935265143350762037809192309897157641837843036819419094375220003654801856540948961209109065308797914488394329507761035880945611588036217097150677502256750510885853795052403457214992330331470193240880948443526191024323033000214773310223624023806542435681981201917393885597295380254367338024176795362360129153283257440439454728520511687456314695556634647301199377321699899844546258026852387116469754633892446683802940889435464599223993594205083584260753214878731096459713785938636653017331042476236120940776444092436047941990706185644694119432718098188769998588507708551989786721929373292758048407982642280843893346659779181014858603743341552402420925506629036347918021069659488811387260510944555982780634084441710254582632888939808665485267814332506655097575806755187921168889665443779413007675900526715784275245011451360368791457617689702450013593709044627920413526053241781141549035441396299736440572375376287705437558980285968987201899671326786689292009930464291831572822797073612135083851137071851650428946383621897327547036170334291786375953526009108674606205431253810376875941444186022592030578578181189780637261607281600450406427616268235046788236110689111238487545314884350195790724272277414535834555896928511637104597332234170632970612700182946373782717843354058602849958413484833854699642441882011166746706890275669873611802838139622200953417079135017459171650692286620481770331462613962213892386866258033260578641040440237182954921811974939091325046287673848557680905076000599474576270038448783932812861809870311723122690709847903313491767466597043153007213332936368846635131151406321406510762381902351209327939909108525273294937942373386971168110689590611205928695028135276881101746256705524362461798112490096417578323022157047307167411408805735353614498972735962463074310920925796968800055309903515016442977741976223055857129437634406771084818851279115406638974475891319757347437454405775688107446357269853866688752019456855546182939067608034189317481544695862461538273734727787181654950586663831741217626378072406468794442920414271713215338953120108553418595070632767413461713464498139543789351828295944199053640286313459221109970979417670469294830988976779502528113617533063869197546893847802017601113823159721379947191943010416165916863771967517277240018212281488389940121937311741109630659887948116986328590887446934883962226924410710233050360769644036556156657100887505927618714781657626513640545704923669640301794437925460729076083461810156064799523658280310148307791127885531359053995604389794454697378541094409628164780840030419876294346721690835861080963923248299071490212781765300006605878710319838825442072522854339343539490000969736648850781590209158908623158163697428317309876027085266211641762047369880829274755680687686952820583377910363096748614591099710941025695711552024287571296045671043493136362215828488735299517076696052811290967680148855658460240132037017225672014708741530166003408783148931937247719897529832004035191808912326119502343648891022172505448942184532902624575500896665156275055083144139448719502971887272034145042945036664292371426628000588338548064606309903757798939074560580565805462326978320016817798632507924356441148627371872942270559357294799328765938467702968867583072143119363006074128576831383653892473733987650869930475316540565103053855514966185662114386140859658741298161780190886232709023064975509245074355124743901851356964359775806002103159809324185162257695555030576371154381595069298040212955970572726463146601420753282593012209266615236887633254672222327562709857003003495812530577074888428438567667391346816409580776684922786897899359980757320348530264074068746161159495327680888374101383293244546174906877248632565030211194506532320936929935681771225775687326845801827739647055631285869333270113130077561648420552600259218553219007206422733531167076439435955598447824315050078931649229748798296082012609455594313094930720170012535195655733493011147833176988840922278432984324656644389098920529670041828392451902722608002051741643853799014310433935398820642588363487184216234331270473882148010236833149064188645733312618353695006518679759655714098541170885704842554763602020083538253166535789080063503489066638165946820346145129965370657580757444095714897298937471239375879164739014092707560833641237459870046498801775646900940588452563061558177810259166921151321565074466318425667562491635130586972544846353550891471880656606899007444869077711142484863814679182229786940196995761759027486305743089207799339028090991189056953066762093980336789173833548533756972749992845968899904176840988757577177029893955647391682318407657329601384742985581853707737095610441713077005172984060285005012515210025392655848131010115801452662028402148466004984392193507527435287563116192950071431571001936812439822891297416878385659210397136412669352339352191218820443946725492968113181497304504158820700587148577819341312993256245912588120028622008107264765743104142755219512191562411891006712447987586953086753752631675824030666862212484187113201321773814233879151016756249013404826866131085610212335126325631977548828775166078979377862506950243837187867630169024673450806971647165848076144042034334343399943569471887756380226824469742911886987159281271581370943301448469862347990431257407354656868796093341091384118562542595216250364029947390647827922602878302540469752842909229169572488554438884042976704947440906368368055407105843942451495994830619513030544934088660718545971385617954487406725933943652458750257424142530762361389043990143091080074656182652123300831006872175242318972125820773843005986576308419187190129074877037418054837154437597673833545872743776821532670270352057652634460195675863901445064705158375271498194787273124478974238836880464913712693116312665693291033558035283941534804316689737023074324648245732818901226217638241039032156838947849631833263869891011734334648380906246749562648576173039494739827273900542741827449068377168169920650588459657535934641037900413668302056107651248595471491942811950439971088296858885547379106032271407932683086886328371568758324264826577906318252089577179188330005036342409829185468791576674977149685797830260896981168949886484475692529848380485450112249663422713315954932580804824856475163363236359309241048315679621374163160361258570246335879911303886508220953746782010820479962722802336147148969666168372918500984608687661186748179408432426903881074284528595764790402319301691651095535679968972965504275031096681011304386537785155261556528564392455225533346918432573585924280011662893084589044050661410499062766249964585293582219726312424846772557110548275205545576840707883767389663639002103436961653837170519701611207775912925558751477943025377581703049468428285926648470149149448002066560995858999352161178220946131273205460126146678049875297947755961315879286104487807209175412556880913903052270324234188883450477561309237334646580181503109491581835841000899798121043424179457840327403773837852809608149866174731655288719829290013184540667714166573494468652507941978903013857827560605678619985686493081760459012916793131007051932732740302144097074980964093182981592378830869726808944085929406908939545532357211682328913126741803165156430594618506056130332667075430852158530599109798702985563129677030552899902413789922077435668214806198047577619029398934096575633499860176893957848475977703880053341813921527247872506781925354041395707995910861675448586654073801533030739015162200100954965878635974371846131439948552148741050363176061557091982515347372039261931762269714028659325830880119977425629817149172801442882402929923001531192198195343715686566015071690752642443011831147056789175011223857259234889736606461040719104219967647614791706838769327414542108196755605202953772227148641520332257158231915242356374702254024911540955272832085288380777190929900283963252856870365639691082458196193045811704489449646743645664487672964794512236528230780626792082393464142357602552175267252546970720419466044069604554926598856135897678428351590056446452559845889492022857916261519321526769958068371569869127598573216965844264127248638714355547685115759663129985223744376470479475707713651015003070005894023824078252551455548258143114092299751976197313899709655313517469017323947264999872949544183458276873118933558700731505642118380357684872296691612357319659354174644751533967789719599312710469596151674673208922051697375531587462955495375777720445202468033286010027831044917463573592511750621719474850650260629643792903442364925994431953336228416681517561523737618757903859161739462368789337631035613957062354632166452991851902824061503843218610925494109540479734095583916778618742714094247223911710526789330140457311496632969056230803023884039078127079463313188738183206501508141271522890031358987392042475168820161040084064736305043724441235883517111685725580348447970532151170092027065997112344062520295513053439645113993998703805384731654347891573600483966985133772789715264142049278504942770083473912816082019171303688107086760144619004543943642589017802307235522348400830396053857926756040794047085903832706973718944490479795354858004291501838942429505163106257961067489385118859220277458756321010845978956866529007270182743659730756551229055629844852904181831284375087701913639760860749125555132311547133164717649764517857268449385621922286887206812305033469481575718821127360869962276652987533479059737744628737937261333590482458711921086767842852126303828009630541299230474025371315050758592144514802866556669749610101767823793130129573817113915941508702153842559139953975875386307419248508673454394866526901420938720120945373837583032140900454800682260725525615691486096312116984346873944509075637387184686781677267756529675018926589461028749782851789005381347879903376674091511312009226556809857204150709763023753980840275197340156406213161800081516925965129260402194661265378171638382714208522670219223280974230810987816571181989601474949415575666231251328813172997673083745417007683176066527100274379752415473214543562218783642434492418117545083472092798843093303893562951852831105478497826014982322320475393245442353237183337391326043115437233322259934035094585223348579255065139611230414810172334007905837700183566838912745430456869841467885057706073452700818648266438403737413088287565964021697152499928962801399073812218523800364025255557072420186690489994804660338043869568893379678601033955290207551096287754670158768641097783120081807700487322760829355674194295090783665451916879148234028388957250305414959927394442983476837693956146179705324365848264708472949883767048294923499942331861069899412128094258299804438135252008876159148977786239969503558987927435018865322012777569481596762421863444014990541382226341252749058366908392535920192062517498055325981987903290422341269139237039954780718069075629742186036373926572143075048767475849760580216739421454532615706048682751158112487158640280386882541342157245584992406350295566513474357850769854293916379802193415008838869885939337451455454097319492280489984280570537555708013954103759495867748640693461892497163365012994204053937303721372838872262325442600522043191951875706068530915532790479312199750687565742594339013665792058145452473335960541500917223959009679700662144445279556403915781063988915671490238149140098661801988909199124980788238809283222435045040222952785317356414033775414844933804098953717609419137090856351400338336007292076430223128466166372865356861899695453945992201758761597690243518121099883030516750568709308902924323053478521579629341598544726240530855811882105050229424051729573562343861542701486781467428828302839204071565590266905067253655616933751825589034393769023171629862580451224832618906853835037258136437418981560257157665462403304364961055335641101503908708434366286991033525161126055250592421421190516344461747075116360107690638901388509475482651438886301130514181462800179163941964713547078584614600253826084827826932326667230809994596487505207670689029252921519051275965871313880339616577156652753459854694999745225624387950606448422380868812457145451966474839245366879289591869337341017959979483310002944336377484396603904002308959623862159353315639546305633406023167942533603446874779914788351473382193886531848541332013047752744166868881383365850068857503908478608357899389909346058306366087184495985741146328596163554420085534619334760196423567073954667106143636840176394593244895699323396698297288963545500932355086095692727281529950495728086467979874802149396778801693039584232971073474169137428073169950129489031402932807007216246139133375673719650640961580519371831518683205163547099045957242727009094580649288296086040748976227897358492377867415493484488197066758513085624987689866861862922524451534745661140040945809593658304203691741849776130414598871373971746027710554191484336923409316249664164822482952893897396841759009332214460162230428709565995094084449042796622505162678287955518857949094478172464685943117368858528023268164135283989090134362334173060783707319379573778487401934630690618681223499673532400814217860884974637219756079713969128055627331837932383667080277659121810365818062893846333281617878731278177704153832569630840958326323147602975875707682802130752562511390212955699275245439060279072926539717376978234251002367564781264010095720766761098219127115172833845505281951468210812052399084148800351676113645880766793592037381817459380051085803424474333515580237304286069939104987844204055951484536073268305456537226209806485920950037623989202216423130362092776986075623253422310883765340547881782995988539604307738772836724108330118848878731492067540367425305755768662353463093832331724387641354649656262462574437345595270213132759940256447997843399310933583589162568039214968077989446759561115633793985483690462744061348256992508660663582685146195788574193590758826150437423354078678356487193529722204202409013666203162346847679389230601524663375611621170837575153671505758349198226475413615061219202063049648539257604447447855525047121886921445024942294661531320382985413720539585296357729686739322054080962946776061778712256998086403563999103280326753162175870444316682949220347072701670515874402061422628271518210968916736379699633157830248997878379947168176356373211696496207290375349421494613006926805219979323866456704163830767023658110611236820221813930851238993602181445636360616317763396883936357175593676228732725144214169511945102353535024083773322648076571865097606768812732268240052853244371226841061873545533828958597738247660258455729511898329577315272731232165116841642414678778381161809555873814236726448955990265446472031048669213888274483982749331505768701350321152982741397306587781259733871448255851301201423054534330265680094069514899788037941718890827441973100606115101594932100725831863103583635193613293351965555392721126566828747368449571560082103144209806594438705363052083288599284624026415413902954378262932569995789766214240022469292413736512477744805067936776297553142017535524756280338357834365601257083554567163689795805176232387527051378981029804941362752552500759484995191217094442261293616119342522570302798711459089381299247937315184574112833665126290820651478212453484732000894660266752475195753484799573234957176339945288595849633072786755629090835041746749820272870584420360878810798528682444533862972664086777644336260818537712072386966639033942745454334134019296839343318293495055367340538421923193033110379059939889672568217674151471471618900374814016474568736285185121387262045169423583629369923052554871920835389401690426936163183537177324457470562071377409911634639035739942902710488957305293851052249612846804074857289216652924078589981986066589055781658416232376760099986560328749156817411498246245773237113282985095478245402805487429313708312046790176565811922230148784210365627757006834128768307374650655867506051404039253374130992929800733005098785322221392628927704906245804078510424471953166656542501461250676314821256973656072343250539042411843805046562937974900836877183370743105954214629540832157567421947552778431176252332901481465975996406422502664719003110841669063781594578045033118866849313767255185174626569821373296361765503986740107734834409200509569910962829952591959010188469814715853236254671948656983944046202826779431971115670113493334784565009428877746357254823130065140222310083753266672299732077953673581772244317189572395491947363171547368308616434936757774168457036230296531251795479042932093667726677111298032272976447466430814882618226422102556320143656462939273474194580208291146392241803687337108400735471187019884472903308139724461718082795974573515910634289591293793096784030132277618298670895023706002944486705373884055509491733425965951292250486280859583142237694598931798212711933695016720376940673813785581728502637745270520700944896299921635401827921484803824830449704289385065163881006767162900904926855286920851278911404175345809229556523677422541570481312105980907811409230434616452229689982113775020679824081130751362208532823161103797128348293758829520906101218297186122460741860560346710973166490461308440329537593568770130032807580882947489916803944356477669206052858095697870396478013813128027651672107857998279878617709898580063399449812986540029585034330311764499545162635920186413614517469916738672851081263559339055341189358760775918877607636390003831637596806415936153259311049112143417555059685594942958361216282720821427370355524599134554545145942910928202458364460809595678151713259578381718093081930977923533256588292923589722016751661563910127324103697025932154065061079304942608585959122868726566658700643003365152784742757206505182497752249577351660521053772408983916874294275535542169675939349747433756015782482686502619903916862567659646673052968945272116464299498858448481965991346126258944280587029144012971193294615663668168280858980972150181929774688687120566492806275547267970834568461723507309767841292914372050194786690148793749576155471756186354250463733165668781938825950746920142341622432233325667588387730999057407936120894674315144521405404729777834181876382170682085720159893047688087146643163065395741097607156170773032174531517168270479952673114510484508988333011732050450585736659073122406820325240524316430679940365370596892432477974691899194208150280770345551335227708390653384114889978962106677212958177636085040010054398402228122535110372212926735899232091735409892169492751044647858576482547210827372394780097424656033605996116883109877638400552445956907769123238557327211059990870499007445514216028541854501645173809372722884112978488290053020803861366313648476569305820641314946746931542555413868291263271006712051047015508496591224143103831356043390048423125772998031892105730753581734167302868036016986158771262838821906531489031162912142083693254360971818136956354440383416450615363687791027216433726782176348057982671800707648244363783516287215459829516495761301536469121973307941755782863224761949007676104012337690820802092901931791346343549630060399593374396654204347740321196100710559903233551673475145292268936186657798397730953397186786678917186951184811414675085325431942285501247214013859627676252935354870349914568634027293087778502597278573092395564011341385958705421955632480044681799959980997480659653475743514339008802953981166140639357096811187014997212481228616524716133401965208412521272867979982652443180692408354050110981416312833024233885783752098641264839660444423216985911733674221152739324832844803304248412095124959265735237122980799379929094627150711917961986717621625779949417709019262507115317502734236335419782319469653892161443829649608938342646086540729422070658737894923508964062652740524595510071729216587125493739306467860236386695455505852574324176841249136022888460211206513144212483474830926508296510008572432170545442246588316800116015432210496860133733233041644147513516012335531319910183161978008131889110928322352260763497093152967125256721466568559492753085477589516232814743190641775955637872036800549901903447438468589939316378000142455141667275713934079767102601275932384923683139171717328655336206167665620707138055623583679834762437770640556524422198220959869077784863758652646554091783929616502654805188750082024271878562471510206945755233959785830512507163966783296174996751786687551920948171847007782760726238581814309947298544435652752979307797415656271585107674943852324544260393408396292442862554963664706073691623923594896675905310045881052863111284007134551712076030122637091613848502755439953388879802976961011808647606915748974953232505013635564728062624843085621493489060439434099482067646271952011217110563916937934541057589450222629902416172344552382266608936277181331058671328369988646058765003571164389562557095106539623373707084798210370447851308948191365564782089478405539268611428508048775591204993640759187215433250485823503570588605324459853121406892524941804658432736069653858783569377623145574922622920092029995603701572122788216266803515086636857684752599000868229349620627370483377025375083459164560506310272769237523343875717011215127768711611294610494505329785596034344674077071218101242174341616562110351130028881333039566307115202329376592392304547070007235786054008616113466079104929262755218197737408690269263634133626837822797677015611687905598063054371420470280380181486537768619434594578148462898428105894933930219279438662514027161894934538296102899144657816105092232195605906670964151383974544472922757302423373340127168500185973835057557522809992760880774050182594672008175141583394932992710061274226645952119194106212262004240700669461850073105238307653758757206805603661495896026360162735214907594748771976536652255594020112274993906658188905912132742632457481477306669834701325980922657134305291242697292691583578641310634770811625432299278147886494935610484587049074927584488916415128274858110972633418405745961044549771848938326723412849953694251068445693122974001143272313889716060958960906129801125195982603251246836041665900576682453554143698076148397885952076879169096797172219484890858203742197071487876409879492470515412040203927007259071109754567609849089528943560491854090060814734486935398274664964601234043109034533427986008366156038040738986401102664166993528813461867942802985449878995420053478762409526604383646299692222359695810742548009322652878274282027519882724707875785709463564030951491042525206715366901531443479207762584692692741604686862334100801212853271675095204867708641337526963518736861481193623280373070298737577319124133992179615643810417022574651534775244406591628707316879658669368630381189292225787249932624343880306138731662554970221886937589272387419972410819687498075637129851581885559605012961609440605570218423944282607329138907047975644287074254736741148293245409503545777957220991170451469053900295784799474435613989673407739102719026618714601301425318867004375535822994069498571531788623579747253769503359788259694923915190483733485995567604475251906396668027904388665036108203602272632153265072158459766113626558444806604691075753597712792058872241327832400048057260146740430331157534201016516782224696109298801244494875370591359923928536990232265697400797031901889503501878884607000216289933385709057176768574574950065364937746523734767438176878792743591820492798233293885543399825831265765322505776538066106832853327210572505138398288383186788035221367586280529121361448917719676430319596866763139601006481065987852691771702544055810723664541469034992822868010804288189650724129133204530496647085558498453502800195728509943156925386663858849011816626663906348364224001902592485854358683230607708042248045774869551504208280907821376825768308779451231533906864083931876077324032559861553247411875354238987176130737332719937959788212434268586289262545827176788130655305204460007679752306363479092432084974472498642276588740275243344013474256565013576062104607311248511341333238601399391973696664598809136090403388248520382549301756637298498843656517512387961834391473360388915285253855616802119910401123311984599539524655098414153215385980747412795290681562169994132760062871255033467080654231250852519521779005309801508860909577350390042435931727540746500994312476241313954283388967609565320480765917877742944158645439919854261385405689889158184444906744873644713474498724593230212811318344443928510640884557381588429184926667885161347315425110888671046136638590691098117158259734722626008111442661046411530170492079350992802998203960023938381601718831503959646865485553531767848626162548209896042188983787083873037938679711075299569117375050584097048320170398632700971926214251906678663767223889449791755818559464098172802124144605136388553360994297749415544163332313639302391843221663943644945944612451689824789277868625915799693898517675921544376468060882472215582513191743581324839309672405342798227679342358373941433819360561806911303374657107314151129834953368359447586093621992565618367141445076037794884783790361909440193418200984346442562464615675032758658787191325256619983235415352149750607064546827743246899256846334179070244464914941825996696119886606300913630227493157870568550849070775293091579954962655941816996130775463448239689875227448749322426368567869013009650062590401132918937091949436074861949523723019653951796797200788160463501838167271435388149747784696685639755716661901008172224887492366155200969164139883489266792041520192302178638101656394688631369325378251964635935157965049465037477176170847823704821841333025131509668260481817587116985819315672306769099800041483208871095852826154439449279645009590420518305805992706757045352488814330468088975393797632775181742103813742120869373103437379056156855796942111823221585975794597809217040900947768776054678054262725694755246758731841600457601415663360863715892551783607474570941830414683717546469843721973017313701894064099937678727969312463229652623423437375755333194344157729120967541265957247327098948631230461950780661074727541720217383934101404879251338401462053333007643436344764416369944944026780693752440065744923751617289246909429725127307864784037180867646513543231346625441862687240873536302014875815331262584627707875742550353924568789584604322501455774649813324611360034522471825169369167472426864809440205230036250352454125587170218569139796083701370533957344328726695793078005010802673564037465859690506886089199825545406996135490300312685593873775801249063778634154258396862100581825601965832766795568358839259134166010759173104015168486592740532245185972774108331439004351533436274687070962315803743775757362590803322828424966808570564150277960307338628174615381439610056782831499205097274064213229102221336218190483347733988622518135493041502916154672460330576346498947087880159051180762484601084845474229591319146490907763888230025434115456640594067282188186048968280921220028607068470591199339180135875049242900889602116834186431836128478934162881120386467969437209475156451481558481036748776347229758888215327203447203604980449198604776574884358681226952192248871670940462863684160893771913251598327580987523748522926096264452860578119589498095413535884512981702791422182621382736441343032009134734373623010400169273040336318875196510568776722569455506132423037590698932649621981881326561431005380793027665477400937796839302806704399007071002264994259580773532030501107444089962649023854482729165329087911754714221365656610242245067250549496544741090293008122891119074958279044911299584892254043606319664231668578298566787500489601257131721019926623980584288990147887946702610964913084331931533570152120019531061248554354634958851993015090329284204006763909231867932077269613330433669633740367586347317124483825367561313016807013807055467860461707509259400906019937917831455501814997353317734324423138903382989573674248613947045464656845563276018648212544086151601870829888810703990516114627806804611826808585292515216863692584860564709103644120785491315360061264712606586724397172102836801751785301396651831545169208510970020984406225288579861687725099665926307371111186607988137682484873914446607040395876617398584232652159558541504756298636176467864199519762885654679587109373834133593038294400291871195481266456695645265565102338322837913107314233926010491716535074050720445909677831488694040004209271746338962717154967985353651650891599626888839441750800891982621734688129250893822483041742434327467473297114642248975345012441932754494407299129228665956104951025267538090457500769868384598395431141219468992154850967261594585866059646675543394639331047809087347803502673167872843528800360239984188810041877174053625420762352882869357514856804651723329008338367642401076659171437944194381773767162066704250294887178104573530237384498149730542329181516925019941843866499759641138727639981288401278603669020169914006529551530459577659459688396939495984260524651824714130897819965201419683717447404073108605431478482285572607858269560175309652695669174847983122403911765018695733570223564665986088486804672730653196958763639377385589106285308705032245045036724792065433203831658716992329979080712894894937905423763235215182230352191164660966700631982939995262352345141778539779859932345811784784810730302644296469249057640261824421860545382489606981253076650234703820966341168393077152309693415500952379011457080839893938574153069072573827277240831781451522419289865824405469875631640738322175385105618417788527187310151493636802660554969660324279799372688160901559858105235410681021252662519611223995846752711369155411522058449208155461180178728476058424577311522300899466759941591301689313164625917542549201791460930606887842800368600851829708063500494079454246300104079999630015755848416060973528573704433724362664245655413485040642682905223018842031631480235150064428841238773363629358375100354919058201070268789101178647103994165961485984516446423167504354342777999395928406049565926718124658945162910007606832998422048729775212490214300260976794132693137602600058148476470803485258349780233860382890309028092386291588514363885554965775059079020007892675448567308691901682850028773942989464645850560339146942529333559580658701236279754275774486629845825688113693854222217963342663369131115157422196057198748764406355908040858103413403386579120500829433252064030465045608264645093704444485017543281419728277338662412841524977435587919065167434593344839600632426498485255612035269456027182433226930472322234137487460161450718077483261582204048258318161288584811587438668003081237098384674721410098647367012967632336002078785026435243035557168620570310544728936098589061636136532939452979326311456281656060701071741978022331233650318170627790749027552285640339249912474849362156209480354410960824699124449766992359567108420943925703685822537551316931285225598265186315953643293983605220734189570677020896321436226473313029188491477474711991718145907562040978042578341266470849480191257138570769321316205632073326808430357890167964123750926845482747677940983709744386365021821213251396892800363853195217332759510565005531637343109985015683280827560660514620253203686324288748437858800437364311072592448839177677593474082773898463897280574417083748032309194905886518492214139526761245876183962265712528232938024796628166992625974551234706213343876728394954324985800448669973652123312765827670763602305029134832990806353402712497216027158095483775803814952951513579277795612357954035367918664030635992406766281857852904499066953556981345352938720093147966933272232592059176953230849189552049159993009071567989157250124478125015207050655983064580531047408406211959093386965185275814152366812605171020785775696307872179133847819433257532322768262014213705661449155042536061430789153439672738520851564068836166550015448755049522139473259752752789952383975054679764625450569337831171293889017542395554626417467398374464675993198639092096201842571028696807997183300213658642822683494405362371683853370437644622703058042242558383782528752280716019699094164799224687178017387615608001490885920851397791218754855121481018916943397891683571023413787913077211232718003042195252396963465926865432281910246961600088667589084166117530310148880313597797465383411363736597997559767346461902606159517790824328381836971410119344164564943892686086951721922866979245394209554900369333116589927690272875397336696752500312866179681963173562490934101930048754444462351304177682693503117670804567675243473756220577316904865383763234113868291414174209266842876128337682359841283896588485731145071131834756759771275492207391654256384514995147628918761072180100347712991958608979493190820248356616148541844522265782519507788030221561078708318047178200361984323922413011491834151749688173132168325326012983672947270205265246227201075039458110828750816995999355004560276516470765094280995703725978469433361934024218529750700511098125578667131080882526968193168223745870044624707703354584503788919174885089272205453338537229907045630744299216244664928443186682702515879389998993893995479637481270705773650204356950506196183994107691291837014704161019606370137205851858335596336454952466124537819589765638155220556529039512308092945141622382675878062312965485453528208272132109413403207713392895266840375763301765564430458655215898269545871447292789003314563465764103099961364981719054881654223809636686413875905263729935038706784824887966976258109737090122918494070015189933964888097445654246255503561864473728222994013357229970837842263168353046829630535061008298991560623259657488406962556486990354389744315859746341635188613601593502575911099849126741848879060873686578309418056606116448090339739152312564360626817853496718604051050256052567717354617024999386838252943498165096101356998352621172087197856006474376906467754623735452647138814798827912758916697974439925901338121511243791591890180074366011660459439405754471845903903795451753781887962291295766707998605964987317498137421406670516987050887765008959696294478472026679323192207389721285226263155826869305422952467794350848411608292900924774847688903928620563459723852615559128248752457039479238926911777838132944752458005763154216138357993496459596830944820986553607107655242479834051444605760815908261350648705526981549308136129928423441573605101892851252788894453697457594120399572443450639985654857896182679479514706463976561762718628651598789777314050065962815825123286343507322469351773725506724045527285538881823423370957960316757421558803712732145995291937261831279437513658129714889066085235872450283670633428191676691452411149725475872217355800627425922947751508014935138097461484420401376946357637526297463442299326637485054869271431620406593200819802331210610728972719777722596712443555834954843983635124267001805058437673311367440868457120085608952542253643001552643464020330742735766993150081184179739674690857825667710798271251191316286130383571888303277089059573289621910413619221586136451569695824471358300548390130744419247923617187562147474683277540150255280811894846633507581833355934099739424504741475594838895541915806936350690969777667046458861863337974927190326526115475153173126747491629986698498624462983238800380375971700820977525430288424246344275905288148922720310955307520615183659252022414858357951395758287956325512724633797710330572291926120576205156005609301183442182503773302715167364632551828268179174990531220174595780011312387872339312193083277338487271776523952722304552278654243374127938409492928127786166048221112016030700253236530352602979410778015075052970039422559508643786077551286458707942281379442832254509947478548191443610802137371543123374853490677742404208724911917763466311673305852256027515031129698218504379393712180421974120389258737496507177366768578535744454796183883188291912607668855689017697639739289753272873784499015419137815182881380434717255195167596316713884808223485473370993275534711196325498787738245974121124599969617773230825333331011298654461832364440147242536576481133918862127340835826653753872323826655357508856377961362084234430152382537017944872058242082152633031434998698272412515234593539436844000677603844619511628493956775473318900570412539689261660451693930971309952260150444214194621174152767898338539554492389693576051433640960881438548798029178546782413410739168238662616367802608331968957869711124345843399588064413158088950978065495425639374522762069512977805525774054225982901899911094308174568256061356467997203120945493493713184925655740063445826098456322376177171884698076404038078188553492483703341466232409446069546448285152780570988838003053075448560001989156808247356322244355574816948256449773665800497917845196922983048562913102218258312117548808913778645643238036970894996085662763286848397832611700962372408767319132299688383296073466222192201117546562507607163286317651853343650020477032403090999890687047901420218725943143896569849877252685872116808974608125943472487828286218323704657129116840217717722941065997685123728660023766959190128391671634018728439604853832144279704259564390252937924320269427689941155959910282681959288143167075834040777679530726726296695875700866234541607333319062637365332160474264907011510691403404198858120601122773023932114842881621166751915825406402185403894928593747253080568099658260615234085962005448223640987279038810010637137482821656783873959837528214889924160191688760228926907571623307957858920950531987665369997151934873227327333761169534630905425309692262552503008067790215276025656069166574300979433848420975301795198867173493106518212623370530330778231901538934143873319750550038115084955628656523135978075821706868185936639567128099356402336256709464153519683398295789595757186355385572494648003925470895214306266607841141598446420314217762707409535193512086681664721526141816190251768659104277099831725206913389089730156999966948789301949137102610429284892875157023629661907612740847388192781037471103168551453716826340318440945835287500204313055015939490011111206947233502645897668250940398166013872468258665759195501490885734071160281061706355041258770977842431611209996328871256621575496839602898794872006766835885563916202805347017125531429251664587377183768005275837306841372510749918055467676375368909254086109889106658371534591392762851711323810232419790003774063981895433487958226703243290448107914868861537466225494489791148902518040947761950582399936252034719086227120555784281676779204948870450953688594139645764143455647048906001000886496939972768269025777447184663908682095403154683545039048337196874549780331151825985224277559519590886190601564251857670390262196680190523561450207300045508928777643785220983651263572830542870980092030716961200263094956020443438908226049719549583760037557447468693554039599961441190332753959042631194008854936876451600732711245769961168864561648363232818032245363282470624059709677793428198088676974159357107093362284415562863457428258055686795189449787455380403081266732707672932911909904280322793017977924885089877750429288722831523791309643313164307457797280930633362125020790347634878925282511006990489980307893533449593401916733589949110116488206321646866708669143664465338657694453147290046208095585816251302210556433752451428209785118625183365492504254598700991278985913809266595992573619752324002667155423976538431804138861705234946517374916152834437715598759660118782967341649057709086661897428899663386140841659307570401946175511866430819127425508899635561064063196088406489208591121250998838860259784268824878710614382529534908974301438820805028392272047397093705199919726471816842431095654552905058514083155381826181519959311373802965168393443350797381068829611183144936714095208999073101067873578443176017809218024316961730179153962537695522305804869719439346292810739583181661632630806552269946053573415369539075825250648462796274294916719278130582021761366016667395344221982240661081223281738086107276210923640618960943047895047368951974379038894406914577641648493837830431314405978353398039833797945201557169906695612588618054160714195877079759561307514730012468760881697053061981741048966636210836713782005099815261233547395228046700067139787273101487562537050951439019116380923263374096615539848012788845395712504404598176579309785686878375816518936148288784065041869133286904899729796619256822567161041433910695899026218206883030504334663383640595806996029229191816059119950221525618223915422962871520330098595229755342047143895421020078668446761651994128716504851630244884248763429173952322262588603195815088138585570573697259749991916517481962497910910686600893205685827278071290249344477554191761044928610150610914537981176523571533663602862026409611810397065878433550937750782637202494772083436648615985388778241687109951609743999033574858248191173803579602848249834032814019464752224873839572584456178313459334861950690411224118093670751737075104970929140577306795500583340684349830044419289769256686539092282264023235818090268596946550116092000846346268654968523003431803118687193348935305833481492104669190385318884271423344460973903433817340827362749737475047481998813365157894675542857187765799555147479837494068087813708177987361551194120826184051933429108795038665130127117896646505097789290403329638415823067861408413111207788532286332348178018428491634182206054876343422501493531290738511218711343616179685187668292071476843319211376528962463518872131709771426312010053323180584455981342541552811131481139199952776613017527911864520188924268259243940212949342335141495421756085096693821720940668133695513554096693115935694202168803525817221455258754768869297927066628633540414616432075525283979024694662189173214622560221172011881784671409549455399639123272186426844385458739933195498059144809619924006551176045909972177187604509221478571481132941427938626904652079206140776948452282867758383964188486040680012662932490635076067357938948165616799405064195902744526877401164191652317680803624513148393780689571562204517872986912229147578374257195382975696812172611705780854397097709007299591505742895640255927886726607230771717655034791287546490591217761122015694551533773899245265894002899450573814785526870723554569008682226154107243932634509828469041746502595765973576066423800833450694849460502063609896436988721648742158722950708744682467254336295295678279943890946553190818558826330263744401771498793700208324943235382808840796810877736933943023106472812332451164111808946115646742810738088734803029649957109141214131990235896106207693371109423235242044664052092930737770181038088584795085780120936507265964095007685819196624217909516618970517950317802248753717936043931584437768083961548307763102591795249694884784855472052415996415735198929601316452178204477030770500778921347454894849956607383774748325392577285905774874368928165161885863658942051833769839574655066651792813345711395362901520074257973750691697069712575054386292792928040799240486880141739384899774748418147967122697932071978649041584841888823315625280433738088365905094638074524569824801665270076090190400258114117141650602633578624295836547515183251388334966504217446412897302934564409978087290957925713804160491207137850749710358519230477605733591382409501284936530359668064840906892870467704874963398418579249857171287731950625342739804360328956365928426273805623645252053688622402499765029140875622089243301893124959424025962726039706337006500059144800940534394478601410959299502441838934342151933374812450326799123885536989340273151898724015902081154756573343062837081199286137588092570650619896593755172434650090103430419199034144025895566001321618909919229579855542415797264642990337867342108498541393301937044297822672936999359629524791374925110171948468347495058054704642248976936343774895745261087083570062410287105650641063030583015692887535266535201399706601998266152098916345112782537165663538762473417608560024353467797555999715408914215781857608611557979728795033391934030039246647938338271183637371949633675834426535398897828717944394083193724315797457540159281324176726826163066789332064295040992515421824931294229208030844936752737884182443562929857322505499781193387093437260132802293622509902584401082684577866198304348984931610515676236963249823804579957757107280138523423389260097962414707134622887400262730280340505109309612415091180969562491383628067599840297806675910306949862922724791208038321780291208563485875775066993574874239339822447026389527523458662962419773383633087438496419478108159443217358417514640056806249486533521251729869327758231819146136358529339409059507933244245971925750094311146640191018388980650050948753141201985935763552414188792159788257432347275696666162120155340506065653770743680141018318776644938331577472111552300302294963009834400185252613768345751612312517495541030315022374223101401382475229455219968816497812003173361782086368558854262666651683554986154008113930481076912645670377434343451514774420762680266636736335101123335930365631265102499686964969995868685281572306384050877494985979988830071979451501112734591796796204944850151542125196883651109094448946212424749312127155319054883468008669500474263269604562676394209748573870312590458252009560588703024352908260117418459856761308164479329528070497627188290272420339147261788543085509302270671975180435282349556004338921390335071081815837113514312906946301283150926064589175253190064595124895973547230508883919485729424012973940422911651531414924413652697589636521086142764596350754897252549561319296531582177468644939402833304608133503788961093036892438865301334375701589279059930493679127603349902725864231043794535173290294370739027819028163219398276751410115737426782010918016777490319100188998749654485516521806177938915286109380488463496717337577806633568846661776798565307623410188662242226323229336702097569412702922434404266223871992594862083070410646389722476444433754606419125113114133106578095375612786624575991540918126332763272420476663868593343557712631433454930659416328002509359633546493676917814239077426974214830785204547973140878081883498356321918458946439367398884837495374774503809411464564577177436759975803793807874320108794628779690966163040343515182556820459885921502622860281216424159014123620369437901792035400643457611107170971609433853827948552637962571448926763602906016288201156936529803500643258960483536178194900745633967969746558400358093151889287310950296306909150960420298898745326168652502297516473763897648829477325009760526156920924605265559020910628233711314091633043861481652162498580556347902655635542489366551828655865072432918232497217026655771228585547328293406134003177343448553782339459431755472847427880897831038432532199818313398745222265058838718177996935721803098294787512879623506997833839796807518303299395450986696814090117317166817304635652774063500874831876262981461771325709012308097685396686071456347299811328603639783891681482350508232210147268232676438557347390526353865576375115476709732927948665042746761453532665059138682823547430860168532951151788691491038695994650006373492383955908527780826129669138339015994073733711805215404963205744279365160377528103797373337861274480727730564068827929895813350559569123280859200550704162647524482193812581273388796297924743612169653928005906787821305704556424581567807730509691422904957911384304126936583114280549813080493123550762269073978310260328241283795489712708538121969250095064898190590427032384815078665319540896334351611979287268298581232079096421862072134660105152331317462197267151323323397121530720063535311583720346833917363059308499090411546528036441194675475391793524253887388259690637336757299268987416985747947456361470210292426797663086907456991088987824899096370273007869198517493797587472352972884651637817337547908264748274960909046057997970872322108057151756554119552258336110732317715941600224251201663426070130559189408289765175257683905751386262020000607391292630000578586634779960853410482879900866528349633323436042895835186140465882640121184437876433979905154255447377753265422404971209178183157190156367620656971130121366218273384237365399295430570876470875881567995765972859705491087027446581418856620636816246506443676178223404947942380394901507174322618774377072695629968856433406913726112351656510970392897577012314934476736254038539205050600999766858685546209592833083859682867487070339872608455133785087099203223712045871009854272088059005290420168553841230827152304221043952960820346612088917267811988044250606468273296000760572160465095057983013806533899238408188839206414929019450523100983075175544402620043971588773400587815019578477505609144623528847226794693333764983574682575584917533940974316903823027944814628560396168759654832433763632994311801162069022826910527042401244959108391753353969188126186743810072208940978447204661810079941462121325765001572990995447332370963455728618509850541829422316962363813141141734168632865328796027209784220482166608988954325074796383720949662603033089185991589507993541334378459435429676904052640489543558519382567532102780741031948322747256335785021020029786352170051022486707598734971687189162767576916092481953245192684846745434854229819975582170841949982361948072379836535490989613917511259672004947371938719087466888022721658150573817182090338881960979902684876871963744207497593727677222027099575547790656806430827343383492101346177910999703574693546237319311405360669963828361702133333369269809784475709069590376630363785080807494438383303137416760580468582284881583921511174662856880624307494734644065599127069712855881514436885875725859664253853091870248621658800735186855574063586172025547279576598926120440044033189313978173337162943190168655631503934840876426733644286626665532031979597509827502983839687716154666468121983105108238926450428515997674649883421584305715221618619501297087148365476030345248383475709327565560367246144494710690412941102409994517163960769870780062781097558423532544452133765134376320168369177892462102545176784483784495331293400408845711104370414695148633819729488568621854052318439985522349518057527548479173467375597193573380400130438238609941777433669929877496643515588204035805068770830178857185389562848645904885271081261193768486135632376995792614633450034262338249075370068421485141451063920161143094330166036060160251471407262548280518892155352206147309947260284969553076434621131979194737617161464687439555644275048074893867165518540035483454195618586720187435440353608167936195935661090757576987665111608338980802657390507527658139100946730122876631042477347448814911028688107248438571662186188502601608181409272701237444839264586674542622865894643907826085418493431849645839939234805625411180987595362094728664494824666592922607117642133496697904360102944553299915351136065382332160646173911499217926825974829202598493621571098369314973033905830192773756077380174368191598467832570905643001883135540161113551111838419944258539110142427610660991751497784861628037524566991052014368128072765481893143858178879552020437944152981739681322579392186276206276933350985482493559872723268703164983342429618232665863275325370699527483601194553019105559860894389460430407038141247729061321135538516073823383423805066050516636141014398081380733818742476758594210378529259626008261026481891369895888915525706350747140012840299665016085972608393405415356860382432381801489169539171051237090875022954625757419374324684619437156791817828995926777642513568918543876059689142248445691245882530487131267190695871340189827659738680989516110128822684003313492834260976625441973936857255142407146371634342815956191009099725885496461199767157769176068045180875554970790273993199327656271038644439108356630976698611488777591926711976079010686064478082523455779196256688623580228444305848920879738109412757198100360001387433996779021475391346600057000573565559600842854449037815192603575652757916105303980526944011523179106699468156103222879127075609449731899717759882581935120088294898113552700604001226177728943823899596192615814496376694115913544559495707035530406904614490301276313727053564130623109613741108743262616247113347311133107254519770269066472198514363463698664652528293515072616607277236372607789582865877089358795363084039656033250697144387805526624742846319325126679277873935151621150757903194760627864802368690645965066821526487305965195738186219228639629694254002114218368937632875531382367191558113977385102992224145890485638899788711709166154408047516968521972759101221629480002269212307189508617071500858304800420237650793745611431327902916765853992563421976123777212367067970296135585271944294191529021686222442359493723342372763035446546688625327291042279432331898865329646868822402696271100117704748772283672369029906062392661570111406019707933938166252025148752767738083278639099907833986317440828146611454307438300254720205879517344524058376137005895293577670999876507505864771482725367327159109784753992740929695821396476997874742787073992721108989414250490395578753448203804140490342403282721264926687633807606224010293962124834919651862197193754719409308607778690620848358304317958141800744693601823001517780451540113099836839378717534224734773725380468152186025449674602817260388361653322613564003216928381346003100785403813419732341060066185435789203688492775790238494713512325084095488711437855752862058764937909385780518671045830159138739085656551331756024320745986324528913904206179202590073897709568032435035244820100776807879742829570160255488800071528929209009305053111930081111922057396754074197555614974930033532717505013115433830416956358287955489687951863996649726455862907887734852208654536480504494424275504089355623629768232900522606563421199971093804281579669875366752278160679471256757115297730269920156681362730708982247462766185652183923471566131516207168771634085938338236304512863397340832684551867080408814621466758406107790961756810256385034332979637226709511452934518452505973079682221798493267766217085039343116382228045530476760434263603505696535288038301678664745779426716351204195997037304939280413959366220825473198142254567883542221727461822363564734701723055573584894891721462135941544783714479269076879141311317695449093368411679844124482890312710088014397110999498262524535313280276484030541097600785821871672475493536675113818290064651845585820960983513020178922130622393953461401779339799166544487643371893590436778969033386786020848237854623155208028141695366080292261539588374101510698365000832328574144390615359713036268524107728942498015138829486035186503954209875389630612328338945423613886874642436558400485822285883869574965806787735288578621924564436597943415833216203322744552015872647071412320294456979117633946928380044367668372142144088524355802252008223126816601061409696150397726946388057658137908050027013034036938471707889238575891928618967453297331775351608506113655982876503460492296354219263513841428761880970642513916548941169416941975992374776933640174406590153324422834752057337507721503077097191183188369997809064241040171762313338952046209694435056084841926799574297595273392784950016229137462035163451782641992171403233483852813410829949543904146434021434293717202005058909469406942640342923895267726208028957919540715297366841607623898920612076584017167258147020137867610502246399213834547342119627972223277932649703457272644099895299194052401694056529292414559747676226589038332960069655038840958953676919129713383448507343131811139497309573216699094605337925734154400764147472507058412929651153838164595241250533427522180779928123842787152320204091581976785106032313139982474235919500252764157582740694513829288251738975370031445688237882258786503412326787925363422721812280475669381323796243957597403213594823827748169497155562105165154904991542947423187173099047483574025593853598081802113608405816999470297523202431442638998032261076136471474182913758742256979546772177641881035827301740203136394284645217190724037503974360334988395918113031407655771364592641103984501156595377746572499167786934778562074866919019421591399124725227296910862684979140559900587988180319375915937865541663080373197732092196688631479857470561546328801011472499329988294321265378037456152714934410577737545953990316194023144531038791839498480924512404084182956753092946034531276471003464068077475161549053927258210852843328191285664959638979101971980810934084465140660989940372978803640116635719473674419887834766284124284882319606544690080289940958237211808200237762423303151880485734189492162856631349579635382350543664379974181190851580495808481865197663266343898150943513607303223511337605701321890323142100604963389134077561238442846571316506919743341078663622024736645622106109279030305997637812367401960282877700209367063725814835711269764862894634235714657769939959784542732104460740963821748902324412654786777174016785462733963260130095332087924472973442732848840405038452027559961465583439505163632183732676093357941230327392378980643568320320586888330155666236179180088950459338079144544222289890092753033288936782309653972910538726046041556659498755179620259333342323807463828160662876159343629278980195943196900000053608589067508004160734122577448795528567920912763737917527030500307263435627875855804382778221088632083912396586097878337858860987056366148688640855629011020240302928052313757269315129096780700445047687881462114211921104808376559567965164822230782456057201546441708869983462725153593035637231426045799650615500094809868891300227523726309554001295420145191166176801809765614494932118835105188610705205338237440872866691344146194538274199739484486451539328130738842251915730254002194122648069454937370946645719201478812136750406521598714585611129544215835013696930271645281511993197933198131397547464900448983836601109637761317064672398529102537421283224534106246166489377087256262420552680776638516041460460495061635102716941955144143844596919765172054566028046228437000735806639631839331391994681592397149912476330686315592763818806590560306100664325483961583301742077516483359064489272027146995590307503858779427626923158105709970766300699540137787206120905948114732633240331235728364210227433219127107647999776709402331763695218890740381116207578843665322002435267686383396904478572680390514540473953884023580323506301695382431291331446517050108534060480971643135217743395451092956533086185783634457602717496993886984871725407423150022929318913210653524901050001125902348792788711701434924024703308678171424342414746000422838348702302251734151315006462854104545473383643895430967498161105560761888485555770621591679312242292922237085418010188064849580701958551549887909059402794607711464177887992305210543424974610029055930645547382901539255487116850801008222313417839156386845910254385113609445872961355033519247757315317105249939817359471628473019668157064165721423588804225914415754973765720547985920772384992892324194601195869071749292081936642563231334292915746718797654454222138276707146771728932931369451192396630287325406881309970956298732064748732857634348420187343083411074997956345520612348139545812190739795693130397501711546731646760929121850106893795476444882522883281459195948038776504523982349962948098652846527015236071925687931192855745055086047560730559259444247139568467945519831490837603781621835825799220630590386642219141966878538172229568696886321747794104272740405438732752789845359267652241517742791259225143871081198018706072013807933820056763280252402052345005501849342368361703632451226457454396596927727897657458097055586653141196607837974938099189123289586731179877738368912398386940228965008634238643937447454217558152666900583848297343175462545503237957971771172273778047348161214966918693550571962391475900623038074757940612230385039247832062454284082267120159485029817610218126719475662771841487831862186202525467152704609759727081338356099119098061650692414324689210053769748311422264029312440659294142321560850766380083175366439811029159041550218445372405537197396886039093970851068816239346593483153113573152716896848627443624685072016427143038503651263026399963703317562944218974528846329740322632518952582116471186303752138298008563062002724823964902320245169363938007514815537473557665120594711465486413772257761346938517653058844740474609400952972906344569580813187159146899462434191623168166064631352699022319822867820695129689585097818493717588544880970039163871952276246192564185873436391938518465222441660616286138836537380326766267622815534488354791513701118189389757082604674669129520289963817396240446020511697602609024955048775326217736322178264098168978605878300619254546916339409027060539022386808225822926207844571759166558418071740093617128684900263080050388828308254268476441701892492912885393402075546888513586342846844764051663835744494011821991658889186022307824382800458588351430144298862528358768865569184861487410748861228679753959106423438681823438794481499010130036217697368989680232127390061331165950232585578503136792020065473973308653272491685641691097802060516642997850502387269319893206026299520867167858317394569492727471093419820204500741800525984608472568853015814611145664107757142018691139498766017902244647285146514305090722421245680773353855827033776212495819119583743129959143655592854112892002592445222490666413022505566289938796715920235677394819147728650453458190888407481748042776704154970068952615832458495122723074169028453104166391220873469410476641855342356271267546103194548166499840810288449810346953964983342741949176674212776674390096657426315938216427933804138772920984168034289758934912997077330495405866075396212862956006068250670366648441408751394620780000481322123492805973507731247864049385914558170258147755843675472794281371192684921838945224116236720629598853707547951434144178968373683380112941827855702417832632318540538811973458100046047035916622616531311233795807380374310613850434885735377397794200891849083382341062752881407461356150550182253956891734913450642335332018156143150550984479252074568959670970782677750575300333956734022420112678158930828773858277853180664966974721138677165708858557751732047156730530987881899111849799804599296956974270819497304300912987662151129534185242927276619413776854574618385192297032621922010446711348546323594467920990847407637053734640096975148988962488506967090679686431119813917607037554924884443809072676191409142017474295975593993864751322039465841541793421031500919162749728404624286773936118597099566766779119916252133200937763119134018102437122180644112124818057581080618634113784831207862022514698323672837587503342758545518238978569019390771579019014045884975640918627840282599681169331841199740636119882474631854458852954591467436697038292266289825884027167010694296020898283417901620406521746106176916046814441387731205439641002357274717502104351034547305882948856026078698432894614210955519466108786149324893581535490117563396818025947026132812864402269631446831139300207977812452750231028635921188544774553367497923049450703440678048095755764645678903295884108350996590656833433063167737815376469473646058773341730443763355327225719598825855972449564121677445414590790705598951309014096820465652498384665252791364715397996852961982281854237242897172164977309809353804157755074185766090234112082976839108981230825824077154884882118531496540632890528603244083275029504402084052562171759180206784662333883187472712905346218471386824316649919307116418672595392714546411193264982220083963965856096123310414503942921016428100059518739185894661275607083248254464415870641832244580307488241874003111996895481991292056419720613033632224661470085538201576913532306050509769151772680552469242907054579963802185728034822475650953385247639980614051040422278781945591572375409235624604283517805204228736661325455546651379461131949497536936513553990727677260997838239706737561532006406876100192660468756133809974833961581064862947986594989207321429282490206620081600368196874318654631637237125245845044106952821361117128375446613048917307787395968203039024982335710916244794512670740334579247110598508420657496360581159218502529601031436311830417748168371978206548004247111041121621405102130554210611546279927408947336401590613102119924065051805927769325023002324483362291652361137675001252521611253368255138042504748117800759472280491983426736173676751970911963504898826193662783797674426164785667221292044041403504396997262143030695446014567547412511921029683272304462872251603124704428847640889888733648820453333577064037494085380605082169309887799617990645051255923207345543558751220454151187914647918903009481583390927399068139964971071136676250831220117410659052436287732748238820924096777359146290388461823032754798127343558936618400618054058861723541193660556447949678040752996630356571268175605256884611259598537169410007528397055379822602776353420080421122795936836777467824030670363237903219162592076190292761530616527651036937534659596379052851227497877609427333236718260723894253992517245811943111312085908145944404269990310504592403609467706124245009881288140473152265624200462810601272034305973654838639592333680047605320958760912890488193923929037030261862308751688887684375262494078997463961204198626098506056679023265120434700387603167654988977576082396329551391368679273565219899405186720101620980257673912684558512466634444463178672425482315016790573419168908090350876276835057488021170418403720404419919974582874764875770755664961706913656311344183290587787878773936459352664926959677832377255986420350511440054425878008099494983892115199970000052729509354330478688454736472261538774346588167264252841661207488100226008502815209876301394450839770573360889025988118500400447055166788013895283297921229574721984357794957062112031125893720987540131233870346906841561724119784819025803117838263096355035279099167989539447030049186935316254831235501260158874832165074578285255972625362862399951735881279439104085582420290115629256300623303015355783933545673499218407555770143032818836345605674123467913847289716269316547510165480148680079133614871571856419690835818842646585403852605757714847037420783123271382591198353284859342164740042417535201391447078023592475595617830906495474660482947195322686860011409395863857735465031787649730808350933576384923467354078913602201083785804070349544236321639352396959373609364646024531815149857240551658628418483057013412583055735619483984294278337720598783231411481783924615147303099275082627125277512510761028763191953430935608196049092460220307686030999552091647676777003348706959054590400100974210289593934477793393062575515682543681113122317059821867433415026750532280078333035951636327584370575213304818113045551896923252551106017481265203108880136748628855796525830475134253886086222266583509622345657689396784837712693287415153448050059879515351999486682705184731182392873699345793145586416924459704884162273980040257698455890347406655197454737810856585015750969355857894596860073402213355828610256400817552127060516845644790245198670428001488458217032201269543897212353456615785132127921853621682952714065295783843320327763373152576404241242536683730728524949888997480720940657520688526947534659679548391537217669723974867337165568868975163071741001591890247595274941704690387782278473100353501844680525614178379647820309128370958541805331548852165348176219971609617305879470667012864155514823479094990442698048529910681202075069681990819239673156983204149570224962067957442362427721823326852070199116057294969311404777805856279985197051610181622946153415303748423582345538934594730927203810743502203862443306162533795545370589401382008891028703279385374930100557171894693124138285757078032605177901278567121393652722076195638955679391251684017945284426156461825274622763098702017942116377703728890009361458349763875520922384075798214061117261617007259632038434107462958261540458804787087587733023709586921733492242045504398999638190746270353116459291013836548152723160667408926891359560515386918405957361115927471118527446551309898546220439635299235176623277919320873771340580251222403882075196599921221297495235627619215595262541592125929712442396439608933299401949538583581803373300429124486602863912254354695318435375475623537135561822302692881627240196506021723321849368750029537900396414610589932378809998364348720052437767449962619714469961159505040521164385418479614225917544192575220964374332077477917487359111967712241716420990979578094562744809289740208200030734843341688012433324316581220069402681590671549448502963681345883237565631108193683412061996275736648108807855330761127088448639263829138102752294224482750986695278532562489425582744237023155023709333914825009601919402380493781494032247598275420048962209927081990883149799618249000489690315831233628886279090004786751022794422621383728617579728841647140429080271667318576011302959500320672927095157094856904210219244837827785582787391156023540026720639181333647143588006219349896522609581396236488110535022508401008310715890384505504877628872754417238683072666885736855975531617027131073319295858828164060258562684856229099617388615881677381379060003529743604216420360751701670531095089665052586631125961841167710470140710690349756945858889604132348592044568081460948916941088656983518630326742641638189727359044070019558265008828036171287798092797427550946622524936406778183155520262436405440845125790612110324330349440471723656652654115596584682348483789357407813021157196641308989478761416838904478594094669043735080365305339649587253120441040027334621090174995461855684558217885262096788385687726994363696209711738518465379569784332685063775617137336066604805837449933601564628909112145399255172263750195196711582993189941568166802842740518880754657880753856368575813729653107089743582282235861293959458538300951925409739321147856084193247323718621610230963486288568192413195322862369055709397217972524119539057644640959777103755600975913661666667673116304674235746425415678729246102594004964051617060706184194930906025590997636198273546009997553237284102273256359877955930689975158228051757612508845238267841081301689689854274723659560056834311217842936057939976521623435391632686799618006278638557711969543183738535748324036497763078876562679624663860162929062163562585933098866240346672443406093112997861341870688812133983536641879356083930930404757756563787076720647885676319242802237857680009186687088230371436597543202029770625121933618638728216383252168304893546325698837387506588149881721606810788665026945851627555415413430497653953788730256789668050020589244483085743068407265087135990558767068182907135089481366296457449160933917741255741152904805839524922214468368818812654724670009233253623582226650265943577179956011627221521977903380948450961577710467574626969500238494483585410900866574049276206734290805363330397756284324359137629677439063983279668767056983715491379485618029650827766031580778360029256680433460638094580164089038310498546629370401964531847652154789425594972457465149700701254600878994572326031576917246159620183968255844954602530128843382961697531219738815670467016587466434445992121130830707116503156398135559298343907486820783143621950311234651030012474263391097963793950609223595790120491541955285241282111092753912520909169330239844555788282684252235174297416542482438504738692176967326738236830683974934395868177938770980336735208650252123210576908877708944809573759120291568616521344815775425295679039564207207276763268021996373822820675737855933340280090385529258827995556310451939365564580077504136860768986136483317181790296887171697969759683408638481869856243168835373327957866645850734949015350423859490561663425547187438233513076247863668270610879743365339052534347919522381857370762508126409680217319925586730921438556855248069974769552152285453399697901885270699921615058986699969321405026181286896755106905210829292269265991862963060816414812865803776809737072530318214776418280743014137117227875579048788915764371058956617883147115070134815511275495134682040212526367274053051503191582645775120650280218351076134606655218747934876093322800677430790138541919439580263668261401234941614760601637601213753372777835377095554948723654348692128955367652133585505378585020090531950502409024491331732362830766563092261952754093047298297382690264937220255072456805402642227655581869146053552705232405440629190023487067226432136635596483594702158042550530378909247768926461756152466172451573938684469738167287473912104261823090689535209103257327039632379680370222918325107038841338560259853600875087594202677902437127653449661189042423704703154321277629248097548747320663749886673332905505821095983616021960299667621248642807666284303504769328798684138800862797488646611436711310256431352296322595343866716704825730940458353982473074112655163071944088833242690708079607291874274481593600876071586622082946588160388469771785774597554644614627540271956628988781993420652915977140103337153003342807766403649814471774258273641496104665351827950956322252052583449705916711575976344123160743664768491244533059738781229894655322566528040839130364401652968308729890102018590952535893673675847520499343062421166272179026343461678435038982745522241066440708915636976168353704065536077420309943766457255186020156254250763858662194755682681730420012087427501976072629552716971539517180500686631493413429012155860561069456929723647270100742261552030312694873956281625808935204995146860616812312293881810399991964495513073329588034269392291701322232978344239338171267614130017680067058556714942784550367989930132753901039350984900382079331610793256941319932759014880746884933710056930228846516507658155553917381053690391123748051747000745846788288249995623463283161259460330092346444451862680629490787932707903942773035597270283761370538869581964815872460271090695152671394562649197677966954219032889229560895083975495394684024009344049144592210335264187429371364988828911766441758999779411963526253632634862668809828032866159148519069940621700253968345264006801152108058032450527919553133283701761433619200348569559627543429880242640562058690181049492494551391619991903611245860874183972459395684021966542064917730236106989035708997436487935962361496961816101751293808738978805902611054988105142289990888770512193771785940679184453026679367276563576821356824978214411166415012748981121911644455527667096789486059135175032023722835091337715011355379736854857737528259434044348184002267434875386082420548407043686501840393429766233278211798346863494338594890826275774152538584846338817113386969565285312329063113461680077819126411027520267597951365431260643330017708095119967004298209203943872029403155699326946147035145414424814250246031489885143167200894157704260880335500960148882650155973871490087969877736225037355169081956555446615933354087596088113318889518557872010074973145245555785119422105843819998014015542127117461500751913588015004450319907583140196980183586416222085730771261101882681984162955023062738096217603133218476513955527842537761645857481287797255791595791983098668137836692504186728385649166421124776699582526888632253546573764765302858700512228621532831412128562244895278920146564136772240543287669402971534385326148222746645618220471387275451542343934251012016988029079057606663663378465763158188715558952627307978879035891012623324971855166690837257186457107158344500007109305614517147538640623992582177557282688075043056123222687124049862997681176339476452395134201103941436000104368285483112762715007267099142535954145173114201974072754167420610804913701330106849755331172826564512697697472612233327215375336370275072335951622341487057610714589585614421665429931754131284905050444396126415396502849333080609770374539073882316749150554732596306659555234184556758418728191436006114648052398972030714134199567324568849570533540095293566948100872262674673773185076836392589417482815058109611390191015108600729603466474711976451233377120331832920584526274106957901175653821153733846527530257098848130613872448386511855010614620788154100975945359087645329005133743845936404114823276585663713432841989107741529390775565161804959155560463855008467784241973720291284064625643899738665292149629514452570136109716242361804599519680781716901245741752260836989351052081554023515157183230846273728237356136885354592182900167456714524929904382442189156202337161743288251244805121826522936111111566867703896464871442249197507922524976531863933483545471980052316878025519471422647554705261339986354281275394656192125392826104228746658733654916314267666347006761955545709014068191376035245159440886633999793354279668058970892631539518299006038845113918873607561518723871037188530120304890805741814868158467335261533698560171476706284929363237021182608403659563865933867684504028921837174340884118094756711133934516438928488572966245584344546401626018532552973785104619623722520128568220984652933784557181873962659114145391421250251245237896150136458758227322925943111566173422854720851879445599799127391866335108147255369068000619507203205838270705452040220924982877413254650113959132014450323328944137133613000299560226574516213851768667545977908346355494383034771624052841140577791948316337099329845758624954765711683194460059750347686785116026686212138479417049384555458170803749177355592552019141401682506365943743176220790502163198239600184093226367390290555079933482632024213896509389908863772586972159043432511674638284956290537730293937187233059357948933983942691801026216158688258613189903748484635320389298272555581013459973443919651717400335363320507773808075561657250992892744440174434370008126268677252826138488246082750714505441942129191350015513845731710457695113716099420171479349517169340176460566133267076842169457191530041581555353534714801938946998397353885480596287890925133439720319278250131847737802224835718346776153237262683927565500539251590168149109660453309069929984079622358210939430128052261808034333280030850541115394121025660710614610881221168137312631640989912974785375720715800739454989983811138022819949128818492452212276140645565499056971450070442297042368727206725227738920232542317079709630422425536078942837566122346759764640692881857237254456713885934703923657517777850718510356508360052207721318481743857958343695365114862337688588354799275939999295630544517080435773267477340248351966554225988122107239444931247943510621900710701349223498144027365505581439511155558683725584578813325893799195961076771361883746426352547503408598279070564495602737158816244069381645442839971712133528101966994433950806351704976093406648481626613068559942542467361092975213093580092273403840039003109185777522544416616708642064783706373588460909148357033874860109298467051586182173099315794389963086334930900584328561632100684002824899738917946805132899134616196163583871362094201619384138098029553944147083910258991583102073364545016533978060796340078509386542243710923001923692944411642986611999030074158367428170552383172668324392648667894973339160774472181722299867205099668551583194204142654117290099012677543972022631215989956268713216177862701223037831983255032259972092576065456022158218050923392757284891031931238411319542284003079161327122571922580583742735565014275412165551217087754320362310167596602088323951514718446882400469274712611408943635918407413757504538022618703661933880637137139209641670556845717736915153597927211995115453313976388212583749560678304932688438388566593407204595062068953358989553155103852961195058256364961681885460555837837818539178821989135551076358728563115370486876190851795411667197562793033717676380915603888228124855723186433381550161927568678958169587627051800619220785712454412022914643031658583959260407395931962430422712614548749348227512214198446617372700896084086343195467738579214493944479049040615885479508308878478066815710377871935235706356915792833987962865209308617848718725502993050405681670770253354841242974290160154527894418882954228927770361791172633979331029130971309124473368873734217250801590780906841924310856633480806872278519547178920364057092168922241252288998543065779876746218421808939188540535460401641550456121452130027042332035951414465261529521581017258459040478388700554244782417476897627765200929083192687843346789308917666905210475873879800653103841915442361962535189930974911529598376652850299251569525411644956302002412577705988493955411428961352980541891569611936813441255583966228360742672469218618012754476986145337399373423658731353184596189986829002991555904024401634745710385873991147426214473545530836694522567745588021096865662982441771355211926433443179228327545526306821171378594626668709671979197604890164544961993480424054416836558304890449961898917154943385380303402472164914261903249743056741319308097558349701546655405419116467427693125769066861604541828634746183588768624081286093618948387659740861175487258464435601399075741633813414375191482818052637113100167980923232702606120406541266237159579967518213846453485573146452396209889983436518441855871387589050628601152336038669180250808496794197933328565854788378661715363251520374077599190481029823609814254740990213899786466393059562628186727469305951679673717739833508102589267762353265003167999665896506482566485244510394961574967364041360477335945863068312456081461945593220047611187526460763713920794460536453999068065971841952959501341798676033711252012853533890969207776103457424722355295397640695900749291378154943015262020864266751278549622494547724166506984091736824942711289273575537631324138916218972456116731129373384084893094620611930879013695085573937218605025611677948488190624794708882651873485302428163115259968070516738728086274319761023313999368460938376296351080823809689471986806555692803260078592243781122330869429795896826002303506116433372281813631686369409986799024351883942635225226148357729799210751446611578902503149042701386150216023288597029458680736299253500589662468547237431194737993977400913421677454394405956196468444823962413904980084455457673474756778447648166880806010137778553374641420002986556550877850106054458841936818689966654436757383221867107942602138810654870790176718191020246940512393295067647289889059061059073781128200753674846987113073538031639216995032210094240455598144772689204158006087366537412534618430772267635669640913299969762382057005658174393875290626439903961395218393274610747843195762187729938108740576675420534098740682067013845751764468995259978159202259733963046426874823229741525867077422008365896926224672760491715584280926744145875521778629798113386045911475341182597882400200533049972992754012916718038532341682749948439181725303267164807151819268092352342920015309679178320683434194334992662115025894115306311049526210440202870135837337272437283247124218802321159394931040312725129308552576009344519720175779722610527589693265672735853486932103451610536668612164993823941399654548318150433824335778476050251027327238441889955834457234325765957040769439858923296565305944212217934443283072488544350057108806307200955526001018427090452682698673791367977822916693431669681615747500184381738100003408796317388160868462998359424699859427385491049543445887457528279091534616156589909298623478575296436924895441932442706703632382020618325667833891151999771317439372735809278561618637198325534590302900238887396580975979365232518202928960327741743670675133244123777131727105991309355151937156208330554887864334248188315911559683487384243477608506748794686311012557325506919694443399407445310295476038273994803884431449861372140084578328914349371925331165568596186368860559449932150222855711794994232155965273391823291525509714067039409496880589962315182910116160981381118726726849875288456907351771521760428489055302281709188672009981585727226983417928270821093681926589112236851447981794400079170128137027915174455664134332525973935788344699035432072666991170078379831763199229947216464945668508219586829172170166230891951900711767769113423055479727062263978824118327044573136282421756978018491998198450348189640182705826433771367120474395362177369802562113749963356513796689860963405191838399940246262067091332553815650025093658544365205720478192769930748667628926067681663741121891529878144412553692716012676972215521758137165480317075252694864814223157185069605860783723762057114830799013923189874242943652957008511376126695513206216435049801762723049289466356688749878620446437497518976939244334071630540866969576282222549299196156708169701871809030705938477430016084935282503825517113297596378419040756109570388203369924534797456681702167553457970177918774525843651113303870088736247531415836362436154095714085780016205974749401060854753153290883885427489604331255392800072921749014548962982846553381816593741804240499350207923427382810459961682405580241903254462341170487619778489944598446759579199018861090808873511259084215250352195245388921308930487011447357209982166054771413907328265225460750306281254312166280285454193929572036650158077707905842737757133483730045927809804269249554018794147546259127326177535669824974257097894922663480546667754502945314043830934216382223052407818888526964948869389479691170950484770172569838882848025398177332851909840784882788032216925043055882488232207903355733145447973613385798881098318913379095111310693415436460152662528920161253736904940034983422285142631897050324989358735618920326172998909878998925139183363869124718228413087403726147775825588466618061234689524850434714167665987888640079398882279752445144075279277143510009753173887658475534135984351608956778329756133347370591671953315548385241539506635978768094670118480451367108038015288648366385508611813630021248023909654667462476760330118825149746521637948279681698526944696976554118659634929365570072183447406129769235757054959818111803123191665357913981054272684377353597722279095092236411676684599835103896890850037888425270860595983414655620009008403459272585578688084146363013913185550587174604564081551031310578670608154778405565331014105911931649017817568759728198589498504878151782744775231720319236268859464691446749979909968899583061292085635487066448423602445159671581113800045695564950024099976113576187272675835866275864295644841897481288999457837664952450834781077406024760992117202620462291484573482203126079500726170859872034244346451711754576366347041264879237028573381298438849651456567432982092074415371486182908183816971087707993126006145563822423058717002875772320674568382785149638953386167882213330209810263507448890814781807881035908148350419823867042917117904341932189382932811904700737920597329556253595576152711852433643666667375189181551376451517937040052445242501901989368835734292335393533735456302000695552620695720470372197779233016458545974414439354151640707772262583336061852955962363760413887880053058935469436212033564600776603919262127482368683938548925470521747676487723966412834989643773267346231936375636770005725775616030927398550948233728257425637636204830515424405502760354458372914135767815927481558415114656138206428254514143137388514804038015672445720286698644546557098546103425299302442054435461053613982116333496648863959841820553721159999463402374469971792095694846725462151710199216698675086804526849588288055850330369985992589832646921377975634703190258084897294762572833369390499707531367533878048668563170536635201589078231285245809854527109547816287946412718658674813860363973278396763504442069273918771087132105368062936303588863274139485492286263611031010376695095292113122938540350575867386234033145280740474895128903340217551946278435063989341651644061329409309223315449178315858943303343429319687266633085647875721862637362264353590329821827751207973143782249679042606511929673423829956440467812849151390065244056301605022447118274411919858329803241655612406253277292393835684787034392400362865112047863175357775026194527420428808003341280118781437692916145953335194042257277486184082621749460845441016340604168337836045005699147956400821968038985624094458797819443503937175686070896328770374016944116805682763212487054130182236904880746747937441547507939889202800258969890452542954896124666610353327628969770978267089189243004761903357898821293274553849020516126322684277777100346406577623335855918311099628818676237290194412375349889726644919099803099649506611778107775451866207484002302729827161119499691417577787475321744456014400463593646858263123193115675673564932842956287892594005193975314456979560156650924577914925866428366544306933091855299998287217086973051626505667892947920366334575600917478420726851033051234460362167195394211750771408460717023225113377480827406590445859109596204998389411474725372841125752877819161867446129371178405722354079757641942908736534041299722658953146160134573758420156319633542177184841253967994232063109397230223999206249734054550449897209654204758363900821378961165015315670729234403314806869866383528178563575514132926280087385823488210137073953943434260629851778450477445399838536277345357266888522281269974831001002559366771466730049712699116603969718832565102313607265310184536826183745067819255067174822377109306127207370740154667419234504661778047762057773346993059468826615413144533414885990152529448287166567666082136918104022982215959043651753805277670146849443601498059233258157587616190533685580915239848370963894254155593292248539435958395951705818889423486593726137485354086675856567269296905704913684820826264063300888166512766595333881304329389202759314795057072046755287215646679862351942704499100182501590831281410933174289963139417265712576611064127643715053803700021978159199358709667436084104365565576290020157491698616972129555952230351286040817133103703075026390768570797365008204613156927574037627863236629955896578432466902747916662743092930251121281432784552143751784736967725121654047315237158414269929733518114464762824794495019984976906097170274572302503165969932511657291858858304704403901965278734935740533490738442814032341215606574503222970877537857160437171731692756736630493882504948736926736509320735349952364213119267803352476959137811477732710774198475711981979302320318885520672897272092189778317936906072922374059701230172769084452135262465472518958297765058788700235180874805002611362124127453869573783180977862507384093297417460881574820082135860445545819703873871271763492675569126643866239312544376811101801360417709930697785368560363515550320190852641781383004738114692805543535482172934552793048124705153618622610257705597375309289225201959604669785538848756392055490779401905962600124640089937334086335710855758846215320429190374394607323349186170425975812089088488834484496574234530900660831992931307318220387908257481877334475628295443768541017598583273713788199405509645662872581249572073067964245263780655128634150145614406114518616800572031078041411610637975597005760104422379127446324647381531420832568328914474670611668871398232455184665007454399284199255880712614133869221737317989308435956411497485048801977378902252971711967099083945699716982315061475210731019838560682098172417101900255967889333294393838612566361643940008749185819352557357681634997404478290763716275001393710075651697710890926214925158704073301706126217431637719726289863080368387563496502551457606117219719486676052945375765222200606658182035544777587555773854469206251566452933559364868585261499251114988988853384218422641270307403689120464145041015594320688786896798030981106854478173051210034765315476266821808412162005405487022586708377311310548824532592375308773527735746338026413359494376378292699580465305955370137591491762300354705919673766673747841343853114045156273973235056134215138638312925808224753669406164950755762987589616427468799251194650295688994568370186431076847249476563988694281703011566180586256952845345300996392545074924918763518554221508603173246902944328553421581506506586739936016163908219101590720359566093197259563245317584572837005416393024893419606816128218241245913194134354764696172090973697793771633600475610359188766694366060251089835306794235416245944445188746661082425673472845035024067572284749126172147288271753448756119458142221486449008359604737726916518156991980716567584035645323483585428059996765953699588869480297840552139537997186301166649633952785176926357919556437534915254778984649189181702070298620157715528057677391947005111805724529185497696001842967395557765639197431332797463457115556721940272849131358490068407978299143191379304795102310160834275930142656771435467260298534215835920369009714705818928844074517614267628725984404221917736759817034172963487462503959167897693056894813150720042458795288913188014075389135035317714231053730966498892861086740332647705210794278711990484601604717209036297099957140413865783071899263417750947627933471649831168956201349246083418030282154617465615348348896367050839717109191258461286982910936286559187021378062365542313949621593221593627702511480657803039640623509584528478824241446719757994978756087565110096910982838365850364026265115778561003908984868223602184529058466439789361316749204843343561833156170258190693447458366497584879861908862737080386640323192171160355353725301952736889934575891821958277637821659206092357159394729431780776266767405586181749142214773365879573873903044238786650264788177596794376659050314172036692269462699295094694617723285534075757781913342236383991475959224766023537945317312149523805052158610935421423627752599848401251112891922237520923693530724115384338427621086800686802801095915048023729956997131288271006473450354705645931129437646556640484070191596204245505899950417636307836456022119405970852955216267658761984635640920768802226217474537212401738407686986807924100195031867116689599373858646325290028561687738096428506081784135290357576628428283151680711547908634918141919924014473387233250669904831629897207587534354767806382946020210996259994156261296512668021351048535814242115955398856007821105538731537757480080705418565130556840380346098509779202878812224696433955181231820645973446066080571037275849268678220013765936905345354942478506867552135233668317432828170663998863723780166645785238582229558945032892758766474080928477931462985004987097698778693792283054142200990477599573589036925696260410267106178727328621971762673857662424776596258383337213042515168972425232611392594367335633479144821995950542126759036447908548140331829612405468093894212915455935785743865090976597533298104359448132804991109178455285185668453784823560601984961154678948635837570720064726507455639869963004955850166388717551872227198953002498970171378802482212041436024732323990614514841069782025915432632319595858370475988540560921195826974258663511736884175027584970988433762632307309098950200639515665850170431946773850185721793180994281908720047336255168698340293267711692181138623521449460658614489388665321990452997817993572789785672121625721592891688970372557766156147209932410307251553575496483181630026419009121072966536861102149469346715019507385300009013147252374826224918973849245614184331349924715434026252061059487281084763840516482266453491651588928968935897183509507446941293656608823892900497483605090823869570679258204449382246865478421465393834988595434686897760414813946058187769227311609205779635280041643502761186235984097940056337974402023137694979605466939417582291875978063237319985505593460588339491962063250734989860246779340942049045269137504989809920423923843755319405075410769704609676932189767989063284929042439994516226769255660108437126771293533673799471527985914757804145303821356478730993317429156605434184042109226206251962197469700768110841281506806073145501305116418920507195003977182491249814529591889703998483413383817254696648800925313587081021880856335808512276431152611873914455506930481839249827746774647217815364998226020787868110595941964785517667086485930346388038332296183028418212748083284044410485473579549033481079832463931633289396775487533922278906214775632715664430825248700981330375742786070413070063523181762298843255882122709631000152295261105523427274594728155162690976223263009360163829048926568187404405446778027972397049464906676387602942111296189007353025515576694365140712874158464976781451743379531233140062181201389206394581430418822891118188642875162471852758240250016350232496450543934392475714447826633790772959702581181178920900294632200347575382093868276093226374746583005076127270070564164729306587501195188425807720441416863987898954558418172591754668674049805023573751906398451593056262291573499965552959465416608911890723768363823865714764899613968751832265135422358566380938942401216402091611039903559248282252248803397506381823827621501854626579129511394508065927285885683458474542969542720503829832552624190883861744072854352611209102609068566016688886994393920715058139757618936434646087182670895035693333757222527198631826603687805039281664304209463312699536359653282242323599115128905973813156661802804979545787039657472197545095074439406467466374379652939275632491502863708775707290818820016924300140919413446412879806201415334132751946129760813557801500151685003882798385518672242017140575442240527709817347524287527526270719881563130108280504826544437904338135067363696392393664465564605344072841058605686637936719406973807910376947137380989544089230342482898657543858190154065528688974850629752051876542207596284674770028414223684649634654654974667531212038705771027382805171160785573426970381598426859821083532178046305756416035961966296867938123342584135908695620431864194714267270198599755006787602771069437299274808051887120996683845553857869063956438172801439822041281746845647569053664920175988598101233439354137444495949252140225573703474341395434110281610787968225825011277563742395152624167862703929263283146356197597689883298730307571664982764989281820091354489515479689263653360179281853775730889599263592996726020903854365213086602024724734886559152653338906332122344829295557927137706500725339771966948044690464294435518951978070098221482653015948331263335420556542394689363286552778370946141226658827898894188150524347422758727790690970129041247618451892390615058779245738823604585064653910822272801330957013015471331679418008939611030085072032576352932699877980355520851121948216267994987970575967370429763732266106653052250795390848078421284891560659040644279144047952579734971686823493648884058433364816050036065960930556502889380209655695074197622072567966905415157553975196570180724319359326439737292176826334948520854876156104494928217451929619817449318847704159837536845686176692513160525569455275002614255052403657728095548520311318148193564176221598509629199148966763701827178014834394323790118924362607736719870229754057963741685622535929103115861809281036731735404153793332648298635797314074202051187501398680262210579347653821380228778369772939631446542553237077887491623309292133570362672189989603284163264385176310637355866862152806136349263523464303746082310285988648056438701456153085540441020191982560862857567952380373461852482324271977994064199240756522827718457983359811570174458268290035763075969284335992074115880078572385487748260196585558311981570535602795822870512332232417040426936806239065976018366931857859079208483562320842206934702203352013654519204173358113571543892745074085905154542937051301510410028311891625364658301553404504641680919843706151054210923933976557475489592914050548903708300360843129696581647377134608550141822129544532832639059405393107655357621221986155650686355647732543217117240234774900531523604475291196357633345798859719180483566281424606009193790999559269849806302817454600245429189647305149589985413046622336102490125668916391086949018733289040944285621146617679130989713678351293443974624276838959365753764017979394618745566718696219316671295872641345715191879252786529571577865568079955226369302083980713110719562416339516687090031972399445856565239661598294303246396626898276826328548410708628391038984931269954440849077902834054145774415770344053921393491046152546916152432137803918589409618408765450185823052207261540785738286622834960990796378580757437983124692529688191766885845190150237724197924125919514362618007064095267200818730160696592865442471898058006438455508536084553423098837304154312281596317266413919024302155375502075234225426047905178971402935436050508017044495504940277558202371837785952944127671213077951930181509416405102338723119783107797794487719813893410011117993577463995265653637684042823729518219905117673870975154403407614125864692277433453917389975423164782902556535357112956598531708168202168537617584434369140076647937864526028950554406197344580291027113647391388336173264142365940032541016630344119024866038451131724605275827063531679336359176603857061444354585390312593848060001581706509515340126740809903376277844657794482680348379155027355348172425007958556221394212109366830668614983655201912585576265932943946720975300707416922031635969986215863088676581755685254297295166866295261708778317372928113722171236528391551826100727635054513528308573808533500140276663775925428126690381299817980424980683235359471503669777408939377000886724369828730221694218583940091084015882584147561472556061374213876350949775955268923656615888961855214845917535655555189022264555786795060424657508461519648839181578726258876815783580411614217918047281797772074858216575734875455014824193130374213325766054338468641385660519732802481669378216201258296031862588087044932800551451125786690192948981839092011930899012407342200930174752419406118795742676680174350233815884991155587225172771609330619218633014136768022758582380295104617664960431655116386478182428233558891366317912912615146423987768578667604221711337885044719256472914390193111264130269302299657677290462088878379885213041168982806348629578317379206377511552812294939250347980740515470670449089795258922608330167376358866668997727642767755458357578615969287599587877968866979073152179310783070227839411550878004197236831385771254606616132614548418389510307642674921445440730879757545629010504252891806121710673762296327946468753395969371189533072677330522719525401510620328460743109387961067464637433149549587103364814791785711971968647774242278247197889921102083561106268083837824579718019084773457271994926009589402366551726364022454192442655534913802592185913657255673730387627059367036956113124390808913390664902512657058466709653027906101302318316785018228803179888402719256722471831385764196270954005240388859353624699730513127993773035004329085347391690170661199858220184937105930133711438327864299824875446013354124956904623949241250843505060736332278411388503870386665356431404400115259099606693112900142285824822835389547225776059129892324451895361464544055986764598427158331166100218059679037824687988139469421599187894425055648690502117933288561645772120735492888697891337281012062206603308654608771473940715641110527929155127172116363621046352366853666749826383452718935146143228547317563687904745703857273581133417246176370014908537501772809883850937960625609457556131865344449515174513793513809237787963232945063289399012719193273773353675433537920421979895851617382202305052366272687880283288721043615925457236446008434676105093969300057313549188041417378093598215652872874893376509169410447160796219530552245600607242320987516349087144963820365395698418317829719306643466622609002086778859878022107773029249187569059230499109638764724165261151834046747387920746784878650175037212647891968763740627716644569161204333108069294689289607706363326190953483027253096075139604303072681837097010752088504095057215114876792208363820595328669071279172693577133605851457071745274471162102087786776658600581106636704444744333936486651698728226791102981539243106511539115242468103143730626700694258530894838748627066428674905793175514709308408228163473727284189567459627943865655653539664229712295512029357645316736733693707218958185938632771989486602234100085338190795457999083355588463334814851633104426041551487580915900036252587097121812071832847779029376028830967926477018810921362675247259207563542709818595622919715717792318581270553697680090951768370768451957649318027264848074571424558860290806531872428710146771797788682996190416062840534193348163799726961905904395546117539829463004536031918361469292639823035480835088247746598970285083336035100132071172044555935640734274182640130066008405499846223095395632891200541171166169027101788602391151404430591109825332718391980893740517551492931586986057846073125752093217259988396452028722358297901131587382671708301270175480347481508165495724435549004546269610400741094980751800862790686295025345140685799762779654060482163012950034248225122973313059977011141862028280742534537322179142670694809904630205568521651656896669728731972951110927296856405128056422622504793002691029603818808833726476088646815536778371511291349828914948108075468504069516250296828155294857442380420389257347648164986484000689468386642267409543293685494584773311027596160740888777511111081980572057816841831657238217633647144209232041450252553243120725766710658805700951758751956300302491976995781686533655167655115025585272658754235139147061375879318986695761018408700006411408846754083200632863950140443354979561298103437470735609391025931312858862769423695076481792059981842533695324404559492262708023624171492688430857369349780840908979377066398049708327861771079662480240401903373229585989171481289981131247574333859701145690526948680352437591800095228150730593729565016361013261017267413454289547073385152459527475065558532298647613168668437039951496604514988018007147672436148481640239724931272590355216220796909514772302908657926564840515362954877829638248207562419270851163920608361305664420275051229578200666760210967279597564400436372452842339669865429936276609751241537658558160105632115164764337297677967964903620684457218792448960511151207936142825903089888932273448926648682036345199333670089849113158965762812349247702488839107568706729407489568874767280333551559196541069732312370795613763313937438650745376165698252657861474213244868251388984941586694094552637546991702717557737271906945232982516376774465438410864200229598107205006729486319180454364772039638591646027563262394024487013687603890637977855952049695297113179940605510335217940709737691500770234703194845714136509169729194237254121865485607112967044577039316516314654466839787756437214827274979700006121510028841779510829395156316613517227985673238892098327930331310340933968026119559629137492573638192201298913727552128582138799489991699875772346723953632130837506625799004383587701612757819562610097496053516824457422877483291926189957121062700593804722671778423690102272203243163987081690269218374267533150932883318760331217589388924099253302637027467458614702113335234387135293329623204747857384460872211676305200423679396089757397188667192043218693485491450833818794854596147762058740598491747302738902869115028970374978997295937854600610979347170096509038821626169362805793631042642130810371179868234972648611908810076248339828537084033755544665307767744377918057878286964588393276831650389487965034153757388251996096048374989074816390603138629874698478884948841798041001320085488760796735058672024700973281375434949985221083576280859583876917347425246474967693539273661146875817485077284983768803938274651602198069701663685917368570120837279260539939241180366322076566318995380650071937297259198227000378438120323172778007488430320010143684094475735026091767812368156119439636337297026792851296219433998172551225416483161657953021737740432708261625415521422418391328319089276802432775527640734586572190252054969930344066978491012063441951266045117354707709649139406482167285739903609751857685861276407027200281276964876922122202420239793812719330941871574805519744419864364111520821000992975061251047011023597105561227311638698523214774353139330524294058648670425836312408169002976336543995556389959060438810656903620119269986453352538662573826681402869329795722565351241617718318890809128948156380502943980330388718625580512937361082610996360360093379351248488389308170544484276367656646642736071731982529258739052019259444385801989267134054314711317039536427471390843059599254181697523798841772764870120855325306676161877797297121223417969463990853865308928144712793742355428618257723001233137934123926620547985902158433830284023100134258603597852904309271883408287564477778034250269269041586189161111108111895289807603580446048862191663324526784898892431310269708958936422180794421335684350279853111342574865849695230193456426517283796971956045893534227722147653247529565927820197794210747686877932011962151661428415718107890912493598340158282859855587927761626744525883457001382960933242028098222332022290092698816343574184482679168271985893473298197143642698466281345701529143542629592532927164428944769369466522947513390061613612870808261576100347038390999999035947709445776064976964608399568677708106671010118859903511580225204654770016754267110683471495481482771558944032174495020782975754701131882293680065203024472792449930566855815656410451683637951508108647353063908548367802843782165275329154181387865363876345962867631593322830856926620467076133896783075338271729425244087619781702990540212643025728059076265576401175278510984787349600092892435369087681248164755470685355714940779006170523067926547495977335101539202030693427764759344623841616119936998473094431376104962692516995862459850486937719403852406773795973943799807837803867320118372734147682428327478407932059105809390398430402571327698929731407692102752151598316054852576044860590931700927527173440179294769829189558188161084924781146071127432523921120429217276134903021264397992161888976941042959468391456361791852593893863121869698613259618631443395763034714051611093156262584313146682205847199003035401205086251413859568669914684884888894395142542474436834012510940120941789870790073904845464845564164018826946209422084496197689878615528364825435286887926339105555161351168136854842771779923228604149911085807666580779369420925248565328076258956596517993810038173059897309205770096854913288185235741785789630563280665650622433458014473554803505073009440052214296347494410111977387966039847583305788826335581424391874076737841838679316087972997927140232165299007556299114791306197711532156748247378380944226715068239217812229295733667572193194541982927121195276538503661139231358329935503528544204053372305714676557390493753953882400702736722824098036781346600417260520471041810109907675031056303243711336941985649030055079287813799248335377321479381278441990607649346080839411883451714589415605022943121422808550137358291096497660424141292603987717650857652569758774424106431583941005372893051440270643576792232971602364293100815961900764294550825916787759506658337401508214288454376674367481554444894710434892154567791743914238468142971884155614730475661161422905243306004182027660137950839925329614620494879317126321079167682767838844182148974732617313288929049690581960379651807287654519314566599876318716393838578692009547075532914083774585339225854600325678017425316013134264389862786007621406006330158356790004533300430943143450993005861989511793634831331789507279212972911432322451597624589306360623468067370021198583508918810556718321049035981612261555974295415913720350003721080209940599450235841343506318818433046560674200429503082817059824701588808782664634668867470811127766767904901014104629452456078788353405683272685334744655962417539594984449048929825433714579827189815887016006620355576310542165521659585959339893514971704697920348613960267972673327056430202287048800242782387050984220919698488423225303476406428626069921154767465489700628294198172858061795326283454734255511132426774527874831612288651702359805698956399131544533733562770494359249447914665068703898669365788649135075848961883761164620526828636349450643189530427851556694251600916306310676071831662306621161318442321993576853228718673780977012599252604615591036664413504252616112078078702210074888993860058865420299464649495420976877906788476748545517282729934818920899040804638265522210180521500355810186444563305224740253005436428735793526899634709040401537177914281428187937212748288011078789558063335970052018172568421879486645088464862871730362596903485235790968741275878671543534742635808316172614383358447819119139172177658992713347351577426738301193907701257717593165515248155735383523496049467122734041482524741086364418111804203669917544680631310356136391794614565224175289427401357186660954339197332890275804430758578792757978652655389239578714695295902989114139330627179398964730771592086736012680864183370673865730758540455231740320237826971528047914187498719977219207941429076874934470203016605091557815130474957415524177642966506559640719805348449729727970001514718959655748117497265272860407306719850114886994493934060666693618487993446948147438251525199606566055093339025668847210194912973370067075751092884653643516366808216326047227445598054060311258774553554610024054310026716260388137832910372099140506433584090173008338858086266678747062021940836900456032527050509755944874658162206941080497024039276657464643151069069366272645085987278809898796675050891951214376011632489430108439585571184689092197497373081806459065960650644531972956471163011661389032343065676830952744990766243599279377786228112337006020324494498965402995446162113135522437520857229548671261930705262296671904979600271818850359530541114573043533670297305074465853464839219668411479535219931903138004365539563061346134357728823018723777894080660865787613534230570785656970849255007806572184897014030931991948195052364060761397189961508151805695956302357017010836821348697656143212022477104126897985091542293483303215150676993842148538652018575423424388815647387285139087629776116428616784953144140863857526319257448778977937590379581124721090038195285666750174835658144708577255273795960149290338620092634808451523030136797399077290675244502896054416601196507106700971701157256194019168129266155806890865948285775554293781847825046087924685378053250119065736164723796883543967585562096578787919210472738131631725106493154437615867426107390583145178568747093021280756262535077843400300125421556569669168386515153192714518985814333220084525726541598108480236941514560571751717737177097272379138715899974161003519324610880560232095727236412521657097814322690020252734479942570276470485492823283823896701090148418418193418038141017126723657608863717743307235751033511305678846991498644315822178737240420385093562550510941264195894352952660406783613070834562159392283699135462517468909544020140532916992475146884042541107671346958782349881148494631928402999410407636095980456366295185972208347514723676568882705552505830427411285726584212200709467696303370495423554220748953846809382090927810267440480755330529486704801807045552117418983524623786223853119098212870679150648826813326998766825640197442029169891000048192643208626742697990266308620060310366447710832841140483754756617301300433422212041172438371437224493377638064688421586518640471044627924038757853334378902752941631225250353669934769953285723178554097964697635987797203802023296869770556060412269301613193774415430694222645830432555697819583609299057144787050540333155009345985159059708232954611572725065660148568473295950692259410653913273471418297061168382732596754273228626149537166622600587963867516619140203086331167055491192727298196893098160342913449312230683344570998820304805358194744186617802846345831640653355573067492244657976957187091066344628186912577329313254261782870912372705368014234253543076802748599284900188405660137649805602614981626065624467378962933162472690833408326817366651274101672806327912942455834097265197900942563275050758895759020344871312856220098331209041055559592812633464074141237668068185414591687853019084659584130397291724729588300589537748848687439919522943428413299449997468171494132339942626001434987056074245824270043960176264315250006989347231918740104500508720959175547739082835552461573697149186832495187170188694843457724619933493916875467146172104948513373394110485174647919597374537360318653094715847392700990483813763447536739204600930097529522085766586044791506674950110117484034234397236703229898043959998516072309377707031161667005344165031254888088180250900712593682293445439634907917954501101447459055969019484759006975134627800914857071573902543884181492274014609574792704326523315236945645982569025511264416272921462711223714815294596924319708762962898559126653410985866906761714011734274974094796553220811007575601841921590801789962793553340190392030092568961633334220560843318363807573490554595547374462573086483823791528500765750575353502942176794998221448893002994347980099803182361793446923651818170530235265336979852055977145849768843873294503859052243572607069724280047667943247480716685623081265274860515321767040869059862808092956338558589515320581686867158490389112175611678518412269069480992525083099880281316615688682994163405283623797899700734744717193774836926878407451621215596266109717130402893312695433962156220269273251431625048467260608097094422748853195209820462695539773841126228393844884730306732426253057769258615866125426854309901690886142217113902794862147572546095942300865130240857694330730645109923779192925042324014709948622163866508575861886135408479886362459093457522562307620290959422473110687432993735858931496896228014440033783233365240278822488391150743347954949277600417390164524866185044088595826110210067728900633988214181806997608629620969435255995632098589441775606459161421231208450113441004047053178216554191495814007439837971003362829868529601871301238185587634152387369815194604407313722307535740075252923477634987840204017339918491139439978434252062684135654934937188688346285712602676155525242381202068384897320362380702234522078612004807339662184797330627069623505287082010756098195237950727110888678702376154281352599079910938063141850374487154949780415236503665905157965267775213119658100901533224886173916327100226613701411736305148475410651990438072208488491261554101590702631228751050868247092713441604938463309378591654915545606162314611845538472153862349378127648004681316588939826913142382569508405107576414593010588482056865061452145238837668474710192664393241238522438217843108617750944242860670206173369427333623122176022485176215926928114730123438561622642051994767358371928035669463985195495589732163796401598720182708601281039895793304993606043947878755005947271531062663513789700092764623456815374639123253867489245036302069501340843619680412409503368807743828484139677319626409222504107063530595091678830552254687844428628821225763312722712058792656198303586194177446060115442693022021696964947808405367056935438899453334115040361564408902394340841753061464219717966578196559104523964755812348014683524609156974791834545047171572264750782241661242259366774624486882327595280103560962528617621192656371552258010374156805998813151344907195179941894008223609522259178865236211086142665343077271482765281786278184917628607053961247604208823596609632574758646262962201046465421612474735740502177118186842672349761803469990232991918607457894902938679273274862791171088502140341663032569985420634116198750507405620036775092208191846517238978178026834527668476172284554423131653896223197748987519976463364117807521261122074727635710872976979530192254470028042481435376092596323693736088635055892646453976469497739843985699273400193653463548369417589402818713070713589505767484604394613959007826124438851226522001728139536710246402802371459309172292583661656268133323981855688315690277035225947508084432389839372520430845018635453028551035167632358175554102446479905636050202104062001920348063220219585977760149151374908392832440225117916587048455098534217826501448412626578880695600719945080438513453428367750499930217546146398489842921010164904929984570358025151028733501924831349753899260085049828843631042255667828494958306575094019056482215964150988355296319320482469321701593523909945072555961431084797174775184771812571393291785054135680459745859459750020641044168613037587466062815447134326479489520075165197822641909289568932582743282810017263818508411960522094521012626875650893905884854626180878117739424712474510914879886916665331582839288982372542486496732023371254789754625402356333823970385582350117103110535797105305395960457587055620016784971760823906128246283992994821409147828201268322389395955227527612688770223715956571701133298330337913079713381339950519067690775426424913334563713128721227229096145246682846718365018763461017785001683401981644631189216788093907835423225041552340530076466219811407610029522016994552075118847895341988872468845852267913864263608478171472148468514767032510756010363096333012527309269614796139059048212519488897363842807007518912383039019691597033103187500925049838460162700391908016764293139078756464096701038163430917574784653297969989347959870165544409253279031398227485413770021960303645231959031178774540599442512863430667111267300100322944469846560416912319534040474036390575640546693964797967688157260758442475209309904820982844554699581322718822959146913618644633264480044565297620608649988127087660749024270778430335130006525808642066959138157497464909816385693420803715334805344723442285867010100836396295703076754575760236540156327191855333479774837033002772366178016545675960215275882017687125101095994436423147184190430687875077604080069177619870262506676263477989139664522278851201878974630054687488072344567534059077341595853213394390015769420264053485865031210229190296418716189917226160171702130888405872427760796916753908223686007870167294338266613951552333774164751152770603282910733061352364232132979492173713416493189644685363388796968005263769971330830380174339916130515525414159827467097269570068559993244874658529421641506947767934144405496280070543084325634654735899377515092524724825381596076571683361746133420361217218847097942359953491682075546369354860354757614331818537473808512512432264711390301033386317181073443133653641823265714890965124406670073520185137177456923882421916229198907135941822199048134017459426538640010445103867407399027197341219677806316261002238057166573142189751959167227341915192120540835388423516011071191544334675798351851271624822079092111727739765904078155798713422294357098561220206810644080439778971950968925946610520982765004871065661939755610606151408984302870920504277341643692966212233659994645084892009205750336240439587949470635029758656002255594918633439875322079190979601062725867112767033779772960446143079540043033113435347955509679078066082435827453952046642712475052415245629761877645995939552710787237703968618404854536145523204521525430873991027325558966631704931031195362320131817223255490240744276973158718645786583273543742738707714026180717076836222681345332333475463694932709084231448179641544193576292132839450021572304527992169590622802777328330032750808267385974232102755750963530257129346305621757521261361247968107441037828638921774744162518269315216649730187314746586915093291425128681538142246362053517788636191732969592389296751288255269218868486101346862715984351949834930194430425811855520571669218627631286314906892071637982573608309877180351269196257624225109900676566778629354479483521930873203780589261090554553804153759438079311232443122576490135349581171040090451127907710467701393182408146571884140325175293975549082617531212559823391049397213344960372145068133878955948976088903060726574176860070471492563975099139986937707494817334436331105399263458595117831818520156762822189886180957117409409913945724983974546265167224189109035238772846770229522961163893162273582302464585380900038352542747966741713902715112122939130067234781680738729604005183004421074627389052211994545829622197876228937898724038952883582874220832705961345673804620764826782841268358666597294399926773183408334833738551093061972506884485611584167842179076570784542587314625861299879556710480988885860982698948199348288098327809513039503608864615509668932077155611492747438646096728520100024426763884438034398049554898008800786446417507678377203434752797636628799584665666452985607110018854456830580469633691102007147300279934173389358377205268010856469691173933656615391393947602367370422700443470407676415763402965867821659557453856679042440273712721469038868606559511326604663375275151721564393439884246048331919073194099120211596977176151032077866011651695036660244038271395367303135712506399541069376277538566071907630828666569399173929321054747863816598387346255272765591233197971699059966730917441414820173491513409109386631176903147534507666233684066262229361593514304691217487462293843456128643218946129815460121358781492964073734128698180086283521337991788044088172819479352859173894134114143206492564435179350081072777290626090678763736336152086559375156904304436256115203143242555804603578776025718300254323991731924455533356969027530945258671553247193405513110896319745098909926358270068388662038012918882854017814643565167752825605495230941085424374355581756900647801634296650269468949788860361881668140350995297788249138063218819229395844760735048609807884476934101769986088660032679315882029126614602890156718356682462923406997199787378632630337051544392486386871092131766216789837919455459978526658866897878595953829500827154868656865354870611143655590508558348531112826681701828386749762532527023630208864555804925724164072303178242502339705734614198476101454078018871926262989949363919634998474099575300531175215156457318149529123456982032001323988077090013426233843230798235716088909955314743070621582157971182271011204505167427403629717409653101215397013323440140172716891659231492592632520628012528462673455643757080886445259992266767394010064509848488175295888866666877553314426074958517338616238845082671984042206676127318166163802581818430072014644644182690745030440226479312818934714177987267927237497021706528409700327234871062138512481541084721350783967094216384265274587238901928888316620215517028310923273168927376789613990470093971016908755348072239606897032077768009953119994289629492685930066284939517600042087106534822296581927792456766503147665763664139868941972452501451355045763463766282070349945195943113960547036039312149294334848925473767225912043347239661035683607235439957257995957890253391217787569702222792804552410097763444541612526390476814045853085742730440090575990330796428200421959870234196981599798832088760436486039747668105668434017846671070596809318522602810976065917843791773025689323010626077238387017245729004966593592207366329817319907355605860311071861716951561289580071146275053568109380246326470140385244558680202001485006857244937194976284524206790244428262398218995440999547889633921435757404560017064941102565457382097183908417702900767602595976377694323418236211660435947302194839539031039637641319122116317385937313044879067134703566790366812927372034908866022385653684712926345118458000877498900979746629087645544444255778757854015675687359999990441085468198570892172179011287836013626725593748554504135706483537820103210338963625193917616162141424727756844804474866472051656865094924476067210664224877577552086473530228330438651583797510060004057279190037460462971180896992174677151060548287966701410962447743829946169492328948854863019529666977571668973488490345158170483808156210246903483130602239701052325366521718067587987894204126669358984918329577244188149766001916984098257475318488042313750748644769321010310100124571620581002829757825331904371919504725268307112605484072593641340785596725537841579568330072096952189263468184849707354482936167414289899947281418941484190103365028687522697590488049272926739821256546876685932463033863743928274603514458002721518784722901039931935395624081201751679328517173449780276603953535166843107224097833442996269438992999290851309551795761680595904335271047066391615631327022571450537939955398456791347093492350803124326652913150069210718430459412103960980430288668698672075211146174501322403282397042755658596558956629475097610827734112505970883373865551978704677609779358757264343698011169439101927347568622823433895059891131078131765681336236605746097650018299759101008500570795966975835549720092600628262809236454329421246752878075899049501317583241030795164155523940408266630732944189137104481899622056188346122392861085142008615712684129661643405498070619315950139550506342837453562239364633357918117926633688203059491645551730049871918231802576820128056087580930419560840088404652985223072219807392615046987763637320631930787458757809738688347946585298443023368501795101532537818399455869379103657970333729651470451254061205014300063280705531058760957634800438092828422940006261297502489679458377216657429680721142971833526493698715549803372324210465511799704940680238865984499954949177089948140958136163469025598951953885761058795590944226467621658550666468521770620892531446160839801351753171891721737858139126031700405997691114241601931091559820008385491590621740114579266836219970283166723963588253787548980822558773840160365313791847089265549963223713252412806813631462696978887449511636475174657077416412486492927130248978396251456035928333545659460824315969136426982926489707712360788381874530214062875763985567494218603566179917159807783585340902979837942972821244034598368462877758159490851760093102238423103858493436926539933984990075124958446849128497462299542615867999694611086336888374930303736673675145207371913790585627817428935467273516071530518474811762337878974842212797393940533555077746956138356025870381052000123038714172730137390606809398176683675706503669172813802972532390839017828639756277054094444107181648720879799230648769586085141802911755286667527885248410040444326104732856529043064571538397938053432521317362851570637181755790974472871945821164318541703927509137742313816853304042609011058718900968394980332168682255961737133452787066315194792572020734153557018666632231847489235930497334040262170966633306440579822192753413793937129417855794427374934151466283688634955162722859734431927285983841821373202102559138167367304265913292511404847745717170285344821428306284464399577445526797918021673004879900268781300052585382215352310146549944055745510571241777378045551962566585363994557010440223532301782005219258890674697526490060322667323046533180306942208546737254846581703242739994983754587915661067153641806898809884121415708602919768908859527420390675322435817755200051117836515554752945910045496605893468680734243379123599611605974986856613354938005618705152821755259213090355405608533965927520099925613572511770839783032268418174557023303879138670167346632521126717475235253116530862684386751023707157235485727620817559920359924554148004496304168966641897703398389083723310448536149638713379382644101906648716267561358751825649890770062331643826624660495584334385629892221869699747610194746708012642458081811147730807775758923595331136645043911723386550461990606315157774520377091618803152784872104545113388508516144654866836180679142165401746513806298325616751770947270329931864708892852749136090244251328509220685978280212412988352278349068933454184782326740699360840396126342526135317382543011696512930756465077970476939469644655938196825087147384050636671929063651984912647659773128802141785805113947893462801936042443153328000010997949804040277942007592114204024682952340025425858543957037137963757916262727336625666510669282919590509488670281631456412755987840137018529633686131984046239500448198946045850017270445277783920050005530934155809488931695038441877151118296472600195427512174988224546856427431166599337961440477385013163016644804980593166681890637931330906598583347666352774022698232784006780668738066289804754177778277467140665129713924617968400470643390366145883494532896177181706841045623485044547114767920955794736066794577168488743716399675276857564132077301548141640918774956123337370684223514205246110240120183792109954715980348538518222702774240264095206027571929766648355507156714790683853878711066053664876582414305904703954384160424805960606305059012815067693567498476463778895979350252092840913951667048895857432551034336673334087129949127597852774946727405988170138684033400911964752122448598283799905348910135840587549665165290760330767790310785753165800815401929148023015203557491619195931978184943764520146933115508668145521819324251715013268925222982647498469428367209725490849161869240454322434037892552373943285414869876764108064808213774320081642696782793739652378480544183640121214540126388529507748381268350667560132761595588119584691128698813874896551820263312095815089316164949893071246026137493475707459004468058744691601180380621345362909009675938796272261131783914751667153851408717042759057408476281225570023433326957088524135876537404140155465602036096019248358690832872536041547126971952892351596459240394668518855718652474719571161206652629984645411179393083274569031915364507395613939141774912523584582366533073813203773135483317787493657609475109277695913753774165537802487819672915659198100164971175844169661640365818485934096582316323626781016557046821111367149094283696669832723420758118538131407199226514306121612140143616908163490294563313024287235757085183160079528087489098008622623030145082403191543986299807857045743669942819427724771713818450168960219702916511129107100817443934485791281730337664712303472341460399220168497476945398581178697636226005567134439990144311005809126289522170697373530567777426306617407807674685857542730084715475001192600690465182672960084634856138979810960269205571777365087609651173717761894076198841229961219853482922400371579008086060746587616560677103244564667152926915094379467469911066006966514702447906132138058781189044983568913235816561983644384584285382695378888501058823998373558520516890725709314190402911548300771871637649967924602230151954619045863182193168434375306607605808213393763635588682230420788613157791899580427961716113773303754707530135063366987304478470218791481430468484218484004606465716770577134078459495028028141463995545107715966648688135630965998387139762961320329393312950219450628495506638958801600970597187426916212433743960802616174033132863827136651573900856950887752782104277670838035200202310576980260597005808140448580369631619921250540572014422491068222622363717879617795693924223287290477924234848001876023039532233851020255133168710708414606052994730522564321884818573296345912473171938588490959264098546786884762423347255132318347777212110486529873896479838897460539024323681090110335627228616467918348028555073379007060524599939268441831044326342038196409340055562125071954593493896338821417601275220077189228412942040550793020573772668175738834645091521181974537970383992532344702758245029075590326016713454188262491842677740169778920485603501763470616501960915997906724667718566384392394098676894804863382277763439686237884639566406543546775978866511381389928802923494422119051315704940136477337172442001515389393458227620095867480463011518543967148699483709204403503614135592294017563740392490727746172363219249175396214226305668679841695148913703679073884283735225459397234369744450970984994537120528696883033073598400125417763332347369791002788743323888225531601035376583774621708329884155622534991692693020013492657979468579961770387998378349549158444154842825850295543230071149261054050536089165211555102482813836564888038038422008323916083761931691539242510639765165466517911090797847263382188151837047721181423003774569582281433688496934457835476778056243761885366766119421101256550373209713854860327670123049417645207774029798982698698896316857218090707108506486561368740534316285646767252742265934502419324542550070700017044649117390538757405313275938995700009444074423251693421767916294527533209484270185258727511464376058082757050697226309283585647740015826257454210774835298545665911681355160902561134354008657676487725428790485515202533363315958167701408754808656550691419095583763164824734139889394517997797422315960823007573639635862132833077620940135091132924385569286831302659267921563659970854784395676007345565956973064814629139488739069448004628926229559435640684598563301987047633843123895927334879310573576277568264384490412383616274488785242026462376242682856365768256214693387588355374500074145190089137756793519402578361655279576107643756538780250188140366560897283447064367739372238778478719714373733038987103508474320480526967563461601629727415494672842106085009094811650535496188495304502504240672318132827251739299816537807139899764180474669294158816137682832106777397602468570896108290886397867405019207388554502862417065278044435089596405859617497497239283311030278507957228033293713779100557098691974453629566877914214513853368653479404079247418969414206022815024930710684095264132530323249986382434505647664852252938001134865777244138217778399447853374917881005834859776361948347048302459739157207373866002619682730047040849819783327979710097973977762586595035702226684964363570029389785655015624786971846654900006371882869183834734573388680156127267495804839445467378708376023426079168604548573579140294310928522477108642926917171450857237950166246130174972908539278634281061792147833752960339531314161007713069666117728328884737207085047319743496085242863846619114092114848821273301626348994692814526495489396068592242209654358975580083343358107199865912799509753532619170695298401539346676492055510269745613616054177510327285173670465863212785614118560210124186211384824496604011854100354415492168786313745144074722126497654540407104835745541736412625670070929023722150583409137622940152024144141617154846502286891378514836536773848147936277988919068013027039329130768293065028983239044124481276411620364350007715097202801654109137592989641886494640283921124535603524752263087287912199439617571103426763589308672415273054515076633694533471899994586582917866876421108926691287505330744357154131231746241798699180498909801028871738829296178627868000985225395860079454056769995108566658004065553465114308209666555522087415458905551087659711753719357457409418387444685761141193256383010749513259981339234530690694975619638495786129493143685518505351135076914153519705903243863865274678962148941828355838984003996002958950873836259330234759469107915371544218438785056507914172443795868903607471667294223761819981840117661656805854034306389565795342522158528890502562849402840140024156848998715667370558329245590875554673381010891016694810224689443177591543366521591572421637340733399861950155126024566646186076080279507132883339323687035671685049375208436508669465645014488993089815773837547853701661063781445824787697985030760879287281262550208531302620616450330408769434706145894912609248852775960892040899972989137032151203974182759013091698834027716086528395221679351711784304004918282798159461217018651621735200396122229690356421247349518677162807523720976274452797543316182092698600170691151498445346366898438992918185314478183669468873598149257390766665311702188362399584432608044940814421978922468242719571916375693459880512668411273878112538922884461747061864253407567865032417215791496196659445578903925445824754133201897214138463664193083423823866321662691300706586311389734785466915689261735271867896779507677552288371382349583497269843080710263114635610205711707985210681645764160444190985200744353401616403902131885916925017439183423585806500363668796292504430940940806085830652735574004725621068384273563130285037134487278203750675559047827339364078167312760787538725703363390710833194507117936007801949799589568903347606021783159574837648315414720264550905345424657145336474409088016887236596914625364119507498107946073914574203270290295136975539868268771407721677895667992183321933029488025265005493394758324399318554143066032310366369379436904243024667843416898438804730953811661432043993022217156337085129061506354309275479094488949038422509535796001889245564779660710605977813336208743181007690439796807999178527892699758315922624972998067002641131115299613607657252455479271002890765962088710851673268182254890407667635925515172447497020656913565640614459067625269342419152174172195390394491172093698802481680345292964624112835618423598026442570267273350124622871782121493410746924709760904536956560630329375777850844695693718431609697030864938249582722313702377471270936524853824954846670876545263951073635152851697704177470143836725785013272959079202337338755478126907786676545350474009735043916921552999587527286879537369828351793101345289898303396266982108013239211561086771380989663491725707477348416150577652902817413713356414458124257194130496644639601702686959925463034789183000581816289172350474307075971771878362237398416720171090054659192054686820078140801369156445258421452173133535615745671068352541331589257381805738319223576943412179108442281435450314170242788665371518338669246850276426782675239962462214568143370124594733560318764030832383804625009859685454147348191896689306065645762925132182272518460222882723962280237180690105739039202052037721614882890330711907643799090827045061932321734533190325149781527370396425465434738433646383874645778288724031413459169777989326363362142974812970569710367395354230597098043233536379066101729817475313902563834351304487448705362475956784337349248778041510684077047389946968007049975937935240357150171013333806193773608332133287537425757370179149552172650146334053095864410264117847274097144156723005199582373824809211707398120386171645738447929441524121466385841673781975494109771031907002852277428492322246765077791666540347985459451073567759353508910074030169242563102643980368620960399402821949445458519645420585205865899790877455066751305028749683467866534129287190609398296145307544581033835252266385022332569485094096632847502128976888799616490259439469501865045404727875760067799553379049273785023548708936526423184544134225684247653271541249946025730592275078889508391364738492142534219615240048410323715286028373878333007937347865136103410909292487448905954152413032023012606469437884953115062101395852859320923408655005573410985528594275272612704059076842512775730434100066450333429585695521105751065125026492064372923805904318875716436575004727424097233278712391113292277382622441215852711982630053371139580258195814062677089806123127821376091199871670417428434604440670235684799122744346921909858568889152372006198584182470727572712153585058801153143323941890863627656980149186163569612174666177989623486431000260796801573350210654493063874368142229749193557949113501015543859153093756684285191462760617819041925501039544790625756792790476320746856764737120483830243524909258126310730027013430387341253683783433677385774906782319446963222244606190782302847085414703192384908544921731997296155980775480273350098041883206643550898061339843297280894502941370728668195516007342081509240970514039444563218013578664458419593809215948849621427681191813624011111856158676100648844754368147482544126844061634645191952469420752110071299844827222057595998540067221594861163336766005046502848596353414020517843349437240736415561910611875301802017477224689046838344362867805650770873599230900165034346677400944759175156392431925006315739727839207166873912528463187531363686848758187082743887633145349898893650918649958437768463711638823930467075713093836351950742194948090627369405661582802848087946927192770922526608228994686689920670788489270738910545305215388166095738758166517314205836278694089009344006711974008467643256985484366026954413664339561852781222308159481754143651030985788972411396132558340641624491247766685830622262969140872548939780518214597551959221225356274442057145743097316240146165116530078001313549769716206065830512131517753382891037981565339636835368325300971661285288963046046137287432044025213885649655159304925422291498590449236428060713704509102678427715979703542487956907675811660309729632702823163199932312249090542531620020724268899690926232369816345521119648051638481076218215945715597995398652414139230038210285249830315477951354907770315212758911033188674893810328034734060663239106235915998872854594859240024461430862784470987446929496829153906450588258329006601977731685941262927880019295530441175137073980772732088332452082871753954397229753134663793114179344909202534700639659718504591767229958998612875144399758633130674138682091395832349786636953699050947633886736730135560196974342985475502585333032031634022559157302469216029845380903085757058925653359135178825433561654265450807838140688790255411891736192976474575425509274114125813996689386526062198486012804636592992135251919860054355837813507557093815638609440250618678039224324204843385730181333199045082493933211434267594406390848364976978294283112174032770966945851181971256889085652409921626102867793149943645516674743726268916952205224308616788624581340770910866845585726870781933475194228591187166520763114404725058537026301813399442018185684380825086318528202755381709769733006732367055021183314148128376385463067297462994599969143977928391018351006844505242688849849730123533722838580125339039279475875728000115442063559938018155489397589000374727106914250534180162803187449652706519452553655497234312013998444562810597233398937622952275113853834670568955320196145604895169247631745952272028155692048578401796804891719783734786457576628253559583371122561198042038714508071500211073422302761542391935222596335623601130554020698961660550615697481933066839629742196131445535538925597717007337039652626616298793716488390337891938088456939487948738939496631164152144695771049039213728359321530804484013726943204043776066881135634239333701546634728187443149629458550055730906042613228348093706390508604157460333935912227042242914071741059513245127451486751037184372472781482962179895546322792971365866031485910215408946979652893241967118024769097239696746188732698076910265767258656258096091011372442084698406852060463259483199500252320823696675336508717085793529913620545213592303432759571523164472872059260722820624908123868608114035741813576013155910490079056956720540568310108279797137933508406925172829307376631771336213270838502806393479546810174512094286168324017596833839159288448281047582298130652869648429828720050726192598164760434304055815022869971863711587298991238903368146441419919628790976589884941830391596621466886562697703664451967756541140427826488625113097712444891146054713395593028426565901596002624416506229488245914888923255009829869898975321179385293651128276569224845643500481166492383430133792590734843016472864868340840296807708898636836954373337759661922926850547593360575306231160552023037790806522929206323954597585807619224100241614564765464459924735113111715334243073746460216151340736928432062426286148766542757828331658813899266637519811720501366422528942717801106916877963081297955894045166686976127171487719451012027647717639851610740991383699557571055303546599694396980509144595285247903670166027788755681263518228947759792731710882931723792519729246003662118511310870572662825267546105860038465445297791823504882289798666783002729177688149358159598723608289795998334522261201009835519081002944347866448732072179818691227877057883067118914229910557059070284787495591754015096211475742066944137764306202352331866482077536326458439814357633952375079481279026454055454552372881282752561986834702067770969727228276182812717677340034394800290432786662455043399218144621886731250178244235341141871603432580006181841315700874766124972432287413864285594495634507984040976391375932937309022922923904593656294023273452446012890523743036962966322496531360037346729458597127764153448767768615752843034954786863997698318444318101132627783422156540862894739696908102904890259868849695904197521448529786897752592487787848734011566061659418280364839248478357348503383281608001451321469878671965283554214663516352934743294069759922726349755850938466751147385159609869107863765015309293215406104574754695747253833312664849738851861679709785844954748842706413553442668167362013396326103536722427016828913965079946503735123943453095450769377426217221807024867991735749013812474647355225175061405348798676332111347810905439439922143943275801533449084977867078928806296970493328670247122482780200590903123393580694613855126045060974277036880807642926715305864812339722287684650581987534728716031326437522736127519595718440654972701335677542890630265020850621117321678504073134919607708851093843060760834221276156558467995040413445286878747915002439864076272394602783562959318907399733596774294962789345811814990787019295895517540489866046037712960643824031115099251083842217590838525914851453140336597800118987628138718021095148182831649395471976686486862155504532970645750460170577962630650760345096648973799778704234868425186911965779969954949393437750964179647000728766643527077173918943592421193505606973053728939870217146976852376609278568548722646523461399345667500061031705814628975900146114998601165416806817208023460120977179468052505805902643385963927357211216012500134810273472314682483666565229761036700728398984883968670303943700124387536615553786827175081674123264291890851417282659010720029513559843347061203175183084675318601333963500542429166669043291917477753159080449134804780200827307623260137251835703917579388980933354778954552230979756073234883667224186982737868764964170234276616985802926874255588064023910920547930148154435148477546449029211189655152316934137429510252906985368135666163230019202498500936963775656896761724996075416803304945082621956968750524617759619958608418287967295548802309126656679728481399859555085013103308796068495865099364085271987989771668603624511522246550564106060265552837932069939657341913927529625740045213833293307197534058769636902881132714481768623667135698921299963847860955807822839924611846850935240192198748790533904857337304423307690283589031949576412443688927919573766567484446139453662882454271070997040232984701277856426887985110553514918915658786589096650724022873951202791247548237573129141133952292430662587616814740591133922763121468245188732552728596586967148760567114126604250128590296887085547287102218779488728911681626141595093635861607838401435023282949222267031144667756595051963874452632303077986742873207253746776578826032063608126171253250250545004865377651841319508826912260199825559295249975643928108079665239421079876170165957507730451323872443252740811350067743795876706436795628089998411717035100399779842867679375376525782763764306319328799812702193631543805869760866664842984600186660450237209488598551587943798061473432700825758560138842731787922398670333460875441021295555988434153102893790954610283513034964844122892061220393774382047898866893692288958451894157463707963484359501314592236431808989644515326616471858486040562459521469507841014558575380875921046195869683733903446715053944431010223606414409712542703740975296671329777119228152737049381035375841088581008112969258621026664361488225929379685429926269599567250634219676772768426184584118190002875259559864686122264085272435521715208241272543417418321750934217457999204027898709926363779390327208148173846384473199414653366466030618166895963117551203746409346863077513772724727862315807830781196579840837163898440487788652723137990276089456279056082784604225068285512016772062286822625265143675949116957975999517791347504148055420163297654878950518236516830342313098703120741785905411319801876146577681542364263830832367906176981463904883242701838007202359236114027625997555448056646181329341484733560186441140133476311108231854921140148392652248553000350386237671590243758034289544019931403193041651587824069568455098212050470342815564993568786160664319917805229454909797606335549137724492780994856648183916640269116801522373675450045651933751863779982928668373055991812470941489169077289432755382784748799262226802906091313037662779125226387810132473789171948290286987381602881357567010115240193576276065716650768953085740986722715763071981523291134592536100277390418005899065468058920134487949825560975805157044444303918181632313912964139846845595456040460547345579811401888857277226628827121407539236496013130550936668327921798251902731455556258525699251359864621807764344057006001199247468107753553379037335085985176028097746184828511047183735919122611095687131325114163493022864472037916757298552810649508556459000914419989111416485217612994659711512845583420945484462280576357782372409734273857325074134251033904933965388819552640189460397556435052037606112038302280786765682592566162710050852869885081061897699547466763727080468459116681417090500936870735244024414322865038218665683775889839624939443441102655337229199825195968155507840895795763583782660121768571973185778539932488449827829468282849649626490062217486425004816024023188053524536389896639560290716070103711665410761096683887629951921288853940769029756812957309253652305197185371431801091704654572258846082874434941615481299358262786374013827327777163067954404534460165266704282669948934698612699828479176095487566792087221307719242823531292522457249452615952593066476968158190925027590470659063446183851573115623580297110971760601509162796978061296235591733590954707137636090338466349992713758252907616374355009101348773634497221268637903731809175518616634722375583665130174432123586292888332499130318589154710005369221774336938718473808999785867289258332680379240815494474066405429011169826650271167221853074455641890056654945137708924067582225713602241400287585174730788542969899274268778666691843926474107670424479589072269557051281568946633756596035306933507541728012074094710189952032515372521964984312304344072571202065495869736704352372785158989295084918501119463881485126776835268226817643020017950976811195476419318619034015432736283928360492250234918384976178761932709688429621758297320650248637817994867295209773699124081819656308624473344077624894794691487568323099813484650093068237617428349463292900817631426389954946281386925977565230241870343445908891812530265344637256247067314824911293915534179128394583918070898368009860487905262515491448905594771663864567447154601509948789174999363372956955712554703502877646618778956612296210619730501919560976365731385143841186401415366265166198480533919496866331756371396325866265951716874270085800858952943883843091747768569225510606280828666467071372682628783311588362130295526764530420044252819061798533504274180245583534021588117403761405695093693313880280569279783721596147019079320599376644072235465651883495681042353663650511725160254766586358262370528564997922908460921624976452526136918518130810646115101773847604221399733020838546047867846267811262979676860103882424764025041857175417393868543320375227684183296189321494580536094643326367255655135113874473371501841331554179908583605196492847648476131486440259731495012867613735088768594960170757821397535667087638398976045292135114865432645635753353873842602141718795403257013094533066467640442147725086151122020764576318070361879387727241177032423951640966623212536902438868843394837940669057082340463400844179512073087382730129368657991751287757493554601243016394860675296385366421800576052862722931745648935373860350107746374440415797372893686582377462241287467147295005240817270239980213977575396759163909716506206214656989815200097413514276076712657391847120971001903073579783056507960273107112085447536079388864762955434294854933893497688929880668608144787748593713933184585447438106705773619861169499539103134062372559246107804035591112182247251881395122408207722464577184843538674246424493062162771479970582324070640554362817425524016471593538595698779857319229032561051991496970981703795854399336355498414193732534100299713612713926326284486607412967427136694551457422272690143959854011259923096894628151472962034729262635194905440960931760267264684903459074506712955588754651349039058637109877751241779795770189701604322010054607892040088489150821335542816600058766701867213704689797508250261963807402802297226116263879653615675286975547525444999055679696601469582170640753438712982445096212849186132704815064708256761972413251926704389927104210604040066230758902589757749874502413364611140308730417388197876285707035859434610690687089660467942384370985856597155204438866731310359561184114984620717043664357687897778256257424895373843130572617307705867667608997055953909162378260783754158722028936890869974078959282289612465670667613005884191543546624529231575533558001224403400622776722161793814894925238506845480225554887585346464519037452367415924973357275629991496974131365851071996674517455449889569757496540903968985472663886747249001636140362481033867238664788771149590692997103976275969316228677693420213978007937762013059380457529268886296919841601825018242639202256204216524058428879483564743317027697618803836685719563480748953419317737481625126102364551800762074730104041135151710841419182609332454970590638448293034236691565897850043038542995341026401907649038243307294559620253466470988612734732217531190592437068510993586050630997860643739909149651117295371064070110904595247710656471182466897992569495980187413016780073950678479215258078116060040162964977166512712382627036566510967934355895362346018069401061140828538256204890867427719425123429413615393405281427793724286510327692513117676126361451323615374760022292666156269010075973210564578202023861930570776554013571008412180201982293870699421103513874933715581395774676857779383120787063846365588972576843068047441213066193596194701621375161248553555183935578635035556718814168221206669051924292903962989401009242579975679513049067449613940242606396952293216021821771528856920186469224366299716443457410532261060668563413817003366434100659441420708206023581666612817801401800324533769548386169843001038959138821827986566007291353595718199103867491592600680608062913855533491609271925144766505067638346753949273935768540179991992452850835569058676588685140044297400922925550092722670230678973780863537386143761224418661809867393462178917827336845721368654426539299458755276004863701179899780800938830482874494586524500454910587982636592934900611078927633867140136959893076540884274055746587637094528081593885980888575342987838666585534937334870719035067730112066430072553826710016691007165516074742437772386574800849381298172818325465551680886739219312718568432846330163761647405315100549863236325571558914590824835250975856204749613557457842092313786393137383159807820635929904204993790336819737231836663002218220489298132370215621253151488086952852437544673910015454862778400648189464769950260756811000217254357686493641951387212752283360257190406573597917332890793537018070402679567270942443765065704657002840764337817308066112711647398312842599584156744174564429815634955499223237993412387638546978399773728172718959253811334549901736787226086245441523859696322255661747777540210862985826694329844417951997366687770658890949099920746300099748379344419190456124267491935689061761441857214357799488448723250505158866708743082551720562961482702224111389026718098340037846017747888371633071489807037302813930193717340550567400729799733921928220817769567855077133611746281731446414301232627771683148410194253598797549008698891062401962709229109073500258227540110330982306868141404728614937651697166475583806831996600951369488796977022892475641013051935462683563193287099019353042572303857045293782872338159505895307546665633491193160597904998273407027738414863760599818835234949519122815004017823390991441469090453583510505470067823944999096671184014262940046565658175751551129311064620900135913560821761017698018804724142796527354396658710020749354922878518333489338335731297166082611914973872322306910005814695225066044490224839646452050541852196928678243386007942438194715143748275559861414158493819886663038098163159061421643200505109107480306974137011457820868659246230617105103322555200922618712246315144363603661510684650031240786291380606551286317863214494499770435462765369651362196901619891039248260593613670402851338583166414390934542655640280046810203627015899559104873859038318815500204243918360766454331469406663411674938828044367995037032930663591844674127058771784900532827707402204780635095044641138043307694576106913411285923785492940601826349054152645839490735935849521272724590608891212838323967950881971628903942076219712128587596074005125125187104641894985379597979801525837962465800406401535244915354757829502798102424686650825663219699267768850896795744867362614757109680711575632730049682952700820626946606489404138512564432571310413206200417017314455703058810957928872097329031238218020487971337981712194548016503716445339188571188900186850713374968509840881174818307449571599855155202200420398781776534584015040706556363592276002880866429941960886224767398419270642747440364131327238417084700495522935069315237670923391100494186075236876011743489218665950141337718074311443667319115527559083144080763688796799496429537936020024321441408058862921498228012184244735694064948351630385914768303789243333296546360085003168126737814216182071672283922497764522354549226275218991466855613085539453259971747332642876076202048134574634797803599831490086666444268555030635231266847381844299348047725510579439894402013949562480040380012453989035162888635759858580003907573781495997549704681931574546544244613472445465183290051541772349875522443539312043889555884208439092007738498703280311812802828901097990331353094711968479942391234981771152334459516346444885961018161293870070007273517048914462887068505168096815834865929012002435217796875876316190555756498527880385066362190633547240600878708997041718049203684446885338616553953705752219506334739570620533679624344902040542198537428153594065787490407006934598924625525493995865804622818399148325949958995828443074680286174122709798260156416771477864767713074807587139734741950521883062346211738446044078503991612478377972471301184686706512799830096906434661189190288794623321460432018528297526627178855328418338744680383864281917331582729429478060046922048291237021558828762901080844519109921928779212277057647592212286368332846364463846844234533674605458776527228659450520176366785575086304531610223608465284643262869296773437439804782813529924775889753073358956778435567137465737755085247997132123983719872253597977946949021527706916839569278917132126427199330950233237393324113909169310911613112814169780708249614698540582411476158422174584265666244604900422602883194453715530132734441003297834820754242174808352825569878682802687086699697179227126115756682398604772028043882806296383654409478930512406202868088345224017107408240034896473363848137280407076791762131241883892807256467883635203107570721216697191423235201584263589804661085855806912225688738424135197299195539492292408294582240711074444235091790278983033745484105155814392653886952494722312467094629768478222755679156481174464185354503133471153012561700322454007079644998949318474165422418368189136188312196127111028634542336451370883410090260782982069698304839511629295444626493017238308999716062909876901785351737061771685561746124103116176134223439688121978325924977384583155368764461351690062234083265023787055682349884962511087214642371214897890779957802345614403318017712601435514865698187735623766673229225354519505637343936189234644067922919091869103368547990760485470387926860025096495833178865778986696032889775619606260267621457438922373611732048292815649860092662678734957080046194052496257710446808551461905958650697920595480228383625486475845846589582881409390583540418746624494105249399745478741252721127260630677785581961935369625297552489499718388929658296129063959039367503987733922613337990739623708595134398528089250800021185590709075086601458123829720975721574252125789208090058223183065675447636794940283367876553412938551038782142194996160814153099464897386615579987567926841309838497281242213228525703788601741120477552980364407434728898005147788883574361012617545426002560032560958234217019996206772287153475417194936108309483269326732437609805471707456626902538961991002923805147542753405830516376718549631750794603547560180304131890581934133921646027089111325129387815390850471800898981148231672241362416143342720929358152118330113520457123955697470993827978844312572282843367106745640709065698552114009045913587548280939428888550529569689920234465640789109471171569533016208166321732446860056466687539283144290518404907337821512263564256260850731893175283525751865681301748652876877965629817789628657445460231920187094273070382402858052297838568384692659291155152631399916171113297905896052058252333424379046031210073025841123054991636743563442158727838553728215938439936997531384597236941060606859007676563006852379955802808737263986826180056077822102094523812692581801961601094281807709486071183847603035564840748648817684693174403184251678708187781762946861362082141854147819888979636193948768628473269283631368252698749459071225741572282679307632033225726991577297586150022076405446469995096131410684494392531280561955070235447310246967787731937279314466526759017836941711831634969683641944796992302503396227688688716917588335269763979560556430707661190254444125485223741850892055551756010126969027198791156318230079790623484738026562779416286506200198912038645532225003982648414805180244505335393339022246226604192333579760222900021159772190568597485442642702655422743505983849699352257853369595121952272365098320468282054667478195877962640414086685759766292146091768210678977398982076276965434772977594923410768535573905996947397059209903313073423078211633790968911625463040320381955804554053698684392261011593823565707773567134531113408068635470649434298648357613568400167106998902820637247055073615938697268308900621934119209096821108811766605673425165439771281059704260094205957415355165076427830346178429008758385313283362596008343777418195834011861183320933213055218790343982438514080652976427395757967170340054873954288053450418363727488331365713849768379620223192321842082358541672704901605985349410530236134618256859252336330534929850324459524670712651023221080410962030364097140861772446199216838164225805060815302600830485534286035570369442688056620660906458464834604923597733699673349480791265043384472662030103683753222063583818217126824237827974233818973223166938937315159847785653576210480503015057777642788964366684797792051910216688926633933165241950690922672029147921496482546388925228384834296042364658926372864838798452484718385732841409437510475204151888480272905379542315350563602910324447165001451391994751494542914868788315903647032254859071655654281200470452991107904551366310961682004481332660353216960221696848483386675934552388631137431624880434967266615308169938238853436779101004972235010349287342025527945434769848813103994370368368670059923213306666158096251709846079036995486619639433820634958205572327743431563880966491669958090963355650791032833384801177232267001368065295342188184289982953561246021586718616594055785221940289424633870194524640395880434911001318430028122577931179246719461396214682664079793167792699758138886332189421061151724232740649360397975670149621159781603519801082402736532381973261439435858690505806302574279023444732403285194262886500213559465046690927339952969615304273781681180159195183147108482913787489671037276652304639764240296382819650549124027999646575542438304419831239544832321295383046808839274474177537355149898704642319650633664173719934690508514452292562983666966901228925277187622416284093876732639782246210031251442047043564888259255214597517142196691788398595673160920208229974365195021755269022391347918573158845974596692437041286459335244146912698824220325391637014284772383838627028230018595023017984860195013607385975858909197561155871809429750129442795924632803659236852706753600235688236902140775694069837635571997592986342341384368864983211059872904328070680653756841070265578794149638661185616012373460077660868557134644030761188828319690647597102399761767948078564874009515658432020780549556630514564570476623441587962299540682462923838111610811159066785357347100585627484251158805916857548100536756946702348753569463146315739526535903654524379466410404069790065937322206305551329559077674642675171966132926747218139115042102243680511161148202684679187633643328036179365772490303784005956199159998787599887539318767297545255791840209722341439622107024752082649208699027579766688609293970035361485952128637027575785778397848067548942510563607341830355253497826816552509113332775681028103131350277430791012364669689582539079413859313523238527553306080146222098326629271486771195471511765023665889066752687078288200237229630466443239181136439933035648727804230204606773763975382504646653484282425083258071048213414762149148683968818127156131700761757796438752663685724705815151516555804776860232383258234423452280655956637943216167539614440307638850897444889180639571337816391897736053096047121119562637828628401262126560820742008331543298212269925461901672407738557673741998283640934383253434560762227519801825253791941753159238912758231209183339155134144495205303232544048971783542719101412062598970982084124484651000318103222033155591739830674045194648750391340313408780571898973617764502997240456431581775697192624473540045274202452090346169251464936364421304970006969066391220853219842453430868488118547571443874549941322439108984821513937082722497015459891388116603049730831763504309129317281692261329991776134471429264911384477029668722853902751197777341289168065812616078765101780737876134930936985371822603686550123981468929677700123281830033990994609754409905568288933339552441656718993041398453810327094977664661210541164192197056016487564918879158824359160954777767048751395522252456630767425142751720945250917532588937319514330705505646314313739357317689713454417776260845458155984770545263215258762363033811204655147385731638815548135041722363902857195276422636232534887622353886673480865292474774881738007902639581525862173300474551959529325278298328956593932684539034829840604359652057435137309963768542399792751270321641717710001605899112834183412560741856514824476343470138900998704994789111044311026158387915904983011360935908200634156508616012033390033253347707364871439441033240237226854496248533682104117444230709595654729383168503884375979456268428095473968295540013627844901404216129211990880579249164421485279234273578298627457229578252960438925261295818001564868618566795867860395919358704942113669757058905804786861993562170497098627896171332975353551733708020951848197216949759574371276634645439946093304180768250166034255268055538482566910274740544966912339635612084347914161761773689408610350890125619674865104685713424246111878275751571979656954786222376061862196906802157900511715033393130583940504202894617633478629834048056475296942905863372076045471017854668608345170696403917488055391320457480161302736975845184969425699129972681906053325796989905046326390679521372294656161018171334278922344985713936932768311159632061329255597277587811176415733861427856047935981213378300831039227168523524085485459557731759016952333030823270187153503554991745664806240754002115911753720340221120662728676239651477169376852261041675090468121380428967254591498205137610803760837325103185204415723466177504004891790491733908072898500697943818908927698396041311048463707149528035069841160183247352133812368311953612901757816958572268830442645941371770903540757039459873991095128839318373688695436937797994457117915722148711440414213685837672517618045839049423554344195699606648710627308324460279330713185589477921431880996310596966224128723680443184568178372209280226753977754804190913713952659163401155255046592848475264111660501216784566672979851362221969031770098303155945038543479536731337106164275723533861045812822813469867552459012749880182877145931191772450272201397971271985355124190777274849731916586068062036319850283631488959891109133210844906816897015769421492829946596421426998946327785317694025326477383594605382738395720788474746180477657885604244372977853955373430142334270237429604268729574105523425702333126835702850522400796666265107046330204206771018014369549422164879839563010380630643979403644462346435352765652435282293536791074855848018011018301354157687155337976291805064822136696915700301117923754879796043441914959545273300208001978212948586160643055872317961761675729502136801874612483923740627692329146498323641683767057507353181535614151386316996937675407100878590646653973489804009247488211580024160141164771771354750518454941723997554609522874846252679328040498215585025154983529818595300510829649960355130131393809944387775497876185228148322008419221445162780950966886814234958187657682385109762769946129780450822157743574563814416588238366615822868603734066532243775844894444137748902821452305257266235278679254928972347569705994987422887459886017964798416967313355505677289078374513520134050724601503068237613660829583737414817159365549467689781306944913100052796102735891869086072617754157584580272177765115462205236125061273982915637097345491940134775005961680646323782547384231166499184850765948470381532018047420364643061808769409672927693751195589579914390886348720267071716723371460896575404558019894834721890546827459953159715456636670936888940278152706810644230073254496084396753540794327059894738148009238552958412874488350013220018545102496119036475075190147902558636815329633823772370945590944690717215836550870194622593271143384346199041070789983394859214977385898807102965008140415186290709981082879596770719094322577504475796276920066839736225442153973465956379346742787014062277448156204931662769351912034342744773836065448407783732677641668162133445816649568929494987163411621579122164311984762149006119538421672485573492332634519419153161857768126986336591991567965564824400228522082557413496640519609797013977323622456795820311875297286353460915144742620759903347870705827122984594435499800779305666905823173029428944509016515580152483654856268407258789488866366366073244865754205682514707166004058628101411079669510286840287946061763647650845517790751629791984882550582415171917847741967952091000337978859166446799207874977798921705968449067000580206282970641165322960593395632585205569136826179720564890085859384895405174816063151162742887135022532704789639921731095780491059881333460044613499085689155878169564051793708422490337583881700197519810253453384027345214921747390195351444525390200767681557900819238014293453099311097487457392856323205010237978995884684632348313131987445461274737715885252640449027390705780788563361880436084983472893664712190728950296843287057525001737004450504309606621106940942487632270237806984850649212008558834754782596812175317452552442074557216463016912846777626811259297731786390178897075129007313835985081855940254615332824531568303705246282404105110364542088942962228251067635974814756326584004918507838614208168764202473135431956927645326690279479817759380417279235135671232671459912695761535117374136812588595985733291313648484536850323640546690238655853426700598388136328847829548442618932798222973766119017398854208053687815096982931298526246903153470904901788034053547766049975144640561693093215259001584591730345159191814663139147971034213266201580575603373180138160686907059435652375893546296092182845619603870038058446837087119979981912757455372725861545784053926870514835459423281059830386678469437393780012412895578213579412200477800296983626330734251199055011673058397288882768519145910657820806192670782548930197696845861325517894980426166522232106628653604844817639909379932663445933349377099146043099262549051836883284372988599446991903282529148630027406678327323027947347272510964495861876522957833409459656577846567087384189537917426858066007172621917063739204366572826504851510841507058331406587625624534681915291069867426558592094994630396671683531778412788189566630663869180584307555481391350706850974719657240518191057878435315647465370402577759342639244371570666581024982924907816037054530311155036300262822725463269465374641832054321883281717349215445680487179259174100129260400977727443037733311525513421229968562747185368063962250046840076598888092774863710246552689221128196583707408468600925055810371262200317663957285748419615411164723712922695476652411369794823157080354616177873344893427121011316645395357125287716415390697714855995209690701374003835236187820677308304517148678038775863259121692461772853109436019692170933901527585983686476105403182092753471932458317762780813550283398288643975210164291229812394996539996823913136434805255698024523549877978765995533137170205970287764754580351270294023591787542019630807873452552362772911210727816967216173527166053777108436893348384657957225098804687346810466364920307497640406463352505133130576874499798789711105215139078956742560289089671493459378782824285068504331464113760296723954988443470094548755379952457804191219789698333530150579036267787986315962958178779440981449877047188074217373472680334051284478273341974404097546029313092129474408517601561841328945465172322868310624773535439818805928534987260231330482583521443375783298812311788611630342898103762685113394631851679012291304849650110896883943384160974868590731618783529001889610047231134367985549171689147473628466666350493054161036540311740397394077158406801422455784379297616853730293391044213607122685758353706174106369365154653261904015663040541391379933439096583892571781836855301800964427341890827888617084899118092704588489890969813417024376863095018040351890001662170947733306416511988785126998514127142281710163965732380627510401042801192312389913850236281013253019330145642774878636245501348682191426394657477731390086570348962535661055576287486111101115066104943400664216516920795396768903230237734317125924718932352309745191984543354135277596072627241625634399806935023082469601007742159410279026085426721694623095745447652503139490887246407794870100023246022439856957360063058758667987569444100629510676255282779489205731126010931347891250402054623639120689002207046853115538931409013061505705390378841451801576658566383098164630041748217680741151049741149018100660771331531850586485055844990677241824468512383155053186511837500867256872218153630711773175709003208708544755935253473576779682239753179538371585514268778723752867697369184749863505484600586819928948076247751360039357365749403306649715101167247015663869423681192397885348167470756568016271058864619729322132377113290905195664795284129329593756165365631079269789637488436648505942053358367631723780513540154219890384139904404114251570628584381258323359184801011449769146067123548068339048212753244399790847127681034915560813645098747722298107985931337714309760521360103678126477367409212225806371953963732779508154386496338760956227989906666235008895261833384130555770614684636066579394917755352487393212483680536692856356952511063365626707824215055872075874362569893376066452011643846753554711812611817198669333244033372250667154321035423789389790588461475231497077382411334537208885126019448770566659651593261588805462911356658190261093351193604567558856713765828625708546748347822184617756986758101441050110360355675761164135258039964017508415684182408336365754614126557465397125877234075233766889476338522752090274944084573770904744234016761245257962917825807550845839052497409240308084057435653907622005002162147626627348817867384163238586710243650247752102046459366466388842073724979213785216319356111763474659254327495191682570722599550605358114774226305890199712112518809325470301985502074271884235479280217138848392367256037046567706628275089214367140668087801646820703512090103275671702976674054934884694213330373315107531730194732058567943343519091217599945540160356767644053759275992566126590597314762602741436029186336237118130809250893624050811472605932937107263424312795843486721290150386422822382134701855382480350029290197895789189713383335216476560186128434787646290639302383900746178726786130871311755973787175312753457954702750396428236204944788659216699482081569583606749533687074511303559460036885639465533714189174803564372741965767327575104204110832995452025562728208407426584811813233070341231089347558706020245764499585860011571320331506957122796734769276995110971884997952558405422935560542191017862154067553900076091195010683789718550339669185990831035291866549943885770151987936419969866234681451754612851012637822189775343185804407326558477148381904213018466151012649834849705010118833691551725398573189958373889396946665501989095324424059837622354166098914775979100877519990726162001294222962113885428651498875084433904830837850383870690684364420560323140576884543047860669712693147378473811882931312260463638376618298938507751496490500028980365641558808715142336052406775199211756908810419521497050342404394479357097049722155649309682497825224844875651467701803912966886889321377827904741311203686907832488591015543262993149906715111246489604090717644532170548744553864032681259960503033124468013823924222451605411550761060600199088759052568434744786317292318066229588241668121300024082123423668229265985373686444115322937449763485060469317640245718055207684743592070387855207034840711114365580756672860444563338582749325663578967060780808247071906188475380716672246082405133573730729562649885532283229344360098574217124538390067960004738417541493941773659324265837190165017001301807646599333093315918873949155541201378813260582635174009125334834005512251060393498451828075505638981588551441418920452933383601168752599818146479350879261639378148129767715205075444785767004346384926405329704383781239760961253417895890628120658539875156713119848213466746837458709132077743169279487787084368861648629159861470944288612163949838849571565370454097380240915001718814156759767973305230148554218112388109293742263453581291148782558054586235174902880639947403482382317262388555080316419081082364240970480742455355268338664870241301589714829786398728658863846026598808572085467453956782485858033663774364090718206224214552918699775654574670524447738101646914915570503061782664659978628119799406058062591219573486660096725099392502696291482171676990707246420813215424375201294490423475425934601015487963104737978724272579557442952153584986806006673301869889466899755776837408095079802954725886667950093377117768129904179118856136489676006041085549098802576592234559391674568064602603970237888010221640672587508274760058000070019702590041300974704097996231776174375158654032446200130996141515430538856889396341545349433377428673480174464807116726290238311402891362267902135122453815015463576765391898406641426753197551156991423094370640683824653317801458586053564353692433150880358641145606485554838142194482377558594115414440961533236893677824990744891029480830635115852010379434109710822186604215198154290693441125532407658561875531821487106830714284528699912875614511491241975335416159626006948404635689453541113098110372436519719699503984652600060229350040463036632932957527927604638665168085258582523193979715030947832321046750319734723737101532033180976256870137552933198895324758089583751517784463315618407091944745328424431191505492782462803514375640058294711284077812936774170877529305423995340338487514760344063380322199050988446889807695461989664587949920319671095111253298080783793756584373772662366421457062131127181959161070991436713941293452142088870064189666028771035012930243144029958164143807091987247192302738681633894819500021841590427551470597097578012304788438957307962242991918312476470661909955835562569904500893409664786647204727258108126499829616793382469161376845996013728623592471960978019135779532175485833585464221280587572619368502787584825495389391463811225901369210748140202591362765547882113881512388238685223576877797631495529423488215186334113059617158285182598685234340515745813746203414014673213532345906836298050836341417704762083740525493661527798570874343981608916932378228349370468565981548360341595591766886662340352784976413895290030679973190214873189194368798560915040228382002257653045531905248225548534869812281095068160326934721298487309050347778406043273340416725930098851733382347298395441757590119643174645239678869198412347223437757419207160786135323935440567379832683155845380712130996380651870251729364569839765628190971851078772078159842141659090477034294437097910808810219530236854088619440712822904008205249087087500239160984428994614116107194477842383507389991956530760639865414649951392924432940408857732429472470459555880971041971544565351145729766860689426566766778126741052696351100649605833345318169328463949939642617910260574954710530490687605755478959713502297599827215493888839346420827989037012175869036962998655096891924401066421229993489516276521996351619628140275451686308904127468890475517841214303658666943716019676413014391562490035468530149218442767979086667385766693219083394987209817306774947416058473041438001138788046173093559522645312515208675780883501856602221170581104445646327738991453000237667084306291454016568503212184916399790916693990177846411379932729608385008824345401766002230538491492896149249052797850379314926767842193454896683640752553518439237145921675888490417618348572189982112020701588831377853954922538876629414928808946335168074639015548967559279333468487077318204920711884474492438960834564522315855067549181375311109813275914860418305574261184143402218317258672182207042726972668833743528172659478759675524681189778005119170746723348468433831535717863381204332591799525652889335956191468243828398732183238044384244283385133993159932494995723986368950374693115664461714117815183962069770822662123111304374947692826028406687251397479380317700641117033316864452527737524003596687400263957937878152532226252918011159874796844255916685664969225160133850838495167979577806436116348658449620696352663731984321470645281731666866372560278848207227516695100807412421093650962132887596305214797050157976803357284161002572707165222676525484937073382029932983687822008946800043175937369860190356510081446928441021868134845089831989826604350008366921673529682520417803657825185730502886137004783600887580030785153293297315771348820819117110350336189161301828822924605642577100417411885539769220710386024263258623663433325806094943227504907825912776156788620172647277038661684068798815510706689129808329815652039398727602877929070646987013083920076453890069490397181231789254515048444059472595663742637066561995620478279617645866743917175055158087940532457263433807594568821660148392852210400222075856530471885629713498710055589692526155574452312884426104643128351794089135119577187446346459317543594253644867172434071206881483381694189441620942053329996096640118385998619392807865824341131501629158790943575552413552379741214131296818268202596600450608606830254453458137243143603072496824420447079086348724676085205775308693402605039791511720067257977908310200219903430278326508610628439018822700506800334902450418603698570540548899177011501697431862450672800199642429280362009953150043376641153393494828665576830697717828263728944807820834016575778289643741415004483999104278221712396402327310645892970134453667990760995389423627289689474935928117360164961880730777874324622087803686950090805502594663487643508965128443452958449128291063709571693998066691422247051042537322336352623730605337376981258114299087179072998104028835904148854762096814953205570694735901360131080801472639992681878953508422356627208059084962343422601289859751272901992547750520933125470206487556733040377295515100577186436768765815841222066292825761176889828658387417608054781954602374735730469640020824824799990200453469274771905411958554695793768038825302269495501310366361505038509560249119559083450597069832829004969491435056978869748854552771737550509999182280246929713788033346284490827167657278604427093965303737239098071694035792893031913931009772406055026631681544387357103518495017486006887452843986888011662808917297714833596454618708106214194038982416043205656836544792243388046971003171180481790333683462730558656519554535980438363045595050455828553266753625038432852183088467119166898687069743751808064966729226869852244995136677733887433396389899873811666715280080553364233954050022128505005418132414597531621542060554824771279748470205795772860660195010542539851285482446945273712670330963933636302508280219686837358554315829725988522939124369087326846082942559656236598918479938258482344103909902150853430201333878132574223213879189979163388152121421257823835611549772875349051022426163263608132502538960063969293714574585657315092044549068659335151754910801918337863018533030083443004055701421088760988673550934829593852735994307350803901098795974411904189341502260224979405066239769694112026986932734316141346890532907868055313316738237588750967928683924966011839326426152949460267502615237329804410288260914253481875999189089449407950179030271030128831306566875287019162551714522705873680952666198706852707174194002113234384038201404304697736381599301301444920280739339855123713051560992627137460519582981828340626330132166258766185825855102196114858863115092224968843144150529781730101015390572432442466911753844166626828602568425168653727597383166247898779517795974885504727468885309380435983773509882175448093869225885469326217808325327159107612623888290068409495695707590147607365315427747655993142500108227205522771783696458583820029070324803584754881123986850088717198536380217991211844589683761182535553780874275197134656931106710730878804940629141224782409918583548756031199654041276658355526903670307056612930933693897522118696999128391586423584468922115089192165699070824019415206104549641952026077335550674686431107581671574099329190332242218440410720865044615498606230247637967813999714421446063021455818240492118706504430576674207819195523845017798392588897842395972793745727539526368504690266460598827043826649515787355523572710205966364191673226280205930656559822102657724091665517880989292959209823731669769810899527755674641489851888921300289894640864163007777091287301932706107045390363066905992577542201169417112274824293399982370599256961634800013014603784996098701196388384543631565484366452475802280602621023630471251620588446882148511338564876880189884245978435928093275262258040074580622832711595226565343819695191314925100463707604012356788335056240527377647797222395815560403310630388118640269191152622357469946159982372640428635819063326408830986656490878748277084218587580602156632257308777122128170971740266490624216319481973536687787028667421751960583487421591384968994117790976355525581677662872928713075343981787368484314300125585319818781326910245576875018688435281809945321893848039302327600159683839009500513910960709883023457494300464454854258083873397515435374696949752637171578741846471771096199458357905639720765663774660802853376609603092531889487765904110447645332768025705244738785639787268695709713745971520714452314906982127650271436896743206305376199462303649724371871751819352636343927206506066321254763888935785177084758586544163168007223327650579792345407442470060853838910128411675448090097234860513502878708532267539797977867186945753876341826467514767340624114097046024135115486417022535892113870403733596150276342648725578770613784055067410583999875039261010292158439035961839791443671254709738148764426465061120725635036264172826820348841438815174972320911926567237396165978237970584052063803080963029232715287668624027090309738583030742932316746600717943500302967733851834389367993503111076867234643589670780095445404577125614031887983218068775964159865131231186359897958755712247661127176097543404728346336740023155055325887886410874640930389486576034989292967291536694384058254067458559851859770142335860874442931776447368913428548760466853569378528350825728631312017147804822600764396390399181753658526903615228822223532895774625671173494222270452112158844800028284758170818110835459831754452065239780188971369724449837346897631869694971213109595000538097986993762774753435076552938534152828090739964091915667613899582168519019991153306800258324852451594932197827472663394146502208895223770123186943004325791888474327430197375921238332987863559249844126641965125692093148170352509614751376391247289321475880753498587875355094654539932972669760892023007438242806578890709291631987743940973554018780979876398271248050306373667706896117787783140080292241210408027316076328112333688610259674272955191165797772833169614495936973694209024784193939742067170989483267532259986367864562370410621436056182716810859629607348379490088023240552096908138060381725287698379954549412773652935686312033401082384425306834035555558051906917173655584965873777447570530704389828232507462740818823981256813253517721446229425014679421754724143229227681904164566586135946017989923316368013508838189445288839135484362313704458536478264779177863177646077767329644983753276484602425985759594395498899824894785127548419099249025527812694970302818034088487570436923922665741841988378907358579793027466440061286678926115332654345644262218747693418926142750229673322448375865811701680371105026522917832809106972125301399577215524429175582110735664610592307268855109428781884213638337064514706352822296648324629649240293983169235840033994543042526198572734296966489831514327650757046378858412118683883029458444097551085543491901896670704357785950533658948230495776498119011812300920107330655785445971264578985689220362997199986496514714045513172690108320673718860701430091969529150493551195839917311638927132610762690092030513318141731271767275008431718056357258871616083055605754660252740035994773061866363394749266508109348650111687358570416006529202526794344548141886904513806803103119313328823271026849370152302740353692433259667917038947368808218137413046024195041539477575948230309576972176621690488163422273731354179148430541533342071602722241157923237796824539468421504275892433518225064308028227788405784574812771866101086694546162863013294438827067410281986347786137299347417419243637337798183193205884618358521713349883164705860723945952903162197824755044284710592682642391669758527155816715801622338364718996611173109035251918802124932194323665409436553968192840638152113650746829786318418082721624284608273092213438480400954577640504887175731702828409791656933385465538354189534153576661467957933193103271149450851304653149775161871902073614451753696086319835557723123882862749692523883347697749850751176076590947544500150759358663212210266641834991262162021714223288695433237082907410508013938732232370681900445451182380496241620040268333617140414045255015960457174944710111992216494230413642989554157885066464656436972606743136360066284350570276435778249624532812025001520292708851293282750813094823183589549145258965564096489609941590279477959831119509876507997801048952879457705683476173609052084240515165180327524323218179055089476129701729910727336067980368032626111760950317286746972522845773410036720546272009131972925160160245947316701306878607087044290220574274973445486017584860820462156330228337636532725911973742801093788602626378634282668860090924193145334656894003012498923372562921926416156895023204325405186351453961165917831251949559538436225182848836956774320490870357971965634845393191703994050629140193667186840382577790398645241324322517037295921971431430829073938069138917360455094830187419297819582929829080889442634316243739135787426046407419571783104787127874995017636814880807237505602155195613796490831662925379315582661257334567869467451916552944083623764875998073159577060377057325679053710828494139209585361718741407276582058934150379903468725918608934483201721924573893605143780348014227274922391446967591374943623961541359585433648331569526242741098384741080471681050213742377204482592184850658590691171814186401331232901865677295934850210878027650784301032790480903797345441565094766091234107288920830001030819196790889373685479833391662889389885590021112383779459493757031703741464745461386274998665739543783953361494633959584347160690570554647914742218545704302569680875357278403404421019279539248587999536831449105822322338775322383962651393799027090958412019077795250631686576463305975801505002648802562150357095853910493736328513940384966258427205563328538405688701264051972564978940647938428971473021015618101607998738173215128051419981896029208295354616499989737320090118199691614123656271979378058942905876564722982770951771744322567350633432974531626269639712942908892751837603440781167193670224487927526927141714669930497357463706995928344181894479555875706369675028243899936795388687246057461679335529239033426923789333682368664904943989229219884773648313717313310497859683676663996374220942729346862439367982486058261293219357426005663360167130196042156887490686776523595081447826062713243753349538638883711979093767408906749860317923855081290924003852231528377607028639198025922218505951192811329836480935910295670620097546448984903731549095879964574257751515833394541865885796042196734564153146490545426254929650459840883934466851851727122450428114812373274218738768815586142557928576722579880570643499511708905772509055253091130883098954709006440029420369364894024217871175818937841089048009055500850971591196606298838307283169148626991893383389404961541714608704763583709382134748918121628359191504642313412809030001926973780539133893712943766310116031869571384143471149305973575498599708308850487094205791181891994756487107985119237045001061317507640244269244491614184485224414986822139806532768653233772044001463661508516332988198313087223319007023995647755786452518458382484700534657885622307428509833074685351917814337581492868717703151314120018918736627129074498584338300120752136812254368298482463920418975054366469236721827059201714479002149926458801010639511802103138717137866329207176253366546508014398737403865655970501726898765411284240217563338322594826614829989405565544388809118804038888800661451968082282131423019953848727729969377088031346955083869695393699623237189332795291403569710504011906458825171595859582981252263101521491414111095509176414794109170749586475903356683998667722804153614516569752612283269951704938888296811392083756919996754858071789544244891464180637543716622301300134104704466647996301294400709505013901105932158252911766184912707731834915951809620091488437868801591275337451756060603332453146538004277870852265943397096427282689870287082433868787517458071005792949459789116579019043813399356080663836202987799364202589427791457687865974934094338846022283608280266459893642816873467605422908428412152700970200396424413940122832885505931390221015671572942687649232986834966898262522005591053939301140488273594717763982060790734648385322100899301250508133487467144160992933845529914088660805992354773783775668839606467237691321390075179423840379198971153041408766274935240299956702250960433915114556474100800133855531330447090671910529421836817006420979242918115087629115635554736346875370641693502421779393699857968259774685514443919021433354354937725622391578743580469599041936870450243658962346176474625892069721644307726672256962253322454810168066968659232594683427566645983247800580432847530271696658231188838080514880716084959405358136575422452212955701065088497601850284875186758413324765109969448893437626267098461144864011621723872123016734431791217006967256221432162294818518367856588652268470051911266691393365843459048726124868438000191695476872640606165029769445516125466852609622684018637003884710239809398244686351233034313792252668545004511384375966946350860772610837925686851385907170661777352849755092810135057637132668168088949762098476462337830478244940175264438452715636410056541971733808158840380894176055835609558952078797679895385567367063647347618948397600605508731581952387531971488971520782267953137447481708008793930174702198148042611688776928776084415191907623141026591815217365850984866413905530252908247575006735341745166564628496614539333389968533254695183904793523666919804176513467875258806442105537741705733894366709850013368690509316413774929788937732629742365407966000306974146459689897357682782646957753693067289434944526617081648380606668456291530890710091098570126399653805133830065712964521749154456934031579036279131485776698921612821238059022521567857166644802439517031315135136010682532188318185748200132871775926752845975463414838878724356775279809887748576296688253820336564487049515724316459416766125848572454501800018009386381501693778257056968835310656268547489638595424260561933500735786469429630123397514961277520853831607413159339322038592205198784139801510885527782223295137480334125167226480543655798263659786606554485102029485682353154113790558362945740264017716428827427824956858287497026748101361151777243616816444968111842399511182601052057978954908924141231300819348692883363063613899841827634297452028160792878780349296888642809325710515213345548926600959411359276256561354101273410315212255145220644688663352010370783027759137918713341990443201267081622107376508483072387799307091524287483149781107974279202295278422324596498747762443207060919733560938473798411430950889972532790602683715759412852798837945603687349459725778620279566914658981159067559185242268876332419841543623354947140560287916616925031519495454405466359274673896047527272446462370041529025371045822733892895957691911281882842795701288287536058885340114573869874682012453713028788688909152822789231851203151648371922853748445034825106147387030038744105286307611014526808886966385247958728066390635151139786618898163078346919309225975637379369644150770593114876951496153635845975567381566042073650587171033031868907968579499693278084990300962519089334511910636280639418100070668793871429221561796205323970558807855200187871322046282835976153426301820343518068303001531590016956248799370996925546136531608694854560478153674730332979757733023205658862966386033006895724060832032312513093953105776696751884481564391495707147340170508533885215098003738254101262008617311851786107335811249049921377910816429219742583100478299851293532638383056207218087821730449775449438787944053116962970667076982918736969818734777323789464043514996283977137458468048361372571425320059107990927596642424743363728947132577344887349485042315258918299130442696243648883713831916688422160890512236281693115454052377631944306274837441865907991905871160942664248837264484662385881687770488057351739216351307462183345828615998639104690899273720154433430941479350861385350074255175241300244553438472132816951147571399136662427689400424286699386762746172327254376465850914071729070324508885376253722200920934633830306151423326989398645648161702467608195874325162679582619528005762312219762248053293163626045678206415582686637415946015203018585127810508047628296720436800008297390402477401548635792977243806616248363590060514547385727292577455654213861797372067763178572589991875670133328790120203754031803809762380728153461194423640755425753136977161763900783814353341313858357363773859305215101576913521198708059581123423535491202376731526887475151410507414876425859258987840779367270110483774184432729615661261946024840650420090534553567754897701848445898049445758652402712843911568625692124118808625420065865885693189694549227190481452467998823388627950349742221552034543108371184089366496810666131111271853267888079701163340336622114040183376228725171016097029820380879528638355402930356780432338947723542268110710243113135731902398914520177673640565445538954126571115137773504379600875050091165407037012754634043714969244553842270463363272592004590592079998449241289813257466982959608448559598575398957548518213837380599741538034432354060611256704184800614741775782254902720019241399760944914771318556357856191989078794672058344420467421816308593151270549875918247404380528005734146357431492208889668101510162712242542223430025261744569908153649103518570467968682889303836699932287455307239244561800380565727185047274982978487241025606198602801348746866776832494792424535817181548690024141149936298886345125344899557556329824464298396077270920235589710407979561101966972534710405243071236862111316503253093446093126043023785120805587846880664315789712945911493198855917120125045961450717583751909817508356291064537912204758078407988456007655474573593623837500049842607316181644157301528576488426847505773153847958682450285024800080008743523401835364460178640227186533654596039689171953140250563654457672810888530734906207895722090697154778094768997141539060375097433739396630896209385404773259716822707833891518961460175351723611515397355582341277783781304983955551279395914463474218354752605443721174107625479431294423608829237529564740439983930032068584108578473845932834969747342017662670578328115803608517326950518956506722098742678194350800833415695610430767457539371772443586206857002195591451638102395391443839844305939395449529838082124882243729365244219748978325284484225416422842834923359213466503535876475724545457251532844473096141693087060154748244866033444668443667992461536296181303637087913097932479264276654283816458685105412761133285910109482332762812748659478973511359731009317407509829482151475838084102303752778401192339182540799908833827009182926942234075871860039260971091670549266498477863948837313999346007881991931060618389120820969222877397271309163164004471131952703221685312516149220740951753232743852042206158330593207008003956370039681006122155440186350059210562106606921354671726242956792045272019679612287836239236397237621839984132180243753326993748085604722768240034477163538918444940021892046822362998042035520940955593597012979639611679359272273755474469893354631677683389197871948339515651957020223049584742401783427748926769808362411493444757694887690385098383406297461590004627314545027050309517394008696329061197847666833939762466303619106232627344926719204755046389448537339152619551481492686610152769723750657509099477897336577181732786833160099368155833638885925322218436275754414932837826506191609858623920097001182767703366288523117709785443497982577796212066383345144489147644422381414918210963849386986316230509515128199389825371939795335457762840840026195861254940029732989900659763585040974074737744993677967278201760401983816524216693649843493832150543699446238575896065531161505376206115946668665117759256846398078686314819922125023321063710531285307786354572056592281023199920371041940432354037463261029150730215283096042092744075001423286869109812828949231734143462704070001683869042603085867571175422715651216719655243164245104639203328169908674034327829803292700944947483737652888747940557924664750944339316602986629145492405534878246328980973224077129449651617082212263202485544680859614271388393657512365894901998581111692845605727084912497094732657970622643386209343383840308856226923040633670971530773429371234264944238737856852713187750178365207119663567340064163539811407008071853471310381300235531816167280775920785591070058431756169191351975623579045355321317057914312651729868618934889318531671617292692345039798620958911611640578914605748976551166247392660160171653342296522288604942528856209421093639356698092181762393741477254781017921967415963099409066823202839150024080563403035838945846037253374021093405510186857310229113512836492360100424502685953319496671949934037289709937815042294724799837929718474077007876510684188964797565479635049708575854200958262046969281456434010705676095282722035783103745741543888279315729837379244779582114106223639321997105678932220685525082840690199000298385521718798104496783907949104802641573300769479292631468243119096314631391670352517325059087866445791649106406584838438683240220384338276513521515452707097438753420180214777319389489579170717464940527932516579373798685388383585101105585436979455534728530108691351993561212617700587891885356679405036526211881879984680948491701599618782596165638922056824207657260764318473669105702301940726158965722188783256346605442658444443826659436110085246510657894233454110609238649346017000957257375118867728248356140198579998050077390731339575711996702401525256407656991680946791130518524627230332093869787246338633923207220183250745807263159030787026300406027660998455686703252943661936169243244356176401938457478697107781125445200421158329564874453063340322373953017028581631366809903503276689360711030885122574362097225167978124903888778305622597042100011546205634440056010673850489148910148458588001226022304146917834646257568708577636770961652342922993203803276665625426854023698133588370532391347204735880729008095450257613168614278296552744836771422870393967535155073277174131217339084631632884443786748593238235735025596510334059456171706704570940025791151097611133024666280330165743164314507138913861204318561554522257799937863504604649910060206499186567102454935026975071880575122411698314064612391160132868815822650046075094478244031091566497062861581722976516232230141731470344910121963788371462000766387779629076450502329741214211638516568069541726289834938887916654121440540856244281511720737875150469884934104513759029800413770144260746148312807058986539428428623458863632258150455252876950970519840138070703998635056714920518802332076132909578968866677679036797717182667474902287064663427774759785834420527037377521126948862297988237425939650226266063322229049513117949097260305614862187267660070289876233653266869507601299497338515702013654871137660008384362689748402598104764230764600757345608424772528460422952519467551543076997446289693437682849058990678239555420900245286571462337130079526340665323070615243827663888450182922969879783600089279916633135704366558207771887353189594865259936468881306170519171811881868010957337293867666888287836889998109486562070105282761166034605063842691760687989382913786692524015859476759287151319714679297960822394152537829680361897795476243135073700124956086430082525994867688285686991356748174324037189463473379690718393048817996921454063114750123992827287081195722134000648812713522374794035855338926108908743125250503472939081434918538175416472325360998439657625706385890787235043081318089893152397199582540309820679817659683229536035831186597468213260075413182635071687015728707139665598661944162182445009301298802626600495664911331849182992536875914287641946289716854265727185867432353574128511723746867962920117037999350680128607156794525826166909803294385888168274167678603609095784674106867480460729833477057924362779070540168134065174901893345351700912355249507428251098867471674730612350352420481540963170547786109527046046580302029415104667840954034205277272131493859779001724175819938751865132868019933424376489904672040251397884988636721946145496519555592432588556840694915494845974967683171340970579607507361398381448377525129209596094658790203683672370314674159567749233457243166459313606025396478360927685921135306372099934313794652377065992150281187877707422241382815040623310954760165041356139784905665344020895181781964019278702751790426621547846002146740601078193493813979068510310432191298993886291582911094935398109221665924929970246190800607249927539269856541335056650837249875677234781312440939749379525527185420096646452220844712016900746742440914446356572254490542398328301746019589318398174694391985993741962224222382206097182900745227717879383054739752273647861576504965522153731104524722237435194284273956928328456315275602029848847021363729095113706645217608547022672406040714228168847819525634868965569799917773597392643235038700185383623990370930650993277318792425860517746863430190306918146830495723978815798031021941177237696040162398744883059272121571279541141583002352407409406382120228579976176488903859391262652951331540188005107449168273836425587845231519236740582280184093138073096712584033169248385065707418225658537087472337491073973657642831024436876906207238058649154832574779071753897317443464161487410479432843002743176890441214544655955637129114657271515943889977592959797080629051387682433168077697842533812821554640605213365631159244672572739242076487232810228014074981030090855581132762851420737400527914562468727091210739334376643661864817279109091445712359067588409486112152019880231960128231853649773229333396022327187725205021793068944707438508317820403495398186513385365683276599615836964298130907409192393254226631185565988646713115685208414496854751965904393208402249649656483195055875570206697360985390453297737252215005215089448945768270183897051944267083025535014312782287180960220050821195964271094028483572843733290918621865443077029468998272424000113029270425988004056829426695331831637406339040300442671551309203107405528310209863755051703887926789060530206330482212773173997816117832055886309661223218721764767349862973219768535773035028909912882972563840236214630784083902444635730494529074841767323831630533611464005721116035452820291525517790789921502406365212234112062184912550849974431800721736919482306891154882556465944899405053695120445283319165806134322969335122959563920297765329745998597621483893899151537114979738259699293661923095184266360078512175134913979973952371395274335828102655149280045140746876596201138180543471306293456269670927621691652110897714077073541171253926852254185417427663694535360846268719517509335961114870174151684274525891461408932094368175292431530516708609113962394212521529765621234261385838430766583671847187889771737946201425450801730879371797727220753266406221714724254021745025037326615030292814969514524852573068614189321380298714101837754486668486889589979458315243516664188091411197891289949947614842707232953810603473027286378677004457267793257459425759860201848580234833460414674614454188578294594556833848597981494582696139352267133102871146184208822365852282285941524778972993265761475025743415930498651627284471704086843365025022187946804263772467165250099541477849658149502820661931770227654661101978882986222070041200622069875935588432650499091110233481687069253647596955962054761765008657202611133470811303539623390450123470467050916204260843534675662485197602067626150938160023160428049993775073383114944388892953759960256109253867382689867889648985471953257797468006426239420934762482567696302566672636526384049162922863823295430125222531395161954358301418383353593544929468561955983697054938263453286458004318107652536392348207372633200033008512793047293440704190813029688847631631576078155278339739039376422570860068962299777430438008687532756763243479609722105672331874006214663426183670769641773089720610262411964967589463003985398374213150064549501147989429282359301870931876059829978934411664135634718621508121300962239322231828838381282303250708030107185345980158454964693295513289932400535880926829208897179070159226673307541744039800520732908915189414129453174864682891178147716107287724834621083544837567295412412997772160636546279846355345452651562012595109788615138319276743604187378404588849610282691183925342635046199220177123289231118534873661818447119841640162982083403071016063258199353649112138636257767987130701444578095987545255288460647845805427074857015428904701425128628435824804764311869412235763759645706075466743410205216196920932109563598032909611966275555148853595528295134986423632517798719579912662235289179130925702652385278189535482856917700940960621889148486209761474775904711230185348411706117308584017671397057502298750054434689852619583006119702219150725006919373959164302333750226855473685996296714716797548563619534852710972255959084469577205735484970596410864332507771308339190872853739601353510214871284248731634499434217119339774535288842772990454849895470140554595120462902505577796899632334539801504036279152941604138946173751967601195420601747424605092422814695278467185993219517885282059437011005712438827502002019996262919453233679206716588033020410689170950765419812465903166090707029107941857228885807866490469260616138766790100944275486325582748944705589049840511589350442623667591349178078173847411274630226431688460735728434562444210109804035165721781547213922978752753374215842880603598884447374826928372507698932222123525990535642662331304216362090145497296430615556445049222240997267584993003476466365913718292263985839101355125612083852052210361858783188268792507407643354463322560088802188480041203522260381627801576208847551121524344074471210297906677707958030788368314633086029320825450925311539734048715213550297164116662435700896347761171952065617025631273629848768195504992484078613036691061848481576105801222989259639895700677422436126354733820106599985115226476056911627180891931861984984723227616783487060577804824898882559030965474357276094460356940058040326853918358999386201323238733865816645889195572437271157633984966399771758550646396351481792445536316905146575561258436491302550212781360590630771631056333283781940737508204010075824253301693559541057225732657403031528189912601493561193634676203665384112924969384312644632163911159585078881858469850572795158939633785028512106115403198674848993248168331771192898324486659093681499658793960769361895844512761837281569659428288866184326181900086060767350136717168201811687365096186416766188451157737120560210475023741342876671849989675471336376346207555019642341106271687475070580286659566816899643547168671927177425741815789879673489493471108280038576614812486063280748722568208289912273792253117302714224203117707623370892556393472974974819087134820085142585269719720816574079863884969006484472501933222958277345603408613598286109853549357666094121242123367989976100263374139017070440801844723757752986495450529050121395565632448743158245046748564363235581669482538462484222754872165907853095602021926003739770961832035618213951079464449550024387762887983477895166708054771458662456023793707965458717557565492900647361205618544838412354073786567879705012808767526991176391402509000852216651168247116762920186183106969797566911663152476956947670639288257357015794496013699913599928973859045509844624361237180714329947694062960673672288402373057827912926156102563755203181037057071471524719520176275174083197589011131392411577772387947683126791647189614504768768365672218898191263323250474293586116669607935407766337380145244151446441358130018453618773364915763895837040158654888540926945669831293219412585760233532002363070339614916226869690980446101843243257317504449848310822388985160265701788671843383765766697663362641949826513085815602109041712714464155710584841794366686153602421737296920919355005378403808720421430037456221660946936603873384771876711323698953207613068941487024544607264619572278150706939551651777115151013754344680897299706319971202170539426286895480410329979158608643560153401644224566642545815313016175026077874228681333329334768036635154091222261229362074503846272517600215038464586839214895110610374603287065424365678944965016489316908663107440136364057620757221206738454110249328264932997409631512944622804441101780873421806259981524957272479559190026530202769460754348369702915339684171136278337553161564755373446530361314832756584780124702670349727603800955817617630335213555256216006830168967215686624810032028665174858597710932316634772743689092736892012842062204412836116902165065414375597070189117680918388020795548674765425143935421915038585178789637791815812025125688944361235892914157069167012209961724793171851932644089746217171483954863647210945744622756225429459318051333569943203588625980263304288000088458687564394550879159194262378084669784506971169797821023794357113082783707329224582187376909515443277613531309921030899391264431773173664250168639893832402489377081309416671820975859927865122905022332175100372904259675944559237876599327872391372690612710837496071843859148627320455847663174889495495191035957555642871927645756492114388281212843246348488754401799484402716631114910286477866060910789066431464095737485256304297192874666231172224205060864183971911717943633553851919102091495810352770148015447102888001217600888795120764552873259670065796728290453735718990160979543866571382987955338673610436832756448928021952517887348057639422525524978618340939472646319772049444943887521711103310037944199365146091415967102544473592642380105224635369522919342759035868383832611411430312138376071357734518466405813158285002822705012005571339624849964113441615419377933435288205737064720836103285106742944564618557130382171152803249937344978078239258581611602937647618599153921582198525105586177877781185296628165895412207692956102316833047817275459101472672113286741741318435303457495625653011142838644653337970596700584918348316177928688145679957237112034806051854648061357755442002739131985242962966803585404649575051327142181456655413909582216889882621455793581028633222317763223918695387534989007860761701961552962092458256064566245548434746589136039508973891266506676925307437207262222165287283094179412346506025758638793483344937354838320359063404816828586098808880767998105985288213360629428753871983247334347544980431036036608493737204928166812817269762803201052926718292787910754153208305309926030569625733176765642065815762673115466755758695537238122598032357774703604689837141055958248259780625313751134956327976843982506336799268191329734128336402804285570495456040423619458995812411674007758819973700263854236226436691119302802737438022008784944567058444115425941053039492374753210183587169260024357397504302190583823783999808021832274117897063168623020672693430300544185571378285525892170710653712352641113431985735655048946124890394181091920248650589859293847841084482744734696365440137706905893710274790322693209864384037662894103282782550510860044930198746626758595077161162847587544899585016928287365604099397643314218988411208086764084549431982116301401330097034386793545989621135184967307085498068200123950307510023292642601048133279502535350417744057296622030237404380192931449049370093488688538875315474595756545450208362377374859997438433176942751232079628413434739937293460534909941451109851913821904037933863995200476078336154524479313311563837827890973118319022310669631267497030751335031708867237085141645730117014371971430336363353650260081538267132542667468425513290957692834975855452833809256675375861722724244502504572685507373552631191755871566074200727554622689482956850005751880813194345431763113677626487965388808795364702022514195970766516841955824504588213553145198654632225782539196611790271754557798086628918413852734771562273518153966858222939954615189748805223557300303251611023721144873583922452799001764963218380388995753433306093188545610579471612581416228691712577248179554158269859324534188124358096757111059737049668957555265696459691092044651820025491900871187095884693432735305976866941021812356756612527229744022039513915217446444385094972146397725027883162832151813865707665231108394884644109265528609983340049428021612523135209688083605922609411408347951406534533582805640527418697190309698394655449203109389358978217181361408157558202866551000784713171219971413477961061248289303950543818604720999521165745078897307334605848275193581937370022733600585033156889367914346199824574463539693504229201635733430042329806279354439627193370001969708249148405713031125688951432318682895690441312648858235020993911834380887524675812332313928790979260780236599725144294779468219610518673048391842428013850659779890173299213636280320427530873723760304511419945909816604095697789447760527823671400692155080451061514004404071195113246272736979311401219034195171410556433706382806059572858815112414267690158738816229533235721595953704240874417791154686815488452622805236044584378386542154539687628001934440387783322831196849084141228714466376108117634525575503350188718809347378868497794224938269958886019393297094265392719122154924830603581376293899283146948875227706860647772169867984052311643805831000945199360370754182511073242988731332267174342029231361977154934394968411950750188592116233113396663390295277455380892798755812962060529570511081550602990648440906209374000449363643198525765337742813856070516243712463835038876656256238491281713470916880331366271548940921849455732050740131594732679348169901194924978655304199670823309937886051889175363864556228215956139824081092891061525553099386248747505625455421202320020691802179466450540272918853835056487722144822102167724512023328464521577045583019338614721013202473249705918172684722362661478021882522447070898258364967469163951930135706526096443286816723092540337875017539799487253275512064854778495348191829012455581026803128790093947145163953830084017941838610327771840353480352707051799817167641789583443733388056649956222343260501746549230942178520426305105660906887691393061333674461014939768045666711870204387989036770011854540208144729401197888812345129026049763706046876113972568663603419043727754490034556411661878550504753725291497786693822573671147991535418172296318419273783249778619479044912699448842430114705505840750554661326423038452117018917878977758279727887196844299095000724214078293993567538169035495566021313530600448619178103203374810844955680746105124567251178760201129646907678137937453748749892023687130942039538729976301643719521460275472323298652712606546932299767144826722735786835828717599391713523010565787570451570430624545311435574326714812808760486955100512989850234126348923271878824188906784752018067036293645557319640424619446531234593548288712255097176766455990285961649205671438821957280797602936375437648484303698309330771933987756434328288750526608520788138096353691507977415362200215813969369646527327282679513725759729230862984750078929583668488768497276954814667719739687126472259337888194478983045303173722620263164152404228039231146765384792790067889938461148568075673101275248278383739098617782950323014915897069435956779163363264674465424206103836463534089942432663590500749199123901218488594649447232438225157074121726825969309581070539216392950268761165360473000710580793832519796785833373793378044272857616749308230026133491516281330798638724781242443579515880332883982134557249792001185063137079712938414670917794062162966613386105899916032835577836642569331696784810818271657104402920276541863479889403707763201266258639970992304453165736607972470943339187103052140382647129856902453742247925906256982404732495811333845975454158414359292605653025016849092654542755413501592645657553519201135028924237307125731915584119786141524638659964692966937258794044089857846079362106022732390945653489750465811739352718380067428396736545500162713582915859438472808131100114227142149180342446443729055841604717278894029096396804597043665741585056733977646772586913924286907827753793516239250998995258314814742689007221778564957821135261891799650850984951204376968066880181697362614883986485724021855067957324370598665906038674293038197639721300717638874356678932159961969920743485322646015316019402444683801955737953398068076076468413572828938698952610780257313373130921869168253179574588633439982973621829510358335502302717789651398519743391102362558258910863865811949053238747868298648712339592661717945635491244655586235456414365829414766871339780081255424503067460728188325077089040196495332295572538603143815888999615617183972016743933891706728415590276754435286496270851577969916787781878975668119887558913884512382508174226899449297738220393357324348002723192997517971741375852112909246229447636434806325323500520537273018870053053268579481403836391940838628700003384587740969756747489152616647130462273217740131196156829147806993751893035744569382224039518040180348619437892617238919660787398616811383910498975754142436832766490218316249967963638270224761854595157737473585406919341992353312180540850434771879834826883638393561365994737167992387886849024696868554362706628020867179922755129469900626278751809247888315928597076608801732292785696257624164428815415009306419306189957279616886625526302937742285978655748315497641816439596671468723860578704067741108481664073097292478019955979633429847478207649509717869989993674269964559499793346240348446129078058469211642364895416516771201370819037116608845490219813931103296682648243328423255451863069654852610115105641328105103705184128141692233982996561500856497877642462643625702510896237956634218248476435567983861059700500216009405286357125928877075999050500572843106498778921244053760862909243322017926245632464436271802378978598241699984185601046119215727533545209807435201784519987860346219669680411185339432363373348553694827951601111160746409995906178048218322118398281894861365940803253075308481591452151579878702036616124332639198532726780959044367278367019869554994152047483607621522437905623336278747084349149474696694801735285697922239140656580922275252654025101082934125040549921500283698157616486466788905046033431600137003023181808633604431315078187646956681535625820622204724998286628805367143257125388117342371804309699745371599167856686023941056096201195944114029888785438651434670712906141264530013308544058474902104370932210354001064276942768748985838861277328108581665192026078714007546638746770260342035646881257039778204303210534604486342628245148660190349417365746063380820850047488995489163021229556289150928270243624352252665273944745668742127519187588982474519611867572814511487642851110377487362673491510324753661217292500730746135574265413293218965157001070179582710043252501134427221762337788916015345210839206234758079769976957709096841787079056775555228019949099787185318892327539150429387942272013461192516485865361487755744183668485056324800873670922943970567537053795824654752543401701590718835197662080294336418958075081862537031342110807756384542448000855202153168568913905796799098599103536986261917925528941845211575731139216093785033238703230298947030605706039189814480806634717936530835783371800280034592869063853821339078883688710751737611074759676448321523490211759319458816530590312569852879950502701353994613269290312432579278217817725007485502260576227055179770029340474641876236810307869268982156587500010771234931599404354777539004221277108828434710975265264003109869543470570826464460306871876386461560622396966994880622063235813083242152925248167392164907765199973847617163766030231334112125367452277867034510338036483352668425901940117455845156604233728227869504622985922570849221733581672445805890006147608311065952786479634881422362822549452654076720120653703658626789745678810004357505190455966930805807298811627368470616047578303384902746668208410871098108790668137392354758488933050244383292183479520767970707482594148746486078783695223889157798674438366536034910373765263806094443888260711063886714641358826200262821514694333888461166319662566519648923745557994420437455721847187806214415889907910719664364439981138946646944519730650562661564242825740953775735837389209876677323233896402187935710062483223203557674637544875312871162602058353897523220615095696771273123806156838647444964717634166358771101355881756628023910683718307536432602503745823635208528780929981879203133257330960717947414169092174197566566497399481232390658162914794028476281960985361181668354609867664451952270796165973940214360215670704117686508588016040283175401664845887510421705630045631411006018709403230753396343152218965517548787148030452047363962039975272113790855437407978563090959770465418547684131961879781613575927723056643224519520677410962687334081996931557636599695343342446330303584584360744471531250525169788802343064751041782203637315960997251980285534658633658273552660695261659620138656732350566736993800800179533375850773474868056074389047012658709540688306700363474998788435265097395187084712892877289766608230452115396922584957673499719420005279396776831365629077136099704959763746111475923674855046774983803327948429733414471823914785876994538827638636191922282798035133510603821335618449122266663917790029371393943109936976424086967893470386739413683587829759392611445081482707619505385327268784826022548819375757170098644855923362038061550735972351669420880997296779430272097826606974260925980935017112030173014311702829818680479813640121067679675235732650675857947559395245213740261924306579247591830487128298037463240205879680520554605990390323582246016816129938560199571124182577974474788342415471540372093230939092360497216968455158573340659852244460763631677227550326922996132996148216904121733260577822467991518817591883985356151209019819178021881777764514689454908840235941830399451583468514383305310648012922822701315715795625718673089675763980854917002389668874818341222636113001856147587036224016463369683556133576324617580707765015867083684004328566064539848755473822049295019049300584836763617047293732044921747274708725792536795682642548532794393757515842902421346002115115844810962717042246935859046230319725809873917045943835922427980176780408163471045871305412494839243942293464872289877356562461047040471900304255972472689300523531053308436734868924101781891756556930564780380975635088242650203285085009461053298569899280367962219717856541555043413064836691261808187381935427747257824233648463953494088978899261307661480431792113546358966139743753872677270903073905856653036262859910647191196085709116467406857535193410426303827357783630770072607476381642730827930599500425460881897110333095126318019267741354275131065714154153802232637666604592096812482583202116207104255905778324154005161653221337063755553363494418993659031112378208469922039711690174974133214223567843430184808950503157396523116974461792400135606779952666535127756495944160160321610518006593083355984630763226723218425194057799285487016888774267456809997953505525272965274783889452309773811318380454172778841728529692521694566555099663228388583275928017083833798924218886191324417247826469310466421107858372101189564182079147083561115081384756035984884698925775968580089096759948699383032876984576043895454378179224072355419149844657383266629004289282121403833378066795256023154402487741389943892691220182781512498314054959021958307988879913158666783358525480436224234650635925231559564218379119082593552946543573752961510743952359944129988539970171136052385366231787662417853699687842887719902092604518848734951118781410453156817354256258243374114057083720033109095987345613858808176830370052877228493306394946490962349064453783896602917494179467385907694973256599692434231096290314035397314145187139455502482820567690668214431347706498848513684477435211891242765609235773866088139628588066684356065980187548932595915273279213312058179809194544514726257128809347656362870015720182283336852751317333449161815209901952432337913683283950892001785944762729765424390699516713732895714876080427238394455250762018287393504541629686027385712081275694567930730973197403694643799126625632192401475930527484831100191705882110472741510122834395125709950899734547574411915490359767592784217239563090146976703636423829444521967588619086666705612579813793547584273602759569665876901797187643847751131035891979587790802423260850818419132054980278562015552920040115406725526348267123980123324923361002794414976897689946714794514715041208091346859719797886584088837504302727230704971986937229718438945705801132429171213270606508853733488731740002291506978743110455360248280981796960381772578996553658053941693302142953420278364654524895058053842412930204486768399131469537161871343583399266263664650753217648563702547129804836554294147673964787115920121884230312156050602101255043450143080489594450261253567496849377266181105896342652530584754352784840438325354815377321757941888181196273434739214977422655824282783558559564185821826520445358318136833867407931787682458230117555796081541374917045809316976837717024763788867840293502396231462909425688375281599344574121741827776886679423273337234278025248717198316147530760633448192222238101936712251866199945931593853645834541060912424941568357337254063600337885324204408907234494217952696563776280611517610418462431318406362902524798261114372012646082177574842866868271485602026748291681944575301991275639130534619599835176231950849462907260436557328055895157399536485164944964367336912734292961740664973977801006993829338216806799010039872341468315926992818863143594353718470942490205125868790973234431240415367459898328380825218384107511348778179935571742775953014573678656098333018567963371480767234744925661216696505545567984473415701325480839074574679623849032004843948105020418079374775776419081891700952017174093664630139530680095256960924019998860067937409045662308725252112400296825798023025476232759813924927213210081414034376778115622584988928856788419048185378438890075938721830928696708969497114860258943849863535137411159245073497070322629049952634132882009251843590833940678973925397622208110101204626423691739475526150206392756508016512974267112644964897274918906506987596116469664558858809524238628003544013185103091483058839005484801266172774909872291505537895112445351518975797038722468018354228506206413294565392059022234567160769298416707592322036835753528713690047771945788381618036584063774396250225831807613521118264312350953098981856057414392237978252204714782378134325890371414618808801480240988761860652229087174811964967876071077216030987171393342734591491544804273410746427311113716820803324077738170528181110289399182751469931865028252784776504479766554112669162866026730048078714129360247979408542618417554357908229128836864321761973160270879850208091310846183108191732266415867210745568325146415371932618509061740441147900723490174798666960332201492717687389072148228253712050823583679600454053202884503378506394470693458676988062171683670100145196656237677196278795570863326038079097100467073644437409430304604195049445166166982532735885561479901980468357090571810847254134507420892346754567904732003573871370688316457345185336054228679457759856279370442257687253888472003023515417189656657128703763720825839512563081175506863398678523270196116060744606882648497838444087408881369155305632564729907152384393954661511774068204824395558423825214080596952345623988800688405535750477713804329400106527618572175806980353275472674583301900437794310336368042771197324545599263842815888194400556198502423696255396613944048480541117617187429501862699305279894880942330024455203898654297980533162005696723588472227322957262944896928086520492272940332887881285727749626093013146700002436446647873350852678101887040201184524736467372758448893246814376949452072738322789318634521851465566895437553652810140597933708404375077162421845085269672821708506848381973627916298546196007055769093344926732383791164393369674950100881303086674029201925815291179804602755659085401931960668200057623035057941483175643153639404082956301567455694432772346648330867669822421513229023131732719178995389736872492533533308488524587291095415809187172896396811030895566630074760116999718368177024097785520800417192625410456624426427641765651244955596342465512278630647026606635625703935366468956796848657483327844431465933465750227141385046824087282059058123510688405062751436540276923149896856978781195134129054047111528328230688819467422370311096103334292340146944999783339213326192972518603293218677232077785737592892657750347029768437240836752550231978559278833446088921391099248850554593749873068906675301534204560947838723016914061426221409218746320299408298244070018969801468301281746606403797122007703539467578774731406821048980654694341859007764101860182330995408233366806967348249855905235718844705073369047968852945208703767785440922858796130685628478799755754228719777946008326760465524123656930232758996844739538370595574420962632116249145116873585579607348109906395223484590525289901908836738278670390537282321743190961170307816083905617839019165781520780121558655284395174294689700592059966079026951769180076692670235494405169077419087906241035210256376545875644108410514344756064863204499834213122795461448721113398132171637529250773903170001065259650298519953569461323522993366755134322982684965239809249766120365550654930314959432663870730881111255606420151916391632180685246819165632710533596480973395477806871276678277824157601968207494749203186273587416672279480485518043847729506465383897009313501304335735412462798736908231708038154538211419455341092124542214299984029696928130273520673958609907009665402712578274341814030917301028664556557467857792686144665333225661591661334052056198437763016871730507109640472825611558018074877686655473929027419330575058197131398155484619997776293135612080988228854355216732543864954283392569250518232633717506617963565265539634555498787925720428751163200038744306460974187392505100850596141192990205101698695358126867365250690753999663804129616757662790499458313523539989541206513461272206346197841302001418198155580534122444946067483732877936123931433745102000340922416320611686419372394053451948704848740802655377918034355699483657085740334797017215328729473387801548764318347041572689059460671150911376563760115072822340618438058265906849511202059634547103656531048542400587168030468450754194337429705202596313545329089947714309788383231800947283979863548741906646543209426736394660068381356521954223835257584883909348386228050101263823065570980070840611933779357636758914280179290237181270202563311940039152534932826788835638538979391505469864136942858880699459703019167118009987317421622787467672454093133836486071157072897743866462887349459686297470273393851947036652499125248363889996290183370383389453104433245824026134893267665831299180676949326604962184132724376685603145725134149041653440381142674562927965109257492079159492371679416009940601565570827920592934524375112936228955630124776742568393563061605893407570186451517705265459311150438799933379380459199383528391820568031076108713773433848923008090250155251493649558137825798757446831187533025059211699928709104373749472211282318729465233744279514723562596660141648281157083796609921193957722184919099805693076184193257626067963506928928072772446167088836642964067355682377872694480977239799758995201140056945044846290169173660833560721918474465240192194846818431784228194768433870083475563952607561233321812969633670023147878809894994534632629417516804353176460879085168801103602353513273176142069724980168517781091373143572848422731921946143926834659146785339971265531563247091292407551480897975599152582414888660148598266775244621133142691649535953179516890424324509570492455028041942950775529260093163152377003929526280373684298779112100116398682177064986372208518204102172301361277266300355822672750663757828314539410023915346293728766135795584824925344192135164783701145527783646019495358996734019498151279654321510722383422749959816162342762524096710958678354169676365953876238451013945023187980710349086327159575636588757233344650333638521554890670295500556465938598011397043517959741489578699488671167432427773109697500613378405947254551423178431936091863737288979715617874317046491246063014878167683739234425386202730029068751244481556294793075890910486288843752898695478117212260413309307294383891817406349561935694028584167594614710607152800071883724148331900851841587493769736432426362376545627153920689005568399970557103810601273015956566912579144987867157569392731515724340892431529156821819422628262005809803273427677216403321667751052097586140111116321983754617505160204555803720588538823249825179671039361066238046926036565966595913218405067018691287548297786128795521699027942000167599046960474528806653296214200179740806465775078011546002422568030280277758097628734731639863079925786898815727399764626665501864801880249281345884573320073807811445395865169872466679813764198846890529173992316206857224595246743120933221492205152813119009641736414107868563955465264939288354855482884032984731704186322509577238164755720333451879773339743766351396195292047614708641981146938330087427913480530102968654177403146673414897612718715693298876962152095191560715541283008362666919441970203537077756170586661754088619353455453437239428801008056067732894407282040496781334370644842005531142692473999895727856844452692836742319702282353381043206563287512496467770206516177127715696741919814376020955273559646197316038823831554437841603308120155270000575653015008802735190652932537857064482876423791359370205272471516286224246232868663592581606623946923352515655539799985315685179956382347983943447306180592006848367217956435352642997384286934834786318799103753555195093429902362585121554147299296749309211729936384669234383284115187495487660917048582575975236964323611460940126645923246957448377385294670188081899613765587538999417243486496092149485173081798271002656141602878001173975525397505304327057050511846639306379213990336019478350464534967785438048512719032578927347680052661151753023325932195077087652990033137168466081102440457227175720558622277368882418706491365614933053309842381545439993864764284578730198932780265229475350817323044789953146637227218165539543382161683769828723338950517440360497439048041430284761017845821119139171608010276289270883345683459557353193980605246075270161833669247883810318688810076328785648995342827612160337616463216221039707317532772604045373863368121632632609626216459592098560682768734188818579293821585008463137966830561597638760346808602540646556411081033935109351534932592610426837766072760431796854412549363800098341153631500830051246702887428201222886605828466512667719915399754262301589623838868441453884532068213168622723801887069251087606975328674368608919003867209902204310602444652901239786155825976549886665503074054727943496561984008156764511015466695016523361517005840089194787449881754510281250698100966796230907282108824202213276768246034067127931226171813286457759983962644984554021468522976466814882987503093762030912147928080451232789286708811398250374691464793200780358424771253485726849075813638285206785581737310035734688825671421601040238678079926331858440353460273236853401696582856580897574215148312103566115876700101942137944284975569775905864755486008666699250940528689099952696770014316211187090118004846563675748664204646149908757483135489887384815143564278424882431842227909345634371897450308321747234492321801904716387459377018445627728070894906028769037319182637512626952877654098342284320031893314494296646118287319530099287936604494556799324404078588542329450122462918471068334854818175972195642101263455877673325056721748665785358511695197517153621182738254709756714657606774561500308679379446415386006062603612353244756921521342711712063891173481487643853785722434537284275290226948575640297471572142161053337578126171980186491035018430524702028183620827934290984866668747855931274515633015881997570905926657395864532191156640156218900412580057252179517305387463631996087440755110531519787948906121157069501001586264771538479786966010305231962531144505729993654898193346468795047537052298692202461082447907640617887628885314356159857719081279486943304331652529921066414738751681874089294309675611613850670096337032955951481604478446997320700721635571566237855524185647651220980274970080437707101698964502207411895745162866630520746157540301761086008520410496442904262372230889317149746354966698624330094450769101263928279276977783829862470894646405154393212319695855433588872504017017421638255833246955020721671960936063350056567247262064722881852810986081278124075433763744007689617315953367558914495566652320309396882305905877457083080744303801801956479706422043137293492224309859582872201824566204711389514763326619647779020687132488998108264179431631653341893363647171116896797055735057798210541470181351560415597756310126205848572619858621744567919237777057830288592817359677868299969035300567042377608651114500536729394075691840049895475496919711562125255363767297273011712876530159689031781127410891843743377608829544760526392633756758359111522580412256703467872362165219252431738528237754333365705109778654577011554051817452340364370193051995524283796502520731619725006697330105888975936865893940882878062859724517106292564244342762192589349649931965884947345233010695412012678541839998027831408650075543930025504418396583659281857540110103306313579650789574468619538155048262819972436420129108559702890653047207034314164148698844256592613333328097842726561610023478942832291181570067774715930146794442932371203399041908952856234023237788435827365270236356161884029030635447019191769155047364788006710951238135511023568682801157783050427220108793628829935139411774664633196228143690605853151451317399658565834772648648957450387458417286135873178643361842725436987260405928453840699969776967535258333162886622773295229997474935047522682450554589477327288875383587303718059195002528696446438703555001828815038796159019795715880027575438000456484277965461512606764253270381856341485014932783416579043774622116058794146676631161196751895850044415828645451601076439954009927610768719997668035624240396484985759278617545617041835967412862827427704188028214640243482412847141810892373611943660355457585533266955611320147969308396571612963941622226789689539953088558768492260901806367421729169574430596266039778720373125279927874123207586564664377514446158920324225076379455730632419922651786935585752341619258555932230698531726272198602684709038705867919275011527855713522416001428158169828479663746073791981635480406481139251556007106834417607370319578579995694709167662772904603221217540438875447126498260688100734408076379100409505793916765406087065669514600162893855367196805394021548095939405713111588143020842646021852965839086179984786263524825036702982306382287078802726704963868383455165507635618504605317706414443675411510415551061561902847915681391834815424321427625656680533189689865007419508951017736693770527638048428557977576048595466153378969400355936283814856681078957288294853689409805613093627354059139975967010740847977645776219643056808750213857751271081791603266847978063724280129519038155867210242147161972333156707995518532932019642662565997976554234116532332773068869807062017042613495376744477242314703384034857952189548562494452283249984975219086497824931451924317428699027419172101740626066514201356271055569294559809178413126106074578753311474458029121965825556066958298604889472587133775485909421873162339983141016096100833521937288130294320152374679236498287267632074106698426475272395445193974441419705318124875332599492102940488854842061026244131884629788264578100360363759927012314018172358365739209411554233932369903869009340198572596649512033443117220071182741665028912530089546086888394868593575319526790233363291717799776699040687763911259872260384994801295112718168638179657054001570927940703708224257929736728140933121003971084068942971645443213501036506770776407272819483848271912214103577461361073616554871444224714542846866954478492121926058339474012556343668513179147458309886874476608567077187049656508950698325747300008601940902885639542123113247041973727967477346120159678213680339395637962516213233769214820001426930790440532989042247144564016809840566231230306729599980824472349433751119935075179267544646884694032136761744989937619366290961053120420070743521339025068936513730018632001901532987795745176233721172734298021613579959875306301839338300180444069808907490456303712567369251792068664549384086053095322392594348358607694121902815462545912917381488885914417842868710341815154431128479619418842331219312511468679768634997313956496208171495237585355964461674341660880120286142062930372525830141855920200088887282226442380938585217416397254836501481278746983136963893283587867992824077342429174554813658971346478626685120312056680823994894492740897964373622786953114280037598399696367763298306975480020908674162531471783471897611215802647342122472801926588997849661483563099520990933072247062906797987225086852570359237285293913838835840750928010741831307216324633277886117483936967581910730808744013841153095887119863343279601862919135421282241142925160406121601427973208209444999482105836065114184467139205880318086716534252091373754242186068592592336223286625447777340150766485277304519736830600526696939014417520536572121680965831511894048664749668370284115559112185973132710428731928773778922788078450029666023522349797500326182327210551897134217014201227497553252978070513446235992694579357943391427287498435907958331659212872121162178624077568403285911361671827783278926287087627230017875604591929356705151318005823397190021286522920859162282115454093205550067344438689737243353191946961763319241996365171517440249347834096641175092766402007133850711900882191783410213201805255723614356789296873997583073515774919006541287033144132570804062014582628983052828414398670043337614952127451263577027171671383425298241030414626781163460703217673327844896958223668609624547096772040464791138695979743868827719846798865457996260714474247795976863578946283914403275516407372862193647614950341734460968886222597316810092513473822485692051558596174833424700176279220295783116050409673074587539958630618111507687119298521064749966522986728014192258139897475807655966934306845244697406334398392943349469217338158020696111235575759328935111636500371977210573238370980894763243352257650920182279570689392544079044226619946432822410163457028318920495732260499192704200920352156372447177769719750656506859781151559947352961010925196789580267745770830342938665729017604946588954546356208129234089695851808030898438553497385812179345392038241079350535446562935241444084413572632333432770154896344243825801551981501158673980037741166023415514846503969757928277436015923179508763068517363292130517429847143265712801263678979090513999965864180248735377936624368830637612653780231010459556485944266724538208204698475906489652758605730790771666532768818869471428429018655707943697672236256563316581979714564474567848045524049425694765538955779995983402640196924894056751873314250142393838400460938619855801954964129135543886815644537023603869218156642728148629845784151927239313854925338813105615446530115127352567805749667028558007921667010546626863668668845277459894496376830126372775313922581712392416043285763337439202506845998983230623409704483121909001030048883302193137183579480873230278931151888008799727959413940457556794319593587689560710506071952955306518622097635681712451181806536232320249701333812550808881038028271797553637671132008124263632423056201876537511343260614446415762235852604987565423926137505042945944560499790449148045639679446714730212350543762671257203683215084454279490180486590732373181515889338122555886950967287110036467604631674389506339852385824131176200430564334766549341286267605003956767628360430632457745187591893411326805346401140756472949844006072431431905692965360261761335646943328863882261456586998357935200424489250141744117937640161442988355324038033143149445526755420185475521800633553074885094020545272070446164822562324645965627048367949911043532280846625431356915047927600291547133230575774477408701750458939433865213205975917203765118500645732849175984134726698291523611254858013605715659927816783916246942282085254269756589732770966730464132018125471700035033964275871162628825873233897248366382690344719136458191896303215869282899376160029411503009885075807562691314070221764163762324736898747641688999494516347396488857052868399948768490595503171254408991836730028490592704956445922918131991115895150779481948188030918814379926118379988142291975508799065280708804459135094925632974125711425067199421904640190330213936484152324412901671234476311229166031121629819967699614495223211099604532482273230821100230953815267054701305559144186762374448734158980260827467122512846677181609965751166560002647791565137335501661357089149817071778277230682465800978902802928469571970748723667030220181865027175086668717395475365093158056578598806650429009696124799435833511957349893722593577143327785464917735665231057279778009550903622600405107891230640272188380646323103454882160283675047749234816387161791292942756313827691227480254909058467921512880294528083505596506682255686566397734058113025930077902366915772652302560112433037389460211753284831665307663453278737832404407315525416337967049298011403405873130883868910197775048601614548991969979963596943175697146924151748924248391378119212447737484487461938095208697313469636819254603943551235114423771789905479137277265948246969390941272241927745779540095438521373063474342695450972723495289340978511461369045624495060377109022597550661170743759696473256068126750204781759219029037041885998193724734194776469543122824013027853475342859266795680895540096377797095634656323614805585442827925837953296069255083204522114033171499707171496231326721393352131433849796701845876361542930738723636862685087074480158737268045654557362300711839626476461189703805201421447616376260829993459606875675565923678349323613898995690979258485897671286856431020272595023957809896997815804856639700713594098517074810088638994499245210807541451828595162119197458280599150464682591438735053913293364003252810694528006606259514082394262264005979755273751883337258649164946972461536452761741980105395629623588120938658901385866389847744810349426563105990849845695720598996555015766983700495825322934526803702251548819289397518545824140530103804402646915330947229779062938682926812091346089616543253559045904180199273701583343380423824456208425084792774361481709352992485239016137730057607226935152698879967250238216809821825612579810940863282820106803699507535381448539049060074410408695981930900267330099291914102041465331179157595199602582851941654946986933095173896648809002054334886133083696071787345374390845406427923367643504469204721452824230225150326573412426909330609722565813127668624293951125835884708835125803090614733361282356130614059722426782218613682241317169256196712132450887260127975703630786175767415238625077988567832108125428246714403367805991480054027365772135057043506172092751230507358133521594860798061778823610620252710649517200204967815549536376941986100909974907076946973160498535891757029451043271568447503389145971285407276536481998779574974968722909724317524309761351546624694480693356308362853801072754767339646800757769291350651546268605645375124360343898014208179733351077173108199130556570026012807010647493512587950710835049269690988548266012430732517018503347049733865281832149749520104965724088870428206380121294255659269626802765251628157934008133853338279756477192813403154413539107054204814054690612344342363422077526301143626518629538115857146051573150578512431508194373622156042292687236902212891968415111292789285473867602825787859696417426454764098470180894156081145952010568766388041266159337300504943128428120872514675831627083194579409613723078903313074405666203265200828114139048801727095207851647380737753910171837751003007476432381802541633991079636061147732913471239269340405737054180385969630126808890834004991081488008302054454948913810496081420954695539515944587009241780676762815742745937556051745470139782760020192118138476915723036416202910534235696966306426684417892592537391031738378186367665582621576642053534462543226904078976639383661801196584506735524156759552929795717338848819760298151612817906057971979342160512874182844347746560631743235546610662521718177692013097525340415068060639551506152480644446386332710818202523957924929889684698882700961442730036345884073616586484069993942415349274292472983309123785803046946778561105557161215156368050606149582424242822791559731424379767058937604618030718113963627553231877900431382919577924258755971197289487167379061556388873509789166707571979036253291766254183328232187819423291020632036182035291851781918755164276528242506479294144102508003878644831049945713319522858453595067180092189160587544481720808567298490109323743002745659607540136587440995143428535878048402195726560082820348103964438923270858144331247609980468669054044886530339760871690190361601243221236979942942630227115777193343198266449679930773718493966397512556942439078799815850745586325539450174723453290131318764411528324226353274260798839194408307863740020322789199896459602307422414349746070839684589466359161462689401886784046460763648043666429138184875981040881405007717206678968683415598500289702382696592798529822042877010088560610773966428708082399262902137136532420791421286965662919915700194021752821125327933049606888916975891718571526958043583663365974365743351237930537990500326334284840884771251337919634270062531077223187438513997429010150078744413969843193928592951044688347056929666616004453587010113434524382942616624240875939391304651528577416524138382557374808406196635404662586195453567926289860458825067083820624409255562014045705672272015591696331894208624933086871532968643297017251911742281001383530983524834125672300434063642264885603539713561861635750800493845970103357093550357700327236860437601538364707590541521786110340339018064086290899705348710656898854102002041822891946744088657976494910517030880638006634611151355860634604666791251006515352538673093696423056200134431201859121775377809976684989088737324910870962164322799824457925925690090178645568406099565786574913739374510857404567420495075337293474575541944063414989066904617356858453241806457879226201610271152615860067177953059262028916269775256523173435243708381195477934465369766732209239127216149135626063736082563736856429043823930517347134847924627450979348080587897597040727053251262648307752156991957725910222527393988404824281935719760922087137889218230223598852892294871242792505561281009858037125088331736549832943764054000517784677723131996510275294014975475181278183867557332693889581462646082103621964908234446349477324739178063622711450667268318279195745835113215146685234552108660454179126974960109889584267638951860456536035202830917663461402140726238678248347556024208333475948752670198778581303685569486659586910702517256139447738656417746774147121616421090454243645065285231577630267996667003384836886477253273181407524811654235725832776393128073984449328650335019691701214560846289371983147849220719017841074931360164325495180078704159969911900890119218043091601424206783284667789519561191411443022819065336851808571437456644282912547376428229113871463007334597551645165731286933442136906559399883059352672412391194398368291562250925185020564627953308838282607343286530207979424236653547963457293577005740044158072802546841178640901062488919811830111195123680422057143298846544333169089634096599531367313646155484682749475533263356051388025446922198655387166041583993076035563502602626820651754270979574966427479779224007263282643499871143630876507037845609174886705366658906734670553134406632792524410889234293818997943197401471284908490962899177513704141809047483493891196863141225856749688916503223753691248361388484197404945046172306356659751502398984617543760915732717860244554918825741607220550862668683749968551810889880230279501887263535382497796641202031812578395495982995021704973886749139929729446992116842245389020940273771837171155403718897071414770710623008455919926847441074893717852937733472717672903338245234151188307246992951044414344946249413427751929707406945130468421201774644246750487537981110476286514931662476991702330023003076461828523421772035515071145940161476523412797859158576486392102400781959481986706110278540139214148190018610121939044168053337729353188241082189263290596556253050125029480852973174964695349700364250765671309621451057863192687479660039996321375570098061553842616666706318475880750090841308427080722166897194193956544846681213034940446485030304264423074767831632071994880827245783292218896413235074483651627453139607212722063425228331543160549820584729568616928434316412881935801580728312352049526638726800017308582750449167812157140133155186003411542448698637742946758655625493832309181176145777501504058356687999784648256614377890311616670698422040750791580239179375130041854366331689965810191738133831585435952255459340054759147248739992829989755506437962632627515736992134534003975694074526262162897228207898606184641949321604245537908590933978480027181112675056747207289226068027986746194713187961077396264437336074333115145972890619773779211761237741718606349985872606006376955173636900135565635113116425025713210607597390774154481690563520902086414520218990130973540933782239771263823816501362744631866122851912680102631864773585487587650746817443828127251406526873259449110528824577158016493419917364839818989730026521172151427857149611150493627743192628680476031480077049087380864159592325893484597658965103157708353688265791165520508332102395664810358913471863009780651289830001477043364140998535852467389121198741380905627417190220863257945891408197205404965468904598010512687084342250189791387751789663006244770683674768627786854709524444893852045781573362032333567466937393033319131779967086304537315102158746989202239353983882124502213247974699694726130878676830364654591085684237350744919326010540961653220716242432136818399089441523597449045323003825977369320851480172132521358301007441981715406538589988471919269271902977612189878639815076391074876603473774054583189446074615299775450749377840805639393147968704428526523123588029160843408749609098112122474162663164856239140512387427475640888785466164856284143441908719448558995348686078722398059826611233323744031668042520367834191957106358295823307331228093824631578328394009348433343542373445473788281714276469813580883064203206023244702601893233929888266021854975815763832357822932099536683999136788578667313606548534324945911376196529323092181893895043763482781179383611985072939227674029711968551760066853935723017455017837373662657688776543276825116000549265919360130128002919802391391302156337263642076514857791559683291605032668202887146490534958052927991939192209730734326073828224515890108780558215952618149629290137286808365455353051163228408368072546494314546966501906884155419900018196649741394965909292956485202547153269697937967909152036071436902122803434219060352875702048402611708397596799440711702691222808609976746129470931693793408837361415473955905166679250748613449991802443160683475525631148703065196071412918773856806592995783751112861775540029286631528303646122851083679081587080839601504619840902022803756281138223474368290493249447123159300997371091138896422835953036983393214195498116763497921861001664828669392638085019480150766429517180222433322195577516362413541474864055312970829391910292637595257253604214360900398707457288151412912396112154401206755858688458062073138315156646619151922014679144705651273660815814535081826576683116557225302352779192451116848011224160556578191395371097043639334407387249640491336187858726033224589715757283882176773564648964547686541469282340037714794560726477036138190983308702227909809257100770083685785979486383433687590519156436079214162112206136809513825024232451032809368925684259821372488891770451135908713681609884080379639319855844354568161485814658223741295572027192070793133308270922765679537814686735527732459839274002040810049654640960820766436720690639771494334934175477594199202193902689885706785420948312368495260314451243844175407449819980950874683785054267923816158495728959089602263732060075286718580489301036596940813095621102960226386041915642347930371903557535744721092923925179248287582732787423887430562583715089771130296456428027106228130768994517729447658612513812741764658956974963388135309949465870472692031075486675981377776619945638707302968262511155545810984726364357950473132183781679373210630381113668233483628907422248718726410411249196332661978315600068166411711103256488242444622490453841987267658465243879622982413537816138640171455155638216897280774119315313054490880735709417056152339106767145368565084208339819914435286249345522728410691827588965116087719703590049567741034739792648627255291448325874644290758231245549168572105622201073499563230692468367660434083439434089446742899321284574898705049325715614252033846626337234889996227214289081436125541168395375416845526986895938416414800479052980375412667649927978170929118279291283042498294890015656620596761054603549809290581093228420615896159125495037746378330322899647939434318304828120955304051939265439156570905434809870209924513394491836312606671803075721562003492011091213762969094590425280571866472644540775843264330454556376554855360987867384160074754077717822879670019361223543368818119508261766460571849326013846074850560801065657453662247019285540728492179870441798199085851975954092973780332221500948719739024837607422023796386691235511347932761672442513443338626804500115844604872349371827242960953829339966442268639979779285676456384881219924530318227635521659570012941114122737744681921842323517914261448528000314924101082792967265343879539584429228879131065558112893535960620139036058531471518230182266541227488490719110474296575828910947103085706114628283952804391580578118110671897560233393843550085995399455474722345293810440515395962911564980185890146929876046324924795436852178782536394620053690659977924366406338520064702696576889162302011366838233579491981038142568953124419508782809481515717447453198966666108024586257415106081097617121299929963327821510868745030327098875282215322729583253752975234898916610366111883324293411945818087675893271603556488255913671488172206895360578664297163856376154474999968884757631518535305492810446356489054501880111040538209569026193404958157908429419930932048409651416864244034122501964704704058349210794029888856091195649235335767626196613998040368604546837569613606794444164812901796671109976350735600199071787594233033420154782601949584751396879491795054087652194052039103379052552191367530690605156798979790384468616699082132163649720795342025954346557774778969418945634762904626416671415397299525011728712575480482780606236409578796481888490609561783845498960562021829785347276202962083808073759067320775047308204303420651362038929904294645933701302827861681578094105034429984001976822283445691844789052397945494681638330714346769806622077631453152330647759668290630123343664251539694391095169930267425368422241956127990358699247593371489753270679415294962043597993100709932665979117540884448629913253730177919848678920370598440176145241316008949727326063535994776006862034052538628807562355346764098661777138006796340011752853268336391727341032925414778712359219131765143116036560595900552177613061398541354154305339355999955409212951698936395906435205349764796798846821582655499073100640716469639694518560025914940217295757136464288215348584331686264316725047025699561611163508979218559486006995338027119082541289241349829190171476973935704157105680338674557669702203391404679573321960337869956123806813188500027723145447008668221223806031242027103620559735994563229718626341078758527863497193764775802361975630733728262448413424849960971394453212467404615114809647913289149158399184366097360132178505111328479987077845719051945898160702909759394428479898594128404656346953854307473678643881889466234592136011482693123133030785698135493489820093471362563928206033837010231574741528820936018785800258559668877556355015634606415069891266485887066304156258261006707902455169544052390955289652360561265518061728279053149437680412791960588553800091350755696338141407259630637634013781085005312265602857913784417540648439611088446715441916748722418576323244139381326519126124685968686113005500445702318441321500678075868719405463226504786405118715483107218851770839994546972345916663518607588214088418956202476788480808279052413779757437784971266866136577408996991079726743091208824211283643162825601905808602923560917953834631225067587394077695940762537500617849003360639238746269646219537514048591085070272160450320558146231526773598351256144491254708293898606643622986617704613224734460519307205790915749309266581731586072709607022140500116868094479549954663142773548342331463076773554586298397263398793394151320550174359120728403169641197908276831804148527837454476000847104993083772059306719466086832651993240519721664613710322275753476002141294678771967430298135517361653528940218513893024901585265991074950586366219298416819321074492456873949305603273397852100547696425623979671580875311632077260383674114913255400289114324312376118261406244907177158825962510732859342616142596864682399006690285184820386427464744222994897480459079802884698696376934369818355499230394798681547007336108239871886276456476465666962439641991604539141367178227939881380686868080373374699582180297815279133668136732224176157896671940089028374110031991310730276267872644598161311134384635184589557966962976595954555078599981534848737082304898674102169896000495255599906090826834632847653298364592060976299112898891939852643551730868509413341347616449494597227414883929122654367967331325560349139226015943678826460049372396341524203144437972873393777220648107162955502003098195188751918074033790447010559331916010312950114963000992994747984124701443055488494357139661446655475035824571982929516098341380811945979390572161195744296111956192122095563620655104377548129103057839048709549824826832527765922074710208028029454083630651376864881958955831375328808113492258523261943599020101228282417203731125151023647681210821366928968742149608242951844562958154201864040323782097074097781043170337095364099008764043445090587461179373325332920740655815207905489177667123675689256096862352836675653917103434983375360557806190669662240968277546187967726128596776938737437506673045057145883673835558486870124670470147496791343022906385025195419291283830943885578965790006151072351626631891792214048744778049442335489552706078781141292896005031785877932109702663415167764853443259937591910161581431938406919887701362724646972450190826685121980306904771723966111437421734437644200869645207315164227997567860120140472534933796888904350479496834621735034848006143426664203185904748094426752185010393939995375542122235953393598078570945181405395132329345416045129996257694308409500066592322158130245338899954801978166477777590793049319708713513630189481261156101760238301664405390487480448092530323134327497536782573483475991037442098971043423770401568409726307661148071916524800850501416495451326336129724246081188948826030168553492082432374157295191360608512364338887933356680702414678971430412227791612144105425243999213972204491195351307109219698893032725435631987304691619267552285767318106232016051860071399441754644281170874757741545965111626738842610850288837581229481601045386938890288222594920469203521096021160806044775718395541774068783926030440454417408933424925384639726470043830043797207639716726915717244593252168671782899501383116494440080621154655724506802513032229602227681294885145316593847148149120834437447883213183893332479185576336765373807030023900765129872911851392222715981137199702241424907409598909003620868368113773507479581185829559689623338335841103841305740743314904822061525713359721287587934528707993833654098406271716514931676138301894110843080955935870903963441894718388981302456511867256887987788267855630604360939683955456280446993778971756211536104935247616971214271862731849597549619097443638703600484844705955754682413931764170759537630170245102219576052174840802633281066306788875737482663371873857950909808206647362358552343772633698285719779603405023880305912625138355151359510283337142527108415516071232331309835090729932902146017063439454167632304131520614990982440127837656836403821938497228590463996594475949795144438011578712451312345146834048396275131730597752444986358197289091496372167109053937130602894744022696907503094970382490259374390977747872540125933452617002108337478216354889487521006427434676756911868608703275893661732389456318721668038168755889876622988499694682357501548202409991683236836205596836847843880753748423077240543744927841834441291063387084445663971411489970273643337261095267948436831442162396251292540531510693856002477465467947911332813062002727951236163939349854820186079764016479191149822941211857180582756685423478117546699809055160890869731096991346795181463662699759941319160105737207336812051707576289346855497581475437165212408712260962367517193501538923897646470674185342527133645572449495545611007638034961189558233306599127571566548224514913668488598262282220648769610735583656343843694590474238474199759020989011285010177409584329096055484810225478343068353724467614076878599423004233149180458201851521818896412589997741266975042153550107366223843585071176649954730224198582578742573021462744597548202144205430353438524472208532283464880907807067763075860411402882240215671105590916903603190736588216768354359525038224809705522245734922901313133712990516291371395214525634588871112623856108362493521284305486121213499768791549163366271305292187719024054285339971569146966152078109221438105625461804680098228378549600369621641189908891630466891120326953173215938336460781047794128423533531928897759658493519985895209930047735839958915207936854457868755740248035900202800489364983335461964012355171736453976976802143050643330331836251155191327751978232518595245099648002968505078229587200472476204457159727994221831632431694076530795560304607325140866435816698284643309649478729620416469896912787927479506666497392073553581010190688677502028946066057047917474192228735317162871411409316402717335876614992679145432464665810554410041044494463434616742195060497945778756718069373027731806568190009697521928471720241305763002639478504289773219648515931105588873112044978637360732215221630003455546081387737210227515312060652051484114827091359683970404504851087853996167303757827149258895132536155906212252276298556009195428346515046808715357603651047874891378016355798718117431900358450376605162168397928396063669792276998009108480488483852408471773208746378949082979945681906737096403234704045413091472046460167940492499645552336011397976607785799656756572368812275523741669238233488343521616952172683484997436972070754443549585331300317378203937415034486209581003811056749150479488150706560108532186058199778088058874502996287030416256748536694506684928467220093370352254473141130513093343954417242036647343371726253056534740965014269376768375834132303486840537370244599004068904159048967439628804333313695011324187885194655970867652846124723893615125781731598393668578824716268804470317494464983076281885736893207343853368171004058298630416732535389273819084156865259169935544792936101914542151844524010716958716385746938183835949185112607188330213835023345715531162864999994374274675000851044153747616187690894402254607866309134916342734021339482436988235894565643651696887831831608471824694935214374327527001396673643799208736148382872922734713279167333549199745784410687377341836583452048165298785798605053266155983047886821424552783970495755531548117040914382338708145998108364369440571366959346430628394972261842303771530933220621701377243937795157996739485969260903876308302984428403025442673926196096699465564588898012158615870085352587930481596757110962602058319861516212774351179434162689023499537188182487450825976856887504537596377938032385962065582389526875027093507176929763804114603576006989766043997221347420965160860345442889173831082581766852507714547251621843177704749143025206095984671872221898167894104194715695211354837515535735600768517185614266593499122446912549456887574001108034084769855406358010294483805419827769775532819266206607845509228202211602863845390230873869850909443712360998003572112473785520359767243029280637085191318458779642592921451628309257730531790263903279022510094930917749534678813549273250306283003830780751815419912308835928842425784972445496225776265280141363512315211646391404774846420021241346924494403606881426503075055844069081029337040957419010293652899746271658171835119983432920252121551773126427988389175726895638906521711305282862054533177276625033096072277514359235381002393728302910225354296555646977013715679813899614569276571778731169411169142671502600390945367682210842535155609768432365163698213584792743492099060803215912344086181792493476131092854261995928002163062905148655675518302953068592923195223251740962814974357733110817660522016496260235313046516186269132562412337700442587553336971012219693427773413589597310198899517799667847219562465250360145485662920426615613794701253270678807622155726680405961874540148953301342729040952867936306863849362690787576163578977329219309004783047546105707131852902697853649518163869568737035571507644617161753932662218689014847785754058047634385937178063504895993942646925391504651358640999538595017737428358533540923541672292006289767557821291568662388996468003130134868662301729281386000007668180694334108125180932463310678812461070599880661168230140360036418519156015576250699762227637174710902486178312370245551350721297081875181741421769848067799365384489386564257736115420026224097604843851697088053947699696266500180314344711694780424020476719496157106500699637352799472272264002215507650836257822425781427853296285168857807181163033659136367074603362202377521481216652594079397092887904189972476613733743628278139095443654339932894021846108458390806134550940596391690259915026984567279489590909530195056094897042321089725704733464541859086540324071324064357583529716131980851690890499284419359755862166062596209526099374453393554707348821965691714220292159161642757759269903900751157066294998646047705803691558108550198990958753716485182244796570408582735726052876432410917217505327219178648618226279844052452325527232224486454982360881130743852415360134083288327474768608376219648813413768367977123767369636964332178703671806623308387085949407750650068461631851025612909826911769713349613271397061974128100725169907440947983091557016085856027674529343251334889464705438483693163875413910104801775639335845268535343695070369977996442635270396955758918290955631028691206563636650099830779925296782321231339615367761826917123811953395409568861342329092604719125129369414310192013907033714692189922297365375908444763393982852690681206538252023490678911357735749768013921734648359911832045054172385246647317249942469745086037078658722726447008890194297117033860558550070453749596946425767204832852995134542250940459129374359776444037166830860464043827882338893840802654793333846125263584474218477855970127103213297373261378395796472886054558954040590338312391124147356867077114727985661410104049163077790761005144291746171134963085168200899531941331427965492812716469277631317052041098732962232582572830705048102174604665971463431537671640541099169067936895612103038213374012528545877384091194025542397694558696406146866442979176015332640604608866735351540654871787229072928310305877111222320727796377880407095950801813448907994142926948243126055446358297739163342410456444924393436001255774144494447896651500016028319272209191325227969872228322086921415009473142546687997398924277665978787933483150694186335518066930357288226381708898640154703936306618627093983136431581162237127720741984356736211611640860519904682533801965977791496679979571953200228133301001542623969379423297007078564550612952554202196163287737062532055090383830094851844126163144411182738668207096952444132860402774534067589565213004612774278729509187692523476365731162699671473777458247016025062674803464008074347668636304491816356782716166396322165969216761383673402503376993213968843118248139994733211042345714473543295857087291803274777319329216014362541535735776090970499699296007443148757382533387064566514238757358194580570331542605808264907618652170533065055425507846751751442484951505395205667309198988825145934320996647071806912462677167403814860578907425972115764591581186052827236621008281172758410228378363518295750538338920143737039234030526860775159224218359214547360802090567607197636979989140424875322748566471238475779183394757436051065234620279033390484147175205307900532442455178995843626947132273013217903394837309038329944530823854192356897264443675241240923238607267509011883825389332445669596286345780039200091843860107250225528841814347765536693818718936513923545771759564977590482033671230199011937139137275304492078305417316346384708417376140944466300060124227301714293410908610263962963808470035823240359316647251015065562527111751526706145254533521600808176610189991948986207515025679083197466299554866242576993538139363666605278238131831833708259775879603454583636133900424001382053812834135734110297114136444463064420319192169517734061190540059598595040565337185553038933751701613463147595532925499207881568315188851611495374590490809691631043719015982827434909197601137772109956933911298548357813467036951335167900549877300042236112715513488717564767133837925935864517894373199460743700390424330302138173407658655352951924364430043269278431656381027407204091901387881813175807103306070752237998593844627125771425069428357901785499915072568787978060263536592588428644723596842178196115353938554604333896999767497021592412169725258582770839943115513490495466272296794022440800363805349642370146786489063230891310571825662068830611770827172572582054083690760419539159286256952757207988459023090356866241292194377643815609750097846596270539269101234279064954913933397767918800192052179295006513150761627194749468433154990695809687619645624977365368466835625765727743188466598881730685072236503487528713051838557746011386631714995459241713632034995118555463062335502158751674673571907598026638764169446743489566097522797973175481832899393103431617029195680237658811918751712242772321833060666579805210927527573630149666563489942262325990799078221671024433547978568560759489294583569406847237303159182834129087781811783582209235744369046371518384538372385301887918841441381718322118197931738384535949990204882915785953171250825357947047205675369978585578658825032387310832154184339737153981561860666313884761199234164028890650254263392103342918738874654271022147207759556815181041392086917719901195030798169081040521723307166345779843141539929940523825543741618693762382977530469594680997897158461709581622690989258503678788998729400942299537999252187908646607045054317325815309611812324741428235785897020613142001193443130333707424482185978403443468818343820176138387153201322077984017853996020994385456576915947172342150957825733433851674674658402668461756206008429448670883569638915836428608891509725968355709409409712783890809298487076181256239356831309591998346857426485588880623841078179141393203838522509036966682135188001912028559101492972395258948688936738980150555490446589958286142608541548914924275245619067510818727389326069839405333997550506318184845336313164297867500406544943242974701818478596471996597695096087759628499454753785084468275147846583109582578023074425416343718481096360883722323967716089976057019200192435444190512958670664434705866492174579503686175728472737853196399523336994978694765869333677942622218042021849498939122867465609772127444176289820480249772702885964766419419370420947472835831850875984431076622259448522267455482774889110077241784546810660721086714760850602229649321093280389824072989166907614297511676159843395578166248455610800671524543275241945031001395105266286143128087609714461132011644440179748434726148212498176819289344673300948488327437583450782175058640633340421761698962717909152178555144944645444735441595572937541800672612993363259341245167400423820737836139354650304479470947133405864045676747003567901130627017509706688841449865069729099418905740547016390800929769482960426413585477931569586304024989677738723380659202073947378769163426381447857681774556844203415064991320026759851113928059414347130747397187240893982492686320126874744025826744608894679660043771184129232085744958824638233404214784997522598149490209365220335736093879204797754284523570406044995756706044350279855217061765636920967466425969696231296522109711095085288992110319660597227495936069060971728634753775953332172023221624700286217034821130788932860284714412712725447204994586092393639714518263638948520105912027078044869641795280759552724875327330891570656262029141669527979059482355294440212397977809697003391436737181358843317693341463729467310170020808344018637196776432119419470962356886405910496924959507005098905489724268005446050374447945912863832815880025868026719681520955611456859690478978461854035458838798306939553571416238642131219758262867151174958935157575418588801715312513307855373898197902540032722790089744171901225151283460193884393440662005440852970793617639753311137766286292623636186847875842327095802359071017109535514393199429126237941217403815151727241483284297686557500345540723421488777653248980273207364397340607189179269863006587007483501395457224509780078051089979835578394786575945768380383859993097291823629487211012923725953356734754195686804658823155749205996516612359069915634847241097075921806138778666864545964105690030952361339419344204925507116290460800770289138699432038717002199237363976916155658523678811197465095969120744220551581105272552796145008246098894841619824628438158352766602153015265935925816034979185474138052317843211043233913514785249631917761619989339450408077354036809054821616287028167761410725757313031625561005058925188547397239457123747391349911024002082689736141409088845702628658026580373536179178356653935442515155579878292271634985932199932072866607436929257975094190136508072717787761055609118351179592627888241090003083862292340804873763882112304670866540414800381776617626378846974855932505857586630052306177587160751055052501671100913340773855390831177655206482651256482715561397458338524877680706231710441718460265146226999745774201762682501390950447120351719103288465819525255343362217420441859686951870550427138442104727702515436183040816378602754655389633604166184701354396582124790735570283758905451246272365209415412333713276315723343971661568192956334243297955626315084407932919071093365981866799488200272376936071677327818881277308405947949773241900471748204963530656599049574461913558797910942052120207736791137849075344090882266220224515484678723903126187859935785589696636953801304748111637734656488724254675280655266125970077992650683913079479793951089941431360068415700212046712719070812641536002645629014816452060615275246139405694144421677865133787593231471758642009167557704727997749119405629779210386513499763495835091063020743471417702827325602954070259246065893189351459815325569095371826975394394517334923815296778747712543557835215923825825794885358418466845892774501448346088630341400656071699396580370566102625228809981399060520380476465674721755038832484655692081565003417726238119404357889399223825589505669609927765121599906579333025284542507064078756469490418329335396463334846045157954098007692667593990238048367061799001873727734813672474444724067927294121004228834624340815441945293075593782192033778844941738424751730037842361412376192094380205959689469933849085027321762851510460898284823835898842603816669024982387009206328693126582079598714105562610840531167561954227198089643273820673343848236098695674936155968814034504060925932987757325232501707220425165004972487730104502195361548715321697703528044142921438170119205494009238538630948557627159629682760030520343895745331628034804195635478733521702605221010278456210065601586712268355805537585275562546677754723223345012777845959339841610463205664229558768843015837238049789475491312884027162902527163814852733048883210336032259755912770824573541405734104436127052595189270379646243199758904423678472552466335729100002113840277475992317646601832916703969657458503048985925260871334995922133861755526895007947123429572440251144029507675864372649841459908547460242858055609317998853615876633241040073488478120527832384432137928874635480289562600183953322540991092954686919404819600274186901286650648264116289955488668049941217047066667015658650492696091206962771836949520075205740080724142089292070719241495843119238061427010080896289186203970092557911916363362312837051759353567012234318357495041083233321733682601967940780023509759579250053729231814651398659825489492688906082554640743803206167725968313410273584785022555633498567086831146596588030191873781029338381456816950830364890814519925971491109386125234372573873923668158046187322755686431905723122565080709791330770036493187515142965880912066225180516261971783233195777111670193469187165979582642842551626446319804000623726372243237500446016786820506124744958420914713001375895816828835906074262185709171546358298179418031415134763323483535285831711266745280575293584649924186911927003860833404312649284232309317011674847504101139077531040507416318061695320051406732219088872097517888793824782461205384965928435410444030325940137103593592717321165046283191395172501502099939204008245532776257590273624882341248916174912768943220875168921286156481243645239551580612250666163400486140954294483090472693406514162261213575939499080670511054995577885452872932665660622476472197380224509573758640667148973166035879015928879542266400336390890173554175794606662455216173036234219515873886089355512944477785789955947448176999501050323073139315446586239421606182054166844899164028532117903886937809331649520474010229635350684529132363648657669536378305637381361120793093413759683718745993221586558023653111419636538667137297839182669895383079596558636676939995316351544822314160970816278891869118412522607238476018470143580917804775055619519889060988948048502705094208102899361345411160003532863642817910905392955244249264300689724195017358471085133679344232806415298990501617647998064483135108051567015168147767817672926311428500322086856591046901127985304898375230110623312066082911374985780485068152262728922818617494355377262485120972467533543081845490627475499510964783570210341359734036230199870502530057164767721130577919447423338297436462416250925771962195661127229748144106696823295607472050946420798932304361187502637398719915261930907644296456429352052204178441844045194582145048736527024477902798132796537784715789338529237465852145643909075079707939202511812899296720973122540739277826075963427055572254876270799076624574226880276069646697046990180075026405568863468210681437073417141352747830288050247260763973979103856606172281887805435782447311761444498454581594626465068242532013353273927439820328055365722559867151778897134651236045327181824791412595290678275837925321008879055593421884580463574433618901216145411929222842455930521114774564450062834168863007600551557865437897296642727121705661954594213655050216382489949458916097790414919256495541401288536789799941372367023698707637726127791793646330736639668365328079148719094835957635792487837092523893436470794709876038727633935612833035215505306705536328472033877939219589462535383273006853521073331407769253925975127643517197960574301185672339585496902135782642468413517829573450019866052478138786882059296632515190777392704539363022988655783226127107200336265800830797143049128495023541007424422752961544175564872405344737135208934176593164894094696772795069613307684750124071725288502157541140581552025451209914875770128453812887239081103074536670337091144181131066051805622438990512164644613486616143738012255400989232996521380435844019857348372130381268628452378347768352933091653362956103536944702320598693038462827753479376955827735159878114219121241596486884502515188892377506408383001876052670892021268892632753104137653251163671623200633992457258801156142406515743594024198141429883663375482769736336968186481492408468081716669776274862218284055185663135577708541175931320575771407447608726849405804092212155719845404850071419541273331042602953025528742561463103527538553508389876416713431857567093101159091490126403830681709551516093228745460578809331581926962359819941402961894928896021919472760395204114648357549602553933598570498723673305460915893406924230861251062922888750900605826790914661232254299072328912021665605830546257656214801227089480748924238896806836545951873570993878255882118496193773325715191644632098508467557745251242188796800213551553247755548445856803164930909232751732119001842899209742679349517027621850219308054221888107971659419142294252870834281097269563503877073921978930980821796763022796868053599652668802391934485046078235020316998280572530242910036446388192973824395626395989446855349071166091337609588384854831040445671520567729741661116111357702546803580395439545832177342093081584772834306591695764031042657429823036659904726123645628160046352516879265432417634273876237395136579573169087403247652364828230045463262175604200564444964980377396901471793174034565613161432398233226641239921953915314604938464313898730360882705664187765542557860268318585971696813367185637379537388444502753695519853633632703510644964174444686281057215877325100618905455103618609980045178980433108225146800128326258733796249988418242267812453547630357358027523950955859486973425952615015483409995854043930437593569992829786939660003405399103419512946574051606684644534068157595829385221195886061480546729367689424848806006484153251501643750635987082248620369814829159989005594109768237263625535457196324698557867553803541571782661015868134873295764518694443448746906887036504080700929418916130488660386379247638452509596739711506315531744758318112263787049610885437175742024978836259846240712052661518749268667567252532263578095996715799989439756609050989741282216297921354152566642031170145548470244115810060936208121997640396345100051776961543406327393607996989853023792181090147738601414694278080538732149625584614508721063233233504670073326726433714229337990545421207429447154621021901679119077213397899242950814551487099075353083459030439685132869062715029192191064869273785802063367369892323357500252591223304084598256441769041287200032893177033182029789246269422405195728792357730518600690125097053767895462456227021480778591824969279136211385614481109663385693274562280336744090914116885607622885229324629893978966349942699730976888407521536353165470436785135408670572279032406636372527338408432338784782261065602559567593911931626386752272194398269508826843974226739352240091650513405559972666100777734380481219995686724057179669975020870311945713405215870049714388620737217911381973234459423597164560286001284566801026472807161380949094651903888409372711040525554955333355679179171546006859854435826936528008878354927768847382315358159007319840978874194094653088621427384730993601324659903309953591130692846466620568816294744911821344707649148076977892529770768182197455583889802394611177524404997919917366364334982329663858071740080037388688075591968150419919974672320672505803357034355654618848352669168140972068857273411810999279035278507818108036501000126894678678765043632012042925084145733147810488941008657478867942498055293263646449072813391166205614340259391091739938018142961253958263509621812473382140311565329322829709814222157903090823038606185665478964704242885378926883514785405455803399256988160713294444428820667707090861953064473439287942942589270114632217305197513095480038797308671611789159707461309508956143498293746806904864402890993513336320918911954790847613447468133932765510355636805082121883032113299365656962256239343184511210602476015778326547735531442619805920846522756470867517690168153334887268698753812215286337169726195515094088620592517097099912646408105319882635065768710395244541319289229636553645784538233565503514846089585413204066960584255757494568712283102598374791550065887560742258380349361065839302742267084939307002682311631003348613485658466913902655808284780749063862443114593604621831934402250306221901768794057471045283895391009848008320405111245985034917177933681741990038008056075223411507982435650280171916512437862611579779399863724175111914554583456486395705225501622377203197747700904498759027813464719057993291266515864590711977822059086121628063714889074265682596260078099288778178801050068641019064360097612079887996023917246098324385152700537012346857327738982700998975014579428803779218373656205405017117245268979561055039065972493540678534659727573171083426730992865079300286073178429009814425527105553008777031919669536376332000997898456707965525488735678683355757876743068970226124050333542519336070004052668213786535687343462365495011860003391480419168750882870538546175195278968774307829962034628082044505379749557619442454847833597324637563072476642199850344897975994201748060364046748687928478039233149780704530713918558559702497918882429019834476015068045242779163091220857468868612957119233524020142164637172026965529479674952223571896797967774840113032573372450902082930150798982110254615761169143075647744810930653790990359306415652404368986924117138225835700015072913921266307582523226211274701135496992993014050673377135970289197413465647164937913664595092951091735364363210606456405303393018603383118781225146798611998664804596706292341568702501130814634841584038490777246273540439527567337753200987713650002270065173565905148925118787365024276445869634209956191270827844797511610712970240435322067021054874008097136267920421391144273583667932602815971492131573405891562179844746231577439326870716935292230045054970256450620320384397222028588148716819548817832693305534382397340506186470709157144241537022075989576718776405259259641595872954464679830179593311677803650829508026935062562004630941164252593024845657554989012086507893522133048319282091828811859084130370557532151167419439281880253257824127199129570979320440347098777969642673178269581338323036984186635165113028549034060471200120387175709316408486707197215874483430168000287411151318257096963916145546991940862224842004180912460304325201524126376105107451429134081936907764853089129477034801521105277661771703863060970048289451304558254529866685560720943784936767835948171628113498669632761347210659737203232055068279158833978785364561806178376262323755105146379065444951715344985641204658082705507985385766052945959153978978553898455904365457111213157904384382199660523942692687687624742380532850443571619789035536928545910909285756354565455114754156607253197551058689257511785323186166458624543558181250206666147757298428841852897375780046673618932886351280058833108136625443591999284634051150772021220507769117947435824515151016362510829116667600952867783960248025751180065576025416909210162871965423098530965366952870713285044860061984754077088033382983635884841400098642378742652897151734904058160144056133724903066877235160861602460102110088616045415463616791665662323506413747281583764148642737763374295687222342869385484589117634457431537507563560927940695301569767404258340478156347908138140206256073769721864353750665983487002698732222402859856735681185798415389764407333247959902017645611174144676193356817893976387093450311553506515118380880269550232637856189701196694453719042995622552162950607819141562504903152628167799916613916817953903137980479995652341659904803948483177686538075903088707220673413850204226806840371385642092134963317431293246017384257487874099272635022710909270579579156371389562207988953589988690727220301404950261437538595958825980136371927873534056368361168218124012927261889109348412000382911029886479649021637176453204445119877734143336225694493879254261632311097639234633238784759043084647921233742547311229909732892700976762302276842533549400622859465983230319232403624717491677796793649340229128055388490179275657761855417984505666153351857000362907457259075326134136113043756254370707989220311465054313212128773960907187278949640044902452236775997739401687718540200326043701264939825580762949306780433114790479204012500995559987719065949544335058518612603450080364420496799040839799468478115568195437179254419932274998814137481212452655196033250870469072867032903349657260066120184134810136303129722595073792695282974273565355891952208081246016069465898507546621386086592510768962669992096366487719373126556150128651758502413044553812387022139006964528384570231462209703382285902449447319969780834256779678743567113996735250725959135079160939755856528840770301742440846953705534350026565160623099826601868914220909876172755563809819554347018095461426180193374468157001567049231037023632248013884125555568158712705685591507918687603575403198834399014319560981183772467700087890997031378911157172129759959580716316368510505134033363671490570489286324110860495237610460130518201380027452256870218221314822984799324346475019332169395811836682135185314782067533412445665487604358237021136775517169211066332191111039793202155573417524365565499358940637314544583777331236484026388113152545440792349394351569592381733012061178960461065343014163755536160410658043503723752275721299049581060630808675629697816872319165908652401470985082604749380757284026397328730941195915292762928690174658785796321120482797386305400691102122761287559708994885299097961579004863681672918618634369603996207321068764565410386299282163504976279523702070608248621407836918506645000720246449942097424156210389767422690322378188154316033969060434157770843733543763097052134214802550016851104616266599172818119997467844101178039021523211934822092291266829312133482890477700845502434343433421920559597666085322021651137945057569283365104888854554735102611483631582190120173213421597950644562791013158283218850969117060656521577425571951909620474478997738587704718186600633401681650941437579977307802433475602818437294158747809734498897653786460356931906555105109931595940918832820814274951619095513117379809596384725007594222148380299175785404294638878334738166693439953966567158110299739550674379316335674026509078283904740028052754123214800519749153239488486496151340922303198316906880768562899323450504091128628403328628282587882665252724926154030357323373853540783625954108297539459850954505993276638702554908578649169372244180838622184882440495786556309005563751154409154042548341330045907501449330724039635066919551169043352421252902229096256814796665001478683323530288357827150083920155304926323338894570468226195226665480379347771278864609004312282990685390001098134361347950303447333226784824810610382183101192681494755686713141348620492562292379498059028277554969961965235634758332614237353175592632980892556876766573713615646099244397454446342689243346115717748536155500239343183461709970822386037892506433509112409814266858364244115178336660592414359404233578269748068312309890094861311091508770646910035037456417458883392665945353483250116838204628070724381191350870016722814689937382171572222607665697370877043524974036317963529061802598298712838865900790770582507292698683460190763709221945362356731100499294112192304109792508561617089473010126360712692039652602812308897254747128855826869912349044190446254149694886549607215161221879931150892145614963399206471596611690549965466041692529380616045185315343919897444965084679526777303221742914898974315941012368419424960877831142642347856585731958162537391729875677494288266238941086674778485177708885656895134845917164862276887366092924629886842981512477891268421198464029500641940484940275428459575264751219237781687736742903590967870831356522424532603635622346561787085806697510161819777281177524129496592825121670218967209290390559807183422931480896093406773580530018911451830262356194345970882974573421573296200547220465241041129675191727473973718256771665021346322093714376689029342978690765220835748330555920832022301153334885838387778249966099086105371241028536831730875073077850589705153750598031843917806988577828344075153065582081414558131560766316249807231887230177913536226873651167783910431452618454850165117968161632620564754565977747197912312044943021507355992407764808830534206893905869355369351260937835473461359214210106812209341950019702476625751480236107801351416383502366636408051087836355070405621289496031769385535133963798512344085063906529575555988591801153489063043327900056444209811357634995720709765283661187735690040841690434665816702688377725586047105442285322395557344122497942891643370260295035917474379168254809122083625489029186974995583016629922239822804365744798636738956355787776573818333937535651167827396453869839485005215266227085906682574168569807121754811523619259408364921472177308794685704547663344709384202522571361103464071469527927677718882259556323603217799421017461064937233512900731560118300640450975550396530914946751170562335423608388380977528504101456266663557037440567251215943000953746788912491337094992097766073752922069101298901350070487407279753346766174178152997907607315791656964368144459560622431775590134494909817401225731296121747082126778729794855171240469330796982638690711282912610304220748744046213363436442555352654385107787586666941693179663019501163972231537963119205480503372076931683503034440967849136316260026376432190468896294014806872271547925910143013964379830385437706482048326216825643763548428619141893605184820000021777535658050290571622387184602416072303467799525637430412820690262359104880728473040243718036690386446055852388077986635807631207816528984214120381400650136407388580399454906639995150703714721595697001178463009268055746288207345018270168098916785902194808658473406221285269918487027811205917990473680780293631385905298876946813136829073418332701082403405528948026752648888745177992889630135407973277489640815855561036997424349043794093812959370540710003867543329002522237125426569869765348832281287907774836507332502098490105567130396255529559860337333060941939422453001081381845882638188768177563307853564199731336035866063467527920576579817537852946387913606358386368771698211357381830355407665689987855822616886796805145717550352902477278378628687862808153045911521609543386241730823939528399405575526764529542617776149816815122863675836561921686506779344448047463191882592757749119616838404808517231295823258882514151604216322074623255269521335214163235086663516111752994152809004552779924959608936863603182606163952029891412288207930341342255404036995424137981805681126202026323165835103477391559594733598698119078437066238357522647620151448749120869944984227150539453482769877048030552785144032515044642785734260629072751369542792816493230798337329621727580665316397114932126973298990825168005733153474619893001260345549685624638649898991124149267293307378027559454521701604600357991483354628988927212676322971167936096184714647793389934993622338785361121020321404116054629488940335031166898968350853650189580811082655571511256204094650009455701967281507850443631804564375755460967168399224001853294036819897056873852968405404833858549793194155369311598543936758671515133513050835630910863583679306720952174942086133904298401818631594960272377826060117461498797324011743803327502098827611468018565956829484336507233641138049485345883369576108774312794651514926006490584212377136039952351260243935381245468532024078644380192544125138022143747665037697480551798763790095994090398374857862752429585256538608330399139037254725905044561336147893596113500808829429518675656721177902884564222536971427030119458362569295246779298993408837699104719682300089980092585513633661736890786321619366010989144425489238704773134493394876892516433383590139912656451736436139050319609198985211670675195107127422534719928055481359038979366776427932966443010592453384982031095419751342373544224908105168184599035569147305701824526849143262546723789658080623170533200742129197149609201015107615067335918930518612346420085739938221086565587341411382265428166832348979756837968309953112913458820928651128052664993563405240469891880993560425176485671661697193065612760223811376438487840143833553602303373801139249986873172136360917732715931672337623412173202486838031349781727964086689981611887568137527460636370036416896703161939299909555158809778738541978105105313248912303723430017290803262036611963097246665128719550362102113805003594037260005429681113419702842206405879985346759838093797961864591161240510125911391965749307422644138657564678995179382597353270493616323977365562470655127387775110497166946289791532844708693278400586892931604724408607854596990621272119789253491326611122086626388571657582896149690438485022551101507642921466492606067456078011265788797129995440068225019278787957255890856041828445215364903281216740420387723452882728072973411532576715990158747752028114704464087589408148378319114646744527059143322134982185252406597657010789225619352589653571976213522951354946383706021326852532171180471856150088538128314486836830156485153203385865017428912582049088788387398342957386053173460642266393406347079056776553971552662671310378395468187890589266342642711661107296629437146310029430557300733147210304027668341855643579472305339006495543357231371486113020131358080736124415854574073440594993252710196861759804129865426879740702367621352458430566418730242240294770659263229654486859322581452100167969187244320446787623339175881215063616772265509817986225142152553233160825849103660373588000890115511982730839033397362305001155632069238145345339741195274460267391387644477910972953504943146315229768381448715757037205309563669448259905906610359896589889160072569315916306103030599922672493281247930738657760997251381888640809390038237841758242542970769384782326086703066790448544282494516017493830815784413073369699102959844665657056084872968134434560556196229273980308086356016864844282707310407808860206187125037237407359313916778436708455876624630671455905836195259159849540179499263710148157468912404454790306259489672222509317584691562400450918975180386023935780251710868574762356748736581995778030275200539006661637597829906748215280017603043355673515888658472263330391936639775788262808120302031686206265593578479498505498586491762995260190144266751526803683436841817358048725544798935801275142878861405539955284068179896516339072699956963980830574395100858334582040616821591199456126648075012528394768248383588780559159588055797810777407566838521173045256568883554137883884931086512952937823119022457876747378477595448549965470606418368282478992270822609763736479834500789786345897999269136024989478505859814997817475304540690636028658510983022218089398950111330838992920075952413745020442974124869954369737984175313664524976022710131745882883333086752645204584556295323180367349640599509571319610587142889481843979738404764040804079088366381870600425222684203982817518383856185351759234795087893364002513565800242984574227901776350939932932582082796114042128293760385894904865554037814244487369137920912933733730234354208026347643713340934013682389962114108218847044079390618488705707242770715648245145779254097910464208129237978813906292003111241290217820955582778639713811713623734900584426908837488822761658206059760535110734646304802155289034688526731296658641527355765932410350483278824833638370439777023874989921245212812328360343520897264680140803091265670266267688149093308601088215270556738470066960863907654272643897685527463289949144828324349899423005656693235398552254245708173997021889765437429417348929300103355657333024162374463164465872179805745806033583480413756563301975369601426860219426454546351517413062406831592117439719981840675946834014676204264431516536471097453300422758876787941707204245493545024682250781652479089244988147813125090475590889241091020498304961654472556665110302151739265260017349118576570055540121102710890485150634419455728345158849957321701614414702808736420504000232107132935364989308434098361623870477756381918485354741434041628425778994711472728476826131756798860093575035686954713737402124820709225960208845811992203084694035521194214434253689921393076525671296451553365172037109113842425938733711261575990377852067373686785467235486534875415619089116499241810163803665613410532545731791955384638724091453229998034013097338063240677121978102511539084691631621835155563843094310221137009002225981741643549324865477517606732002028733468510649337038441440062910179039136558476333831396667426077336106830294500346642400261176423771524815893119896424997516221082831877372296196905685477575964639153338685869454369261994665779982692617756969440468626827637457900779566264867805360743884104027218683931553100502747924504179739267709237204034895373928733144481488709798231959291147696565171769950889065471485704347467880042307427437361475323861415291248345361911683983348057103718704136226889274738381775024953624239203796553179830059075141263217989687332789273919749241762842100129077217926241970444851583879480319255549559850653554762514378127063343179949372340600212897999375104816990663684971799343087507448414968525359855750282087226712165795316552900648274940206042708328230872379802235689476188416594215970470690679680159327647493396297633888651573407004844651834956935811117076936371381426400079694841648498828339273020798729278631011744585818755566787309079345864706894258492932390700243515857171664846796061266316016767378595808149141185704610068777332189698525236125543545645035414282738299836558612937427886011356495467620736152775100131476985741106955919545945755326199510171759749205959376882706200115043024259554934602525031273470901858972197441347893504739442542419748633247863496046987802122342986417697887778719679282324339683635254758921516094119829949111729094341136263731526700034911507108001773131652940890680852460704134909566757809899194843415356727008007179968240985487933433637232798209626965464578525401154033196141623295031626561531643756137317252011606108002697442088381411190653643390176889121124185746201992262761840126310552833076808435640484885022935128852047908272552649128210000202433628673808539850973358601210161305765937779929168404732274483866811266083286927903088079888747663618962696378176372599119019071765269441578901548802528542475772401766889055784267698617363087565714082944837618262838603704834841907179786855705805035636207159479546267857262784538855249617818410318941358080249842731142865034873727868818411672560847325429621662092620047178158666742708954184129118500723163822968791999805658757670002657069630603359151660765909031340900575664969002711549313519693148403519531183454582887544969961888766300838465532607235781227203932232144683297616585664163846816309546796957393214752611979070908071381303952424578528987176226681929079532045294871934945788262670478052542622310410921171311115107620825636140216312674855154252010080576827111054864354200620918517510953326003189780827735670308162527252233583503129609048999873102363746467491489265791349124820837472606526319152897000936983121755174793252589231639195824954970810393943745764814028644930932430837019541984878252173492886544072377028449543557539874255173736210073456138765902542674152936824816553547948392776557965852860618836766202161320777867188107895977751525415307318459463113026851613790044991121240583707590644687032636857168619805383001460270796314808799588143419530938194554399793240234543584667557526367868015242119314071562142977807828945326714573595852568376198815771488821255554005615420257284601788090700819875641610105797959363384343746260855047514511458517880310033634809740744722630229343755080936189637952930317705818038308809729125206397155254926115418651124467674602734008343772393628444816694583727170680543624895048793812235740194692821125631661552461840900790023078621309945159158434832902430040828435188756508932175780154386693948863137343143061476003601088754810144084025776655376697063426078578857879167645382404241589805095422638452333992484597889047175926744224863797201640908990318728323405470641353855939010791178475586427920675171205814978385705078056575921823015862035133013240585448907917390276239705477416816371466529356932900424198248109576069206114340412607497730410673902305930320369613076868696305041705774584767281901973756615687499522868947403353002727988440407036325409695258284420346961536316704660895173946752551036609485235235826799854398220210738878021542760370592343588992167948763221626543227245574056525521119536982785769511225017310361528368257837285878687043519037869081784553871280967470026835562089546104397679467371691240693533552845601860640518323579512563127446038935277962325363552269751429543667945603138558073404952248647301365744510638713138526084106069242322076194930270759960347116002435684324631937335098687789579647069926604175581082277737561653266600681082122017360026045445741438132461286227814483683041312566420263482960416846213105979870787608098837067162233363982730910500555949314989673857478940152273219896388428017433833419177364260199761645040155628101867571566784879939277984488594922628979089805913538400461336779463014839708570300757657070914559797235904099722912564983858416011052314939272456020026697561564758895746573482052491820648518318921189794244711315214613445278482615883802189717791257722889245646076955087525414031838840644767474039131027038439548863385213174529391346992211073354993085215363432715455391613868228291379903483291781645877754720081928362865184521577375363384326267474737410169184226457011761341932941753255184269699151032544908511540305881597882683544719982252734433943389575108049927669369363326637678496829347773959044945560797881715281580934065850849940444417324025987179604591082074420369942311613108793923041268725795192608370224842567542041178083684205216715566697071475111519462392976562438122382244362423644644389569357014707635356879090105670334812019181129320916041914261186430932528937763833140155907196815592409125023584522615688957437395744234668155225661112173941965295361729488485877544041493784012495975163096892933056155703057661313917382363785147904159591759735865490266604878121794151207188797343940362876859316732875497957112049357465746570003268010917347958317495267092055219262080400137247769990274215437523385853854139633862731564212149098685795415830240209369615546679774582201371803814331483827344442616694885120157041925381763072771018618135265372567715314632342882301853037103177099897061813508129161522641637641291605668758516186918925782514794801447001990585918075286991521599158414178013726529708794767171947328325985458058227946243364918461016932658329377996731161620107993640233486608362411345409224729652796846037356880744411065959887411798590740701213631055956601310669974664150096606536196669028878229465663858925420367044557874883100347618223566984809787749981407958968588814521113371049093346807928278486161966539181038032278736713034347801332103403602399351413242478325347890902864300484335167680313349734486931501151290554001373828276634862332159686197031846136505687179037781646427273946676018275430450808840121228155991707645838751701023716779516629429939648137824061745509029649251553301692802963381131508897342615441796678700715807807624588360708536706216610821885714374025501969987224065908191956328465215421834205785017612778285691481427118604174368649546713729107836558653979785945401078853643798342032820920127276783165799724431940345057698437515910179432312317901231292267353051394507973465305995569374337108931749321979646955328842965080870547401471994462984756309277256710181486141096948078522419364123885409517695496247140616550416620182340763781316259423429238334023918329717185957776804679492610263083606869312570053838610113525873848507531322139522892575481893694337064811607487672931976245893252766516360421188118092737870134216370869101542481740709847494551303786893252919963865658638781365223109648551962292948055437392446648232573310835463586646413835778475468469902338048776943135481445632752881250784221350120484823254580464292091396000604411960887589583436807270546938376588036894437271628869337937391466014468795282943861286939776310241891869310601163629488969975056959947534330673934879307872895179644930952451229431898659413877707178755669789610482438371404883684685759955486930572643380462661910655541749563801960414262868925940746179206556769804960013785387058858950362359461672825211669919356148260578899921224729023833204361042065507185871446947454029113896232929206473433334800351905768828312518736276386197154891114404462770365182673683982353674061713851585054846860947787267786028338419455540200460066179047892533659914758189387882947068254622044495316345126901908262746329878359715579829032525862183137049615879574188058436148220048350262682364420581350146736087669288257879389822434749555514638324214653233336328547558413349108316384431310043728016616404700770154147723206197026244357283245055388381902787096601750572200065459883847695196443285837093601644347367987636485077221227463488153089937573581024246111182806953358215442691033366055258250783382206198896858736181023777239866226104121834658442063960019912345147385203683725305536447800150622328416631400338766747933507623867162511634438996195281001508388681335901257739516063844462232467409038803218802506560800531590101822723467812044684078735050189056811345366282761452674435130612508605549892766953709342185088755099144827638860561481656770108235395066439236796972347578664460979235525450359261872928515636939154034150191346577790713781041452022910015145263611905793100588293400235633553244356948746507002671357785871157836941954778456234937596673862262342312612368711173122279397412975707187110977636701915075078295124768370939332477442532887102192444436144383121356284456998331246987469222818621545956263266869216189794666613520307050122535883192536765998492857352357858640829425774290210554178532240051969287192198231277574082823026318862565468416098392796780701733785386005804989161999652261742156082723472508131619244954047652399273076276627254590167837531886518478018498760936181153695711866755168085507442897239739881195571059237382227284447517228038884368141959608950688666819040043522218637945251726396864977532595826739118383279316328195878678432439229882111475912323818004762754145474413441652114949832053733398963264220291171743710329176567815874761488225518462741392234611810266863531058344287504959837969607411657041695819072497469282334637201851030278214068213769270442413541740863622016146332515900259945623653711121362392644663413642108843498994693134232540094654867556952169811514622367905938160223179979588655789327341178267060661052705673842501482567262501157411424292954464857079793502478186001982717354641707027673818030161531850397015559004982932362772947750461159836091051681686607048942025835047856982282177669713405837034201364010062417602091633616950369451940159380674049090157190148150566388516430284038338057277123841132574517973064099016727961678639735301894527983996137447959817722941096145403095605456445361639972527949190612271074368674726699247161879685161076812406228804742887199936550009248223629264924031834625555516296269709377129150437630130264911142739969051895184412504737256992831287685434535526955698757832400370779516371908093676844462195771193222119974364101900502325886560816522021063629202010875485487965857814821796305329419076906841068280624976316585629037013556800650161837246989172866478714021755396669412177633829819073544915829823311195763792233801722232024868592337884241490741643940591587551656415985532936611004072429381931469342011865410286943397786656228207904175898045337728653327623346744915802253741289508995188495090338681631179511519061294063342202129058915916835399532812910389633788131541904768032533571768416353409032197764523976607823371537772554991082433222109700351887895254299452944774461754175793468863933852780154799362527908269314891658347657726669865227336016146262342446299129514542651663207070773603811508891641574855110309091481954539812431146125469887468817741976157640063361997409544711259305494804842424386026975239381845688668543866014148436591709383854529555392313898897524831329930415405179892624101058507585599637786934120545464298645449025020216179054924003469787763739954554880653809484372725421652568813866936418470710763390692401638165653057516803203329161912712735349565158731610338948539648049186124837440169147036166703483700571420161704771115876832018718962933905458789629567729863331607530503294836433688386297557116498513986355731135470757632514254942842603684963254009837640061819402252087066990918927053008993069619963176919941422378471065497449061269717782538443459579093515646973758998517070273495904241310266329879281751876967391201408615735122061110217282971950732039810347023376613888053764222340511830693987220939716755306398495461989299898436046005661722304701587936006333513497365533155615500088465545273368017743703500580032020093532436897936215716144288355464437545028291064230173511491774047177724771508087550103075375465128006560269674397705874843956932296022633166740706339152326650871079271440745608453746540661762075418875268214340435108573419635109183068416783337588149634532688017472755801478501013014454077214699555945890337460859351804711700398748427653350592431830357008592226684429788026019081312856242187241332312635053288468050671084216491720558612877690320640146003644161540428219218283732215082940067067805874385742366788261306004178566498321375189574042049353261917546023872056407134321426734174285285257864940015959758237980020276989839596616154830882163323932435984703032554805745527431752953835183148522428048357159157961760065400688575616928776031074649749319877424092712280556286897750732066159033227582109970919879286472114006878497445998557841979441352676790355373791636897270419849754786705436470524941996518657519910359646179017083443916459460829058135672600877260611832097377458990316624909441549803506881148141048347902886257777365057624366295226393874869797998526126117395186932671244526614366091644401378802366559227072114954550595528496523949264795350308148396737583553157356573950681717475957498913516195813238174794057448643391527258212959620260759109014312847829401081031670379159394740336841703783997559749627447181481647645418853102214302702094979300507236318235624564263327955329720980677044870678287547563856136064626949682781276158363007511476988746096671839758045911377096899846261905016471219848782784080595791316035751723378342131385511126611892657787769573073904465444404311024450004844946228755150637249726557394887512127150034850092643422974661917372911735157679589382630627722852733110413720295109398185653876849942279785672760602637157976520216729967165001938737676603609917614289294397637596038887919626024739808011581664806769145138586207475998459288588805122996124649285110627737371874663481481437602306097471444523097155063412721076431542501841069036042893321546535404196676550122293315393939254680490368975389189970117435299720225027048126298182461175670385645453939676256575473346927772502727987663360540244376912498716078523939112446896399498278133400850945488195265336897719920958454510236014570518927364097514194434117272100159577569209230771409267830819456362693326727763943223053103853085917566297126046864860460906301075241691269217247347969522962311819729532458201566497204282461273749486415870980932316131426959191994547167157769979798703436712345867203373310844057920500207840552584396461413740968179269350679083085950195486593343173281381296961712077693642640096977087851550396263605003443748102686782508419228505842049316510496262361386673892580779759229545120360416727229835624965413024712621329122744171713834279182398418963818605200986963368547017058917403292906511312626823429497857734913506229229626427089694425500988829603407529746954732947850657707636250302855163592561680418994370597120329341029338793318285191132580715063531299470249755380447514477416712147249241513332036525437077389317165597439278676482910599118767408783662316548680298803835816059611990904181891156022221805323809759677819901897350045916480588092209929952814940121358046100257540606520844005551535813364050134796751062396301006738892341562420519751929017649604990256258949964214482954578412060707511066584281091109141615807514109109119096528942681874199887798472579297523691493188438782559073878250019561943497927126943966244062749888702812180903090706458927593517378706274926399723130692105764834770348817183802953295890306840405420702358042118282970132565895272049341509091666171326972129990614857450424414474768265242255848886683702585872480022863364535281563868323504409870947286750407856319368298054954973788054018110876942829499378771465752457319694474147171292194922054228684318667861626212959680659772607410538161306680212296131607661695252245480604701919588141927435886838823349129262602271714700344530047029441045047295265433149708847460164372711195799546736677065808231662440228840963728875863355701878349473223679254338378327530704566272135129080930948409469338267804760479135338119128808679781307493086387382691764925213031719315156976580628484014604306887375362394453641888799445858226714689654775451784357435785563780037472018405143877813165234141799658650410639003186335239601716016137161218020276294805666090539053109972499451759856886511484270907243971483149951640220035739737581399936410630082807811914582815875950085307783828473947736950405817180992294426252686893889296265258833452878630617257816854257625259964706902295041597069800508774695396490117684153854005958155636610036614847276128516487431610052562490052299969157228481260662476307424444254825234051253649804563307173916381424868431245402566517804418834537740255330552296364248473711272052772305858964812450256807849506058476858470455719545294992751153551606284615358372965317467196556084038450817185557719394765208494031310401394167308744092907537599316388534363765317084973533029660902562404926653060755965815910065145261446180449169084630882519813384895676821250086283474603183940006518734789811983351039822905730059508914719622169094532680107891349558837671273549651895748227587393911967236235508156640149869850458600073808654570162141084710538703272409752095308480554852717289640142629755428998232232404628698377262314513798421887752567637000519467394421510510307190701715024154353932212248552384468178148672080077580820855836997197499014160497133318225379622427152337793192981990237692457181468762633679139135421735797938165350580932790739712857842003246647046350431469032424273521249538974606130507512786396041194034720894361763980439714051226295012590041824842962455845308789761686082829186381555266374734751669947225395213441258924915964268183952535872126586639707086731405833378494937102117324908632042648551691468606891166052626544130460345254651894701231030361982940393214652516479803261848398939334351765230950857190939678558454042892312192440644947103632422767427727068381636712086945057439496562933330086711788477556391256189392472284069941731867219920671657067739166468840125927717712116560951531024256295756530091289912475898952893768773730573577579801223979467667494640971902637753050626609394955434364161231242133333855161518032401636655867224731194889097326696389868160980385571065219000121800944761733807100267551640976781653869567860191037340024652734297461728696757169445641384438520615336930592675226137046090247763935311569544532125400318286795541117066108970221428383064696679353924136878556357441787710811426036364169436623587999933067408350320325252949305574410936584780656987025989977233597650488703029202032602030368651112655590958682666904424203894495772112058388053977584000766760982664716117399929621390241269732985580479713884628539007503399026943678575105884029937699779022499674718285785186437017222932861310526696551096770851500077646022430118198050935964716952959913706877865696769272744893422611203837188569503587367131669768049946886696555314938252025286325458641858403045438143549932720435007011665208396259154463708698718110816428611978590137734421664172801756229334907999359898778729333905852150564932450648209783460296874058867524350797759671308427762206510588911806956387758571142286067323755608753630891291560334078209934395471774883001384228748293774120241727927818932466950392695609745449939131094793279888000225390368879065324646400602279682278386558540034923683137497102490208743228349664145260349195557770268383634043213700769393369576891988238863970172736688846680500876845770817517167605288339137430327503376800015701235241841319218291755250432607921027638733246013214609855050217195447056136196047839100695021337194304788225916756906387691387799246836257517091722469631641261360730740616095032682009851930573821433882665843061171819204648901166955256235673510586945978214543885972560196554695640026649266996123448284642391470707632558023535294243236081021032342096267188749578242901458099022640287263143512942401810588456119113740812452629451918762642979686242954655036645558762480630442261347404701498811794846791523366403592083758868152072717779254363829407760496238480627921549377235893039411606633158750874733184694623566404720615918493148560000091882243004776634225664275684291959634073743810660787670171577557437992039548903808645668643930028351874493539605958577034809029540262101964351655245278215555509487821556661499854181063954705177620046628804798338428495767105972846100201655980580390492128390375195784806569153383722037266313694091437864993835014596018527976861210045756517465834158162247648685588443316330725219693447762681148131917668000226139374383149384309611224932615513204635230416278015565177225025504928276671750220566772504708573829172002901767672317206858299244390776316701577106018540225110514259692731654407111083268293677438987065831226761150127031541778956603857597292375029810095409666826030250134817943944998376440636574152964223018351840202339089146502874509420180695902348114624302013268759375941251611324432445136075361453262320622170588035592238518069413310069538011471252676950502970745067491786060805432320541083898417260726531557851939725870922280182161139908887379838807202756988603355890188410854129679056892356657644285426476222543870877719571459911826912177078488460436775776916918363342532501498944411570650714588601344486455162219032126779579240051907200714511563769888447172836990978885152995856777761430253539066974776031409441299614883416304727305399635866827436137255053339237662671787184308620267863766614577432512552412709023466655126918102209459101289151389620752324543360388494971858904636654897706313497946711955088835784528087965680307140786430144269181168566221679928688456910207713485092303432014035816688341559074320357072836774586623713445297691283467026433530699620453875125800822397874937369079239851405444405282691556467875106738701018114677613331075354502767096562408785524093557778798407301232384058707662883943284022192710219047536285336003387356569888301453028691208861963220447341743189583262259101595777510815464135954757664671528877655288120299893144282671581614431121739541557194847214716718117322616306909772150356900357728135174179609499317464753837346155511700449864981916245008858636124195244136447139468058130413911225724941830805905361925277516357443745883818004113347492163920186308993360697318153028091820919361935563226321199212421346359859521046988376612816075783974732212673311561656308504864818123006986541588601625243874922887154789436843356628815273391022280882365269810911933508561034226584042885092781030558264258540818781352025542336079314655856836488749179367635734470592646019463552447063144053470103786090779671598642446775462881592599821703495510617530814818633681385509607128192528232005234909279870877191625826182872968240973098573646651610389599156070353941193029435897812888838379638937090439414480683627770514314224273988787765933428909711935028107020131758053397307650750819055110296825620096833400607773212836253943606794901234580096430148790054499348414755271889805494340981371851981569571094543489013520485056774179968375131881803367487149656987621636581398639507422902711321985986943125322003406787917977236870915731460078730204683479369989933928218138537864069122957542939782704935875486128309113898205209306926218826420847647238444510413053778968366207987311128692908612657706082722294382953313263101740916228708023111033159433308142196025135724676838297223837069262008060723849440078030877743525788439428294950959353673651871076643675502489759244225805307190690297911424104620538955665871212590479354923725570688015813022736770649953955504713332291689422059396265091034054716920342566057896050296595581316820368981443983231509798929668121132120730078116849378919453206091207304816680635993153186542874582109398713666088956771154111955350351508422990861358663274712381787188395269001300475067823285288623769225178193088363119381787295550190773178199764756286280308559310773940712242330428124039097098933459558200617379382957154800057731216049121025632223944648515756790921050024653699427596932616505580365187317044038651021007732152028582173363706769446985970610147528303701236117221955393314611071384791673959308621146862333161924580968924866340950155727542988965547541524727009522672561618455420832205464535062366833950049063419913620802351530546050261896575318646167968146898969043452983107648113601872458447116868796993814853267741551796967516448220830360909764581433951910986016708990179830181408648109941829654956399085952320408807973037230101665437995992905087072390487571072906637486097555164208364169541847830947023816337199571417895951960191142612240218965193048492802857309377192509707838543637710671384182838771430576246842880827181803091045788080045680527630874716938925877508914979238125390480164411773688176479430832168262245176101917632186381116222421313355888064262583161079220750511881412244998457661954435503451286529341209966011675100815053231253661180336804135996316817278693784091734935965431808366052955594103363782271373901602602496676149986129012746142369494209744212655433603604157897749791633103299081139526186853900033725769856645434643393991421387808335390121215842062999080879587012715945097738014539846450357808081889276033211849633222016687762697260948583471212588927940346766086779560790680814345816568604812973471931181124664134104186763460868857463820171032436230101776677533897543316649997224233238329642114727254113831877627777991458881924849703428679788984004757867407467032844612914158994440585059298680491126422911586490712598945347069103387178720390551434987440693129055575160303934025087189605927313210996678120801721800818353288003750668362085324385135347732466087731316754635306523601593288847205557184202988160675093330500962833326315326089074415650052751098661806749010489592898282406964257828685695232108908585025630169983357778635211424435629978947140819733372541134376916004451354873894424678005963093586658296333503863279992271506537350041616300250711867661959088296534394145358992660332012806416124789033497943815917488651138897283351287800158242574423950555533655772875870223200223044919909775854474520791336761627039191193832267299503755371326964542328941532859642441576733111401286737080456537086855681000688747547474855957576320046278960632071358703045201710308365545700653725132565192234728024338711239554672415967150715728801670862215425771982731629139815035955883111672058679806170788558102244520458287565856597915680111262278994589492453010061288623367826461031825008295184675433754712565305324785804488863778061988049271703819758947207189449834152149650527990398773437515931615024230145116937005543561244683059880525896143395208499887288180145433818075561072741607709130940780552202126039576718896908678706521154001320866375460717991915621361214882501676806476628499975704689371170592588380920806187680627356389601451141833226729997174934229270225591279216240337179136736384210941761734465034672593900369822939213537365341135667066548407429941866313392004618003668426844290114779648044993363504177794196545121712759320277734173018188468330214266897154613182001305432906444311494902250372611461384763731793421399311863748764994531547709155344798619346092277515850589509790950738518316009162590214353778933290938533337716784840852247204065687087611384436050830163980458890771865374437104734384218845359820595709895787818864187705980561066960739834497134234935497360991099527546001202670136433799040288029447484267308677835327133840143507950868405769243175936817397385097223369838450209807340549590070044830883206411269005475994805595733472385950676997429096672285477952839995064729466107821050277620688313251081017434204380205724946639862846125214239371659909007003417942701672678384977707743064188187647690734230814478264866224909337781140604484847702473271091626228604132800513587054729944331139216553152183108081774546297717880252818874732055674943317105478470814783267140999243032279710671799437336555756696387583037143435074721957473487727942980381408313684801137356664069375276227405195712494019449730127972388041130141561292041712079705702633985494967844284346605339407455064285437283751635860226578142379291692229086593324638724138336319586096432037420226839200565632354258360464572951198299173503340510207802061672168591356115706654641754092122579815120171715551987530674922210702976275526938458041131993440572943446975678162691571094930419914155219009880810015623250903921980865671514203332901717574210606690594253111261065404997853772936920423339904728655682096420647118041747954549645839276143864280508542727733922264668827326803648028470340083155969300928160472033736898554290598249718582240526535729977512765238963162286399468567590621965810336145511954632794821611782597957033314620218946579544742620776891902217162663999138207222344143345582526554911760352756570255874699364858774731537708172815811681281943254511787860066112329273499848979114548920247337413615726804505906705346571836274687308055795366706432017318901602310753257490412442716796732298492271087485343819636899324508592527193464116372111807307252819893837474423844622122037476829422848071441200634762308053323273350616115655305240886179390686720988715060976459554258722042516954276633306168091228907409897735291096568415919142413986052050488629820283302417552085647143089347138021582647263756362655975419901879769751429875908293176006246679659477274997987604498898141624045890081460997153114215283817952522647952148220990726906602622741314369578275770729357693521174016704767551438237762247682081698632093716465556292925852486906420982429573313332708677216994659551213621613610214409792042900993578217806672740762441737804789391139502970551583858030749446956015578721725452529863313745494244634509518411797425052822572832464159370881797640681991997482953003635344442068657547350075347932060685571296115305605969361691237075293582023374996966854014085116070602926498680027059394057171732507441619063241185798906867375171608574689454693882716543769932565917684761408584863471271954692159372351762423003374255855907224532007055467224384921596630289465163387646735833108945899851795016407770130073358041330558489516250140409971529590112873392200881040062217516897838372972025963399251899825601811730475237754693135315490262934515101731881106420734266868048440989796729153795887589630252654882662167319446997707415835298463167578927304367009373547846909011868743158265936943174342686823597981554931053346628762427103959180679921473816538412109706946451447353491497202053938919087167418868047062474199340316410974871928905845881143375509601513395676341086219721016772513789365720190549523093677738698980904449019088491438881230221248408460603440485798069618847839851293663685975309418288188420266761286034105172811544518896128576029498543774542490275754582234433999990531140474763023538600122837971450410671167919889001833968136664563344214171798061582159388017202340161053450427259044366503613539975651239114102730395339799930734651656372591841102758522984436705427420443443827893411284482607197042077706877582469664426278390081638231726422436781556039724790883391215075145320756964890701484635616050850176940752885769971771204615749539734435289788843828191839970346259368266282250298405555987905485202369255669989892988669111462799845271646662183534394490526947664248889057952419943932720811246810268587228167873450649568407670359896349931988222171023186352944493162390594686114953494566855539117336084190302614648683522751404939998374489323085696636542109665615727108812179164906149129719873369677366401337650998551382253405831197860280675698083142128733538450371605266724661694304929639739851429644090879056118462434138053914841996589561472139011114522480118551735943136681794131349759293177642963851537755081988739759360532014319304647787080714996190545366522685274959969368634838551662523785434820824195026634300195455008932678372706874106196951644777235169299561640777652328301744292070474783353503978524054253734745867280664616760037958477815099170317038995281253064086184607373942534582487464093833723529719608239024735249828274893432511992468363880165559466820682825931247111797907962209216479529040574354064189197417141878474892675339820301739220790948699898700578446835930650607323007112277715270419430810000508576078821001263184027939303056288334891653640633710744113048563692416313916803659984185997216331428628817002156694733862695899653528352179552202391349916882131678564046765285567677686118721258119773720022316738373641249594401600309693657934654627799135703390741900466370091760829287254633995073128552973778845811828412972146225893769561159352449274253431932417241332840738004679877327495472144815019188680171411361829756024664281751781141008109592331764290986811928204587604205271852819587551717993248643971005350782650845790247978296277027027198059863059156704378704195823064943706774688219902046723652897956728701715320734299096844646660945453859989276782565839184200707421059700447243756632323144611015527260267001892537841785983243220460431034608117759110878649644836805884593986850137561178605869825513396306057760922992110735189864878809638663716067810512389575685258790943599244246584841539694137933903395528071588740434368290159114330266668429216262251298594313230263835181294296268534189620093153955203038745642444617360394792861328998183402502214496441453995033303489218855435358278086652803744092539898249735379626573446039376688301941556801580635028085733415081315581233752399208746628267295257335454275139719135075143522725880840440269412297054229181496445801819872385687488082671485493086690787962600279892594907682151976918454038058941881019567059445882403341974309553753454931931436253866075911720861256656635609830815692550348991034853618939323776344175493150565575664724793958129258156309162069954192295646995825224346849897854348405428795299409580461508059478508742937055485660844550326485365362660520432006596917101891863839973826348555392136480777771200853632260334216465901296968891869776556686066458401086017982680653677640143420246819734575419446194728129728268575527982586656068199407655491601014459266751016476903538314506292660544913450624297250502174595070802420885018336119020345882332090249108066153734344448754585257756677911686661025536104350103210064072174746998585872997051431079350889279744411411329356819863231325967060735875744863536910167054705118784329767050190592926333029211672585419995885648394148001886826708091777670054589228269485988363821008782075561542860885058765394144920234114130083826494958444676090361192565267298261013170729441395019948441432366066084168319859543970851041646703393503905775347981173148444005392885281088719704824309383585281595019480707591552065008123083962147491774870632768084741307969498120843843958757713783923740317105848327185083388053853569774375221632822524960481430338184750154069256755253490542731744148149250628486624974929206430301256215696614256301211036529954565039622035061047437870647690217190537000325559808198566614305763847884611800823323884158372201942731473198523379513575511378934504784854489677477791718965564519440296889923570057900183780062728048123420026637356482965758254415473094446639638794087434535218706682563515516878128440198875248763058567512525652806324861910072285904559984265768211141226775271372569696323506511640250420205074938929406787040858313317173279664716046403369635122817352406862702981747847942217261949446214459773405862691484567217370171264476141139159021343647614429879216626577599764897950724987729808122438488206818739344750866307395944248442349190357380343497541182239928351339138643822190359090704739944403340188718363372343700653707554575352497442344819883512626651027827583730624099546432057144520317386883065888523562436139402077511280783265460681439949399792724072310886029338764576994336251369852812693397523361866039064724427987085398092164840414620448721330917165731296557298742318218668229309786169431781612006616266113982115515987868224487117093900999802878462705933159215691365639208287733439535567354957550642752899691224984365325604905877708960259846410801292985386342915902237378814339050490010832771687984698396253442145798701225242496586633761555116296528986270000285989145508617315685808136300043014027686611383235397723203851838749970174148148239764501129090483907019867805479312294237108513207302755834327701519026130352928507345456259677301405891537916758219225503887024105088215735801842401442111781845123437117219034293639827404975903790074298046181856124339274517397950830688228106784029495086102066375101114262820205178483738714245140019984790851407402938462850849984618819915614333941827428398293416468383530582707960034201576468903955246630947042057433194062375983704309028241286154488638867632957975541651847007860080447174387296280570370673261383968707132316809868919410297075620331871687015661390971546807747404772107238013659013015844749143949052697344480294690093633051946164868151983033490443470850084939559155220324515887885514494957501217212322637131507624855874532963840081642604492185712187394660694142565099519772081384396089084155267811547403378290968573614406468431222785746832553187076362699017272874620918884756961575005695030777859588040699197066831434435175990332654028424778663981722029722435899747097157231651715825342778709179884983722425761356326152943302280473436052938749054676818199543966020559946394610947315521095303276360004047700214835558884384061392268145212049730588396498657767784284178765659276610933939104153865115245865077679280709961769313811757546848114354053060569389070278464400176320828773736799197457165586741946822122469701446712098262983757930047527620610949767285125086334173162215349337015861656088065067517029641910937050554982026071114209723819140216675351967003096984158769887605071990057095849821398164290686796686863283440462023423151433330634761703316715996977947032278897567062758009415380554964481311307162021914784317555153388895746752265237957534968517735884231257402351347194824451619303203954785420768849178836650382432075348558039732937276113471872048547591412713921507195600541025305782407672613463644217021607042461678800064661293553575700606625419251886019058928368718890466797296196981830103064992633302180624208520514835933066920601478606976577324330912212017428525237576864954087310761279225593064131477319639893255332097715748078493385937608024261580204418296175044020566426166082581180945595855140173429086314273615196335408530854161789233581512234943913457738301901698429841127449144654414886571625029495876204576148940780458486638181091635294232283305719594792629902250833819801447374537838131310405297745785090915638170516486515885475818887220041414583556593460353429421230730786003082316612033939486836099212632016198694812522534937130612473602569936593181418911224370986581357174040496520002347082810550184353488008412109466086972524041363574896421005001868297829511523976254477915949474653584793733629886566943983068278308784629483375636349221768681989267363699808304543920300388551122570125442230637936380357316220209786781922142511648271834537048233013584713771102303867903982664265980703259326779038812199250934169540104574990402180943576422204881421319057211159613353004227941530852713325166994891885244867698004153030141593478470817802766044217869649825852647960681372323027233721036421528775525672388004469196623543943020888678188999229383437957314719640526658401504897261169391346661534312795842958577066347107897255396770809012369715805174910006984872129297157725672837172657113637175599394557164348064124192362647633154128869804312571317183271796082366949555118949953147661826909430313459385041820136916843133679370064213298616927198659427840857146097398443991507633909378390576036792406164873145359529541042552382609261460402595505529002534394843233584502322104235818376833917368988432586639223839923933033390438545939378071345936567836362771553770873167715387642754391323459675140172760688966533101577333965754001645723881183638662172812498873244027384791379960334701299641894752634737743545573433045106392076998183791965650418822646785755413039992964088843540776577083812835162929666560416923082985366918901556609205124041623754982617062654868437716591720513776644593364068564729811639811725202034041646457883925652139158831786446013706817303423895372866914206230039156639268310771591756640210128285622029142369341232434712139878065760521251893349366811345060391031867361244201561369021321488822040355412924982075333172474951920085204156940098772136247476117589483387691306854841810446278501335675802115807244147207882237731969562767936997155767213033078679024024386203791815847256238931346206696838970703027223788885961358726121643619508029172349255507392586110496012464948454896059683564210499340774911197679534242086588048555321434692478872429656566170512859184140951083097828303154326046737748403887364086348171060688306248962351091893719058283536336696156757373177987483361413038887423242351569472276857040776394323915561061661278597797477502207630760436477761716991009559272049992220260314235432175937468711582464248322482587204438105073080224115725573787870373045107539997760319281213568892058216029819467313388982270538835785383080159922256093714349965009828342541661016852671286851946201577638308497247452599734126942344726762889938294524982313301574480787007968974984117069840791892390728244360903173419463757772358868583326777010214074336047546205829583001602400007584049081958521811220691465048661198532696959951521999556763090453965431802852609290417768711338050362827638577276140583681425962038314221192205437972188134409777447376880144025193170357474580415202349526939802632771213380916084295957007225248389934888021483698157647247692079437695566831172456510731345856212644693802056248633513192666347141969283825714488048009610001990475342476232691152849588354337301615960614333834517406383826955968626213815298865755752081198678047722633490647301347263105237794451442869982514850380840808998151393052229403807564120881456291241625101339211113823530734775902737268656295749908713772471954461136181418521713564224351520041096400030935474734453727626578128994367069971432267465048128723115806648476894932907199089631200566944061581109623163970275902197056405384924544732110687620018476538912908603681651331734014744295503819731348346344805328124806411848556646236043564347970771878666218538287859754721507581257323877566711811419297140077118799547847568077533997371393986779833178153809695869349459471559171980062897778998850419204646344364339299708040126095190164576647863278729696622251708390083008430798004507623578595001038017685977533251249763506722033702823344532752911261900804236935619672124457637699179150109467816297361867589367159053941505204312722816209572278506988615418528670370415554591609986278409579857008703520790341067636920398749544182510102286714541435574952090756541401614218464308720878267421237468778228000670320114313719118955150433166618886580483536913186268101963373222517095142097280361216990699701706007038116167543210381966157245700020993532861269461367073773199647721371293594284101725176078187133089302331227688514725378337252115180944194540703587180654643540799140923789240704976821316603896531235086156586421194158676447901259140290483718678186477066447812668723172893694412166624571109139312265344324011375330401448987478705387131754763409313276304268454926934371397667167771838598702285461628513827502817465426770451606226707569427324374975235527403732399864896984589466142178236273789598443016447269274898358130532584581630624984474649276856926397183830393008717291748921874038558988135486386385469750287838767424203983569285969310436038964403756935872936985984408070509792050600731877347971009757067174690270468831289591087267191043283216833681140126012733562399794266880407190878179424318588943341859017274140760500451841800584068008981246658795329182098096068183145851396899397773177288965706072803673614289361799587788914175682133035999151517737063246346084585566374523697164931435004422095884860298245544485012693617685040363585462953779637184615028022039385237688292421331184965848024202089366784152021990535577214180076745218500043966657807430870017146773323666788692864837829705542241695445940445357513963920410484256497389499823594798940046177888308789659468824046156914067030246959851081103836494840847467427002812930015498917411533352628579353179940471351037057234468388928632523200888124598835148962034070736216365574776326392645422538847300960983846521371103494861123436330749704084589866086896689418240867409545538964395831923947994609051831222779872080271561893773321539546606979036984432339293804474266552106119807228195528781078362889725006017493951908095824985980924831635846391931216936903118339689765563789491842201097329879128748344619677785780876219948345790465672237231543497986267961252391501006919122484089235327551918092704654900257238532427268520893523026108279582169186974353705880654705678717604491594593240001886116203760515988566227065012482061672917774228724224475877704273491814182870215665882579340927853524888195143293724020492770648673317862574230401552072790350996267652303672424035524301765344808326501003662415412165503935006740847160921166743163277221844074642149388447409171184268649548826312841493376288194379160018393453663347978092684347138678604196616157001701710802614336268669155155265180075142289961099088174515179080964051552514607608530211065352081876362338568330496486292462620723919909486716036429176088877110917300667172326125175056388655359940438962178075144691865575353386064956406820494079603627359437588593139352200756841992841891280515432803707830302498455856885853972793879558273587729945416733434308858174209925749429408065404028034707486227962416367578141976957966480627250849949628122025726779275595284925034377383584435711025039565214062883741030348333975472873576009919458649663964595411489254067065846904497397190646517238221710844807756697578276982517018800999255717888218206477904832881688417965004554838410654092095606784834537314526907233258607322195355809083865614308913815900490573528471717251273103422133341605959614382310499815532455729454851161905252065118998035937814673027290504816272610082061439798004980926927588838929347960345906191666848273177029236996130116294151507945560057672450454673429065130944058569554748518470922224330921687037278344316138561489600119004498087164949615271893457682348320804457128823152984523948735581157744467486876999707865662310827138576511429432560783387905572299787431726754030257004096118258629350945246101942801870650619975294197991645222061805305160383820861799261390804571949020869641879788899162309490716631701064511295032432445730911397273137314856581484459528252696151145687752095541612497498013402056064302385373102465661656995124259595042154293315974332717450055008395329521541141769223327972950271875332927768441146829142087667944540170384959739327791439420896388663540312321781819135814286994392151893039542768285003534093387014217645797482805734445815445810075336773783032712310865155517457292448038335627915316217551388043944345997857166449685410538268849842232907389684941231211935861767542437907454350084045869547123899964342590762322759674835424289080066992373652646414645133351039226635180355828359602086758431689825146517040899881880126625447340737451387210679033156175163446672484639737203977994900857864538926405946054803302546982739163475186722647366622765927366018768295458236708910409160899950211020448852538059624315946925560607187742671191687345630073063568577009467310794815184886920060191233509830234131127696565332132542508477349254291387292496345692069542882949267675366722191438569126276589867681375332853118548348493704330110797035999912991948556652860777090257360703620539241865021992202643893103007141794723964322149250109222673089727428846929796910195041670454604785472251256816308681515463815598906683687542413552244858153402312593752279202409778362711950258868214183124666694449306120229394930127288125955592137672865093346961660717139615410165656387431766807966320843543385492891696942045852533874379115590188060184872703475867626178917129764370482599595217138186370519252688922998608416026607030080415338070476575619839448600406597837871222226814987410848661179813624201398334485140873661321993807710359635537427218282549168649546337773100361721383661740035433512677309272896130373050824494946840119140412850818873940762941016278153415160955563955503386905517738167958297185139825501454224847308597973990185792724922452292856084906021033941591883416797354626384004230941157703478438160252994169562328530518772986708212826453960875723344313885570003286010858106829388086476690465521656006195632863580379800924005689871880685828826489018473962638931538676825959917652313335137438813605601865039645214208295950693197008207703732050697684294773742461471284547545612277059963022259114190659312379120799125446691203845734473005681270936924749602236673865894709678860124150726099795905384877240445006880040285696069964756674164978084804705784122990876088016566381872392298627746750172102813611560620730698062780771894990588171556973606908213851550053916983631807979062297498258428753739411053267740840014338529600363434855324670502279176540816093970139494923519790624887567080914051826897071765106910519484608294247671830629811149705704593243213987829355215529992082040361835555215191584118997580289379349875835495927140222474593451081625400930141383253052221370065970924482973918203019650251838418050378799708680380287668129122617421842594966831901287602569109812848425052526627836139607839529338110130865657612058534310842351017818551251645441655484406141665143141807886717856821572039030704416436421127402437552673669965911367388822459018714818704086180544937452252042673591362099757139162601160293999861685534469388326935586400393124611344447755923991128456779327893277486354839350684668744661634581477234980093374238901420645803324387191439131766306936979485710009496044426950625556332294746084234223046765584646050516427229500199294051302672219290957734361915376379769275893936301723054807801030631992405338926224246186977658128396385958566193338635874031714488627182442251710114822700646913028898821822522331794768690029421575895580463860730791258593204065949701386888371043805488804618462043025736503344295448120799970704469022294465681832150623289925295708166620863361273267617367997937055668219071685040983644699303536437200389172795346280416302561030707561452473824650036068833309907207844936551159027934540264586033615085697384646976078571292254666744587675192398158059056089361443946097227556656874139861104187334019378878587353663468830630503744669652495936798950714516910674911791725405619584639625616194817875584885240176840567215858461784289283446657943711885606990231877728854918037761380376081056303609061150223368645133486414227857930667224475058317902389007490036651514237383139558227497280581079903336577659797332914887994586956820030352577194524427218605513993642881099639850316396673981137845606192037768765314201246895987748842975363753666933384076090652778482209505669887034271732284973235063443410265150804959925870244619188170219820878421578374915362798210686077847741010126321595650564761756682158853157419392809879247883315720333217647435157283829650383701263389415975726517705811075921293846926959559877433714355017605184132430453968905675308501345455905156345905318285796657349620638763057989231766489324107050577977088634563845942989573971737337304493195792909065203847535819234662644169254042150894592311999273501891596346145689686918917647229773824938238337786252738030392467971101095073322372498067463068688587474958915255802146665414814462576557637536946517479257813537056716099145347879358382317806864994406481039902180552437784811758183035390649005628732313104344052418941453480510438337070561565579156332046535516337191684251141309760320666019603897081593541914984211283285174724736036093418835932632550062850667237383616904583386160640826331913606946934176319937240667006364679776201768892915126825662635693866502552121358814587776789144146812965175177154308483674111211121653894166621079589429439426171773940373709059504277054222139613406538072654237155059074527843025986426238010824745422251672654631425255525680153177658332422860151050276874810787714960849379914408381622172297077610234091046502046443797218714492934261460660301497113770091073795042650233925255613417351640542687316726851897057090504363558134635975135201204577548759925151233922842741108395897407829233654094820380895067038118096647565656383116603195262572989129120763960026965875425718115484003296101756102699902099125905533020304511324953808852252836970986831217560478390928338491118441700704603020329012600692378828997347307667312110458723167339193885937958867769338509486952341510073781472373809229947172687690059058493615856458306550274793082565607389339469909183312787565405296985250801347543757379438957506742671578479005187978422355268225238262472899211635593390886027159553387807056217791169423320585143615801942888434451919687936796774623327364610269079256730194791902225679024464598839302003834590437912141836114060396155539153119991948264955677409582198233009588970395371475660280630459236931809269187755948937588075145776994886284441657958855517749821497480626086021506533424904116132115770098512386276768358556019573715130031174478895863128306293416920025936665004801053762735843404800795657418660394056589329721969769199104764399422995920628583272558976849668575158947746667239741122207695846126003533901736800661146653635939830815155906053705648828061599833086936777683247068941576532686042351362496612884471410175094753140337277134799156301436748391172628165931735765971288812050578819671383219357412470551036308218648797610609785254583323611838967450457282327865602568602349909143293020032153819354234577316121220236159819297326004365989368848805971600606878131309127933083629517593700522959492083740639688721978479635859898281215168025686500495728309988923424802155260026454319383291752778632747279819643645249647331908808051622886255303797031504627956322137647141231815155952287209771925764165881868415304875943883072486235086803807158428261205542928467459548605888333834014472623836150585867265105055229351044027346897650063204909712116288418622611099330358127903051085941265450359839428872486722994812644555388779208257327246380330586625712555155112892435236989473582292394944302460075309519280009422255964405009475171541223989448668192533307931497111841679912696625408634603841694921523156985979746347901926183089998284493040380473808971051434509431431639178386973732239958471449273597462617753498302322703914219117208117456722367552135707728196366062069412989699920261601486555504807104312639891570169253988806011101450824734096652418187200556769440614975051711856804911382581716894062032851610357830472475475654727572863252728876378012087190740333357532702512798872967746797898172398484728814599681238828270958530006793054148972231834591338996088130644131301013871548548534741258451401882454625949634406886680715309979611631527217833806074308296556075346441144122020148502273717880110588515623936415987463167186336966644090539701545885675945440632302736521336702135135554099536167213756679168522931770667543630588441517821554506605682660006831176056215770565020637691257359691999682131519107330879101601964230388608185446378034583805879503909765849289707133753326163642217073959114006106488503737782377396806123473674803275585579630881695202029690334095394386579222299071369630026117316340911122652389517105646974659099770605506468542333696568582325652005457788647901406592919165793966740775428235098861896986396869357415947976565419508166901088231529041995359395978290307333334588983818938839588853418985206762603584234357357480406266722641849081768477006465703586626821906605695278369007105965404001373741464503086648267040168810376765881533448821755719038812671889943427843753903642498480590091548449803264037453686441090187027101995075705510500527682533966612499046798073794621536024877941040757670826542992366642860716153838548285336190769879147383479482314677024918914880857027132448124488649377307659084636375171824230790980173166725253321558266581476020660949939799731918930519473219664138602425436678230824000024899896302590332361269668352417523973492675248236912675564158488493832242435057886406025142257560271801561774868522983332452985143823588821159253728954556064316681118682188197510733157622669168098488675097121224020275142730140672343350779004032103419725354157526437928635111890684226761223601843065340975832659539654517693151137979529929175933801730950898440087230147052093052952101145816712432416979941651201785126248869231784949143689523872447252095730097540935540040261915470866600906942137071179839029341168382612854164297677726241014731867898537528254141501698085238683745140967682037810624433266823811238960589395754919709137364167119366270662534054008786491535231062970012922033593001290290142877088663830728238771558157485821062550217574936439257315451170455124780180715456513433361872819087504199236902414932957382496715650748023458465423768278484331472584886249951698860671136742644389362586926658906649908680586356824511191804440498384376647284360715274639599297314094096218554846183451499734297563418540192388313562501487431982090600877147763679520323715900153497886511866460249077889124272357319689746995933003091285326879218478545489215195561106642366673788812005879344093327707940395555194220077596349231800281890901271709594800298572407096121818658751879278326147655208888304676925150097906613652986096888909338107381266120252353947132773532123232831745099264623632921998636329706367556677319934918949331675707891664177369390229892501016124888807216589765328823997413903687649045176278006349033508703228279971427919688525488437536774236323279389781291266368499383815592805411730579188878344646766276886967258206413404600109298325267847642359565804570738086709097221021996763964228017668830291096169548417657128385719119007589074681464628633011705688956637186172415644685371289676863082121422537955523592505210227659643910813310903611755188369807607053780229126084205035092040716480263400284064578748716963821677548949861640822486469309662860061893604221123062530909650963045477245633744199414048069930710845870697986397504168886710190268622880726246715239357319693285778534494554635382603701019453301746871808428464850540156136669502151133731282910266452208820852458654637261163003434897085829245475432948607627087331141804833666615511715459999167749281990964193291813288801718774477841339723588389625621715641941653023712239029912347956454096976637564518504506158482018153632139386155613190751683902973368302267952478229538268132373876059977967379021059215019004224337871807363116891097368309373467627691183669292090092170881314684808032950261016851579670379747076784378075318761320170632635854997430958014857320095742664434715546516588736072267938403782370548260564151368453092012544147132099320352505321666535237181305795180855625128596561452673900214582607016075729227934262940687641485723990865791306403375008402955125033919273909932820068494007411025592328775074939824652967287938663609256884040995634856858172247728917563538742454005290242825626163960408524831523094281930199877196740680496681094009380507793584723806402770590617994033893703113468641179964613401932745796905369239646598503505271978196146877808205999997635447970705646942084964679854663318160558839791755946632040103886955951241343941000755061989595100683346537474725668048016988436058713634568437179995960338534055539192742287482427391699803619171830248532552395752006712849748488238145341683432054976614282438649752772541975425578139081534643432452075339716132312611484196238785684755769086241889398737728406876466227193758119266874564226026538472758585500003106548445055771878040008179337669283159138346125031604558923709534426505771293530796549071331037605845516106208290650421837427152615636916356132448145769046676671613735526611987893456870919008882096990435244117970951995515730385456175353156581653423323333591403176589537000085618031298475707046195038806736144175093572694119273022009137976065656150658108319829558746390092998282097446028951039733270492036025515398001458119137397568261620790015823896315209992419680961743749156926366819348927927883676050447072315099353935488932929991101890712415204879920107475451811616442932573851820765748693394080766346181384933384601371659269324084487887839416342178632492596193129659876880465332201237630559714458332637441881382193814746823233856877283304972647108332532556407416851548322523609079456955056424918943756253454626612543984187785932281948257286033189512549123549651610284927307246819599421105726469127904556661474294951983979191469394564253383118818528939838529379789698370671051220121883282138959700549338298902155301036496652782090586618961600157059536804473788677523103557496951917685850449769972488378363794658735942301722335540022449756221276322242782982316652905207128941430120515274459821688856135491179833675092147683687127655139347433474782678633499535697027877410932599745641434183414617281991504896317711918781533904823264270806509450224436489335457795942005518825053906389304389118931134291551789345009023155462814144414807759841055985727552032399777523868036798155243586583432485819852857936308302479951109195062762917927003144013968606823154580971072668687392367642100438305768318321977022804652572884202129876280984438195965260596461429700393398405742982621064303039287403677026680179838994565022623345169091144709302425163117822630494417989320875474428378642323069592209122448319476047278226051775884652681300680861623999166779272067013219889101834986244920225318916004433152663499857425961292856773362761321174476431573662305974508692338942031539942172102331039318840097236334721571510957630881932087376782212024628261485115305295609856101427079546872857808030102300988786914200277914358420517817903645343174060189027369361661936608270414568994477519091758293918919675614522587246018963956549877790261150953987087878528507093110069008502635076858595590499109325261425682780589378797305041196464683760261773220785793560948051366238058863938866988560962455468446257464734806827876357790971362241435927513076061267551266547331339416933221837289190245113806562899570981345891108637211340815998737427255766902514108901613804946862320125519326594555560476200003812064115805189050900152313153062567382532536122008216919902940166861657741214599093671026282040976411501042680676920102285771377181725424386978734004651373285330641060687411132069941319872773113851801438077812639818485334824570033367631892881373436144995703985697881260896666487695995760696186969788884637779312325886524343486950422650175054056222328242234476344241256006947831527457503434427181371695542485730355795940938551381820760160788740356106557600358508586169289019553049243436086379867975551260135592420331584870778413499023163382714110504619796909304453328090878070491869748503188339623811360497802257332986311293515421741995311184388804451226017386417512747473089465574951473148181706491114813558168301803285636984799608755268227434367521527828212223272417683186199865788001764296424655473007228147871264561463552968885858815910501363013569418129631137456060822361186895771223395067859352578634295776330439167674440309444827964278660685261678559150164723142809850820792173430537253223038482466825549884723903454061398402739649719040051627676575434835457424143590542149569871251838837457234842322605292377317248589764744091111058606359100661335447808401535869917122637478423850152629456695948480313082337035126560351222633817830292157747131771027286634819902890492551023818813598700122583399722170614003614604143973370897363994566471852231303350810979505614099589505754750929420569083525803758630962302806473867160427901788438875665637292164020762561305726964873504562403734174680750787386171689916466077903096840921108590354071623484530406729575480117738546254866746196010601922434954844891326522235996791696911238818304180748782765978065659442758603140336334896640784557408737035658195231300631660291913534630116979247478371560286576273019199610795016006024625669007639066860820300107296464058401801107092037248623695712140581295607330944691917384863010898407647654153638065147109282012277953035808316404405543777962459427709157780064555375375495273870396020226450571764862387443450966703409435513499967065791850544797977786994915292465521455027468570126307150141871860162453641104304689407272215711060288877464166984504510330180403459253810012655175909463139315015563857522828882745934352656846137163858655841887864873979783988310107477432332459361373684875192771397299146547463951116453452476120048467927041242517040867984768591702155039326641166422685029692883143750545943238166820214111955544338812944775351384787722240284248423590426298582140996208521557603214464883115671141862105712877554548800293953898267315341860594201709333063598247968896222630700428757480488932548130242714252519965517313250901431782666072257619278431349275827217042844767884030711526896826498495196310522354535812451072416836728896792037575214989148899247277091736571331373115691287223794946371517479137401253777345909117336085435923170170276712834922843801730558359032972716344035163652035920005420851857694646060890517698740152236311246832261554371106420052481267968917055478490529496808840006360416942137275859390283344944264219113588353095928945196876785838431279346559780425529681759379453062072857396420415084481150158719013651350375392817096438455726903072461915203869302625142118254360226907914665691106993445079403805647792656917282865691737319514874458183967483367628199952486859185665113785439942595414602240929247161794668301122157060069306369944666851770993309979117129247179070135912915369908014680981751009581244644021736697076602072853677293092326783414081801727611776881640269153004118650997553636239561635934991610976103114541964446433997976822115728618755312330098230336224239318245608832042463101624567202807312458539464015430955465571946762459250331270607188659928993326884474219832724800850650941469779999229424276369773393899580142864661838837237919589899542786702267826894106280241238229218200472004405444015689739162270327860994254008664078237797076016322058065240690671615763812665184949374654272281408731795945631503553588101472197679909282386699839816246900389426938829720061626767091851687459238294328820667383607549023539401232618152459144028366809807575406715714741301288192530693413588401534816565026864392035030298656688025006523479227055223865292288767161916828715182717105561129341187387317289677012328186626743834939186798256211536585589761402918305232718771909080230799740199882274527691051611957296588821163642486307636347208166448563787516851965404344385329640170864288199676743995544713956888526310913917789860716182359486236000951234914458716091101256253086060280309794592575748426771598585876227869650654792162760344578248062478554704672743203685370433842798623958332474960920111217231229837559181950556878990753982833068330919240932992825640845017820291025372403552708257556711895499988854365811882158137211518015729104568519242386281077606158557345440285470629613910165856192628649777907915380015982707326259252431214301954992019335259282086229880678578926566288934444208882318438650462625272484684502911378967175085646899452449141403637970447500643645464166436740856213816344467291657607396054777453339184385487388931447680640508176054527105641794835570527457805066970728148731807089658702097099899811286535797232629894688208091523732198921338258509433651294154308005280961084068307972391833305100501049387342827756576011762936699715396553158918992763246083861545590405021805645781944402717609971106062633716460861899093160732693624119122150984429024391587970802945620349375712368968206017195437782614068072016409488506123897072785290940498512924565854268687661342170193263057049526277370773352040063316486372770888163674201234981211723881856007296513991115647052857977218456232970463589634533708991648368918247492414476955912682573900900178280990188907783670663449518781878321980054985634922124662126158049705828828072544621043413424442366632940271178714129612525323937694605738907876680434385785499679365138572397998094458302249419462557865599087147474811915118957805389708277112745587044248185801072116654841366851671790378368288082071715559451522065036887407227792843373586889250435291146921445412787400192607700762346005207549179253410765601979982200959118092878946306152551026922092121179315697184632346517940215578407133472455243580523877002262147528545925767077617757168238581941286774999932433524613781571716411826737526768250128319374061333243256716221592774506120708949941084600306663516892366908672655521461049386697771831288273636005915751281615053140230027473940364063912509048441417107031416816987906422528913293852799713698413734275952019871733675157437946781229016335691135356460772603167528860030786113797229971076981860548542977974686290698656733108539805748832229382168472258981174926549768660396730350553062515245051032073126932117446886034526592881359995828473985249739712181289416517803223108540874955502645649775442552849880332301739236012526249640381686222788228959851698422312633058605255315093199066598541077090622553801699033927981568870298249058937868206768151518887598517515135047410583727863888645184543323354232591750695083653452726611913529668753855113549241156775706082887427921156817045906523918973889955287649589115234190877241818470547173390024970822955063382396549437967285446339815218917980160413800526832709959533689500607785005538506912076761120326334375443049683133502842344140819468357248843450908492155722770473564514450032287053179466285303037848643957168432766291716061110437705124193292842214906518039788339598526489805184140942365720981263384053944276848220657053890935288364163237146458913202153314907452419955953292131783834549489630597969303426782569226717835007328438331549691938532028250973829428980343526320849177166547516560333155592331718361415026488459282112939949552762831366828377908186929670252630950183305473242593055580230925749587427465653294129034534133115660708183608869458664108647537777554288557908804248075034864516497265831791959225503721377283823382903067332921469917746472033401452955280676873217521985833182067565879761823789902624726102605119040855434928950680026155564652440173157428546053874488147378135720717334064324030497424947227545288910582341180520664517242764131746747550145868188500454151495356889211345342313776975618706261183237586662799858189156591196058842698745449014983022569820634947895614325490250626707805411067425637753304699068697743165343773592287456823978912954955930133480431450711612035089859956986050340037873195024859311438623293591294479808678167684714875783437574717166422210524348645180706878485855675755423511851396649453365319690629949702140453482971993309970924407455600664641768303625854664746018022010314031490091434049732084110336653956448893535541939681157260652895129164535439329297742265357381657921475150596277762477773953658099244218669608154117462871356145801442320222855962300391737036880711463289816775618865675602806137386211144106923638020639285143882647719436838550732264064270812246009667166976922042196189208504867759482003937875665464511332151382244143426550996230275755942057078336559130810821589364753125876644137271945884861677905868204102134907004932001046435341495045543468664354973912698421697989629223972680514788533507885873063464068195470837737403332239317035195003088197230189016277152372744777999795256568948633656968301890642717236227750129268837553021561210962898936502148886382556024911362940441532022038388471243336726188133468624305927960318834232003664110374161120885233391805866135294550008332209950545252495321023910849862696740335245085908370299678327165200963795229118086281675793827280268574925602204663102926081424344244590131592122769982967118812000620819074743440330961381839406012743065370395087958957649267314041435967490079290002826360970031121225230041608306209028131272878656834423584743827827141263607925664864132735091994534683559547937789836864794994384985126296179535454281992618311478160069613071634755822694564972188892112505171706268565765637991636949483328824396339907749182151168965498873567382743003854927453447650885294885446119304226507376082494240350940653320484095295176368373045927770134581830733574368881522729558977597589078848881774079242114713030210426440551742877349413854182450567016033502514917756664947778522893261578943716819589920653265265871405200351371666439308887461658383092625653586273191266696468519084968274018449898773565754630649102853926022955740985797911052519624885738000034477602978799237133243828977136234274725955823946116034345912064570892541849000330850821253952847811466341999989218800087797495422722004324047495079623121859269876267276946715818306496015017804556102739388364294984364642561114714774441547132729105834187084016266071937887699452781373703636680422543229016496701081220719631142246079162742217385578645168618980349488728919970931813456654774100356319130532215556321877736974019377505082051373469390190704531372997579786010937446124076456395508568927308869569193105037632560008491188210692660714401676751401125696776020737459616214624997905475684042779958933438295608893477556758461103643324153847902907117482601339396361441640663474168983795420748588856221184782626306796958843746857287878931522780767703041012737518596229051479763852353317811396641196561694072426140357166509832561872608774316571766861054558795730837868238977951700466357075492884532498245058008870929979594144503294547990035117241230071630441300671985980129295862967531328247183029547342480929435634751647024062803490997710487196169121960082659334208205890614413439394582907065534902593662160981118978633659745428021183910046868405766773446896396802601372622165354094270556166340460989369246949570915168487015486364846043099783270517119726045995263056433180240278422166469106710556651715853904768017658664020124326109738168434891085716668761865310513070439389232524203287922570569937088436439871922730550455373181657620464310620182624004926336474988319236178959796787071619913369597415455370248790166046501554764697886410413657556712877136922764832508546747700298860557767948145032852678910373114695247651464323034696059025004275481142767292517879381519156788348218865408073673090969811553590773106072367149330190593819666262650019383239251470382683765334801064923480938484206125934938232182565932560938020971648526207129937049870099405331966583400903701352765251254799141199382292138921483782144850535709704708515684878638433482229180309344331603630208298406930095150081618269666839499509992439264077443479555626742038400998145966010349959818399720013063633787129385428479194786759053180986995577848448998788754164783924097311579818439317148033613540522558645455585982437224983242844119642271960735499865303522926788190430295541008600640220272521530460947286917728418507713470294780575231412456973973529632214688952471159176895470772164018966991254841433248998746464855620115060758144715978187001711144644858554255069530564443518411168781536337211366461787332079342126809987796306280420808873852215710202205766872625987695393062706885113888399230826628776013786694184676277422032668390038723584764647818958869316804688393052292917583467106457062655382553471080928933493507541453095191931929843249392833318433569792042815173586234421608067008721898054926975689092645811218426827873723589497929437378862104559371124169330220796232726088599460118125445287461546712537755968048552091390951416359255155843389547523702076716469548446097991410215419241006073639222376221796596989560245909220375433057526351438219134584775950768302105993253452645279520525412437370498746270179035157724669701650837969389712022094063342147446444574436786467485405303067569915636433920935576580555538760971126137963113921383207781555757765907970540877240260442712140275193622355638878592573766554973574953157574164200144346325813013109062499835320424188559960297752937519401960002072447378178818411827711927664552525114389675428396325506604803960543584098186530051399725000690303846616467194046570148976079934101614626195301238182919314833236492724655763950090575152674632733869677928539220238033584651608953898086360690964937123924878351952276145565497509994815319571560858754705866916966211589488669298620266811022935809720351008203533957784412136423114239886029710589541370985091411000087133873775556763838368873285129431208472410554442033267291962875551767571109586549155584097447423457099905959537418701306461095021746243171076382263575443043950620395681962006372140604243586101742425627377568334222633045780869981004180135589691450921047318070383771378739563113924229891001793490018173414615088326556185712827947546776230677599335283025540508969904910738583700229387064221812066808342168354427642611255882034791016024650206493489153156188228063566943924303612736859803150124447807822911660663509549224760682790765994015636267338977457707367840902567614587993255995071886243954956618701343358175324917256294195972001816025103716847652050051759159287301192157215586612585165490812048994872454453408498760264613908976231383547276792525042361127277824067331764336089987852720525676605133351079199544775076883681271111315372974188922938677499280995629947140452154264130218454678198078655164986110696409097122921440250986020500502189034996770611887068816916567428200271189780431063546692515985455574826030539646720865158403896616996420255988831489515462684083077601175946818034707626863443229397244821830434257518058878560947598254906782372968217539221155016783569516093301214325078586675011559949426391126529308848266953793453412396145208453988966146016173523830564092340475282492509970812193838046663753850841449699596216164071525948807117001349440566113174386154919728421990247736167690499653772186272736427902175946941695387146169115339988515644860706709311740181915139416733163231182491984115780689559514473228345556529577435089794682999987935578402129100049653029776933699879435101826656767719107592095892996261267836515467715378249829459487669207995432521902833775222468485108209507482257854098179674105291950937224767825541266610428780162836428761090855019405828884853616411828638158245766005136244290320163746844423134357230925940910282366990178938410636547999152188361091250941170710111769879005886014177252678659978159309020604944709361639649771364964664710871407326585725063253895056229456569908732590890779745977560664810515041103383846717085448425398590917872618219804342291962702594478265844842450792829076138632019835894922116302770411271261112430550738625280437997758555488917128824089335442123948105860822015270944883980698876881078504373684096288839163722423207101958889768370336189787064690378495587205586141520336119330489905646047214830864247472851767890383296769535759005200280918725420140899940970591724412428821903400866582505526561163727165590106968477798764937939093202440579760798055269316973230606224742511938777614679314020616895036500719615089473642189473074765193397311434909067621564710420029351539426562007150539979101924889076473180204087033068357000749766424868648035423155604631954266834582465524935250594352439267316520684011332468933469332729644128413422780296410993631933045450493437418694925585149355502931804293502912232443138468185608823074141868926160705836501808270586584592653931763764499704638439218364779170433032289335306865182107736661894893413224798836314379602262524864018580210824053414342564507956647994967439690354359471624380148839921123274727995460301068913129043256488968987433082370446901131256825745720698739111247040867518579998916564257728868724454911764220521379057670542844488252280872461317131887843743987790612276587963272337665028018440863757348713261157165471719708776751101077627051994933632055903791560653511553606866350014256351359281870318798179681520949741085313529094502158810003281575910538677042660397476940709111836987590401016939443760115049620417257745099205130716882616377586343802062264786935242324324829477859104639524712443295141412878584209389900975899308059958601543564602174067020508247270933666843543635270607213356469910349570282973298386588482993827888304480330559509170121426786836019566827072927223122947173656430390443291846858881450968517096704482068166211131474112941412874359198931749980193825548170815401659306351840669116263079723322517669401350744561083837402213231936210152441010953729456712691838635688095069490931879619429767836023435033435227451159633191665059999090569903745025818404768439228167132310672225749604585070247242316161901578746604107956563035913222096113751783520570952458968063107469863538231499154014689781906647497340835562692326919442816728186202834145479477011651301206415223773650363973437316825678399577008560281628603725559993127337693976217682371947188796860755477998778980279445382609335545704115025485806927680599929988666591557387980656515600695810196894633640029323003327138903746211872135707779564774484034463549072199818500875304317694392565791853511344596605639353382572997717143574529240239599575547427238466508777066645235890092534471447760961548175769929829845449571118400247559848095606317882174947303199198705205141365808368587328791310075212410872213769160719890056287286273544423086686428070246367090580388203375096875332538334303846791373397903522041700635755145556136496017086240895713917969559300426479582830959558210638445013526707181523444854071614862842054080388304745749938415764870610053142280120241853803279244620850985293459097414663434098946810177115485744469493125183480206549053579279798436378705321306658719503525849391990292153215861217325884901425569723371516457806311668653048349936077403087497922506332397498066418042761961882365171744100279745605107627671171013319864299341261445169659482832657622766299586940477356629746005749939468659946026083832801222409119934514366439842263098245647367936416586748970236297667535854374996449981467410796556711276589083931556485438378506137416036978330002146441376347626155653701234079804522297096989235946316351449264281716286008918374791187377151382651917039070883971168568515518978121409014663921063950970150958143343437401186238050468344855837768784622807284355161237946290961762730395033929587993164195070926491693861350836909858928189562219463841561155647018553631447065158342547470910853065192257176841824991899714615700216540590056974526213485382392724758287936763839786213614846540005070764441924986298340641535403649250582540516519175792634001820749821923342314736465106340305064239699107145704808887924360361386762857978265234982358581708100830409056513234672548873005186094932942726027578818695057393134373777315963436418649857846149432897590448361590943832072828576898948157209668686055395995395836583375731731214160391199287315202350364761907511250209408150597308185532878061631296418533352410889082851598286350924524891029804396667261908713073910005769465515331732880328233221232766129232470509178114553024631660926343982701200360387294162698065180590840539296356261382692067572655956615335965764296743249879827620812354534719495458852526083530689926191792804473636781835339123129088075894889345654566703513108693653334576617861729276640776685434514736338920675714232440350655620329565833024826526769339099676010317775486900243699820342981171127421428748753434224663543504227040526494728158696754036345812751025096729431322730384848014430807019544992859615869829636841607093952146838034299865141930871682179418739984045509116503794527679348800447138916637324418034662016415168534806362810079450794439321951956782464207443239824533745196378642756775044666847286576494527646584448635863506562072524018858711612278822414006778331340120935249620526751710274893168252250176059453331949854858133327561696905314972123658880764212205862684779970945411631798475210421019328011809450308058097544268620842250570765739911677736270210035749551935114681778928276677801768876811872246743518558344172441278514148378309845321933416294944317232934088036357793001794982435784111260505761053587250487055083426139826363250277872442942877337950637763474253256267375413595448233633868052230181771961482704462126727158818800642826461969889984774130033247060829517683501835466760549575448472665511251808740764834411089082251050938907498587985182033318431140591720348479031293308776957158650565595998565006027463384788015986730588134609258700739303867158570449861492073900731010483243477923615412927089394196193657621113526436791513019056737325086469034620374980853917440639746803982340800701800551684730676990437082984416384174864383275261527869464510130623145332552538458386547730919763885685476081985099378106994143204430768904722262884968629778133793096795552697662452774160983923795152065005353396339678711185592163071546259388740814979668433595789681501913591125968016791631910598629997244875009485253337150233685985851034969977138239014560040493626151287364202584837352253211546450866816546403345784816904248113463679344179803352986303091224845129675447613003539100852061673400416824378755205108615027883127962438842392279724451899924463544447671194564967705208797007224355160341709800998530988826676062518872283422930361870772356081208413040751183259227996279060735193213138648270581219214076810720092215507622973263389855828412712755608273724472869463636268350327933690549624332940675560015615052044721409589458891352281092548133125590119647450292509377422066030639472224907126539081657345487850789133233554459830499122808871598551044619870010174004049446800053354896922176266272307964353577212450175396752103598796164042812192915510502849819746176868455422590794855743737995103981185564410576705690448363881344974478494433556536541987849342430969113071236820206361145493641345986422096584601560744238703965364409786238451691363034594729827821974955483189011068865393009008982304058272013018821373651706443201342357832532785509519643134053106931602175482334022204825624104955125158008847204414788357661019506264584507417540454461692178425206821526227014877381533009676514942858680756797536554976663611425465949044518116365504330740182592913410289398940008821521028533977487902746255838426536710853293337534454083239445960085359831568563113561779015811744499765531529985987679361126022940424505114762859705414961288865211506632211740063361849359409553187282946031960715175277862165679934119469353470657099110948678228096783816115925876704989321641285254521694090986989840325308688565847141804155135685656233894235408451917664259740182816313308968069193801588435204193709919819629278242980120963970732321000192737163750686448967061500334429411849507444231890576478202563889531746902997076661581006128050219185915240699220461388975501462688169025003421931572247385563704653526815920641819892069619337871830125100006604265143372515245209946439792210120581548441587586653658791684339144146672351408642539786464994285770696817529501782281912316426874161559063692606922124308752675019570998794486634990482269761358502763408106535161785401618640862546021005082384192896667141200819400736680883667804188869926217985845543798377861977819631650885916032273636857871781283437764156671451550915667231803560252838908039924820247339242971415001600335089220227095224160884581728438516496317600590723563284489612595709661454137607252565660888005999670888271242691455573223847432923740257449467165861454019773103191308232390190407787941258689213275029485428301239748717293768307719917123228006237150904754727330492594521544738490529247888750357947012107825847749821416901851333146434839543023764326400731120802962392544672586351991939187181133560714467053355368337683440814782250387244286886520924555928624642416071064930942326672187238176892573831045837543788436464254360273422178941657501036909301011164484999608352136151617794435006862085541730466243790547474208742760955327643590561878706069144261457430787314752917460031033657720857874676404429535507837125386577500275329368586986614797389552937609441543642970073837581410726239044421492476387904330983819876765543685163988962032831186059606363888986296094121035678117814980837118787122910097739260316586994635687375090262133815070792105629023685948951951699382261614059465764001138289236655145233468870023080775603515829028436915252595074988748645200713885782488956408340076461390322735053611932249088453032929700285606056468641278195266237762633079733820020639422092889958324101953665399711000751831759026015561018684260260374833935340959266717798207025939374411083976307985849081338834317814987465987042590449069265517894312307845087838864193905919923002624004647175393776828045611810064584448854394772277562530137162466274129340553866771219006263297958306409696083514853467790052436885811341564083714128967400997550974589866009762175201570607126212673329001333256023030699497675928436385042332336430903784078690867048977887597645267744653736221205206592546455427502515347189728559536370948234684168092978058018307971238843988030125155879254964667109880439531595951383058121078647250026103164290205205550913523086102152825102290614200664979937090930970446509328942970161264792588227562890583452837726606323703729206097847359146176413154939796287263920292513626214482311749538264620864690266773224546679830266305768253712211061766671356558264728071762871081254063218346855410666732053187474485642287528656046301137614681872919704555276471518128008058873603672150292336390564177791642379354154416397328127719115280523915016991260248806519447708385474097932645236599475476097015509753874476460452930140888068053829956618870135604009587222535564982861639573499470362565642736596504155840801007469595986068866823620059183883181813036579248398105211077947856491967247283001158083618058945157174625436358074342445132076571927714646595057263010763149729813832580830854485835887604155427121607975479782097408926504984534683483050650790341147657203197347924010305894435903917954764623455256060303212434796744872261342829802515639631792274119663295764287339236138761903186711770102694172673156743553941110826481635701378647012344985634509314793606622598219911464069422309254340412421338453779596201459646798883959514944198378326471803909796515979593711867161141934743718351387445843527684299585845728929790541939733272100815593821181740307244675625836227143801103865870142263854520917607763126535525319371243926237713497909564039282536165838854065228246395365337226031395217112585886070298860150543680869075675478382614845738412247874279349936609718769829697244833859638338969524521732398633583173284138534762267514211000730614186649145613264183507929751956160764475532756053517474877539382829509925560449070965999535303541257845418317844261461308096599789831471379388242150454840472845210466449719168255837437382443553568645543951760317784458934922458013534811409876167624503265681622624721588911314356504756622017089762933498131466673816534575719406713797793706612233815208022708121329659068081903766412111552251121720265420103281976978433671215283975169261767010553528845724654152773039368915555332179902054581663720957969094800204428250907795204691540826058940515106279149144043881493328217462639577335556845210673041498333633335216132262153169646288608539368296983517541104261662520309546838706057767598506861519439089084465956060817643100477277897547773975568597505986272487284511714764533913533641446486689759226674039367183694500505618323721004336002498810308263093480876045519749329426854893349103310785537146777640341670015737865964861722562661493087888642802810422419980211157632991061054491506820192477501023309672752284064617199775168292266533526374493283746560897136841826993042878939166085455070847171839544821771365782810662009485604503287440271580975884522865406649000266955946311707702583909693809991749285530871126601591060189009277949963860251459788007735905794538699614015442726995398600683445836391846661476572211437513616804775530721869635250179869537777895178917649947084593222721486310428111996334216281626324016116545397254992783622927472664672502794975957221432889946814336556756568193622488066792346019923791629663746366264375632088052782431925264272226871969019712081995860526790099105372559860663755422139813710628814205827707946808654681369281037607668175727195158159281554705334246152608200841757040447175201343968485463502683664152409389288757237550446834759173457446743042526089767957162936434535620049807868427775987716943615080360751295731701400858386623171007903032740549128907586407987510590039702429224048248487440109770341831963809458228430717806380931169599011036456563354780244719892596829128302424300085916229800040975908614988512246598705025267673886577934383717421086653094539015975750288728130727683630397300867425027268718358854797926524706080562906552502810536017823191498137370075197671041064730708675538452692217731828744892627801175039975808708775150807390667053847878802131819062443545754434902746613621595996805979266550183183401858318277114790515436540078793897075525682822618285003593944500662519710584747113315655550081924145234804429059257395827816715517294718762527692076506731008901026409901421839440146512197083706743299708039567120249826578704062752210940312209169911458585042583819768119982357314995530391882912083674429969793692216862009801129435546973627055311879307451389983852036631912469094780991639216990033585683924258606065038633347108494769963111340788503613296496234989910482345664671293223461315423862155071626578541674742511377531500335250837362235200143615154795119905814565352570371568465123929568687330642316732776448260791094348527070520643606293163451502878062102127587950795769246606876710571370340209003920782653650813145044399003742651164319533904666910502673667179522952799616397100266705669166124831012944159127582176117567804391032062538381178359876421064047866957331884295040904698695697444148373387805576164361907024134192506735863536592306646038362826823597066071727229664065392213146496998568508335534827926240854611449924499323719695119063313733638267331717087771374637703939700407287428655314177487091262762990264227472364529584872305105198781319562537457047706289064946142203151662734663938326995247695318159627686734459387352970931916452934649040995038623192761023586476034167637658841729707018148196546255719173292296231831709998129762478039261405218985323993228693036769223178608341398890924239677891659406931099166176471269763260189828775908740321448484612562118274229267327076783243722044319665996490368832432337117523597274690971235394969817291847153126132929849558333228194992236056273055555310253677197946636237254304382832157413286733885946210573797713360249507617185559445743292830465035034695792034844237973660711301303802316155570809056597583686590504752348733478527525835408470150415038150239744158680908550754557735809397264834173727373889624553819579043631532559071002203492056383103129736995192811984943842964390267127454882983987504548376564629998083671767167243792981336459904843611009064420901773572264606855972088119055759159608477314121154594922037028042584894221703662804484065875775437705124111338308724905753650501491073382028981660306973353331663363281412072664601431596278858718715678476467438751915556294518655939177638707771856394661466407175069553965374511657604327114240466306934910240155672403941549821385044304276064221749183381497245453479388440295539028313850033485921931475087013798208521660727605445057696340259793832497256464911336197197714091644605278493438245248964860250659136784512311751537188800520913545061300747449148019919097963097925022679136134202981635626680331435073288155822799042673923200794281119628002997724595465650993747214164459784638698386196245768076196129891824981180721570001041933858097067806236478211203447578683032381125680708728822948302770587566737282314447116985660406568314716689082347121455985452201985797752168909943220215114626976521671695614486382346850677306707974594959332766457093860435187941821888739103675017671464518711275744612120825254348096979604680323990433582980665545306320370930243847169049132627697570476011904315861816785198038837400704877168911466403653847824197438992032650771005413977662186382285000922992239240948278455808102383066481761845620780360900309768397376322759935427295137527720631034087222461216560524946804073013801625118886006816926687985409681253318782634849049923071609325944546665555471856564746620288845592533492074686252520193850158371587342113996056350174412235179576996934955940203324582583824528895188506081878041364984582605020281884397779754741212510945495983274541501891548876870329763440704492320574532673601947082365635697879121500686695415793223410708183755672253871173008790924158348131618882742559462261736271978745105915998172269123787213509229105691366723505214919669495818594386677124381003397409361803844637326755181334110669737636789731605155323634272049699935797223666024278060672290854831694025861130275756283424693397516420920806989202162021346730450733119405578903983635419681605043083200372390453876866770708481589481791787460137626846703105153151306328218502855913036954940239200292788096359468808426764948153149916192225287012286463505515841390973534088298850627266952245968883586253705023708006424467735253859835337426263593365385571419207974793776007091648309579978677470055419235938814364997289123260025421359422357435654351461068266292445250998291846613287937119103234502999976054608621996833387043008847340728106577990909523651668516910780871916415271587670635240675366843194830148997626629172830969918338966205204878673765463937170994679673056601068198211999658792063985507401123754133296124872545517785190455588652436542194131829534553096309319127821703838617566226871322148747872112244788142861777074701868073616032823799562707784992765437033174272010359753192475200122621437725795348376256687115169886589522489675825610055885556340538795514832681968412622395890197392078605721305930039436013155510986614811787489434474446715263789256521844702031661871956500396337695900297319552829888298881275145390946939437759956390643918766687893942591169412441138225854150383913514765703761397885880729010844321842361088195613963688959531508954963079807270197177215821622000034153292947337939041888369711465343824311705716158604349632521225133977778934424756445403005781127529817166896691976170966217778872744507394362739292467666614066626902723904600006322865399716931596769814529668560111377312289879825869093852837424837684595656667489926560254650625419472419820882631519920591684859242560151579425513458787164168529270355000805584693345764436889676173475650505441306685630394905146137979730997143164428142772194655277843109701215110817674531459617910197301627735466711812741598422511150640961668778405610635740581886704201536399928825579509397483175210117001967749707300476382304175945246356013503922456655451393997189138340409896799034328715290746271815266136799854372032407236224599805240318407592215044865403552380016412443902301861074773996241840495923291286459050271400032112945188834570831321444582794184228512965708858476399251707785337370870723955142342529160436826468587249716422965592673437432693376306060894585956947866293509940283698209283299682154093644091588403088659769706792682343973811073341661495326812310939482229578356960873683281185346055324565334398654518288140143480759015834310416350937353822952885837857553937818359247179327800664102392456282677009384392845420001041664843836531763346752657344227161903223944535139082693776266496402087444144460601219147536472112569224698481682284422892304325372811690122168302465932584171579330102000943103949897144516581778443199716138870962714678036351410719150837106771679048744193790700568227815756940214921470014764147694386808626721549231318427034516936692772557980530409359039747413068995407112517884292347485376927541552202573709174144306948340947645048576223387564160591387324204214952037704430243325942813037081988512477327319329035765943996485175373402091701273092285121801306256283183015279304296959890333200846162803636602044618181278155158507205149608374343201991325895107605283292735555686394031678573882835096072298712695143086192321923648884579578383802161802590414556601922539759846206125535916692478855203991359743597325347365986638897674244911080036995035808176303237064228962771055323459704342369575616018658573482405625618906175602968690772042117740160772110149456222619673677787494096435901578263927509430925581129132747933131309995558233875168565803727579777383797659393992690700952243031802677934259553068030789478287299949706733671758389489032863766021473732603548173566759843449480785040901447945414604526351559341309686867250462252199697183403724865763514742058857735841138070999435328672652816871232828578209798157809187436060274840656370651070631158846764187102130394916806307758018497149430394923283991445202410619801939462453695197285305418061277163497806984789987792248664088789666113433794474676160127585114090235260119663258017333522185959694574578741926651860034581773684875791252526480715910507541707434648281640385824050403886326481739368065076712980514738823142259089313648904762889742409346309580743764021503906713824158884409078058732772050989190253214999847784095059957231167182422500589012820619318540559767328559615650813647301958901154682290961122158447700360868221103298071325867389696895130733917312872742321980306249989541203263988228488420331910384154152447218431440557003054595272228225282284800278300391010230568612425773311535737646316613824422042123286963389821389266450606756456607881501156657283574610526939591854688130563363669963985553398371912279994647190426743378772310553899527929509289278176605410067966881045489679411656346227736606851355580623876100515629269562336603887776262837204835435586981891220146223496132229821016662181270626908401048340601384053631524455724319733835754272557053843434719258525584431364957438273876069442857855648036643799487147008591796098258304682146792526882873318043004902639236977798857805900173869256273395865615643776073425096877039853874659273488415098358165642700772152375136795656691185323232923752768445493696696337321383075405499127369604778774338465356284927982152502641993016646922825479644228392377901154744393525890588009900212790756748485103178022033046599596273490752440672604125492712496788454206326240724261025605802168627114872629455239646637941042291326069649220432562343908380294201203607858151121289341803483523156439450794244689452903892691777093598616189364228987200915793793128873693524901478233596431443728825178652240525704916429427882807815910033723066603964142613877924129579048234839137684708593641921363104601575067373246567350841879949813372044774869140492912356410310023543193676438226021595656548685841223177018406229939741875594512053529525906161017907901648925782427054392162836032385466346115542460996716600519174722821431381159244560909605822561361487182724009805239135204948353398019245420449132542325413182791298188312467674050978790746947798818394193244101112879838800364269940832190411495807347360426543635113621041645367650489891164201514993386627072361546619878690576811552799461966310029177111935397344290304201250259129686218993865192893723040872372421934864623540010715176364635446076882355403785028774758247548680853239591294605427600134800883090360486230063371253624219000856474396766861685871169054945406594773331149565499369153236502985096380391868398671495950270163134368467247545104652813986682868633304788462400839141343428270864519133184417380718724199365666985401496971911354093573934405261624547937339990293465648675447111769259047232652134385621749187095262704837763026895881411388086378664048671651265870552920302898931412579300887827571461474723031617638824981430684352861366575981547111611626098217168704664859957100736274730060160757860677500985052309160818582452797890104686792482885898721446862881481277919314800054623539770926500813485071347748679587444592449787062198778361614809170180579196552817985476630413533394292673882827191954429012906039902939292914736584816973005332231766546391744764676931330561600344322261814888454169118570125999812866137517556752355027455621587469410345447397290742863953964194715274273801432208571513641362214083366252027927765484403747078673816124149655803314652486143433255327428222914306995261464258461091638418517735018801459322548539700264664631896377119822205218596073212808385123357439888304770297825009917552652796226400114561635281728989668426640700500553012603717180149880143856933628730356416242020223743019234801550088553951216874160687686286466787805890276082856104619642175468305925338212154542577370012489779605192241052333568105792434653214819481340601520340010726875341523927362822845376862308062834210477707268515923918642258060796250249646539959833266163265432798585326628557579698953580580768906066442720913622363871481127987068931021982448038094139818094372732670243686314304715862255911626566418469408422929321490192281489603125362073218681682355221613701583046687244917296020962015478413998458665804076340151151288989181773273982139488704453909014150393427617795486881562147081648935231788516792206260951578102591590576468968221499460983233377619248791012710531028176913308063660964327981655277127353315411919436232416595690587917674053194151559748784459355751798936223078917941306767802323609966594167711103344383068268730862246887714274502893831380756597923917209742194005233178042829102809722020195138583450036595212631795057559387017380807506742718958468567178756630269472095415318427440617748631008235876804723804115035586445104514148012758516227191010453232295079447789710581048543110069693293928444701248149962417444778382826004745905345721276819055709230293570514234039903039382930386391079618072710884000834738227752789208079589378593818885422755427278375095564017538813661790427482020684402202167099426035223903716416752041550072673571400450363720475140151516613193745826300111102445994233493617883031230263144707140718544336266651037983485441348677699977880942320704941624553203371930233493938480916005233071926330272369679896762889361799508151893428793144407125885549123860208146922681398137182416636844270231018823997243459976365830068518196273155708964599262667662349344121938675494502334873964951509144652389139438063083341240154180556970779389168129484523914079855382007922026933027681072043631372710480879949723571224615344629672205409986993074885427522844253135667170786908228042145815919721478882418989424379380469409216806042882064207244710649400278694889255527131388753289266073971941233023963046371180296924202295139872382077692700341326945978445635605336498007007879895701532534120138763558540506273368093421986692615305718993277095123084457000505735676728684043605549692279736431487069858898652749881320886568004669219027839453148985435198952259535981379924113003659650172104848098416694713777515262554007654502863975825912451115952622394800971382434410575415454134675129734414037736554768292668035484037043953697538897697550531460232154611426476464836695001654562262910659397138237202800986167674416920224945704322030448900744006016191226720645830060191869098221129988212260945781160769051157183358787184988353631321305556667159273910854462825262711204519855495865998463258823353505782434190284021373515553982885348174674692127715628420587764920947585792711463043962332949058268285637318476957522008759326031900483487371632653088199177237547249950125752828731592479544003852590071248575216239112303338893453025950683504184601620581348142583973436726268402233041042283391799863080903100114702116118893197572131784487109508677960256402344922114530623625220330497334896370566326412841955393739965519932503300506741440207169731514138042267093826037177116145855347865116237924237011372259053643850548934531490446161213698148254164634348757463136048740817265577783074326442508993191339450884548486082029702850215908833622794466786890985779772660780083816041147803844338621321955242392103286852130262382061993352250529603330036199146539431235007028463070401249778804854360477883275140506955904988651392655768365829803894283827373534400387478374127226743116348800668788882596069793012588142902373764810123329095411644890445120178958563185444706494639227118513020289086803696264911435701690119575294291683568822537421092240435175727993202213717810050346858267617706191229835060493941913588928250767770682235561204439383075696263096063266949773751145583576560481363804653261389074748204382924688906096037013137465448368034703587875077446617132882941234485513514469810458733231483690436651411213029350332833256575984375184003307364795844412824909617954099479855011659216497024903956917504700356307038635031385200422920733174534539276137000975236896574349957917000683594734504191112904332278753843906852191180189158815227477313232623731458183962813695385024933060960560278345941762367307405412270920565782538831577027197213066149909434924324626056130674334044993006286236421633531604640773202740395183813940932364591821727180571110701576899241057746063623688004966243042500661550095324604601974690230409290766097741254017694535506760604302871213054499197331680356771330873736869813402262289340606725533800547029899646383636253805733717170226040221702348331256282495132604031330671729989081031987832338622582472926105319256226473631122229987721612496548292317451471890952198466462990385949147361506996922482073536476363258886912198130824462562376302844731132640075411041988536142898937306567670337352210411630325597131653672293188367911795638475777984371661140890515629239531951885044665004666332928440420127665329789928791997094597200179704633340160360560973102299864868165004093538363179086734328917929003150938008944587247071710947476468373859464530024948748393540963036120526633671770699214565440324212994450013300113553729859549222404665326485121285475567183247906002227488872393240912444482354073794643120515129438451570742934274033266354062086546995593522989232685016266175608634853575479982225271650631122059036897706958759179740495659483987014637159805096699798513225312223736620804187665600157848890941805284378721931487832159674860858991814224235284189112436163192507671178996095073197535714839983011680150970105489062499240262447178033667251176065736622427770924703141875245143492083919376274318078410439919400009100590024254580068296183938789596913339119091553854270441914425194066800097520835784697375553675998984531626258251088295105398495252791566505845341889657400463319781450131974694669519549526151369977047349564407701477445166549652360171853765369854750579008927399732347507128957122792040936932796032191562270390513808952707367416412705966271139173210272067073935512956556542276379441496153372705988862858469372938348888880535764496468039735688102193011813093779335995603873222795927527165650596076929767018530378864976950219631859410675607625706444760841781467265569603201308505422638183089085384778885168721397337391503167222340995940744909458391871025947756435840902273359350740796290233359524966523059480918600294250684746901833264089353462353367016423636980622213573340827107112251515373782153395411467059766684933974010239121631172761886813725915188192112967096698733126203454013798437191446538193281436502849784415699640111562654019628560670832215515535290076436160560128246010773353963157913561326914126400861489187254033441552974220265027681291669539755400014799692538300837711866229143191255489414271280118712091046394724348005975555341445233801570211690889296550337276060479451687346353072106402833238447019280936074214474588786164262615966048438724486957458822983937554083445015728163863185783109016273087459410153228621606550525299408793521194156386178068819731806960738648674386195807083908966999414190127296797940176075517128248240354426287682396667154853030797208813875412803502216451274962107905844044954627018557593802705585115475004746065489335899427472261617341440349491682294696777815662702915865133494848974861063837965060162713566962641234620126735942627130054468402058798671729155004689065985712709991907917393002392423294166039738927248800957680831065201055513042636338219296497439964610482834380783424593336771917576542936252423137074020094984924200868844960521738543851014177111198389729886079352559587079349382434400432739410597894123509436037361665738163666904302304283517948538780102948254117490023117210106568986667535473999193135540730400292925098214315038074549753777605143687499350185300315223430355381367745893661504847898040913703116772688399150594346764389903269505234993174631333787639948836295418261455685473759845375901576251482987845475501762603242387019473239097766196037339525484085344495945965970870201499359210197328725420981996710954421601338826936931059031646353114652593646846009014069860512028010615994417552839938559860194688403731166507030446296109671321101472811368210567698113021540032896118435443606987120287175095609990844332437988168408459640898009700554609515313734980798173859161499613563710179562548650056206118635461847308661233786566503413458041648418328375946996296633983094562668987987101127354697984740095436966075240450187068803157882064333911631285631619777597042900873111492882445704921250373594782179874673365384435415940765807618599732821844276712296800519781513890265924832762738367418829006538851857120959296818375282276656520867451744899762664845285933720035594049141460337180425569101211999134482170312871036823379292198402080632065982730360628048579144632955438457332685541640341798148518662477732453557836006057615581613688202917732651143901254769511312089181882804516178272656230535611313909011561857166089958727801049906217806233293419601008129458032708058677495360696196565133208924909091328230231741184255489651961209432634006849179397808816270625877113259734671168587658564597956026201726434347012625187588062651414784165834511914295773280190672606349537545702986912440266098908906372787640627916380834134018132453376352602516500715764351452302952298980651633692900846242898617088914818136921972750970481758449136883035506393889068031352515866357124033221922901301627580384256096583014628063875909798203881553643891914776683856320771816329502128752122217066764514613417637788527199302148842056241733273717319653971747603879766165205853873688104027675427774214840602263838545283211414983565800719482536269345533215579520010832146290746520931186679987320198325545374559116789577064130485063333658332600337924304887965675263224333712150547503319837273198510983601353847776633555866981362166600679584390222716468115242602757023161934061839913008948790830780199347662564507427921387551625646400446438355288589817429022962967332194365443790555336428212353197825554053266157665996221497586306112255128424275346753258579562403623276003753595046406879293598573537566457945965770024761013441042735531462764395541823203678559131196497278148334690084889187394379339288822779158401081337573402663596122373716857985631780212766466494225914287176153528557492063650857969694212436682159078383488704664742858142637947041080166265536192955582111915292573410147443840361363446039945061717000489507594207207688722027531905487789128462843095935650239541360244523413099618132637561860146837842177292967969282415437458520532568706353468820642238851259824641117657029292466470681046205563157521556668827445722659276014028507778945091105173931446951145468236545709625640616848560530004960765841424373766653507192870159749629097666327097950365631264112025932759340516786286416433325890593071086101764299286335259680146959465514853695237916696610557140397173795496776648002552859384335233304058979758993023786152803802166287372210597133054294839100799926125652552054437836745712166153435876440273633770277919817619995862642022033342670636337013256602210408335011932648856749730369433065981056629521336564255499275584876359177922712991101664897041154178575525382152802085634260736458753735169279536234236939875673600811389896812645493547692241007016777369980072879679865304914680306604376991123852133731828109427537063754906212107227602942581847836508511373473049138910839616978827186089085801616658735604882151920440399080853040660576583183322216484733202201159637933393901002487750698197585812504370266749092897904474788296579466691655241782048302249659038561371101938371537228795591879058442497322620109686005585753759295195218696387424868091760851798445828432439872265442259725364317206623935884085411664790324967411752262501037104361829590734067639695098764288159390889649082373516802589597267389710644673092615867991524320858064063024668005709836065000061556106428437756186412676603729112162034381427808538240222821215513389813649619543620498395908615328506907852594669828741002162680327928232945514557077750927041898599410356246016816223565041201171276347047659528570002717299011005457877866618693207228413156499635917062691285164656173289602537303967624591040569010736129456262522533498497929901693140363534247514782781991008725238887496469831995503603256739119838921566594895112211017397012891124533121831168066219062304012583499350094004585136049419817421377169593096665316995081927178291936870843658203772275649042339662499425940643541679114210476495987373429760155597672524083389676202702503032018484764808964320094204259656343206446193917587096643742562574230574501061825500818311155452399135755875208076235173143153621384679070131495303482974251986698771629142544222251364943390746618361540860592695877369096857605608726544967358239942461308341270881496673918889205525600437092957683466718529050689679512353837945552248153869482740713761092350661864262810915776617306622691266115391708276010186419596522784755135693871113967251355592792906588880193548079349775499166013507658564207666295552029181293732883553212555087826322989230108595000639765068916586845604761515713559784778764861018865449991079110056828891153182060372155979209129902959099606165644294931531785279172364160824761124346500097225726781902765557139780479583601907198151251745630820631892378161985604790995873475791959556144395170008948626324587538226570342710256227776747024854965706628738284536782992803899370571645248872653688484136373398890032489701090318806418500164467870155135601719453874358372870420928910655932685912979541354148155823219124444975959288752857675855972724475464435520571700990691042449551860147152617737013685750115776502496732867611745145163362377832696944641054329140955439871634663307882256851600384040295525793969083749346067522768717723884307479545024617346150893220084155105123582481634670636304615004519679677580610926143237805359611312645840671987922618401358004155570287324774807767325361543673674456891905476027957939094594817718391063915921055823851441865541627547615806516166058322694808429645892499290927910249625795488018785597486156605340429779022526943817908611439813859102315683879790044125754158691455075900039097799334480704439399217319139364288588728211324280391556759034255721827594387257748780075973685761425081270590919615311978542402561029408931505723015267470503448468724106505207111518268722320478998514913570105292125701266996811257621600345281424061058790535579230934146183953547084131660703605602256423527709980750121191784160609861687348034095905106760706077569982430620081800689269782118940541206374055134670407048301846764361893321671268136489031507852552458326118108152000878913433160971484924472927773341402530330609283560957178615345992580568170673386780280838218824672022776529058892764158091724028611887395707655146051522252230393885856337861630287761108761002718283398267621156212482865427439424039209863563318943936152260109004395613167496288413572532152886670420312049028694964511164953451850108664895251949403817731662174282950366602505185673215166300815218190851283719519641840683262285763204614533684691099564142422124272099261710893413986251210878917459747341541902050731603917911371702788573396742331439557756468170848642037809564892110092124984864991675361920460327688192576742381014728346624821909192423086237562353589247551351083837848494297428467886490591197444341673922656248830751587034752061537096849094327128514695180518199347894338831440576107407582368296885443059133506622587453076261851664815154110147264103792855266147180895338012522296261388272301195390686704577942659822499204952490210550774472860968309584587021931390098632150358617067283377299489395066164132948236316961862637793073721925076317298764272580765210854603736811474471806713225959984449497210187197128807550416901771361613272754160295810831666351920943587674397427309927594757087237288176496073258357836726620778835475537001320009370633919157433206016598302664485808541849359867220484539847116291606625679990289749110280962040514705815205455832500401888161965953531490271237665361480917665141753539007776846987629289776138163600014352228478704828370919832065626649257757989526262449111306540946088118458562322680572477924907367359140005058180164392792761791694055592955531274092734540404755767403812401656395499355176919092242342433935138480349937346027501248081162117040220425119276402439162385175213776649812572458912129589768580969160126980753694645511019056492313228904654779760513460402708336545158414356806488981098705884256827510307549038566799484578040486010199663072603439064335866102842422576540303406443415363669093408316413327174162564348999124596028642455466372808978730035711866762928531511383768811245879702851056410852306106840759807873442478572763349651977877470819073142563896775280067868649578970473219963141810899608538900682732477253690718983387717294438647838690366681889276812521659496418820262635579746731759816034887709994726117714800872804249303220262797784152588968036992107817044577090025409427036267728822825737994596140832225120814069241777422986130923820267831477502638632943023088429599613945800902140556317337330793722267794365198785828605346703872973112986224687086947040385984838390713225720625521915270276956165457951479558862233519970782968604900206054151313826340663413303082391366566588935318988033148440304954229152193859397880250871805747764845718277321033404795477864310897060581484290500803865393509587199440735004664886295921467591308944769679702456558143244345969132953849185808506798658266956188700585933879109051577789987428991527011607586438641218654202098336083575101801047445559083121344231011394162984744468287173336059933343843027291090349251881010257223404550810953898065187704849634973615028026243301062334310940657714692876579486781024343195590093151785608993238104282575167171440287595476665129511357713371464249453816232789068740362981769490223661506510933919114227589131545607962182233781679841521986172210528272620762039190448084216220713080126198887055675883762733223612830087615185466547421502046242864746544239086273267382743374297857076653182003914556368047412286214796255091147250568755705571969126207067700167371774315235565631851362537765786039488752771693384609676531797163606796314162593530814475330141974071543318147019424538450045530671804284850441219499193394044451116987470852084681433897796037598215331244909260654346190282420494123704042358096471129060928027781726256404859355093850774318799381647061888776003342878323101245908795698426942346914495781586887620009353990260195798095435323956297152166703342551707233387751116852674739019444470695550121163029620725864954809098256031825864267723236389225583488614404237531194928428725247030555228640399269427504026095490076638745744442307239526357128199089764267129919959235477652034379995740916568021229812699344782374989496164966846699195033431748494071800375379263437326180319637924114319811603828520739338569068655368781867708783349280106812544684442856497431134174067717277459165472045469080332274761504236236182692973446767321704903455846065547667293368452406492962638250544546436745342298408983805580261360832830173397652093973765271429868116123493474021372090429813329277475115727430921447006316031727948822702530594158588182891755444140510262759373671293730064969580248106127523012672966346738375522402117619923639698379609832259133656642344206495149999173886197321368813980496849704690970002260393138131114650262759265884786928915271459235337236705617436845863944234832622501854232759529254593886810064711012360159992441169530640951995649957355795114282853655501546861298948146321061964947247827217761670195047365937632599095275733609288794244806550049246319283862771289539425840535094096538860591275083466939653306912373899874651642305377298961847950808844582146441568569023584382392286310775071863000076494991933273530178950172834635898629017388808966146293518299607048006476877213670570841022892540977267734830159106566228920485767718670127975528598396716395289096982216449407705895892280592173365212931282931539343937784838182630445114424958445074922795920285531667660753457350085785644443416317192734666433055740748031879887126546107143494603072854854271710933319956993996439015171518247007961803599770763888566636692790120742237926562333236336228315325335675753729763005304591681816011270249168439369085269125702600325611161933813089863769395142354278547523182939934327098464486566430096108760637879852414354815812172141277275344453665484928278157789123914718452301294546671092187029387975260648297878838519285594582960569304896187833666789698256517721989288330481056143908095989141828381062552669139514887518706032776504537826712900858732654468274072124773974691686884377992788020976657090861981339374505179789338834625241119456643112357215853173931253419976521634157529041860865146778577263567663896690775297899640423228882179443210004492943228546540706217524751536644076922889213325879858426127845789906785947322065249919356889284965587623015029429943117392097195064074856024332777034256179102874352944038138787440804031475298088072091939151484010919722430571616080461894013785878227415200223082941527517841496437479939825262775808353866386917028421659842861590352283857873731356758966359090777846990739727781438735727121517741980504413933871454436829225589470056238423520705119190279565334013007119565215048390996152908102188256839716771332638835742488432189334385870126428525463190764056988468837964531524652526621436135220978236949336578401464671351502296701353055418965444728221308564370801427629161397889402833514110680184088030719104393440378600403616032487456999422780096927427157571727510473290761084192118531106042081161335095882631531595840699302385784719620975619642468015346178242768546188539410655608412444029721585923153031900846461399533294453115663225396023664225742959005509692208650616482067138878370823447314939910870708881847669324427554560717141888065450063594177136287917595735056152027326856850470726225468678510577177354585455400884272537078424443144659869696580116158533305019764033538425658513039740389777750966601571412065178496599777344824063137779869749104617257840201192437822228372636148683733440865447404839532310562675806579519062155934567897828699722554156742104066758519471743010557887884664269837350034350787993981631913485554607258674279896501686508349629320320739259339454649312153764627299800277167330935194398471844783721760960415753365291329752152932113116134117975625318086122190344412527673697648127370364741919275043855138611310590072553545543322997632113114610472003321470728156348984981880576710906939865402409011366244163288414047917907539622629322685363438727208145915427595877004744536001407492301628570521374214654566325356214745824924200362856851767724887415517974144940841561605063944761621575957382664751105452403187936093583627338151392598345878400863994050834317518029158487146681318112096406086939034795616421123162607520311900188373044783203013557379897086023663866617174333347138750894864999803084651052842029079819242617928853035091855648487521332221357820034578790699168195489192909605907546768715418075831115809544252862331158926406534200735823575669954641656988300968531043045214866790455409547591211025100565646261545556530391465249632817733991339004126450633004392136533823224303064950519648101997241533433423730110635193095895668657275582153537670914878830844064303872082303293571677542207695624730280888629128811377678858515798656329189050488705754026901803212380802434875359531163520370274257222112891791158653646021178385434282568662511289204679449922111533808407663320322197116510713822673235536608993443980611710239355904117370455443180997900160125685068399292591167285839953560141981888308923291828478507890818146996795818596955871398265288070738814234728327528579514278030194123501149078244707579308441902711785413119915248700627455033653179340213600073366163508378758546724549408276596969585445211299275946582028788609685880751831990402403075906017874174362930832557948524296028721654180606641063239867269335275556309192055923487093483040144683997966742850510738534349831821915619973046596362535355467425580100975757438249832567788896195142717348964887855102489703111542666605496157288948813655301435643536863734832263216150111951279594907070205813109395344673360406112530179627150355042820387498809414128759925469152610604748598377665631600379037841467381716192125410278618564576800632276189764778120103094505399197413405045988530911321567688634370854965637179585838289094473566785730837117724654848473419835375547201558641398477824350563669917832269930848420305694089577007184117181457264196874295854406305869768974834008062658334710236683904890362137474991652638928271569459428012596071335512181327215243386135988906022909787737999379284442501979907148614501420055267153654765426613601744748070063840439222774254316336477901350167940603444337703523760208591025304688805571748096804741650725981856989824156282624457141752049581661143409770038543738351115195933802416491964623954414902169367847082516435807539829123685492747487076632033343574153294682248016471083612319685325782328685753712947876787894839207288296268491606116373700316919843311350839860153524933872506559586535492440393349257959574423397338103377339395915055963146994285607161605682956984572548352196153811445306260908997096433193064256839461479140291019952838043215075170075862270300673848533268772804119533584586195618435366355214662310173574540914292291470729426364517455043025859829309985718046570948466531790266619993689149043655862045696845425815795524243017910968600947399025305836832985371728500116055753490289354902697936271853503540149694333713552775351688815178282546441878718650509294413187045733449403698210629217844833709014958888865283213507550414115429668917684975517965283277881119324559344022661722496358071694161206020055074911162036039545869748692286345207612623115510617572371428348054305855872559249469061194998793562240813450408491698201030415016967912131483606630223373005686001079582041524453483782967713795401551902463364132774256132112064021505123382612689071483681980478456885940228479931371102207413664744172812345842183070318863095126672219689684016651597789987607760714380618284962228883071650200030394915215277245123742670806727653906827728750951340377379672357671199313941597510652106041402488493395235110666119944797648018941008952557297771194944762044797630832406951897016127000676737142588419336887679323903095522389643868936598349095418723098384832971990318304366437025102775982512047143355825384588449488705588579850961621644013289396224844717056959325305144657175719778837212330476509687174197870804752525364184668396358283529698138186976658042941758427152472127697719264263917138614210135234536757948056137703398222263648948401031768251662026050346438207026284486045232208826657248674122711844836024390706196204336913003623141484011204066659230572157802292449054425782974270306602198176387099708236499171329636051958738913899480202985088117351389916583869574221992908354782901135086244237263892862915184481042555574674042543554902535253238088352416814295243892738720227139663766605389502925973393143876326259945950871412476547425659231268089045711042485583521655174211870858394796268928619575899334619269809998741721252503405913553650691215927339477586435627436525605372467376253919158034397503559562280613079385748100583819160123704367180239436128600854518737236541547712504542761425608965421234109868970102726819435496301104762269970912279737075816434874480132590902659478633382939827968295456815687149231686907146477568868695381048117856343226611857209763080785317454498592643643724877840599955783205139615975700895049996410942961005909453479577219897881387838494294468456348716888333728228462383392573839400499374351170457868270301715186225649119757476526679186548458166183968763007750699847647598276355911050614367217649748098307047571323067621252676132822460421497722409995105801229175657471469874747549385502100907634070571033268696293542295730991595978276141326652649875459096864716515170608667867960584479316042955900205752273359638318338305622368009895944425655604054600585269081199788515524442546204002367573222748716994953399335991195398546398287230802697935734951765137500101196019013562464877529943716099871850865978713412905854020584455491434089483237709262382186375725208921793206129324261725710451410118654855814109178929076944098270872051910256907835431927964029107229467171430416576068463582664353836135079932825755114824945059834315324968326746095096770431334072170611911979618980435294990318006104690224980578137277445295568862087002103214656692564022856575550441059228106596689545220915359698594138510090813144621370276385221073920511479204901544712140830038605707703334628690594709881930010816668672072829740488154640853083652018016351871551797041245819072137273477399552807882366077927383588833533733423833637516865005539357754048102388840293496356282615616969674208267880632235178587674866799699109890770365725908633397369792107970378141188150196840855387324947143134818895229183354992554827134143956657129135406959306714064387712089788944388831946990121734409631608609732598818313480920395744977276715029692013805412835813554534115282196635415595110188730370620306703169733880806239870788433243523087209992465981371159020311302321465101541992908501260308857287868136328484296782975249709373513462232631792809786435891924439251756395672399261539827218929662203927107346037265564026083116295655399926943878680207884407477557882003836623102722934996455759236192292105262874098231006267578690024644027555375765939155387817105893066973373177285320246973199632025197033436080135265690087179803773012104121435619466441597028386231295913264868572109236255163151112789759925205104403886594952390602596969947096732071121093934378673151640847646816755554682470248957066320029652225960660007286741942522274700585062065111340442445717504733868244675019721601259693889967207889971005750591823091399939853357828899219670529610262253597758153894551647695375888580718411129601288449047485212179657697975234053994904234795990973296568260357243102875251516437257796079338996664115870340872819592076184265759097805410097824542812293168575540740480209722989495390034918717076573024231839338655368005024997357276967032326905343328758349745408580947872109386023418584505229668631611947249596150301667358830271281801568112192804951117731976256463831822409275389480713081654599675635233656211641956465044025076330070530342011288377065080496985752965696440086308980581971776927376251509299004184591801098885397830420703583042268855202300482456940985720687553085707358200986724449972370395535635757555887402929718100369430439187927481053787516900363065335934017404067127024073656852813065142188188524394106803099190085686767774160809262331279737982049993519299143760070462805278005836550758176898505942622559121002954302000498407311102154818672031302643163299488632278647004484175008441475171020691857551298770337514820011972866886167322094615405946134558134183174649197097300176366580810602180046743119476414009362425940104390035143814656846191092060611178980283794602494570112723043849414336957494551673768116657014554418926453472697341816640443604989562419216119171756451790977563494506647446949690584666344466520368329942109706920056092618122260581393956466324349086597127522943855749044115206666574333499188501612923696166732818234934033966707604682062375357114874257961558348735784574942040441081812825485501098156362482532533989183057442728260343390736176570218270733736688635807492222868362672777009163607520803951372921131128639116692305862690369635893138272512244970214800777488213105887070216230508762295919526336898915018443917841272382468727120535231563822218738053779568206055401470975868001680290765688609668605908596749943014110130157407593497670434635868716830454537450696703081859979306475001004963585315642323658163440919400513516092931340866613876369841506410714541630670726937189360301816256106789897575248273106234097814211858165424461959747128129857529391370013921669198851235976408845092127603840971207720640442946739578736361780350683918858781314032622750910942756057671356738253127498105129961280804108296087291939034819424464230945798445712289011778974068394809389045744227746353773216488986424100629950162148433427552610921593977597532345097801388092312131748807244610030302179501319045556644949423469256301689821676788061048294264798774892901683753541485778413013978333205617373578142836109687873321631245015476174323808150227564477193317386802692341483893820591719088585936117214137455489066258476760352000570508410537183129439963645430349817421422089722143827215058144321871362300063049634805777709011433567283863711848367890524272688995105938856501236739074465812093913809178196445551958416002771284084348468519538288700931146793389213665616630334123864553580140558117266956225985705165881014727041632027361671852838600627039974180378300795973507937543725491898388396960773858278264780008830431593203935638520756537670726033058658286291154602577717184397895267360423915488413480715809899846299415272799878242429211403664067784117256466374073626869901241594374901057665325615307228147252779203147398458935275349806741391854128805559147083562602432693296540804917130247743252841919024691230287758582876650913217621426219022908686029783711976352598753151808624632526903233979264759051027094753471911089309691890256636219221040326576072977962933091434781290439271121658200382083638437094785588798467174453492734577795456937777613914661780022360566754003473699790464242128263164933428083631567779771126284910938781259069951861220887412793975067965855846704462289934892400261575759214940186954166265580701677497046665570569198990555018924998242198128727091689351966717475911276653124532679770028528204174082806007624422723875763005844268019708672725469523055301666487656877919552077470441518072384382289217215851053231372669539577827925700180680216360763073477977741101949393793722354332239394064855610817350442116264987925182908907114306670894907250793796128730107457046802264899371542611828865023288968063235361182612469074359526653334132508331661164543593593881615542355469170867742156611542075353625837214665133764931467120023808838096212606721179898793964386711360458570095408708080864616258684291063589176296722907803359186004854240954062660972038783061333530659756372729237492675292121034276384834390364323290356638908802886241445960143464125995000910504304308789575237939500433436333725998955683167840249309695505420179864978676509071094488600751403597562509289582281673722279653352323949675986422616609331363184142711834572366692920662550617098457114635344953008323848009629197878396770412593812580574030570263884720352916967390120209377114893428743018489099520512858328009014160293955174954045828890484834598635189516015513918480048820413746405595373540558019770719638665985935418324850941048913525621878899524325932425973054250461617535389771765804456373843128774834322054571399682811749791424846480857708841485666922283544977605710543431458835440601204596999700910705629441909906996293637482733414884136424482862756508755535043022764596543627870104867152697386083671364529737678862815047124838945980774739483449363159117658674891951524424808890692966858427765918719630048412874313702858499864754079160515797865196973676433000813700324733233533467847464215570464032041754519994642943292855079872460574842391889514180319685335170084640476683634400687597382114694429121404631911003282027693506672540163961836849697479963719031959088477875173140112744767741485609844844511622926750306359175299148330224145821389535153956753220976921167184136902569513342879543699934715814042116748228802754236463153931850513326499161960159343250079374586794419009739110758005038271944132634555126617794606606222102630824782100874206732873760791172550090785659832056817417752480913412423760471319843394521618872956701970023857352320963716402943505915018042740219669535816384038659148908858050374041250252112887689570520439639559836626746649686468700404712077748604117897396516248083507702224127982769863384036017132195197948071562653650373981528295036887493446962209579349621648054946673316373506637517039484753221847882502092108945054278174419218004859804673297283405942427085808908558215262806886810097984816245358777649551019824208854049088212675033075622182334477619653209971612240502153684910390741771387880043796057023398295439053189098549628395091804090447020678923451322575673184199766881814603194430440526479312963159344137390797671430570712097778789601862336521322050841186399406062125158596585913263196758025636966515523527326241795325022736974893850518125419449395872404863679630768453940165299886533694246228624643708726452415945297047123169707858007517944996390449626811695539797819324362073600105183743604239021572823162103589521923194783742243204056002753731559896643750568460880620792833960826330601309752877553021047644150146823934218702931267611228637137259179614401460012546933666610531534990135919049209627987278279053794229328837904157185458192772375233058257503078347973274826986426406222173398421910551193772776789850522664089070618583819206817120613430980469490296610253743408993446147087141987565173712940685840798513208092414326537643320023672328210026332745070602140765906404149113044122962437185353942126357329617098836722498486919445825197885031256313593890598447082946206099969120957156949823935255811265036453040928237531413391749631903026699320377201324870422905330154104765871339016662287988416578779967255181159280217997477707080557336945503968405725087425607733656315948684336029550324182632563515276744408189194320375868351669566442042737192571918027531212588189726254153483147344152658939100990272654132747194421792655306131090824810841187342914351558878665136627668635402612787648758141570863552986365757561434309907535187302228223908908356767664922479426541619835496060758642193982985739924840995518541730184679288006989732446028636287336772926832678715373161536323131719958546878745784300196152934850262416068108357061386587974736672444072441166332799896080953059232761856666771470341978472463924188136521603544662972926819337411945636590421307662543847435299555336722155264098396421860700175487892497501997036703244396498838787110535898010634876136964200741566389694595793059866153278224622159947579354424357195840031239437975626321125578216971638087015725613982914406113537027445994693277404727917287964833729854988212933411413432902287517511238563390029207206934853014877940009983017872994871320796532378680524992154244552918326564991350684957193179630276699924205471433682179755300050790125514607707788164617459986559337551458668880153982196444413801280344127699236558808181462950179384142257471547391862784579377796066566131365579068377752626266939986952091541314242927004183145274919313472467883699989821619161799910857410934125813766065927250827167218535062015672868277491098587404450949822140213198758525422203317534019586086678226235038427943471537716606387140227463607794642604465361340818507217820080487674896751366465920307657987487067979875799644439749321483036346702994560819672384786914181495892218191192812249807713567308791617883682425587102570030968799380412370171526042759071081686067167535721757363035990923741634411006239774714703427129199811949027167036520397125189959653334658037706956757577065560234746742907158466882052892882612518357555090077275077537018027216124828931801121208428718522383997552546144530708181851585770195906243835642746444154331522104261932982297630455147269948817844768172290441553834594201895934842396503917184621485478312477452764762380145446486574540798205266347919157348751551854001448872200484963616402651417642017351217742673076873268266119272095336933154826218997876302322333305035231980595121336632523840180791691485787912197849092441026865277992215226587935532576021371185642325733077941759771416886441809254246658014099816807848064686299925876179347153137080741072630924361028118557876748745311294338022687787093387825237261905167826449905160119657542203449388022895825884642734991074345522874195629723589556835163748469959566726126697004586010510209790659636912379037799756100798236059446926246626665574051055854677158366852096740222639654210602301290485918689116971865039854752925606322607483325240283510717615617248806516277464924197594818455775909211949106608454754419122469009163049508619284135281595635996075847057157448527525080135381643847708900376066949016402049851807134939454176683503124910514373928382489178813813245974927742308311265276172644466550863265914637572724035230628201696892331505569484663267537442377175453038726327528365664131087629316564834969303118007223284816655678039833407612840835614647018885712151485948156994317501013981486297852564543302511581503020921068878730271473633719041217115578725460523770770981121810397262388057585998129721320337336595790894562818405205487952584123104149642856645020063275547609340080352029584366612123096641548887437245274765957672827833770272461242146261355730998584601843442566556688817787981631814547855320587238038637976230692037924647924450633151866167126153092264006435283735426374116437396179522181480265876447869346386756802862631838540484143554300282583527131703756259423779814265391025905592641996299014863506169677731701164160107252057154571748294373898434982365767198598323675109831342852957245951531294651220044383539782054450378558634089156161762967314447233623852915977232206380214356065289164928955613833346673420663743447810298397093799119385190942852199006363180143910871928507442335939091946874069409621852978023832572226430466983554437444475001237440021520299370399381600575663744643902851575968013803568787860682294482102197978220499191303489153186878352203448487263224903735518854004319119334458809866837272960047825184540636997083669276868602956283720903190672131946809812737573976071540828230321681113260610006724499298189797176816328517030404982937335106818248796739469323741816673999456789286176357233888323146693923203176431638618301497122999074579196239973496748775518449492615381266149570684245761257351563396330832108078163967733769899237980790777945053712910373535346969379701527464196646044939084868036236770444719693692499763682520669641261910148717025697369346372525783237334816989595020305633841703581389973324130917133621308318105257443061499519203811799865688065737218465844881594713603930630641436686958158461374347284161303690676372635815308518640496302758664738019393631739276075776503614387306121439433209800336851081678041246647678927641230372343073208715351551405788935739924779480181321923752403518563722703966309443954314128214401996003291288252816603797170915614069589132019541221265697868210777921786553997476575598241924037181908725607463827136802636909414838590451078028889113708142230823470355594018822762896554557435278024996981869411137854708962142220626849931982299865182062874585750681299336016762215189152482631388014763532120327303807251504988674328730690425681158168241678695949504693106097267599595671978157361322927021618512279000674467685221067809534003399583248857190999231204219567479215222495777064720182899175309201095658166359884819070871864403323359853825481478894700192867046043539598927219326964177764236430465258039956613222351580328473194526442952689588493714133943147280895207959434041361013018107065534801644983680463318743124825620367638357562242259189109147066304366509176136064541520545232406070840897116209958139553980102915593320376849375902885808506179408968265731632514721985995055685757932301844527159098958318307193180196785207314631557150532383245646765469088013636804276742096404725415642286865417525233284921255062728021102314571097837796237579226328252957780539382539336211323512517824668010950080822971897326192015396330668806365318674592683929235474948849006423301924248931687228731077266980488141486528257708834090643912659870386535606057520736521988534337397896875914659848603295283939981837561402647244525523182875679563370807054516092303794885837272185154198434998254439396862461074333060236489814411231656921360777759170647895716085901326019933614009242482856975956715745036899679603506091684196955280763719431194911191519889016683085184645789911539524431764425843589173430578815167570172817662521560375045669769731354797349378601437989283685350211831066306508927766571552271454699033922894700229928257596692657824167693464032695271087033490833586523840095572596105815795442100692790065965160119563067570759006756937510945142201758273403185648420107597247060810139317771293963818309629249312262905594016525935702728472114927857593158939185635575465023936486011363374139630207854192524506881515277630194890754846591187945353896529927118969431856091756968691577749212318049523370411799715801975957527726154849147855914662259859824432219227742316612863068888316786554882431161361743727990769346225524707455115598898215522358655694478016456021005804142695912160692367545030822114901394492864623225222490837226969292528993452144812886972739193809256512337182381973828305942616388951613717680159114901752697887946947322354203616592262913590565396470163079807761581364373258341557202087848328144506471959587087296437121993563409983011517415508514973189148496649585016961692037223971518108561395408903684824208519583049554578884212545913971456080570992585676420445625536799808390938373487248054568505761917315538461636231165606553144723819760644132642757721262225857643374047892907019779807420864252538581348737065451171904002454494613042256872190363544119884032572472999514909914077791330678269713069278739727565086475312365244092519000734746877840368778302935604892934681725406539928362240012599264228954482895802694119635599896418525212524912190278237198562179670398367395641421957525278190068671554224485231577241223805601091552102741004242777189068747948612898973130134337705390754490267739365616397197753549454988278658960675745101247191811274607524503979524160088569305783393289652055355632195480257948852770454189309717443272643625865093893239781809712020035516788145459603965873889940488773523472347619883872512291296624073950856926004869760332998527072686972301232446245749976857230589640950704061020129912734942052578632143376599143714394817256451747804698348037654203107717648070646124505860940280354542178102441383932820547771845038005813807703203454612002264955998746376370406737680474102006057570631766589833910295062954190958381111109547506274812773507687118318044782518872638149170323565374371428890407497913294958694029324212163397441645531523304690581222431740729024639133434504554129874068992196981761298733077405728305491549373186953581463068790004783694027774311593838979689743421517333423088626968755731152351139457414486875706844388716503082774340771821834489958101533824765344954531828366990081598975163953894026960317323626246482026336734535166271947292176423793517926007414997386088046342667941986969823997410569800125748044448955277120923913370305215322185373173987906668767743097155343091469938688375735427504004171453780176096149428326263295673901445625442449696536086952055373579839577506565060888905545868176552033872548204945855420437165575654915157349930498015779769567389014345945616167412596627228780784242857265292921963320903691220717533916957012251118856731001930628210900875292777151700161198306112992222088694625175666239643097049853957975466247292880763537423209941298798100035529976748949970581069580279235266834619290518619415069507103167421144267736859925597125213581961852783011032385433702327473313885275437740817852913527642780186186490716531499887419540804615766704539770235289831489287041193534383894435565176151340292868934857581418067869474956765159721007621532113999670207673152681626993829951575899483135505697869716571475939244554800075437264798627884912034055882410456995537644311740555194858850171022969772040202735624111492967738242026796864450553100811777728920821936973782462516999372547005862327172619078209179453492742300063446125865517448285958969616873028575356436916332942646129496591057947562234397066349851640102932199675978792345882923003358641374420015500018267048947409622674565241070264554004530218429618003916943839502073552142371301970405114932222344644520195846697995421265813587679310799853081971795092242853928301312714485308275428692826771314921708301075724689999592333384709524530711316448512056045212985046679384027696637123616941887362952980675619351089533745390499439509251487227549212230268653864944953416820261860807001228465264470895712337891151454369096518416046315779030723244535473456900969959321741460379445755660171456503554291464643830452767899070480428533519499737534207661014255988213827722160668715407522073859469410496062430695189447230718464868494104517735366986913134036294858505154344457344585962256721661123931878868180179030184432324050836182455096397003833351741367708898426627611358839787377565019216850880065863902910829968541345230431382699793173496038259064004157811341638113334069578229443950184914534230977536241463503335913523925174887968842301274790721085180334367603650877695372727707962911027641735849419185027087981402518170302820022464369914729979055289975550838620046588735164211596778224866925904455042033478458376401938320477143018110725994160348478467877647791856616194723648173172129969508745505162796805896057365427508451411245005131728821588979599355931204566448988241839001860771646024432728096720429237740016526697560937906315484002178260294122358922309317130653218361190918971633326539416315074681797500250998133384718541787229696365810895957714696727242443120920692375134491474688014523855279043912062073849412710603489648962099074110439435334718759081228803193097579888790859168101696448585011855449969291417623753669694221717248737406314158014064157593398561381610629278714506508412832033798052295549107010072329614724771408349724259356782204242501067639295385007694075890041579314429795829254829212973938823119361397304948564400663265016223224378174162081981724710921245940485820062418388122738773630178979395682482310551922572266909024827958756145211933110976146111092529685359956175394050601962378773842244725161234747356691658366966172509537591117969379043015550026815929541964234085528071195328512438667858974408242753742072524399407302741251514151866532232029542251114417276642573855729746056909689326501984221225903955832253648419120355771881322167059643895431551329336885748297573383494567805655156962025147800668877825244319095493247745939332515157546477052416225767161175426280198989343129180418776768099902413660392587079403453167875046857430404415338354552334240320749242047517335087754133748429169512293961251093243565241095537784069657292270211597377824808092174188929628744321886573260512605728945463709762578516593235358718323948329848719133162842373973137627477442130815733589826416853726463206425431301105701979291206984509537270859627176235722387700092025821528606698768762512363834184666627312201235926533598936990877371423557439087588811300454523674228025606625870513773158919093280869866061408224266567753573847456976175678920923016988263011279884190934080396299504455964464015945920534860490825245092144439059242792196073903963555042937161293857500539516621341253013974292209525874427074993573295149728825990345574329803899361795397566385455958931965735524412428622699953524906477430725306065048113724735237212452944180142480169440274982434011668638505410254989755682866334287977807045484942766838775334649712394162204506912287903514916817047606303961616660480221684778720227813526198562886566209181644836747522064227262484296348991428880522247167933377559001143596106837416010888784456332090012428487938764697736069298167154343304394995191006940677913406915589280645295845724857710923624142238962634018566880942001532225171454951936661616325731490252993453383610927808660053092671861016426109380385913914971962764393155701198029347506119045668423153660660488139012122559670003957628303142495185663146079377385473467791921670266875098655806767426329617319804204583649672609445740090982965841729995663999705380293920782891632902631832621282431095397457482313346186182566914846533899966237303100853342536194449218744878685253899936815731769245518628399760056315911678173159079681871236041408663536856832811890190774688020427710584577723949254086663551034248779435953769671278023426858306663020168986163865269181995625460761970459632712901520334357787268965479304647178908591838710204302082095089336017684306776719371952290067946825393622065665632654465027083413676850699064471650987271130113456425289426647190772987387290042027169408052620461658182795859617720935092323992127894223671761536429427190695191333819661414076560341444563270708647934904848133811159167194680637283987382732087131877925204915576923144168099687422904049777578450664219928943565107113280617990239315488434958018478908572535162249673798866762736377692872524951021192664741425606012089845680070966638778646684872227332883490134405836450077459856181774926324879302400726402752675190830743591008625255405959922304925789828655907933899471262682177529408412093747787396861931494629847646969370324214497001286466902800927769510239128982115302426007105641316475509338426292509412930471861906707204550829370199261456844486822143965235497556301559029665668201816055083460245934541889082749071689534714389948382673625868288067236117906450337512284821474768436331312666586589179349462879829448643073411610232439956449460649483276793764144469094485505947356595232105604420104504123306217802256695324132967267832134042309675893638180088371610793768264497651701711342903077229826070117031255841045312691064848388986552058636011385116509318506017950093314755190256651751774231024039110669741234236864967549305329301373439154086629674069605011067580594112491019546963167344353922152552393054638169490891547207834585407465474601085439796501913527967254588336406853333444737476709448557175451766235233933205914995457314373727857096996414212549996372440202796034385975679074552359692548592353988586274145686510220484526491404569012086250057657561863928049558823783611168151451215027398327506703150356421951721676970552557675284455114815951635014077016628052445459431555497323906954742928244146080243518197003393958942821312141560581615926816422152253113417612644907012032576036426683033686666258906668356624816054442414685945927724310679636533529562612012451733349914575678194835880032802467980588616519785341610478306566193506182382274659025997416158534874178532284890688241979177340213647537027291200824274420173352352489663010938457995230284301199894742683737977599249493112285436203091674382133541309238046208161658894797173699051589871407280058580000112711946602632817742414118269344556476907495525578172872579548850641164862073803261153125042807990311889721749940228660614036351576375255509559928922470102614677502475699081571465934816179278365319461392505623979206991042973428663240127490290793427527580824099881330785650563662882930424283268378803710417093891125343023792402309866690236120895111662966608323640470388117817898000627156219806243116843357639820434949528055140932587088138166537506848065015895581660521211751481996301790593264981845043056129068253501654240803172244938648788249148263907170354697397152006935615294678130254709445868848142987301069016602409743605942873635281872980266243562516101595130841707674670796585372102740183132275510912526621564597564579135520859262745569473746196355706493340554301404928048430164012709056573291478180950870364135674062767856784501682058725216996331420235163030249733653566616498038791540057408445461486271575321126020670029907824169542271853540778537516590137773466219839910740005395551065051216003069026089963597037116144818618281916275289904504573899224105804204359913593003335819638248141811539429380755083908858036629126864894376933905879556632308344212165747031239775671660532173381431007951263205013118173195246172334401824739246304368871218607115158620478172852644928505132520642239639565430290932581341202537931666354022406574573461559396136823175720789986469919706591677196737222843302529586106842618505407980181603355812343926978819111552963484896807798778261395351109061051591609532722549649563049174533871081983973288474284886249086881794660624590890553353280548809465922652125852249356374424472192532049902949070514003617918263033686496010542385664228389887329674953926228856944245861309172162658570153246721234828790110830413580206603818325337533981627653674612992380906213236864911078154003464075529274596267926221740701511705965171497935812922148303877528136311972180348180730179206760738058310476129471265173630806640952144618878660739077234498292834470227024151160667050606119120813032956744443792971015164412457924154021557373824411206771965491028008262972994658872634202963845652501713047848197867797047107525304127708503025229530089526914755069278338156649296434842477026070074195428475232766084603548011101342246328656662567588682299002527044946496645782469524469034184897734064226626393439252628724228852706783387949227128958823504873911855397317256872874078085719213534547124892872681992827480272340835803017470312102126786866140180831310814885699691046977810732872507997038470124145960977724413576465740262482823907830225424608339492223719886141407908360588761377159198043912133456104993321491718659937414416976980368649695533975560206701819634985933253175420936833405092464662211688158428781820944137516816164906267413279838485240716018745832884527664831979137635939772555315202216793093594987924554847856879634340643015229351842455073645478650001279549976859288392621649682635670237655208937112146833850999962249629800201787141155109099149686512949406562028155973616601872825564828736117611498951042243199414763606336488420459636474466076927290019545156294605385324889630135104059229889587345698309606679650108392401701393082210710148112085828997078327113481262379523959077754424779526419507209315086517456934345144028784438266823337202732453295740037755169301488365119018298765040131260053458994394601520945531706343420633175594565866479688389077248324978154937651532127986954894048517137116994043939095666721905697704038085797603657411262833727947479648161821548340672802645547969907662313498710382550204210263180943301323328258869041254227948749234787986464358547452930934921051898501299579062886127640663377038016135450016494087041774720733406259261221570549022018095895720147968265989182669086409918952043729552446850573852881806070049426343253217798142619056389714940651198204000754824646741774962403234032850959489365913850760668052105107918539380294359078643356615220693055633539726425166019756438977725609736422624134856235951813931661558880614842096806246758980614216385038841890126273361560302657541621534376100018646490198374210454079092092421052503666751375096589233642936093408410960476264079726660226964760693542550469206942464445910089885001746412854034522522504373253811369357697916589619101968864091015168618475429121425198891637544563906282808278895898113279771130044803007492312359092143047747339389967626100128010036084207114299785947003977005923167818928124244554509863969699131247765160715366202956161613144249160790238045145360383365798423668400980879947628045992511116515560981050931650771523169559194994876412032038861587221138452470041122994362455771705262918469493242165595346362486501983404036228805602828844429994825237300565675563223912570773853462553560634936426153509256668604401855776241338916245700869902969170616373920671317348623256687419071112522558692147005619281158801325965221683839708854583186767348262480074269888872259117683571249558923700922332792817242012308841753187377341467721213651110182722454053348544677340441984161016971750924761700693178719335696395146125803381606336418200902800894864155323030248810420287802181710509170809956015573740230637629506926233344982247301274968209326779416550580482001946462757779588383779817758065186274486497775686749817079523645087274836299714770331702945007523752312996542943829914165389530853753921911843573177444028090094926814018779715315128142279027147504157319253440795848360875242608306478887225311706009810817457018332284036245252571711408007847245703813075443457954535694677403537307121512538972885983071550592566133303871969983225051909233474677729257110715526316810187853177676209289480353526952725728187240169179481308730478558904199069995157575088081070570638557466283143740259115484002514974822972823970668764559115366451961096353396654541907054453011574355159862114672642374930601531849670464028996899623171280884952781989977333309479059977778381320736030909028344690796975716365507034653610822672248611857671817288812661360274174810366295168372929326463934926252443657991707828378368375428631435607778269780117595579206579644480707431568313594977382023608295039815055169753959123289912167517159808975149807794290488861194197021517441729468410946551788923412813378632767121325684676917409318388039986850208521342213839375636611343108626002610930283996286183692020957103446006930354071723938350355755396231599237314428880225359349541094220707569101184624266615304455183554810477359157120284844413732983679001834443893778251862750633258478354647755785911162738234354337415707202898066241265047178442966687645325668398680501900463996298597442668566396735809737481800959919034445579478872948570310248051978558039291193445023543712645713751428770761995161883674424905093136365587390430285952618916892256771455657523635417169843494523339841664860226806122014236655663547401166408193659316626672602098301770066406979291429189815457728814476655800120575076732283055300120625479654863902747811317160460869512093764888889914540988347667803138530034122237608973288378974415024471204356888715195803069636663830433848432343877404909522867102932373334123050263546016124998208641739145603415248654353985992566608049431004108749460441107558502894989764262201688583725625770167146266117257820143440954596244498397554852374305779657350056889288362123723409630495933361851761237930194586528318969344612032611729115180702833741163055615992934957976780403173680441184061156347619051406270694206897816796929267857715152925839696086202040851744453874268994097059286895497996510583130235980949475393135915107578964421034391950642487709010469647721613623368198628007175035790572002771411772526798932478386447199320301097139149601923748986504827759889578227819217530639847361388239793277563014719701931686450002897385072025936105939483541625211224110759718137821568868832125047959889103876013156637612050866653559125102346389631673642407476101561396034769263691038208031457875744505707717517710771330286529210118314582459608890452220382692992300540035612454769511673154544177078858561825571522179668292107464177397511784062512234212202354268727642256622429927192399578661100716372652230142042616869430243502285286565094563695280303439786861174911077690225762421325945539992938711367951219161977346009649812841058432531113451299307554927904092392281859985056962303498613988266502242189044454772346888321537099536642364082805011190760517076566239806347553393238710206247393780799703081391137529329178428321554034928847758408007054092559322056560137069377665207718322738210691937350376316929928647611637020559299445716082634394910739143596551652924218722927916661925700017724575854663016881826597183995579769141959096952351416558781471989014782651570549300920684140878621024816222026970572404054595338805912326850467652004749864609902382309365540397138281450487930280516270993578815511655539904075043798759544897376467758570573974812399798954303491124809745063558782879197014098534428172734991944314062952951462503365449807302966166204326243595829186449067831154859160935007749193674501577311716536108100967402740581922351176831767222923712986457930204863992465388071035639789404405502245487687192335616467527422928907758595221022285064163155734459856313256005507249808470949015776283207605416870003549046370426444079673057234400928688212157109090656932255465958042255594884743713152980519760335034364097776084519656503008282884911704993365474799213781525896373554991271355199228421698026792107870227485298877850735032034095358184989256513737447999650773813029516034150525562378171330530564010663359228826046451215668113872306858646776028737397742540005252896265841418187337776730542783602621300919715987926468219042461094872938624046442559043694897300125774462962329258235384835746136219467916079560682698353447062795549161192103822204825044223771846783440966011088721788642413358027286328939186780159192562215608360013401475933944764699162075813574033006711550487907880155416421857570680580907275871381964070989475350908189803721202095274000142720430391763816785230132161482581236696624923418400351731154536619098395979402922914744050505954036631419648559999953645651183322248936872296490267297928795165793979440431123649724933606135049292278512945973436214228491515588747272706271617409238246101415508835406133488441022357395441588642125542980303415980832329446160166726965300853512632692432799470072017161249138952822743690708423602447594704580545581517223467421968087779559167592885250151221009276943966115172880041118789327159921348124852523580907251659944447390564557584865069918370270095666600825650949413530172391185151677939569244506685986885372558348131700876749299969163102362818766674491236652387078529283398773951814625646233669740740062442849188703417966806489688996248533051265360344262120756504759213268287006507447365401946835707043427565723064035452160846196742232569890938815260708789085765313446196940706157610061750741473863206864372762322488328505885528790888871951399813798081945814134662913179587090252670956460132370986406570896244438065396019717942522339696229582770163090492377214070611788522598766739030375020212812189747445025311837289666366233305001406695219703532145179695638618512742917713417847205872980493087876321380706924158938884635463618951408584118503994083454028629450150721376668558417984191762924786422621569707073165673870772287842784124481282785167859210449649533744248962953830745247593368196948354196951129358898741005731869530581857170260243508938475725920971489377862718584891235477289503788104082405143331988603822321560420950912233231121025093227402064957839205395501596520357164950358703417069822551597924457643236052719172056192674171081901630745279695434323555567782641432644882813833491298283173186100372715535334511633484691551651587525821970904776188875367832323229091977076865744739345673544210193459392246182267177765795818439088021142294662749192019550877531305757302564137184086710072235094597701691114264873471346274045274216394231424152872315975249859949928372701761424640151729754556364186469688824107212997935793851925341350306754820150178089559748086211125434507384970766077644819759270166328284038470337362337421069355665033743908847705705975570383013393745069246993074583318153498434417933631196321367842561218199936211080327328902088434353914495933071743435548323187926922027839510848980460578402733352841779476590112290081000287095946160316756649249095516278855991355807579729060324977045668971772111915388908697878409274362345558528498318508266501913422071962531972792770106049056383124615316448779231433273512496542645504300508923556600795362311008075122165901200709123289478209288320357190651517424385750362909262097054713776103658977187766004525035340828793980023536440642106937161478597000006931104770813370777972254271913101314684005292604307669576249466936191940514894212819876177876904079769741916098241743858415013249686305135727142560899982427196328755100824874457050338463898435284376896189079112295873451544400889154422773712020299000233145348346743442428774751438247873509508497602733175285679069997351087162312732975709392323251150341710554147424932011291566948956911358181471764323838834666850821264961452797746037417595821895186502048336542864210121759151137023651983640983442368740974642683223577513144568336658227929721082708872495877525821421638949459786476725566472954134217202475983892162450118372255422142747473027008925315714569824208657020820618321007992341957175991826364866421103471292728537351984608289060002711555276499416665046538283696303089794885509609406639783186541664255702496353304367705512100019357530245041926992706514841235653686639697788683575662877918029458180180323090443517273340533526269203437004129089510755481281161474326495859541877556292978545118243952822771000656815131649778067035934814138381859843989492853083586322020336305249722199987195688354646120523358664203867967709852490940057434993052086067176550046215917061655804744280670882906795020892615959188596119320599718922679694588869958994698637950421634258548555390865781249249135545187478076929952799337148483050473113657023915950371435052395037609540517453300162271559337102205325823681615214992725691991029006506404660448437614047735588462591817303039691952053232031557569661315325048373377188500601936502273654749105886003198435683251414719753143185666292614664280677686502998341349793811458719883044463219924383456940637897138311284716272304325013548369610486649923460474754631898681941521776098230029938175052165246842516983795669128546681986943648993398354504857404223122450400220805392771471888281552346046195290983715360445333120366164557191329842460786094727379458507095880382222729310549019996549198035715984031576777626316210071609878764147090786816765050671011263972266049671972127176419573169736294376137026754006112888411514786108939885310056463756426041558722113101925523652506231879866479510491761456037465984683084172225416763101996598653466965997510844883842564708015969518048335442144917866031510555058585452629494186895612183439382075388249583774286498048706651666103049312630658614297465074945464214456678741261014123016769774954813937892195906432092653429867582879089280998096800602978678723292398677588236747217972002984707777387965828308340102816389716902345771734499320867870354891837032069305834977093678905084336617110636191340890463138999566592324343113512912645659955186022875326020275285112630865466082065337458755735010563860901738138878335667304658868968055023911291677017189863676536264382458672411039050778077855104478977639206769562478815041835405971868387370512457315755286929069131842042647803777312259831059199579345208199642855490615104989328226412354857851454536482871825823680973236124377734683281527371069161021152208211561910915269802988437941262796976597702460820676017448635706759840771319416796537297231185091651414122480084669560867397852412299317201477681839688259848960177725766880941719452798096385096689063705657452102283526577322455655536527976152606196851098890381883692503464159579227124671848156377532765980398139569252915160338109182543175324632219101178008647729181031548418006423730280604712135195881614496614705204617158190676872603952934220820221164683747587895569927768135141808890417028526880291353203919696167497011409322110724301575405998262811697941085358466247655955129782816877552642052840492878788203788247266371722144198545780484669541920786019191964189526440463860447497469185668293859999790511205650468396882182003818251074017535167378590704769707552112937467404553372486805444378849102269256959965263048435876923148414482099004836560937443427011709168295457478416276336543696816714863861506009468564807497913060937320165298362746116993034998454605801554263076342295968670563623071483452658705558546933152496792347145195919345501988182944250106094586549271883438926535923524388638586274955635509686263317228813721454994324011025686594612040814428259695618968195621620625675704326497835347963530607168021516958298408736644801850554637563193006638631850158879932761387198915681948147652081770068590159589375320842851475945437622273476330120923308702697727692326866544664282245789427925679338035425028171021449443970617132530255839924637858992304104172452005296369948608954354617423148969351488733654838900701127285066079724135962632518542880736803942743949601763483223254356008522387121011157621195923663632125035275400840285597219232201060626308652985164987024349283685877046974107967830261084584330261771736065146254508100366780693203409478605393633907482012979758280315927399854389547602044853348402791692822356331060132238682533745174525106613688453349031330792673069758072021841155655396345199054432341542316329592853668694414744608956567395904657653368238709910286768260360281280597878560291135300473150627573501211542749743002322759799870071920710223018057386847493038635819187088051054027267668003930722065197726489153860182385879889466316503876782699579192411102991373019554563619517521832636444575449962674791861176978691023368142280651457260211846682231611916653762820072789863499959602750340119448769166512725331258927876031722458382598203227560619038220445463177145455196708393994908623942337076439767088802799431208791657985997178726634692835538082804120846118233735087717175511456825487214412496301143564729515638349566868622857692516308408020716999655079888719697929456055561557965686083359108713552384499081143492880184939760308875528821799663909490887623298091431459614114335564512401654797814219477024197308758835816611224271711616921928765664322854277497369564991365141890429426059251311099569476266120290693388238554690735029061838555571165997460556866107444836296920227420391925049661073151704173891819325102709685355308001136851885092066745300460907846327931018071682101129061176368140939683842693614366759477317363649701424194614461462551189599743338723476367934707217384050580206731950025369771693877263763078877715447740385533046994693708865458163683060705654312692972638336701276865028800092873058106360657275461117346454439330003141446522280666271013073609995884248317362471507975486660236003292013720205037432238918094857701587283336432621420188963532143348761795693134611181972065577263977078644095809860661236876993274910690814554815245483417224729738402399220361316977995566829688793458716700891462179580765009522658868361244777430993577781706872329120025668571047067537966469055149269650518820738297739559406188880530678201493460147437104240155265009207084384605979283784538268160471892677577821007004313871473609387196824699614777725704979818117188935735877126851209067494388217668845816729365520790593618621808072589159550929946017870344225553992256395630237808928888441774848571945917129845209890130500320528823629176114732068007669405879243273074064477730695244833746962514227506801071730903319147521309486072369119232525765598813884411451198711884606783510131559710599321649289528029418347882484785481416246670582205863842084201815739508406416452576931167841806852811197259689057407529321649843805183360408969043177318056917095099295794601592812103046346925464144354384746864720082881172985350470943941011739048786274467323045276790826116050953669280038708624367489531796919059925266878181555595324729973543535939455180038499412641114764845480015476579012766948655266034260199979860272559802022587256544520247081545297128187946075387065142651190802305249502590019587646663254403624645846464202883817163034206362403099131315960658462915252521030385633997128080639188548608885214994936726495055397807462468362139605168012244298290522715348590307961378038703002105227591406575654652727523604335293883913589312530112325266669748944302859727254007726888934379218101991723627440778049613127007244464810415471228590818190336123693638734225893849610510789454428156628509182704458326313537651662681913361861834128643071942085030857429994263840969800794954334119474808842201755103023870648183801931853524917992762966380463284122318661278646047341301004916057716485287229195964426951707690116619113188018217557030307735530662711937501044638383106474304317704462143701792691498603178527323708049925543504582027231111432913995952441551168694170692885847585752235111203359230843403280660154509854669721782657896781753069414920318160176833235156391111228215184048962928520560568169696360894607405508417211797184041194841879904641578347078057911952353041190956105921055332982962519423398807291026700140338518779042201463870628611009136350866594423166479064918714687328493953759411124039811845741783508619584458709971863885430411013418588297146794164710988422700958081244514029582616615481985186939228402041843523346178950167489410710914430690226328234224562615966471585648885063389177389543515770906896259953123980438479092236199820909062344176161942917292044540918411920325800469750516562051398440493950634609400265698164516932522253122376322256923811316571926695309954865875332000194212669277054788984687313146146039300609969254087071631073338846834007689817007465848531939722981922546719366376140107628611864108777629345429533342690582803253275700891863262848517518120215844509840970474086854460878216497032226166584803921599710814814104986014258400911857009924986277857214094751297988812908214033089931548920862133346004136298432089102930787640077465414279438927450528380415539476709799966244624662842330672854966218918738818297382693298764870074761785206095957897372965390018067421177394163576231264669274821848019343937866971786304255056427701399738353749523653303654065144202284700753591093435264024734016625609579558410548149934929622664442622276846474105845246496862415119311335601851813252712567107372935875827082895318052268064988356022906003120670485165313018683968405481660063636144744765519222443867794009035280900926866448211555690337721564149896261663356072117989335930079511577233843718387153536489300225593997070332133819152159190337620944268727057836289939774029778548198697787161211889299876225480563684228087097665682120216172935690467337692733011287099700892379109792369320973557420513439285778721168066569828381493506820759442969498910829545085383829703612469997778090528389845043536356550833217724432153215907631734654767083681793393858840312797807067440730315242444583527468034577644533743164543096820876118611649301182324808559772095059180029362354856504692998012883039820156360881084930849027153424632818278028166239061038880689274210533952232479211188462202177369177177410203072872202033914010633249790536377755422564331046658881859184319903073498968998001671818535079746840945059207116802769773138767364279639050199565737174022230874447733739725116842661361560015555774596443074547215349366521236669064068926993461925146699029537026677333107061473743693014409644544747628688122229815903576877754869037297130692272789618086396456889925209862588529801509183424464305491888334101203915641204975749835306790892877983106059614090056660721312767044448868085956692877254923487908527533129664847614885167588355232730351023358199916327799919458430367468876067493094172543530992423525878756353424007772569164199860423870367007660937864702929727522482732237955838993802224759872400238935061307519911638533532560250472653584607802675087247622345948559110006043780934630374794239686828388629439066667307160828471397165452519542152894182353085761538858370710265391229684640982796955009189088983903910584828692498088187672025069936426823845551652580217456311224851061429497429380811553702391340893360103924316789533470164027730325910573225282747852586938587622486265145398165335852291092721590438090979305725828385190077221678650892876686713942255391234687560425078827670158758755982648278095509995769672538115766893514895491776140854970458105068069434268529085196639384282516752221601556380822055688266070952376510807229173355305109067344035018835160414516934354862167277113897027277026006984375749174953497133260820868669081401254889344997347638851168168831814320043907172653950863816976157600049316975558424125666334616410307121817507574196356607199590261185138665090858037463385849859545307884256607858897136908795305793677122143021695044562350002022146255426916205427326932687893180412904638367734086919484929655978963130759078337537724560196356859827367894398369699886049852996003891152720854403498015084751015659571609055371575406244556514163097275825243807381851722153688930816991441079444058265819553874206368488142226339061798449159100896565207297986797860304989559895630859144648173091089322438685761356991482027712512041368429799821409531425852902289973812210943356117220812213575375926403632346189289536789190824159864960594039088244766555218437426425390343819744044161264191580587717928917920555426985072415615874227950695876089493578702465302378441853715653090265367298423230612149187321886225707074528173802389766507071991370655759710291110496458719089379540610863679125574532721586907534374453874941056334745563448692083988772196922899887165553854781982917877217472373735377882915082052642884426452422023096780847815827397645280165768732379764623862838700722054959509046736584628266121965030027138909958245140538121261902156123469129238177494212699378898987762915385816378857093418039388843954770742680389743624825917818727092283319683976973121443376583072341615576147071043847087877529411986056026822807410961112206950706050805515628483179497826045956930793066505991235114896720519170121825368755560469798213064509991040777462075067432670027748652001784107444144250365505593710342663563622176804911863628241581790730583747016198648654294547687094182807019457462584564518825389902009409975293442007867007538047389624801687761147945251769642217511094763082971180985891170075247676704053160182552824616551413371221373660335303312658542318703158197626784756859573767386133533997795849897831916834291152120572873092625756753569033930163587317497876146298186683853902694332868827384876971040668384409140258841858407358558455333980349131736562418284671017237954730346554054896712272398564138857783364361268071574764321919945859706516296954889400322230887298687458983550989744600181557069386534427035355635783860952115142924237427879110817597142685915544280566304900745083494033390344800607146752814385698537946928067559669126823051393830785117843778848932781320475072857079610093058345521164453672498003639204063685063087595126770528873500171921462513356056918970338776202218523617314547174147406344400448400602142338077051052810454465162997084514360322968572224912706775478687490834072055827072769670291700808309657452889649393831119457685526753367783675695935349555762716987921714587130335801430408676060385732101182801995746125816548268821878777650049115509861369017057369003530230495595171596025224563533161941641864497796728865691946923073169651770686747954207153462734314245868873337055346993946290656426239287049268446095303122953612834280615324219120917236517187253798298594224385544286062969471515167257308649040410040876965249384650889886211123597050256199311227391994335533403992393291586688909917828327870968950484865343853621668289953961997073204435733062174727212996327933865169173966959572236524599938788599528386761879461590422704106295106142796332666830237612897473087103600762776357279269748938445214784922692436198125915433986864030695072978046095954688983412598872250404521675708611141451350638683615831390516183801123288740373830769195961372318609246410346612267111428506422665789578962595425045304356343293589735950541583473104869364538246831961487293568807810528615114236738114470453890965178542864215083586551738187039143036622492209292281027533633739448682287484119947943515200121287258401784279347378767547996428284180578023576725155736461649599653784312609825498635454922783252194707460088606965422561477129653993347223197504187542580921536434483356204788481011471011727501372393049274003549204009068174768313901233118509852191495246601019620715064408189080180012312407466443595128747172267187694451963296813954208218675362734049542631042626652096513404134816615398477787796441545399829431561872312421098585583160140845272257264685294409444268255970937324949379715447355047632036292204132956803707363909886657281525551491613214008666225764625827465657359222700331891542965888839668513892892407763821310865799375837618606145935303602391641681496371070720898743864220702728922798222967637046794710058064283140611425063872973055183384466591174075007995613778671543713392835828519120483441380677726071978196611207227309531431203798305702037479765286904571392995792856465646495821436283211334889249041778962255392197028192677370178164405296667128471023198035175305832080113027340699495975335041869561045256105630131617262724854806287797317721742483757140223684457735320545239630358350071687563756505749538996400077111383472231015913689725467049270537439754665823878983431493233319581974207159376743307420493112769707728680165603529682082913386522976121624072008532588256413591399336396711582425041132677547086776036477557761610643021863414359575810856979991258010752551924817887582662619751486341440122243014739383349744656450316564520142754323100532730568680125787778381974182727669265936563539236574095773315281282771455238457643031990400739444544724864009903702508502447400028861457464065047871938462915917759939397191648701353697527804982445918514776934717379977194471295010442821183004862801292172010072634974754351123813988345344304462424691319782149710489641574228722064639877935041358249108733606308473854874895742734586885526506843570617565399490197330337263548820696869195055410915545652996429819332625150294946162943427493667180885211066119212887670432675167924113352077747353350228496205583440338652286871129523392239001738596869617485499832499302069471513969565331691862477274142349905645437725254986081161170398117710913993229891165019871994186115192620741666941949235209033425906262810280736403177328086616058311455342945635223067241545074491637699485819959397417586503064710192948203890108623348147990209255710240911943182507299897958691129451098934083203891111095224535401802204355670352270256926559899703513287303742863855382269558855220239427047421250025023789800919725140759698607801690675193877708746832783438259192835225406101236284074905353975066593894648574071855381881250568445190905932972503412623142140658272261379942667072836306696001227495540761307283300064691476798149642079219123611274430057121157043749541184144307931007450279189746675319443943428694151921000700625837532190082898969776753319292934221883323132562001934586055914527376536510851976177729773610544800257746076033737769494975204865400946879164357596526954119425599784278038330415272226771097021772377945088652622020798185270307004836420114202532674707084579547983586407141765650912130071875584078987483537564217951341202339258792598662487440141708730879223442839177599384670952400191313674131427559719279165284555789057804362116889051883989096682555285153900974239702710628668383460017496304958582163889742329742410522941756203503595890491334525313351333142916443932009130224236586705797349252027165147275194536461594939792834035866947958616696012994061185804591720413718684410410967802184635314821144172375490851299943771447016887728776053346197717455136908501633268535780835426357532007239495328982406319857567799348731220515455188011722248188917501305397037146731668975297468468829417887173359398908416184423037049814498881847110454895657696172657495869864340951153180916387817413100501645386903960874297646542863095668377605551707492200194415250219362804980074716145634954175300631988311315656662289588521799677913971395212685359959753282746012999237474660624351043535723936535077288185541087501342975664058953526498093629543223611125217525065888449235148661716359838761788593426432753461082991718275498800703315436532537751951901534003187880280978070977639782267149048693299180362561176343150913020227601579639744335951212206758788884727234666562025716840599448585196147132909237214857490911945589335691703325728998180958696586346398890352944227544159289549467333300240669968324619235427201824819619053201785707746208462076478340654027786254178513708666538560694456421840135835235012380420184439639064820214064801148616801772451106205131949466442281036829519397715639974822584938880843990456638548047505125803237644835754358174111732032460002195707605718687833301502773777486507794386124730325588187241422739241352839855981749557979268081892277798539466269512452318422539533900674407586348991411190123998621937707885645889187639045781414530955253526813964061193842369603552697156363207812566343115199252588674751120390060091344993791751236201679656809866193429451868564696507784371242227427628309488753430697930534521052707249620218712640680616757531444148530688606471601380746502995336101849722109606816480009275585003409498208417493938572898761066609191610855712383067588951473357119382610653484848672062736215263540160971457548299388582621041329147098698453827673060028035229670786418087610110043501192067971220158464227994693149382454843071677323442464405492963926432662140857712054142637016393501541733663646377210498931675272959492779619537864115168800620839223702201886408688937669587305054484550431283382701420243995688663269448758632613688002410737793634899436661515493104587885889338916184799404148743444484565590775476447460120577352104880186093760831102345681259891922601026922900712301979530780720997504963127453635858635865217373485493120650416463043774372085496149444131106286106131354834594240508790701227049910452273891562804137668527759441796423478330291926129153209932592345053333828032479571927015621205006971183370632530989932867008935540090198167375743666722917329052644267236550894152870108139122085046132777493029245603833237831300430923381062837904598157204398519393471322275570562662615779819310088204981570607340824422453711330138289526812942572227327874776251372053574351529712266432879214962260800237834577491433503680433445399811956858121337182122861767137308847475232185737636103682487227038904710324219218403885944880538380271667895666307999456980330868792027980708323008689500151774746639721468287977511159328380557793164835422416976239415563497068395923483246587203499958038563973151771676507781657361844543530567083951696627121168473334430679418986269328696954109123649762268514754050228006947922859510624981995383483177754845103485447456195177738583368640815882950746333707057693668086591148041049376376782227587391701546450532613433314434369106062599873691438493175847992401674855446684861569914080727633375918940135598945674597958985983958465429388936256466909533694204242530414065945489499383003817908932734176552871018182704882427016167610963584251518752189444151208431092162004764542516101019455761263285820438260925763100186193055467600714351386483678852714035803140343197164503691607719678933661461544488242747882509567707550596444638218271956984540664324472555781469762767763742135752212994382788256918241492661810877779185234895969584889954184468846433848365274023541769553590729885222048331580563990887944519747311938958863198495609119999907665457045041415230922827535114334835916972548344469435965600790639255241141944091126400626222604977374536799161061883051489890830076352439843803425644100725299008041441701037525241335613375716866019786910502220904204739126281598235323876519811780389153933370093022966301462946700262312732851782019764600464731141159535471396533802124366337154433856466258233907641787183076064573636706936754379887817189092995624636147404325113239629756152716279273872167667956489225434972001650893251763722263227931735045422524246889784354266421315947575682859469381667772134530126839828914567942647053529754977116521280348953402188393248456835730875388866561502820657053663694787114324037805436990180281717551502925863043711394271178489488382012351475952693652632091466320880624488739894015598386693193099960768557865153179746205604812678359778083205949677780107795736531093281515902540230477137878400438624153517331370583938980552212132032552584591115419210403174778000208575866953228560994222883372146375976616318801626703145797030614481238509645948296901208711634098440289373993219719945590403593657642178531786315935689853927469716973952034192499150377604802250736928870589405925818212579929926957614406594786354132614153224606466417689609364644834575360270709427271478230406889119654750172249444199659786014554761249174107886710184151122793540358801469073436165161474465310948968303662218917022690179986264736562705629523088718649222065283433703737194986272411667866985910078755267211967411710659943329669411788536786825020062028977590702254192504708860395206780594829287480976956362555931806135236196576441571032980244453132738269617149837265878216538241517684825310685246763308122721407689180570703160454284387370311149115279094468180125644602541925362159195083288605373695257401355575162007631950772159155921023309419024516897098025301908886500212736135650128125716875868349133818009904440709843142230080174000822561759965036127129203815674317206387007416303469472479987181258340141007209945944352495373243211372527681687689178001135150786127771531827401255435123071949814753960126748553336827401181042443254246348747147868438854379006017224976677918427173794552242114438744782473556280079207743697114302257946697131075453981851809527725764854931084381608461867708433186465756637369270779418326768642009339349375855320201786925352070449957019771540541503588167476647020811707793133815377898582395426027785130194860517479322143132332865435354918364341488347486103393946519470287299976798292725318644970015006999821137018679948710695924179071930399824753327606297666080737676713741446941481009238388267166827442400881571153998172740480689955546607642599927204006015442584968286583901378912575007422122682569925220037334284707631461249833366858955174301614680386101646289588423975450328494084283576650590933790008696772591650606297514977596382660094033707312321529137616493864068269992684343254346948590301462636410261928028244919476162011224851276462905112524648900094155408797451441800271298015208984530085213567703047328264038123845349686859943220972386909182783907835316900819637820725021626533412954010967368158622524634815592829701573044273839155089998750362883785398738222332439797602701665265156881503402434776608039796087866349986344563354882752102562039705165268273369148261992113297752686324214218831811523225367856061604287669433649935221224262859128736388630065354972251537070328078146360302387083569355214802053690715271219577022825607103283432669066093401618511811016847417813466589558699342342636409014359758526321262321713549526751247881463855193524400778057352309488124211893439901705292037464201026539180736546343395512686864722507407595557418778822394507587545184302292952642394877412323928883164098603233726282010541976528329782219073525527226583854323458366744406650386467682801286811378633013554625632728052379063557764445526565645279277994082370105990317366371012542007259025409617437592811513024409717042868135267017913469107962698087611560600578465712274882632808946110272162088653860946637075534883233909495485810297004303551162887393077973465799898277883426117854304657986710389919931538815380026056786498477208490883103188031476273668009889179757731731049051508102993366045514806580684852642726807785623627179440707687971067580156399086058414864062379843866950529592476069854625942102042033778743278807121730037224159963685955241170708415794241013284464919932937771186689375986475148221071106710153422094302186145972356818554069488111543166502167683279090518756390672408002205527833273663329483666423503196426882233428416025227658828617472320930268458953163550864193979869224177229494881043903083261700193845608131750642108263786200288068548300989476197189992172740537984076904050585458076768644587961865216074194850987619789085156563750809070458037267417955514941570479683789536361015992840357737234816874903792865512119474725288183267098323998040227205063888444365826983705337079516026453411020567719729526369097245867960291618367771589375965556998863807519316927589111142965254132999806410457247896706388046222318318421682942154153411594018558713456718471595803588660990410996745736510647120077757770736847965368869645744285087689732066010363441068901867852831545100348691590401743888888134734456317450620444048525597754766292330401686122241595748024715946005401115199641108803804424460090541996957703418254359099365043118277309776888600279957472316147757011531096354105987645866534364796759957119169933469093914397103055874249137503525878459727530642099121665927171920475683457438336212336464402040122809446709405611106257673838350111888331536629733621900129288488039047054147826528224301675308442575693354036150068712572274626727685183757160467648620342608217266290778841125191737649607363960280386989375375017304371318226325743640823996985028477364568346534001479979154971386505631993658442526166584150119871889672757032114332543965182324644677978020610594405643194119232867782732823870092217073986394915568549001559167890970326721717686383633166618752364617516273978073377151247289061390873117113422769849325055449771441743161973039933379209139924606946058615634237438505104192382571517617633414111820431999606527088263069704840638544284065530427470010025214849888145977423161890342975985082242219137713032655645909135687025487819572873588110952643651787659009274241079523353648178864028204210973182173974130646261402800343332556443495360388307679077082576797645635043606042824242955180366752300425725157024566435960058001276008944592758240843162550965490885741279617309445007576301522728062243920748856082729707574434533584843124524045860906517646561764003780896032462147359053160558308628472970154985218015224511044108127891309917507614968039886307415346238628272718669062709516805119347026474162525436113039877958113475559804237958347789884478893456711394284043281683445759913243050418266312821491176536609591705660824560989679441457343199349931907458164294233731352806868436756247896907094492752380205594794519983888678366403045142760141648627059769620602522168342005882829316488928255145187555483543551876015462598522268301383756280632676565910070770820007857454984824482339259010688910939439344186938435004841994522184805110701806900838293199168670957826355507340499145798917729474990659539292308496594400615620718688513022322608484953373529624051108865692578027302190034543999477902940993429719965030702304614024383126390913336195963695778307523378459309144393723828549621111582553843879871470775972089541918393671149320883295514349346439477947960168868594591690521212606143207970956279156568560974459466825154172966126911240440786314398036403423920867431185655464294894988679960635275774836168792043264543049504437828100428997750148737748972029843377841144761950598571332690861805947398406880602116619436768626269258061099954795647316758984127398245919615547146839054191758561562250039621852435331268112190367737464101060910565838230579677864546213901230278443252253307923630745421954153336735991584257948948585127532541393386064853969522310437824947117459995965957516523720317487474386061244966361710495508153572176473306112171077593706794291254703232051081686351990282323634069298044578588469344047013061747962818736840082882533981735711607239481945271338493337384688231429642140300218621787341879091491904475481176197838357476102665126680285297743926281616142717247599084708410476941932371630388565449342457304205163269788247668620777875094178754127978557307198069653778603673195196108559970754955032790001350639348808254544573667163793756223652654303483680768857356919979686335505897223630357022276314970248317105114011668722044023640866717964145151013587408321345660457515464868955662940147743176787750789215667388614558960182256112786902275036064114114802298650971075309020168659849655627518138841118440790695600657512896089388392125884067680926439448727779069891288985180169982975045668070774635519305937650101740538570114307630384140800503063397250312949539166343022265767966482099062548648618485523620014915562578916763918748348320674946262927022074046248405472595322744285765455892638889029225875942911760870540523778502360269778748182945552902590716624308580625728574287459284618407603543020588495426697681557671336816907542221533799568291844356148874634119190179004955070677027694471275560385654161063442176579692145616291651599890062514158258463949586940776074584443719261166908614573995682585873780815448231665397759844290740186034161150953540933211478428122321506261496253014416594405356212468899072235363668843055465721070055158344414789914075736033847602216141645260545497993293607680834760914643264023006716176923068066823964032818840271667625941489800501897849315100820170785671987696670467032365355559937427310168027066861442406634240148159093437079147936730451773174621483207383402926662732973320186527983244939740423066389656940005245151309668078256830122807663501238195671167197050447751644131428673650989592877975451423770218706543049405809045013870157196023159211458925582721694453163121967820808148175384864015273228920535347454411744656310617490885641728692108534917586133894042791505434331267793502727477385699329908508467411593526628876104033049914360328800705030961322993325735640831099811924462159418743385219204343496338706733106330286608778903222222806716425617348136740528996758201953882229580254287842836883526695900018990249669063111997787165695489201864070360202484157983528431461617156586149662566325468568437086132312391279196853409533316626459874141313546570566906909820610422494822527546207084254285576583927603197657018075359174208515035714075409849648499086040388088510547322704828800462728182536772909860301215172807438807782215746222091786739388817001808347593163829915783013069707809915305185732119719177162234566297681302111433743984118400044268949091041918555745737369938232827472404252266811918051828112081783498994275090149858745504178900502463311138927408398959581918230920366193404588403247004782532992837365131044122146254259094653064943906129970823305351246452823333489851468112307688125357977973593382023626541224544769751130128462840079279767596928586218471839416217681398888315926109623527146967011188342028263474052512134149640716704540158695791864875710527269296713930870730876974806792991970670550934575301110499998504848742004250361696213966529361180535599575813445924836749868089589327277931403835894654947629196210231497175238150648434432261396784896890884674942297431968706447299631720961120557905590940283674831543733426400109332778386975472911201228463801629971504097273997242884966131805703087798549244147156885636875602263619889339475231176433530732846899169630624874164304349408619188235323036257207154840773640419916569245777200431854752519955504346096211441192192686008021695210007475932141106876843242888991946457636590652203206355505413922582840957282606240693323506591169326736513054160926383331884323138006480701004073922177635730621389901673637493616468552915197031129981126733065999921274729474043992451833324272444159339108194347851018055553384136556634928088436572554001610108456313627752321972495528285916331351049523021900492110900925142373328838867315912963319648143985457318390346579745521760424235380992956088963254665547860774508107781557632486876180876336342886489200945456220129823237606490950387911132193029585500654144816373350922873097066967327293061478930092323317450600453608256462310150121392894883198536259426617639811119116755438707518707766444357303307612758740386480581237268242680557115284461821461844016268696649732863087627692504824318425865451812093908047245931991775434047423051872682667070904595119907890564722822416993118939655494406440884579520513016858401172836609784209639078769135383730121028077802204428931923554777846319677669061580483638293318694840338962868889522764314917107327260578998322234613126155554552533031400305400805950613704249089997240076412642162627540298213792007030976617216596830283366169747806760662898300958511931965112842813900918874515093270217565358706654115515811414898070919657047759166284373756025242012004483003681306017719507885604912365352737259035217278707589335751589852599468319962774262709916667257959478028107064088710657820871589720275631466834517786217807384780511175164045762970759435764712638837435993814304370649348540484169816956860817028325818694379209785036291866134975898324919182224803932995355783519496312816656906752599514961071248231817099737076587780679166985053324018573463974171049611860004312931617774316830476615643590039951243224442961689624073634058350588872884068197572561558499798564100360705228873707244786198649196387672187192620484507500242074601587237700978797390227068213086892244713325251524210019181498972668852112963761751710505869454804981476978730407315083777709404725283871961118043153708764101547588758196451870423366291658165318126579736608330131844529208515680781130960112064724628135528727653819733075006158355413863375454139005961317375104939858579575146736061166595047159521703793829710231123032929896037564178389181483206576199896027780037905985806611526313566950320686631589409455934938300584380790472655267273699093506970947328064498744028047697514369155696034727443751760710168627140112709957685361317520471820784166780867775795131788474272539363213587504180617069904698004290808438552810801278467956995130286890831198094909063390107384407758103411140083320641681726383595145401956989247719253415306114238852314634279103768639674033041873546945125007551493509828009093076151413789163807294392722648460881059559288921511694850574312766155075000168379237437984161318614771615846310749831860169412993128871300625231261258412412357862227810604594037019311649367390925586518345004914393568627400136120988344015778669371159316989121788881601411785525019974439917533360136384953739346309139923712361240664961081980444180653759325271014641132029753103654432201484226372246209551166664435013009215013530279529789220771372116902929202732086027165364227406854253659448750355262031698774841372702512148294223018491737333640839257543828129625990779638934807845864664101030608889288449279773061237089431906798327509363888453864859597735680449053408943029445781937578115745926735562933531810957314343874079358738444615751574974534241424626976002884792685412143634472889244809683933658333650412289720945579823379224236834969909192901833461207142546411456153934767510786939738104581338072588570870916246721287076277742612201526711083635037012798999032143650398643727373296546115935632137473224697945708940301605196157642151984708914098232613813473335617345604307471791973131918189111051328762401273572102403822136010498157379479729195478143543710928652109561096119432375616487551523448955481900498189232332255956964744461905173475457964346371953241032807845059207051170569900619925933932418816413972791974158341705870329183139127587934989196875031523008708434418567617026917117993809401212395370650389930604782191500049287609142231889345693830373481636214099601007632191992197340539132693177473760204326551290413534900618875195930474387854923146284008285699464057116952970614595782417291611788638734078288891359201663066838483165420847282542852358207091712201175664695596544540307467637720740841884607260136959781997170651923575359717091505511705986449098324064777350578834095968488624845105076051798450271159395856508335679183496603827408177549166002937786260554533053267664897192113700386329209222271651937444296716170113257418421175886786477109401611341854480536971870490038354832433825762200082407481891285256365153620790035951305976744671381041053675307180170969754556383997518092397115962916174756506919869632363460366393720071339244237157961802857158727497967983262032651097544787707906558963005094118202976988106263279158471837750769792704855065764119914842677630791659998587883062948117850089077817676567337368074591786524071975876274457684620322127533510327706207962463758889586822932896286315803658681271579542568803328965210701833957780148817273505063627336865772736655447220592023027752445488537848792119942509082741031230896492045066192696046187720807571024978772855597793556907519491047997512453867453206862712427590873045803987278205497373999203773275143483356412316665780782448655016452649134048703660485160983933589202296417709952138354984360156823339948748084934103218945167113794085366533087527709549323607942614052826232862129235697774446047454780997003798171248112555813390842300268567321946394782996697812253007276782506876396474008819006495846328407757194104923648028076733006504910504109513888946060309279516356378094993079268889960192391391367802782290171225981906076438938901881946138136942787197089009372683643580441301297147503111523296392902441530892741248607106912797231809716373153332422440042584154885848862670353283601425643002791255408782203365534843130541757190792490544803778666387749802302541647024052253251759462730616096331034790350424800114202857314203423447079758208216398629334371776311335203706020864296743108290297570993092704742191356694823571434017087691956641411794340523179877115668811667166428089100195763320172044051382685482675131905954382677630522436195841927693463947731956248046463414748812164062859568317041406335164271052152202756807998592204871652820885484020296512025507168105712670347884440781513228280778626605257951970870013211212789146511699603413176011029212307891070421371229952943100710209137038159322931219621261475493211035375917978452430876110737871269033577009945365870213499770024443103087067824202879546253999689895708592206405971095618154542668091173058117676643065734523667689611201765275715662621382639273864696075347065428499568532198082039474297227327071557145624779002079495168585190199493789866392105208073422048082185294727455347426154074833642973545384151964751149509518759305235048666635345403841451315525116990160286884016091680330527731340712575949832442277153988405089381679592268874826581850817259358722760111945324783336666287012909950889168248061616796516524748864736601331839770690395600612793735777617613478578306613928442645255745136134672463597209957370932842615562679350525595208572916241223482466186692158718282328504513581321127030825059591922695720686410138716018225177651022192406444365407464169188567720239848136571935114603628305999323013954052171507789745073095501954832892010135317469925598068761223466524387702799054159856251123161436188113011005100397384787111566781416019955200839160493907752987909603891771295885738835839942992283947099723533722291736316286921025981799596967070857251901333471391386687981468521052879878816538495953740090059026686369638295977174626039711372773903127988739241956801367208221712681339642825253455654763668153811644171252629538987280299400546030660940965060972553202684090054778763953383988034664952900875824059086250912961278223194844561511287870446646811731787186828722429314887436376137409344673745325749681266687134344663367643401139803988006625701812560763173094382286868687842826707804295834554521706802024439188376896757884279823094907040276257530711774550936577522554124864072149505629879243505703184473949652317980898163112957368021881785443132841910173299380190777234892392656736924202813758965824598818464000905178748504628299604021663311035481604387016972187431474423300315469602116241076745912628027205248359325919293059957073498236903997587645840608610796842488866760317561183635789679868152524951223095619820686887770686514553235270205648491535382818025471545059537169438234662184546424064416069850296316287765137716731018631450493138529395616576781220998835403395740118473420133827929630912419165029913464424939288451078589737739724629569164385087930468682218238660929358261090185274149489236551618707351695726542889252959465077921731306808609250395200937520803896803442826793092481538136837207577857265430489571126435775128702205649419298816434484906931313524902562823111920518062790523004111782947603999313835611203146674811424786535885318924269555256504636528199515045789059285929271081568126610817771300638023767614633458720940012862312742007562463859203432722288454898139203471336913967759838618624374896854202482224335388911322526582149630459055880934132113264068225758035848383428875949728017687351027961609810291077051423239292749880025882995722448758752039103250036069237348407441505629762799523122741585526883194917651955222822527711923296153873172488670126068042180275613182566315724869225219131718741310944663195069811500040547411380493408403530314924978110038882510667197280383772483199823066503848441649470898061060871876900892129464610143083429181397564014481406250701057658017100259838173442801517911244967759667848978688850641717697178366491370791298780931945317529524793231004424684074973559781316992300608914284434536600352999869575099907964755929665339145758248334776176062085219729760114976144505876309960494608848113415115651172643030037572647937227486790008117211419208174624984208121797354391742255359512101599026347625064316955216513709845353614558427247027153194903402499725113550356895032140830677303446545645696259280437387834806754781755039304965004384872469991284739634825972479617122286409401183097479311832353646121422233683795162349326185453549105635115501747774901806075324205149729183017939855224115154729970890118755582960335521677362398755212596617013470496762734627821464462040106667257778058963292624410734721882333781290448016011302775654616917100969322458999453463378167581414672241455884419270956201692871446234459067804562538705772878525240029079960784276737940742465330424291295449259992820816327806714166946537676054636074530172423377702559948436159358215341446133849313750971038011870809556510514740210851632750853023240504829311213103551724283802750476516281732234648680108904991714613816379342179264219974732581750418678840779359475179283055498286151883456587066458321189578276373378988007374314585863931346188425503268822313585125075763447453899243948911389466461528999089494892334799031697330825518492512389144896486597726403474636608582014652441005322537590420434432429926959147123877339798592554698786608504183441786502347072531220394783013517088834160779699906598468611539656460113339044459102403651927888637392151611284866940736219484587231638621196721713580355981408794774516630232041744653880074944049669569207850067964888485918190764329021854656692705774268943649748281731670044872581581334990929181792594301868276127920784989210032650623601909859424889798789629649930162182485046028015860938288076831146219340092456594395604338817431604596724042660284764048280919028258963109413416723042203397552720166086146509205076115905052727220931786280785786234365594980124530266983536125169380687632653814765281319777360461238325546369599629321908738511365840354717565375009760108553510015811191005174645159686738070951923581641393569028590108817939976316593932589535668121362231809391873918603531297139571673088233164681218074187854184131193023141886214435032383473393758444495916536875321142360908753922641570058676451619531996104819701350446233947410809291140751864653005434600097976962549086669121694884784062636139735944350262970350589639244882324401423936093500281294376707006849913176099230622544940949758009440780778224188564557974051309622324136643621935635439803683352922893193474377544919438094112393600114177440954627221645308529337878299119647137505733169494535418959113190927322017422154017419033247358542482924665024684224474396362343331374639300009550974402574647660419133180418349660752406158779318147239424844669986077713458111917857224449425011365355604907631209905409353754358818439295471233298424128708487466621087964691763172253606994506744965821688249706965682952549990382296234735075857918987274640529018527122557588920399207484774482107015649177165916670223853092255923481329112379738935947770683104332388471782499966806124627268783543565083833561953910213294285011960960390638562034800952490735822126522311159881147117131157455254153894053445921134986165196138125425909641809700594368029172607270481874767949771362742221585572788528903038809950185564843365394580934666971668835956265939507842280702056114946175540822835464548116771607311674990351130908266580460993875740929625892059190277452747220933501122266389893381124854137293647820592522180145056569386715171887226862453198481819744815123746551454780323252301895670729520664515611497352252260984903273695583773503815484398494579450424019269590753628405864773871381667911958341456517835045415327952373849144117438567498142859599776579237668912607194288662546003130450152165852417379573685192282308086303383578723600748957818865694814522422464984680083976626208880168532396566541325014727119608099693288104869323607622622174356267885162002815708020350886891593305218154879227576925866334187716240367756841647219518073552688172583035464747026352098395289386961773959667998142137545589007064658985510268306967642458448058370364648110145379776560461555847199788850341199391476786675843079702419933949334373415935106317377947396872934424747338502249445962936955691993270181655857415840505253764551241451243595416377810233736368651010795010610275571696887957824945415011400661123078645594372011254913310589777856145546712211708325958071523050488499099323737234831569398224386013864205950004275949970100160609574656826768981662796473764935165643034374704848045078661378034510267852584101447911647001788176611758473344492543700521296265438588428346602734751793378488854502147627423228448921286252783452600832509777952366929743706901850163974351447222798040780706393756456937356822407032269748989317905779958558593243408307196581431662770730731778920684972649535617577925529308163414706621945682178847449131242148111083468068593748839193601543483587549314635873380379810688167361437762179632701910339169219193472412799832801424000301953016405789130120261120137631289206626643386239054550552412285577199221532901246699266018858854741415121795259371401506173370937609114779591727042632329640371795719192780960647263002617490817880715066934930217081718617292474593163659966004150920003192602342881525524943368262588507395545800375095794760364421110386095125515196824447368883202010613481431404981943120730291541796339482173982545191093611452311738860530879338280142000388970233306980525108629439046246317716733135278739336822833533069149523427532520331460123627183557150050940217262068629224690701189061607125135237021302411886537959737213788161849024575825545763335306363246401328792975168942742570034225440642176076609611938282291764832072003420327529592808229134477813508418595152921890521188236074074803882584750195090199811681448674622150617527196321145533376878989433230653383312455292556804276525562599289392361199354242721097623721712225999668397804336751653939512713632742641010812929919397854415262922474918893756524813742030624178762386134029700478992069774559575000843455587048827566889953091174606296785517645830341567721264171529145228990407985552208785585849444243788011833361404273528170176098488385188587336535226392723710857094457956970091216771451005877761639981571922159135183774588145374472680514121942013534523381904220832324159765034425072428892252758258191175177802876329253160323835070061849734951900846937780514986645377637082770801532180635092506562950731633202221336499338631862356758631151953723201915883587810956873890017792321775521080171042551421617781308471765567816827909584750628134716316090562265979552812216612396900693408528946377169278075823460253783687214100932421190885832420352766956059840500928724053837631818744209438900195399130849188950126857090974479706601508330781235219625283221680401784319725985867015350146959945687683568528802847655565291448179695224165891257665074648540394670398169779897766002808164081518395831797530012501593231080139885761907342035635159113139786760975644124285221718488307483664303863750823975729341543157377346231878125887739352620604869531097494814132069783499323702849629708326464484415843926672164232321332783247591559102316379825576734506885984052163262954765200753228175292910949884413756540671040733672521586189724262796394253418267526058513989896534716980742932162957143965287475304882713729331394808078740967954488048164792334799707118860694692513635044071253492862618685666343133542379471977345164726082699255650393986687477849490792207201168516766046149262725429947539016843768560045281180709983729141682484060582765450488131818989835596631028002484312812777205800716848521009313605732626209030211974674324148393854301988962694006913490899697404541906956726748910434813728598772867869736182021220591633308764853055649126832090291941884515225477987522188546874576249291927067587670432843248975217822061625216068794372881314101574217986024789620930122436007705417687320902011501584013831689283354525538644587186323825080671875753645782379465884323610024117797067973358670936571537975110360736026174651221479520880398468407939722822470056588995667743988221899565813423269190883021954968493131450405089542001598926150544679024080118901620530267265836953344848743351100154266551999969211871614821663300175060873553800113368123647587232811405696631949603817967111630204489692904857294234599838724391148381368499070604574459895143592130508715790610611887896067096743503479646879646175283441015544962161797680628614253834986619916189545688029026002835861274740204684561577786193194880106061220490004517535651137436629789642832171443653746212895347648061442275383439368311375040224610857743858694309681129930388380445798700743852474637059213268061617419486033146229075058843002807696085730574018981923945184498244162017790434044027093502181224754313900278664181866472262803114329595853768878041861710467272492433100544552617083241838236889494270996047611964282284152633461956107504155478732266458175209847321194077842589546521569852155638438700201560866019896269570394867961591771030033220518601103377310322602148529740464202245251521672046203111438175385118397461747921825842471945602726832338816635203226633636250594535695095339056424784740894283226536111018441681600913300827283882374629961277406708822732962639680779936230317464042051033285933269042366292477811873165242080904964004239773290453625535449604448370980692953044008419839299024155410200026528508609397164759751044253570620472948631849992127249209777787949527843806934029745380919099482325567837904767042594459951887983502224310269164593450918859763200522727812977395222317557246486828124804173758977650151329228670384976709922738643016184761380384218096530728059434339824191118913051978167613693229606204354558648001653525929179994874729926381984475743215156636082574958491840439594792970854637831252159582153053598495089448485954145800561381265535368587010371352172449134285909418981832844246672783711932892058870630977539291018013116755465100264826429341237125380074858151480675081586087776359242427135478762459003617165030175449968356888417987988249060182221482324486024013912595146162522048100074255475518578579847203025412778148641351714830741199015506883561379966029008982305746498644514927513813817862125972358228721148458420855430307015241484010287715545780304981035644827536905689198583081335469203394652489802182324757204917169789248458531229987139141669838716143481824998151139893184137729747919256994124862650760328671827691921162658696371756763963744835182552185570436287046798135369633120231740289771677014989929812357556574211164362135118730524755026134569395811877318711136963201760415299526961460157262812738667892599538631544078186346115013544026258929862612171423786651546279405099711393193763742273964569140727913773674459526926589680017722220888286901781537725601754152999470570208412995859527153508788260610010898006318334300968887097743693322022408124130712838497413521096720387623944948656648748044738088139205376364748347656579134444257136741121088111966896549374934179694260081383895031703740994641825422523976606218303179049460670014234524370617300098746254434101349246255263513114276596228577343950743421706073000858343189404792827826173319622792717164466557871273277713433605169443567880170474550520571000948100125591918509834791026960273893924350796918144788688984461768287613554103930031836376053652678918497907916490037203043135640554110450331792875686470377689872220976279644839149071080018590266931801547124966291046846643656482363601900061476580584354404004418675943744003653086641454342269397039304630215257381130282852757569035221529448740482902702626133044348638641678627978377579341191112555969223747303919613070206145320959991186314829021039907683362970638804008740410647419519512918694879435912194084052692852421096144387473334596103768376899072796082123415276771454953826784799647030630880154433944518431078506076441340699337531995675979346224229204357390297324109892490887939651785532222766057715619161312964328870243426077473948736540881604564837686902906030919398862627834146311179886610332419514594551663617957337698461879784505828822671634776593708946996489008917339894202444727612881105895487780106408889065871432836079846346398536833632599053682588168778021346225385005042203130460613407079701946296812031423999735314571247530488214792593280751711821978367365463199131945572398886788234310625043722038594774808116504186099065343756349707509411658310414487079397163158629581854868483650251057295435002077588321441183783431438809062082581984749993332327640914039343636381504835725498810023815266597953100467211736959575003217778333496287102901082622845387510649391252011663698835509378297225549014524960476411241613879430279490315032401998642758061206367973822724186645170618183693262736744114686151773774556833903790547010602360092278311439061644089984806701894753523663188975817923969831105381350661070784881707748966108520930804713777264921191593061651435007142821973257082531756638672937376530147296887646789573361789450658423868715002063256647764477883666107307447443173989372538767819768304203584720255941878316187858658416295606320206732327921726968556717772257424036302388489385223603219425517582903549241792331697973062552879126338385847272603414615707762870768445264834026804024011101627796066302386138310038791350538331266481101909441353858394008527094968300433182506919617912705705905090566108273715007305934080162810030376451143989772915775094888086181121138686415130202187969695999420243334861624212139749735926926634817490604224332656393732065372944727070596303358621800636126772443957243564076452638693807584691721550342963061065850477063384776884081031814707379230196859102798389381346942371960606798193047643008841381073544362710579125394988643744435022706750055933995749007982796799659959703625011072744344508941686219175162056728493860388869603194594381918028963344743391844557748597241823969543018465271854960911430341106353032913889437222550103228365729824800497546259996603701535885941907980456238744679911470455715545990412977138218302834370816322595026336976486823240873515233075839708811550854381392745979116856383357799792609803782201106427041342705237358413484503978360405580769009496120984117991106848153198880242521652918619125705031607403770701843786750379248188070123065108981563064371179121100135654517245884548191348386851889960516092338835075642357378348802812926180073844578556717659271267926289160210377381290866577107525817628520679879331620379742072577345661872258608195611132717499011174270465076496606427903930003846583294839515975840307476125176125219946463869561952858337778411075947515076538989930890261378291463822027586020189575406126510817520112104207166282074514932847333530778566053005815876701073791801227125009331569469772002426469719267828620578205774223511335922081647054797101367005141135610450155252766084183978915920569638347739180523337577345553530783267144050268261562584096927627180472748927029468186982612722394847092433282711249746458034233121826988198922264642542864459268242267812278815120630467463881544134223773190028155922894521869734171330315506870956221656351560181415752237074519169893981394027376463492736605549513473329285827821347462589840076602126513420254973423429735194202647220877242504284581201887991846264324476126634626838517091655203325880019112294565207319347697908797114043537203615389279987096157809419031016644116632443373494732976969705769453201158106831896526449543570414176119601150152904083418987470411234383675896924905248238784986298283960711816630756579122323247515644723270761947424274710524112843723818573054302686484790160262556753548865889180361168324148820903575470695326656318672843049052913014861575912357472818665208585629007814276929158861249386787413786368697835396460243536134762009118250560723017948291762719352687582199026007053859078578691435862256232109397679921496293820397142934060404705548160518993425353595642376052923932272479224379933045036708114963457660949004351602872231984491428215851002599652469728677229115940161976322697400177964194789808329667831441298323785273920393571312952419097776863183126723892711534620532849274084377515830588974737743047853978956171802697190780102279071085067094278197787863289748466288941414022085314460593726452718821903463311890246412035448761517300204492419735190433103193829327615977617033760967069103410915144510235260365616314629843100315292874994350349773700727523632381365358876321511131635256308444225692609062778528504394790507724460018045898795254406831739023967296820871219172047553186925189666073699843237371445851809133813130215112863420621038946707731824492369269824809422864578729764499230225954687503834944403578502637718123373378020152175734581445379146345132736443452479706460514949244123196445308542685344958183059929990816894246051888888785497114856397182297174690195782897735995305199010460166894143847286151259319657368014024218929761377200455998886770390977822322325332526911055318345481814868388608863585549264144759729010008711789673747584250746889539558835680017045124532419877706982232130189213861805395845070467590956211286999172755985767003196913473856655816178450722079092563907500624384594003284538511283985274992099689271920523275266428311013125516144026273319830665885190938178734705411374035855835702593486256735606988382503752102161144592239452477628723093578734425892402715720818089607762245300290868562323181234318582572420844346532313547068823523436113978125595687951656993975725636036053142787594056060751006019730226760025533086066086029818035716728912595835411050784526078175832360835886873077732967943955170921472662435160680240210833919072251711285243410938954833834897014431740327265875430097153239034611354090579509069252949221965902071748490803426800666088305293535859523984297599215631589732418374866844214668441302048796352873735583181823263342111729051735204715585477527847960713065205262958639742824581099795288397085618553507276455551642647609048490701427421435522270939065209669722485400248250884634334666381574101842460223521285102089752850382082105785192145519362581730440889644240516802655524984225913002487651960872254781959848735625665708747829963620328389216945072565750464809555254173127668128287865512733572523539359276507813887903746502501143087447095435907438754501559762115566814339928927888409384305057802960371466319173293825401707154854733514434804921733163156908361429256128257812258850164334765348949312662507065598679511426519077352329311384377916441243480061469162026230435737416105681107716026430059134770635993895173187341219661356595026078807399331714417424110486452647103874538859385231012801250972417077632867272206337907551373844727443980984475893321302147989342148655960779113042036745752625849495160985416898194031719857805605080555726864736145108912520343620065072141797967809509069412578690208212251164287672775687920465654377838174562588319115338188366947014571833183092259964444826559991026874717840658620603340469259816014755390048246552002667252640854642845168893259494124598931945689889758904635394534862948476716176115405057903214876285339209802967863661297901925953266693371869162932152777062727964716496542127946953228253131375679651914853402116970972284698233085337512331151328336110184613185994415676985766560174176977535492314215942960884864617532154046613971360734837215046779815455383044922459824690803581808682063699898240756461125581838996384086473929894993319967314845484054227917312680818094643073761948880434580057561086727887114172012863503502726977050149685226504618557530310073472253177959457680184144864472283040425035469705330401024618784841954410618094950324570202076533297873840101889632954892481397985669901224526886648693313315055477367938101147520325699061773800838426236497464852157526129115886078836091363393733643372225785418200175451379369264410220833341789339384907543148705934020763296201713204180300631831629531199664723139495035928003941162947832334686279977554436350286409169816630107705711677253951552359432921489472531497364426700018107839848526455130508787115377615765186189288850658498799934884761255301247434277118766595343573370528282465931640853867700005435481160476313271272079468107351467284502386550876249736842216238846182085805894592757452798983227410704947178067986288171272445108068024595135171406272107779558670941759721555308713526150295293427872917642788305388666604114872633288191770374319715706374026833525820180154147263136872854233575006971000353227799785210791535396322949897799610444432412778535602433544756296069659605784219023427584646100080929321067002968523290481160819074418512615787453242027957881202038770667579404759183008225029779805383983312623949922054261654964146855703171528637304109863777146841380453233402991468618424310229199697846031433898534405734574090344666136714853821494376089456457263570752961592125922939534338911296912649360372940724706915437842341921556078286881877462066272442928005628002437581484029593167788793194563422961605421507952607388468273792812379050212808496830226643323865170682537786353189680773717035782898586777682230192478004060594683408104388309549610657693485126530498816790420611126693662745278463657314860030979102830390770428763649131327253414884981659886559849945441325630527276200884869353784446725162490399317875118516394920537754886656870202745913156202759160188298767873517130803623789849455108007068024652868686044070966613880800122929141975682940465083997089684642666302176619131483755599243804791850136838799822088981271726091973590051483921981489910242586964215945496485135345073405950482995455836933867475188666680555198205845698890130665781773286410151074599787621862949338580124673955199601813468145028509127065775428007743590936150575505390973315380926923689860296114758135892566264157685170409601886982967478303810164775681723125855260551583759974280265845547972237306400181830583052661818574660069097208072198504615553574120945152903174701082530974997298905078950175080471471612886463139687884179467555489944744889971725333225479483922267061147109876251409568510472779130530276967328097513350165342208885255473258186328388382290241108652210623705684150392757450561891036227778236146839225065679341363044895905405175136668912665707861292328442415210036272854477507335467568360681711328782103120574370351895881541661427040541110969847700962749130499990837209840730437616439160380050641494385083337543527989273180606557191928084177938107240038129240355306887948891755827889701861811371812728027829841656196137465022503403687317064190330879830533110485082370532789529785149764776930369328335278980104413277138304499835465384712581248960658240265405623138984919640956576085637237769111923353814032611491583303778519512859285764988211455548592646498374013062654689940726979532827737861800989472183239808452046998130263423214353347860383973220988675091097823020359213413597858731363046600455267461676766284389899687188054914872438051090504490166321213256030267825679966712308556231731295369231116280626783146140908584670118735700234769646784786408923392423999377399337692639071615132407919126311449219064543567552172388992844067870043518189805788834648502812033458977125607645230396008230760349635103235592160868272501908154807771195220436254523269802729515965489458445285688666959048174879359908753164892838323344090278168835860192001258984079026283094131385549811924089339489548610875735127054284764602200970958467541012196545117018537105071377278685826139823359337745546746492856032849289913948294030363464121692163065331515453350216849388185804965908985582480555254049485710346949807758064500305008269540650793349884009674822439533756633175809423724753912906405788406814351479543650752149893472335146950998719514101319885809056896448175473204147001387556433068740129368707385486851371559658850323560190107717907109643036457289207472091941363542185032450415928128930022155273535444755383285976247102384288242740074608183470404015598348035799951889216744551865413750704926070943980661458335542082622850624322389570379864528282742444307328419750716751259278417079183775728865675735357025266853972303143648637891106197066738136668349300091754215722988366945975313959461492602165341580309064930161602057433563256616693225655181236181631404972506147236380565533703415564324547625359621828723422599361163438070518388615290526734009232110542100433442504139832646071703532616222845924370615105634573544133730055682764404097403250562406931231830764536413782928974741221042934355757974418703082528250384479293064070375678701304237047867661921359813356497802877078207699706527750764357786959769960404212169074465954334406141639260360017247367893267380802679973598899435955352342424665286175174299241824169874385681465506175928791331793797777079392442637806398585501307565249094745019102551902484624775214690227068873708330937165527636597685239466124202562345971133380432150282653837021787450186471477834799978344124186714395587380811020563393717095514068013854879220696969533430087885148262897749552903340683057801864292020745224216934287223327302644351834355893804338055043002624279982168142433703299220284495024986350587885304339262094504124992283265684002799412183363900052446345717917938410978169171849984874689493614151063766623784159775433982891057255876825825195966694171146546633864629985404088177098625034942227214829333565237796231445611514654811965137945372813636831400494449159741975386038845432819921742716010300341749822592302854153275027927937206605595004222425385200830489455403019275750726936930820492535253554254379925093351324659074956427080914073302602675108384077250798578314257419690336857020912355273375869906441154959612680350182332712441729012964431143818912383154362808379848912514476443748182546204703392774590508188768291259483555005138128009429715502121101980636722576632815834000186588482832150697912373562513585717157813931378299850037753862850598123022679700841969524685805685909777468295966236048385829674921826518635446792733650688108931328671749813802176553192859725836697004014398561276443725286718682627934475327455877610060277122946437474047949325597455171361941133723551627967487102090008522179510781261325480566422294439935892217686874372272238949506561994985130591434613626092341447467341336741029565707603983798911526946760024272520481745083300425616019888153076571772061914405854149518651208654688777955372412538461135731390000371811814357328944965787711769598284372054219907470799351379742654514921341321494050780065413478467420760597786043124587088328140792466705562007786807647889874452693545400879837337683950597607326636285931725433072945900251968435055195396252386673164278462671621712718686671956179343287503008874863392005364534394391233801615274997933968272824810546097256468757324622561159949048955817416748731098043018530745755764835603762094693427241841484346532491221993099239468435556647539757499276857366330418574693933998269341005889308480648338156224573666805121327895948304642335569805082143958895297220817946696855946899578993594565237794438590963243732425477252855220284427373372240542079025990066744469901402043470235566319097667850647576165979823588805697432851310920341053050195214318424759160673265830373536197001829787868170230500836298774217241245677481530416185004101811455492208129864793843039481637908169119148815368530029367221300016962012545349086651481145767052107233972727077082664245647657972363256400689380091608874217180267437433701928878956853633427657050362111671575592047311714250812821780714338890136313221462959442223021387844846445357226856923225564456447689044249628397857427772408650458295326406922855382820814672720048858706306188550545111603421550232800233227213028550679628544452688392139613926819702561615209122723134271267614946300306257175478247311880474486613991431923970176435771723823957445185537386408824005859644276757455321558361064323087472585790502640220500048565213070613967645800986505120908378808702044025684536288147236504523552510558073671230568335489562378641537598068316465310879713956720823229674354904470607277477447355143661408470071862677563613135766999081616144089065267923682872559388916309112736803313944017897013496313481611678370966175803789740879356044933450667668994984919611110319052957055386057394866757277680788172671080508519328664353924456593725781621526754347037840173794872537389360738359671166015050773199974335449144109869249271257851117346644334716477817470252154320571174333338960124966553790932375092613692666649805907086225763223605552071006841633697988340967381639071962013239183901515869623552089331621872469002384404784253203979478981513035541300462652773487270838302252512611769252781162367237344194772460872199507556353235419972353122896542549444905211516898100425174138789293229671635716771236735986741400810371803930637686104520510828795883212397520579498208985888986830990910093083039230961304205666489064270604222570041775968554768142036270699631817761443674854042907928881722595485302071296395845427310808834774499436477380641346354479577494210890858151659645277558970605097327045627646071005034227143694177325986937221667603504166059341813602292474060780397360490231417847789972044134132203140605562090160417354170462510687305220548599323572401967002335137670996625667314417298574290098214372818962653077621897471954627201041557698101720260970501805311752067536134665308796331807704889535719182156522546754370446255910992158840547365495858030215854423323432392391390090765987983264515848701429661119049394972860880912462515134067447451285754876408152646426124024228215171733767299680693074987738399122312248523291590218798216265480990475878621605925971110553381517143728643018863588877101281293237550902077352631530110379152352938274048703157931204249694786157353906758615022540599213190820378209775013719461437635525653341429163486438277801079348244722975672440383384754757529443217082810509830738718328538759826630045181372580199363493687501031009002277590355368218123472773627140944517099432955396009612710080722844638833967250721230111396228166636564618297390783969057155988632982196429384432593143258864873057964338139891048015587106169079003944336822814243174529290812117108898536098625121031583676114002630398934442227961592163437704687336244825015447755554402506538446724616598906906283602827628685895189386212982723587870729821575284874267317095305892851354911542038908504298239942375921646902970126568496903712570206535528969204333280500378295980504796251573445357471918139690350731782771030515788865738064694085343098116221446850636345232836191292494973833615379743491129048306608435462652583548913471531470309105784100096538300507473024141530233298518774769841205397343613708402869487182213081521837382417915913410861085118118053717043042103472122436905919577822742132224340211095890526045473100551165614871312718608789947489405139783476354297465186611655141025126566951908712579414647558738936867356542255338423530593897389079386097700892346924117311828724526350568885410052879468765744227934180202408919940472129616014699129710341111844572157879333997260636936179187435685231825333197808101117314461457030616414383050362217797530547661429291356169834107292418932362059640521829281064980859837029711567771136211107617815219709221590335899007653232178591584238287380020708771482414093088402741315856769712483867838405923523852899773705674102997937095839335666636248145852447852791633837384178337175327976778667097224077584734693176255334053000956031063229698692528154272666392681660959595882306721881519259156755471661447707998570435628417870544132417704606213985130094580348053478852633843800325232771512266793299672549868739696543954072216266604483333123276506570033664060225734689348637332920571650717624486281732667893951475314553979301989943018233869495062874753236855081927715636376078583978536601004233071799574815200518517021064592176302948869515065646745756505995573501297927659262678071058863731821955286226723199705578147589477920073968654100008551318293369953486556030531118660412035262980584222080832487639903702178129266721246615482644765540722016560667811287610852925784290455842655086426438839710115139320888366455110070994183077313254267738343580207111108756308970350707858048911147550422679579308135895045637384126705952620541263539730241113233339820569217117983273620971861160445662817123088466393768395615654698454713910285635422724152756522048635927290725669960555920200780623360182360430013637300091366970721610014477798486113734466362206180425438709232781616615436433709105846092683398918700363536431847715721163314452784886337615358373231878440620136458137802516084524548074733295470122682405490593140722958574266952131410549862151824603008697453184972091626359788119195039017546239974253547746285970915870112381043026998114714380959698450939885679627919400100362740378794527697141590426080914980907074173591383998748694875764130136907038608926461920463611278719369321935445422552281461220433930637414869562364256535998822131160968844468546007427883730344303609015469077731997641050259140582032086213843178391258525869996180392291813972696863439013621027932517484551020113386903228052375856623449862250749596629326508272554229076128581717247287857917157651800493424491447436238937576080543766986460377503346634987666644095177326157958971317737276922062141638020110152593163883620627169408970047759993312295529221230170267719056396452665380311715558110975711083470787897937825827515420308915976058449531332099247015931939850353523689365463025982022998041236376889188696791314658571315852781483273171897022256139363659881960139068443598235319033844866326653332684110556274126273204083309429363188737948612834801010282062302390413348494055297546305094370371919665502026018659239246733071051229788836686021179738318725874597535475330975590801928075698085857651157493911016388917303389239296061294653186561009044216020294437109051324106298679405931847322315623670974123361263855036802274831413595598730758170098703363477964849757374053805563734191545248560073381805204836073526891375386194151370407872365261712606408348820398686792370535641692207367531063326041512370692272834229756003651501984524507336693864203914982609722285135351017436089930526382685642657067790555916091081952024544866214624365292204177497646734717506061354199267851663659792505064663660781761405606485274825328906451299226341301451316361130326334669676183227543045926790681604284097972444266392427160772315031742294917884700276442537649134411508929754194170656536027611302674000902651740555784511843883136893434551440479765938003052972170982474016649309304683140607568164047141197624176040239417397284730057863927885417173135791637871336786099124848428045469953610188758886945594975432816809403522968539549023288147640208346449064843131900181458029946519266782347160629530231598478202797325818317406682363741686943652163383134119164212489916086391513548083512714769674882240009737587885518113995686238505297579241809032343254045861496268194160055233855185761167472964746525645081187047468757426020129155610152666791614941064764411480448768318024871792554258794458660587861853067493453377708564950024183851849099963235625739521605401636312630600075442529040789191363674845854297851872504351859970123580906219962192073542939202212447965860200481621631961779070912282069404452087028310491152881281575190327600930907169624453379602824533442136774678307292862915670144896442033308059421653416042036215118170222783266791614836318460536908605001213766409735581588134770213594566122477876634704833416919814070919317297760819275193446357089391715000660264060266130156026866599037365234729112923712827966286505040573644019199459740603548631920759497418164584449968689984440233616202132287189819710498953699652898372914147262149097009166981400166153316060214429309210804410528242402927347259159443348838291231734694348107295301805155380198786753912343928593528306084480034309793605939856057355026346357157606296190149573662940998858892057486389615216312310868914936903713280535998680163861967275888654164560938477665315246435239578813839204061006237461904661928054526257234485255731037521655002679280796043495333199765703648488708661281896088021753484676749691706345703670570465912240532952117960618682369715089711702588758047761024295386699691669902458096297763382286807467008884022165343008316269511763840189050885982471538870700069032418051673527744284554314801106883254578635069538740027180760468689439576653673922361706565376459368268855080333318678607283763235115784060361978963871683567540193188249611334317884403624989617036768335980490709797048360304389271655495198589428880910751435234983412641645200374737290513590562724676437864734836660764215233441045826025661165376025823637851561600540031343036163330693886266898484511074895685660395470633768302597898882477111765062983803419678444429269204568100543030474777020158939551043712048761282917784673580901526647379505979619714036356967686193045257729529393477761035959640153194975035481320785357977537870665953469082246755604783932971162067354139865239798390798380530555620299940839647335800260666925045263854261039012131531798577019048031345670561561619584664123971646038006228950732015752434180768627872117385492282738705240553236176450585933161929678174802515973129754266696000106401193553315942146304165014089702725384653502214823921685908890267287862715786736937258683191670058197314608364432056518345658906064128861114788462926946400591006888060100546632592432207601730677326141854808751514496560537961388342315404258307637200026542897245386367502980122959218866020894166427056374474334528378576557486149012482422919134017539180072466891196732144123750960460057488700719937073788308302077331198109756785184321343222228591468428905099015327773935999713083089059926087532868439518538610201469730727187871716261730855355846479758647055428280133265693132013409770793723630669589362527481466264756570942069520150883612347336258549956740253654822095244491066752896122111953664646071672218869438924761171218826711763497859463430191408579684906315552206025528345432240548749771528325433047870361544671225331211949303197073810253600310016565218703299227773756169251077764861196814670045096039868521827341176362332250814189476654048404160273508927154752935772543505247070879565721174618945478876050742512060531322047243720922468195341016575586964421601766010977508336186678879118982555351093749576378829027679769083600647371497845750418344286409034455628645378153507732086745064675578919405419550218326706232294533815229735008908622130122555005464951179201228262493331710088997455969256215532681864212418234191858613636999732561905707742913394058210275731418377345630359391018130033871114472763879231055124077066558218641827208397063917161276428247099702404475475874005297845404698280151501388047600766914626114535827171583509815509117126557288761295393325334405140658009687799135258727148657088048185841802621867718691505184752000809260120822691009018120236578461195930999692066763443131240119055102977275077242523026652842157755333092957892103936979418501304301803758164938015071547396515501530156273607117952358676379250680845751926378408902149899407570654433836251811563876863399363676545037045164184749133221232779718832932197310308262534106372192879715258731535953230091606001155676107246208654283002617342584606304115880628334703277595617906596412463431316347831257239397490009911223119191854342515197301696888075270852928808993739797083353013623622138661006752577005236009412251021775490459370052823711236650319323835506775807133951169290522180814903339733509212713621588121574233805289907214648490518003601424534543354796961643403518414999753645686988498063855228486889628770028732872797975378834069959410974036608914830885117708677146019605419441280836336767316050431853842296725183965176873718316470877700535806564105303389536781613300810838700451297512906433720348214574625982769027971565833768035534880006525396498635429973448850847260991915295902174570208251382463048713646177976663932468812296465797796434868675622236209189789276684074037689811276205069328212779659578096597032681983624327219503521169686965919158488092163587959694601613713084969926023661951701625845097744393115228182859585688418100486479039903049597976490680804927080958690901801813346563065164163326210602081829356176574637869082503479096009323786326248568587510411187555988604231668638950765430621188157528229115576949109097338507576221403317447369897050293366025931700092668922064375963749731502869873551484792452244042381773741419834839901177701779711745327326114674342228149019832105891327710468374366556717086862467700914643145110050640124319125604164379927879160631739978372823599916824416308876384450204651339288294519613044803840521346995995538595713833507389431818832562847455812517416087159830959873059195843069133288957147184335483430409352564060314163264982843316744187841582638606757243766181246326847401281466378643746151033538403286453747028487152477059049838279658613335383535993115790005906243220858975175653398238929959602059216670749024635283290735306241994378499142073886490120400376986857470849023613293578817763411950832290014396442114308576623538703432607022384252908981810911619009887621830950362106716474787350873397324357437733694209900898135556317113832177556629210503613251910903990778103679299608051001318656526180313097717440049227465365765907583267188884337170435324883771066287972425890700300669481385771199439440956774136541346596142311618544567583440628646038755995001422886779963689225471333223976716727823900422422852069278368759195795094226574010309336819436913371949237081314203858461328287987691735444643323600375079298620823179353263416332336929342683995069440958965101430270344118479036770067034677958244976774349690804894735486015533875935251078661726078053820819938802920954542792272668448336301492130584972839400756392223665115542888849970066198477673851591296803905130654704414715550038964574272038208236922085811769489137777570932522678632018721082605817076632371770553020670068940473845868388135021724616913755324056172129193973633326333645360548285344234967440697744743058401992244465540040028036346877752530350674250086215272584810406455176944774977968567512336466534036804257845984722696576108554351224440515800104462286989088472510344996376149392291529335974111231975875097519027645927918662490462014264267623286834991869170044149990780264398383204196556253678952702142034186149687851965344585484954484645371918490208016158693758665803259753613707166815549276934121514771759201777042582781850287351394377283918021110934647872830387829897443403063759007561894727865743628535707320490158023487087846746573927751961671879171514457364462682103236558995292987648792566167687944958463266505492822867065461203876582275468667366623663784806911041232156874452761588212453777836558938909196492587304292936042987605445660355556374722358447883824594000295488544872901361371365812377834669129987169928633242268911858866018299333280005552894462270626992296649754340869259381262206668923181146645551142906446188963890068090546622356647868135009499263574315224700208178239153650140489730329956376478339361266904202282661002219724491873801582586947092743200604400996813078966111940523171953541237896189333883699703825506659374289786306625131773870856933378714436274514780410940795280884432681791211453555340531946429715108675987124516167126088807936979688047271526031474652216484259752404824577129840423825524122884225672921197925815814777775333833532617327279086982026378649088080735830525808381933870875861184388388486114203772449054466782901712721894338076902785545539392451219998514714005854990860765054928528287508408479470572635804552086831949216267075259805167206442148565085130316074952245394222737694406489410159320738169201730646977105498768544926797713457184224975387382175526167417496758066928891211508051094040506278504507261069111741634517882671415010899805776794911968768405234118658033121436925831724134514323875308195144033319490577074894853410557816354477823994863416324569022579667540904531014918024381982483297348462035364397595433365616422795028769560250890668105534828384020954317783668735538076519855118546722816645161422041060546036124573627640542621436936781892370500625830768506384995098519528878244954248967644688789887813287277513846399760070648293590360931698367802136782707321362907278143629429427462137654022534733288289693352357281598563121356143436350160616844548134665256498631560626335337835147494752104310388025884743727122446118415991724002148581061969121490332100531677040786775008374262366099241580547146103458612081710666993792831626724403335910978749828322667057689201340728743699013738089776060269910432550605867347886754080514993347300109557506974487102652678964430222955633528469239205831959744248864605800608986174407618670970640864264716494434209527122437274906678048192191051461934995076462473122183356442021548736936927195676031885879833689386069419744490708150150114399950369699761811924193095578843742028168818651244899551763168775640639589363366326252579725804122419528152971452216699127958707875875576330044347732980527428119340212193393109543513457553664540224193923431308325260102724110685226009450423531496246991932739500605349456045813327316548821008564783805194819230850132811454267558583363777881906337456912226811550316638773908956115938241651128746707352946452943314428792529085692373223938330306624421208664722773410659914914170207282967994177618641540994893160471065820425228585060252600063680504773710386815815482146766261267798855746118924594657178000102149496001522370773826472018577865856555948883724919551929412304798800808139224342988062026200108276167866528195584035694439643615804830515622556541411848769326490149388195031657778667386373824635404642547180144744614662501539327828064183079265656743961093935522794133693893328611702775948399111220397015861774565759117152665056244380904685913899542427683313168661847993233016180479584271419934612295244428430057136776507817197395598029598409753495281292036500247132570526498097850311622804590588195848999424278723055319517627878486111007733745257284113076620839784336013208821338878032786662096139361697199667443100981979223475924088230640847141470503189453313912925623873496200688537986239372111346773874939176722483255433288798454749702078164050039765903918588099967850069832882703287362944382400827926831075644279698110578083483810192635904507196064707036192497452615775048719287210319316366514499276879786467913142555757263817478533722915982620981293302645167200769943975236994129441486969097304766734118382799293941662633164050642599259274940622468951541402356061545959187269597137530169603440355808773350192710916177899970945909799367839166092276029664471723348843170491753949346591982423788499531383109321577169774020242483481912123064697296770677428413288772331999547620498643499004499401442860245005140286426871251918646120287988014711393580939386939427724060600181840487863902657472274875572443553464077746841806439479642857915303296066800437582424083660091200860404391908550420123559419776504328599207620050835783269059910481755198832731077592545574797330364429745319823742078979762271446716274503480404127777558769152135744503739311233388532148847863013496579560416705437794163067733993242992679508210229249773611952395151787992863027195491601918954928036114409784599507073517386114087646335521863081861781402062788549210931620550665688814223255219015569420320557986274438382211754488741729061955583294792857643992110237148432055054817056444921789416105250957750252396235763418815504886016739370200693284112683193231225378239546396603747841549147806662039804390610660227823869156731900041189298602668160437995766202272538874323637116572652900007000460436978864006704835283370186339337998284894129437721612291229370035295946166751285913816697136788281380035781192300244484939021335356742961947989302654550813058317903647262910376866123802078379918019246207182330530733492650623040299233844141826402209742180300040340577886056889082668303330059539415009659982309664769435372137510046462591733437932122989658276214612434717887433977384154726796649539568921661870218996108053975105631585444429453822642272762612686084612115442576953194106426926199811458029221826689758417889123333637561533376148733583958008099172921878869424999744521434730310237262226340560886184204092189901114305348346356394181164917646519779404413993680820725616640019861770888572634815065881753445830054360475281248673999866106933125224921111800685990099703762749593277541196473026692248879674971105492333584935873442425967614636709557936925686956292745514449432137297175176716468321515336212048440688939816029299069109700599589472905654981168471246837048011773957793864815471669745716869092591191003709175355476537119119224574705134115788045148905229649358617946675044951103679296903737516364363562644330584873279286001529529401685800241995796979471553051577851714964380509516738009682965318006510091144826624435330833626192586741557760203206141562175780209554362188689471566746008473453663027360943254293970236093746354389516194454810100366155169639025039075995739362793059855771047421320656538688546222592515182067386971962412481597827167351169151606257779412201153755828426631854866365110741699371420139989728903175994460473666578998694692910310842801019984473404518581163166340234323625363798252524443558212200307672962515894218444200369196573281426227054120524241854949778876629581904786084700765346322604554595786754335988509920704486433539009844145830728449012539174483476472332048528839605112037565954896800340628354632387912425080650931781772294908378110632830722978618849623106488878507188176323803845255874372208991796666320004323451630486614772291435541756034798374027745994142397058742238818701993330789980660976082322277500825348763050171236668509314677012713395222841288087851515617285318500840418417054835737797404560392146971402996767753437196875677752311723104638285520607796699680389567824366035957796097781558753631684127081203795059729497453367841335226599900258824438577806849271499542165923210423103082550921780931192456032181779955515658088649367911483255378143961963646283041921849030061733920448184307754854907372890041524546389430482225209453197882491191188259978308662445299624150698987396847826304657386085671418774089692785377114951966292457486845849795043600320689751668286620751066624110304760507563201142559292952037863393510113462681181965011386716535449337116307729517669548269498826719760754479147114683990389145478523645042727659943254927637237415492524829055155999259819111992983258669755017072083293637410995696710134002259038751502352067008809983964914384281401897501927810528503244958133302451007055612794120959857031182920639843316854567338195897566950888620110389698174262586984350292698032614491859318216690717138978824260942711133697556684989186369075737240491055844185578217943208554581584880408846486696047001611931718415612052742173240615161969010399535475977548950259670714257120896062457429718568726216420533128999722309780954020008223091157977523251712272166136633027156139646138913290876224219303168396003709770970177771032323443674332149936949863562530184211135686495118373525369705038377290732132177081145826487346240862394681030565043113054371258352617376058925771280102585007611553377539447978528258545325550868658052808099876260448303240212580678792565789809801747531383305420894827331327831607122628930889811006609869098492827291540223511628133625391774005040635387741190154022600834784561032974244079335560813790554200317234859366742339859563311144114793528410400191929599289508295574015347659211136474658903456871031372051228303577284359570363676823822458561793978788363442598688141074725625919087418234465160579109938568186776915549458923423303733071327168946354917695881416448417428768528252333534296713283569976787525158229567614980279302689413356434495403533874836487691850505066093519988465417186691637857260868421890126513393057609409068170844172269986465071318153242534329215821677685981955840955071797790628823214565835173232515340991560015683132531120350659322012888143581424897615625227575266740792802098665891578375381259398587954094872327247507649341879211684309990727101679313328654369239756406319982069034329302583305611498831637709934514007014681821134395076561846539474075101508304450398916669286485737420173561488290274986757576420339680169908720206869208302541027836895533657204417618413974482668463409288538802076696626195962938259028821763104698027944087778550718079476905056029191367034425523872307425207446213783655686280375339452888030523930582791635936436305472970454852735380855294475192761997890200244161972553784586404653091371589405779452764184663427629049530668808499866230820393173676797035530725437244987582188251611190146083241274525205602890237914729302706115318645990541377277625697841542353102441467557612342810613973883728608654388004329535974986958981952513354347925154050608031168248668828757340807584023705786649504595719971985868634034556599285630503162792887970499169933383572927679466219619209490442546636124825511438168400005374092372317345208091494439199396513661290194061369330244710301184773353919206318742406738309679691373030322001085942750715582642528586643992286909255474828432699825597455795250819228073098554113445782759208220238188506188420171544867104487712674103748605207776889099185222262052148678275637280547438778405333122491732633356795946322530566670610553096685336938439730110707632163853773654805412283600599118148845491080142694717340083148995277624375463866515966246107185611023136403069717709229607338542638185848804578096292122387105316548319042758563844017516872368152652058389148427524087393264995520926194893737985840370077385914764691353080503423463971561066106712247687688290753258508276270366193982970482085229748017393854429989624527517245283621181164607452166612515632875446543682774973031654082603397197490583628282749163390723624469302549618706332602719940515666298028773682673440874900045624531912871066522692804606409409192472061625127473408435911754925920263854224112948907072084145696304460104202927284777580814041986158983261786643459110226174259000669824799171179920520532969970381116305762815300166797995176754994389391042926882980948297867239000080659893724696438962422725623299229819304399504106438683705397424806128473852603087741728958280018850618364201265959605710038389726853716566546555789941958712802000909900862928334281028008505901606445592062689665248469154238422039925828249517659230366461140963576347195462068244165800878490630252472191392159337346150344451900643347854018273064570129036325595716383211074569588562001339608666601048058677554818657108112046060488545851321436447743595067243452689469644988814842800116775039483871624202103056841565625200641520632550204621580270916636471692425615279734200244798827565392692782696143766401971400051438472964562179447326820805918502955980474009330460651400408520068816299509269235699867063844975150056979804694817996920828251484544476442360813246593766304855051611928960344647054037823676127233662593869403995400151339220031827698353716572687854474469353827198785542226423277162098298602863968201633157047529798039521287724677389657940300595006177120110024549945019312915196413751665785149584330191784352476040784835171881725357769699023217365113730377523809765533537541973155144072616101923337339801227604081705671830503311823768213080189068453224784683368993724233681091189966037309757233109159298722548654216993783167647201352297592769510121878560896063770803018324799254982063709538680195872439808528950630130507340411804035183815925889850705843738264031313742407650878424462976726821845020944621223416332267226038142959983259002868340945747403097304652769863849213643310442020225815168945942330439968328275755855975805355620681050946991484037744155340053402457126391741106056008248928033546073963517728764110771176630031982306693000534637401519399090205338080147928482159334422428992634114576876824794725869528668135150160791216201360017777976742581409894971381861492963746914125428366393783815887868984543655935956058241569316711245512443393119307983670785890208121836474750557468509465828665352737504978637749791680653212993582162654960435240475379868353179510570069614691394777306823854853589077050962594438169794288459016846946946092308157241399781244915004089898805444315758038731833892667088788453575552658123879366914914765719716674253593314073824033756444254087613418175824783979908710342389088075601873988666599581949239426884664627347763986448561405444346862093608998887732172649741418091095087372072788015715917389979415526183713969604563369210126055350530979459587501123217394289188670675365805990059999760527085784127000243352700083982306976417610009079684070167972429175040129316943642708111772589512935265964029153773353616933973030248377207124929004836113997448980823058454261280689989545848880890268984183752128786967987565065525686999214222136443780928743236862786472682350397066007299521405097159466531430714811279423064901435565325059748501243438966750411890832934867303253312572218650288498184670846954519282259808423795688759733809272358419349834197992077330703965998420418076743128092145741522491765306302055860409694569097328239662263795480798692202998670815528708221752003289429076681818272321057913459612417444965974188829201338097984068515748214016660212267502629946918822169662044463957904723434057451078721406808438357971208869985736295066174793142529648029707257031549202677013513917795939850571114037445067335246432688853442888941411358525998632756848026568282310547862263315688739409743157378252614654284248541819626924404078724096564272256133865357504160209825566915945672495474537467915120461070998614614204085307756884605757600628389531941326034982140297779205627054891657661208324112354854023035611949803186372739956484953229481607654428288404358152162022480764454651292779870338703138247824858755714459137914183347677825042092324770382630670457672813194991600225149975320043068995323669194031186230040202262359372356760717122053957952697854344801955985781976713490734517201888791501717392925352410604720308500516304915876811671506471998825729531643669821525906146742223519944855637431436170584455447424857607197379607024389767253118677599731147563423921207013895304152961408195505723952000435574545164937607425161627352897856693465440148756636697686072209273219966964368050904710124237074159708986818784467477380688163385548571249864611404653245250359239321888253692657011456309298335395163491093283317340766050224397141062134957630984736601236353756256971602143212290199324134732722098704223249849453419585672921010097657850290954882890968995716260701221616914413848226062065875684313797413795007223575908596870419110579341501403693930753984543415857393960680207542261655579690560295043914221435859558742120853105412484369889752457702913425145360553661637154153457218191970191779898232752623515166414699136080151293296332745407659547772073584873145545090014972521134654168128912026417104756568738721919505080608061515760284510977234459204702140646721183735826336003771607698826272711381785095609119670846007477319825001940724959075841499097827478838354853048057231610047334380432655318085395348586322267596016994884911251992795311416041443274918071949021337698636216411262737138118178482700335827352934208960481549844428491781205155881424542452894547600059394843153602808406819736137269622539802700600762002026889534641839957593793252227176751020662663400910578096455732577872520952537508013342320633323282281021508476687319875523250149669146441716368842534255885771378525922339400916681437204078689006104511403827279658560255557950120104652956960330889674440640247254787743177423482832688841664583356260342346221783312510983733008666448310967754941491107989498682923483631322211300630569995996972938068017283759619169759051497031796554278318552583644743651816084406739069493890539000186860454750739920427301155158912215105631822822788098147559915671712006578189845499457676541791789826391225449053546936608156445286800763148482859909906579060507356491851244400082737025916810107841037162911471581536657754208697018237207459545543666805167662227074967798586447932132100223979504257233319257055915203455326880922392381788194293146983857302198231652251977673724560136188357469148244895655073961025090628329654925093167162053419620823360322578497641347268560896427414043915722939773133304764149778410690355724396803358230698274125080673619303499426768086125272935758801767075886685673729893230842322194952497665521341442660013389183593542130069728928569215286761939401048740055252838241041764155847169383338825329346793306493673420206254246625528885414423603295123546545768126604032263110891399437081535038872753184152834280489730838298941732140534082424028337578276701004027269713613740880318547854836416162549457550855335271323331977694375013112352670711988332416992680564038523099945192155781419726016313744385557787756704980667312850921826790018292794959769227496697864052412530731700713986160947199861379067083155036033584676124390707933770018080565242637509110305518375245368114863502969021408398031488502492446423356778856910919591348608293885667577310346155968545057774106938112176159089310073273312650068068256864765051425576026449363628360748764925541881454077197630557166026374032655449889155122360175739276435119526315106065366277530729379421720570108282150510379752020186605247311676919535793506408556301583635146250008725876670882546568127799377193381042975166686549830246475313107826406309763451987244064396084958123445680363086256947828342487593955346960898605724126994480417707162640669154755773513731672853907807822898024492064343558061636622224717615668280851531153547476353879937344199127695622807344200581074165997006740145872087399315123066022752833576851674697241255891280750841788753349066205800589804814997849124723938351647144830548330270443554439583286843037537616069573164247013824813372604564391399803980829549295789315951878157844741416321509641838939019277096699072462711160624433962294746187243831586324055823725625740982314068431266819875556655589912432004594757092468071900309475025294104828430151416421351881373252033271787979837361635639501926118906217543429275457071261228212969192357807547531543340459493733951532609188481667423721843888478729959218719436796408521544125052101601895777119098411728376403766306587635249043401942121875154871162367453141759795232281715131977706600674178935227841507677835833316237096307605307350606448237268751258016345639562961794629382889865369994027638206598138579245594041849871932133603526839146280646433066530411050269811227662150683185034731567785314129272480001217059830562254982855183174815607720997087343771961177301988190780948271666846652870917446604861614820111072055569228511974124198453229875474185095392592064946527883420831359242789032052402002902187610776719597110281828293288501994251214047144085768443174521700162206243806167052167153259745081074502507391016959865013713135077278038295744191283016119985175181860750762978924629684041447556652549936294565822300377456871936923621782847616057590352937035325244669134938949791942432780217871741316487914026718443703725622752234558592682386442703234006668529310390368082130886970413146267312172088217360028918283259601269142231326274509790849782079594857750763997509567283648991567278259626132452873760829385230456309210328659761138049838707325778623485925018535472583750398560478307606729666940436069210340928993837744664426679971299246501939049474546896932765544908037996320962026166144229787029035907038921699246699679871780780824732790803957061140849723442161717382661544021687011493498177949936425013726109002356685539238480303253298778247101892900270474149849603379654535500297374009780957474157839835975473244919714132385945772437172053669929963633375522711288104329807167944983625536174730084173216767799116688586663457554394282511498853964853222484602514714838236017849932049244557913560352539792624757386034317980853358177263415387398738841863077479895680206056783526673542018192781050436285541061346419200059587177954873373655656878464548032777279071547360241571381095449080978741591098562720789669285609636637711088477945379519518074127355697489548587924945177623561323381210312508879972610835338319757327764680977440859482011418671534217143471777470981293452922363145750560014063710975981235462984455231017747384810352410131825042971848282126063189469390877780423102735920477680390549058758841354832570996172940069055212125570214252536248811744917484878160047999945821653492503584290683893373172650162680394584400476753094407862560658141473292220501504350132843177699930143034054536229535598636881107667788786890622274328764304957890420933234443980020083338017103612339484424824599245192912392964663589059198000368672293515384251990417246865285936288431640612246381198482355020626639840011554439828884453072080019200708943979143529790733668740266193275874520609379448234580104907747356367818562519623563051251676426792650052303548905429499832567075490499779750795325515790843526792563627961575682530028481354028719804227455618429763397233780866309153324126009072439623904272537854601749739479626048872961352819363914991524859277905286616918271957675745969791445796823977584900906013410878835057324642934011322741468566966524537581346522393544788868915972906488890282223782551387621674559460125694825383604352842395913828778724341507918278043314567548495386117931090684191199551914284780171524909288137466432876134947981734348142867153561209680715974273881403839821089048013478314810680297193943623883230119194166727586830469564004654458347246021857445862020242020284923699766923047745222291368510466648284361919637890550358041601026226081027379952572093681817251956193341535113054634032215508217993577139618570690826727420992530951883039630602085836273377565877589666469887806845921917863608622634058254256474509402217315746858373494183919977721651336488829261718206024874290901176919717696533351145910500528236978833688229609921307981918174993709794684235366201306203628599094854330935813006032565028787311691488599575986032318682914724312552488287146908747126661334004470891649711506166137572590078971659406614034280455787689784466682258947109679341819565084060493034316461997198810038268278234764572883273415479307858533426221299188157692948272055662016257048619089468327774119267035054144085449439488472201567628474312517760547861185843923546164537478936640301572786351986788279909752511305062883414269020449773384970017401052102402244613172539824533893212568480106232287343172356932791541156670427744116392706654026849502938205301014844042711771495333829900859505686509044385421592866279370257494248926092814679331950448042671853366610313270954677095094601644795572315104713236441297755306885711240512102953465990165335789671173011376061391231578548725531947922682967572291875412695683539750507586870028815663817470533072932556474155031441064067901896628008478500879079777580597470244608585187798014366136659741182703909659944008808948268666729742736123052257601924462563522356589654332636241252212456433666537726989524903112963387499938616170775277632380944037835470869822059170001641676964627625493072897922356318454293620181211108525369116168715491936065807330022987317290242123392388709248491301507198848706090748699156613163533392606735035379306361659707028015325720098096381871046720144191852742150461369187542035138694945793758119381050849778618989912342455721536320909452526220814364206919221996822504335964455887222871597251720708458655054814080232964983412200203543889772531799857266385385442474830924946058665039274258567054821453316234804440420145272022957878759758697729360100956905379655468277987858533682718081343278561210111467586469598590919470924260637033580199910310437576557487683303758375995680606436808098767208899544596396186593916440063469789903519541948327862196101025984521878938271880365563210232706543531836460886665549301883982861761615401969077958392143610217841451390521529499412034473020698148053168854022075955348345320749414079652233426471516894698364233257050424097763012015166859507166951016547654873096095507424390569840764837999630176314193836428751638117687819054473087729348943678075025001957949817698435312346611098690730548086086972866279759625533322208001595530818146973191336823320811886698661474269479516063269211207916887552815732026748136461604859438738171966838959061450482776864991883500286912611218536975978419231294730419625575376274531534385737523855195959832614651073546752031229216863779691286276106567191592216274279965190416556201449199071911029061076454803374014032033108344591747555834641641339266311869005212440575521122006664351285899139258701562564589172668521107458023488990248850148124204472111854489196530456942770371002854772219723715992798921791790577403591141118795621152864514933075609082851423324815757228453363157843145735194636482326344686173144673288071492413668559226341078251290752874911788598997951585979612502912593209068818622692839253736736496620774978293367699433890926593304333911043629781145749351274799089728820594439853944596787824722754723773397808004496279398780873188869016958988404692775483753594144802323772068787413532589431227559582499857561193753271325579852847538063192768187769129053585529354837478365026388391685310280493012812487278728733564819180775547100519781309326901104962029642362863846327853316188524044430415948459676178697720234980183211301602432827344891988157160238594823456933747588028965816631525537214079714965843717813055756301190246085437795607390030762439789869272193434922330436848161583785279677405717985390874766760496486243650669924398474328582668404136737636389792623286734541747566457901469184525988724162892511239221098563039275521574847897066978852393696024422905737942461581876422941014413243876286000988994118140171042821425506216075043045090723331681871626404923797962197698842488795228676938019486969927557946602070559034159968199685677358625072931477711377491783910386509724469621213098012000855714112710529428165887784816509866371599554225365141981575769328271750287581431745576073417369462116577442476862705493483038409316201911471022206713903264756089548466870336313457368143855122763210414505103708668061741262340477120905800498609635146832384215496881192386428017041205630584123302865020381111416279993517919767153956439761584412168266395056640399718476265463104321701754778676965383218570410637166419881422140735172930963513970822308176620384103934176535951369911407416617858661731752013177097135979173673470100564238724609389713951567975099932949472621323830172933971322618005410482408062941289917002282496917793379171250515553206876198054218183643538936098473756243465512080030766028590061743937763062582164577191356190543566409010980641629619854048287844719727770128269786991327991041856146961203530594585853390956368294864158759035074625650862368711234249503102751537035841642269574347599308815157927582011306794403058811960828841852194497635632019093885115936241104790449628662024329483740051580700182641824014306329047534189663789063860359497698484308586170328252842340309393338287029670707762507998400599422160849098372074074572101166553301427956979647911574109673100810106711132566633921401751728641642106823666550652095510580601302583596731520828065769006133553623922753308884096277866656582604590836366101623502396867593040448666909593443183039711930956593341272412760700041392790234209212889261375103371622064317327193529538780925992273020495131744447864887070567326386825001958698310444972076834836124345347921233279967801934547769202761751233486239611187857627875749318419645485595690291049598676666831307499948953453768569051187813619993290064179039586304822821646102852725009589869177189896526311203367823166852042504124031092130607576658048563549313687218484953814180094365903249731656222314265787240121224735880348136042757699053961841776767737553916501487102862398350172990191340986991095139288355494391616717795494901766875633901779337440167205476859112917142146620057500162439220257240931971002159818202342204325212621319947347879463857561827981430773612789892059066903302694205175059946332599699126251470561672753329798641740273102213160447992113726029369129918225794317794007066955313098282540877027301662312593891307901050952155711760146777384659350019650482789768355850143323508741305061419240270959684924291687721446516693047527097115380173874695918626188633613608750947161072718847518744443341051934349261921354125451987864390375270752609756540015912640373441509841133445895605504269416268894597187348130916667061494032345451827446125727514932599765874920343209885179901073869049402085033195104499037623327481491646895588878254209144828488206324226026055555674722971858251564638578813626228120923640356508060477688320655387646320545242632622127205204848753712381286495622412727646485023801458196992560077404950142340806117063330781589860725186271997377254335405289437246807917082087292326329274061790103233725596758504166784050809594486357802975088718901819930416583743472676347145050153035494234098494121290932505016733286511540278117591096933426560697388421480006587058442399868857860988832509035126295598265032106516673320350451883429936598896853797408665687916594146052741221413745173917173545985069954429051835774882431635488542744494343621612441688886131973987829943825744379705020692650269085423353097012107728830357718842410316228734745834298242313165883210539206286632723500045395204528018696510938241645072958776714716575493407111491613396959613592707760927201353724624964937259202148476358045831292618837320899765442438750024743102430195391007417931024951551531200798755767319983377934473787983494284798208079198206952052412903982336448490624207732333747398315819093263995085678866907356898599347995025501890008632363044517043092958006595474478642196832147289505289393549508040623542253162926256891119446665808136174794481365914899008576300910859930498901911054235023788817707268273906254319359860343767796845524611315049867128818150464367367765878180818383352719154168014898500582036163093044140870518867475094997789329619333489773935768461677736336624824881596596551772880110999167776091084541959752629495094955780594011674034237162836776862327201724810550744967020790437537864602987437037287839754451291472444399963605732531536118587361654012654573697995352917379338999585012305908082505632960917621820714139863179493863092605436335971676936572159142906192077070221212041458691987082625326977873363047776067715679527907193358680129295303699185097636583041501740107871446987388015848764185379255003109101086627451862126866435763286727938310108372943989808257167407885134810828515350676777194159069729596562964564799054756841392104547596972589018358879399555194657896072851941766779471317235944596116170020299889016541780503880430478743464362147279680318937605199090503865689756439669249665350224219442772375999826567447383299935622509602500485029815821269039567357305370538275643842112453066270486529943102670245836983806381135307323495719612778115760086284133904473332762229051289977281219391227672322969818210372060032294790439059100122051915544649493739506995601704372426453073090415780323078490056313818537664329937479977503945819032202247347507038336184933459247775531769931147696515064675369161624980242357465101644565623215043746049237120935285349714029774662231989570786435821943533097928256356909123535488508222267586600155745598189384021184831423876348552536026310281049468881897363092811404593421501320624406220460640254243587663387643892273314723897862891672375484374022964080132084532041343692544160172520352154574760853826761727815670521618667227666286354714304954268491375561993119533069915843115173563865223328310893299757595786287384597548541414567725381183012559348611441123850629582620868547989592180097637162851490087373743430240517823787251581336242016184695209475382748615086087833364800831703177769355226247838025563298345283722574687637358153262317737217369274953816921207046071033304462210522579634785991964083355132193838239623012340893002309775229815665242485638515283340190851266028836166486503994607602955274039887418728021603729175896641236038174177109716752023827024643622047281936810800511865806931621922729141336561511253705551255517482492646527769638801678514910986491103431632799142542563862334096407505343001002355551519761241600024219435460800356761939549804601174346277174982630497608104186785918705199936640091701866317415868359408669867710294836715360137729630005912289239552321681177141352119147758146815473120062477003852436577942680302137836627561234117500023656888525641684256569276313719388989485592054696450680004121055107935116528992753780927862552660426125573152281892842681708922825011047961520985524043096561974245526238047865393792250861530188918233923663402133888313458166266559531679067143129200357783324437896991291565729906671095750157515616955626101998315038598545267753764976768652957112971040731408033300124836055915943879612288015901274908858295885831696987733666485568153196309014454396050697033616225271398660214267522188109542551802332491114626267409387280370800733005297738793859269350480608069697119223193724631370074246796613678787302308916041517997906511358526226933102493700204050687256163175216465514937199635680089700854340574403541770722361497187699093705696769539732068928699910147264101924621885436461207861200536668536947972104484717483344600957008052614783095996980528749242644852549371951619377684276582317776071132903115103589738935362560321929893969553507830011935444710357019668412775212448573594743426358146771405295049765145819827087396758059121774730202949091293772113224957843264843986374029078521119760304843678414384507464622327712280071810278259225089037802373707665968854667491554002193532361851743907071185718027206015304107859238342494593215684449943016559897038664226442533634953065560140540688179256008610730607669305019848320424028935974343363883357362388449293040295309280114459645328486279400372576680486904669006187419061247772249475014617455495315914666201727022305891152430820448212710824561091557901726827921786126062122084459785318252786437504234525094295236058208711895742558344970441038581248218331778642327823147410182567773098337969952294549728010257047640933759622831478568507610801671687405768639810596789531147234758691432266767232716656835292258723738158406894527786516452680114609997943622238583102203319997805525991976615547187084348088623814969017020023418218289735072864372075141744129531887684851616419262489562933275879470694557976445413818521844815605572389318975708444859897248437635753700658513269118882112854330971370749170628978388086510293043561264262878819750380818100840131336230581617874526946950808648309445812051214733302623969642657495961797581204976586546634019409353824044504401726571715965773417252381955811819042492537515653833768735308169080783353579760370109143076455402534684773165264989415246467290805663605852659830494135903040719247189636690967828757597541627463800281455231467621183699483385554848732662829024268690708213915998428552331191126803867240229409329914536563037500856251867058809899325719411520724899096821979129630949871071389447775560698034176214484356791736491935719514788749985298970039840102031108636193412705837308316765856765497498201806058642443864079218936548444706626303407209972851739155934396464506564768828071751909808547831726828864097675312059586479528204048462958571253612835701182998021053581106800440745019931781545418777334225181749339047633436680437313220635124612677455831736800752630043032617808522469266494833149265192313782111807410277427418294918988630839980728519744348005817446547068476226330830824317718086959301981132412133170806245051371845802400542809850234584980138105773483054451576282872439456086281510859813383232937403747290851926665032064719639944452895576735640665891953110098386149543643433786304933642915222247216981123645591128667484393312505688575308154478549075017859987373800545314214503371280986744794941858884755096880046576440735309216679420334692717330099847211678993837753022924721431673080255729096172576016298339567871706997880000946525724963678411203183876849890000258476378300274304444495614425959692202238159940504901809247499710307045528642058809745149397933886650450458749009373986652504324174582186210641924430945200626117686360671490196490595767583250477234680977842280262663214725497696894649418840198485720778440220381385396723488882258823115131421810428370247873645247005479722256936570295700127799596348262098530597098982637511988715548436435275015896254743170527984217321619991856898476196026723959461850885860203712205124434561927215037263781162682754367504533972381188262340699732699442092277172609729686323245516153448074973450918807345521859887345060571179088381025125116257078168439154855392720413930141737779386931520316704649103265688127959005606697466284702162468935005807499915180605854613361735763032147322059458015239771510152863016934990691940773793982175261839802217839664394888203121588409159375672486296132703624158971794669913082496163590940767144201323102774450171011046067336087312578933790079624880984872838741886917857357667270310188705911178902026013230817410546060804379787803523756950800409098108709903072347755941532660471112472697810453695488066490658861516470134546309645042363549110171178650416888975196578198562839063712970010938525909074224794275785767718632263919723904523041367105847177532925099152406922073015683941372826342218757322456583002180261917537297928090454908129204952858099928494312349787337897998445919859325957729444624985929994067134239102900372030041920474037090888198374617515771153268205120872412330968983137550761089837259491334681975866123726382490870596841126231413168395746015722659170682923788460359512170361111700352020004883578469417200566355904875138687947709689676588503850666495055918922914241117727997508072424200326035620018589986746108160012047612436135392968641930228167215477134041373211805787988502597205451785329408555421616592705034285597252109330845745991102808671842937088192050958217957769485767668153255101717155623866888521310434051984360948976788510359184376149541952942400929062848116385861053403394371939332327457623205070688445732671075853063078803891352371900673896788996838552260872350473915947254492871026112934876676837005238262450121866221815282482285759374499060225349380017213600686327372635856234262707288631183662698134875140349645505215879845849198874705556833768163636799788058353798051889485218398422819778243807391702143733962100496571725811397710093889508638376000438527793593314360798417323366809652974569711331646243264341353546773532615243453492621339135397251268377625602889522954679428993981807614590116696958019803934496220981890518900821290652052251729629237139766150595475693639558868812944592223561292404000127087752296457450970047921753653106314660238448823939894879353667561775711093857743244655273556911172692975439054646344861718216701085870470222212526864727695919643455463664210831364505240159407045209377937987261313352445033785204745040483823528646370611101173164307752826241574777584521547205805246796874616651810814501791418346781436810995160687357815004984743170957186758501936892489913231953135363650600034846112173290672091954022900921782079383173087949933893064908089674509494103225357161238351940178466857952078987840142405309510366638662763588849301040329152380057925149174328519784202229185210733977051681993138572299858968276203979786550331611745152866792471848645250524833292241051802789946834962107441983743897358356768373143207838918362173125048950611149068616362483265186015547672928148934430109833402888787853773588354379996927477477382866779414369668711553718829586434618288709421178506642900683204027959115257166853397689530914575305642432347044071711269409029847239075688460528847938328450776746950139150869683831219570444495409619099679059796968732153100503685559990658879386507168354288395265670234782133927906382283120742101672220149855681539683669507663775548719553627496305608449499656991348320899266433328933094447020582222215865166405830103944031370760348776277378570634373886766176114538915287085334680843692253395043288601226601526827777853357566235790566074020769210834121058471775216086786719189311881648213965949846235533326463257242851590638236631521895273217550452888973532909459814752656710049383844155387692315295630413950922755962835930695565140933673960902497620371538547065518137122962175785377429705860208899216531564511629568922499872974107483167836770089810594533576349826215002585020441229385752254099306390783565544108531409492313042720354888446359010515475481945485686601955990571633234625925450722135618962702090220307603019126133744863117577198960856474935943012003709492708633165473675941271089923619650548021707862184141246169702810258427027968214165372984897671567049365094642358761430964256538796533741071423454643445419326323583324357939903710973815364281850581257343041743071853148646411852919220404385940420570278714669407127048917880114326220811667899799162746376176975286915092460970955526652694523458596123010106235043415731119814296470373301144303250193417305026740023767279275094584590086681967654987333875852874431232959780378967237266220377308447962373058405270265066569121004444472890621207954890547444187051046798159244479792079590548784456479660243348594025617684995933031330130882263258639984886574351825861597164536939264430545756653130936202135977467597623852972798615520643987540934620773324248646058798710645971791255513870084093536476320951106549550015707442043103848328035758936479040809979218360313602384184209709180292376984268214777181108258596911657552461558648221898898952935203543380429980722744785486912928713608761726696664183517240872892497724762864071057069027963806853919988305763046490288369911954753941133605315224711612231954352234634966359714503370502824325072668607276077078961549549012872064805907281843986350773334277231987991638828215797811357530983377410564524079072997404088935914993218740819197721955122104630397415413973201676365466374321995728600388370018152117887682347553879977104488783771972238201274961362599176906296845540162440535314447864021245720543611364467596584007129932600026068208491196221236948009189574793995996122256571381595690797873014251697682507210635620963508500760780239504136621949944742711528118578933238252624878624043810883703168874937622459494713317452866428786398480037514989206589194556264565591086172565168713265540949599569885922794802112549033807558388830848714809709944082737919546349252930202429291983217967838049618689019075019668349989403196732825996911701123374281896645001079329264849417019875805259291460748324242402678629162609156657899110202782984288336620827175351572064285584229105331809216558601273470316134706343480165475873766739186678213742719107755171389080665642800319893617496629334828079675886011509680812686523349862843420087493494010597001497469538031306942521791726298697228345684799123114561091714716358747596144940837617820145718232235174669445732165745761208268373107969762699586247435652353131145048291683539488328167608747194453311968541137146073784125530916026308334112933970902364374940225773713749252354662845502034887235861196816807559082521549877275651052651564986582452152179465618328045960663847596790824743590595287167519164729333259807226864726896028972121669035894777605674287016142355807274812818907627216546878331016153857676083443320155129708126135080659174510504965198313187408959793932264178399174714668137679292595636632273284860771254537426114848861434066570795247813917041520380630325969378833182694719365081255870965933526834528746119694321851241891803899611347214082794250702459765994929840063832013425720335281319947354155035856577773855579129777237394035433767403844428838755651457294166611682743896695849415505575114334943528708278095832637044277992650629453019081805100608043852689960590468917113744904541610737649960939748730525957914508931223519846693699990638544861286660727816048194458273187440803663016769399352066461151377422557892391947790457750750944618217233253551523642944739050047634894152977710610727638277264587512912034532725727524621778417130460453335090157098651213802774924359362493675306923718007491292911478398581308460157389419413798941783600439619473504794877419739935295474964189184533879117235317466998047363276534723267407860672077224052558130374695521339328255503052656551037800903643612844705474877911388868435761630154863552414858387581901541339565864301660355640888087933971939262717940988875390748394821873424106648396174717486720848138431292050618466895161330705509496810233026457870468534921695970224994423433124697477882868396047401372800933197145469783512712706690239996882421962593444254952714936422341720356699596728510778575667053831873721018749475877180358633081034505565366472198173777612561234043129177267700538514797266213719466403819562341957861715825448297578864099895077147281801138708633309187594171831414055494456630722537872962727224889769287077190081099268148261634779496397633017401105798320328108953022288159681069500781185164442241775689580783117513230011064110282549451116923674942884518477419632815436937977061897186091577032141950632168570168120881066258153521436387951820495583299879986186797370569496217218612935761479434666653930787873115347974121310330065304481123247614318901456925532335883389262690595372949383734918652607260996629610790342444423777535690570509324360181540185433293181029762318154982559844814757740206831296283794539618176358738427552915718368918432894506195660151974746601344210412051354120819321979200471165170790915032197929751124904105809617243817649427054125002030367163033800959395406591697550377792681791045898836206498774356392030488530892479224803796414190605524582110300507640738942799928477108550930245958014641993113901231058000825327241005546621761966884218716416423517128344798661141232087075341343076919638067279432264177879904894187635868169322109760327654316778335893019947356978297602052236253430166988396615573247492195339185266590936843090944468788923823854284881972458297870976988920045715444058028002207729502244392298913174537595150396349406767166775049849655010319464644311348125369929261836370733736601287062226071051411908277408229756086157366182694714103857215250686365175619080048559559957387247827805002353521820954421146304442821179371028333810079795009256019649596865542401689763533826374731156374032680700405316580382194310932869764338286352431904855660861084688792601723580726868545663882928443816232650072261367571316915059503572196807504122581848299151031401454229850141165624916579792055703546805421149644721339605004418439308522276826446433949639957528395609632173727681281401322563866222133758442717286577868216367656977234161876796055720784531134402376057872118243204994981597162153543673869222360971617640620044810418389214183257212297549481132968174908482695326159555658706782659617611842412376334032310917638823573614003448148935907558323735830789538332214877009601575479888699351906427470396418313234527074076750473072481669472741917276253540973111808005093937347724658549781955239182162188397083751020972977426559878564840703341303018412187365686530355987074930063918855191343675131085597447762853446752538193004400004088366594884393036860405408371655306468442240432534966003944853184040695132217044146787312355921918370635956055305144015805187512458379218174630721390642222961904151474430812723163909459311010564902195511669543094080819859236258011457453154324328064715133573155156167444326000033497768392761936147415307419694660853609363664775031926433549318609691842921293992385212756022100983248596852407992879235114123523368219163580725595714269878318561804350841717504660199472936254343216200864075512284888427130080691837971610771619512024282705683094054759913119432334287285537262362663800592438580907448865107246280121444072861179478147998966187299991819009695409840147593679904803670624532906608191359953635399723440401033757444160652305382061399833393449933253596546363976597060708959672753298888157493017038526289663781414051049905887463647664127233999177975387972334236051413944741642221895538414098968872497851662014599980793649920988427050462665257617019665246936740659646732162213704247716758656431373433561243203681432267365099923582200693555752470449392815275667622393878581237442877310318792129583150287399498619776819680525022272092390131736264653928359135502741050031014337143454114209937167499248455033283517014434365278794299005912328994628427401015472931689235085297770396283907138862888737774920045823510606611035488780583146835678664100370139299722875390467943404818241969154243680132407235844482636724343227603006407199488250392849845252527901782373551443975777225850656192472676938775372887430542671142307725624168824665261289334257562207865405096012672254095197666800025789835673635499450681646854705732704245495931648541082754035987289242865076890155784352670904252988444868954461596537386578714443360083133140278772588353827944961173650805326192715246441215094993036835730187204957830838478621086848617268904493708254365290868152764906323833527748591031298002264799013381826161750868174034047682790770665534316648848261640709011489852568371408961835540483719956553637877959673619555677365580545641104457121775379140194042495145276871200743058690619806370252656645577369062444875790044620798532584501200112376206461386808033727391851731324676755374431740889962482481736155692863337099202693580385391524864131390036855851302073402619821548852005694498814385032208606233695968999221905836411644883025516327487697371873392481533229458149906855183111001236301486594994323225936113571331729227180947234392315566628252341954703273402995700181411180809284123631125438959088541493211362349986475569512179715733727474032562218996184715278830567683585745902505995508314021659790853046836337027321147939523978966479425492755117160678928350426854385192735535492370855094528118022353993649644381311689902198045846921899624037461631634543341554539068454822148911168031420191415409680984465784738289670835682634484382897209729576057156389186192472150482362918438019405119954677687008788928281578332985281186259663533785658623537162066663624051244279395536265907618378541521848926061975017194842202523861462036272005326620265566542565346779884440833367859442458486495493448137837495669492062603514793778320095168846796705709857824792300674073938694817945020867408716617511805575532738051508095785267142151520801876866040448519283874109846114715489446301963650326827428549609765591205476533542420690463869228387175928357265479387385632355029341617214391625013378280281156572254502453060228275108615439119143589263061924855377329605604890720182129338670346917487923904389372259051963000129032674916625924020227513138905147859016275457594709981303189977083940906766829215699198667190227072463991146564983900503590724099766186591016533578423697382844847923467817283161016445975370534570278690758162414044379141369035238120523561952935879550944246206506046966072541162022948622243365669642530513701285576014794907820413462239624692940644163115840662675825923316236851507084789725156646494120697268906939992258505050727414774617895702592605745731315750768159884772083325921069390882140719686831055413857447496692582943411871442764724472646689662595835414632623273016794107170172440478967653304749712265556765689613919553688357962464670290647812059212992640022145695607181047587429306844315647659392406424353412811607429361411633008196769175128322492877039589040924501790578676975349331360215823313793595564346347589372227087145393936897792918309784270963770618085530620650569431166782290750212493593982261453086409462130350383771881784663603963156309843513714726328600848193645583169682742114916372329294318326984518996109076115684713031341904308040314305762972707249224924403019098599321209075542355889664481246629215122236083236827929828764869625380487774519627512901382734490695097650868000830411162136829608245772620813925324021239519620746276744832383615456776393114931908288568624278518201307025109559007113370527051372103013048032748403758571502244358801140890838899066677698891593634857251271567960120935739665619277305811670699247339778464171797102245032437202374195098546414611340607163892577632106263987177382346708191461640542311633127836220316773246018512670549258039666482140775672259274298356261968332616383360046187971444886284204583421999104269781970438977552496707596641653776549066900800556004917410397076445614883996435334215005049565041145355495239510302249682130642621603002864882789354028125056503809149129968923150272837689434810633297458571221389681665243755734547616709658354680011780947110204429687325374145270042996047048432162482657420061389985943050978776528278192968990310368634769042417616595377966254588136692656200639526520805152860780772141949863683523457962454601135776260152136129008781916650436097338359436033398658271645232335257943038226137057043796617957664104315586049180080435370182589275890661004038358633812636228703952745530828628913628364582308658793946376737828367117686094023248942690266288670120409733551024454031789025284291860079334344410041913964008514140562352926262540708903545154063890298895886293139469181378947068941499865592703481371827019720116470238113976811774035373054793307277848694331502018852445589832679317671894451237680842285177899874754457035048620661666268588168438331378009376926326490167945206351595714928814868991915330272629524262201422703636302777719003776156244248616494838201833784433608058770758101913731592686233716108667887857856796857481311554595237119387485529508981073332332062081024679434882389730277174114978229604168698767797846075221186919613054373842477978028301125351452304304052453427313956773970508057197136406866697953371927816295837941196367577605195981483695874869732709883456683147744221976737295155004619775848181332247612046131095531930576201309760254469510807091154775580432746841140902288103978968157374945670605256523002690937631011568248241064362802128827328382598938102272850057860127788276950606334409256296692191129214095745362207775119496320761602553459161585205961916934901365656734891683358547656658395453805224780863558701978031464454942854973132400937187671172625158372307514837472833823550326675314557598620673304295088781841245959776298319583851139801279350878184598229974575525620142899720987922217262327567964746030190540736416418530609279884282820219808185170921667147922997454178123542774523273626988480222993803846421785705947932981360669029359447319982929667848496928551733946267583496953602560152927934916861749350690512944596374918999197848077355902262321428979860779563554954593157770297542550287312291790985941693586833374915196536234817434699546699290284323566049840945750963297440606397989671630071437482555884836709080313648873831562320736831401018046186310655304572203589595550777425908179542099338842053448517266623738069559670677887843694726379216037937030929636731166477762648431143119193881954787530820782541983013186837899899463189213268775971924377491567690418928853388586883352898535356777881451015180971500154657249848755248283609419027716913310025955639365609318064276043304242106854587781882683168675452037376731931390153787197020859003933747539980132152729679961084613405542017396695671356524303697034724442829972757647659043243444110613250770099483692582913024754565082349005034309633709055183963773990360029584821484673695892332774750116944108329188502795651572346805388433563399440827474890232938453370107073450943201736378307544482768566237774629834749573153791936572951750616845766912678150407596157683189034933811517696154396987529882689253478732652994660856351789670575224711613797630414383918012738475258145820266808501161528574776520471496076716545177682674043886239296330817905267408172827739462587752384977724774992651685086654091509796169841758271503658808623642852411625025257026545820020032356633572886960940073773768281629862453668754332565618816200136818700762294562816893918080983623464322560876454451249297744742428081204095915640812950282774307845044708360438296576404935384748879178182127229286379872318650370631689076695713465644703692719270442918862718263376654661775927698841709487092529572068056747350137000780414492412337953519703052298917827738714522164109081339999907095867136746384887808047844562056441618223266856245614700521258808837931980487549248964317884962841516843422609061997327073521196094157051492413598728854337986961679754725370783031853306665027733594870551889786845649578280469493992978687429274106319911615374860897962850336700967786931002605435021350952220073985163483607197857115234379244470084937326175057917445601758135277897509702426866657261657627096962379204164037292840822071865837026260803527163167487081547392168233159972850245735680956867456631211953667018943505765733455625927744408022731370947300974708879643846680503663134310833613948941638840840606551503881715312290768635071856316464087711278878379517389840507278674874031130314369824846256676604144880494875344151889593442179169768435295391734473010292238186319346425010939562713116506189609270940664154980109267630409838283161967435575699053222804224724202887883530174032938514036712505832216396532852149515516931538187077379842938494792421248582152284994651562483029129152234603715378869099290810574882565231410145364407359390844508547577442180601606249857490681550684540857414674363795324450304070117529250291573446105632765272518212263019805598551143592432731473431611541478779373997799696732985411331241613686731013869614532078793981059931675181913581588397540786952638488788334581811669270856243592024115191686739199204799139846489856251948611249676127142528875506428271716570040424359704549723112359229086915484152454298009386574862682496984913792117307956543465281306876307421314855542060381150034965721752766472388686013422245770227232534069239846086527493702503374572644409884068007803943082712772118514719055031069341327779302228560379587019805683844061637457079234003595364292529148471685170192581572758634057054933303251074348297880892239307992064424706329217575214706199343819881711646882362668645097767506332103024639847183211196272376957079399583051142432825722583205372348954909125400966619482048350479139492326136685805723493742636721092959009820037255326860717358296690665282344238528197053562379758012138807152966101859263159540922234770798707177942580367769955131685201931373329639245963764701763617825882290723853766428961154616842613783473523628754140618328902396757849443606614270567077613856114722697511297481230664084494368223308075490254490224630579810336099622993330855517542478633111472402808275194780788175717839978274021071430362269785307404911158559187333496622809445120227105023374555623295126532335739542986761843783594920333494395233663905524021014751548621928445037157454731745530850333103553430355227669547603239204566494622540827977602041019980287982395722576391403227302164952074499592262689996588944660946825579260920744919921675037554086940186219617802308421757025630012481373953054164900930471979910212471483635203930452665636901353129497808243110356565785057695414350215206242592479072253605714274639734892090190432945443076175158076777309595976650770103703052361180255219930244316892123513879425997819312829161140306372824258764795208065899869676710802559978276455535321105364621055069384017678659328192636155256241903606726209028944137440222584783513909205741397196357596100609783566080146075152042796878600685028455952948147933762893601279964263156520700935841726783637377128879221628370645913743927145457129120159318068653101473485989275943882035014312709812175020923443868415960696706256682994216511911949923056537776874256556634718895905934747718961509691708902721636495750682599007491239628418426933072094040988268377324793086253265063099217586610734816745909855823735689740586240664592866655544435168774253415947765603798600589796746803435637886517875511471698479709925897272932270477673396167872432324785683231447192238688931220806610943023437926389792253861352509863991382715660971400183139789543379124564102670848164351314748572502426481527760523151586538014343922323790025190202288616431151291215501251678382246347157567330317856554800491082368398379892359235247987046319134971987905660520169213434339895168932303096098884465596300635632304183296398333766920321591411068335407777368313824486870607804340779971158882450637954314295335109267536743724094327978374390215106183555442091421882807127921449663783681485738070749325486994425635482717889617633136132782163204312646370829310789215544544579010586244723899040466901299488900433492222326140601920681258963483809283186741560268536319336180001164710844937917715928490698710612458748122886001600448019807713733616758070698293975795628776293831041275618646859235450959024734632059677774350686411098237286937746025929366005866370071687273432338730775377292913163847819289178713919861585322069772035726863015278452846587577634746230982736418948806361281774559705313939700583269677093355882638529983637962817483845819132315459112840868260763608485010068907827668376404436260036280319252982663568976084569368432142278570206485203586647117839228680397197933053280182695629440954675970840922754777749274728849606898537123041511903222363465851538450589385593424968130314621574662129929928229210199486252070009120529730591994657790562624583426600892491708281337797008657691711906215565967726105943471802565680418851126355518898736141960055507291473731081080692282155037485244358927458247557216966027466129131350824132848384096534571805273418368018838725158873256792900610502915709410567579866451131508163007850024761625973041983004148436371895370128150246083671354301980930652222686397777563243263023324451187487098409924960751985534950748836108160358756301697039074133040645591668334587715236439782697779992530994035993035447932041900921418673416242190671625855386751960053773485819541393702881792949124463413913781744706781529086144603333354104740255242874279483232322922169150453117903283922474975189682169511058532839278373939677326833674805895215326670302287839756218892521052062179213618973302267537578880760898117020350615451354217018759005437333948559830931262689699366036536787369398957777835490972481960266698794603912182734979647828343639222457362722492140217334711438769460857841374406756524951911444891741599914445104940060864453358390216902591554857057466628839425816240693811819630508510590143436655342238457918424814459455156384891481141059938471774020830584248298947222460858205963214818347047571345879096696500031420694197321823270699204847847492173883016331918633733461308550586509951668697211797478301370612957350209471308186912598797771395387133610731164785449422324038230213609714039759736169363894856598274779890524040297112116935118343497313495249658610032467479597126137692893428420792422734567236129253524847295086252289914961370514857041902482277822345854456132794729804178298798509854899657031792313177424167274461419304770321079189803220233721623045901948152916575191204150808745652679074119915914891258831091794908330733056440676225037738295812891733349632183187888629868500943660521422912293018730309986662823752240053276723967468114138226814922015580675384487428596050311295022696095124613275057760173040557465326828281830570667590364873975101856511228188143913342286851109677070060934951460385167149776287241814502210911760252312496716768026130909350225496321130482475815814593439057281417166044753935933119098381470851324154763397934658713171848190169367761636685484549442757900774139013571703391545452191087840561709829656115599735920296943860672111661787418370934201293832972150916276407891270827862430134164714992523828691899146751382935124499156842344461574408858455344853813912886849781155596324763328152507114587936064664741798670121442993092734334106939017266562357325333009565419138787490593619004006152404356157789220792582298256809411545503298185783562101017669217813998674911558167466695400056133194134402240810162083928072830616945963527531261670143051122229729948531405567680899735271616711059047504875926963881203407898752031426598691760612166595325403656069883098367257783336876914916308172889595708708013420565551472648526954093336863890570720132661227023082827101597383228825056807556050943404434029606118673196573116398120951283902674731660688393181466025708747552513624723223585857221859322948331147147734685243510744920417085665924951525861213547784955612325213056814135680965213636157130786016796302667387025801099669868063896299565888818875636777884639822547565285081394182462358655457724401510714120535946292959264723687494978246226072399412493773853420443749465816948386996492140319828003644832397468523021002294748040637390540755361680673774844970763916194608419695986041026949827417068152649787777267723816610067710283905028558910556132659331891922634708812747406666576753606601971187426536198796951631635937973507005976896715287780026680727130282422359840173261959535551891266769902728433797793732884236577612912143339908104258466584351927715628928280999899297835443122459583273973846661482985813054489647853630468066276066880576647510832315626043913150011937404669771090610888004747430115830719222058273729797240972863728219855951743305361204678412400530644639258824779381303203971726540972212753148595446695943812672297514228415172423878318605555594627475511112360132718289438101835492869999261854666573584206198062833081772166777722637475712598147755454280114699823177404261422295960068551764797444632048347997678667451715134115726883681095132047386888954763985157621512133217855052697881081874898139868851253545291374063969317988916777235060529718687444710688885186042509554920321779392969376213297073454783168368425554356689399408302067324004972824342370676933629073174267693550174334442679771672123476758704103705970826346884155336865637189095709180532853108076922728065924031957065163708429831553385688650114374675600943462701605805061250171784218181168058311443364387219550776329703478244428663207777399282052637704826849720493385110350634098449866625415376211001634119480093877467938160437362236077850681249368631589116470569172297032683901496341865761746031492511367209631346801211570291586171893366368953142735747507870349281770740352225022915241826848041794159027451623233805878522840513686527062924539021506289172071612773551514779372545593542408460839423991780606966104471959866612819120141612291584066776190238434220939383643541249809423122339602712490606252824323675767478730609385381026337133734364161309744166700016871018285379172071668460023009136758660133547734724460856958041516267012277032605536634991868207125679062842046619561422618289534036326897861357608208939614475786532335051840654453740658829572458505364992073074449600401611235212763017354708351570203481227237585157275395123672375262361451762549974233668987507054057878092695601781595027791194693974371107594825261155111899334456549553001406883159171338311060288947321027745700593323438002800149815078855810194696380957167268073945319773957426009181882881929472037303006007363331076521388527605468893875449094849060439827332261699374311286217348532505776583871666607509660102740797209652335164073768881495611703144831048178041942281482945869363868896249670860235819743113982769424561939341666238211793575952951924954854688228269353454098702562998313950553522277078722407474918468837085805236597032252886942995884288463714162307966390720107719360288340946733337744298449567589474730045199660293666554062988711293391834153807616036848419941940471160391412015308590064337393024771214347272720395652988185971542321868479457137296187488203861625789421990083615442814970895292729138872437831545956227965760121066100028560135441149216971517033083812021709364060257242718037802844901056213718789231227228728434796160180903981516511479184899216153174999043639785340329674496387826659039977307200933695731589214207361351675409562965874930103919336967384883913794190723642673418506622342535625653068951676623960470888097825097081881912398774956334258903568089643818593203248458672766887309568746701602536805367543195611732195703011672559064303333011387510184410113238021921470894198790337599218582620912944804085194625629104851913184919790515050128670695156199398927130847371656862873021050961847215145748396183399046560731610464602193726905280019899118866724845773855352602161384493170992322259156742326978639557014992725365279486292421806324795448880400371064324252979390661637761453113377770722642803592023687444874872800748181551700007666912108198599012691834009581806199042999244344545698158747426390227775654744521774438249238581112052183259748406433994726712358502099754328868260016809069249619650945983627898650840758139273232932808830313304954521739387773876962553077841331761792730410099128886944440490467259451806014725286556587644810126928480045318427487913919998612988114777866696859240003527004880998434410349741868615298276770523150422130162134287136029059942686476488520850039639802764567992994261905840532720710568692995836009996964552372163201676783632846279309574950891570623538679899214022462852618243585494477607836201574345002633590106077411284968446290427781554030329737583716028377417855488488242333647462538671763648425339167046007152107217238307891341031874997734744257364648267701141210997341140519257475563390640688476113576676100912583460417775237172637565048617263446053921291902862071416863491899281567168521624935999259515341385464329188114878297446302735394740194995023422024318951741945848772191324671959174206125342491371754018842506297719947259062560494197767402645162565603460402926552901888810832797843278100683789850586568654994069324115266370247817029896202218917799116530378289115561704019531511202702811969051232056870330035178348104786339199817978249382741894773793699454385788350031252811732886223914216578401999231768399310960481105258971801861071093614156882247773534258463757488727433833432959726757531241285091452035624070752110041991399650421242366375027302541767194282632654517834177114208543416174690284450898739166954423555625015571526749277516775922164525837184429668182493665449103780044821001649548216643788770962793416396402390411278981906412695555733026312891565148261557987662599284280204870359958691547514599089871309311896449884644757508466537918865234291560614203883427155833273655562976745316849708727697165110520202129423470212517040995903506450121823236644948456715245044424049536954245231927890353376348570321102200560920884730186921251925764453441968798407316311552896371952783231121574474620766462881590021458203507303495843523135532735181285454719937210995602695607332129342765894126906316805857197410478811511104642257820069667412551211626282127720522504019524445140951696879502417359604304187516964039309613643606244694605313294262817193360289578806072226246748971517467266290447718472630356991220673765705091866772961830838881035506921474198725679778728682216091740758807640311969051084780983948111331212332298400817521628245564893019950517182301024989601229297277201906319486670738652214116273074810297476395003934488173839316954091845033606541961662467551720965377725455459426412110620595016206835724236666909975732466603503113643325360769896606610285402946318409019737035640527898575685218418063639007229305192407335479209579844762960526993762056502279969011165262676367524072105780781996684540059049228854107302883961169913763407397640530209900580311494596890290360264472948421244117587029957875514839750887788868248225890050860751458728812653650095051858549206475560941893608683977006251529009694391001528915199888719066374615889910053945228141613150958374470455696845601528733657114861765713669899606325780650685641509411631652265939512180650361981633938392440633954961327372310654744468180215945858803576631852353870591647677188765629779255928460281135254035969052840463054815152519704986602903881673473506081200867827079767054293994557789409716107642308648054658993181430032314793809630037805608202081891324693364505416508416338114827440059028073411000408232621981432949789459433387822021587939277576909502545151796562586778658368031619506982093469483758105706462577373723545595120202743190071946716618455441331947662401706026483925685657439871715189755159654927524774096486088116724174317724212745159193171813954476466690659547722224769245321759492992067444181332682331375362849664194070213200855294918028993943194522924406688206675975552413663234458738001673216718913947474911754075125621150128553334231962354544423373262372181812478055978683193110751851698075179159029866866865081386060733596775989081515102698740162319078861515047098546505643721800952249453302488145246245449181890920970200064270019785749491139348458700457226106452084254468807757006057470206728168451804945902354369924748107513940644096404075495913467468551640740165540004133797903036122452467957356589611330102370396590312163091235635649233259863813247733570264251535416569778069288608714884112440382005274146847517164937673598811441279886986287598800894517118768225398485320227475634471844461189992380048748001812828721349487658187928333450856700956443715323807272369415217749053091499665144612472623267794617965346187511157416413216673216377436571136200278856032807812665109907411413849745474521739232544909956654381243405364765293289026677256536459978415468886026149649812947170905611869898598382211433291921219703855532614827037452627748776932167588048501900893569873408101976455618078548529409789507010087115782403312264086439411826756246078651414135270486309235501046483752265752636393356000080853085025167710224890357694388253963298023541051255597431457579577655749259838660221180595293822193699053570303823748661684255781321510857454224513541243760154867646749560875714119227060597505971309351518431465082188665960119680036482131824567431868763595677780383650149867640171749154583985806760588803816215844821259762012216807252370830623071582703263899653641517504205398471010701240472021607661586139804550410850133448763681149025412986049581881483102904423898432518781193357087308058067773479881560577984229029880264379376183526330127274297691197274876622232348092597564238615435185620545271189722373338305105130045293583558173376773571237234904763904500614588246395035629074052247628746637893759828338166169650884378082315650210175066825543434974405986187174722269466456537896203918781730185490752704695985334667399590370294470409060806097829698167042808659820983677155218427312019762187162577092537631001989615636648832042181371350540496142466015788449105291719230999100831726927188521072567998695510147344998933167060274292457104367852188748053791450828091061264559221287922768760548565734289293025775614137242230327880033746573752979520174658065054677379583246656629758366718281324315971130688199893639860773821730057654822864600250915701216274830513384084123232675793888372911751482642768522310114534858807223726210585985085949741014358773626089896574273566140699763650505227635569747377808994185544276727274045493752794544733714563448825459908019044334746631729352466054894957847641096456103140199324551128147342147421150868662103038713090214694286617320882859776542669929497682707751148516277581951252072573780100643692657483930139357448044491771879164926716200941696566514590070036956707434389405978129874542623840966546231535137442963213172550078896714563401910752156097537180203294310053436661616859978569201802921158621533159956687657822615206973636541866080117162278320993935812551398440407584215364427844593815759248764635936086544539099260967583504605519437734267658044511883659630406038392255021794425550652559893812162923876831854687628591523680666049961142500295010365690476120209437310964244357769883260132461029838380541323568449305322966549274001660978436707530844500100592641134213142040150494025577990281338213691316641784719917855315703654569257861182581279493558377868994870381508781674347096190190721070692907702364083936389687396978851394465365756587048945375849964463638777902240626612065266949809805765087438075404519561413474086671375242348563066681646739288351802011185075782693353863421978947412145863048131247556091648350879629880795112528908931701769121668727395845457851822845657418536382181924271232979297204276888220429414142813892242539663165408781465454204225989732589351813223066369129192588736082682486607964280632572157611502836200934067532164893017332026817356894279340306540509146728818676093171594835211822906844674906926849229773179862881241570067055218340058895734664780626783238271354285442030237974452122949959727152599829953604449206193098795685464344259628342079880293227598359096027958201329424383699794941909842618783472432805345631032931739730053316606392157742189117802849139685374306371424916522615375776959574108765596715448208461050037630567632682735106541082725001230359522304722516220976228655666285321774764789979946824114935820985352399684469439494839452721082924851509834865080882430364614773252024796423328734373713241200127799952922002964893614809068024599508139705893040895292193834431876010993141325451887364391551792400681826298800008571249210996755789993250583391187230480695065285953729771993623905281681885750412262374802998791954008566027927297111723765396801320063003943530373297863858622325462456569747796082719258329492430200943891674231941216868940079808278026513361770945467421099438228821781445201550891744792677985871155877291024962776272739672921839209360929884385725811408891998889400310082810601619854625811801645124952558548956019731309440492347199206693780445049698785198130920294230190837646315646687177981616359532874665334021433931162838076925965729742448132949371304476372139401729258511513721139339093094393774533183159366139234080580821320987429315299385969089960990623157853076232272145782963008346221148978701010614661654890233363387388761015373841816208160913404913875352747044198762120063228891335588401701946344505193638358892315414885674279665322793394611955987937564662800243078891316149310101358913584538967316578684076193475143824733436635999051521422145104385709331050562741146602996804542155682361410003486590085229786697827499667003801116463835974039698985355281539207612627483459726736827722244035967383965648641187182594686208224547548665210749248434057247633608995462102754854004021112968863119655547701763982428209900492968788160074352424586694132640027825653664013370484702233247326812725701402206803627706145509392447332490948072156696910266773527981487561151559923208198492826093456895359569804666074672927088503991194625757855815239530833409401451437207602210417951604432598977057964822256083873054273490232154248863510672872594361952431877508148626227695620682445816993019072783812572645093272555521354867951845913847787900949903723719855075923605235196085627360608985579105661921260576594700543477641169311232840345189137441709022200227042623400093125774379023780729729202408131775264564621906239312653568888939824977312250143772392066853557410443215036777227836491483037158200171966668315557591807521684045532121713578115841841409671455965750870054300416326823324113823518087195176583941087338734495347201062611058932262200942694085853862014654447694560919631476280243945079518672320261826839255532478587141947294953808064157188433239961753737534719370661110289928150221957566035694598110881009737272612442470428561538397487449513033566476124915089856405684753869592635618100528617346166212867941765156781638637339602943076888463674958788890626540225207190301089319139351591428260692693323188488695027578340649209979518690382145189592980386737410938773306099872546163823315175732620593979440949383244974567788678955640948342208442697065820808964356824209457816986374178519297673911903661931702831919015838489558544773791889608314042903110274698232236284686255007113052996742780361738924982922798090655910523021201946613255979279576655108974302686553026141534992202557850528169046740714473074624832083108441537725370840569530465176390965011530038740450175537209143023912696317017282151910425806535628621562974075302146261111098926008418951216898203522845315346467988629374498936712754807421448270088662148955821686760453703740618940099270105330611016885516011302802722390590121437512893992308391842843864733447887346653880417665077953858589682822974742835800190584653479473164744964878752964384139419458589855674817272026313915250353666473944237042155989767814199326122780917825468520352654835418932434444212997399307082255048605243323283939647108275681557380570296862663620964673590315676410408709695097495983764976254876499299498013417174996755076673089703664511196418686877530484287264566286059044982117634887622331472057190161819059289248556104715181308038074617721064763052503321672737774419074964793812470810997916661958397454967257476990123806431129021953791510900681518362180488331287772647548968948767244678394865752831196873955726641582300524976979211385304085468216358695826788965431883630522608023151876447559989032644275021428698390263827598300614211670095381371959354526139637205199175709520122712402957663127955253302687777795408444277061973569212931087180774267058762607375037478299303797291537606260618174405589076328576742810997247620693663229208809418523464759024615038993700650883389095927057564470814175471468365371141238094981523180925320697594032815446704250067871588537097373986656963884126084820387847930996677505675158728389154468087218069319255040814385150425251819685176610676400581161999584099081095836952622673894586432851398024262062557377179757577172637677668558751605965600564537811733261149633088251795605514582094151691040708548159689742368790696409592015122197854695432139291817548291419056161262005297399110644046216232317122446638632096603878764442697474468824012264673385357669388795297607416418149319113569649636644917703247624261993662158117430989035191742029303684120314212511547524157812492152664522220251677818525253358261198818753863134207362363191323905818186011942269937952347608156632165895662500506617610186839925671103750015626132945479121852246726195476376132395197448222812363814612734052782820165039067915369591760892787733439487393532534902584761856261150615101906005525229140438224558278520221396612397159974049630558595927617504014374418978588884528326932870889684802761394776898525462393961896008221279692942078230602867392825611721348157049147713919168320979486045398882788369262658156689202388243805222339722286411268571005411400149363840930354197164595146766035625183795398381370667635655299361718390752583289769382247026088963512491011515911058876156931515387608708141341385510555318921986054296312391009269202721898128044149902457038160156581772780290502250839649243045053448859557204308108059467449261698804460320311334268719211799006896043968219331948052109198308918331465818457193913873105012983905137896326694407464942642664056078977876764240708911254372204232498256823534800628088446889874590897460774171670176178941846531458141835738616659086809416943362282807688895246083338017111311788688794757925791892926914924211830889344962609883706089579465728651066692694503886719994987848768060321758433874100847638429727004377362229902469415424430337499661886441548698014677364466744174494643616646908028441782478032674204531283502647069114109819046245658380129683117315441473149505458600042932192217567456122579629696183863842084425605865077306019906714197918070350442286391948173031909193745348186123243094208153396045997534211942080659591935522001087901232766436735147079566112793099053784796461267242093184190775916828871727340590154746752113266715953261123886602400592390372398914594096423867707180003245385957056753331274355589325423304575756397576909115348574060218663454974075672233877918242961570697580350896546031857172169181912115221519396448331467021692763691426997578050757119064726274841248973688467320706758927156601614217661191772696938170815340557189427559597041598700521810261569543001800785352914474577848386038821500881915760832450309287460606499566170690655486985204015439760409302332852950482754868218847932872193477448775361629367000330074899779866424595746756620408128839497029706012504718451888305717955651630050489381832980877771210913398597924835876838045053417665354054369520983032017652856236546009375738338586039689342988989719736185735750152825847473396674645321501333730389102186002690198058845606514690283082547011345730992757595868104453668060767093610252070871819298949270794732517903021957719391753141577610328641593242417320699604141542781739320896923166360399754597306250726615949536345730838553666883862392993896831097567842820172071075809107912405070415863167459342606845212031835066857028970106363099986357403699682471435612125724322255894492203110178733769056243423362531338212635766104692199025779170123988250195958063315729616476996283258375335314889540802849017810877131393627252776257445246406137486592506234142003492847025710561774285609434046084940358200197714841842135854940753958522684893688750121213992138988540290933029343366288220156136510250309021194054182322183688655733834068789841078659561832577636422793489396170157305628570335061999316035269187443495334239530040699335980540755604634523492864897830672606789947703804195773711444446850646246494873550853248820810364926008060431421205317606674707038877298213970320301134276371167157648981417414878418330116551262589072086816797052837761531034088303243243326179764342074260614365240451277132598722893352000881753366179368129830569256638788769767438345941409509305370349655375558255850246579181629914268811730149858879912556357720649488970418545180970867355856649219474719547297834365683932473187928116098757340586654496312604740325288631494141187914609253423682633175519229564732339225682892198882693433047782117009183989912255748934256932025957770372548227581841389355810816950500621359577995464102510383008697202545799193508543705066188774560606018533264990389402413018912342223814949402840997566636420102167448421922583610097992413281838281696083362643549429337314670737022558279713340904541077819454630615929755377967394633463359512827293704477985642514990646397764083825906641936915601232855919607907248517849529484488145727851464170975400197439873657340917328073574503089244153821086993624633559017536052356256732194223881836671800086299256604057787930142744358662038402384959034284804348844360594901737258586739000315106355818961692391869629648190718367157779158673455770914390137057983872836013018649190097163082810401238731966257251462251761393296942186646844657241961436638620913367221814009401945788058902042568753198275473042091803065228130396571007877171027947598981291180842682071785704054208744693006449798923648018798495112471436227681535543180820371366347823498503936683867144488081450757397841568214467742377807014305881257438319166761913606913452982001435073998726672859509945553515999185728088811183776132721549419363623610696819044751840229999907205844722147050740364462973826202392465317507281528903176272227336158859968211999747795257755173205743839723843340381583967215431287309780264405897555968515588926331271129452937821155640536129177147773359909091645377368199630981748645745604699606257606939166141937010369815232813596971334689543826295067713194406445928850527138312806114615389429449478384475947753381545626451815990907956354172546990139834482370154027114664728060430142763125665880193877501079083504430071324173899181480824853258524858976621451098613659462744847488437592262646210948771543613010707642096855543325130722752299165973675776141971894743873649307075896393613441216520892917564555642746101112349744453492503851008122129157553597650099703206275308789390729734016707368101201657600901450473746476629542434589276453056857083758683041874275938645915138473707564815960645596403292977341477877015505052117571869195956223990445840364305915273594345015407606400977437603684300066234734769325373907210630583257786454907532274056258139232391938066697534262136886774684755344223886146208042696727524247378421199177661778727387308657748635741297600286673045558996175374648036818756486238422872882654540546237152214842727418302798699249164648501655117028870810661156710605354593388791779695949058272110262122780628383429931766914754487394979068276820252014427878914075532212051303359953346645172698618704943202942847333284625907797191777126192108743198372602937578689585851071926976749550727566355860756455730747521432513398997030069625147025373238988034780981853815097355380412314925084776278994018366026248215885765306713683998613293383219018812819316146187630831808921006306774990016245404940710320027925579841921754033457103489250598462264870968427959602141559508746611931732891394699087981094573157522551301959626351398677793253191631860732785905259663716311811754229199915382748762640581148591725629297611334412443045008080137559384789042804656299506455804663153170518894654591082592497375125182431181948982695066716367673782252145664728258983364413355077575369024670803175925626084466545283271292767065024680606931957777063975334601509455525006771128578691067676098275769880658763102296578374174552242307044644180886732773578117030422661034886482862967055262367250299307999921553201041674022664906615408777343257487258843506077036174541166110346960663157111652096563603766573526521361803431276398288392144393829494288722656093436578090969682147446811609235772612562891772520672889123439166790621106734847925564419685761745289834564327304914131346840069338655912410614989327038021076141610225230621545755625412032725155332287631951940820784276663106011216611177045111437542063756680080134967515874451932662658444619347384867783290318779953453212129077345122381664114955217873599989815368049813224660046052776067337393156575502884388056170977861982894685195494296998049391336639257205514676522009153699435844234839925371691580759431080720533772052861684133336630223246020358595508025051905940687131630074876899044423593254029890559184924878835383076962605941472972958553947655554672501498412435178304365742604864178441884832676559277603344374360652980421805650049174753793348988029978741781210963332725438982136521048190229651711703215571199123875665780915653575497300092046109688966381437695289867995455612550090045255851247916600351074726333810674145706079739326103837564703419551598087996796860804206904221479051618873375203416327508704233313792369396500784192069368049214240280762758759956858463125796800566659699612132668768262583405461927117881963905115982173011181790793914710844305317885367754066795297566414519577730653318526628159493478351075760271430444256169966057615889480125291066659149146320560183676162361280722005294471044376095343779812167050795827850105312974050961037289791875008332923701336475423463920423424665762718449387003977149439957182487686083402314809552101069894633963455038970849286591696706731889401571255957085270417176299029347307295692558075165027694384964026798170133473297158647803010613334028359082987884336677352449272698302618973455469733585093820492821196689584421335356574117247766006105468928245105100342991046965516351879686171516485482096004453405889769057475016781644409481669174970852374035010612326189999240225725443518554444648367024701790131261152242724034971624423563363210200527732736338525321278401310329479162397168077488691827406629983946571230237161813238341391221169232883564128999355405252052719313579753932878669310903249071089712853261840097699066881640031655559097511598904596322919288845635915734728289107941580538352185282657928986828638921678422925023074961772207881724639509740107916583029617187041302102357450899542005396711082823455875392140239414771460188496634445966665642712683273163629231655055100654297826692077461260979490375908724635405994278998508767575123311167005073723254260416379475143816442012686358686618970948939164952676246921896187625342210046929795154845551742677455636171523554511061803228369353392143815301942405016774899623592408059663286331083574131555695007811513849849442920018316869873149407079684079641573694820819199819822204296943241309950951921031134312805460885319562643880798148034839067328719054768656949413405230561302563230867766934009590758457609475627824209712074679638272688185517356223128683053180938412878344083668715407432569985616217250989097440815172320588789162948701033131372660712803412650025414225110240290091052402236320332388186211084947933964063132765256139438356534908344631911511837367643752685201984404687054205578081843998055822206235905382663441556595996703331268986398600550127571459753737909021473747091280009372109408959444101984573961391313485914776732379984137676744546344599559930372729162598307173384529393799809497764765558461709983423016192619584031379926837004708408791130038519544300858199456909735098690367804040711575764097494268700783970904310179636086142074069825231349427539442676506436914157508477498029468522442825163233014727290322376039480119615448790775641888201999192572600542145032762288273711920812083379690973184391505676672579978461492185061724295039862712216905513478750991539951193159460247606181765794465094056929791017953187636571758600903169867194539775861769872581965843556634511542101503781274380659384963156205698503318068906686461748588742739020627175550703039307692444527083177528414312830487813869205322703924133581393287581064336848803573592334951020875850352493249411306155077679961048856590785795505077510667389766029339044419962644761057960287602956417512775382444187845858799145415185167893948815369683551435387523818672437043196750647126027428464018124222015586455493889882602009341145157463581816272655982336727042777855948430197486931268697105724284062398145694744753187380049103210210161242512569537260618116263113859991785053494621705591544458271849377686738567267283268483329688164127566701639437493661082938151079054764474047156838721996424484426817409432730335813173536048939574128718824559830274265422309249196264819972931312488295255226539074779574819200793647622557666247473247516081250435795578149905443190477175385206478849473301843471533182508531049602670904856396683104763623251357421210342435537063850298466317072899694291411328271908382530302966104934260637692417744385896701447537035825914583486469686880079452108196706436646711143655261084875528698225693208816986718404754594425913132574420833512083780256261088806224421387360691480762023448305984052951159076311295647287616179770274176049059205253178584856400616877234117285780385141603263382874977563663923347091440568795750900057342370728661991686853520273968383148264840573540129177981451606416707433104256926208620634189147160419835691154387462488261720022904312112270484973202036903817325858656308859049884024665507645160943701840182943946641873576534867388527588407555137853677425400210423766237882475705215444804817694341185400511644653176609259251955712042478530549823470839487503961514830961271706235673266837933118585944993288343694196251785884953346318054654614952050136724535763526093422945257276940346641326705753136815822162395310804596443569859558309046097975230457677056996952840125178933157769021087429152620257022516867064483037724440662459266653426824654806687459726767902202933602373232042120275647859353859425227583649313698560940198070175297053835913662702456871500013587922169331933686005080335771391746127613578227824986450635208963717160745438146550743393852694563299497739990374155510576643542334506018439252797488788078734358205534782561847362357076711055060144395461511238765243452520050259460460908644437690913424213628894798927169229519443285127836614823918193129137692049719605494566669995415041927242095837682828967152809465254453767273393300407179378222571826398091527414817867538794821202463349584297404690214686620921717111398846835956091789990850143931260244839061079600977480022002970434556219880007469789835707496714676023533281696510762442609861846394052242025681534992353855131511441099403185477847526512123694168846268724933136743615875195823004173815296157263835001211609316255608630066524339781213614982488738732187756868930861906939713529210726276794936519886492189140810295173803513666848868536604476016448855098213961591631298459899459341077374945906487094250218182933346796967798145353886755125352674937467461964804005977630591506027472953966101182546966995581131039578670037811388538125078663872469710967550740123791784174767237950907414542217305961869889205347977841424457599141135159007784300752710895768599866825895982072253715866782365332123170109770663787829008260147623517292239399006417822968376676652521464680604359032993910486390971120200366438409114249726342157772855714059986313529978181871255600286859415123380850094718849668118276730930527775175526928676023742018373292066437919984637423154576975611165185578069107571031186498426871311216090179525021503957069985689717872541241265148373793938267157654151086776833288633401318474731229328945691889996401453652896180134407424367420690242216494909065553171493373524273198322005652349545258593505720839671576390434975041728988667616643195575125218868522506773705164057642225689860286391966040889495734074235601539686647540897344019237430258409146907183195925167943944907657290336718604250744745927339842779572035462930507952748489263754872051752513984199620696276821492997239566691085877631159285666749919997321077724454682878825909681828501790677065241696697643626660131527140729740838090177351419243533954373199681377903153948255966098258471984452594929148077714967926932563244897122935296660197339701064512123185827521476282545404333326192369927803466868365391463610729084337232817758650884933980356904657410543299481762099118702418006998040915747309490317370342650655797093629958641583733141362194256904683882348136610336009172184111348544902694454595857850307844471608967281617219111523517119025210655149679742249225961966022394344826983622012175816834313915150924359603901608905453985445803100760186593072905923448654655782531621186365401249236984950826171019596793435636030742776517710449053046260502128365811249949174457615619274644732251509134648119258473224327664289104972593078370879069617952144460651420413760952332511537356452903767286612333142588971088476336404556659354665829436529751695444890744979164073174650847219141693177943976934131353789852116048328205312626937244630997424123540469015447630891026797216644666046106963672305458197008405958665368756028306398231310685249250100750168530319743793933523520056622212924342030477818593569825403124823391698013497878240287382819121037840808298324239036848998901695922477506466212934750340456216240585516365654737713022181155167031002795313305363451193992543448634596497600202176881976505766350981325774058300682384033335099003766289768724638249829602568387587116959844408567290072960502066041849471355312898471168041688328129376839803718221223684989301178943052621165494793124671457531761137323788508669683744604528173913112170626946588527268658970007584211950545197321222741812849975957954702117715990912336490598501854972676050368386205196504246240116660683335419868693917596896252124702473061770921929269092035889206238368159744785491209921374402701396649712647488539915362358905067316107499123833260175875378342691971966148305053027671324276127444123522229927898191635563753362150438053396019430375952494642395108417585404476997481805538187013043686534732076154935470560840091573616923020642898563299547428449277917065370942832348515375399248262429643593282638598037744911036416743528746332781444980049722410551631567465121881774377300862950221092775091616141972280508056445595165885077908493370463719705751833706429970434354621332203268988063503287639516498820043616786792711836310751492293436225846069007033903744856518607390116538935845181661943024588442503542144420105215413269463869472429104881381349811199382649598068561511948577867357585180597529357523546749390179495268548617452789485046478297507709315242828773265150319648978045128404987460237251822475465903635004700103018095938236203373420060655399723901831419682638772969717555641767254959917293019991787360011579719341294383280873729689661743884159231491991710812060524130771336550832848382613622204741718684353184887975999192984107483042513305453958339067323597397891193320745565487040681583860105263952610870425211137835331454748364644459458250926354033278991288720268530929015998486993964281486428205571805638707929379087751837073008877926218685781816128076537548118756399416690361539296987690382511165309045485439267237875270640206810348471769425928939135642828248626976004026217098933309282230332550338637200547293562785839723810672314511169818839622473660971198507890629791043058841558288564529621045403002832727183845853715296781054491451735060004333508246413818524056738893121858627872239599467309661016616314859119498904407803453998472304864987297380956503732680280246589774814379528742605858140445507743175812864721291683495677408711224370814146447641431140504798171674555849143044268477872258869766206704222929631761683325549016573276556264322825936430657396927866773584756222785758109260576439741132911251920657470130006178690529389416887721505705878244615100037466071620807065423937322672913167334736726892435281189454001986898329426863537289264659844823752986865441170026821837315670666981623745955907272746684387340798332586876177519679953745743304334390518164033543605420240482904326048553855797970676758418092212852741318718237631694996014536588413254514490010534714038811764426027140194152029628545922649229998044001185871050740868070311901331429388273443101274996191799234254958441235138791369749229853167776363898206218074274616287281207064835514794648065226141899850816060911920568021207879435002238281436348269969992373423189354733126230439885520624762552212227582364177362454766254206081796236124224261571932502668012563669383113571403334020717295496789054647780361660285805661548319868834401223231443618918380044210257690009268285410360621881309953766420203928240743521196213644341488654125645584486443057725448195213026854515599789431881158955030681304641810943892233995757540484388015697725324983616260719207007085466017533773572190770335194466729940580865673318722234937900893472736088920851247631862434578641781933106330058633696645621690720158185189634992769726455720493208942755477834403847863847303510465885749866339263787794741841474134483554910029652363903206286052328117038275412396790730131633706639395356229999408323066544153564116205778231668417550860638013353089348252289370139874903474128253072167528070830767938596475537592683334047270298963999755924008260180820076810479121310487308411639988815396826887269552289164725602637212541583938064467697440351202039667572301511621322395173330332439381696741560270963749887512248569839094875724396651649364210380684060513051663636026055986331054260098659828962248008181735411007024377497686775790241484141696709972390396310261621670345380526207383421971978519298540710691559392288519690043584086443429255741739542076167665742309521561292528487730954440271744707763053169833022946605343546129184917521304379779985884791245386756294931196431657580234053490242160390841744611900074438535285422962618282407669331431011602707992366071538014363335277063263163606728968330871119540200866865229733971373834541074906508080606162514207354499643172025226139960951712900411413792486973015799346320189778603214856401021324093633403981748004528457503477153105733336256754652535580359734043298440414401794384139648765891189237711940725243941710319492970442575181460570322800401343727468718790038400055356939642244683853101759204289386287479506355708308092369841506614765390309249463300135661364322180327417448461347036443801774980686183432248383619002684041843910915140914870074680897738274031642244718735544242331733339689906193978961325772588162601002601243078468753622164691347959947529630948225201050865946868504423496682615688524045178569576498103918028922557550846944744293769311079356380211047254293317980798187878284313791072216229183188175146894379588651076720324592955645326951914174105351587208270593581902713844504053176026813569326660221976825644878366059196580553907110093852986373888927614058938771587155912147742793601086870999172698900562541185384553288090158851134438746387756955489463176572237251513664684458769738987394348912080612889442083659098173366036496885305817773868366191695250332233349607168797624664517211436411190537489412912284585695539393069204062041196275783989934637875369802811622516897362083087846104069643745186338108276818146886509885293774904656833886997152295386434645760834623596695973009019866403821539321507610208738037155195481919891144778034190887817574911162062729534337567473311073283280439798566243366802190890287042142698259286771644878015639416837307399180373872761900346205142948056017402673258667934904527030609781167323581352815106615657318963870199594723152306812781230531765107618100800222763545929269146719914228462958020324499825780721565036958202233389686189974771350712710111877364100726324341446909259622221557815872208682595904508562784378371303402102918660437633325565628282247803343867353407307075738138299299430023836618285638213969927865298383046077887330877805224966237074069452000478687047506966976954913523234949399740065761797654003194222371651656463122874016402491505231741634681579095017255061404532969475384161550558032612040772764971937552793534866259055902244888448151571184387324661189225738686973943031729837568093252345544170391207116872043677551881853294816278211482072908983168296458347064368040138089533784570643146960100718430410102682878845812408419840682570238002857761054035679297753373644072487772204828864452713750364677991393688578495707801808111267143159669044706600660936093138704734177942415399112453582479549712997536710032744135194983300466868023384588664118398068079537395932146000553854450924854844156602340748206536112966228796166839799078441476870607832873405571868312972099541980989837492080055575840460108959368309512481690243086600080742129260899498734207775846366693462028528065858731646816397070122896702438989579779331841530247044986421600365074547688089305704635864823052886785997890903663135554283371115108618172430773996440518236189839225528648112887652927721046880878014658489476421005861824656825391837640042541141755468938291448592963409276917096980251311345733263029988316107335544471883938251717347798105899552762635581730587315117656129827806784283874766990884114914260038138709226699491365624341191781950637091453881683629330453622741350919915562740710153206694408300333328206757463037409546053569504101873815407650001530279955535627791826039623093377646075117024840133856651966227769461772807266124871483533644360582577437072172879218508041460600476486832569879039480790538505584075639114422405796889247360142791030278995366457463559334430513813644563709767392136456833753929982614691774629032692614719891704311693151297219740834212658700529969798721445563876587702265594022902390492366062676510249776956096613022986673005985532222673025429614555030588573293543493755292307430451652562416371584947619307697376755315891276040659564912264727003232568919850108087260666103370518828182554782856725134521793166772054123281946769751307452068254999904311938865171558343227251723741513875156227990443009896650437981235908713014714293475090757902914597592633361772533290320880464361857443093459263797728524816825449808573573629772648286786164758025121671366602828556858780869958072845844276501744528689598595987448197384399219480084957702710107984763578535812347895605537335764640484967586291710194482699800638904930049872593914306562062611670571313438131657586472228446799132904770678387449924269157258552399767604622356257245078593084664757678916371053714290273484365022095644812434186109387592599046668892367297700820367720962345157275322433285360113085094949439152213907695348781687566171836343300675959061119275556458814936627160588363077740800261170731832921215794404271599714620911327612381091526068379280101148182874079708344266186096471468745281779807145384819067978987987193402119354881435552027358736975134490165996741642927416471480601730165363469040056562347226457665763422761729459411736231981119971235642664341428572612235408440759721895673619586833403000409898152976619380442795423124708055020702398190661948709479483921557013810416401761222436001059935563479182866103865426183369069985383757775239292214532740343227022265496665600638593640249930219469813586892889239798136831399799931531783477877596466682105369913773520317048330897235011527006679313293740642327908139817634126261456354272527425753667857705418246704085120205109057849712357399953669437038226234948968815770281823544722516727491656559580711460896651868007613239611699211774464528662773435130349192298323948417925219081554837590904792128989694891694354698006548828897405658568585631517569977390939990870000223143088230598899831692304939224688313054862920398367800716899304291673328201544779274108730867854609524681576518796652309108269638111484052130746102842466918897950139091213024518918867755162969407361783844243207958195675777581834850824408852248195631548562505688703434588333935199827269268611877799949027107275637503158754319070254710747549997993510034988342717983137433581397305323551324585139212797768364187850442140824597253037059953250365898241194334245831944646478551639643754938911704277402649740602051478932210760129027700126301521448644498830348159540308233663543071536917203003744282564635280312593774091764921976742258568559294608604001773324214864997027819310176499693084402124256668168107646527916102203363167296982110920390511011656877558988131848401284048101508061075252004351995703490745632558555838342108634799919386676301817697638102746786313880149277537647632161799458413756190136884983300774350173320752844986925605721358083243963130053744020886493922670800094565649895238137040951101540451991710842740042325993929184760907433367864141107859455841639763354187054853474178881335404593699827038379169554913483145718897132461226824138423770766845079236498940584576450391251091693061275170829377843446435303965862236551120387719411600094687755489709951004973459793351527115923322012946310261645015260246398816734389079489450249039686028758401893136106315199456573254471307459592589722954363068046003840904774678698974281416545694184950338929032532760572282888966940403673203877133818814623743396870152258519802511204012873197712405337244910139973504558785760418942945531528332656677168685798706525201221815295235093873171514694787734249973582408134253687409210268905689813288735433434601843258731945383962163305969961982175212532159820182183596110084330741539397845991112565691994649137294219858367935929706051371106482770142298473921058122355261395416737534290203730130166952332093311593431600723270953705472758439487826383078511087973394366439554600833988155004481612445570167242292000882128315544464742114311810469437879127569131322218650720158782048385621432529052683292841631888029578665408803325558605104634838535671546148498117045760056207023656702847497393579882974613913418677612941066414356372911865951221049557060472397078504798856197905450516996312904409280341291627370587732154036011578487549334448181124289408718596636681093437007345803017222128066081039893079276658981968292716710818112568037796188187735538873512732241629809367697676452457538300966501894601011566444597668696984845998906598014999238423997517695873448968643456038974946605201128434413225068120552471156957689298574453979442573530637468460030922954182596195578826692158495100926676431275877571904973699169474131654258014827827262374367552258168008562922098649869415277451091656868399583610054691003476605178573664814079913815792596178319313075520449399919927869026200636095539443939120898219259365832011484033784009636249376114537738102105359747248841340883918886693048319695184432219690066301749251097582392384743093025552630900509317439054487405003083740509273561630146595929747921655683127285755344802072444057991582369039847220753818204386920944897381319093322045679232353627487523829300260973150764965686689219651592458907266948580985917353015214219697489691101183757293404957606031927046433887348777404166710936508638988332624621071699289739053313900820243400693426910247864118257313942399035127345047931177965152900017836741947359506250109844133607660650636466939325947487395408397061417509508296365409129106287579566894216761691225930179912502387742744364051153615376381206518514967159509967681590200638205693489344100504053425571704989722701673874009361946726404849616542614688122208738700424262024181318812931376102374670278716696164357317497685417843619308340025639753784261405936206128554876199090602483727865427572041698578243546511238556345578619633605502440742291286357002735268737233883781163323530911606419911300733185158713965118282250140518494994262056659107765824206500071516418750506623760471134960805987565458904219038154907038202164821287948447188128311556578560770652576079235461870960639223583094480863772842063518942549452951578744124231162441377274803287802693650319457477177877080386100943898346200476481541262035429289925243950817241757627533671607262295777955566901375380355449849079614200085655570467093202212170811315578236829101545660032595477021336516194336430836819811989526746795471338189094832555851463343512320442787840895914654231485781692382443451528997183174814072169569291194317387022404622974646408345932237002236295739971167061644861035897128414551446156696446061132724763929475918431822521215387682767655668435982821512927436723340385108153936025328119055550915613013034419498378997692118557956108007914415644695571740846436788095367045326489617947011369014422643388431116248576979115604634019199622888223760338858371808864086568764851146912356356311096527174048504264642302023362624509212148107340552495239946648368811719048834015527138026790853529293248646611501929328197298571029603509046852988994907940526630937679763299297514303119748227315359441701483572325962144654560036483005865191557276578901300737036028528896539746354898873327540180434875617229934740004265530117660111152182419712104054390227415008047830388805600249337959349419462024475189419938424646515761755358257042477123141278181554623020379271454715978799234853193221752052742861195136158552937937351938532705215225636919124819493481457152067131221144703729790503981810643186696495457718602733223166164415066197789244319877325929727750779137828700619805246008537349910563868587003878635000336036682518475733139153072442845146254170040130199019310574260156874585872012649182577598845434817919360543896059303081774627740226431958698876421463005723153464808757143866086590960342822743992159656894435647036379744444454251234054484583999373347330937695163762011165667224017905600878396430125159452351386990566738769902598146883841832976969510448293880464989726093274233132398400182776489726079636427531185855891034176880322425312131070044512617471296930980854776089199783354922785067297201208573455003145888224095582367089216169100312189070040325781289432023003327150548072699914497171390206294700018423195239633535543452555391989251725814387847141867548970771496829825088732304168101785873052076247053169395203993286529677885974129959643442836693481274999106971285826252941020691332945232473444008393995240738806637345708182857020866537012714988595282214753513978761928303791349627504202358316661089406431012239127852334392915564655114241581916633309223872275174388478513982878925861664968375606724135343050184233012119832877322347759578127458102716383608469229824723952664853675978821300949478734012137650658713993722750790976661887620976856209956641766348581234811053677873847587413693000996505013473955882800862946639461296307323830054167537573216232617287813169280879078819539156417825754103915480428479556366503829566885712791571578224456861717915130260670936575624519613299678572476251947438320703615140240301599573577021863171041066473828066843141699369098171666948473335436648490747718282722448479579168203338588735388199565927348163874189689125576246716050156026899473936081623631694696958530343512140407453368976587107974420587205475019935039061758168368902094376239890479057139090920431233801494226238277923352046208060778557409549735177122966526978236596257556959195864542012428014375702981116543560287523339686429738402900836641832530827213199443659539308178233592957903721737611858680429053665711220638656541167559636728431245978747186329415566661839905114697634315649713304982661491684301423510175929875258989216256059010968649611713966587020428899231279100675796141313749411455541592601789828191193904701704887687772447678532104925031672473970907841261370242064212711490787528322108407671892709865946102980224670274323906626633975372527348142119920475519127645227697528702284171429674029451550014270383400629202184253111043388379736639542856463118565634033019412786276306500739128602303169481760913900445442836312496342967617847559656056293192534603783628614594564516105079473967029970669019415185348398745701882885438887701947933195253497598556948106329541669607948046144107672265512309908042412003471579468944475895495579948584484166421254174521959496158728671599416598135552919076540001516123117357832975894973073220822323502286177894253809421612215187297541846111010845336233043454787694091996383976300791748108601039492454800694589747135201240989198244394915046596464792570094334796829797368302573196463740762815971672705846484010285835613901312544214517892619460756599782525810005744245045156497527027685482645549290087228694631796845907773843501394100696970780172286202263180081976527116087825470989068220648402733090526200663718470126459576559983976753833895373289735253690836298178484793332620365091556472343449216660058875544264210813744711800716227869841736028288956016894000760823789206014134886751689969068071959358549181143550260915407432118750040060013903339453671600838266024744752008187383419637985912397735218479949901692877018967258441726092697243754337371357894977152958281535582302017016220488322584700180893760513227254331438874194831312264632182261475807644016149042495749228890252083482187476890290391764384434976137777634568168641303753422623147296986219921904372258520567589129396708647575727118033519226477127530314050348031685644274569501015012591726541684321506167313201751085963688505321452034771074221333553568883581092994089100398996160577800890791373546242904427147424138826374619993220685058073788032159907638648942388707065882121721994393044456636059931102288445589773493239265498816141633741851355354391878245387075586455672397152418840490327066863235981191574824691508447340093397846287328548504281588217268561181560532394293055144857858350747846023687743134279111340922266645317633212361592895192762399256395136416353073255955192797574567898992505507164242790626005769761128647590727280255011053636960890256465133560058516913278759809929524783594539047241326146533482884168870434847629261384718665190156118715472253671366851902473467180602443941406749631636142253091880410540995655488726161130259559889374077659828211146130828584065136469165334492625451650598225852734363922132077805128329582716496413755573240261069093966515333571582814954061535187293245217479823167529148879985784744245540225354442158827094381183639522654632588486678609714901852246514613552370330710616340004253714583636125184676223971016453287060688912051965644855906142544253696498367344583285708591059296374657198441314268019123694587786091723099157220906543502938608046773480653596382574019091374274369767301030812167914142829010357494569331596100036492803813706950457787695540432621792216078128293274999864100060046948275600054477021638557793798191158478256706132751007527493134422283535538228124350701382931548058465510506328053801341784155572913720988599027950552702301274402581522469806078558183186532887765796000014272384058192503240396651160239193369508961934372956119031822750992873394385938868721441009422075862008068127310142977836744284004350113888897895803064238307792533053748177513033662378706969734642830175525590377869377613475599634062404451621997574233327977159598259544710051955985216037702477268456464900313801563729475574468210352428469471509189506203962234150794967015040130640612142772292074293421493105361742929293513156343976530867440319179978639089449956342625687416785444057174300123098566159687739006035289996621268961033408439103668904253530935201439372658070747710347675020926982548543784483390316900433358876652763798405021390652448034428998714112852562081650346939657257032391065736455997178918866702667954561820402008009484658902915573922208747317187228726931129521120179280981838115326496387546706113208020274260326891689534931314869712259406307681877029203611587155016888508040138083248701408432266944977361017437741171834823026669412167379482356749697451016304905588626494710518288724990407228191445949193330820144869848674547457593979606275260099500817226110848056147533026542955185075571927030907439670968333443552199131796289172887384586650073608987061523809412429466207525042078583242039562820465992816342738572601549588920492045807174713799343089816913672113441511237542543216892908240074152680438671768608678134295716535794113341837673770489732405636404193625676165912989915157209393807557382594806299937790620513491629921272964397809377148120285472140852634849173102204717225138097368161114970469361220447311586058729084222433412451395997631116355419200087549509282061002791116313672074517223358339849753634775045623329599009951134780168664551179699368508908045254302178891214817962208431211940844868070373320923017151744860146432667476633183649797906340775096036802844089474673334259799744894216376794135619480353095457377471097319641013825023669196876992404768551646212324683377593178225339143896285769287944236762533159635247497237639319328570362711690242886436620762941488637049119676537917831126549700886163511921971711284764635019443329940273323908137059258988225746571356830015144602872293011444828774948498336424321053591488636736172328987381654220085084952346613148309299768112062477406277969967127848835118115253954213639210147167849574114898668291471643577898620860969899541844805072176236293560556585641752635213270909046654477663486593467669341053062697245232678607498470069449082015975922520081356982586976854466807137665418738753615415416920094939975123029014634436165564660672926000568258193435538320392945466620401214656613799717289415278533847637881408186231647611783574762247114610192959824836056905248031355431389059335337691313578386973313733385297359788785491609891758126828032346444382235284034715742950432242735894630246417371710799592167238195490990383146034548266012886131080307026322485230531429481863402701129479702260983019837523740114879335047254036894839876327932318373362524084552120380521272044477577850876806092666696203808817229289289227330330948519804091020264850491514232979318387576180798269012018809017047410792658504169128099651409792815061041742552449434391576944337495913502030461760146204321614404799557143883196166994080167699411246034581397554997096679366433046145358941104019819344211090364494843563196760992370967437262776129914725847880904911265341816528642311424914922013564465682659304076647755796387583183346858856775395208627589508269199267348391329809328052355287503757730738339275426191156667774864669970301350563526183530256155022338870655815133627258420214121398572282975454711026007753068199485790406708523670835208911185219346166528939036101155178112555419205902128170740896934456808920046541331886302916737656501833282904636833680196457287954622683928761795026229384342064639135254578264681474310801531337846086735939118408247258118956546791955709401639098198911928577257374399080852245509597954055009358926766555205339057208203852278135183915721155573956143590353176745187820585990263161985255058747692047805705200920216333928582496956507787494863094546123501727017911908116481221650750120622990146855495843561413593391719728390777612773272221680434283711320546318413979974110040851695057118603873907716883088738404344686722289157402511444285741134941347842343062666320596176456844212172456637873986603256158072682937792272291345388256767739966211455354152917252583012663261007979416055842414668704730082722200233545578233232522104529181014491110411338055080731600743981517679586741638340356715934396663328361556438064966242139663873902000738380100045751356394939396744030399156449746656673071802302429579776445913865225308371446822193288921897586355409637024954202365706695899484926096414005813577209415782952809690487192134349933993289808658996739754500469707035992345168675547053648662610206556929554207782024254486287596831443276405310181972214602741845256892291228794190633057284811518272799895580166237692354222512354212655290807005099451396693604112275597513121764619296415264280490216267707379986944760520081883622986798948928966862848301251207814735229736790553558829868324621274943785113965543002494613327587745323868369472992520001997928615957004175070595288911376530608219528107785576731456011009131854710684935072300108126092388227418907882087493845257173844310144683194903224370153334683458215410011608650047705376313841367670382697133334039405396430244180140031419652516675577442619568569898509746721747217406174994149288803051153375217630616023693811385900777036579883963583868340120076496011442374123577823228625072135914226675737686734050003609229213764002678084326330161220254306851669354121903006523922431467989273546308772189688928673494333767183747139724204911045034304327982065644957551828039492750713297181641492124629200522854722445688077497839999303805639686714988949066589420933366016860814335395984008714924706167694233791520216773948160540721944005777662143510858744997768552927808318319238175388482797218063092305101338636105544231890400174137346835341664502208366465971031284089853883792677296837190206026622118798789780211904252821577247984077893978586964238728721785344987620783564740848879241174971891525186341640178280376131459877030030512421540411987074975698490253324102861317056624704829779832756009247200430650600390630754883412180677658194067847609516785437617033629465841410921958841742163912526969085707355964390247943764695189298113520660609376072800758985406304940807495241524266313206197966209009398637913961589758052456872030384220016930446978969094202034609523653413046922431474895425470848226932813118095029579396753905277039665293438398847575560120712728975254384909871362597943929632104643659606928410370297035074066937558817282621305217386335656956765218382530682598202030282145751289059098580251226923264302370301250262022367970393931838827555391063171404075763333151245462282426793191201457461916171655847052753325564813510942703149866473213911933227779881224370390898630178146976969749855390179302542497219776606803216557210364290973258391229467646482090399763338763434730268000071947694216067221283228060652724185582839414067068198449600870636270639111431617350258569369932287660630495520003340963122243876071690034308457590806613360632513235232010329810648192608440140647027234995219121486285361101959717741780284594436438094915589365257944777479435195146172308884571267759344617561400176106477799300415872332830267331394678364462197054496750435806666894416727039263720694508204042456749382928608395507720882516588615896327822188431711719316288100335487091413761953083731103369614328981790775577673955481518237614905048170145042794059619773255191984800846967917788239138608553790573938514336613518141757303414593422736439586586934013354347797776848764619475777209882614930120841965462440266784737877826047439063068424583092885056653750535579178248062836609527212039736654975980091829596725823300611186457930391010044542182443312608361343669792889408837481865645650513756454714896987690405134890314745795723205652340559509439167941500514396368706361706911566985775559840920165351001183093213997864984063201997092362233110489383576072558577300089136095170211615033852789842769363002675219307722931820794630213581142483037736920851152620737423973928845225199122790638378490899060585762139908002806050182537476783244511834114114008079345601534630871435009883745211152870285850405975371924369653029000615420631236073955065235809317282853018075835036719756300354614211537997267014887580117706104015675276867675965858879576314516124957445672605549664030651696165277863816467288190899963793912714813584271894385469724108696807245449346644916408141972509220792206498399651960408497747867501490134345986861483704225371092270149886790844827738430731540280638201358911322928964659116628296366400774594458453436751131127736062732215558499844033766186767728046665813284430045466300057361399513358516310040395365781162035011204763092782524616141679028965652767941565665307269810813937647793133569409440486978358245416334861293733391334499804300435110784188659774320221109062331077843312439488141522072664497618240425516968203602939202824025208428841928754267164145520762722103251344042836018681414405672275186255231089449035861062598437700859265061095373566210790682519219927498852074961066955779373623569383740693236202791270602725788393249518390199146393289764130242423700511673551453903363925081360450161064139196371484856824805078941850131675712355118323645402298060479025266639472750677852812222868128159922365877778494349134841754127095482098894710825961047714448396222675342310577982408698648325537220240156327722886036004975035928991211470821003236784862372026018506981662868729452143778336909836095765576553768631485074473092218067880056009212567385602106648910326484653840019484995636982739425594805694049363502768938840607535350335510201030306623996523196695793303964916569557341230295764789208715590033497847502243109957736963427468959876632403046475275994837004608337100421635866101224973302846282601117509462009550142794482127730282877893575453497511410760167462647562722646518662645605426846197432837028333273414423081842312434046560627487208754912173364997212989651565674318334724559182399715896344446356040566160816274075531501797730216469208229182807803136580041792123147785955916015020835585132885165626492336644670713503715854086245143456495096176311381440621630838804946076111723007287882369032015737221692024676527979976912508855018026162422882074565373836952142393126671747695078410228706426386788199360240589467579737651970702997323487997430040597929841968579000673751052694932241622997974616876796875452219854474984507986583455155276635191806255694462409896869988800926629978509008631476335898063976818156218096640442388892217503314412190598867081905575358369881049344587375431070339607150896845131857317740294077426261080504278592373127779546806229813589822955955060728101073996659528757969630808276920098805644512314071864229593528227161158217483609411772437638486168320110184809908041441074328934491713763995974171875575922277514285902254142757955668504066090122780739456267138912353313332047041075676953555815410777017742397933731221942094211116981319715990997409895696082807779334987567934279194507172276709940040982464566162418993265333603524846951371924376416695680909600932540355068248006846175407898951871869340492711011966684177126994541530450344054295923314006339061935818043387468065639540625033869675413809865985852627089030828012695372263549039790714554455392926995369074579429079715360668938481370824624979239309381266937575802802330452060133822599952228320727217227570848378818326150178508866724962701589508031718155299883288661106552881695749034097340745791891631614256519989646458447454849205441516998289496750454470721889709960362200259798839073853212497550992562653698215674114413091063006040748308880819388545614809237609312503040658863102701010395062066514996618532466178022546974460535605465441394522675479348026279355554020779610632644497797338187830364555513835344870804304138727348655352857952056676108953128450373271945794591746469762554367273463292840536973390243151889154998759336433147320794606581296654152208939466909287704761894509370160654102820881590303071632161502595105616421777430787764226438269692462131309217427742801134637351140314160996099372735499605441801894616572533052758499764791432316993684796492697003317953461068624289880006856244861485901800143986018471758277451677631426254855005886171787505441820244689583029308796055207514581245889304350680994244423151829977420930277810023291892057741882540544128102121590836716850747763016502172182735989914917503416533345198440862691231600903223522112149895624142333589029643203636629942705070580575487227058392312650120882500960669745139695454175774810596765957259607422572039977126339154509491703457138194184082013797787517875812054756702952042283085543899438388753433113057803179825513107759445932265832117711623867710500700723770285709197318247916337736425650265815549117215484845808299732276740995304321364604864422646701913372462517370936334234532327772720350490195469807012127937679126760572484567734111168590057485620531207705659412766151641630320574159385887897426816533602363242762794112547332659232786019513296989669896989780388860077391532128627363217799707838382816541508081647427780134226345610189147546946421142046387014521565048041926484762225341599834474418886090141096065689050164180601014368030085522700879233335823684687570298776316696794618762993413614576478199818013270982419975766326210190662690186917203765977544624522846639859567178676435893449406246409277825658569864661238424591215421790640914890915865691357459137348228708364842162890311376090813316098848580881753984385057368040634828154644100123937453021150397235260167823801581241593412798688070551309939346435141650093875176118220345363732571833744732031476980238197814341679730441444883945008205265717082079539419259247599097540367990321151600469455045062733466219428593171144831656566580530776055718542677769927157858571730068325636632140496487192280040599081952672071338109124516495083553339544492671863711223520785374046928801482194964572061077566214023239867853487406819965086424931544803583065139148032423971374465432821955521024785217895897086766822889091079660820064914138639642039549070338908407448335044573516034799100505138564182622963996903554769301290340045069708731624875035584794541802637708175814813663760585153647554405919084538255616335734290542463547446268704737972653961052044807151321037852819396139545698143553742395637704162655536432222819177836154253062229681408831910139598905576618927035656022629131117097599141836154265220913408291365296507814890560966302198476156256250446988026750286568117718693362235006932510076077271459274022135911764923410670698790638115681237820735088131651403814018780775522314543800593245659130732439868282934181996978129982007590732267171570493482867135605843689149932221228321477234669628516834965636397397337490205031877317465774977388541163653923317673863145949169915266545543394083247825800035769781784928909794616639964958770444082768882957576247098268365346066327287876986199639142894823528695632680802175497440599195102666708950556569731492403511991230361251337866190097685871146810120479912843208785199931331118892936507825601896765618381466865073994680455538217886000667214999529588268296167986374031344683086329394363286890450911040773847834158835852000366035143662745696165045973768168822426277921189011753046436086793711348476610663405705490533175031638625165727024587233637627993104729383553796898299554680378041621714513004332556096035333042437622435773671745670956365825622348683632983884127391413780409470611120755158541528747031609737678288014661946987364007996989828240991650629735734461480072825780956712046617106364450692250804075046068297032301767903529379180708651246228009450363149494576710007724946784376149772079292218134649266173381344771757246898452421987704511264898674980312164430495612864214881048958815651811813414779916969043252593082750186603195611920895371687303659815366649445256151868145577146044793075295368331907076188874987805765003216905405250068107063466701596018886311692291694855966510915437301044622049099327716608851559805207292745256124702583695986779962885542008531833916014492317110496612350648813251463890877643390256084429543598652499629433505806441424836019793815630620342988674208742793196548862009626290976260253340167609690306626698839489884968857756983830343346418315488834937739793633313492153395719137761572051348614774532149800959447773705839369366250954575382658551497460009494093865051022089269861310373839977097495360475436076570868954793206636339957213870173569486960601458294078077547073843152329796419699529156072596759253933172182283869680614871494684810627687259932909310150993063869724131239710416588277215209720141689528807152901094430265866556497871769870197779305369088760427378201071443322532953451689112018538856973753489626050486046947622232574188652454976989623676446411365726931512032845766414206586363700830405964532283071589748998444253774817678986244378990498592503814829124910581420363696520091468021406496158020541688586778830891376539613017472436325479335384318511076888361851373605720206309476479772892905245770225829553111326153271127660011585972512682205079831823880218150091658675599462817504036791215013810839740839155153482111593903824780984797793031470870102315759566789314120448454241551777179452496254750815496656991723641869434231946813425025363683221470853237895357332758217662722398279576330834529416118878232519316436556647103789621295282266301198050730343669054652378786448920679596843772394162662368198363555037734320093066749557423585906312503979714414368400134294053964707194790366759256616528434646222386495837554331015154672935620647258742856100264105072593349253207344466381667777755836173994935850645701125704608012649832050163685186909015227617545700822708747746276189633004090669166315873291400155656137387820130967899972300837900193571898328892362032638837426960791615333946544127901400039098441853981136329020868491390253307730908626617676822154862327596963597553531862600979715780563804834878281549434200983232470558951653050293343020561641083595537254289845081736554371131770773948604575204266687623795415010743794977309285768674313237358065316470654885920806208336546336497135757202363159259217543007081469045579999050063260296043866222215147631362722657961945496984131021582139737588859073411483563266926249449549952605873953153085073415787964144802370846380243609672568322305591705217855186249716326072374022785244071014092856235301486367099301744206093344866746630551764159974275817774977793837228982416705880594227379351372263704094536000343726391107215341034319967103321205972364521856252539647967298854861456763264127191474688367275466406782394846577462398010369896161563832443189141547595764650250583114200276336575787183587055225628660114790200933936385510237007543766956160160720302841575748119561147864065361618527569943849813439306464300548302910520031429819683933358335449182889515613294582379090232934335732209282049358157912357114435298618881763083797328620851927359524390074191345133346468453472015861391604380249018908741209182385285384367317474964557539178080789347069563470951964346465414222338927598934062759300420018991883579429691323886753968712914189796382117375491591000509849228211005024743271831305497787187798283006274750245754431203511946455050436206523225545508387978127167610688797877846235811127251329199967596626812225560734147566966058950903398719987095414728308105685906577094415332276265602412015602620586499646330215232706706948520285243187696398881157857859546548134610749104597340408123296999598597962379226617682748843523858260775312122621945622872932532257983042240378642035920065587355782580182995577942620381852170890089604275069472721541992555297254220734743571592070016984762518024546168510691002598046385473745012696213731256009836679559241788285992079589205155111219697544550847313163005301166507600130401804263677560086333511371476395005066157283164684264956019626342497951147488050667086868198351832992278473848855927073538170851625624392835485950267144495584207219184441714354513901739946486228760523041800632280924381327290830804633321470863962242386374382266771090326114769937447719299110799714959082433968157340896006580748648050548569569180281551200714300075564492758239930399955892965076253916388803421496044349458365577782719050769182872678217214846755536271124888774498740255259719418219119556414245036939040175616392444380018999840205801879911568041046416016984042690940242812149733583460906331592592655266198038823727595842516504050495723103676506541785729502613453781434997603899117418095616583669303704418607695564256040723651119854703682554477170261132285193013453751699212519088716498081168987675694169206356401033193362722485761527385783089977949007163013254873928248386328264032679002213347354199069619743217792163996470417510087039550904368306366618236008407171250407523299203793152453829297145835102081175957019693132496110793656936222574037607183663206014331093221489015388189579703326031648341445428601864722040355468740785767518435630326391702565670738290836099466357787531571992135179830887153912794856869947708790584393166582554791760185919261949897565492351743852207246573063642105960786816054873678259028792911747807219125514170706165009885847294869657749532572301094056981348352944471041693785181914555363034425599651392823322720311964303949024393608771055947756371133354977297770073539144718578311542377585736399922184605429062306344352708179300993273065844223088672957734680245458912472786251511588218070511385762999211688594417172371254150834838186103788981173387277440139058621439166165856011684021923815047770262727207606894197303066522710640872138326009959446000180928432506115190486682949516625085249531581481390165472439711318863566770588834907662249489667696261939747208055534231334262184383041008623989621501284541149854893695415800413360399408558527859070847755045004607184835707474471160151043027719930231783007983562596724657746045053783457200912681668887677531386989085580275606405063248927469706814888466969244033820868346928508547697454489465185565771038297022650762179260618091863903677896550462543527117368958282935305785672484540311001741005188978704078458701898558246866641261795991995774651889432009056261771983336963540302834558973175868306700954507821589661124553019704245801526574820759543518644408524355481789264150376112765232689784815112282843044067254112592557998113042186033167443382332651670746409348715010320429826170132119383405321205954646054093061266339171055066558613071679643749276460037713327663435675629757970983479644705443431696573258281164295067729500145432620642137319611034793010451929897368798602758806551764801173873475770985575643239112921989832242720775811615891001759435485356564598275763463308889864892378897190759100577283948836137072380019729962466487504587631564439090650511976631087863966984982208677745716891342702453480512490422994333331419660338214485406737719008381569251450391513237763652876993161839254216116054875055492585524809397250774406602257516709351285371028253500346565904065852167400089785475500164088134274318630107359273653978778569409894696396373831771931183172605093388871682665241668898713497343927000606084147473365198901549096170807747067750053992338994471494845514700543461048561440812011793337475505708288944754916395870145512888835971055359145519360744328840601052958660219835900019870090161985118573839072338613131728145137912501980393200017349770994571267707065043285802775875681937967456921379028543793900167955941999355428009798636002710872313844203072426485782789813420467244807883471897140674803645713494346181435078920206583560244708619304668924248348093191598746531081084259489532007911670569084631158705423998362601437264998158828734148668869935650638138476943804543282631064266242390085436970042772152493702428974967973064352993766558849002824746343722920654350713311871453521091120038928439839846512310073704697990034239864210413915863346538566803508058877533759885983101377664020634706865013613638389879952245853478752760586213431830995610602086883473343005115131460491808543828055437821856617560992293292395331483250011595576444189031135060750970055191775687381958752074586430535847201819870803720691087704302532795437426523835134107502252603865563952968892834294040048911284926031648633891519182593090424386932669658984182726833118716092245766349759222066452793531827286136114837170071900728445238317744868163632670596421696199529366806615047298745435768497349307588891488650853390840815680164468897244486013839704456059527030380427710513795113308690717232271490193576104280135754149620251440663980328952410304429225228335313390215699780792214630135882579119056497603096320963887848755041626729124575386846685970841594153941966743608810806240502076520506277154025809106468085671044024424469614931331279847023199006250922173420324781046004797017356142793283724387964470744624320882597744730926417048113322841287919337177188952515741024966695541464375740308672653816883525989573017963951358085365137165883750613793696328097385440565397725239648108230167522097460508035316544475813364331273095308548354482432018881779746179639472101800478982974263044904901695300745264330881278091960412717391940402363393493179905894007922762484664176684370230401222326677935712441057643873685092981156426548207521913269585356069202374788193569946272577523013825419365943454647706223622613282087081981722520871843596671998532156190473554276459728175991991339746170920221413171448838074809712575035862174412599927122803454882375156359377278864368785752300977447973276111049675028565688602175995070784992428826447316151704709538063315750438253827755069329810115565348919595106915663648910755296446011334453151698477797870055790176685754002942922075180490439365533543426216580906872067585926945149038613490181023241718170754883979722794841010207402344886166797538638620702246652742488770064519352391227499239173656016929431430984655275190027062588441588555273063507398949053870181275174119160265898722891357423494111524784308323933475730934478915581808359305982969998898740285669803024692308252712176740146672455865502735501033369239517941912292133568933099109933410343278120518906497878710072804457976423365324342176456107614351510808122338327425213542418105952579724055744248222085018842728885474106781477852373338934385219960691817946465671538563185176243108943348939525147248424687480970845473478750535952802815818386020870212461044276912716758580795238672656554210733909119689303327361236400743477118133706566784992459654821655820320611622738409449094275764433130897365923841811985012494744015375513714359131325880900285414226587396674885332396973245890205198756657740187584194924863270863476837564322325907481312709807423396691191261481189535766309923407351738026129997963550337017603971124014333291224718058583975677269614996828808009182076104221307682301229857807917059502468854341024308845115890878530608335303711764636766869332277848138177471386076190154720997315179890045798328151564260120514502526978042532622013245998510749147833804252817467650069802210723037137778264374791656378618479283714225250456268586577563558715435524711814934308701066510710854360775294973442643392710181055061198773639722069134888539664546953011052504291768917052362321040880188896053957951036089612330699369997732374415008067534610022238128900687882305326880410476596376272020079127225413500934408815362488541755628656010408728640538499218108614264592341054178887453658972930008455682765247553549943362000730497893696613909860338915053938133161124619085990325085688142919197219503266827121121368789124415974555015179791771759697813020970262055728186299310819083148760218845240769461170577575296746597747609089730199553654156174348491365204336360730697605305527285703900289830893513401294255309786608780916579156304971939413396735067356561621911710831804165932810793977496531787637539131778391638190113387874318222335915119354636825116239712158656944566930970206631299532998715904612469201677318461130443612962843791750419268531034953878793047322328825083959099602259878285599091767161105877355008288992737987597160180057521849338489053125520015325419091420528158337490958080054525184720042952655922224879293994868034293463464599169571244956016673660117378724147499015172835194360824448105528865554028666322898188396624486996701722354542290425339486814580082108800636060896146538642811988681793308429370638121367674003976976753580751861255164667601016501669802149650116749218231630096676720762681609851067178481364471502907738165586009514475479516789078769106805838016122386223745912376225639628916377940519397725063956745328587219334591079528162727388347500630095927913254425534146772171194920275358045859690045418315644576911443591605450380169766912521043526375701482525830268747045018681198184857269273495926245919707083746127248896664101542962515964226650008027738395800434440758515716784733502324651644552651806899092474334593958189281726407119288534918340965944101683950559193830646518488611232089286568408002923686550006136993581892236582997118057695543435829587786931027939661613692656778575238998608384046190488938275532757697913414807309610043405124265749298634349857748084240411435635271078630169254169343876045020756499093153405931885023046208531890503012179771017862492942985503056844784356187272281854103863068446400484390123036894658426376143415491080719226530349817620883314988318305484887863292103671990291397940214673247530198190746721611092802243181443207887405439992899301075096290842100163570028906825362408761111511972608974120292071591487740963661939444327985761965351437756778520462722197400889341637902112957347014897071954015171326740884642395404429290948561140914774357149640857676052549387715762574123119034245831661432672751432610695089117320867676656481564860952091236544742026608555863032388742570819168630969957532667107116123682237080893312326124476257168752658024432281543245307879823273635795623611232767702458502627627233705544051206080398188201261926295141828224245017239289340124799960222372513015667281868044172874735992685705416448742477192901650833874082486733312502913273026698895712003467401521365646103939048506031849797435110686462833283326397933600564792465659544916035478325381489683775284655492702892215281235176173173177716341170955681882146957393517877345209214473981861260134625944468068060580178681604391848229372384778535128427094366038266193478822175605589080969721613459462102636464352007110704143989801854298174104975789096071056415136808741255879893532497028337280388119151527019963026489449147733872236487659128917268644440514293390424730664803843061849472226792325356846050716619589887588022712683082922984810152462040929835378797649133298145561625558420472971856580996037260562458236499983919260403419640623997165221107095657657647386292187710226567170174058797685258349902348572317359129540575726303657817450583948938668855754969239833657984110886948817157644774524321592637471402384314174764204939607745015039969010948458653925757725080623398451885908653801721117483620698070954450988632378792073303577489633231083514937163374455205838766999775409146291837227734021426616841657743790321197613196520967845049606136663789441861488036600624371644485733472978842733186860056182725712776890316578000581341600995545905664207845288663107049128105532781119342557879522684168634519877073254190637515949786958723103877872626984061869189199667221675186644177618616407414552708487350548550755976206036596832371271516806644127543301610215481731266827102568903231374281989826476646835765846567237721359580785601310869566318490414565014049109302039243408099063839386302363379836243231909044020917338228517996714900092353083897957216582241731250805619994492863386831008723869880127657961575047727740663647847952905113736445134700663011209488945531439339739138795940256240631032437095270914629939550924443647571734615081744757366363161953601911466000628697906586323625310295082836382769296877046173148330698184367172829269604658270002387765435135201882371302183857635723662050791247130884877490082471844095008914662762780997603089461817529754288281725754866385577329801461020531247865998198162198214445875126747715087141032260452747281510278628038988503107720606153544396220972962679631082550970134820530507351403889856740325150794284772098269354146951701263781468236607607007645435151721245078578727664501644583246678479752154233590167228962395585351478380289747156182800983321726777930058922810078985243076566520054139625529776429487190052193022297218261611378533246692826545083689519838160228975323442823408679285910615952523055536409604566984763147444452223191607925482768832772266793859354371178689594728880282852822565152413174589452943182818571226121783767441016215134461871883503765890563618812810665938206753397847501704645443607815172632811397436150218746941186408455910775771049722235611111005520099994149594991291569601787397199545242968084229563359294542322552947085562971998320761630509486198491109019992164496979279271036041031169840002930240459537647421692457864334132712363935307492826793034128791503050707470532691510010659837896379917931268898529442524028636141428684152660547963183541221180278605668105749576210218825282119343780679263579362921791087287131169135583484731290997920339237276925582525559593315748901088752070823135958169511986845813584541087238754291779976415395647073673685443084438336963675815209884341658808187026328593628454553998496230871878983294458627473836351686808872136348282644553537877653107512605218239355586558290429182783148729897425069713175652481280382414396097430860984454262746115843234798954056411664295602987270893665142021751387485982065818048298326702600925218836596374737715638880997414208890745497484663545911988302258344901349187186828112658431034472446297414298222529873015709021249853721932156294548198471859886437932095443303711939191586300713149949756168603313062018789518624424143662683025128980101504429801792461545813836459149941191623501782052311313172401513412585878803727792193265436872597497777251924105113644975761928357084820710086401613248330253981210489169205122167839900811237634490482857758323414431953191633802244349429494308055742032110994324214459299039131696981591997162573379993867608698222463076915120052612296432753172424133120014296306085709053034926225690545661568887210256054258659758659182812296552229412820070408288711274447182740931842313134496234857280211774932950102893000373391559538132029908244124042982316295066129668842630813935287309486819250534040312329567742619119867444196594238847657579831900809061884619220327768461987450159179394552267512920277506117288655771615163422133683543239656160604822948294132336729213919383255682642671916533402112755586611882907890092186798525612977404767129125153423879124674479068437477867561427648528446112788116848889840441398153579055329282918654875838932194797464241216447425983493227144112089583535009644793799074009342485855898291466570984410382540922240780915945685537681488731844091978161941878604541157184280729071090862069880698293442781337141710936251068504990869504522395869636455702223169910459124733794798027630819421187928264471557460447140339801188928131817396727981914774664470826406643509069091181182531343687593756525720851835177755411340456204083489052165042582153068394684303492405720093101199356859152658082299879192940131267839190071568652711873833619652217346670218176159666691706860086119669438977577148939431793167656434680335338461398433793709737498086052412566722320606466909757604742147839469938886608385415679626844902528666204145729418829297462884660238830124354429458292877229142679731728125100705292746599480728871326627037080039744227750030104196385712815438185933418735360400502634111005517970534423067849646190756790772811365733066145734549659051706648791488439440645405809231680354494792293715572805710867101704403277246158152528117988111754685191194026934255901763331084423750241572435075651161897463283332352726620437320922377956864089582781678559627776845144056096226100062967718115274167755505743068474531469439000985201228206999283856844951476462834135523507015462056168651659139375774970950027783791611414761449419154434546531168776085323025091332695341073905635019067049873047492402020441240966247941930493712693396721232908479146210586584719032813800803361067903600556236527860132980907250868813869665436788068541053616767150070647867877911076866297887929819000358137989043442407474614747079407986195347399765816892049444321811147994080542793764524155831466822725350590792486912016772896998857432361190366298013532004020080804958712977070117362760501804402622937757623829710313496317153596717217271400885716689395636016897538836239065002669938916739091702661810657859163253135650842557621384766121472926696501506580609779507395672313063065259621406995059292612708148112093853120571211939909982467263931133281816508676700271785084800337498674560492510361517908455623962786004976522091758122064294769687057989078244333749051537089075236086336843433094824352218859024368414335817015423663061849110552071747879157351733623481953130555163864891597060648553384360453091763980318017737867850517487945720300545186571657867970066193109537373196404591892348132319650685382427967340836002497850629243990468920614258118148708921266715845419443271985434383495379238362583808597532786395562210680910584554571511183998686412750654203209906793165398393239239293758760905147166772208999051806113308832421219444775493656005723177795209523109626391628257365360490972229179350083714124701139323769073416336177163318978436139048417756761020163331729663533556876208120603744903362080405358000171487169949192855254452965315028384517783323645588909514729481419366904950862396585588524220443836435170938738238862584084634564548418117569947460919453165626349994976966803064541649598708767896804195966987354554887733808983112035052316173769723162396702858898401154078810381430524317595991529818977358853004234206123305029667471083348436308996211619363685250485400093930297829963719461936067072881134742294217120177551951328928151893866856998978834712639486118940386564225926229860993521697825047118323616400981009346376784023167206115584074245177240721798646885993867729039254485879430077944852623196093322858832348962917510483092234757957455943383299083655127350731984889195156724784534513377292728692281931261976144087909673434965257624814513361411096326378694619696067792767567657744221944193062427645191678302561946404830133333281815874989150692465858505904965667534399021441263137058976497977953839892115103325785850181639864181833748251183836976059301819071570740490205094025218331798200014687046917625931535453083383069943508408035942537344382348206216446456997464845547985120479288355502609580521428879104224188291235628805217911276842543504791448472057097852426147745533189702618254004085611032165891808547540838715711392182991732198850324774048238429686875159565832907707938448528199602104430468774020197314904542068381251646878897905512308837990941130754216636093697460184170916693181735498428332435780773493059952843458367656310501896919326134872167635438668406638721080906115881289352254396856057137076288901249070409904165344997236081768971193858980088202487911368191747254785346743989960593288697879568902392994248952405868221429533006220307397212791381499388977263320172034707803000949589865084277320508520632334361937394514352200522066768766063012201493414969325806359694634779935198888414831194349846712335501580954461202748048069630238020726891146785629734352067065683740287461387410870430271024094750903426171284651427462772453581616788890296901539313232996671969158653403787896903712458446312817577820603692981908425657877593721864765488215497321380289399401831895254560861697148481853791521208460446404081042266922647836199748182844975902862704404177880156937172283450245107799070793745811554294561761059854391270377938943440468108775448959687591146897998911117567523539459237138401145856413525410225993395193902690205557210847344370997800644415194135564320979528848921411663789634989424971248080737211986213076011435536669383116571035467320547358684351690008134721972218050269508392329085335327189169324697996852941406927612366267930420792723542477969129783801756659094310728435058333464298690469818552247011600773027324944666725484717301049766875122250149962589189157947705346750510502185623143433332792950102341010767235405488514607559368316656058065000458428433009576939606744166720323568620594521198961645086776930839641434255904875290535807523481398746392340278430346397399341912497424556206438535919337794444440827781425395834927380842554503997111414875115877196802974697370114987528028111091533289260404185544565520735928672782330449497131314111501937011699772085550098120893140107072672290789039773567431980265372360735699080342940610850543540769189019824670554745057212919112831966551479816439148618734686987821618039126736371794281680208042267259724424082748958578047721884272693412192304069416412885521113903009376286239575017634407464760107433727937005982327941324255694416180177552334342533986825674131709641334223724877745599446694403321229557663748347056043580056689223768216234132901557993766250095211443518620304558909204894705146470100652365399567369096697847873161755290627695721879674515521088311133100930378320260191687081331463416328812671666819175893738241979478019843011887762248034184009101012649810745493655252989983583879508817210417739163267669934423110211928684601500233564279049601513460206791731179081237486909757862673396837013347836987519639307997926346277033334827921173564616589574258801737591151561970178686715813632529996182462224808594950922139821127312037185019375219500290759506294961866289528916113363370831665832958371163032940806643425753300436230376265866565058789707781532614443854106878655226283131481426315595768463147730241245983501929763962397786659718026494746198630454094893820869343492959611801643336700693364426598800582926698088002380936966941749309535374974853084364426652150157627442456378994309261123305831168911301960859551066240880903463371317538230044817236648648226972882692979094113948148629746629536910760658105365392094222209081234285184161371247351384908140494853358933249190464134530633501161409284526325882497381839533978203700248898067495236424840753842153874585758973427589908635176059676424899969843221953920270484131286083832399306366163328021562957269766403341541635075983181793880533476788366692839487732638826919181051762405336770330828294898831348929483266671884846461325086128684828126242903607616962350905972411982186339674581359638390994565709479300544577755447723128632268110437041207217450314139537949051180691545771981196362255719587650660111555955305577175587369420653479274176313921981201230997469346480630635014601389215362493972664473628296501610711289334982065080297649277717994333747091235996453087429250609962498131399983218778402400213700364468345714008716529877134220500609901886019900215984718478280468339645110001664629482649062444197453303873911098058404757601804325354649078913279803408103038057378742300669965250874324974606236602751088892152525934171758896018664958888900643309900414575735136396984882213247970120904408536874022500519614443740951274229179184803103953757860766204116284972858126706662283818675730205586070633544018605303211106235957642007769386252259133245356410238486239151622856028403475631611597567374045863485602320963499556552528302058636432346282133514979540189753061348520878703598301772434431948072569176963811295144209085632354888320547467391196093246246799808452063348923281171221497264185379345625241886758326094393884218418545639576370538792469796068017222265643891205615081723686396362400666457159435169761158458338787488120299533136704813207631460590377607957833598468670460367283925511583598601634342521730007474443461405085293112318821301322237515003622039588949022395944430358524845677357310972929124857653636503224033619040211573667897648543648847746016797124926671188252941048986864154746202637811987317150126766216368447393962586134566230567737928938725405460744029869459887121339945847234075162624782708946448938595049487294547292191106619700162560081184196629149463869950558939341120250040066307760480056878716830262886980501632577659778762005602087656809503784854433709890257971268995780972934937139222303053100322921554620441340804694990791320835770720202867648823958463823070249882613810476846272266750206577862035407352870555995605373714830927525454959869018533912312395008172640116798507908267157359353817897068201025250964356691092974913833960114598967961395232999517176791384641035718619222561111762972370705483373495667044100124671449956597838186598025034236240266857908914887572124579753842749792923420866015257989787111666070733263214689565853457918309652641306012006331385404541317203814665482831852776260423001802474032635963313051112031947566297652664212029952138929021776809235082139771947771494790870119698732164923073509029411036910267292667005098658820045988148217242782777472949894900978774662040515810802650267661230035036141310796138537623381633185242007518794862864080262013207793386113987110680397655946085416454009787608637657330572495940575928755101032024010056274437979920523257311340753277274702230115518591349243905840271385939863062284462792823235189216609380063348933372385032748491605748486852985238992305961733940276178007860844989867130579741913936370239419848895214802487352830636325569760120703749347905213263905192361385820462163464244210215424937021177272109087277023127329056028018576747553233538998570414178363083775040003073181222450164563214482571356326664839207056090400973679853397879684632661352044581148791540465435467387276196876521640256107522575349804500047173924072276920730816145290356820272008102474152564144473397040210442619476735709369700101633529599243510068088125268206497008018549028637449041139083685479711959715610785224674076202268300518270502730670133157574257039451379320545339836548755668680127158080082382560547460910774057754188351276643705639176316474907959718035272719601524833577847114903410042383217127896969106107189822020966084749586815421463004038158835327127409267547981547311083063231582400989172213016128968079042302335467099511484831548400340015510918407882447878497919550214093414861433461587464789762652183578339140757260593749080231429918796143439513235441341292329102838955219107017326268151779058107813036778507239493797264525633768014498453127705888102007286821240896716842689451129432680979846075816076945053229965113155912576525557833588868759739230076306578674902034866722177281486907702507446363399780133904665766699127832803254730723698437682507971425341580701673646154379614141685887769638900251499428733947441798299651801127416202745036134011148684034341813760853582072347650354791048745973238980959388701364205695405738295787670240607093595061219805529355508564688811168208355973616336246043543109575937834280234915728650131248933658756660783362976596685224049345427332081183285629726293562810013277384125536874414716669930664563865134906431571413292382240791685643824002510124675314844483178278115998763218969966664554648216994940282234440743730243725594886028117217784239237001221219404666304841095859583109011719561634263739383103292195996041398911792679968239600463478439844793259615359612845582907280933170345927783274673876320152042946113643176185683931733679633945508705829727537863471757427908711524856500151019005685190321896782056805522242359413771506513232475124726132060897756609987627075961372522484730396640754474079028969382590073677586366690611564330441352238675508697509796849265404708727193620416399992238465776108650134141780026420689006623444019023117277840302388854041752270604488198982532039204652921747442205664989887823863538746305708841178940751854458730075259362985362733300583644538249568472244109270939772299768749262382544814052097143680257079335531265606713631332006186116746536358662991830513437488070204031605287118203844854504749013491852512878181469275251892660032389735968937124649493005064513978687080144314779428934962145006712987525690106264707007359615779514281253994752365326280101200697457155061971703588383824131249135282660003609199442332988242953933014330737144683073068763738705970628621996407197762489299558821842550692353242303448970115239409148201284061504578447358681829526410979779506376375247013596688055043206091965566942545553452772265097334063152192827426738437802760573524558421317422030161964019697444080866742238369745074517555306954300102607111182073107030668563920503661775333938629101886848972450865922446129769260922458539189915340187260238308693812290074654397153180025908560285539601334424881237987619396468503114838718238346550777051286578746528734149532788254343993290510187701376966223711958041326450114071004597446810040940010221031084103921219301780511785370435149417849332495217412694491448067084720285524341806236295928180222634306368973115370209551268538560235112731785118408715437778416693217934873380129947419614517032632201474944718681686040057928888594316122907207565650588857871652111659191336987988822878251675919756325689998998567250842234743454200168323295686978337649706718759220936851556056791333807224421844604702344949081248953105500672506221147867873510690006016803352560279713951038452628176220271052810317936214008658294822312286416917707378264884788818457409499195385689340561848235775617425987098494018364073115115344054183722347345353948971928867904466542564962153465723240807370064822736491448179592360117497119490208936540740943299113709587563387928715438312468185110380570027171015896376579219420245480526912671053470658909364266170532023265138414377180533473747296837896361241230027486149012223427564203589083977239437482950328266429078364384411773786648432076148162217741633938156587491017201467769237745571321989871352986315096060752287216915313532900826353336996817373673255675521839644256157072171427710381849587691625956435259537393895346043918590329598521163372323360529133881458621326332313440681998406210386590915310957484725090629294996667570788420871313741083371332370840522578336032747483784310215998423591649812022702354732113700912440670467880979898235187501088810902323883637192494442918545862177980774879639010337702954302220117849765291533249214745306222071551363105016750827539250680400932818386245623903874653299525474683843202040485856273854963473510148115335201981432962301804349002019852278013724886921264071243662297447630660101399452374573787145360315581128674403688322628268870673164790861857089838476711581265805921251697349929979930937644206473609804776433007631122420154834022025055500682408326555167341214215260499904835496976411434500441733534252543499367429247148972540592023761732558626116329658290768373555936347682005693016100326061710291950417028652336772302773877197032201804640756397257633263969583462930721318547174427236495763001338520330281736855283187830988011193290380476841283931669932193684306976170318961784451282569785955414743729641405535177079782773754889760240527378312922523825052002124137810538324574227943153490605491642060108443672813421998108032004548707332064913071628875366231189727564654404073225650227440424046880241005317500674166798533757749826844930413410809814282025513104858032624114794725212998555981825621798620393597817537131064526572157408553438909749463104609557087150787071586122338372741184346596903965844537484833223901197381905689037864026083805103679831231509116841557871111749951515663781678620369109050048068735835659740036181151960335705422999213355994325826611314535160088188001461821511061106088298833126764779389054207186656091991955943638284621747594616339058204438203796142162264604458038285769247484071638773962902585862038053333626980017002019412718582702928082704426915717107587101676371884658061463575897982322976536761893066830775350284372053041316968224684323543320327596677339023671103590342888714415215806544253739736344959169325644137317041697736908075963978767014672963759035934593172490138312490660482243864239568919664693652655047785197404520157987433468793910076533984044552785415431676479737224359946134450974295321720315763893232774489707092454051501930382382383588586295070107870185778939132809808852001117538347721899226537357919414862749962456290573923446779088831975810482627813159721113049837678872436779019692704938412742598733645247388254657120215204167769937817966327920074350216107013773698359123889649841531755465476779727254758629050386163383217916135614640659182837569345252329219316759467244072304550477397814518471794396247058809977182699665795365347070218564674414540623648115936843097014120334757241212672458565416459891443166344038801115846039675247350356644102780842720049670338753276303528852688272953679759513733478903974501634418604152232044209065535994230284689785326075126795611369192880435583634629297312742554759187204130220081914616203247767298049658851043789618312732345211785123536132383907839748831562317193478678023990532533461415375460134900213559494032914427530913131413408017738089317086230515031673949016955863653800691757858875751760951486896196737606802156316209634945035630311695329927087056530156205882792339038900709976740104340012437439034165841262077888104712355157137109359308856482570429050267103159310830106889519628536353040589883054389833808940059536027618603340147513075002491071587487918853420062613401831312506190736321999169653355455056360908864691405947017927572580082201753228829855427844427887084302538498118631141128393087907837606598679107010002299860910701453663590068630604378897960110387406042683756235785132251401029871187930527190262758965871553869902949170966586807231503962384924846253627222654926105873594136205151085260715968497050915418114286166739571999071495306058756022649655078405647005035247805916003942411984000204422244663608817746049693423345083205825800415994899239034011781266216086606514445352102536596939095228565933980929941648464229657255066656432028200665441966352425156629491495581893890134249180700056709512560022539063195272618693398411005545344771286394403505128405534672964592891094923282629329248820243268729913737854887895882525569570130156819528629531654299860956525199899683857552362962773715440879564347309550326869987527438963235761139355554191806589862678346925866374199132702012121983394680943919497743795934756509220734192127090810748668741053867066114235551394107586542117540543844527793225252124544402694413238632446222002980845041406194391795713687214795323107913485146425587093500478628521256809904585192526010876101396496095164677789118310195098459015480167292427296402237607074977816687975380843670209744596009572855680005560356639791810614138121578978751554452543905573109319662844539241858268855578464534728213998233846949338789212591428599043177767873200107948132152786233038043049239699833705056514498535114130719650550728081361135125820380239468068064014970642773207663664594303560553860983885844030521498002011289339249624903099266930070266494888535180517496636034425958462091813867037643579338147600152092344145920162391534804865449537197697127585779218757145608687879740189703541475965000781619906633031203231989130116713218543302496939573640815299459321851216484228827248588576779209396674824629975558227438887200795315932466930870348991196070035258164025935705611929843225120891102995698373520779682322878287409963276928306257863612747245587357092801362120826215888833021739301877973311344328519700386404983434995913574888340347556877349788921638910722257455801428992354165298449290446751053473732400079627705115740525597049324684258708206941955429601363690203096985061778808136902734581398875996401147930343136002780549144127489884299104283143163253455463824402609955850510644700645692806973434682916775295479532300367097807645412691256654410769849034389506841122898295509528572872922267915878754969108047883407443046637891832896301495901826259333367418634383629143309430511066535132138076653053842210308605045226995239841623182611723864378811989461803950928300991317100782003131467908877696558216379632798798649933298498629995241561269610733103139456184663524737647466542590218203627318902327292096881956635202589968000872568734009886176019236059269902018977854988463196659483725114371317193041725853914000070412602923895430067647861732292861022031837331495001952266909981149328661072972222732854192276852278719851127982491165387178872336729024395412943374068583162675997658897711046477513937526866971089828312974879081780915722749519596628839591745180031673817697062904370524144537724712307987074000804206868584566345086008658762408895231827237724582775323163371522686337386324943120286953761858552048613672705516183539088162504313019088128362733034043595854033257159480738318335979387908767978162199735049402413232557000096586911348809366843956835972968143527866685289457855610992402704170102224769104232727358884573015659675076944755560673003732654588621323026557818231312570695426616031816357333483692718318436486153469477781635466435270095701798411413638536572996973320345643725049987574176132808504986357047515153269936998854920043315484755549614186156461992894275150312951165956999808747386026391184681717951869109049590592475025153961759746386733542698756833854594972560822352059286062979817539131211705376763213803796945360157525143765200316743667687945190164546756160183928294208983419006580786681870446894926256119269846208849588701050323820543411838316790318501861333297434621553327638746037123495545245428941649805167860056631866872224391932014515355548464947079982933083088214158153517980087753293707525196167502140328686556165817354869859054010050751925978478344747965923038563528438450576721057991368944851456892110912742214258080687834040842228111830517249791057022304027598342119365041074025761864677689688949895254648372451666628547075195815850558847662375222631869391533320513925626381118196493046631100854142829453513228369943601059054766213972716659105533036882860242920923355854157548406259241281946700844512953190219782535205196138011734351489709396731901108579244096733772865575164141826541439915957455233187345902971589590296808092816983667575823520549344199793707094723711724403127880493059233700819548176660047136914594668636410393189624511695150626828947343366009745750690871899275109718203553314392461323113732529965266954424541748312127049458251892373309164138008654977200826222581697045690595429419213335914772124560421825423145071272918634939657737779117637975065129492597967234643571539609662928905899000259358403178688779690591979876097743543291759281608331199853298090618790661740771389041091252322102415100252367552999426832272997359886810307252772147312134441453830336604820262962582647354180911692889220909687114945285770829128859805108192765366615392781870209169135910033125656307092217107995779293153540040965574015174469570428653231635813176635189429927351235285392477342634944889799058250794394465859280079338454495820694788749428243035589890899500474630288874452792006887689341949274803573789113358252217490106833595494146546278336247442157437645054199699015410676253966384423549339221799114818703632542680225870196345591457478099963518270353609750692323760771748080055106284425842170217277525367551910204029713092918971606750174136914076382541976865944056900446531126425490362692523735841211937557160317526780282298385182923776309776162196847297619802498531287729719577798411978360303357342761718390828964059094329480818607714813884575656713400333678432294716322762909491095863536935941705278393438247364980821318454810087514483999557499754337733730902771730320787418682429855659036856803966299469349651006862633574828776056879334300445006586701793309702719922169824243845943327895080269150685053656874964282001440670257139916782459899415722891629435502559957869556585966622234705117489342971949431705056977149632020951278836507100683303799783432671565070848247321817920340328559054529454454094231085795012502695973268310855146153200160119259234356629082185601824605032654001361779208022484881051260925346483657955436028734721429914448144052584423585920913686489265170892253908362685390403976540319711642002386905857257354363713277278789236354229224228678791897625362042878955900672981187337144375423234897591744343976294879496515380943649485008094598268025782072872972366086645823592960447208587171995691533304087703663044406600749430143469351192208339713881484893776956827430474351786752418219979015881858439952692461840642329108219505475227886193267819556924753673489094104580097804927621759308224068525430588108915858061363327607612267162683879003174707170127221887961194442033464002829872752188584466519212555080049678963114996030616066381917883922873575723547928643458515272022560134053625724743338185699630562019236261775175334497628956222323306239870452875436628702691877977754728674501498318315283602472105857826511083998832188086011688060175204840077379873659808970616167237747535637440730257307989992640409005133843836681285485986046290994322603891736529538117550728037932913322300117610765705254364525821317569682423501305512719995747251975962797166613650259466232780114298988143591488000448364010098483519568922597424834415464169028292767549571875194535159356567680376964925784829888453761631517528819019584053650436072368496892769538286050752847797188447352083434426522630941957465812526415016154823956884081915290450783951333047961900802708898721821615706553531834187810549797176172281633788935344696922861451066988930355360843672371937285253570036647481983405131015276759178971499044327792077035891305433008891366827816606274178095933797648847817873280127373060495195013868097239763388702378808157439509192660623543338942333186304895800162850301286447611260867963149096483926634397532014728782375796972202538069119771205159592560164895247910511466303224084005732945460135262310366001436613290436175823016380288744141313212306177060900582005063000161711096558540786991490897731912920930713554005624288710185143550256021572722077605694594358937041693576319028686611712526277336580862845530404347958328181810803709458469898335835396789027420496301067058276856041188190903851333832700453412872488753377279819988777971194731318055300586451528575597769479020392129840879998158013416838223502147288235298086494623932718752522382838279555876190601031625442186105247316984177092829107623308168959005791558747766155339759515709983594745571946475258454569882076029138399541549210108129319754668395517811351528208904355871740891490402936655236393017203019127934170805518708583020417978966037029744592193322647961743184871044216442623176306159204085649326159379787148648117857724727325808320965650814941229866282429393851247988028092901921765941672961031881209484676988527298980376186461920473738675219505723470590925206087560515208657739675627405635928083646391545175722827348748171241207961773322675997871494501872719531276675111414873510952241625021628995207255459520288109430048578136222401589818877496784042132080575086841609346498150624764419861017028953161614933177921869050038395737756893530624505519303933965277123100107163994751077859294627154295270493718421297447029558059852902054848265117486462909390622179959679037287555409458859751474643288441862842049469832197356112277521988845748251422086859075186139278021805571209484388998781674370527152333647445008314920987037350800667262557924667191748136424721911158633924451586811927952894493106082248943044926934946141656384285873914124681197779385491652627423846008144376727930192850996245597529256910521102626578217498563339385977688089507780107903193743210628026150519166849441612712272906158707408132249655434460041904924776980833884670116444595559691329494957001014170874607905661771801627504299937253773737948375194442561037315767017413132498405779454579883137659674553405212557628122379915723507828446622666732127064252160826492736577856644560824406064900671562520418754796115823885644838166530151618536661415301062921579817754034746515328505814128413200412345819243064878970342150311747217776896912911121472118626417673129828979846661149154709661160168583114078441153015089040635381219151298139514326302035486803344730990037146923201648957301435941012813760943912173213988054748419255038033991752842524578930744604950157156080697999037604401583922935893373521967785233276561363595773834209921126706846818286186583646355681555219471518399066979036201598565579183635294151148861385708973109326888653429085357049007911030600180049802179826982390933750379988158760383098723167626880453073980077954362322209052856814672065728162800605886795359924524669344276417240421539973652766336263300344919920123618965323022138369493442320619220781697377283068233082475799786939990035211910073399287381016156163658744966041309483257928408900202248267473003180204922055208815120875499008022479295637697019649394979046815612595973070090397749897422007199191528668418614028667344029434697294073603900219165340900289251758992684229580937695559659449997974793532568544252800454483266688828381120520022125073725751801490490755107251058140862998668719163374156920829525482067297447681291583285506327876514274325886708226924671202385860402690590423751269472561065859901967556918869306789106104104253708614795257414423146157468320733160898514818609297888643059362648951091868165540268164385621635557294520872962251156292651504512616251942161168030140788913948366630948296769718671103771748982345934183678194487421423541777894099198788283560087602567220347354610779329213011741831380136033466358500896283237446187023314323650613952337126441574094631666834556931797686352512885188301965520167710996274696393924784784966160235920401024729048698585760887564744231987570077803394743544428503781099518349524228283857026587884214271341026838590524696025132130870313499490327758625138753989544942241265837592782842342966593546753948868850823653661490513588060871286904213228019500322069928866448976956668488362051343534114967261192635197448283026406562248882594667533107038715512179076428814824729374851155772748297088935062938330972435726940380670691129542542760738367278553141592110254825153113397357744604480635624113148728168262261624153675537574384902244535430437018066841748677518155903386166126651005437838284793046989782105391624856854703279632624574010268288376893757337837652176941789744762727143455870774188456694918121792852231022190620629000630313447045625150452842257068508795532622033654930078277496684139043907977032057647449621699962862520877507872001955007377339229987717827699331836885660160358349641834689485555763547403757999530510332706913422199176760847314051523948952074402834923585849840325437930338360518109567137351304183904971561395339553790266220082887174728307056082717647009486842470190227264424346980939285203400376304816190171219056493323634040179555953080738616989186453455215022470933135757555925864118914773478144077788515546021107841113168169282823146361264192671573855197325403649219299418490946535985166033872281312059506196976159980120858213484576636075584433929439892846386738969430860676789396744071571243768107939648920741441894357089699296881541278053144776990335140991783471952968485310716191213460980760687507275479388038039126626551047368861600647291905478421376974344770334137925618467620910513800976767993358726493814615451388939130834136124084977681016562589563266383438103417300513522961406829783259241074344732178443624072714276343362390890957773912905970685760926637838304348036742329878539503972152586122851875306979363422439350159901190550081552368746511669097359410920205742199575636608872381004648946614113803883068752531396699503688868936551978077002057463510396578476480769944726105100128461943062817399329481077876897035670665544097526469309616722493462378310807426817157445637191910255879724374491571918905758881441088761775982399411776055810974303905061912076885677384490117004111613743003439210129406183413366640169593322474474183949245790001006387625909350556911941201137293964086653850439811794763082124789738504501717759037713547355454566071523152472464419854503774612893572372411539738029282034621547118058965644618976378254199229496435838541111036146699154746441884397186171002732275960976806680888087711672368490400223156473966665611621191855004768536108474921323515706540717736527921327585375675326355790789072579587673774305464490064717977591861644979839219441734109276658134678805373864405808746536343928325114290184671562470064901558966395348957894991316513890752194723606876390258659131941749320034147188803610480662811255533862947921604354936807171436640678480539180599152560223591021187153198270682100556702849784335238772475404590595329195679306594456224392138298009407083447018298170704375625536215978525481644072992419991460584540746634756129283306758566146220190382998463266507103295934224762060518395706253073216816600492513279238394072381491715592051126508813760027379162566294711225460785981580294220608170718768285151281271133706147789029320289641157599551702782432122897037158412794255177689448847972602169168893650346375560146940479725894173885498227753119045154039558399793675992830792033435100509548620377494069647188426934983211417790189976240321631541863984304135922296993856476083115750177215387826457652790547117354478320289344952822468476774791870743465468559522712560373627373528637547620440617040519667567462910001014748283230066600992815101992641901101562098828693261268354225126957586916950697604059982372144991116250841003679128581229824978156346345722637315341854067548369108709589943586113528445564916289439698155145145727809896296143598523726236917218438724022720128691782107596963416582856867353263873435948703831485625699904860145489451838003886028013177075896370096713098573021760376185320452747612652577990046639843766520307899146314804417962635038804689953929454005829149848974034531576569913112690349619378195672710803710834481392721244196546435353424170566006825922886793818414190258036490846083972004730393685039012195358701078036590181386178559082085009465686580679803976277575784568105398520403535725214470635908527180499058368354345840842981523857855103958316031914938083087867872724452200428314758464938271556017037221105884643400102722338928626535697252947970276417880364589039746460106556181336494841784664102824605870283851464752182092551035863714940183567430074580703131131961538027456187579113655482925682476801175079382721898249767828800232493094324231566406367551314024645450755507615465309424801098588007236832631592962620095616689558760490443314060108265253887420635630621064668300611379876915828591436421226805548711556404144472221022574403840040487586990950637363741095085577962672958452753266887276099979561333695976422591390644655729373893839476211339982060889816120662735334974080849184791470776759932119346410704382978284411496725643727426218996614256559975406627059717915844225475064207209404175492244461724666434174521776215591102510526591830789632239935209418492813664281788745976456293278795218243957168358470891124457362563799354320549656113304718231296798915246581132311419294677605656857719214592181587307758674825763227456698298225333791729583929262438344318201305655436095506792739519656163455115158027934223643266985926596287496662995825266437749489029534563056513256937756012695367422164592137839137943893112163973925755575281012902469041488753389748767548777387119176853840428442348747673441401304483261681639914554824844255887007245712564694348243793820964314478727662111533957324321705940200489547719881522701755236080423228640535843004936627433803132476706601096889563062238525394568758158387636996811640824793300545421249439705162267867357030272749025543777813427532928610855488841231295547037966333699370801168988802346406476149303710582057499104368231303889311368138052145203888170930988447430248042041810511573306273876307591459918326203915533532854922341153309348307448591772876345995772264981778701483293112600487732789646948216309861617643159048265414036324198001779221723417586793433064095750028553475989826082169598261380707850894141312426408097660310791704215870410339291751278888936780812511020251073241381538375662215776894994516668341566981996888125283677679718083743688500474508149611394908262060364993378696943310544905580040850215713162741742849222722118761805201495522144125107987490401263885955157065916505084011258594602762799726496423211738574415838564848888525535327516436536728619615111363585167151607649789945201794376951860792631208651849008314349334549793438107609235342513639694232277541250444637725994248456895693307974760852652178760426790984384105637293302984679546698768618872308963910348685607876853696998662645688170520720417542231328312637029881403045040654657284818443436176373728327027862719494374634455086307447570547465974059839596322627456686686797127401018484395375501167617466556100804241336578629754601262323831811834514474352088984355755958867996263770174900872207083317175156957383876158825465770749030103362256689272225615897229111381099216816569017410898703494510934468657966244421369609374299730564315201495945650112362415001863444253788568223736054938547608096077483925935604154043284734427338291455975431934022431714051478886084425023004627393900258996577106689121140964933912637677306688736926605414639739844439156605640679416452880275818655812257883966623763574132405083657453251564468087068690904897935128315164635641118437276980340790700364014291032420088809390567225704169600455967143744290215851313233085760103733468528734571208494692072054019935484716933862727875573543543227972054411986671342558410522760009085925562698343729306671747429873433224463192322989158461876197044973669104248908153685033019602878051818968696636673708042277500846916303878183764100802832890918529804776422374637110462342335825628862008561692251596211761094219671245866479394871998004663011843072699605351265093300420389984961481582783690812796062790743219430316833142025776341941295106242648230205900698850254066235012812281162259947915547680884803081444471117957793652340402173862115918623800042759827749374971254988488283143559709584241533234899805318715018071938686311098743170111484463947185444301810023058068723422598462475850437483030983594316922255378147215428232419709240310370206194552580189675612391821314260073902953963810560118496358374018384478099644196145827332205449186325998096551440084442505031750399289650981741121180345497109926749214194307289350218215611193494883084840393467215516024034619219644622959705549568869449111698344754874727381325488592277434663215496752916496856078415706915408513805127374782353136900025232786860686805285639946273505651737116290689579601388364694267542436104699154513251263652351382926992285233249402406635965654193785969215463034951871132907437380135667865298005096034030996250831512926034941093056880744579922270699575950717939029309265715210099552491070692202550109788414482189933526094814068543766426411626600371045864359012523975432165495360742917795771714338440139845152585236838296205100961673839358038942346392611046721502040133127448615548209032156839334074075561935744023861246405377838908929582567541084833809413208876073176633247766566426493859733859890531419506033419352517259799239851347527640214292504337737744274321070784127280170813141593796834710020532519733621639281996920645738164858649175832379517366672469999869144464880597999342242290590453120194157825692032198975938397892681143286867203336767757220863347643625990085518516840767533697489323405172713822219730726008178830679327199823878919634327527042334403242112837927658799114373932319829752743570698138097796487860121833171385713277161392813623221601778500992704496388585243307013201830019231767662687966065521065236009007878072616341383748560861162995575365281766054574487148828196571595153336600992318494054080660703772414699338171634734270776173003789941602160660151147446832018202213994410609253118142658262217591659271264836568041824453211126492293744155199242363234873824580646822915509013232713199793973068526922434388363774208205138257761982208661854582644451001236816512434516515283911518431750313246701373225750528106131023206534352746030570309716782656835506785915621715355587420586438803661493162881890185406513569098924561291308913594162887076184260045249250648269300059799132016433425711208957623439987751319111442388459890221434212918009051015441926924277566113847482504087038361546044164853742478675952103059438410446027461145084637080234126368826788137907969313398722685999113478104738585713967888113251988218330252327823164675530111551065095744855526539080102555424641867187871226704132640531984321918394040521021928290354384983463510334970861985236036277468486436799757318827242272762532508392046625081734687268289024051578549366979622796633858178877298265367800636346349264430189973535957673642274619767940850094718235594892746084903584407335615051029359658921847068608068008372712393631205727189493948366810202835639777555959424862130713282654382143515548104634241408980295058220760278918105386023273520739255304990318142912383933098894409583399079889578858230108656246011658562003888843445478435978463667880603759658344322664830787029833141891481434375004760953414544822711799143670394534037230889335972935287578879911102987699065305650967073145034335109278608100507741738113090181818341453170959162712733326375641338363219851620679014452268158419917749214282658544599012349669751215281927434355742712540295545553276900684189198991907969569357983979043927904693522507724525600541727260079197530619700087919405167240044228570173588600679818683539495989637917327472377424131641244290581073443772955871331964553784016559798022661652607741460004246092296774767686155529147986006600632160160989811198947397321779909382169193417626490270599030117473458309798989159324429115474652528330840375066176154505296758100863928238354332734248283980253268104591064348823665346770319754066161228320482369044193710222338459895020639038467453479487160315677104834272705444903944301176701350534440812594498450476185666019335489257228147334161282772623896816047411507840208642267053347610091192423508825341083899244992868973716476766688847427660205788923858884019768313968118055891988861381630400121448344842303809576986834500101793313411166622659267450787753941690925850100933652887026576542270678540268422168627342118452960518546855199305319925481285123010103628263923251069459807632085179446237556620197589149195845973637535102694365377111945113745953485330021474374372032621750886411731977955406946583353631379851801907737068034686141028580820018004457312288922777747486893212763537888231483924443122683328594893636144081968927286677531742040066569029894275478600930251670465986250302086595537802957572481020715917021950454618475639214275928357643343253887196849474499333580090158355399633678399923055373771507920627390729108163271421240193173106997029115944935356143982225633539250281127304605058781119832912721135171538295578096432334509821221231762400189893097210981539768278798550624827984855528994842769207781183805131725677015893404797783164013705408526626204573802200081724012352369995619898937466563934253330610403588676815143816658749441695175773116203751387949047720389181122173803019533194352821294333381030012851089633773331451521819031126471645302790919820843776786133749683236559091223003994492588306126262499868911192589241054431903966963089283143697205480044965663794233642886707716517409349397174867054822036733913191216132071911308866940239361279162678296411787604855706116500455010768979390138338203718332456072183800947751655029846011957657443578911655783628416767481016262081915599556947037868862574973318499544888520816488498281216024398228209532260223627936535162685871176792421268087545487595950522950081438309374823745476491703362397107417206110731079140081762733440334102598889239701821071926944247313264609663607827434881983058651466479877653753677611793157385847708908207589897777057767383639086169437202271453958622155972580115868795245951547236964296855648054023306073694703105513460877335899487208452569303753997621526240747416854363846346355237777597585478651116934995948442966829797726080446336979961924583511992621327202267577073362913899639164304422990694485404852935114557634371882566207219271918718604089718136033612999921874381669223082051895924861567399342537228144919513074105830285988523153043385677622819158619812833195684585348556353513684163154866676296463927683398250563267878594399420223029391734398184583155980713144158791297054746083351916982216253960851387805703705141304486881295848841058037752619153399925520355242896888532905710738218213506999799063738848166556990358449236025370265631212567419030768621928394631955843515027366600060665843259018853479134145728920888517319020301591549329532975367513790036394085315066233755393391258394815211625179296869085082651962651208329423271033100228368667424459674946147514214611326060487475514001502039846043777734848180285281779739398955663846800032378864963136287405387714865841755176136175160897518498580266567988662998983856335698932023998971611959200420684095655692145932639024612368714985440240209079833318621257069942067993631774149730689378492767134593293309897784289312818044397007028574418805179114006467785236622882342848139975014947694378363954847700373643189887165274163959331418197296513477644924032674733468127976462938323289722976802819445159727582224383223524443987223609211720051696185299914741192232411739841908479946602395061947338530283709839982115258514006571789681549829676016214300220119362384528501755111100267105021620619938571974971160278483540892629953992553584057607471902009381073747044109170734048076677415716644367305760461021066372489529556257569351687533599791352409881280033070683190112036462037282309719723161812417818758212912711413255712290114888851574521649032576138941723381598512888598439272079637846835274907582015922857635640566719758108969266155137555515198005654341351644096670265457346468962397999483767476852936448133776937915963125599536316641134273409275948368426140901730153234549373388121013078001301246575575097500994828144878708823789285145797095399984647617353675983875217441479464052827538627954486360746904560040945026788827769820620121415531752683731709929011382998850671939577245855772639370416078142901981604351069690000918647050578513064541940291240450172532558622110088446785546730399490850686913957287666334651145539949554199613243616216026722553784200273518245890116881312216662536319936786372585413369336500241136234892124085676461867266576537794700444987954713526526411555796744970960135220509075641802859938488267473092305450282347029454532165550259340289496176628581844673311573134240197668195076278929712400177857043118691883835500028746991796063118690120446638129136186302540602720931091059408931075318640963265466903198951690298877636444755911327179089117047694051899893493907460609634523459394438893425024724035101245572818507005872796919905804686583036315481670889454258990019644315599141399111535837010996351155131473550103803621087523650346621503640270145163070036649117574120122740646725755595107977292805630321576998132718101180250513253642112251147580361849092275754232382286920312739294609193464037081719136189242751468802220573337635525333516490484757930848901207961975393265679778628092189676373754761298827845574839082011126321964887457691707119502819876135072379455260674987438577340585415912837197629435303466661970570746332185261405850083480744555632088481453878459019657204260024667503399275465563612743808179387188975239498543922917749649508155544651753725831702262943746204934391421641717915493224151851430008974509113695587625556259944327325531048259696943426392622011518915926230158960839084013290347773422004812631294001413809107088114408786312069303653937863932549376841230525602106255696417884204206062454526327763941344662837469223927485524803840186924304283282906801200455589704543633793665433122489740030415360897171549724103377803242889842703080284063131385850156067576222584729983147855508221036360230564439534079733688533141398492197753045956343232651463203692623091245907529892664985076431167596424582336383964104684430233053670977923235166760766822942349630489284079282629312128577253498975930413013853879174971326447109093056883728407151329002203349562100524747790961392625376597493547926127677407871640150658789496796893962254145770882273963239130327940118895752805134174432996981222711361944986297380098513691511349828788768438286785741474973309516369066515410332680002951972384894558402292235387806162335804034075844264327079835788811668830516080733154127424991738275639477992958669710687132758781085236179188592987129043326445220245917573983475439710421813371534678292566517163807983063230951388420415228354723342723080488390392471690689952878169554605526203537438129232524921386023807613910455326284451230938483692653842740135201319523611069358645718596733628049412959325811937673656628477547634286910000576624376784433222662333160412109580654215992319848240910997649471381220224014275337859339855594980091587787600949704501781404434912961275665926151356324188277733521661933106238355108808073052152023873112664318272990805586935719997487195939360270927931652694100140120220184790868237475549677902380225526234134171663451237580952313395591242770030303121680962462342592068301334587182203958948472217580641691344390120013325475990187853940601280692950130129051042752825531023494788589709140805525042186919725395645268486621768792443442969610314540833462963522634692467804700084047395375040190576842895722980071891525656274340505268965555652913023962703410826133483412228560556905342329946788794768648686788069650926042157076488176733233749966880746352721914982070017523595174898319936001642640609909826448465695146181328359538467537367244937095385510963798222029750088097471130390808827677724218473142913043082394268627008621016462907694695544510369951589529123647735131633818526211539241357124112796823900978205351195352674215255329031127393492599372655242303491211202241739190092791892167177588533734826249289610893681958018746726478168721975556949879775509170875830900335878666778573829429750261001090040180147929927129223226199907599065033589276117311608438598288180719886461381497096689380587404501959334044507678168432029896298047139496982891445918116611141893442857022638098526918764783770465186302963540619506644689942846700899789459361561306822498945678066432527967711482597885688877817175507822968893622995365936429267673002027921015502651053362586423392721792151705856550778616774731060284102805137776022613556333058094742148331828460871271334552603358679329018767031300456581591037430146194772865230687204029510553485062203800640664025104491408093503835188137587758392664646135727359810129755780376616409823944941481792219894223961569970530582333390808026485545413546872121500181981442515990319194935916199039432970083955662201124161700834585476528772675483841163715798106251815540444266608194447791148786489654631846644509134103676931005395726277072126676016904604413857209919122060552886145960382255248601303715983781790581942523842283401102338466482992105745729111623149403803811798904966025914626382614939638492489556599657644502698263644950911658386154094016832732816339212799637783280299600893650524463815678084135015498765390430702843406625057149117514370883538279633300112266391947474739599430814468860773284133617523287546066854643639059501095754983025135328421718587448728857418669841081010558545751139604577532123917234538652656934864358298037120765369814223883685118447151671989926936014229464225981617571624552866970868795679826363243979672125054633795184205856612668585326045784279910426657893628404000958787236081898409825754268567757842081937701760745948896704270983264892461806673798167504360436884693403571601290306948297682753895264011937396151779226948626925332721550754457181502217051888709948620785144189158151368647756682783184170179760555460536930050595049232261756483008986993108765718378338652237582475140054171647358043901883808453940126238671570799593373061368263384004550268808254148263208970126977938628825798413811054429290477242381865059545668369127514023352462788225336481218219984246406846980161544721382686086867866171658512058373331392301771776526839801618118363397400003800062544138209113967281303293427391741867932324275847211936822236857951776637906409051099276500849455783749185748176552861686827719400223406804807970244534959684729537211876591056592041112472949978236517053949298976775499752608855540420707168165636019061187106909853318801073235366026642768652017279530092986771463850737791562975577978170032826612226048227931329283143108422047819105854197874999911563035752829704918145253574688809993825788464117892917000416399811815724506649922619481477618894345420298377322080368772095819043099632131614752806906005272612271222226692372243223171146328027490577278686090798309634520477120054527189452735970657524243733589144345072002119002522439895096383454911702275597297924242008119729650504946588080681994360612211943028788109902794404840570977457354372064407826464883008220749348422801569300465169195218504278498012774722519030060698796563893538337896489022889664473724050566077377359180583983991988166136106395593393674883790997481982016394858220951992868133593099006563520949596123762102244368091992771312834815899302113779810750075760697096965393775942822538727739346913479322257907583607460935542939081146552656627430853448160159433412216031208278182071723969651570554687972861600489882041106773769300095423666250646357717088044420919354632670468433832621867574352306077253041907466046277643280964672249596375422504153350716341156213899303914967764414833144218582414444985808758157179281373924360656756510147196149874792477669570928983315403064508938242070536432840831130648339546736349078437722233309347082751836958164521162662804740672949624279281096895290627657184002578357770022726422933845451818040311240303945972142065088734130840255863471004184323619695575075680320895408946015829144708220229266420066986379793675973451930378061730987978099959581880989661309570805820583706743744746197753438897658770972357020020723879194270523463240315673405554086592924668720731927582888264663765546906766328587040541226679551111963392029296093920195339527361631695519573776515415967227008919797289907708776654244834613974107470393993759041603631690969635375408931549064103200878600918718659395846685165263083843981658497660518260059348669912940954981902981700480563836909645179353069085568267628141711559994784295556823870272973234941744614692158726810072712626641687570973688047290492999507956764001606589755666401415506313983404229315741935811739651278516440496651802637039329783475256999933009981394799003179229115531101895804410409029986073122920394992246990368993591811268978375326631409512836993594614792986257733621196464211819998143376355810260283439741424460157244024327373094937871409955250443715693240651197130433816979982828997665168778001868294769998056576109836701978354484487567876443296801117613350491065564002219324981528967285476072453773890804240610053657861746991195411099628290316114915393186562317891980871774836013943060214596654818140875691930707803677356297257328002315107339921894327475877043797503344735841384976948512665748495062443719754733146672795617590997091867373282202641557443244178708389606658089871939698333016219954852683029545848565496217542517423719162796862191034562614633774371048515279465244959292620362959574926869761432498666951310322100294027269856298184801739131681192222849691221846658596444181916642175604922218542242594297049218733813441921254248338675193467984512855578516534547459521655571132181282799746466847329749183856182576825407588350062376462290681660456286852403520099940242293804263282763831803770251831607759982619333333387328132110375064741452175730880205793885977734544274683659621330397621487944375241401452691132725054882962692160950081256636227673628717282531122419739015830568503443989002946045790262940397441566074553665526432285204569739680076455825523443455386022721163640726049665851009157262403002260269645216562514529006895105071399826996432388582294841346030750887076009328375545073569922300777794215697322645851619882951115757885771705577503123595865251354944725279614745100131185135024496082525641669907802826079027877674360083444392631194714145162518321235438664811852066825867768121154784827310372524014252490939019627430347770951280850213798311335360524556833626892946239687258999256892972100950952300818118900355396049860028357213994740440180396744540655223493711915650254562557792174384577197182518365135460138114091594144636242023144331241642783041598789692797222527450441203838546335427298496391431324283485577273786031602833266119703643505371517170099777577873823423200459838171389436699881870453302242991053628907526548714186819159503094426761602064988947769613924779960873651479626251650961196167414680213018394208688845454477712773671004041199528438343459136335135450888663369040385039577820333387104971888223826121207664189486979807140372595133971950315538552707026747731300024453849660828815851931919862497909818057667805909573363024601999681525501984401149808192314246133407126083241068560047355785478512654665769015817290073408227581399040115322607587864567275879228111109061355474112381015612121705201834720128637267427959365223081376253405819852579566185773520696977216763913186547881829956652229633825117061725479678293290308597622164660978623279859427030928411073630132397733232789075805724400393899294878687588029360695858545342084000534250527112849927132029460866032397368133898885059757356035643097394922304221857164075687252040518311790052597593132866679025748457267987979387278383199637879731957507264947187357863154930869606451277082298266406433110260796007145215964115170172803230038659349003271120201819321510286656332408092629367576505400230517676170695686991389671795305591583209156773950125979619010077104397112847731706919587694612903934082451023672463238705586120360123655879276656056835238743181171239871668871164022009446738049682320765113674771946681076859776043364474803267580630303022459814566121163059513392139807568821525838302657880753970091024075658203137649037582250728348534988906073888994790999451971147936098720524928013396628340895249921656792820452186716016141166328193832941703696679768198815128160385225172042872366112926186005872536733425266782805790426943334629995589113302590329731691450555732518750649937783820055976055863439642631952926607563361202050078731193538683920276106746691413360809720231917687866747423809019224229822023147902657394177313414439893822805776391127869991438774287908913989751226227525816577904057466613228693162226818442935979422384234423216899916153632046936312273191888690113060865379885345201349667297770465767010750215380747163274059739806542862205851472795286663069417607612717023805422668611395360756836767029403316926759207048202824928037255855158125607805401256935422092641830985354783407020648140241530293118427202139116950011976973765653189282270812091176511968418543057604720532532276011414336033672580455789216915123039625013947183639893898302298359346128967977916357526099799983118579316904073625120400002229144091571206395327563543629765735938519799197593453381550877071101884140736130976152698128159440147099745324714956851450319466775706825954579237781366089160728287405742263614897769663811258450897076152964569856554350746575584937005412604245802180786198765760432217846856954012892024329116871180601871574160381528938858192210696721011620737759839455124127214420200694015148125521012176786492487972115201781112196437298052483675245366385172721010994981383508010817732242484073529020671450483384207543688493534752790097613530519512602658634245956627005677855730666361683832042579283333324982091072990117568947224212910331246805333395118651120121961673174532949913197115986096849452757625081135506103897075317412691028149965707586514602371636808447999562647817009450610604114628935031456391352921841424588988047401783966125842404953651906778055053489545462454027235024107470870298034105709680362519872131977663196105069395125194253058302646380578861427875280364957221134458494154578281034539332949852855374489529402420234735389911661659466287910151054779445528377588044160843723575475382136042144261157003410188869069156046410808157758981013072003251551991710461138675716827218549098560377542230370037419191842807166037861067468148712710283649773370948976207474757878703114312854239645994087708722504926347609490871468703632930295373966585574471686358294468331467094115084271494701743569748253520005316549277635780605121570361078013156111928492776739574283265630579239202825820780649307897901123691393568155119968648666002148519584830038977976381280302762524014439096520188476191283594951302525211976895751566414869488443746509493891610639958697365398268675540480402784502880114057907913758233930392602224339004917323697143830488520164862457094455496182235065101625350830098017825937748961444256338932052786643927192863191307757702825364487421887336175840585271999667071889670452744214220832211627093324800124923073718930746611338127900516704287336751274215785857232248357360190306800947839720558177677590208270417507428084225127465062644493282089871875261133133660460155105784102419801191477375904290625872955281652276153599317678627909286225196585984031591013007088131683562611510040512799499628653001445091381386201789087367944275178668236397080197222467015228247407408071879116480783975196270785962771170213767573503282547644036390972459637601497473476102208233892424439675936909996774226496090953719345115622455463400883135072291070713146490640475689952228339973543425254715871006402459409544081578627593658923056469285070430399680678778080689253055159039108788865905546150288741922645423747383426462208313227301138553701101032743701916693565030894490323336267677868958159051275238646536539502786242989192627611821270942024971387715652062536850048452463150663393943671811461541032655364642452856307740623174725675681309613279718770538061728425273124288361951647722659944421844691052219424213891987052697606134073232215425179100791723129680339749398214080820318962108133026810042658852317574537054361452186145459185700573374948051968513677807575428507700067789941890993365806945999854974162784135034908779073238990638762508403302961097990318216413761532973467972631670494224670486956254049695939457575346295891171281752281394250632540448345300325464255645874237883160193853907922019975446083111597584413138847671105124246490860259927515559774647123426294363209887497254434638486069834299393164660479106218873682859322055083431861904286058439761211424516306473341070057772306036547019043562499335366713267505995446107079844464776072620954601126841321253046509366742088895015434605838582438226303834327287588792921720741582631184227932951078349520189800399736065060325938445037892423646040961929122661227815883625106798889794537867247076369669244814715665194049390988227936941218822659535437132382815357859567956082518200363082617424595104239313763714698578654511799211110859151509336925702592876073129582219686136000940218612006194540400004066153132607751548479551298360137949573430275112462418159404402601967422781966173305456364238324037573760902870452239451127477581757162003010744275788065819671795176163077908118118154442136837293318297464684849309799304930568782598234511905858387506426364224374830292362418832095796572988895498034741764539076325648503549188280253547699902360574221702122926188613072906702630744346842154674143722155076051563272058144574260574576811266354038524479937348326422696869544061695952013876416230531978589737076063009583479476146675052106781311323153418581145804763271100683621427363499518640840900033686260118980297734665500961822930543653283780965599842026094894600222106550164779838309711331359132176689745241262502399059839901714026090109258346767418463222843335689028085983391805346409168393688688430428327369971897389362155737577018301231476247302357996269355319051391973386491998946984459935362889185740518724831189813676138132383617721545674159526468744625752201538205879112793750050298058084379970317380598741447853007407083544891290542768491228748449503453735959270260120666708904391266323866631899298153246897066579921339306020036057591569620477236772528464220062019718129716411121173233223471616350653786762269011446937552051162900676298187755345489583759797504145515994279693790795033942731823567542882925148554907679092946051923794971547713889508592025096763789386558892434098268138981167310842820265759878889867517743278040121646773492652156152532364906894152518031804496269464339683154581794207965470713660072089630941062392738650208972192574545765690252263495805227147052406741422517135233811700345243597853813389201844107461805183025299267619617756128869924944125984916799526931504932438727766672929614376491090471453389793784916899978249007808611825812364148689653605388120357184720004202240002954082253306801215404755627351625321799462604998153964988702627996770067723352527156833750350317798161731621204521798012940847536134979611016686862997076427871983740612455244667605337353276817952870357926806141225700066590053728067093113830354308852068495619051209535989665776950786038928699079053008346374642971616892466106928073596267885379811262267054472343591323008369486397095188475206336064607463131712515258876396538603917974802057251297575688457231203317697097498434012147350510055935099734635494330216371159461557328657890998963549812393282113586334055614685039818790756455215773475743744064059536762765108438440908136448474204605149207751882757012169371307994894423857918567470917698865030518703597564258116195867779711001227000670821791825563135714070455298767758913859986616203154267777446918029467194160911879427228029414154368943533707619131480026256432532817023041600457655544511471870524207324099281224399588455252643582287798349978684979052956605673507574044580940154578565816113383685043797704546178716865521945394076838012223613962861562045781795015133656954242180691822331326601112792602794847716432583364849599112231980215978022550178579894058766284331210099425079945146979576606382484018558616393985558442783497196401680256010763232481009146880488029511985074355648329807356484417173870688110512057280630633926384062843115770600379157437244293842182972293723919256850311376638629435783346552515098032681647925881908469566675034864644844912631302099223762186518970483259862793223134191170410131973460333671639906004430810359122913317478920633242457996135916111751734963064981511910895047653402793618070346871718891692302990342400017447101505279460264349250656496597835658188180805542201693044236642033055371568408564488794175439770587915362637847515245725666996169507765392547942609550274263004586212901529753691039110543386049400348729887062482959843180048091036918857177948416095063441037331033311104838217717756416081225782793174655500953985607177079618092813846701607064196064512450435864504840173063903993074648203831991314200019250555075384392649219429787804967534417645155824251201512726295111360940771933226005123299567744725574711773702831755542396670542356662660856084768420858810796514375629464939002213520831837670777468609749478882900961386866180780423653615381969998241562577257306706982621307648466966961897806256293844602933963004023432118864703893207621902594699917647939417295702746454312424180525197966786261062843871900441855502732106042161098259304397749666661043137962795086049316857003781982862968033477634526124910444029946956440027838667080553493341388172078834852266272775393613923436263206723290886803228649062943305698108792354529009777272207268131775629152921417823974063682395980183423679758655619749409422552131561674869230849414435748362241382382141171952560469995876269424335009182899561857798244183401000308631063643208922274258162456571846574244416518490486324275354065912943511165851922364503085506608892630459918997708744932797326090124367973934568757184986195858315225523880927588503321009521853333646236915611726857051817392521959054257071249547485789847589800839212503626801059221136837880326935734962625180910704004272687324941426984000268959943523135301137627344393927217661144106110049883979942366679339397986980954491395787416820547615733240606888564630756594448724395683364572833709704166568763028791318316631663360191013302011139979513379715398092574131208013414494099852413531039204819317838857696155071317234854540096315889560122270676300428162379641910716829655430282358461582992053303484300968488336905228045687206989924371082362233338995796870723285361142020380516906697359326332893702695858369404540166827193065404401801141901755917601468581400139870906875736336319440284679648967054425976713923459754829976405541576132505718288748155072783156001887336571689534851963311303998303148617375720577693409014274408499660325260524867742416471622332468475016861387146530380275789502853506888334387760750556671714391074337536981876870882178548471143664491130104514256407356582919379917410705463921853827363640495995608630191475935006557865871017823748646987263967636937825200050174561933412156076826548369903439397649558897709899388339199932021977261074630593306134928641089925806155440870938713446811832032461959324043625910341631576373090190628310055275419641399326410889226739011300686321116603974953457711642512005424828528854568281929901711588551193587299294052657889029066593821596008315824349400303149956490679181393546478588127227132064771582177646462942096895143711321225276735412047170080331960113135157162883054328014830419096656587788099449700747022314631971252742350740366624752792120131087319180731382745354492210445631104162662248216870095982854797578425920791534891044781603408343843723022060930794151023978747978059192338413543071690868892018879541536310103941128383637366357881011675093720063145705513045411418526215062833209201583732527152598571763819467148647670636176112946852777088248408764362331111385442882348640530259852421386926132042963461539357296240844964545040055371225168600367857390315657204118060446373411403660666701566416851057051989228265708138220142195783696877488930526159029074021014352083162379399164318086946413873519293812950605960494849929923602716822504687294660181088592537284222683739020409779523105496849996991669127709382359636358803001882461245415545788864153556130149384874524936552837328961997656725496298078115087545503466294232703258427239178282403136068886571782310310228878061939890876920533681395749468980424957426951869073720008632689072043036584106797982655944797732192613910736238480964816569501626829517922347092708288560994544821620926254424612841041632436770161021717243782550124402801675816037714434104101592933208009107316116552013569183970869434083401673029862060686719647184654984519630773905749951217030731778983458159454095956633495426942928883194684293747228648916171375397895671167834848383391489541797845956604022893881568739537618534030065254348695298179899390593948017057347324176036012427538734445816363846919661263882239930804344009138864382075594826587290705820888411182703409788831146360508159207019427926362311092174855109353923013230483010191702363325300164952152336095052780890485367055151026927394871418698952263630030206842354099963311398715134863092739889335028411929352850372280832490382189294920737346201219904872365394798903467923028108560277941725897001734518693149421577273644618251290696013251936044946322024019019664951630523545291202574332421252954769184068185849703301240838894011371792761579396723945813031153744443146130582552505500644061354720278333772825491273479221216077217202003644905704022765125126542113739327662945100785588577408632160955235686742934445537052621515846792823379054890104537166852727781068776399386797154893712803054770837439012016531789758711708341952488730795567780362053686759905392514143166786352524113366894795772868224142125917433693503368481038940446106005594317483289817611561206923589225500792336891407968532502108018952269347205010387024685592307718009168505661109806437522861867934032273995836172552022796998206922124791240044902018539844462928674871603794485629727334985433890696309335387274734194017943997410049342532317771517609904976248000927712479794353896541511508351279898206338694843695081591696712116538705664083844946611322105161363315352559041465014387816381371571020304267997199635740195228136954423358541100767483334830882229723169532769674691427510555335882433025706741711865084188156978941089895040640039670347927473622109250369553422254611690972747407545207664987079977454939113650467171992030329508252994981696852946065366055699237216297903320859452689520304492617928530515516407701782665477133746347659500454195083335561937707626902752410040988669009563195547605048479402241766007079532433787815944363095122848256769532446446260166161018408473091344725391860839052987200338724068516584617806036258511863796748844609051721232184338839950557858200036188706366459690621271054524506208119000516081669711349719862467950315077829490154429045455070744824749187998707067669583624724234404602791786635124113816950476812838907613269421456697143358472273499589932232932222705950221073048980526421906694547948505096970765931985742626607946564503855794254010578723737290238389659554108635859743125517236437645514623268769724455258251288387495482421966391359766977091681002194946804349231299730164147369223894610439242912028126952967812002303081569955897543239804206873936030804752028116738114787705976363805824782458772436566104254924106875011364707824395718082024779644866338008045577921295790922956357922064599492425467560109326261302968483501208119882686711197386204460758611589494897540922961764503957086816103019613685486006311207648585174889603383643462981590499135548781470672526869492957678141675569681865851720354228718950382558448920074932388377340487679471755261632055058843968052044988839162845182420224414968938962107662070710194600218794107528883159810255149452590938637047794213074394574719509451596183344464444743136575596970030955426605780446927404405111966502814563713202012644914518261233885153776858842301773777712042702386560174147181678667439818259616982075652125839354274657891888645239014788651072297610571479612129972391684122979456198121704190659684444685329293226490694012236032221668468128922798551124277765405527356355832978904315507074046171584105502809231167548091206243390025657300429186767739874664817242055730092605903682740607633875062923301015756311582093029028295847116452926590305482816478699154237830037127947066144778012083071522547921024239651704712826564323435113490539159788719457820206838361361295434373485755015841706808231925847042949080609227342736614904454797563236404797831512037722239423931081361072483808546094274059192080938995446217269105909642905367869811592418879304601601310677431085701221201751202241530770203273040764129249352696013490828404932617788271488183782317712518112051147980370661260470066875931432752118770242695058153288355156316096695176620211392033742219277534428984982385554208448066893017852661817306705634865761450654755123869710730325620139254598552596291311783398273269613388135225143943574359925230187604261454461458709511295608398476022342767399799752401392042933334173975064560829510270757707674944475292127442067855489496289768616619663859324182900251479036722783878079562446189651723161383377437046448663717630052711552811257630612513897529722627031881734144078288653740845641174985127615606598989880405257830042133434554831374984551208502346674363896384760606930238491318511619892917173234398988366440044912776472889446338531605108046776516423417666784236103099402212837902055637518017643535761212279836112504197312373886793133581523371178854758569637588290925476727508029374867396068675601047418242174827438030280397804837053970633943760574966812592694389498560482908567388427039253855741377665720553753721950145171886361542354636222094555941989778529434261719959768917540704250180764755392712073318870984330812781071846753744665430523742128885674198554559478683744975982678143250829044642679302183236635329104494190463585331838950149110384106085788429132266133651136256123443812328536359339830564475038483780970215453841116538038737406779238285597645343911185221259520009450533321387988251129993880221934291319144604200538244651733000806855000222034917191541513332136477851062034730400887161374396387286506134631329163675009317434923926204926365700341998979463620627543009752603205352140124137238991440963230314333748797544749040208490195475393971728634300248212678241569879445288911063502411889973893004302112211094853133760958979805867287785743948314234119211139103391773631911152758172579170313193240285482699564399542202328942762991272938411594027234661787410184085641056664150627085024496786166852916760267569990412932824663598470246611930904723537894081241836016088191882869222790306951972106135966035199023641558237696358098834842441142336079257458157551410220838315077108844806632606352462164379580541119242174920336841794592416020195575888643605183140910012460149868066328448901494379654613932957410186554384953084506182983543151182686432558130178854446111804905497276070061459176514518026582505562897135156550009521501274219036196074821668436037094125395562200688178239320706033914322692995129991729386407251420373837645329655938840174408663522834291187158760730937518797323401926517595034221086718792041201796030768973866045239271314945376051545738953821903061635378150395546276779360541598383674788907441791932985539554237254501914241921561082927842160968470340245308189180071091756164535876712900324158525052396837917917806559849708736501567775407525782301515531693432753900613108581503206148098487952324225398309439727438915826363369967643352161848280976664161156115268699792293286852062362316962813759290867288856011547496528161752459188240899622447872502702684187872332973525980918902155362850252132406832154880314159239800011054179206204701848340767977413652141896820382775802005189188750321433651443812935183824624692584791865053908577587963561542301404441309087957149436776630602221940526044715918315721749041678582266249999124135305662722978939565544224990040402201971076073112588197086794299555607129643905394051050778126540851395938342334569056178870837494034292971471552762081180081341274964171814098928689604200433938546728102718473241332975021288523104937018954594510702887229890065682288204732370217273618015883961957046753316404218679154480055264357114657214662393520344594021118587946316320682253169366037344112104024803264002328338756497097053851371549660803244140529492475294665519850746798306292489598588496615947226687850373208748861881486755568897528500439949862010126632858621730770955545824623925545124479869930879141228689736247681121236765823240335663569223714709146338017573536282083312461688292032058219419322821648151945283962272413129839800947975051894180522310788771442917600823935432554199689095639726300683613894083998437941039153381387360851761160906759926848401314853219263944888700289172257479351636881513630334348464009799385416469252797518449669230284700163915344878606212323410039142896177993205104095385944819866663634010717492541238773117115497596538835154097284789380058477178218492544256241187025442751023759518813567957144611559951579782955384297721432730212313107488985481859213438148473464738867574543708205606790780424654470300839640673093537805680148059137916594825799642618577349494470276271300776696984935871040458001199337882131447712669642614518125456798960308734582295798202483565079118434017361270566058715726820097114220253590938201461443129335852128391387116984140227340544587639743978629105084684142808011901898572621142475445750945037674058155093214055265410494058639957797299638223802410934041378438680058627790673772450169927115738637858413389529917257131424037206491120963178818054255740807674717551458124911681833630177800952612421884145571773349597153804062649470666810782104971998587930123512464549059280949891169839899110463584329216131716584375238875906047322083696638153652436303334552415785322217016084574251596942728877919065228869426211587973459667699459318831029759308101391878750225308509408475706947792545665893865857565507567191346840148960018332108581437549660253560453582482277001352937280596648174051205664483319186899910542792075758260690216352270391447604627990201887250864225381680045246140716583298276243549080673181810618380972416352104889780435421057513890378546468675456064441463340276553051590713154321105433856210725076340398768240335074218873972924753646155335020100629775836590845580186792951079486914227117246073996754309466062914694099893900634612587375766536479536631409430616403938223390958052274063602553458011377232850144477106065053075423195056604205715080459930914257600442107677261331281215765168161369107696224109652203345034207698062111004266048539596628133977912916771116874368827143231936348982713431669467398787327702369262945415198238396893087932952304785618298503532912760396437722671094954279414401511881355326703863977094481314648090567904876657022960794677786208497714140868704352397527505564507521139698441721590985579261500827952813814214016523484609910278514053366287121759442681853184147390754116144159703491001721750403443823856085406433271853860131190529839844279268164913303257189001882206285008584285748904023902773530934303284023542350104561864115047164960114806125378978340300994842986338506501236447956817069591389940417175517620170279836140359917841151912999302880560622634312429100070381843932959520770165263958126546971300199863050877730764955844515429398314381083094833171224332546213400388714518085209530569266651269916828139261967633233548618031686289827182241164152941700504483498408305634598951545625262777498537751204661117010771862092812508988232667475768414971974761783737392684993749536628593762974507291942282232462100673672247297095339206830668136283922756160918940233746269507955147077943015872714224919339925961543678997166021569293195178511328593080113614914790035321009416166378349637444057837582276993221041321596632560757739791097248680671768186610444986279959186333061197622495612664819065326314876944266239582684079961510091549212851682888692571698229281504338381218835614328497316191899603591546979020165890669784971599449459976234697332936052929091999563392652514106976120221832214361387190456597062988363962300807274940972389845492296385288937150685138655345648246150354685483799039504584727548635621017182581240285753977589144437688275346109855807505681148924737466095765385208547090395131426244388512391702734409038828638551856990462676013123135349832974781260929025258480250214062386327855182319944012831234389226292575594615114803407155945373242242246466429427683799806473842431026951071928554857236117689845519548943147306781229678424430340797670714382827794300605394988237469555911209705588352332416723236465267040236640048366292766228883753079682202239640522076829012521105619162987976096389559655915538667000001057191082677584515553329824780131734503517332051254439823706206140670872995499504782921768053133875569433139428899568469959516650356112047091740671943647530462878129782703872538801283270378811132681974976095048251929540579815298481430895883432627993917079469223626835773705495207012729659356043053194340969409116265670022845445347461866651626129084043991578212653725340350675465391995971006407177744301100462520957098770346826395482974670748875585871369974628472374021611421413990475907714717992433715882015725806024528992937991998973247972403050297900118118514859618295734912000172763603482487295512938460080677322665462830160938329402641075883213619475925733329724276438429497950836104548720628650553529512652957188880056690908418255286066687218161018244043747318352766639895703116298506249124023309069017274009300956739401056667765305313793009464894188123883088976539154031553569965097747441907268514362094229059955272531000984331945980753386004439982349828461779644836746493511232978304437575627942414448600781776320366521531040322272744156816855003384928771066803140106425667944996164517378786658277899085363178862999093088183632410167653843478043044705704884645612293142235088733763427722113490074238693350434184732554170041562452434440022251700637983529188426978485571420958748499038565373333204119014314174099644382987473994720617166340198606413899028089615637349056445911707622287788375681947995125666568177319958081570268027008781020753178564672361771186572930300349817804276690932503434181546028868305550917334305231723200747919987277650335491924498445417672702866255156417379862757081671795333941882969154275534543421842466470401341183751130377605810667570763589512611097073796940716379881927881446200685851887271198056861428068746695276312196683620735799035369857860775197164257072206942244242542369163181476691168120047118314684714261115614239817543904395787723422946625674944526301334896314267222862995384426589177272903738827833564702907132458970990198901688245614889330063599672873724739511748081334653647757908391954222624717402639042913022896729881935991895975291546398100765076371089025285205618653883734507206892855248645133672556332047031493211195088263229366534015473265401020994377725792944501978880447205230611225702484442200501152005489596736547701400759387850118687218057956901728869990074636363539325598678860696901409687274339981623892317517586418355342902584674705113452229633200492018357896483579872647356832521120942479690215941803762701290229440356522204875875978724979888861171596249467386134749552766510200893340418677933686261266504272177201615507165037250708364674006857849294935919212187862296253664930285520120717889626935554603977558836880577032496420565157251437723311899354073386286830242742735946601445366254109633176399119242715940795782522307749561440663684603864298162963200664375207885861535047176393201193311592994898548801739131406986508793173027985003563418293783630345234612045052418566224802789769903263182010803035484194443049651589226771645702530171371825377090892520778981904186559640579655850386870363604451219594275908816427367829796890278416252441220136574571274916823647767681795246487619761318152731883417422306126883080751036843600377637413698577865758588401433867576830926651058713096613638619202042689154144581608035777871594168745906141938744813791997202767103091723299597643718987616388513219601224120457118531541760054951383681655402419110425010980753940809048504379782969262444528419129792081356003819991286866090891913109273141859359569223741237828554204579794262683139005209388337563997674422934298606241802037025685866725337438171190806050140761803414539436559983504320540310935768004536715897432622092760732603441931611511684137408976096996670454869187654711900115619443940629217078421564670702120006940883413111312444645440898449433798657164666747411612413906240548249603566017890574260351033173239718339016980302252719120194114568361484272009021980087945637014489719698101121008474748567988716247461145035257585264362167833079532082331540882239480665970308027885611230069897754864321758684964188269175916162426845161848787117202313720374377928038648119209802397125035310605316699974681339037281328309443014192205846330873229291720820610535074129536206629133347014353950603394407469584615586505219280762977321920294703965728068344013230695909702078153449764365469518915263612988325482469100085362629597496439584986904631313395131534512962852252754399587657425478457362174524395199026337423045415338411239215605109319282271614769162681174421318170467241810243818721002237280128521144604206509346299550636428468625782333476413501435401059949576897119675234967540491654907097562943004841292481311529115401952308450658239949286174053889081757363353747578524236948819396361808205487979018402115537926552267125998228927066436184029203977529159778221978940980958308489989005169241958958204544801938149425207823516755469831655393814164033081440066906718610139242719463304057053082744385470787997189058160142642042564834472495984091826527471408769111334078257757439315511141969333091930451672192080319742047034278915959178076441192104233039099637200956163156504784875844780125899385987241173526562066095862873709563737099424704057503411100036711876107924741026296433676888649145146962977554756811567425992202329636149233116918686992347271530970375007846467546031065675994519221724204570195112327654157770900700807536241544045983110898188268009680124729097410420517291742202753709893556663551487502461057495616364907665962567241887181880663080548611318312157372994785086938838743997074242121090619311844747541335226006626089111769197559570769572347921565688430273224532809379540962776672637707543716310167762557767424153561038813871299987826652517793599141345323326584496084578411165709006105022834453546838603939049427736108321727152656348241017729144263025175825415065306807130544098611793237258726715182556536341024099339818365534027519341671197741926121781586544825368676798075940224448254196729623435364116630202741292702212976031289300162407906360740057267806425071715784968869601271087039479338632757750677697482328667775138991237071627329619467762563365771817431503523006027960736183614039337310682780009660210038401017134440493989979185484116797758198550345462163842793009856309713700961784197056110252518864533758014145736519642730802181989475670436481273235303725270755563627863890212685716376046282276664983898986251307050092920085234827715994858452714560305283363669470303740972331702082687409328178547633583168659853500565418405209375708662136471596776910349558934199906403160844916672970434247877938021018561318206157824195749010736763364341251646977509884496077975768319337621508891064475974127199509537670019775668428507738590163915708288657711835091504998243826529275152562490951395182720036319605672891120098920705430310177423343821390373372969860544765478520606238820754149668918230178717533595833777541588848898006115904211813916795889323113795651216110301678061305979223227897765458989308950654629106520540159248394731158153912129206214856996791803828556008512496213550328741232168481859745122033503005799604086806990115699497982793414305216863141908105920574013136924097746373323218974750480717660547298479756468420548850834993917820479897184037345668742555849234017516052094963637388024883742901734830831976143417512957316230429696169917929030870757873489729184785282570899335448222343109877953341438452986854148057458683179018535626427481893960835541741222020474394770187934316070742706594515755355177525382507207435396066936419760272719828280044280093443695461241448525924497737733637470805162003134490785516194081446710919993405891893916029955621825670361049592144638265889336850292909029620842482390292291259670393047947339284055426630489863987649218370829928146651552248520930244058574044313998001126278040052799783291699094325924021375132639265823088157168445472251297883266701490436146505530091514196626299725764644189726204005828305138897419247042537935627384847802286905745140710757531440352345726805049156456754959571062575348907118891618847953915608836281687975483440903211678139155108859145793391627418661854620914081470600171582189260207796286782588151570518907062118173404770159995045114860819933255884019500098654355348249364318828469699101906714074592974031104420893524537463807459452713003201731096066826017796900985915354160124892274968155443061886537567471419421912847568990036717974085656042116581066696107691621172999797075794943863734951667763271853838090382527172368449229979518114653324730294453037575135885929639044718939512518563692338040396619973344700695804245715708220348375022200099343725300118239131227314016668491114801457846642950502621586945546220589009143056416934389030461168963394870309359575687160666058320664674033327163340897588801639185130510762683413814175552863377140508059506838761253677181238256458439606421086806863623225433567036886893960327964264546091047910965869451475361070703233328003283981190936137671352132864899708467536187880586798896870544679841612245836866266557792880756431323927402214847099138468287318907578333436729437019978082273720716862964837025357802776411640076571476556215526182955685823029840580915714339575785126430548017885613666800734027807105497646356448717274870109993395559664994394195581252296154610264606362384594827384285131343953208464545523724471662623567474433960191908698130982955936886276917385547169475310854994013026036572043453556878601800941617647835641165163278645752198723893504328868793909795036031513363952620509258897360238523817916418553761105485762035548855109132298709986698084013386840051502917746087845783989707858988652652407509775944540362336790131041950460367809922880069216425103708170915562510765920690764994382993553245459924617355267483398027764162560984946341051710362928376489124330892748686177762074408323299495740577103706480796182385533973134501955790553503847665570281549937991755909660186957331608549579639045591296787224726735399012515541813538832548021768513200045831509976965511451652876811998216490456915134613655674558709909901336638936770915084146105887277847625933946670212603523395902618638731809205042044843038147293725958657956341035500654996323482031213999521244679795709953147778601326610602380530237654623962319980658180493361437405886188766974489059472667579026352946337117193374968752854149775810198715009284187139742219487479026808028338688914416668751644336568567377902361963154491786702220981647124176251216081119477767517023033636725903765830479327906013667185222147067796408865994018803248854775540142717837914242079848151560734169369254648334703174362783194530592621257917124646932607789294292066001295402956365195639839552682915946200525187632999191344690040657397645585718889522953934991337667479159102689180438507397813888984888879328766894629743897535236120167895695836243213283476754372440270670956757804255525523645860521688472539887027244107394592134986921163013117112010825307978819091672010326948237667967564968731459551468415512383939112315624605667576835087409317026351468680314619765863861415204903116655807432852559841835479642803771224567731578428719166548633187188583521830626454466956258855299166911864195947675932655955094210780986412947619937540938667120108205124352563115848969064752859402717954114005676697068129972591223909314825741554288714853520459079176615806821012415541120692118832148194511253705950296442467398295141323990671675671355186089917326202907933085327370732572748650599201485056464190697289143854893552035317637492267050368879484110065999662122794447331487997564495293177111884496219875906617971403526118713098750400052516342939975273496126087112284665777288079506937231162236907507299936600526507371870435620056861292000730674710366175336467854191581938919407404921885216536151327308406501920028931939411166273226559985945372251747081829347960234022264071959870408344149520258871470833064043827952469125622167724960150092442559326635990193678292593297538850180709344711848375640032714303342577177098806892599750202510503422747855517815507180044742292420143872911350314616479779990571755410657121691224500960422394452838202385267893343039940433810550917533309394400765925812008056574627586779823014418663692249672157467571545219010958898872131510628229855442780637653502891301731437259663866691214215969917890887691498034061538344219018174183068635996417574691170702262237071341549493496858876440612760835675557132877723956477531706220438023953034245719225230609661068555571962172761392900220609920467324838255418250110386481924283719123464996720437828692578299517482781629400659106866588245252381019317038699951048279180653811179835603373483789835306101332267340982054437230882133139801767894372819312745799651259567594838751389756591560526132808245079134111617833111498326749120139022643677294483268779689531952085378430223176301197699109707377543472014166524795952521166003160367695885946059287193175540933609877060968327168577617532493270767393494120772876281633500098244058044642656616719574095025071380579491517860105789711931867184952043083059527335128371427539380487776363875270616141256244076717588409312259230194883441811072796241822347841933199852901223196632485988376384029107712397304906643905184285871070678844137777435164228403463116410085362172246292806669236954366043821074503455344482322233220239938025954218105872979872599260316019922099913737881955833352440320832308951623538412986118137800000468989656700846445630799591893516445449794881385487637328093665960170142711182755018691305142929510995199211775373239227825107707047392459801215895949430249562294675551785088368661866038725375409280482138489903109149494202595573985221117622401604711757056563227167754669399144342045554760175506679208151629453324251107874963862989275361905928899239119987900891522942904328913799564762569285462600432517262947856109440942318637775930070659717717843876301754486494577883502292977390241145717677263424449890775146466712034338476057632192202889396057743870791629215127909479871706211635313882250598182365524412008226962114793571787535059688266575058321439281376345025615371267203950349555994956553354403372948341475225299319175620455469406529582434786542886722057881869649662070820104918128323831439018030250114698119731555503279768021719125160913808682185093368551284049928752301372813667824342384717398790818953097961263932910439843471933415214680923087851526000001707025171015579931442935212293510526909921985338045326366818157495418486557980402636130136374421481216863583634409770750913894463765206220203736495005318591988833661950207437520357030446865123163063261326378372822564845436609248421857334979200600299305730345413903295059253776621232197497983191008819619304168074934212248695328202617775183030508597312767816456226159814878871828712725284548575698513561348535929565053926453980574410884383761727506535338853554204376252319993730049517481729509612614201509357193997695550386116419442495013531640058232164819350417960217818525467992741256772791562027048484075037524269475931813621185974707324477287336912403911734326216498745075485854151125843255469800107591436070579472184961782725112638422665770459160326296409904787225959413684846366912909490482164775378166715574470421295603687800048574481208211902861924803334857150997491056598020481625313139643262286481355593418733572905046445551723155753055960689961549794047031451801850627057897317462333517898023119326366504788744347828494440023182352700949069843086911627905589332290729172002442424786121714697355755643456754838100552661905872398723952858872589073439010373403971169340519143472042340692156079298876497328060209205780996604695601605290945324691077391530936110126545698046321545305308514919927757803946850154215720305650596049497269754399172487688227295437421735343945371193820070963890613553468793003877672639826952326558024931441603368364885324615295539229645111714707163525745859918756434737535181158817497853757714043044183277517214298175983526679807865354743585056226581987586602948373351971793544093420721650108514595968479436962091598248390278855498027274412810147429856417619241768614645670667290035935844482443418384951841779788263368132032856047557170641020148026787283446291114831840470565727655486678459783491015582917077024530419904177471129695404415405742053243506333389879338050536438394951890017549395008784227492861226472043421447501440453727841226113826737840824278962604194979132565510829750198875572324949140848184107653739546145641723540045559559823400493371308988416090930815581448169582605658174886478644530520074317844322240889655758055273276985676576511581418110286918770264771120489484782795711666128546540111600266519902068777105564176470281295569053679341070622279920341903697595932185945083694848814574024443187518501246882581952017234735639335287476503788157752727718531614522911023963461089334030758226369139568114973810037225287477491145745893568011738091923239655294794224330207331249116997101840347867046079241340261042531037817986319527770116740018529598987292308721827515891016573826155817905670290375566440909509224637347192154218364136814151981761434439278596696632364684492759864655469068988947815129602915695946774241756001741090498783713387673848253755113024815741225156722817485753040797783890217954229990329732267914698997195121312710630494531439724399391931331082845936788936826342591024485933869455864031312369518573512656790650016754134458223982114646726955061508527314089241898042534824376484139907017025170318801036397932318850770045397210392251244429999836935503650625868272176997292471328497880437050651793682441619309298900009848764345142346394667332769706942175777591740945763722702875713681893773840582695961107294959325715875456512288601549117580723580999738253941076310940580948203939366792967004664469619778473261488473596783696953760672543887439372833489849996602896653089346230988547193870376155469541606131898707003627751302123452993749746139067586696243838432716178260933865635631884979661490596677946827662555467420200587512870578619545399534389431116744961609352417153912333552054435184055902078986790258010392715515718831809201515732817189268762766032430923599675718648173002862186658016355663507026927319384171214615407119164928422768419196024833472968050681481619980357048227211578657361727864033239007558725875604193490865724953084131395228080593243119833817587425418029925465521668523795560920123644950754814297107982838103783602429321972025280656794162615346270256803992425788378583453828703095948051933512402817424875158425599625967388192109756281601061895906538228893433851929102061582150151183606051818789080264434207033183500273972368900569693532693164013695404595460288609295117825632401010585906677195988048806694735582667907296765583250253860562966478079752152109104054736622338922055194267749931482247213531873775584320676429028449496024075748316824430552727258503792617543523943375800434077201550115851145341604017952092492213810510459415582663839570276275014365530968019985375825064488970261354645628990071336041540866291025897785890141107219247315624221088370898200898618154052707825045233044239229616517503148415196192830020962397823492565722107980166053348583602830495511018030205604972445801273518096626827233199992203194344112550147493721901945050225447974263103322896384190376236840886124175007962179486795614863177817488057637805002578008749653569365952803909596854425079014632826241799599649167047849047258277058115846054724892200717516354199128639774016150253946491137028808919505171938322307172985420537300000858057936552581377237496494308458011884591751129607091532876919340087555950949562797707340038752259370647205039581423647914334079155659177404852435214563516152030432286852759820876317718633961048649052748934166576448028511136043014903211025019834481275143641976525014366606612842209921724967190868519147825352735383177515947936966421542202820369038679323945536901487103328445752879998789186903224936959976925716741862155262522602073966681154413480341121203452814348866995812069178454614368018931342906435302810220352691659794685648995572456159419138156131909304743115617740452815345085944814825455516506648114049304421431962515251140214631744823685323425182494321242951788748118463887462880068721095273906160925155473438490971622226523187500604073103376854625689365551658135042521748056443480447281392011315435341702630521410775491016303307053542792611509018916511919862044894036801746477584781396700816665616701762006104866367807369995904736147204963715385460461174705730688119022758823481307556068598449156236309207806031303809871224429240923032151178351487658057128055480013297602954495020842292411991134349360493202017975749032073072959386663816258036730757846800930615196117246848068169162271489176610037260708101143348855946688284576336678560370741440850776499973929674452842513041340078038595290494131345967296095469829525397975910453666651594649544840180712135925346862927640429543225967037294344704443706034976956153839792752436024951533656996142079942492534109430260608940450678236228291436845714198352632243490193327295019109514703082395895560345957010820793828778446568512517479332699229061809745251441575202505620671652531084660433133733263126251476160091026019468690206242260518723526957291750827134610706107544214011372395396830215611582864712135399079276830517123388120409424245310181161546817173797713417297354104286116194755119586920518610797368707226858232121544789952820718243657215571350894074063961498311901417048429863857757308578348593352237407754466107401540985489953563111575423521440700453823239577087470706206361681379473620840455596297000122026405667952502712535778549310901032777062139928110117533064507858737406525109144074539182346995396584446317114315801582556618247746852656409999545827781039586304074348464106720004189548504738907778708616960745472869895886090152457827184662004438163372825749358670380673950331158863501405506953069194979183790555869206882021918738380944676679281101787405716472135914274063468148664063680418330694491133577650434779394651840671757678462466820161731834452042739955558288068696770280833277821576949731500569342121174387935586566969998348896661268220806402533534489332057091230810451896300415432904110362109943443911523039046476839759413451249243404437790976189799536606614879656069085557858828247070655983267342768094141269022391466563340706590608030909722251039537226272212497230720652202501121855970091572576449313472910458791984159206381885928056706468477690514670586282534105050092188561488848340114767184994161589921558322160411853860841101270449641600366858884479751363157350206901989424513364749807985638545229234329197889882342247649462286764492878015467574540143408369308257909868590659677426740012226205407930980495214801251222566051006866126758711764261647138125216941633329488027961895250408391103638433194625686873634483410181821863418452546050061969549509632805941421606886383775623175596117250927896127257401687124021176637219768905888858120795854314170064362102448829259343651095124364164576418158278398425538309750671530795469386838217016566487424640124442638371220024506161782544236190555083858147894912315564938509223677080304781366170511999472224175743776747868963765154115820764740029203256158366875535714014335223255692144270892747430990388463446128994431610424066430284357009705349584100480947014306093544705506790687548660085096603801929308865405157361163191187937388165670533914720440193182962461596743371707406382205329597366056673525968175515969870046717812602744819030084501740695236742394780272477183914196544003753184975536517848582840869132363553156101168665362772492306576142379038162402235596294606012897979937488364195947385620057233376697496846841026741413823485386082655623352461327981213718306507524513365567646663495223399730261582047974985268072602055857861208786587509008077995335202436820194973171545065394526275822872334890698677890501987219882835368339935989019858808858760823037502671137280544447592436535183290150772303176021222773119599949766190716256343357012337423123885912480382324293163593266359639600021391251180767557333078914727558739695108061755262894005108895019411060623252021943103166791946570775911807592358200127054274196546266726637889568484713747144132286373935675770974008992751172785477944291841611202953378438560984053797094967170928990430761752850296874706301231937630207261469863222954824418199796792332441973824610042471151995040717065158711919981067890162433931050870504056605568204090714503102209001861860534797289951930892872359898770346143313408931076628747253535469994199797817437053320363411767832213543569087222563557788776075871738600151108187294477079895843117618636721918242454677545084792077302958443257409327674391198446857411507776463671181323464176427837076831797058581969749299062830847417077790890918751047602197101884336901254045792528953498461809230658849206473789413971988621228527258071428529044373497166400373748851637090014607923688840388264644002797435651268974696364652921914737952614389062102136136099429813541441284972924830713045282800865419755311529741014739218541270613010305686818356783326709879686688205132482636080367029844262107786741266126818666247382624177391129118482668430173012016668299859258162794622055174501824502494128028051848858430051979994269797837157134050981638421554851641409248288934224757927400205331084309186378181680560280790230663178439406853313857438775171774938525021732334033819956198572638073404489162220921895786426568243221790525567421573547266754632278769361955465639785953057028087951404354619396679099982686688559150270116157326497597597789285808661680216574156099315894941247739750266894933529739868024405849397787452554566570478104194613838273186146168361498450776163846904557433551706735393321928676261128823429321997050457149451905231790039960507418348544247573414672711900825654033464505998907466113340477505256031344426575387024954234371944733399454351347488210362734088263844387017170570988531748693958254535983776385682257595716199402652697815088228574045363069075559457048156105692611345355157219144247751827866766856511879371714790643348868268331137907450369317465971948218762579223831530730007013253023985250548531396902820078699473945119429124966170864931758057351904664343262980150055453380857528416562647304048755982861588055252800140098547204157161497006973027203074292459923439514079215997932396342100851443578430918781417085166215218557522050203958522801252959218866312498786977006472733914051383352586883775370110929223150896469143324807201934674591564603451500915784863698691383430333366497146439160904220837780344244234637609032344556765666583220600929922129361061441258782278887514433957579967543334329951729271053429178980237183419957992663272175164393212196655587261533509116721355445834920133988830384636673303094135482412879099089070447731071027415689073777501037806286637823609961939397214658863770720178848203220510151013910960386534723877540079572401691706486578164044414000059164674290611050198379153689137970039526674783661609154003017060894333665615147781506483378218954920979466786870564352038003620178401246911209003374918888987072628711858595165326994584770538347696855410390210608164018615816749323090053397596968034404938094907465591709214866662667520339357353593788825784353874170674136463668717056650629205509161327855184930242557581746940065911009381769270275744197700087023441511023390562836480843346071350724260655526932814511863932840553202473930677463689555039121705981539669616684289811860012943483061682522046101782085173907340540010061391339647191409284792918445816908886543354257532759163401909001804345501745544082588537738800712383808068424564221374242278825652232081402346024910976840195604051160229469991731278186422538205542061325238427476081933261548825433402536036781283604453555692625791951257759161288141450817371951479706284732463099078807887998124483056444508579575200562960325219986254066119714757218649449012809887729406909560836665545912366575461376024905874497971502587009953556125238229547408792039001371045313375671274184533012313541205266486092263175961472488448740484663221758873174993898809569044787335630864536390346302550049588261142758956602117279631561133910289908581116825658992501627258601317364211707964386532667873330416425862316785016675560765096593862208993692345717325765347881553415674085910836218037171100220030605681168351013521069043508091995966456456424161532669389324109998059411266519293495184035475462411361122451422459028631810099061207920660114104722516876922484262182517837443368437919587593439082027894347579292567343298535070051133099040322822894877127167871378710317034186286277894524531966764015626113146527498299087579141486683657773357818600685461490429199233220853146541514456999340957283475438449148583528839367154967743975820652946261911207776827404529493524132297584279406658044064471807655990027429013324059925443844927967464128775647107881142002509833266601204694839029629435069594962080950605879207355911862380925908674481343148392775827943161498009496155014533814135925574903851799406099664059752153745909705074685265638008920339565817824856577211321644488291080637228518659923320571982022100988547933463756927095130542436839732263355894937569309414886913650902321432709155729533769580040290409170838697699234978610597587635451365939432035450493414336720943103695278327455386105988896251153662550211286242641294293316435799453740304925568861484600366221305505139817406699386039336559385724359713039804982327402424189795049357587143915634535051015536961222339337231049248375132770341050716898526080615281680334462851358461990244717650426012558560475342600758117021058014072928526859602528174829838225066854945804809094012465608305877311177868696361431689865904587157657124286465823715630395950582690092717339721874378908924119543067364749467085197414791339871422143570534074156550502436800414540352334818630260155170885207783298298179027332730246872035340558489394617419985844172059229944995516085727182938904936751999547503689028248387996481876960167274040410816450007464321967229417621744528074284937151922573862530593677437932763623097683197508925947276784882964657843603613623513551737163714059859696145260485785861690942466564389092878397032461249160959592322451928067146892958548119576353263147487600698481698076399184261845333912358013820406762666343895071418600135842701817805063523453133789427181722521758247403482313872959140295595861913436841998308862348006036875473886099432672339590388056712122461995424159380010364873092300727765563734108886540670825822715849823084317668347800837384003994260246265442943380972888021844623461384793816730291716759086351395310822269281140393184038310006538264123087730253693989337122463311090719790226609684151464617697689479609490809700093043584586253893792140553975231379058052033837061534062699012055770089104410523348264822173687954743725349768730684997074002258851231162190122604228465518441614324862062654683339795087139646381393639029671618290789876805598237678496126085636421000408700151639655921007487286496099390435860720117875266709857488265094344273628895795132658032967130050896346749637791652548189060013971365422419152825169900469560229226418593856783855092410165109252294255468108964705025936304002189902649527503581788080985454122564671265419355416419155350033920104685491030669341579650529686776639599992945555532946786419760175480905459805452573236990860704581496808447250564795307850880838355705850475076469336352434670696284257051925498283653845333340353805963640920065750483119495539837232433456714583039818699573418505110490504589632868969108399212709820179532929706461372350215627357530975344596400337663232227459797051822647898437231775450460696485465291632547536038360377682011177363601608105956188663206208967112922341216193196036606385926632620185211683798586358829063144154692472314102521239390813228743193246998783182072266426271303788497071661179246603517165930955370649012399412425136153525311277466177212962646228853365086702831937833990185353342625975372367501541782137476602594714328061972600459126506093838607293675813421172504100250845149786318589181553850495911183280344326010834390005889872236240729148316569509216985463413212948886665230996848617548854606322400352129520581894748001237442242535196005589005577181414504538809169721502622329790843518241121916360399745900908159077884746459298298176552529857386647881980231647391770867653624818558393571104922442703285289163283861899665577388878730781837361527770831124818782582172739295981856770200408436050132254142784910114101401197315688581315269759030376096453774550268103980347240085658830134738165865812940501755101176470879623491331176351192722557567050220762312233984708829273390876740510831933716921034742142689795541200025316958824174447506276996312120505750000215990117626460148271186725097736009109569216770313858366779077705755220700447157471480410231886654117314986712221940357765771302014498934095576119101469519976089841031804021830168750939271418732244261835732938736129182469940654266376871913678382100235243810906717044172672075354252904935068586009298134910068362579458446902667148858627053798712733116035408443589081886912686520641604137209460405390475504694728145571234777286792843043828768528823228696671807343810755420559526179932611375054925378866139046714237893306822678477898666813716067010455351565460534317925658811807112349611649853638147604639913499810301312975851953829082272001011350145417409726362526196481596529777604387196629847890596906859192652341220292580451350859578387783844011747093991029172739172827984828679537188010849679400649292834504723997730929674755800315013241044013825368919184916176192456376165989832339603737025948528820696899854562575136573140561602801704336556321706949414243897598286292863896664543611079762970815016418734484514887111244877453093851107247697438870818944747085233503661181032329559136123205972128408444228206491676766009241829709897378838105553288326356696824341310515906019347798651621957913313518849954043251634359084335580852674116365895985607539765552576971949550662703910474493555186095603406464534506659532127644380821286578142987302211943249690723372889389406878277948305803269431991087545719690396368052849119843984223140558384892543988324947317255844932446721568087065755866648767425814091147163716785222853363277015828322410654593249992159331427530048296689446367925874744945465253940765611468375236093880695858309974024483306557833988644778900552947442327978122559297505704880928895783852397418174745897712907295058410703925959498299938960544644383749941056882386895017123242524400922176738483619317359324931418540740214050758620198742484815826324232489185023141618252199787946454023597083522494424961017020324038283226089324986650944750021034715340896010058524925548962421030556365925633256516424843993908501883798493026641371787768231394047933796681546946144325818430922489116278599308837854589850675899100126251018365323505017968817042495762974835821081735225311046923667854516895503358021805616450646699774945760981055953699521987106579274970085104168688827979512019647674609248826763819200902475869921322969356071145438330705272557687528440892891301186905537846457440138494209831641900059427563228113352081079673572553945311471436504850130814868074747686286478919281477132653641382639444155438578263372886851593467882652232924443284904228670801816752627633215818409819459177782134326107611896611854052148473228578223901475970714844485074246064391573825270019243881454827558912278677735309495627179263130795610416883459932200891012719776882509719363376713621170439299697554266777031255723390997549299350894510059016252946030473205122496639529336788032323035014908335490617262448083103311127534902376793140675441021649186068094532348351350719288082219115365086846566607542527458900577531786757102075269299282359177768326267150913986272958022413471457060113715361348217135769761906599017144384763043312631164390067670514773233895026481238641158635013190800378586133348724483605237463779469262768105849022041668968276746849586465151426178357711326079890951026081258423241828566871519061445155875856195581541344716486304389509962872031867106342384670710380025320622062633962842011499436008962626453483174384767610718338213314144552196782556371180792069956643486016578262131761971955726640615622539800417428712158291613725490425495918465637459446726520918970542627420341516102817562635487393258352985476617582710743444847425417077600620479937804670218194302098312570045975225023166878430075153595320553177813612813010009622049077973141829776190214340686660839259239485853742623060813254461455714634915994339133970313187670254244885300550105892925413686943305075377084527343432645833484394465293903235590300397409149410846894539948086392438012313167205927071715080826408165600345631200669124797180244083954250636945801389514374222189261417237769382645715435306645168312130176389958723166945116333723296608069583838777476349989625507329564236401432299859255939112517353892399926038358158507770155900430595182456512427952045588701219324966303859304635366134128030067860798436828022989475920726484440538797994253017624078893077871823151684453433900339361681153457148160824444980681388435713344134338369485789271184953110630538403625052506252231832788486183695858934456899576122582771490838354071350464778556843628442460546507753098888297740366089762709123382544334146562315548260897687268795475388904072255992833266023311978814792786474640142636196211196910310210078319983889469333139493852911349940005946792034738120714563124000407185757157121962069817456033668783104943364154692844581233734797655643896785681916984442624150600135384605536445885128412856352645714059512317860576379969752102116884160261514777733053939862339926515652115525927775877061749001751495514448607576294816903016799699013110310797223543151326501639673319456006612255682158737231523627725728763984203461776832863561432149646030674458142195494474234188138084576950686985646228886588099813336580681319580083797178747215966491646423494551809574778895448648212552461065728665986002566403103825956213162541678466336992392422442823934473291682181498951244945686604980142350183250732640061121451593991173149060874212031120613904548761379088856491414631892172071201748255779289162997951832482681259100850083056334480503033094095824720865205115785562850400430275517816759710208321758939760853222548213249690322902414499361748611428382694576946356872287230458341447523595849812306887265323879185770248427219009630656321468992583561680946251006243825384335818448135105798318310330734661413127562525636807060893465671618605129557315839639239731896492363239013765946676785049422020581971214988784694159822053036049433095179046455453836662270906141532211788366541595955473008884948783550140770354177516590866327134201545792951336339286974585267634952757266055791080705046030662177935938766174806150023156707176991309942373562836905319615170232669395104613090967865249690066955222797077860047121059264091550307184289643212017768646788278516705885546606392609010164967309095682701009934538597831131072893699828567151838010603446075381978235985264850903238112656784109591127130162574127028332475524874946718324792296745058816315674365822927614306576909355587604242384565030083096764791214461118309337692282047126565562346344173231234450770656601177842781168943479606445161957376388131429374524387586255449711819048831110599731556416298606966875982761736074017206075576503607810031947621001027578347426011696681249213173848307625586645382968593095778418724998084450398570526593960346022051778667874337404373887250238814622741582262238075597013419137964899226744864718535491330460423133613233529830012017331620107870733119032904216632824146803969074444695723461992010589887655752441851271998286966825772322385464539382473592420421638449264092509064277759173686271454401213050229533636752834275647885188427467208167775321610469605925395854120537946465156432312443402514175532784909187813180229201089118890789169260353332491876232412136828307112676591394523829362621366174173913439903546801546216356015621616093496240010035523280588955154778194569485254442360640312358552438125788573781650377592516716736131478467449691061189492680740416195346046256334853393741215295834351647474388184302254524181166170594649050091552876634618222377270226231251933218713451538649009363670708037948100992956997969926748143832633340499168951904974312865499962387947182910988950181901833214575498127810530968036931147862456405956207061576079751337643965835189380800938266156289759064366144191150709968615409182981906115000865869847915472969945975416877169283337623451837799062854343626222487517126671535046482735916086201110338349256799212196708661762861810230067732234163809616974537277208295035038987552872384626133864342076538657843998494176489304452157496134231415509166295349183016589713899047405781635228507307093647070300731834455058895979131365751689380622902274853157100456356613427725706571048030494740738749358639120346185506044774616626252068653726868268568091974335159697531834619641464250126407205646463024060155518249852214822359369335486511549180167294206930599814913109062217904533217095456035879141087144045827224214040089727541279549995085613286991894965879042306282296019982857978609565735967667231988504603225509443985936901200055767253791455865893552488431386091415484195633882514389442668151272407839767838757840518085043787953964716503470126134738475764669060440140837266726904279673182087050932649376603828935279492834080896788933908435280476653572421955599685749732312419791619869188228340706598872160495635879345031889888542965956295553177303094774593161594339387520537602609997098207491370339748073801083671845826518305180332690549808363059646073668900644388664492946656574472819065126696098211586364652494922902646835752862139191854570320245106212442644901054222566959220611325520909558923697490269548298326924381874684854215035975791039471168077582472827306280981634164177473226698685075417590239504549527916450801405471703903353716812191886304961207934325369701604353343664323888519284897192966310207718442172908304429460825270198555942651940608448711167670052626407945552613592855208318752314621379384049644650960478237862373882135135673717150090489027409718164864690913746008208218683778541363564169102422201057354821198457417460215765978267422800006123226177029780423036785096660174730288240034205400778811205595110746873363800984567860300375175423258848472997398046658334885387286479079678327394780901996934629046927994078893959280892692472624001218397404140001423469485046759090207556623977177581175512290033757963154268836686742801956268071475975031133685998908804890264220170705231677448611331953706788620448613548701091130608069393807961939275221875793215888409799630862031903705016263478883384383043653866946944787338792962185373796737790440922265075725655768477062755584974683852050484342528771461872491891970825929762698678280813569646080808761365968702543693495730316273169270308975624571936203090626129485382042165402787773397264157402714795523600348254079460838882976729900541888004982522366784207400084787262619149297645416283233706543462828694698921292669436815764097759253875695618363040524534963749554965760837815483487664926443721353557631914065109402098308385574893154930489769296314812853283676543697132361030148161081304320817985650457202486371844936241868420137096332817333068370651992345769643105732104422259042656370835290731048744439076312723225544572096763234924683543368680439942605558027267964028434396505003607302150811628890285898478631067465805677640773874658072906585377638958731176277576493304711870281802341466393864167452097669975336853571110222814634411407261133860555781273448242487863066542309859855752713372051833222059993914279588827045910624974937349920108719896788881143237684703004204575736803544992843232906141813939018823252470109905221106137112256832205858459050347105800207984269472127956252467465836536098141177312344546330339534888896761091757032343327479751190296818428598147158530200498902642447321363024683828553792585336005962179980139413377191799910947886412472336765368676386820747458225928702147684244863411002956767881936704615890153036615898430967656082485762825541270055317855236320996008327075425088597210817349251586263987212289171396089423707328928304233741459144319295676263742827495844919894560557417383491486242625613008703452857635069556881013453956841739368565720530901386106543067555211997502691020777730157495010469741063087645094951077764564087091725327712619687015389490138617007793344129798647231872103390805495904234729225237366145661899945770073889533676182002017407978610761321517363211620559592176600893108271021949838362618742087769143015694498342283281255393846030039363610443090273944994822961218900591282419207930525413641852291259542694402482379234988296122005554197428327384247591070276745050977102948995446669835761394649806844917359806242582506225250116145981757330189412288463229736947058379224806364301692990156463198415624172603074275616967311996837836634190995753180891851681480674991406228559707475754260406190263995156357288988445202079902209726771125313803055138537640865827580562907215802660094902148472730723028963496760441138793153196285181938449669676324003255360551741973434614736606573666020307041301490031342333890488884172176309470514568043563621621282008463175595327488947279364789322738569179280897699351401603408647530990825584271145809003359437573932668917607758583140723803406576876346202470785607719511883231868697947848090743003422426278288636486833279175228281187208833169625288302869082712141009908609397645560936174648743366734896848311573011699402970783276242539580484316277290293087565799815970294479924832257689226475689139842532568541249803652271408644901220862437102028232698834248582040150292135503954188258026682219282311689350327874569844904235785265363880773691749168184313865534184223939367819493010640003238269304381590427378638927462397180014978630363381491537505104048693778092109974231748382978253445176809126156893994236240088305507505128609541259441707168400327000851975065553333843411252990886559610490468261694512919049311273246377993782268920723485848853005633819392173840460529298948425747385805567929757126483025022714124359545544172181305716904322015807543476367154769293166165545484917368779461296221074526815228089498157780078426906678532796239077172374794291527726685858270921298725391453055596219058780745279579355908812743736043228502131467015350459455471996891286569198326932184082257604796882382722269372592597028309131275215430116887306464565445062426774176401096306924149227244884833812214206713641651377386283425014494736533275593400624194578788100868767923692778874208363055638614708075862286184873814543614093361531338128564734023518510647381242997939215410523519284659835210191886166316776057931347739996757766563177433140937394259425078358945968888822680669712228884695100660972588097497040405575081527072644987222406593673206163147710211604841822297305620977145046899239319179458466169439809558333604308907053682187489231173757999227461410576718538468898429923369644103454392804176356950417030568106215845083100391334681188612244156105074792401236487217303126666584057689373552480755786895596947059936458717091337505652766766232278398567371720401422016350549089238363579718943969896259688136633534694880806793016972440663184363916676124330961654084037807678475068406034596097013468600999878711459753692189016408951579617132457390074739623123852886580414687815326469343171031303815516771536549065169181548000230327956885399165096155341113253452304852634338565644541160068204794069108326841869230478652104266851251599244159561663568414956970539086122243450247976163885823023759165712511891859414110474388859813312828466763639830976943674977919226778720188052986730474946427932231382435674375939546961735495191421228053280413323141224739485423204139180198156728234301722502242762812962919903460913786535949589066852029824343060547445163020687256278623919312020680268384699305348142082987570430304258513844327321483313195821116884587123484485431778917797852864346361656056993159903331099676868880034504949419040922070566029637937867322644444966708844383062671714062110922905429480647255961587517170577812563409472202467210969316041690583845765326591732197305196642917888066583186382633434490610279445605457974266544841249309038090494940220831406304571079026780896978915745101742385354197282661899015910232573851620097053513572598142601332030718135974936243971722197698579409242852788742604153933288480618367492280876622501703074631678882002757182833958971148863560617630497430713305719748755968694222028493709209204927704287235964965535489016095678773561232245074543493609830990198511030447821993120191180676374756022308598828170358275475161317671811371009707409536506897664907778604625161812973317190759554383604307570446918352214251385794409895525339005452225509197744306011949058991124871025644490266876960113881077248127137811959348638020262959043424642221467574274809611264649169389594053041119416351739129466304785501379281899209135254694330684095551706245063213556944452566692553715163667629659906623909553739984896337559475984752248117489623010575038223941872803357634895122583830960994057781491901499384992498912378366766246025731794665573598487348959296807586978032186842850323427978885478453600834695233591555265120248175075768335567758010907637816233267410046080150607682294388503714925713667986988686523580661216428949555054057980818122242147525094528278013677422658110266674420394745444527012984333681011545687739929182431965326835359828636457492781592282142554481604404331081352296975055015300581312783461790060946553309374839012003884146137853895202548016731502610968315502756350359858886860069596051514440217518031691234053539169624508891879237290196375047332135034000923730734533963882604527350031127611921113202448159503687147124802768653604726813412600973822252670167668734083131531498901796422593625281506672531769382654573394209480993013122611307162038692967535014281950120433618815440279953644560221626937200607963996117122358323650311349740902807400655161350992073214432011846989782632432186340069062625391356155705553002818014211750252686087413694768203606995059645897369094607764788082663268956433728713051940897821808959441594968808179182219360472871258304863234500695244156766807223499981173963258538775527474277872829642893969457427262372278705347219967024668012979612567078005468204823916273919490824667589406231632036752112725045989282958401020546050025205672459870892192971405219471699365282145101961987960609801849931358566180420453401502105754733845257789817525696335347046286229123889845703972319605240657028898272781099644094052863650125192770076213930264171021168102513499813544324333757961911462785099622607174193470341972350488873345174891853587548185508585235665313393834385897847315072522656490734249484229012901168629970241095848651454575680427895777549688543291226341830530066522029333320641460881771639730631144729949217869680594336066244546463517441935231727819663209616989740216217070549313165665885699452648650214002490933885010398985676394843596602644095914293414565417104129213377260066483273176917225530387780847858179721213587932375892111968653775724193780274071605141554986808509166477551845839576887352795182972952946457779341398321943708989345126402950869992567023124602588246829293378269200144852256936654341614898453883155963632634031441642667126110468315371604240428345998729503932599450276101908000250262737307617237923431835257190260264618377997992744210151141956939676740365482510636148477844065718229909641910678526786785887733672423270627147976002727703009065571202237675185761109740109078608096757085742218375032924785602397809903005327092460655133934913143637967967527631907288295449829133505228496199919434870892998369271081642499074330831434937542700939673359369450977280728847942985522772958318217691669330252861805778662560665114356242672436177702153982930838608300951573019235630377666228522806192005515014455995361759559243994562837745572245072083641552045063850691868316693268940753485124718728342528144314592929835445007559558378188193873594541491256327196275377713466947085766578391016538063686922243425353972750496413562495563321093453420923178565594746181642431943609884106073972306319947446503544075071705290770737687746521441870030649320900650284439429135867811588253222637783951560609067675634326250838094869119533438144484393173298836925159031946110231063140613952571397901631210206276798461389289815090889636956126799588065758955275596513480267635655229514178294099969171942522599496130898591747860891250436113477661064888878242363734807587899043327669416998616192860578449374769552392015605867046506302579356395082052765264680134436640584856573668585438713531938449340824158566046242985801060243448163219422900939637511095463228081591146867657472684692934468678936855552434280740349516291905562400519883145811478013805474527632175236050833897439404151758045094608920189207888372813670799990510989428617667745106663305147880394393916680219395822384558974208010961648940662583062323234937663857017934420373348571788935367763909088754509114081544902231740883635546089245797636648666970992557228652455525664829853205323221424289119661248648337728351887480331392354734437108131842561751257671533749579098996634737094796568193929280697705123197259210449460358562047160340150388772965501771717861381086086513455066019353270506122023692380265583728808842568027823473848707471670862516855775949662988906900881460424666879803296975988189252781318017125787232404561221108866716542541438701296951247802311133013241110632600621893140478487202143854689327940520686796892900596970049887390704157297534746164386777106678689161308240512633527440619390558841635907044415971231590429937328321850259737287424775731085584642828131137172972617521190510428211679413651487631397247709815709509735383901867573486782798791252218456312050333967676662618695687798619274347773040775866495837566654231233962929627102429264069977925410372588301034946512952847515854249840706243846271645884989139238636056841935372668621527037807299546568118057449966994773773609085511423540125284049397084744486160266177154494862257072153445386317161188854389924033241532469736739846241166106713156780820184280046262420877298800160513981167310813890137827355809831769932657309803087469609707646109766057700729820637170587765444744768544214087019191244273229099346672480347136100440746496599923480377415255977496895189046954400987181172717491756966952631297888429277226794431956948337172138884669302921213549429570837040357208966102214921391462370876355531444786451366263637755054248675639525735195563886096728069885094646617422358991944657317440410039528704041633637568505521087209322025626422201405874022567190148978807685158586061239113020713878413049907497242853059202632608175426206649720320203219081315127956067181637294657820570707183124525073255430274455550538008829501481597477270453868322120321270175505825509278867160434144659086001549167157343602835269608330393271881780366090728770300912538509209385351133540872687507043969568133200942298644976333139743689354014218160748117741268704216338134035832309661621845206452829180904695173444049422462451029332570408146211520120115480741704491374745839865075473892118080652432558450433934526339902735349690934037840537195435003406004310068000209732127958190776529978341633404412699309763503825627744758798405277482826092797948021599745915968212977990132895677361271903160901283034196557852737410578065371920559508675541510843752018679668012892545307618822840114215418188114262546346764705962185133931384983745278603444339539866914274387053369647199698990253751594461210396342960671400079171336534576044652540660554737980188076667705232352754410689409093927057206617627575967047112954288549164254066144099472040600142519148762187861315498705403666491598680663344607677133687922005592285925829657275491110713492916467620210469980528625221025695189918093871340381094444385635933456754946182194559597572530990389346534389195290741942244405238005673738888115188980865959578733686088050607196377136119803255273547491125439655009290897000101101264181872505577788409607307321382844244938013081184678478688638434081917519827974994191012666407294404021620725404687909931098576197251621196488842937554350736973417555477943594599330723950351036197507076224381371859452352317097318228649731522582468951576047853415565162728120232510389215560002496861542096779777570009627044863039859324873256243458868481837883579415310819653825691889007239701613359402176055816058601394629168342544984085845183807050625836289397755082301405078686797286204448274463714020300809098765842531403615620701432077512585546410301283750496970744438663215604505123055365846306015512332544260669288293645363166851520918838209802012022100710399642004398841094622461019150443674120895470308519225811413722269487045715788820640114189596397448857681165862902196001770462402327079617321130210867026606945701995597317469667650762219056488275801300752225915647779452666419934206585839691618508877833955912321748371488825667391065938360495340451180132253062289409497705099211075489666870820798880724645338065030039026265895721277925264884713064640818106684953476993617251679737418436382814875337155209125552964990646414639166662291375535651076824435152721369345995257526517540726753338954802238537136800477712996175342064496063463172123310552377591495297969132717924445597254370798559493779043260071509333529888631675303408527223017770023665443832714281314285190781552909331890095307316705398474904331195214140758295176398269593268694103850947339614774581093246720257849610750318232089361667830486326304427704996121326570944683589790420202809870593705329767118257014621285416471963635316066848902424412223803362351085487773076270501550681956361576561377899769622797750364270093733544560943139271800720423692100218062688250941881454621867400004789211639032443178451386938825419696580183111836431228401471415460560645209821543773346503961769102822366711665956901032391281763560362857544213992086555599289557895222258517933288670830816910752644743848325671655372732433128176920913197147404273821446149295305816444716166733857648939580787014099171472851181492739376421625450985274726674145810067859863141817023759183938276644663881937128383101927150609683795318849539239838697983526693483366029202169910905403580472227701200677822771574461839344068898323665310031373517230902256414730348703290108919290710844173693378269539475610500518267087192016700846421851321668264039157543763778107138531568920084995340916699004993399060953204109699193024885940419366390574093201489079544521588824596875764982615737925027694356780754707145579295195317676650479252385817078478776326594248335731943857788129120146996001977785866648471959339968108428543745308090390690818043350273908677620891761770051252501671335623057170346478249619048383398573288747203867353264688560116229406331157119042110882926369448466064164142711711735325643479187345049477598220339762663676367691048193463075900080733279483158481360368649342938990827660342957321470636931143134771627768461334260676066795494475102555910569720432211679026366742198588776448147537849210754836132603089306317732454436474957666652018203868039314235931053009090150100933582435295117841320792370519696599173605544861144412760771965389072863806778057902150423587172887353493755331483813392754288219325843567242450602883509192323602194056092915900134732180952578159610738126013766968175481396925754196112358652016899589644259414648908072538224467563272599152031480472992591528644743657496490359243552761866311354650080378624017382844409718446881304146861322106288191560514135948102636209466538407767164062483817194232894770509151756796795594996365454387711442104304537925619905329299688949564176815019490442725644140632243644075406483345791792798984001231765276969721630749923694365960397325316339584594256042835123413814779322469296512669793694963016759632054913120866649932757877443160878818429533794262241312216436477043504744311553867495630993850136387601673375714680959719216080126157824296181987062586960239868489271471072834908967556871714016137509170887994140990066534197832620018053333591734361929918119504422935139632430000687365831163430608731287948503387097625973797013097232973268563263549484550773150195669649391021829365602379529414802952653998928957089249889519946621192541690368968346691748944088685571260278239067587295516305677222092143344525381398470674170043856711634057866503800991387085360011543613593642945623179600795683834246415119715984148891314197858634413285563352484938656035891474609109210676392970548289783968236413532242964309225532024950381337709868856659074566270431679900503492763001486774213487356486875812646845734295696462534044170062786968392600080160683661529373918418068734661240210549595987252223098139199356253397570917930348331993278599774684121278504391000391209783364867988996442570833187247360255611618063665873067174167066833514745088115032914605834905483714825202963360434476890280091177327020341378740218934064605389057641434402634837864531562517283870868270757978735584935728018898571426309193770086218291255179779500844010194009191883203637034013060200758202096628008058215163189513050843283895781919598662846980282480092042184602426760088532492001329877695269790109889914101926430533005976032916797423482648324818003562243133080825638584538082226096856333683672818542879799514396120305232756689016970711458877185907934623498636876253959212865417351010259181275528805462186508054916310349826155310175441968901397017551699712964389916876310303670391146976192767942573452771914889117499394768705596384036591676148834866257198245264442183004881689868635520875312540482315900977238693253061878972417638016450059326622904844275667973763876320837477210770066697370322405923252169219214890063893528089750253285729865804377997341996306585966859840012052094756728512921844904141307877355345692656145430617316192496150828678734162070491989333309107944430376365338314754894879439577082309292591382367820167781587802883469221324257092278059104889289326692819386608752600988092942168815886918347542865239789412299169844653813979500116933681972122535086455573798312788397642953684826338987642479213292537623526347139061551489134369686167037976885133270400421966893985624595899239892282754182964358538647678213143571819231901119560166188957726643308015621705020835935779519844705358192053829909364188425382311853871340538882746027299191938561381655812616973828117664842074188775910606805067154370283412955652069976719831762048030542237999433304925814099855510064283241999106916778358006026839036806648970753308349325632189882028949650394078454521669096254151859256746460041150454331460308517322702294297746594042346524314128979630016642894981519615812157701009234755763470075163128625286981400090402089023014555901431884093384397042234261867006607353725239682585075455528184830431665357829584288791834098292065292584718794957865428215519632038803828399913188122128223920732937878775685126985901062171399658442463300551568579896200561740236602909884773448839413930513364356101110745115300908727888822862025078506671951431350928852370048631764114189488099226571698596924104266343810509408523074934734664518446372390018693677708616446514606655168238217837142108300950512802486655557490047634035483112033262641991783804420396389573562845331085497302605424849335911794084519299228107369412439966001630594465018977573991137324227391923633643524691073742775279500942740297726901317430855284725591615638275078708586172732513057588147711155200130020655657272682526942338915589129415735568667662230875977555273928456546079096094106017393428499883599571812829029480464455768120612686626078101596126331287796157975512102053721297884749537560818258627659547209737430923188238719016229206613976535288411071810047755915207393701316291268931197842848674534352544757951413174013725773370147862904408526884667708580605149027490402253979384253503965273893425008909719092035731508709211645151973919189012602859586763592577286987454855470865088757729289528270304937881914572519306891473280583647653474156493810556826579698811759466687404892128939438263411660962374683089455691292855025551143196845094034791450308369205228382419800294152860230203019205125529511732059662126889746791259642817710487261569680965722687189935483636590549527882236762456227071435825800831815362135628270145152080196852460861854959156846715971921830539281062236903392466726533265562445099822495725887898383535559008094269491605889466524694864667414559723745444079853821529388655057071662465642114901153145312246863950838063374174302684147584740948171827496407926041918657434667669561447896549880678603552869564319757942271730786246672733840765165076177603626833776112271789877174093169601762416520333140858735302887267258359160389960247094992115819764008267398303574067207841582068890519960171552093636697210659017327029031699738380467687999003815030686324891353309770528193641732923462890814057291761428116439085605775369279009738125979913673568562331366455550669643042526479261778055680681393617762128269929995819402517480090150522046779106994528966369674844064621435699220619929484656549838150851544251834823341374253451169722165467774340516077320451862437923712835489737581321159438262077491315268206736745833989420885641925981741481886581754675312675598136543196870004660479956044374540296469090603846700244865574749115157663554728051249482213720050773865284922616087672479660030956578612502057544681682504837155137684181574652459821667134749556418670671682858993229509693632912854926096098981773631232362125129015503258739285450496784167297041905984404614541805153957283671801587378240399538014301714540192893140719348534386527973954185199613259942251746659449560146366292649694960863893021696986550753660116679330377195763393878480541655602029540809171058493227699599460223904728527075636405186071013022717354955842611082925028604475760862947409523711182301128733717385051528862809011351882531793295942365965835618256946172509197880600353024683017084843875999059051401641557146541150937871640532622529331074056786515866511150406821797646789578685949431428551638957617695796063494953577790048971784031747776689421015258056097296690883860101281877488934464716905745878139226276201886596574068859018060353619769511533708210658071098809695458808570203608786699689181800667123142845826580944324646116653883234670476991799954644156274288103081333856514985934634576762334410729038235674198993293514877639988634193598352694884514800018325689233321753771292453168713980865582899860625373132257809519591927473062186216097265841709906181418343298827249960605337096244452490209102826383052201669577977499412735643849557783680638050373214011420215802146937748753921235223177106569108960417948267862095240544211232577513283303137357077958935076743096890080372684932868311477346267055765146697061645139290873274248369210472979539249047046090237486393985316676114983845647268177589507122437336462882222751680741834235988622962564643931456087016168303208997782309789678189690035578513031909346322401973024902473517698172943683902852531769958262814701105014609201782977017851251076293651486714575674601768539208975482737869875861109624172549627892589366513373633775608816762889633175066779423284996430965699106526516904888182963504003517424489921291840199815049808486904893057016146049778417431446033697142749370094883876611258059534345659413813965916365639776958309238244082169534180788981746929836052658707345752063151914375181678816668645164878743166290249097197567753384522665730275312099535408380890752591975627157371812598490164324509266818533162139279562208746506303994974693333215261947512924718431872971398698827799552636832568065297405569007555594081928747092533626437103042560520399251482320444215937007012102529377731264987342288638045426394710258401894683878106010918856145610279118048760442462039807070000712738404791702169243237455086319763968489999670070340907516976303677138086147998504504409652654386727677525909708878132108333600236359823174361880601658880637814764416646041867212915206372635611288358671710489086321790054068645826186249610041130900121382240329154676086406157016867770885184810446816535959844341949981640510163538618760494779544192669308808780007963056331759101594785499814319009157928693149566740372581323479558990948316219615182050581011190722239497437784733207553450556446553716475146550137859962794920488508636728597561891960116806959671910909226719459592685573748919114568801659932731387695148456895227939698479688852045189500287896573231990105286354235378370687964514569303796831651999667515444363421653898112970884420359569476561506654206422217272350141482052596136832734775620864255204519723424941221550987729615913131329605799691711912540862458657318942563558317718496371440310579082636260899162034179028746440129786723628640725758155236368466794225822809491023430837537533672496229300169943101350062024111592254730033628719865293962901141363413814808795349033759063421366359411816328685104906627858206303125900989112137970829027588252473449767689099736473372494755938486560987064690031740415960541762387680012501411811720030890262778875861959000474660696401179184301920336680959091895964312198864829985472219524098700549910122418791568550207734082551626888880745412771401157373380494193001862094980957405635455946357027070946684994002779553272298602909666180811531633828950814930650562918782827421445391802593947305088167701327688020667403041155552251585657944404543567268157668393080315168322082769817410942297829726555555358657594506813730842522314781317197356131201841077208787355780092042682066051590095942072014278866014006173220530672160045201308374727846451792983446272518015165150743062027977892006469419414447295778665753267182435725704784992168409716074856399186760760881591919621759545732793128533683815756646709640178583199206306328448233478681558796911712826797790628259187598861049191543987661358688912059240237114873956380810755026830290246362637867454390698169448131721043814915471336193247449555530932909844934424004568316546962348634936258708516231009421554455564719607026683615664825197399025368471870848606318657478781907430720138448268996499543855246078233971863715152312057640115897643250957369214074431288503557855155455369351416245003432321534376015918798286158606342656205058056575633124696334200170727633501406212605847607121228125425137707456536468542246498880500780239591828771162984405535506488487952184639920049936246989254985719790941856357455502878334300238198361584104276435964979036582515416706251632304553662114918234219074451586710547914661082344331677106026995963824792144108287765992391529291378448515111450685367381097062668716468964981591397701966526828414420580976378205832748341007446176882476974276658021591586300889137164925915696290087779887761917873927626001178258369745241021261035736385545827193184434044068803972004985459956793000142550665113458601639089308002077912813720743502061010535313646484107211851242682693823599241258287819446199061202737203152118424284747218179839784560517648169091565701787876259657350462345891157177860166397799186915335332799053720331375759235642066869020135473734786137256601912255084643320445130490617792880169805553812560499643949184313681394408612255719641895652220274141238429135460550038656608090857085924818320327968838577699447543012482825847364527512531087194381452434998660678946292530208074457871230334172665073380082512665630690359297742938336190239562377874221035666554966787801462059262450380780401185497978294579644144722452048448977298281371914821069441060492895053397019442893955194839856514538587776528560849851673786772430672141715257748751439320468884543894864369828698432143470420227869616537929519567857960119540400027978219292250768450191483806909425965868199407720795368814063828275736395652009468037372420237266963898193592779882553213009143843572893747428832074036854669879336554490904270527233957752158253065405560769462668670479812338350101915890959917946806616801737964983613815426904350650149488215540693058820492757769968783563042482852760388320121204679221379686709527290375532986049898344085374557523392786612167701853470325401464121104321567625087700202925484237837683133365181722627178016193359423490442751664188200641149005812042542429231422230392922446924290825473118469822409933430813448109163786677975308854128803581477271361811722695900544926721826400183041040195328727398331716046584709782265477546433299420633873809999413927861470751490880712784851515027326671774697628763187646204760646025044818221644518657001266073636667646286580694493697794653878636342626436026558980828409816580022150604346970558834648834774134870812977445385695913743912973239539406683927610379685176530281726669898601235162008323354192980798306543547418298041926313155012997526470486279369174426000692572550301181069953452097681726366595853589252099772976713307502166241653196910443734462329324184825362559185811390051511611051432524689008199428202311179699231553978795645526743504751678859948096340024547788060559392752885800488820405410553346706618567780802149612087102511588746828824366560849265929758956182044962890585982742551331725649525251613338979332986268014049881011889645427280117428612775730315899862660583519640664067369620784165224848184135196655072408545378498595908099037654787314648112039800888345256551867273636446092747985683524928902233373558026769291435612083806760644227003143440100025965736727713338042897778937818141549546295751618883404435539220050938671415209179351763607428909086693757368956189592074058344856262526993338070348180650574135534381972065637594097824680164475044356893116858890411000139600348885615518064192676506623867979424507248190279777964638808413687633901162970715289551995829417734469990197282519637420496258822449659600957401949052364635468104282336785756615306634991781669303723752373238853809271142124436170861009999683266907165909300139137434623349825360306314686064255940900008318851674182898730489955110096375499992773570191902134957708307674866345966298246185896075447240864521721232257423371867581933223229292827074832140664218812890739182855941056504368503677631725628088392748549595630448978969676023601711712229130435360623597445679292951209835613327794822114012818293878054028254443350988860707501596770028260678953824131300620795134377596374862052704473579652943134143116563760506316200298978807150418300633975444879099303962887647451414613195742858846312710869853011882070489831530607260128495723517494995190658403112713966614874787509523228838977695563853792940338274501700501701846120892181346022643217190563422440074266962668227031414074315416858652214426244088014923940400634015052845262667698517503218143792025715079428687661883593488535238793248330686289966716659512539996917245979470857623747336801537553999897517751102410572703891226015553172123441306120130679685224138925801549008190754739268395238775799618626780943980403275348455633646254283428382325547502574196164823072568499926402021549149159581415620811887625388618666176800145411383785864932589205520382859172332999728697476524291822113138795435787708559688177420540299852596380362801488741789924139839058884711839698094836203546394835495328101128802849419835732122284794362220281756024612472188406039133838913958032918901139243912204125273294367336444822459678359651503061585153295925297487190430280812972674389986856854825855619284327937810659885999556805798230983385740794097747638240423151533116930251279676163989698465929142932183860560534552989798209395579609623001478337294811207416373547907980647649810374432529417930807416574120281346654284418752925156781634754136461372550447452890967580577707708392349008778563035842985227759040303272654867262976543727638217820793564060664292252061347117089558318829780476883042964836776815037174981638949510663177023997256179883867056948481073471930874262515264350278952350269209211443119206282436237025772328150241795465595725619254396563493105953710587576196775346103378686682575160971110968572585938399996531447969024046248487180617704813312339963673118149406348280939065191202133493229365081835525899877524775930008180830623377683057451172388850959094080567935598956201541448324383423084468583796289680255097064900164399095272805580765880764608128339524166654381120402129856571587006787380354585203097529186007675965164741161547394978305750595976648506742250739706849887654107288404121384939511312882642679223352222411527545923911201232411936401106074878661895231312592575806457094516259873114533790374267033536264938519883028622198826306322258563211874608918099724696747038400720300283226441134375006085653184752782564110838782424434931559305069863707063949644856005186791668648781505368042242193189385476168780069180363560020680110775328102864867517527442189482235080521567611511794783310255507383279152196985659458090063657582056310023552404894221462339934691673444716127803317575986781661391378510367819802885566242896328183797603289146586971129251933142930973604456638181682548472328765196453883070948999297781555694007314428597264770644897734102654066944730428523927418244737277388451569568381660080767238177464333729998367453855933451751552341225137587052735711589834798130733301162697601940361865052613974683880391787984061079117747540516301852740658854963496583233018238313734261988681894102586686471067612323633189612435475584035566188478612731797420605495209504740120833933655140985952845788334878815632241284593294883895687258354306604099346978264871671865312428583915551211959755160242031829982258157748335419089987648625061674095078075089419379743847657016127038814571942436932753058686834455096585343089793587918012612200338290144206711506424244824652645788343639614047139625871686941438289766667812872333690760124228123741317377319248633722027489927601373729353347730794763457995731853925346838818162403223953945642341664769704252090116461698581049962377636403237228865363518936121322539704531831661050520074804256894366555677284130360275771045469587180116426587025758390589812929047478222960228807141775223377935902462538359885629542112108259110697797962864904833545005133314896355493820672552077004126065613139856731355078873249380556589703700866560082767799483227755407061958555040523989709193100805662290522730885890539223256518790307276420119008420701944513953913833489751471305917372440617477144593263076156715590099923650247155649886020714047786116828648320835335085074677394790861328692091807440015206362650056430557209199759318393694297352281830850944054863422361796044087935162313607739133267440239382165481575398681184061985498967958112268336538039728656357380296019318278585588082008999680627351198914726551063708003452923058475829268633772612610284573556213657568076966417675023890765971403309773188234101208336738113153534948478827429147251954709844855331661285301379679288365552035425866456475315911735996409723305488771779933868820323841773647964235773773634826044020047647616905437655343269159797861801595260572404446245755851536271605250886907436252233830555381077403146639258400361684292859602976307617912085708338719517612235395688227418118238268978259530786443555288217260609093036976271046902807567742662667195588915707745488837304915141978528027560157356585480392771244832913157549340146551665533925101647299883838026173137240474018619644111681747557058518145726929474108135428544667060633969289599979333905641968552666347884086484758143625977531066274187772057520368654980636843986038875447497469537573704661221684170199267200936740650666767525928392074947784924637640953531956301269601468004471884295884545561722279588772958430013996855527983123229933180316544770231841614713399868461760042021003842203562044372001467621670298143575259816722127169330663869155547860044327125313178603093015453602409642683471539834382571164759339669876216447604256682472036497888264217921920111263805147778950612773793004160420639317434921265495066366546844350838190175723677068116126050387731056831020717297574830911014685974635044121006520992572455845616844943163461985714312671456289453061871701811606914332150175338053552026613247769431173956190795766114906119972686256534478564681409550702720540885971916995475574616295618981976619932116951278907041397391667407304104399434641440020454945327697234569009364786903451874894629640540129084416578644063960934859436933869265214279375175188722180783065023793730739514762495119808885596473779221261274944479268804480094071006586601428333179552463431206676953435732022120416512105513327054213079914456306251670461184594342475878737027907302897408249913595241731353899326210074089843850722479933488903400987625288327244899607906153655531181408576778847361741120389092858981873995332740333239280641414355134511657470745373883400054964121448398627543168380807088788019076932630108428897349229691807876428284441798957494154810892560914827959668649311709778335130314116579859673592043645733035788376891241166456491800626509486187802554229821920891178194729082154547292743066574358082585679623354572308964659078240560820751335722284023335228881967967511854366285753043899658454599030206335154133988724637773869582673329191663123219827112887637110884660321994037834235325449680359683974306481535568862822880435549723636429251899842204102026899053311763904818018791148530080106888392033294251946878001204127256622011319822654036653378972031919458166171283964847360109048929495455916689230796197473541927785823635764505386251308269270971390051455466260045516777736176583556184019910148433099202761947893446176263131115266834643723001336956033473783589702629735605176742081658783061744229961727258437482077109838529587519567468380249401615365077278979868523189790072933649405577220494372585352658192576462001010971743555702211681894503877380638060956833713789998532143662491516208331361870970735363558606890720729559697805126182592390957941579111607402047734472820892795666662283484748585691787688098206958929973957870773222805791789482901026832079341766455197160553162624758194167595274878115038741603357919015888429494007434960036299769959479283146152235034011029199646738737378491086633286736001774015247608130261341720827862602314767881879524462861542210975668006699887636344024694500534879620392267520632592083551961616323407613656067087960175127413494196641019907058428350585100045159742519618039202359303182858652872704684648614238357250404447008831814728962886181916848814374451980826056337432119753942947252737271267951146949011355540931466108373956463607181335581888165924239137160028843004874912796263343468061343263900633057662882761335673361419976963885799480117324672629240382266655257819428432510648606856417273396891148212401962916183438587828553101126202365064959088584767192195540753955313517805329539381764903918485586897022971544790657124588949975235187799055899436677481773430213607163872196754521329516997792269610890940660138807282307415062202317202089291330660340965744315796866419325629349473682708999953464815105776081996770024078303023239724336436216061107552868657804250769781205573079993669594779893734805359525979533013337901451396716554024892547480221735818984482055555171577027881315452052987635461203974705723406416107678384540255063580996330468827646397181424840129084542808206489219515350209694500399478122825903764738459771148033029359624239569487345245465726921394326286786898317445336531314087321124910750469630749218371739321853363202658527555567860274923691456970324342977628093451442215917036054338211292893383594296605472068183577077392394107861212424573114882147233698921764345998092562666625109247027357573079678753129416819621429240305946685547106300090209452503305711477079924353144782421513544360818318145351932106352144587874208222779537776861235767304316663495054635968559972120443087979751880016910982641038001410600514952299956370906709688725585553050597060888240972035928095036194264907851444822131711958919642035670110064110337695550352697242613994535501656099922304628338941011112614607488182634769327935687734557691805654618694062877272950980042741537044149248931129412772248518896586837950933145672564249028812751562916710938803298325257029989480872016163691251690129586025359624253051299482788008482905031635243238330214889028831043438761144357489580875863348442614956162399101055829061577363611182869595976443596149201299492391446508142401182912338778277730773445258290652302368299134574330265839258603402340995421206006808083247947372738083086235885735092978087923833071985482068766004378508880888002034388650100221970076981534630222670607184026909580216665727967688942144432909076561092138027110249180954492149806814757578682959244824136277630830339848386045921739833148672376237288550329023871650809802137575752110876940654981308774957556943380008795910489778350145959253583104720069449726925949862614579613852917764198301383808759877872297436163763087461057089357732858516571667594038437541902228035869060686377080038229899596119392152226989142307508175635782440336350706443457907921373533511518383175767842988263753698946268220032585863731656744822636268228562841148753364811500029810800139594192811552114367479988903323274896981564653338581955554458263216941238856090652042046847490900130213920216565598715746016266056291530533085709094722837674860577393980011818434904701098721152447492337250753932041700753742821228926201517632353318721207829962365905995286120098995925354917213269727093797345221947562765914803329997699579540402091914418883156646657566594184845039832375022604068475570198794295240064098983794114057226823200071632796606609408835907216915490640283427083881634023360930198372471665582220206715635949110595946161903664536820912518326089127375343991570890590806909884574258878719888530341234571077150386007815704931395212607197188309010634148234641383987822125014565087754795870411365504573115171408595164325959880096223698782662411621461094219843457519730106671371702911720330304691744503221587862067609791852642807667416751376799978832154817876375595867459513473320278931176100393614997936437398380248758458648540539277833824154077366123158534665732997404378546122158338118117624051545360118318105141092767053863611442256769828161241530924514943664003415948117938615550028405909463276218411826227017710673566739809066736205706285560340795668207802974329875510863326491261905936838041149584950513828912180108998472954635770247469416532627480620512950714561751279492245944695487582359060327582390222531386157763128491280509325302411653270660144715053866267107460676067079026252561481613504708275676113448891426670824151193397458621806316038393768910057059010596472350536329955635834920551278485218954591345273531010068786856105287947647430843295744100271216736101130657999908006524280100031187358117320505732867736895975062395699066448245217316384365299975886990999846978116698459895488812055897456814943979209781005608526519280096481877193022434684474715293450382857782701741813800538523841771996132916603504159536707526883136832029344832699787579452962607286179866156297836670595047460980026288234837702881390725155140487385736829937141315962215400471521519076551419663622223780503581987757418358164167063072614468799132742941293764025842884423708356311366024362125100560526035859776996444308393216857867520764639537570699059825817198682965014187848782955426187564548274785713956250126767054950700739800672645249231597990444556307930528525701143897129638388348919834282794694751407478722538387310524534906046310788338554213621084204361719483397223544858949771226940254034888713149003383923622273068802163400737422808776441944174103771049122272159060707938947723481625394912466072450303280506345917512865098943992596883431142882673860354431451467782488904495010357672266867948277694978488593495911491836594220826865915187468409240539339144926847048264676880378768485927344243279697362070841471803916369670977679182694419804766471862915069405021967124401181941629415085782232994205985991296963827915733563251506378811519996244230948597658755290954515703038705303455630019085677806820514104697310472071604254719058474646834293010179121912336501183839667446669087680158002809794291327738920934231592469560665636249686116858159478298525421890305195563393199756097078448578260604541063934162432041001581875997659641924919251086244473775530074895414602215169233010690225318872998757749563940778651672155098316330767448027019577035701684770520657296546560198431892674775990983894373866568234256871142525939692808432900158526806144520725544679880335007489200500212783099976032262888058858158829608165611131053214906993223588561683491120685256283538089383862112562746581929078478322518521545851278360923750895726817610195405911400137474423758778874185103714355599989576598244860698487908610024887849963175964815279845494416891654876160905618423907233793878720767621639404833138873097338881468167939487015493764789856322726118935520198547578790405591456225018061094310727944046046198782290178506100288659535072033589454968369517913607966869798806726317096929013007457516095187320878559318858643848244330535793869281874627465449499950078520713988730226110695340682521984685253525979244589220388693946492921411817552851664593218848092392872261380148874511948864445032827353902843173755091154122491969497630643047752515405883215032630266987468859971496231178224472250928039849346507371245550272421950060710961501138466277956682652234385214873863349695165740620003674134697323307305343762714861209538958726781471726653337608491171297099651513574448002523629225778413640845923827621739252737414272823525398604226090732616164392749025508119713236841950574244176583856769885581099193855250607481584893348391853009193833848967138810896428737948077334128213074210494808830628722297722358473004518630150396904671877818577280703936902282567026673819001106509192977266556727349548919951436287226761150699833136255396754290943645814963333741491372248962724600492278212206123865275548791649401310887436944643650613888534659400894473178548306388221220786713422917825933591665796764027403058023192039784162013838014965486239244305528959109084389595761922767958166805501473870222681942947469525372313265318034421776399946276462357527897849571159597291222797116881155642211623571076277667818790768721811425169786742738492173117091570301863321281759269729353493896277272385830435196385761933732928181298457468436768306409566216993941071579590836352725190752975638727494451708385904120132644686809118822237689538852600865005770196995857084384986990142941960552512349462186640209750932132693029645901777688028604269707030964367370802449627873798890260208911240115816650066877622389344099535539784706936746639128279833866956187241307910281066700593075083622552918758712542733416485541036093244055121969560108304461413791182010532707642317050923851177650407113481467321495834916601597778844937459781472074752375140574758367254478615488256779964185396558446301921499660453957746432145327397057062578498074580381785675461892214399570859572658988162193504184557236173725750253833579004350425661333733281295946866611806598411451196482387249326579723405322152236126951409300814337219980258863640755708452588361752521210425531196578760184687351296765576182133518843522356711908405843778318647411947807550609240061345250430996920908711566109084136259302860103566281221467267419449777679142310489291450710661737938290302269110302395075251438266217408509753186110428277238395976330833409755884128387989314826850058243635637608369074610688233630211136619056868698585743842249177319371077649549554404652314196197544929899676335242656406956374595886989669678375016097206083476674284905352045908205926781763453118550238643100240868369077661515192757056278592755042140079739215462112315735933967305852983191660969551617126122516909638614801543974005177077839593865905163563554114349684358209004891561483118176376327217134104905373530526706145340218958933987702282404834951575501771190045439810177748100098092702312546742895430439000027890124219021744883194416028290355578301509506882946132894308122390577882068418261491153871031620356481834793986715391084405197913756386217218024554835876771999708475017092034965872283279290542342243400773453997291061110765313252813621172950600617780293143720854306507610604383650921055162993047522147600747488833458836596679487730753405425375591107446038582073408551065158533714302334703234594464168848905339280797016296493528833528763375128269105490723422492623283828397686443975953676454941621473293920046009675702997491556019787474847385756134680057471908566707550362936883770831239096428206350835367797614906082103500530220550407541142901231407036219568237986989844293917215712124972415212920031139625010180443015742301876456089591493965075350269328582150143007884762821503716213537071155232282438992072122509898709374978938150094172449919289903896636790952016095060555911239463624908168595194522708913590727938018087547860438070127237184523852630044746176315726914013066644163122403276333241424996953700212306305219038426563730291786752514935417977284479332480428353112701125500095027156906668810665259976941998107853246413847731612629747124747806797988872061412761893037453296589624311497667167855156969108011012119901362531175230732048557036455363823656370066411969342746184403208414710818877016379487727567833848966189859970210428840370895099594933922588761848196684242422474514058264454518108057822870907472489211940848244170566495180239885052265520434487144437302537399865771460951690563336209518596702754590399512955629715177109246187695484955344873977112459613244430209531164903237415705407477965366622096707038898338608250589417046029405552827604056975424853152274558753546037037976419317290845347445007642295433574403261228961816201378745834597334821782292185849579505885939778331005064274900051474525047688234726681576636625330890078188190252622272034289129698557775305707192279705109591097578770768615073475306488110166955199696107232932841054066574578014637918658737518392919297459223521564987084365864691284105800071862207598736933710178341311494551022456668781568838712733467007447691648585230064710554380833205878758814873529078821274790709761830012374293714394339934067066562037416236615181234794899904099823308612440203005938876506522275012235261108216170089467517943723031063886570911722285268553104173789830521393023771533596184824730808283877678336296692828638189510776792599399727836812263801331930011332474014531706748551942610840059816542888339734262605239265976971148816949229677926422771808702767659664949847277995987023930998103892752385578842615666987203124272280207987694169519564603657736476170620755376523602545966283494677781389803570507581619842408453816187486781249794567332247750275389642531428833288345772291283802568686327045672741228252663577263518219669453891845791496318292621197908504070537530276809517223450858780991797731567056870728995797044869025247445998499285690996296379470186498568950326410304975999864758169064455032328372765447372494081028909272941709499198289575550604569450235414699107481627233567883040972475948910886699298545615207244109745312943747152818208029094265270232733349522721850333860416554538007130973206344591089207281131457388316125195010893522657733154892148378432205530351076688464448852349076815934829575394146380037689780824987810365489933457255864902030486018552066372605888481359133750303680073876770550152800699697439911654091884692568250484902833088113950383058510836132902553352512442639597376984693100747613686395670237238737157978814285861452420978336086699673414544661148946067560174320627123232325771253950361043648260583295910048446412179330661970767510337821637800999246873288135832479101871193603344601152048811840803874241820073273322498035991287755063663402093220573043005246026959770653635986737019736848380679486334886762645438888433745810697726918208910875260116230678646850341226419776976951912794885577787905950574078617376848336475667418194735795529993073104777929716442354497836412680508071989124170778156326803475511586916558167687804566453460330816078521971295934986251334651743085614472006306437934651448809669256536873537163148791855232123708423264357955480641002257942402067330723227848776425792372998257170007536074878714752874334904050683983408115320171205532256223291161629859679959301748568202274707995631818817870435011796935555435120951048592863961845798408855141990405612058649130444692523556066552121432374566641392010999626036795230259594628129410622641042127563670130752865817567029793547958933356830840012075805931735490031265436462943738281615958791761309889645145378976411509449859808790168824947943028086053083796909033707097758540711571325081442615675013685281500045758797763650838136594521228751900556918360347368993354890387275169988881684510900126359137998654061876407976192912810431967105128967071646144333013384358316316891067344629961855016097839200623921485078588538151281133652945579123191296549024266872771014459964187379411921783756605852376984790105202832827093599848981077689358808558319265026254395711284475081278269875301066498467320665417007651776565799181467844233510041571177905912338525439560782989910063564995125940113859648311029481185544033373794631105137428281879983751387666016846592025553423158484534286676157653010128194867555523329933255347873460325485278296121749455011349240222972220401852152340002819080831709500747938542646278626479941912545270283634242630851789691413004568899303769692083420713707268950067646447770131445200411394351848673409408811840013008394329969116808175632408885788499852598984215748583487674073351008807921172552049376007760853064019425310460282861915342554246719842863563673121847113968135449337208911682988827112720847124909058259318664652657031503113866539048840364848733726773988780054536441945740592777278446482448554048124856605056348301371092489004913091730134360828904773391424035263101193460668738963005306763974238609765448766131609071261632803572000070963369381539703302476136840740396323152041349274976205857857334916348043663507718054970915752349136641272761599926497832424354315301793395979072415595072996818133561983940646441331160205238856514541972381602677699058541922486612824992258451191650079227903058168666102469209973527864611499221792229143035475250444875782865967389739724816423916518487443888681613949432818706407338530701193155373959334537210506184863680154063976754317045315249388984592826367010614911887954959706167445099858957256486081347035188142935639512042366263123430345950074634016686885242402104701450241958195230528110021312647205304124702034855721567814517795421111020546187982005015521314197499155901661158968830216386373484821150933359851227122897850940455394863200858196802894523439703972364973577304503530603552223262825552029516847569586232779642057774609401237873422503477670730308038711493275471799436636046236250373083417349761777216768555517012650304615332838087916899378581857869358731870838631244494409397701323784372128671666053530550182470201131623481471161573378427937543687472567536460089935104263975629038203790785293811710637448902707026716536809023592763887904184340969366029844338188829634496030459729402660653374538793651869132327205018370753369114267984568651971996911393248763525871030318645706210581688438333257911109751413288998801530862943778767588674216849220820686842495443083300873666486317503184895055278086683016608535522951680870151111847332480051273114389866844396449400373296974074235445199197274591664030905933793309765063206825958578004701171284227611933470298175005387527877458201380655338672600323272033425316107050362638443599700696672008649326039623927597380788755382397278160245962127794664210108719178733093841036061465020460103119264001416141534293917548708522862246308260579381988770034110997026662206642364311375824623600750902455557468191484129811122127805666882331417430321917141327701644833207266419407612194427571817870155922852787797695471350911494429225994564207731880989522572937345013976441545879854084099871266676673212970297791935563737408961149808505034986079945077398141530011069922518773602612284559761719385272577801027385411373615231185040115242126852365157390565068400546172109602767318802664361557005913608480684019804525562195765825360377295684635600866115271813962767564714801906405275627257015821870694348367258263636931653967710791467472193681860474079804386973643247802045130281861095263691885642405153289491336957334254948229905904103591041638509502955080942352764117468181268486650780201515217724727979039513513526196251351872062266469191127468334780295217672872192676547852294337204959822789263108688269174986698312450792652499296200763141041299665956387659369838378396879312136448772200811931393007804947326002347018164216985266924121374920448776762194158930213300989146390699804589099512264958177191454773814612641478449707864037363258683622962148290029449281915199801522631352252660561469829183072849388283887319066727413912882379498280948610388116214843703952848908914670020357113751680293582498957080681728140362935299993061431240974628693991110912256047379509863059622509486201238361810689650765487125431693972162196125151367850475268670967424221267494245674591175483469136611426367926936867460510419333944815753807665906061148994547772199789768790334182987296170856744873924601102720900171527699467565998569808177330694017795593708355521759437353242418477947837694180814121885184138480555506353333378083483511739705065144001892474498988059388027257049387540235539511126329301032829453708395752570155435855711484512572510215277573170534078632271490240537597427337561072317348448216559531625285412421069984242103001694631979259484940977370638773095073910796071171860781563151739985299148039151107073767501070599049138642567964265703606058663944899681088242914554052700989729441378575100041649559289594948231114113587048839385417151471585150267074018884113580204942407890340197266723332956644323945200438527193023544884250870553996172919820119315877167113704588119517797040939970502687024718065287845411000079548714095014133842220201859441284996233858041314786051002542011691262437326721495248936585132923236594895958073094592922029653890099420686736648709618914372577891949934131496019186786134551686664129271481418351942553830273077758013012609056822818386537871465340789711866278490456487636301466421534167732213670852144702235922591109653407324962925416289316833295833417015849203377358129276264228133763675885938737330166576178702932482377068427272916663991503157990008560287938024697275242199957099573514264992557898919842120524352868004580417974497767068483965474159562424692679537456504860546602394043085067806113754871524621240516800995613554306916107637553038741169459983625923835023093552782188491591943778119086905551172237465978306575946158348611176966091516139750083961918227385804411416095858591467032495497195543498082936467890816932750694137340424520776598755899229254810584661001107357086822534709316417427125385941661924314583022935647006807487869815380785573693759398670747160496551122790117388210780444261774653780675626389727917446971016691039982423325449612213318573841919032438220424488546924044148033420537000456379209557925882571906279076222089439860881707201235308766425548043064217056618496637648394615526414469783817787779271825945425424591013447577404542981214095077866684062134550072127799220829062960188388693669906648567812495527428353836935749592933133711358311044399975428431060939446612466877159834221654626045747950008481089706676060400545734784931164458510769376074912551214475397456590799740246473704911620718016502075541148957191783277698739359063186688389306315694207035519248985239896987768015491391582356195922761061465692175470663644497953614660033447413234913863255327604566311702220090854704638429958263378579066805080057848243580996695543260959459385354641346010125243950802348205326179478216232270247197500020157206682793058392832157352103267671274878024500726967651070010625137807297146683151690766503863462326183685256782299615927183536142370283857689378049541125534646829028199858677019135004417064227653382316682384689729613157413611152744607157707030154691307250984570756781702397463427998950427196241773596026182655399278701710789877171568105288349846544308482669834779220769895357394525969467096238887892595758198182577725194734976725861625298537866030382824328191033577726433557471404919401678906399357925456135968283989804223026216813698751549820225850869557547019986194981551314054795910005625370829344782277947521696889523673202903028435143235078860146904540569792915816509674678241449805032704935195172279532204738890582387419505996160574151386495644930517640942000453137985561332860209778592454056316903128634382600751482215725465195941050634713984656772814570401889546120680662367245926641967644141571710580765229161176578270325097659857295432472067857181186720891804353447502366658383699614457643146825832584271785002264290420374373635250200542047487342231198791142981794226205276972960163467489653450954551871124008982579485775556162239983934601434214073437785474539005003309060464206502102084760311814107730884198293226533876855040114691626048273473289589697496083723883057314066799407671441740279909092510717433745838044511186622265113637525006715337611528105574756385738928116070855042706713853503639358858462363716641373671818160953562437669469129552839604435632765713216993929793186321068245274611923120384823059272259001084636026673312704702694215653089809870891365785937191549932086897575004502998131306279096423645766549893492708701340878302212230110968983613206719659463351784064207271595635021875463638627350664676021006755365322544062778042378273151221600833477103207267755578020979991497285661810129758038981687058396529755358621773987726902470166481839619732239007805582718522042714069786247875690406261954660866683425397569713451197462384862019903203577440324761755889959236556120467337041619579775039915050732560536592008305125860897329254702540743420905114254762832120578804783656419541320250785985222092917601858947279357456715027494043458264768335282827448987844495218986751342653482792628766205937723047835387237465779750071411374445305478287352029098208760214076052128028780135984351382199702412576099495049113314092347910186515889123073907993871992218778852705894828473139441342993814399433641543835302401842117242795158911297803871618030577857910568940425791536962190940955911788577305135849463951501649518776373967019731985936479768471738409237567664820470889512672374031567817161424344318360103257517872552162043818018591915256172750990951833068172960500588388934274362972697194394216396154995680204017406370819852012123977625119741068057812643377693402149983210684735528894306205212042113711251306643839341251066195825315273400026053512160923376460820595965863836534641093156948038487099670660727850830390585389245863204979310581750557915058019238238293378571929924056023676992312096935319710085784753061094972875478227967316216499427553950856880537169605260986427944989695331891347020151908462009399568070684070150453217086160468199413209010299297947178304608284282575804934793983182234695145634007542750242808768167104217254502165829060037201435397785739131732616173571382694477642287707775767085447430418932840947588720502576799291660710071407775016055961229912907030158120972083735038879744362183311111360554365169109282227032488097717803680820303793185454530457693793295007783142943536033096871616520438225399955161076234350299625212234423333093395243732327414109400993396102863402677229552156609056139574064097563333587013813607541792427569515329786615202241220264188692366606130364809314506256693306994193834224116699847695947226049674247917007548226311307660855743780491666955997553848677952769024078045252095573438837855917712693250201740227924957144242828010454100629422974320253263910398946897639301051612865244096826384459477662489823021234929884306386618924527722992459319036684554410424540280178754487504273093299279593987692454835165060157363113158788884323198019490131099069675072896870908407885838404624236718558468878453713083015782996390504390068211148728984670390524590072488667977724189875633830434315689794698127800134704709418485597529566942157348642089649784517323226768453419460102350390323773835707838094463027690710446461976933180373681692577426305998268510856061177388183718571559739179909969248146766947446431333892911766236755476260611128570172217612072697157313158391343225693841123850941058878269559379881992934031709040705416094359878097080035450568757720263733347107402863389565405637900469994289450044837979146556033809995246053681886826443862929528418070530144232647252370041530654793147893801391048233238653513200546807079256577762180863316326020339159969721995224083303304065538713149165250999724326779133491645851127501993165371555761395339214941618979747896039902641047289524805384439584155759644037901006030486796415448980634083737208227626030578829939193780924291142210104861140614218251746680608303318653149827763491540483110674501383750610715908940910221480741143569993682634655212113140908703514003654531399719225465569017818233798365527769935086989093868867065977689624122120904543171259835773846597128185438455937185407727881265408719094480016645818784206316183094523408289645900328457447971569831941636504589367648607352155523668803634323674906429432022897488267600823444721194178500024426540973894866414894920790587695403101610452491213658738427962061632756549796936349347488381895933774577002665667712751200555136028671125784061368817085116285174121138048901763920479174117339366376050224350122859751229116773186890767397423276276928902493548442158745474655305984566617347354607834466675743092010463718816712733127057214364104440195062572256751989444458411301599561013685321083613854392479343321279631894056230845760621251270042197975910719898879340883244751698783800128717441286300340239380815412434999799974442758236605902510953950625806103077172951566540125370288281684902741589104490379500696755783481503310790442796533035801736343668821776344228564023700551493707164701583854141382071549033190806024063463015100866281276249004045106567746266168883394694804426561964957611185971900722302130225900147631830095844687138555278195850462987339445552509760472974927580456444315915985421239046643524656438697249350099033793723140351363946605043724775075497175528320593486047746091257102331006898143792181349435999612325401782875386224520765583489200671979007160789822741669363315599712980133949248948905011583075414461651143185501257855068524738688787542875456683573270397048374728065815955096418028555245750069806539436676418363146640296427188047668190773549226267786930822115772517049989894265741523149710859000424943043442154256816205988655104869775464144113629698949136453535248567876972618521298447786220792927694186024036806892756122422904284450315693824414574080816685432845280267298107233526024933831219181547865906450117777962511993929384120716606004199353799480203091843351359707140798722700872943036382966911408705863883184939148705120437490862221806274967196362509564676367923241107732064780450854784039600258978615312682762296780688144819751141497724975400420402661261550568171775677108676307913306869733506411606904081737683185730033981335074507139220809457843397893398114643902703587761111473274041259741447816910301874869186446459658598835113818010240907018200461960061100971664158203450463930451140652863726391135585946408053282908126112340582374971429221989930049140271037482223646872638897689616092028454832524052413304238588094046910944875356530684845809708080690880656330384137035984223206342621776363758980875503577818174551438434932908582377253910261632675393864934600204728122355086465446894065974487050091562883520829020937592493131017152665874091078196290487940730772333023591939495493222049262669114812307484003084343400014748677443879319255385683293611412240898819075813211939463881756265578394303250243747120792075536585969793011851603072719838887116614989747038185072030984478259441328506464148229600346053460359661459495087162877207302208354333507579002737227037441161373500483365637091650764825890060681023835008751536471604763309621002774279566829500701690910204647131786766929858941007072768234647294040810407917823252861464452673879571357037621485238289717828410697875263977028104137838181552674970424187086192191261751055372988697770016695041697376042267247492574027474233435624024341053578017945993425273142582769176887735836264196753118384858343123341271936485894565641594360317819236110698058531795835033403911159271223402637897395171012827188597847770769321246576543934744684273673627590836585115256110789339907075547083435079330570930176312807523552352695212967202387617409827345643206111009788848793497721572125835098782342859243016546568244759027344382822629122506535532410569804582396896556082057416349976510474754145867373681139123665729316521065209746017583119137302142194298253681525311167839119304054881995658421236964052098062103723357412897316121130846815582679829961686300211023030088465742516227420341766464681845138725483165244782278498712174180746891220838262084240390709754925069144362551151248396857698649437186478974214843976358095350403896934980568427072535035164900057266799837318941864251592845691729000293513098208283959169739916354843641576904773163356546020279507343435786893869985145955810354231341396642021621468738314256945874778664838738656852530408585580185287005438909399852872490105964591455371614613943049028532182892378489694395000879433917179753171278853063909081766788640406114730009601089034975124452794692257059281473801787426309928969207493817122361083493773504276222875395620198743636929351518450453031886468525514836832986496497084050432076688987157059026304698005368565955870550796188085759228204549136913968300179036207545363202077192257881524806701185719596452909544321391641016007886051598583221163388810238587074176998269411652657483047326881351846891910939607166418246117085221222758261536171182448278767120549302813613712909222389200080357872551378473515471625921003448630671258134177414418360075641682639367655724513275262264677143369228266460108065154212402894345332770417611638552554284619724493139241116512809597702249463703528923954644109377234439317923555501929209359907639064145382771623503331199542866124993383883574107760059857027152480063052222865351355475954878283430440999493217217933984122157679280636201219437175682642889752680262238957623971256180972617846959735542359773445862720511688857195372539181728218824840613419648992233996318245558123225765463559722681203242285649874934237277827389371057783708887484062955439543693091753043097627213786694344047800385698573638801773621212433650670680775079417255326681054671092111011625423697653263809026735308415294882502718723021467563971082242275292671628546646947938074385906599688396089693822610042751298693684263799476266112139824716278030577626081137081733685895435445183614385723423640545037521703030938351564825657319686298943535487367108915548966744357115561334285000447120155465995828704489508253133247531429156578065154163289657271458883889020800861642376706761806419767666972081277583463312122841464197463583949513671665571541500817018556331745971314485861431416828744561922199661798409854969783597077188054821030275854209953448093099073520813796578149048277447876906727316867761350920203852457738187595259336297148093191231571811243466106797095230807495510115784580081863864204485630150710339943348113407497034374324398480158372538379753692779458843533133881283937689761980188940625825725120299271536538120311425037465826030425747484852793138751138094159622649390828101257797659324983478828491381556134579271494858871061659383839020884998258098415988227124292880360164950564386030339579720887014588732812007443527707560666749664175409861299640781557158046868010802635910509896845425811571144376168206778336057127067465293515300390537004367865757476088471264669022596451010839761384490110372687041741111913736290514037770636687369673676258499283697221005038325075740093987529890443008321768592003341555231815581343305991301296714125689179180482008984708985860134493061570743232773610735490174375208563964425364566199294117024248284661922035669483832105043480264168277460790251523833377256378843557877633984866960187563308512587121175518732769280435761240453864270363997738932440761599200259093531327014392380013387450737980172217792503175695191458661363392406121869501611710356404280497211055905694614283608403049268951399345166921090980435470624786485778570293012944523822896077895776743206362542564944125576050636917444395247292776560762679460815098173718241647198513637775466084029846127919382993503263949181120081056588198880533173583299536359471395743471072013678923850625523925210956538314616847706804379138645325006536171604618243222641440061468342133663692943241575267331231402628826711824511769085105154432729041159526394303924843997290170437208926173427475033758775784598005026192899870056165160213810188595173107790921816332128775743279253548607378182552708889683868199917362566654920319489236244567700069507410867761014442150588269235810108279016381279742769976653009916026338412117178456910779058253568925231921990921732245999939179860199248452642698204119943324763527414211925886444969738051823860136711112192054122046966990368152544019368622611965409636476334105974050667889230823268910965372621695652101221218261569017071723432925757821429705128865999024833235414985804745019917506591051892496157462709411594666327970311249389999161679633197943016002093112709246704420059279440181594474509384267029239112238724569265771665342797001940027209681416983489837067293632407715751724166391989909454629855453110059623445224399404775215798563707246389692451080369376498976839258559001409485713276501960019997486249174220485315769126052069468505941918590863420607473047375530201090508623955212250991266918276424235147960471059717717907107627343220070457567149423507060865349542007499336506491018833349033565321883878686274547545441737946797400062187216390410773635317161915670639198732403659456891325815071498095962789524502304432368647755971964078407987063773819995295710292263374449182718551863921526278844603061768102300724051226969592240224345644085158614977084721681505824830778849781700875943539876717118652627514101236050778220013207892355160496238021859333005090628879128691113742830618105174538527597242314933409642981483311356361240876634415897284162798256770375978492213254779949103631939178230868477144082103970882215730615444975589386577131605209725916772792610314788877222893363465543291340856245853741312768922735195639951551067497614304672743928620486691985006753213839075640397645502379358387969502500464258338232334930593298612072725865841826886175947760285059284259291999023237305222627442306385082454895048268846985583948771876222750474055197075986629697950331730824676027503955471207602073991402641896998363432155754003177916147069749901326152067472831365124324933015926195537277017042380387755231690576029955978897320112678448408220073363385834930074440017634035709135278265074917214788695391454771742750285113786510224795890673520915947765010226035073669735143211216361016660883823860090111230480987691187575967331336911916960380083634212662267022510597300120997496406318135537698157478932750476828011574828134842888078431351187560181568825589175353266375331183757866476179249579060481244364332080432034169553476170234996297643387196176380631191131673069306556168146259935167356960690019306254636724823806133933721621411934912162027396580073517488930548089567714015485660614993626698625962865346869281631670134670454979373206246620707587891937257538747916956467569780028345058222320395536696023442031899111837577237112495341942344609238216928078528862530337364644644500816227440584652930100728004762831263203728785988455073249716763792619429892974775239585051459661821614464784681327816152394199095520731551874975839797792414124971513351555644254621984157745384149314039266076287594777661524940320619737102309391106358400295121209492123240583348632956828656354897518623608901870033822961467139976865374148348406245379360956507350155454281939501937809944409131923365570325103202989569506729120281093163777095109078795149099750383077898401140115561422078490458701387914171022908189788685239355684302256351564674638486215463459731679174315197940139686124580638457725599529766071711691275099099113851456385154443328224932005397739135094081921281011236344035688981960167026445753167862748608943418479319874555878585099470447951464541689920721355616785541550401616079702144692370127985257559627782650340255163999826176469957068599165256515347262455763414075545380147160717512744968405750126913773002209192797118035707883299934022454679708851133060898155802348923536480504235813004923380792428124272587797716876369744979514775991693428442148458573024888829626334373988870452596691099402740094804045740065294415528136188043887348296727069706167795185968257991657606653622287157051523017604196290377654000480501774090791003935901086509078614222601444605186552771376585666802579847876647912692826014232675273249099989972769720302211905276906348632623740662978424064419625595192136410566253535994622944438066521181952513852038394969714731886983328479028410845765394881120689332134823841741301667324599074335885880302308301715949068682978300311498268266077942234507625547715862801569941261200558932797982164546791453212169711286852307122021887078361586757789546074164505742265677605023178390726388230561637806651275180306451409030831742174173158122590044912400534213784401704238605572750638164542043590610229890136398678130777074660287814763528956061059876499838511191836249555824204643237989125528596021500007162564796860714576050926134652800255995166084493841656676063724254202432899914535672863682619954621438946437894051733119852304486467622178387131707341325580951089175829248817983508100364224778654301062131839389640508828252465334903166694875191487001662586344160537420402980602891305086266382381589118895702304321406054071332050548363157986220878848112943583865913900052242905799034647219546869656381955246913471595466225327985226637658185459761855324673185961068460925758170741706391413262877532283623592074669907383977182294944854778139160161984066864438481341016504093000412322837936703058842242721440376374520051252825957551147197364221843317428965160152517031653386452741104196881172486750937934129120258245314878184881077578480002331467926844206607648992638685182988414881347108092884215269271258675093205799676254456769800576709803041077584069773891439063735544817715601757673831348451150684225434773543752688729419842934253396790853783743286697719175724204447227382263041945195696890109068021593294107667445917536024284085562181176805086138293377917729962293473850077297009648023125274121510407521426124315694012855466462723703441372697503046147781341340362632277265459531021575304829905093753222878120476169286847898144364611785804882898092569892053288287504059754787199540303677764727992898343055351296759595447789606149539465824620186097246600966364983401537597159949878472787666746253447360359093839695785661809946416654027337600714830875670736046438962228896837836144952826521138789084155264463347624794849334812124777500956407412633249053540538582386234285071692960741508535988536129488386884271326381559664575679577356391206092499946562055064759315309833111001010669121456813125272907478285153742158186158368473964102948280829639769560475753943847424547260800331239269208995379557628447861282069321568422097281351929592950466648361640232595846036245776090795937956582179674256419337304206476587377275843406667860350359706621346744351141433078075889065306210811871405442915759823322180799382047610537972419505482183025458546629408634879396238019240610373073101048832024432424493554757059019589916073862806569728310436568204189257645079305510109008734757565399416606342266505713916876995108958933437263667575282081041719109372885244495053713775625769670871597916131965998496862695148508781319841752412150205669225212090151540985048830244783507617720171328954412248620754754397727055323136974914296352190674098041666004390432769522400931408089335135681594791646865412492030140903296683737683111850045539642252110530562851972175217805716436463696208309881575525154046942035010850056050402886491823352068480555188038891935478600644567576924913646578535283356765277782208834487088875525865033602386668592772103798208924069386906446823092674250760077877742753625977952958509104431417159255880651010985601241688250064233255686973688861681606074138035161337611927918967742716201648312742479853933561238503722291799154860644886370112642323754425211171396170464305060051119451919907623873713680373165983408552739269725794659684649121963638628702133566077400384490847083775402829159468451899974107843017055107698402446457547841876940062472556166523273295105059471420177281799964629674193102691820166308440990347923861417664156781441256076127257095521665092640205347172453200346678057787965861268332223715017588854124808760231655260647055736977722095401538357353188990038491816144850030184604456463319130055570134731722618017315431984672908464199214138952851492478494733419665103278525131028192401318567268278877239255887311418791643895796099797944751655781386358246735624025117058292800617965645891728596580862210197480198102021170558726027906138400663825261625754423398499366377854585281780259354666380339887329166763042096833746864577102843530293018419296975641465626973930939859562532645279863532398695308362835268569874469958870951758563780234113770038122530167177221908199757071564957681938249888451616577364285793645214408180189947304290114229252505875691191052728565268190413679347446221422506363319961508189123354147931365373547728653440441436141475624306061061230991793041692049095967615817723335842355018083283547998832296513832848638708888649764079838306831007544207163739334118631784395840140660719261974486649574585067300364379471987613427069689878011445171275346995697918372178420062159980866789875648691604771933600864529361313914091597616523710956321337115481965949968835834504769901796090122773580208875272171359447561914006684555810053417757778207721416877599179773765803296655846184525415657524449904919507432957256529480288939890822887527511528430255379524005824073862705534910644090290819718069005829598545570351881453722714947872033778000810540212788352853820831705452169915860656482418592186488141669310756197875100155672377940195235309406458065664943785976830771270021595926557727679972901424574118792084430595167594134543600408635824564548984560303464738430838561489967831702854457324976921678494763739862614408198759681180873735227022679666989780726064695329201330228052508316961584580532199256918200273472550674433970300500776957937965230257696212683206056807838180091008627894969131292378743931025031584718771339378266882354295558760377002368133265021406014035711762135991629280151797338269227270042667573399540142255393281291346188361636928780438113333791099646837344560976868372269061723413840408945075531734141890036904272385304140516873820046981052764252588588350741046775283944832994930964099879691627378537819264673997058493246280383349075461601438023248598955448504593521622395773884086369547724900264190989602981515176232382536206189527188298549729338581140623461711815563709909663545722565315208922564460442188053142574806326291193679731137328041283490924564212361595606214139143558181437626472099683170569038864568209785710058977820043088512688009000508063362697319248499263682934751203195678919797132406163355133966235389697387900251825812788780573603977973825322419663908351236236951772237253313238376094237988680118746894018071900644235865243564791014620515327261317648739508742713074256955534118006523726331572901502656898629429366610573590519561320778114992362517331509962580605258229273231702186728715016606749819610277824650294394191126035723032297838254731252508716665960210294332040042036444530803998408313829663674691116563708563697443366688456679941369879276068350488993802642986223544692575788182014489977852361594537266540679729937223390121819314941231401179044432435028014428264369280248769889940469324387343328262139532988386988901487760090620899605796160852237334226317653790525589927604381124513901352756777938687784253358008682999404176653420714848280429805087112874408575669909839985724717062075182103286247700557105054180983347961371195139614695466068860941074778046023294883026790405534104824186037043795094007787542915809319240496543177671101134356836369728409187958237174287138420317771513936803595654346022880863653416273917165516846789789288202365829876884281963348415673622429881459023078498190034747326338299456930422292893436562689761993993559104439797664495023890625044002118487694765169253900062536627617422195795008919383398413166406838327915542217794913965573563716523368614519114044888367954833599587999847426054682853834327224043118102418275524969207283131007822350542421113401860281145528806481099918444491707173720412243217951924595456310055010032293683429722188935339831954485071427629926036677791765801174326125166763981162031025885276274096978763682613084780672106452386784446489300700732084827083219615326840558125398802049757509905192720564683478509237081065695947524717937102976006672029034466649923102510317369460963747420790768079187646049342939884524570157799640839850884705425818143632523724616476883027566912695803552549117335614126570268190563799700949005002844491753328103968417444411527787204570696933100203127185159952112313535638510854294706918641058386140602293836472304863386597702033616064163787723806381459943593543243407495210054876490229473660226759957374955918866841590880047430280849552360462513542228526156566003006843724984532644106709124977636024379830347668279669404748756691560582110015923874371471442943780373432559053329813875361081938694168475036032148778119849338170471013613945623336111654625208684354928563756580585977954844881583226495664826321066058912101063106451426837478558468648969917689355318218785005348018271520583522415468259939708880870426425515012078326713179025991690252559495948845293194218969381641681118942662045788483383444431868623848495106335579550330374802861605038714283132653895357580533778385722990029948589003057051702389938648339127860158118773901143240224880454222564336296448711863975335396115701536857862744800829663563083926155621673667498169397519499838466211395609428036344094031165786514277632185663610078613612980116210520183228535733091476323582009560711932508540716118458743982177013767096480027394593609640195837907559915466101831875731299169417139827728800406097134565227397278905168763917674872104155035479835979149855005790047860889392928363811374607617906907514310682396726633541758964701522191056281630292975764169839086979038313208415876550805445108610105104824796228250120595839996766738369223338312714200077199179340746868186316774817535283604079902500442564529764380543326760868063485272470701159205322140365536231697724838888565140786907820226894825639008787367584974589620967071529979789248555501555226729045886602752538039302393390045868474003260579672299159626881945074279892244097623436616957983611516727824440638598948217709164371887563095168394346940167223104903004068614922544602911760430713310023612649698322166713791704636443210820297279935593331487997006376222565695537712858504167931682003513945130561571338919183953155686638671997393246511669938775941488785202100172778457034999953263161424766123166439696287189609124922130432808129943789638829449618797737078983365030684268349761868815258041845029643889186594942768123153738069793987870852202027788865041587700881814630419601268164884579510894405714974279224869081865382673322354004929259711316693572819427167565362323954548275963178890357847599838022114972625318303295148952241418177465398474990137117516138108368059453028157999785891794273329884774587504197165053676339728615131445282648945536333574986892488868502082748304827906177790850274280846539296025820980284492711741341707431439751156948980234223353681158164827036223448771671532581298428435699454578486162650430045221801594198153517678332615013677361842775838009224842694040132218876897990942480239344402772528975579648640160943409572758070843358136771087179720234837221406686757179353716709136754654141010778508309142015967988649630926727236890297423469914747791960567445728094532644351800846125735118391634480796061659023203301438280263300915014335833911382196498657954331478535239507128442122322528179412740082500783096444734236110870033410985891288769788552542654983952042717178708587426039945069165799997668244551167925722595501929610574487466058308124061396390711676694028772379003016582431535134474536883889918495047343298342457163119820111807158903982511909825589601272082131347271079433454052789302564387769295860424908347024192146704652213288236820810599960394815098325115901681223260322481154433218544422324448656293016788170013533938893874217872476651588399536670734707672995201860223058504732550266978649338529680799949924001309478802806198093935786505121710360054227519210024843393075268670244952504992589077359359655532615581456870481951704101403218117471068757092588811851235558505366377966571754403419592829851752136310008313099853434632557698249760881185637523763027024845341437606552273943756203852044497408928590765318370374635574598317020019719151883968558510777479077815341678008164452491019761248943698162695168588514468571850667462823820193271736254551526789686050711167621326823785152126507426040110525451573831620359520585583051726602055920325595972657862962355945504876877824784008433590055129513044895114255816689685944599129913832107695966993323906433995923102167927428844595713165327584405740089068355879003432607221374217941178596620416525152775568370645871137151070237149750622129803982529993009910607012958248470321519894058927867612038864556296248804916353877041207408842788982381617020822039544712520741069645556146631913325284621409632966768837506470517924163484060644680830261299682759325861652673433609834453901320286962745728700806603277633315040328725015262340891571924379264015252224827178095380056652140444402681534605916095299069388259991202628776017537144403214029145051730569530685884109071904968257267854868557363441979622505457100844535229160999474184333046261164666458464237894775951411803657783543135433721628059419361736820863605539691518036813916602649441795390029046449353350161213402624837683565320576899427876671614236484404248090562259062300700264088826202747655745624193017684532118211547327934130232535214341120578537193509707250072683241305659834682347358449474582644150856436485505424800132272153043666449378511172177020165432917135071787914460633478001885841214896422519815273369978530869954493076263159925957780676955015858345176909940198564622399971494663221304143378909551992606091588635262368806852409043868414630521098141057773488261079869910900490427827581386406419272142248615538652473836859902127855254834981495393366657491671360395716038808255400876917583912405648350140639214833435653656612598237537191459894590163715697291640275572304260049241276145378693773268938375716576917981580389835803787232278918589408550352765759610190652721370630019333323138288281647595063578301847847650499249792699576764198404945664248989626706904995173161790462006395439079508357224757629525439131114311922968195874388064013634910792658144415344773459581959203115339177327790202345005732780261842159423816656381679887196149496565860947820871632691519558668766060246258571901976643785968106236100877901962615826569222596938895286659209448611478721182724552792511433441585144272955529488286973916249504320143291847031583189838857811377309575123728064640719939992998590887192299486338828766668239818762948424799860559847110863501828738273387599111268573893674762506151338499641098347403307664146937444027199526490663872220496582457105507488787638719256530226240472538092963873961729875786822665715031068827022708657177060012619043108513655275257892905628253691379724424555863988283959794260718389621803213621694443415128667884217798374107558667028158298692579476727192526459015655653958326327164688589640697190020609398856300464372004645357454248103895426214527324958377000188593309501168886828782872190517833341509234322786402371350487084952937337890708368085520352901889512229066314438836476021910474238910473974149667303509034237216484959443799717981508872665707229412625007865537194348530905829509944716587908981442554261116995734721236712875154656864746282266439455862222948668029965513492379356333505410849268909035817963479697016523370322471440098438032249805915223809494122736162044564458822178429811620155929495609773233718490666471120809170478359174113280280353927270460225327826029336919192153217427528452496186856909285707853663403351439718726745558199483392262890850315674693816119021446133883939451751232013902955087680959087093446018288335634885611542003115175601498745566695564480982032878118315391194971239928955251290817832634371213277957525123889194060977083944573746490630483727956417797247812996043518945384046195585173522848170705254645359117934752702953217407821413459093138973553785262968788760695639185292626306686205167453459152926284832624347047753640800420896347064015170397384778441838790403335889789031060685760590872369947834324462373828081076500400368014985549002093795732341081150141713119411938757168059563913490707725558074612125062547703558172362523422533643442242584228276156832919666922406685772520283911403564806598988887744997331767372853483699783851886503795761733662439879997279493528765025870512417059556600628632899628343688103072231212957694796626524151837831596982303761173718266104462373080954287673911991633268136426898400445441651095700887505203826864062275469372224124340729961430915694938914919915442969662208076954436436972657725134666262742677740127018993944711058014869250888984257756967871640983546883923316371831459256516975083235560843593454850473563238443438268108897059879212672675977159039790568668010839104354758812121837399938098604761192710816835625737421465283618873093759937311812039386902373563296431452834821564396140151132391681808421860416263516533844056475093914003033622971980940964787351918308907781148453970801583096984231553356297852327704981637769508097032890576412717408733631856247337740832567140738211703970595342665366647685309765680081955430549236888898936706218190758815906953697459090005323266038869690705978913350198865922919325823867414758316921540475311982360487499679417873793155386462461272452544661456503728578249091987554802725556547654843039438331271239515716803953645938645241786416728448279582642795370622168865052129823830331743261103435765931289371711297426243623802075356619771989017461440288127205813287275854796336329395088169245501327119885345778809699800169763708721071411895362677701198072873034936646638218735922109424050419773488975807083228750586516397336424074044977657652410282949182790371118890290943088731225856817502004992693907499451943374024976984149362227516411757719296579347594207666287689454066167456787145569308483290741974224981448117493995579234889116638118577987478274717642239537365368073273224284510352220418725499450242086489226872800393438639586544583833020151992304889172802855983204496338826207224621033179846795658673175149205146171361959802987608728644523529704112366947132878453316035267587742238044857805209612852275146011335721087611560920854215440051842551663805516455182837722299278663590851144348183399256436731636275960850739606641011187561962641755755119724503000030654742891162300261967776503586311963484525071523797738174389298666839116496820876036867035510608191667694865651482200407145327097425342753421595218519481985028435165458820858654643455034481796123602809470956780888557715409708566567255790800276947094591317751842913462480851593259128179251860773293141677190396095378169958845613329553255173697256561865896551648800958189274387424753139826086223801298698925173846056693348040520146578625434593351718772856894059190419426704841454632782860958325055126968745554658162789667450155495060451521738957914429355858810174579791566029147978126204674138764468075065409170989893591733837866573847287420985027333618409822123438729597406688223671088902730484494202214648427874014074781964951398103149023476818442349200248605702393039960700327855944426991472572297381515731863827348928357510222736136894621913879607518038158783969336568298402724594432779889857151698432382547283447382977655298419306163160869915532422304088893941610928809011293320363644756836884594238481804244865849974914211436430322061715003316132928355954886861716747449903371762391084952072456441538414490377780938349169624802070796221399813630229389512442248937955570939597112814440258741245894583272144633866751054996347772047993498339942925905156390101771353756284323051053262870213304047629384559667959915085628004430662619636492952656145484442734878785378305075604072624749377962033499748648626512756814979768952281526991153667709916831419934369251007924884835380689526845032638446203389646477428074407118109777582258816254564540817594052167513287230901164281197129369062023158201554268534328366463140573927408578326153274755682983186176010897642660361460894344494503287549418279036565963918394542458868055328804397051696368351279628838244313811687196602597700963962064553358722894976960469555256101116485219485813088142869855568426123806305387648194757316982624920667840665504754733526271935907458933612218292349238807112492548307816388098294969912888342975964166203514347534882583398995129929486631617467324407844132179288511013837960807898466903597599310643019576725393958405199732930846205619695196402635119304701161604191069970007333689804871960356974833786733971630656610683448417356403194585030788482055416146738247445566877951332842492974323433738485149071189542485900878778562488683077113846671713521931185080628185051179230412186110546849483526914184537841312652438870961123503269213343454425270769630353380577523630248586931455137715430685759936949395443891920405553778164062163326034338373107504150389343315653681355599588465514860800245703041987253286135382559878620543717375429480720774644487513054888233890371909637743097858893743247065727690540443270425426480417053901077365822610812766290126302448739974349343590899705278425403563248372919632330716665693116893825037595199883119918822580895539134554334785770942438963772943726634082117804465274509145734161283088042573646362237921076780174127183681438510811539815764575308097953258320734635533807015069999309596934295373541960481753059915474750451282273862770937593179371442436486870747073470144816394388290637615079743107367123239653256305454070282092207088941008129741138402023717654009147573165313797312598768220193953519606365484588362680241513543957941993155869811538211687298049746353535093020615260101505264445501253707521796024922210228655158803704626961636036589367715284530679411075917283754105851398792679936576506405851760481561652648599168124106058630589642479724308446843243389931489982435523353660386206836520028865600637659541854275992490371214991866088052316069856427984659022179065769639578647795171803734330197418439386442287968140637969583049885122398867009395851402553861030459023291561250845164122413852923339631900179343440894192789013618129188155909204031392627546959616762317793410108418049243309646500426263188431500270565516910253345196454215077898904490273625554774859554766536421741334255052470086395412762054041684374061829193711941419199067549561478915458094277675541536714752934071349767000177220492908250518119292996094575519402148284639432461382903384761840448322967707295682634239512172793530626641334003411573666322846425143338587052062397226345298455600931741621818643615546695072826882694701099345024172417479078403579045407888626817429675076482413742097536191278071498973819002502598867007970097412903050179322436399436990970488913012861930214059482175287390622817102825483554009687311622620048953894001365146975660958298528088506001190157943227935187739766671373892221099329261752043980455001135253646558144965024149828360817841292155068309755687495398558859482265588673704469709541262366287814537489010946293124880853622831370243464392705416935093768837397317394870360559638764015500710893820442424020127069041555062840493344677485807583254940271359942514930845697199635623455520820393089651343739637661417385137383365381135518498366009342108325570097238233034991203656158609379850565724179228753747432388781139579887307725711026273965412159404813256119044058411252428965294730755804814707672272240653688481125915874020814746503822285914281282324185834584451417029874561505922992279339951113831458424643417136387325434831154629451456487880517724130542458293916864670822520727046201324155910998357038862606913917651847841138250687832687849087592264462411622546324809362206220983845095220642494372567168117851681894567502653548321246815875289121542677329475804990858493899059522848708942611649572492144662619985597177979172521199769147588604602931074837517899969979282139394205158020612974345801816609840200735883118842523937646254958033183290524312278878024418887654145619158203861734922594204578094440851278998217636276272456217464656477542470684915619321818489853681220467424221185060491802472621934630241118578740120160106418631580542494037915830146285135973074053276769286703943710952181503510594199697937158085685983080030691609187168831680128114684962991442485209851903996323096890414833016041070881263325498096279247330433468443259271406197430430267558973120648126450874308092717392730225127581532732419760425250451227773188682603030779223208346510762130587709412265107666023532233633161025379133246960987622568649380321035119196922263965832004893628095901800166261982091288651674313681520921666391149198501122936926925026810700480521835837492050193198362738505522769627185262966554317321281624808080804152262218020422423037818683706852954176516486799719272928973761494026781813214959929089116902901998606782244841722733992042726325504576123129372178727860250692555092929992806430470553077297561804922828910989312832941559610693608803248946789624869763293675664731222790896769256322988902989181545826334201967420278519880440728920880284144476440940266881309155875107425104791371122647226188169865756103240893887156298497481787458900327462145482187097518189405921914419724228054023027931483591111771768695428141628006020515974207392404671045586004622717411848167386450627557935489074939089001225533372806947949712663884691446844699020551854234199152964844282254565250638026294865732881621443404603515703625373406758431233903827898086612440768754730717530175053452635211384848570868330108419388318081343240490801409055582465709140647840947508601411475596020249115647483226399842470453469141402764286993110756163998039730220956563850306990741106236119647754635179087378717920446286606704915265682831235946260790395456954098675703481358270901478623950582321371709725754699620996775149729052208917209233453954505558363381214739394276937582303530422665263810798694412194770232223247421844988156484346075870646311025068467825602513903869692260769994947952820954799186857389219409477521771913163072074507052689096407306712548872292269091149758353892846306131675258594579054972317424512840849859013474390890230695460473608463550012681319723060824513406341693885739999099001586132309297808166664858193843051902237316803295331138290185237290689720044449838724448198834554011009250087782535520050402979949468767427750696036062951135012216465334180268528592472787871015099286784058052327822671753275116397409722976595393197935594073755776069882583631107210688049379560595149572150669653528863808689450106684984871831703651992238220191531142701266915339665680056288661203781622039317191743967490072436613517951540761541856334767317383660222508296085630912613298975705298611770631840375753825516672723516319926991368259410342906732574725856927449091223003049058429271968707661151159404343966800926917544389073415322875885115734877664329392572367753469690119176557742737170714720050589408365066639512055511456907132610346869605697411476836769565458068427530220922291107161454925809496658253856304641044803881134253409096674992371358390628698470671767646590346658659836700673015914940916592147529287679576088534223291648121492533506822134043146017995674000320960881254192548824954867495914823204621125488158809981864725984687988501983930660187427474597572292890074727745711623082596309553796654464001598711045572710975232841869546742745335367009343096353124386855013128781074312024816405649236796153979453173872327282525356104113051949733399230282901167958606615390326320160132150819922835506661663890203244068822008827966041203742082950136528336259475964721624851230229602167413089897022268715601875327445659881167561756948513208206090754053804152368812253545349908555497052395262500559019282272536065786245818904684832261775778180362649041651037770182704971190126212799105040345322718651291583522291172528715518510429582860558046411075553098039960420732995244601235023767005151908032509221711192728234070361868543005306834421512181166208659491379290389221502261102446052531843417977656246724228095265381856938127393627572020699177637915230062948534787017877897370428615656728943930785183324101088538517490076158108261970378279293684723417340422039571973354030627595266076809337643482049024083061861278917809482260056137178951157829296583804280603854658430141352041283369469877706800086795653899301681941180436828370359923736933625373180081005331860888723007350818947457699620767608691467146117121284835637134325483250696792900353207205193927639500290731610120629487470042806070086187735104093580309593612885109631363560332884908875456099097949218049536154742342476701204659856240675266403159637548331722330205910563326321295709083241714519141677950001809626475282735911061192869928281968580330665920726262024069052145603968919633605651364196054756383638579122466423991574406857463138465082320988672899485319435045458378252615602271485674437180337820663406421852650782768409457755206336885638539598213771966574668134710613694736711755991630618765645727105570568502685355179761198741875208126078766551854574446929149169223409175442200918188652338518575091278221644584282694947317216640379316392067521078720902096339320914688280191526793072902510704294658023464039105007148766290597206936425381496381155081961668394495781140952299676776326190783712207877719434651474815502160479474572515334636419888328097372265637572941123974027353383807199518145305033600841314039265001150379827547024404857643216902074256044193824371697002116769825670757473158333929063935595584201718024264214538918685984896524845651588563490749392326605953969906774326794404806915666825543176649392387719954312419492203250307213068804105211863373419722293864454539760092035044652638524836374688999489471631283956110312042557596359124029909807003552403669791897075927997800002308410380856014926989830350794203027367288712597601794802799434779856486316741423198569111822178547905067129172340449697041105621965414707880892964279304021633541211549721634328083386556310988171386147568752500921072634361642394587002494135133506766916134955636873335085069133075553826115092604301594251233992462604857209656673806673408274564491573801014201694459125638567303024228256253497911478828931136268799661406352261875625006157219968921239682167120767265886734350586129735109027030967194911480494149827943921915712463030852719935223778205154876149565118002433067609666885696264672368526370304547955937353107820225951986397101614302972653204820338634794099649442457154020038829130406965844768831423428217870288694156380517384746582598367849683733219643475060084068618879448142239939968092388435599441766125150624425177691062551134508849633148053440106535829800479839711942173949837656453661269255200830830788835865267875312822909494167878673026428029229447917100745063973299813346412246190466723186950605931905862360960079157630550969562801918878202811704300503504866449866739356164033321684601349735929220957063112535662358168498874388870291576414452263436663554018440443374687277723500169706812436702990550334535011986687894647199011220565752271549536056454517882028725379957974695971472215158036744439396974192028794440207471338598510125539917344142117957846511456850112678117628442141309920448805371870103531153564884210159678255197977522240926327794960783170590960736945378656105511484932685636405830127961838658473942645660371086562816239760846372991122320006441569232706253682366893814258849368959752611416975782651396041724648824168634267471817687260049748009840403043086581881669051843056528445276139796225518786121654233780484905295263168487953730302002405831257779839348040289516213214832722330670463188058166787067691991737785403930236573371036962175120057869488554653686180781570064410656163893196641821477368734845213364326412995041466903530865694349759021678165311454640524289246399823302390930365103103508948185493713585611851678906066878156868248349997933681957957369581215399143384784859441975506121852605001029850828849502882771668838170577155719945175659031784522080194645511992181137384783876203350448948720237467399391465321859353813745460109459404247536297466253737569657265712689208993282570219228508932213911330035634277850536614435531414210757746567842974137704001513626215173697845406743142036469800479494031409971416351844696432215114309085345261676110288250446690605726913738997509090161600734954168396289809523686038340722714949136441337411137347760392376425596489357749160272039349905220825818035523943745787927476601504968159961697570664838916876461764246446696133004178735765754431092975687194199759193744074893317925746393272239587115475741926970412538133474066605195963250086082731646701742782478107530986229664928236389872458990688834205278661719210077097856684237194485468395753132125147672609849671515392454723397998547593617460695107895153460216380180149066875894187937057101541354799106728214425859552671245039940929178399981522136286296428816411445752711360206307346420984468600164830972423404130607306296897079988374284170959946349154217817925103514913155688410190015330471801256119225877638595224848414741093576611720331740156170372146623303966308903042985941225977730010818665007402647607963699412465737240720162884538246256932807849155358162417451751237554977707492502865845073817064092724706504701331468399837412488053275739868342625971073390543591155948212945083723266029949989867297016207486199509977363060108220087713390693905296689415394660957686839454929599829740472285919508773778842344222877666678143796481820174354456795148549668766851691828495149654126100157572004641686718856386342121057318923782416052575662647251105802029983840281070325059108543399114880864852076551874478893534137326073642757813898516755655378753950609064656232977202173663996482601488232455449378431312050175674579974550183557867677575074676447025670902193537438186325885533497186196428466359679007591797440372954709420110809287222406914784750654085443495672033381850362964949312015469028702950412759582378959638193651314146890103360824231875958930168704530731140103340334617941882271891778042582475431571234669536082718024732248113433488067586601931932742265973933470484317754498720589666368251961089615629798738523626465408947326337913683495106240805254667374675286648853472692410060953967490198063090099767046549113321158961792768367447302238997426332027403354287291943699198060824086418063323021850476370023986184919286039060539093666733516431229723918187443627571750197950892272379890921145313384049013690527959363114617611710175024863433914258349411723317043705369136233339232097241825424879113273904305832668353736452844477822704280191317039245009072425327018307808087655651388935570819628796291226071544260517416186192354841796429184640221009365468407659043662739246900432004720491727316548178956460704645531808837364472629933875273109980629692051032212306524445196248049143297672717048906908288068856683874672398472801639201056784400661682140845533781426560096284316779323600362119714471906303368310712441565514010049543329646408744666931163792762388184230430758416111225620489666966617196988027413457288314084396560703092257250675338792017320121627142067914092945761072616595916127189464743196055178192471914377297720364201679790113546318605777762037713190679477075119012150811310579093471157548224977702622791991757232584010349710593492691416114533981853623185734953936298619445605304883808789380424296168456485116581937066975093760668389524036981312093512637556202448996286003828697260053507921892879755297827941741699094452858348589239101441845060982118421660120702541445453746987222334062628013902154552375901364136711094751950227323870106914959808313687065142739857988918009600008657409950828246523560276784522533660747117288920538308240138970873893142472378825658213951975831367015061002580716783803419966388298702772745994227630137488967204909408811210109502753058409810786257217436359929715529556912765235770773164595797071252346373044119532738952377020936545294482020830504725336325008850166403388470695755793848160685882914705352788115486722199514794426333410138748418414161902978052163061813564200256464117276896446658966267295919696447639371716289143478165308662267293999909076863004782365201792470685946554741151237690465431525066226854774269335146672210749110633243135768414220733372941423528077400279590825642795854920462395287476168650461462458020324888282586223423125896437933347603761226207388801750270195561329515718545643504554343877979697293119982301824238268687823894470848685800686413539478968647199634498418918080057577293023182730035742855810190385733562668560822095254416471952639997352698659534296900736161772682151683675409200342268751584475890072150605115615397006207375639382614977308704715537366784771622587869652771162930135786253741472159992350168114763156604587633443641054653649112101766043424593117977102770144799073273292539998643555589916613646146753987208699119361569032956409546236142443500004831840148171353061617329671096511823392671371045150702057304532966288202158111055342068501790512733782243205728923893015935168395146776093336425022187971180370230902079949295799880193166709620751220091381940918091327305301603390109254907094407944819178109353771493902619375420980415424296043169094902461291420744966530260384608311710831575400429863898550563925633946101819497334480499574659413539543658435922744260118066571661397913323622824075291387429999528602317654753231199026704651261751903867784197584413514964822888690431349921064094880965823715571943073698752745176678715071590751932617191294131690467444172630216894276569690972680426314620013309634474920636800495237457384529107207152377053265846091277442102179957772176583711301162104555676943871313226157108918988138043046606013106638862343068964323395812783137473993283908578690572308460353468255030890659578708180482050931086617756053080635336191306083591452390473319616974606293197093463726169878973628814320253367508983463417001551814536132199133033610725115355932580291667239321062629358988406992476421856779928373428704023187962004254006038327199743291186718902343181924084900511470515313479028841073772930393895846269524598550676486359713146082814348513278652982987206945033464231849976724219947176231092714434237444179649034861354624549250442749632822222567648434783987342278863787735779390582598395972621880297342977239368587248399841518486444500871283998901987714094458481178898016257611133561770246935994219936453187056512086848183138531959548829417972549477156380229020337818367197804312396409467314886327396249015480915875643442954478485739595256658288882105536333309919601416510868195360502598377768048138833325384648727116328598660754988778543341486753932364948752695400635938836377461656512441482872396121156818188318909176008929569627067091246598849510553151355258195359705777209936302584977363675430530046832079318384253380418935187455204664511628252234592225987364187571163401455059987756795865284162243529789516858084574127597703081589846169612123945783868667168181934277471571593075220940119469760839047177335114237414336434756946093648341298307247620239568775285547234785424510103835069081403423066666417301268456659175428023514083147299115756194286305036634701414824102388319401942202677642341551583794007178232181642151481242500319651039055586113926590173156386226787703324154266867136726361005570332513888299811246059669528471544958469639193824877990627023888784020061519070281265479045917168087407824724394844582605612607006738841072109716545592959903627775967644450492819457585112504045581027320141622729828273087965385086708963945725984580803924055314439634962283748373726548669006711591496509401276796735423195012650769302027191147600879569272336121128134167874204384619690507455416023991174624023717615950650904016649130338131763065761587900016458122782727752342052943747824557724534722689891957579133182940686748823593316038795703564147038806157709874877715913842016739745547517960627548098711351291086006124652097254711796045950014883564198054615534829289434979746691185930483682235618056231659066046071222335714319098874920363511206754457692696724311505120736262042742298728961168682214176676772138246410246130313588526779436824524116674663589699615910728429373131406501805728598877335621131275840025825203577603074954396281543071785847987405302888015164680633130350483368588923293361532036202640373093927692783626506369704886687792275381680875198756875473568759841834947206032449883785505703323869438138385283539303299127075562313916259694552923243986203204870880082884644207185697337425561100543150331003165047470291193310205282772587215736083049315601389718813837744185338470602934899509125479827901779768499053026910658178590550231795074932944654414876198313257797665742226162125162709827438485871303528853703634477750574502513999978290345857556371280018262772571830305179019695861353205656172619673077268378457267317941660519276221954745510000110591250214525000598211523193682960566322155664321109273411498447418240796776858133715379440190178470471397452328100587798587839935758165971970929816593551350621488248194477599740836710393812405195300253575136321399336691233266531817781732687525364240039631411024548645936345275050007917426966177043068435945801621984562118273716042125878006688300237648393157683255604033144195787158761066500723111509354757135215628292650496685667136701036527706971417182436713387828151470715991772565056041307581712017780218153663245921058081180067214409735989070771619623270658080710074917630369298091125968064706703625878203644642924076575669213363661168122152917030586546453622103241628140241091650967257080746355796558704786527229230655431264655722163912345617512574508885464357641766219905718603616011108666924497044715402254964646825392147424580299115160131189850432229670885503503557352539440731368829738213029993094173752793593448075157112349962634783286810372772880210783658916251772350797360904037327750213720391891264071339402789704045045919703836362721821344740441801677612321724250151808039811800096703896123098522010071455916204330001641345745690769312009484585071249754808999750684534466412349437378272170088362989048322734305531029929594288669963410525033749316878437697612294306079457266460237398592933066036305608382226776084814331148586849177174630001928737337370891712612205284328903360738005618934647885012049990333977161912603146145859595034588915827015987160809185758368008712048158799072053361287496420058609293193923089252198896940455026284335846139620688904608797849496821403641517749677098092093503486286745753109193527002831304552663727633584635768869531838066614191364621319313179635120486484938582300948985980200842908972957025757199347136423087915813809816081786811399724357796661013378681309956892287042085433457105119733698894127474738715653443997444622829184120938559605781681315309230008253043435202623239398171020667279074412494386843552076139707634427606473530555436606959189508055667262786040390346204995068566790616065146091391444318241023900735221941318634175416010726374445425752863418572198818103663404787843540987177120862764762978257565290406635303984433884435751901627192632736267859373248972462407488380740549579704820313035270133425619029800188205216337511521452074561778983331657998292809949152587042446066988353651629192284919351422586536620003225765124796879151915867867257628894776815205463897140283486994801366108292937372616063691261047498159478020827202188228991045123733202911599950952854448990987160147648000775000986788681333125444707896825773144770574878080108623442111440546435746134100280965626502094838614375684438134795566024261950937620661896446540486736922228551024099823137733835727985811123255759480649659838805233577401446627666374066168199714195135002743918110560498623657424258904700439379534579549601143506179049847002669086958731662865474682667127486151867777904576904292874817196276130261455497744483044934174524303940418211057189913397080355669937566362610580700820187706974286906757024343785735137905199776936851046854779720056339781614188566516271122086065280409590288971587573347201553797092265905850674610488268816096906159430508620501483068930455641391921426437760269817414425928496826440699441164393268622368420657966668190409761620865503673758844360642305631824496516264799521690472123796080666050619911379035969328003201128067099633656896491945845414538530004615247055119545613023551173644314492352266244546555506726588205893116788956636330197852726729885822375473304567939217662639718120708261935503828892960595068430402054593886296954038452265554014831609179882875957395370187562266889871179226713583020303767626544448022542037070393415184026839210649111898114609497981583055570304329870055827281769437722522328860801499935382614260674985995265842352689883233977036485553858459803557598301652368631339411901328396903136325111815826841465052356170357154869560689882602032820555323790872013753189769636955452698242227792554861655564394783727169468449020034385106210619323961708330467597196642641456304682709103661415159209178986712263405242118205131088927260577266406509412881258794216115332235166890825218167121141382905539195334822810112139400111613874651901102016474264492832047264554773258276721497829666420182876399291247683510872979567103417448891437419996526834645757611973097625480277752982879820259525835804631440498568764280387725818648557827446667940464172290638896738444713857517118288121653023548913610548159873844065385716036932951940235445479930827124755974463994030455349385331374214486470946167552578435875939259239244406933601294111882167679761903427196035293454833311921392702660379943410653700405121705191208055215534240829542542991477319412886968725711638015135930904171911158409580242474099544746956075414873823046728098312010069723473538898767186249099463432373717462073186230019633564034319820204013278685205056412017948389510965285668450394576390653328264354581149273360161721052275100362683572771033128732180438033435644174596661756536851498330400739452642942505026837586142067378163901780706330764136101210129427434041508132469947197400202569793188671177899146816359989926257354741818650739842015468001629255270414017858787991241423476665670282180703621506235849530214008195345233724771664205338577942871890494353932083838740581956931683360201944217398680089892119751178260792070995858020790369482062058315652074238159922434579185231374841371649231578485708252010750081163589079644099820303052171713355891205122019360630107301312259177733444581420964132124017626798838451669369422323417858852053770255995080839309776191425745760356254511708251393030243380160104951975062586580650195888335625615470313045428534255693108890560217810011704310785046381215776698193280036066056236543541738069068671533951711521018330612544174654015554113525207345902751361624021296411941550438299031400946971965379370439792730044804852306553586727255497933119022793954121671967393256284836060822506585967983223140335986808526502651369474686442281955155328802066983053147106154697102965538179518153640863024244619185274980726577633555023059626297756658907295832459719485851616770117675542490477574350105208462976289661206344733684178008889397090267283080912742832828088946334927742243245747797619392867646153595599391508864749987594561410640290550856398988276134673145165754254068168417684479150891374729320551262699218801305992692200403216022315390620979676760686317245345497642406962187449290189115968239770589420933316907930053527540420286759948439423297548189469156753703250268082974539699770479614906423213001743638862060818422413294901438458834883523541229806748266315296632693575933661135138419122008605859496016889575193727549396149725339207986203514882759541761145453493675153635888111900223652394154235553586868764497443155243233912012435038987018244137756664839758232168165679006324952278972060544884703239225583811637680781135496967174142508196880003597055048397371594131956631574096536865386406978822877553044891317066205434657969215388494405187311280576999077167141728303718611220727594949612479091540578256113139834157209504856131397227843671536943455365150358833837332750903250706238892740485483107446805732157024590808958382925491003336444380057908617102944353360068035978649398195066849587787078265079388562061944893869617220105713633523110935666131748516619026485887798320924267845145968488240840595907713877282354470077215723380600957782131837930392988067380655628603708106143489959160177706680982345773239770650989634178205617848628839982216384127958426962475040863047773555265643620897127951681209748184806698168789229849168473020205308545272612891932136799069320941659641413482196593445654439886789623133281931065640843458640053646850648429880603731591994628979341292477548905201975870691439936546736382943746043068277943043341000741756429489068695828528888047962973954947298648564475796848530712311060842247304780284523668358504832002598066766747336254272547624730510907229511227780356614159979062835865941309798060568183525739113233863746577531159214681300269899300530760701540788751422683829404082939351776702512843725360568069405842527687813199283190647396940493627474403198665769145777119873386579186795842333863555876090823932223891134211754134350343320726994180465297537665355005461770720016126533311073144773692472535416541235813305660739153297515461584265109633888046146009986057413325849610156976091252519029782337342424170933693150963064444453961905282087089370195946444615094485809446688604292095618873208602098779941781362581697070584400692680318866906976725234863021887302950681794959631131315898690762342400106644823623595281341869376042850073514230507406118052306910928080046012304440053109952970768736345512224941996062426361502648132906070183315522329366381711883269746928302870045973640045632072200594676563925927124983493653067797215241528761943228896226691618822688060759616062778565510909103542187431847016674542269680800517774276915726442183205633767312752621424031676438012258159804157090660691614025451295184186810804557806554867630526417101568532306880185500432479223695386258489186660988181709865641163502841905900509756499236605879069719153486984455167060875386429109177623529854125091834334762381579169599490169908334899878552634565893858510490166935864598421492893657592503783064795004232214064171904928603946381238256977588514775745017791147480111134339893411468351749452130244118388743937440553606681306947256596731026390295770078802908589264117065740424838179902245343828023936717751109003686854858231957740837424812002761290303309802549733689434234953508894073998231625249463458712864367837332838168762908606860270083715475902187646012664322550620545664278221753218799588172951988764291952724810143495007964738617601486323703681165179217078692270690443068398424310376269806727864957885989309793559679804603361414629184151226107130606344715981045368300009407123773697487650915991124827385618873036990226909987576853114677143094960849207072626285876276945832942352658523857844811200414121045329217529423956268021672574123811893393017390714887743187838822191831266265051162923727520747909316101525218159544968985389664707387321406901298020842533917197094973376976932391903058324417061070148220359408547072435903910714056421729367463769873575565440527797300556423280246145094661334102624311743844079705714047820643214064703895146061101626693740628090148285893497369445993021034117871340980534197191187441673956674719130194111497047251501420945746454758190224842482790796418173511438925262577829960467315019922314980775639498262853887447235135398792272832739350303218478470494920657488442350345750105123633701280059725986145727168885262793539326791697944323297816283874413544393715233286646284083288816398129443992679763377889512390482917688167229031475369624684617918671022245429912754304124569694562695773135534147247325574028627810183129889897232597800573765516755587504120266086198533895036182438426895972230029773466868531170396415822159320625478211871268203605029319413577659846058016595790876733455655896901026894000158433201497231353626865658944335932862876963410838172480091007442502731346435075104489440731798101926600844339031970341140170509660609076967901646072777520478945327432295122537693988746479790688275964563040857509079361966235575539467729673769568335380400991130635142682644161756683834205019316693554361903230883263829710313797840832868802108545764923502312037038137404179914046294104483851942743373299929260111788476189793751673201974657836473038680583754527940755925127857535485404885537181527413069539454830502278214235389162507311802391090628865394808017462232639311726492782371959142490203367762966467200704785867210840546913967848812748071025487580678181234588851633191942899423498839649187365885140347441559175979791970031634520433089148968811889823155729929434310941832046224521184065611916768065775220618387868093183778164803718664590865553518434371515320846736121205881613079595912143413066692052182471504035404755908489747906659847416449100070264865340393233503224994577972862764785185235295595225495962581670841964845521285657380442596542447081701117011569113087199550484021131316979297502421026692362310267930980122724121011618270254232677731317144950488361643306055383814847370088891045873081273806152961393860047077842220952992139574842887050923122632781974309862661052167083195871107582804082647099243976084111261127602170686703044967557372113283603104414223058747191762393210856385306287413888933383588867138777265368375179659244290405568294047782576888875326796405222489062046040919824980055891555096352040017544549478565906837610793371075816634888033270693513312504887858648749490264895785227346591691625536294599621213338631356301749557174902052436247070028488375464849769510432104661564151568843459290735213329844138922104420755039359975041730061127259953846611833085136111947855826282672918618292352935871438394693313314509762431179766476118781546516325374934871206658155587330703225810681322059409977215014208375703476379331809778654568902103416957960381574133309202596535264077169734854366016510498716916870634877804356546929068741704992788899136381369128549348324957950231068589130122460424621793751845775178018649436640598138947577374686093853155483391999109562351443858727544043422893132522481103461311416968182656190499799060693852585559617328561828344058202409606026140314970877189106641497258719130389615490834715420587659640086882374323039687828753389518442355954763810254800108079007738500250020770026947181603974219961537039229835179273545971908908942945240081747638669874718619161201680194228621985341594951004573815880960537508941463549426310076795303880908848046729979621786501319289876950118282684217037306333963298962865153730642203962428945763772236187171226881112089344724891497540798369871758825258458702937312179840325255170415341121646042119878652931430044685566917258893937104550332304569895648261817838422134490414405554822499300720711500414304668362396315555121440524969684751453566305930301512878177218926260676584833613625673007146603398001265165933596484774289618301678711351866755950921205245349797560601945964175984585138099207779838316113367702899872309942564285703187409365794734278766198375690671741010600439848896170049391607249725075768798462932301294505422864989253061136792222218697585044263640998397399561792564661267828794681058309569020880258661031744810281954838871977555269944248379206143134854629198330128059937723811086252322785811984677581962859883165540827817103187631097251392463631525714982766226292649238596580880977419164235517947223284321169148524965209741263037190731663364825443928030843340946832235784517007802668349755112107446730803041539354493519842149826136839304712020885414067767640518912842168271041858887740916431553634390842189625795304877354373227244180068948832023757402743759893274307654436371381787354153566246957281273025578234731342517713621504045798898164828078297786448356111476857932840540433527382569261706115252645140283115071875518964613089003956644487913142415663058586115936474941548372055640654060740497878003974246547561894621364063418433551287722286640636054337727813497690283703873798910443573182097898485459255848850574970933978144801007974017441916071723526829306938070389436466746565941324201600163189276519739833716698896108169741217027809854103927716052352937892191080412186335713844877377905677910422863389430223288460396529197115002170741659563840473216946968896312000046751326721420163536231540931519237217466564299004276996514491563639948691795725286280738739887375365150343847651204402957696135355507422754212384492629913251077281748289444274848890152067086084331157991496890999263939320445680309060639174298551842294984154986033691301985915103180871765710695418319588692794279924691418104322191122185815247693128644962565397657838386318999497726462881440682729480342543627685661194937662845755517576813281925603750898812338322209131825962099687538731826063871615601373530571517740831939677676539993955309731950086819727289270308310254132835878680063369083676733572809229196909082161609583279856764651012594763164377531943732733395730144752708410498183849688685171751057736247197632517019694635417964949742357818090203131338228239626081511323773164548382504491990171682231451603424779467375765389745863787187344743174011574006185467728148448579711289827305279150190326483256198027522909885699262970937340547423809983115509702901448023455179473121014089088563309416878943509887297205224702989708040532197047013513012778103096478079080976045053252797628080951309491685131768722458474463440888548586852646046613351121013342282670346795472741347458626134787186104364713873008422418944277396619678569854991087802654724375575918139510471171607046233310000346169452954799260289561650462857925980629215701942161159148402516170223242447515966070405349527926030103116622615902955240600803783891306960124199626834967210607167693145298031582221317442957362950446067839025403185947523274616198065720194097857587167487606628057493933307640097042766496492010031073381536137237006249936003263969812468761514063897095430032794790570337724276625918692156898387881702147882007089217240406493524852399764116962947006783671587520153267108426454039541045685468489565087485772059057203239334308215625410434531257947950073455454159207137796816921601891661182585007943300996596698365367241289872447822077441914647831199107190662977090843459422601703325667218293052395411186325923182546606496910960217360149422250276299241722127366155357304834771132808212295978467775989105807640329866328704533006499447799341178082632353053147532116106920792618698899547423259457876132092739257540625974731997495844254990356836908621543993822336463388407938572741214674616022268007082574464703652282065789255716936814435451528447267998151749327735638272991496859491824128489159661338419371507572347586905330113145934159079106487248452273130147764450000326254122710663602716422345686245594622139454071290192636838994638693279256132821016167818623685804663104930027326738652115575025261538279604536389880069193776556941286512861367340433024894946555815654458614012474751686786016127380501514647658989667192478265418223038915643565868355062188986471349022045980128993186503161111106291514781699057896025830450885024696213203655500149646854960873039012182352378937079738059530964856007717709107636676848029610285386081099680678795462961804652975523073335857739524309510873313655677829286222406810691254850225020274047157438973446965110964007891756496198288530738764341252188142313678067871849400391097485646549424535413808112278010765898111982578390644943273659391576961543020368858527409829674756860480521928426526066610790697235271815091978245992164339424239715008272097422214284743627378575324672787319118124729100713822626161266395142007530472082096914759958825999887280599166901494248634844474050416496269094225149456857704084048544023605222398429285566279368470373815422183657347242867400280491221352650607259428712702478587877236213058272594221842966177424338870029154865715543857510946356849660326013615011130361938616834465704475808125795108712864918754036697100724483689719961221282154639852123900635885637074541083794124077245643409940236460378141651372716404022462137851056417249652071743172546755257397711991351728864344542297808906093179769896788609951110655032347968633184739583429018711775243946512420087979523095306380924662298804319305024809470880514821591002283253206613971852076285495881217459646337094419638739338212670158815274364231198372516543451966543624831362391362335064404937437435729094652870298351122405068215329973611669032142592701297453494257353286117010141591439471286531750285090150413499194601761521793547383642535592878729511425129820053269644516150194036840101143751349066312732293542731212891086851752518029061821758716279563259259526072546192494278026984062676822106671605213331020686102792729242895622393101612380234480224406823684760960320001570392427349267273519273418033697373145676132396475091638214331408955933338422219981685755243657130559741686546134390553459563033521875643189067553994246790658804905248623935275096756175642351393859999783666619309249803509707455107610991896459333337261924448088446375497333416913035439571457220333607499366015494128162766717841983682110460719256429844523935069784011263890207714131749697273699175423413467136872095266754984135901503474605293327213796329093684660295934091921102803846290729977096783893484202321298535257419766267869658232470980091354295400212578413410890393604405640429444438928238099546527181634121721208917829791224841358848222188650299862943862071312132276429889546649116628661691522906757291970524498882260222186291766041199876760175461707119891651080397714218300872860278191611089011644593788190756405385332386781212887171238605308084828273389565407529931062760096349107508896843343380706533763563889361066713716777620576494500624508278768260012630430419752708195949830075680091166820319669939316214210336677418820303173890227832660182448097740877321606113248911127290806396345217742584303809144783369461544721137508627480669064469578673130375584088626274861215091316816996307326291337524285331050908377164390939379356895144349281439731466466675040336998392710982054525395353064323836809130714158357564759282445091759400979870876745238204827637077035768309596523168602377618923168739338252426503375309179061373714440503351798089399625383405556757500693546713731905235601004983418429630568928852620147900438167193058943989775347537266655069521950390542689584879854973813684109721208829083270236721816579646506950883058762722938418332952778811385478729348535711972917938079594222867293450954273544351317020456792429306085721706222424134824478739037178189510200166566106856357992443741302708438769777925633894995194047990467355001982686730621088173444453907177848178571729616234470503036820491218056397736950232060638893927562886291784484207659329267316225893353827685800644140921167264997847279954827593272167660525025599265304907527206946084781541443847683645712598967964522346914176876486242799451224822851884748176538637190637997368806546049688809659029176735587273030086645778731274492549904744421837380240622659273251871231214346679604799856291789820750391042171009817179320945794129341160517952796503583770589517051850273054019776969752849298966866234186027421374209206451748309770253786551923637272293597881231903447916014235074915523426103553427666013362960234180379820419648126121636114005064350865111588915856607361034303193167303832349766387580910339470965488952599523810962510337174426340671134005302839778709172713888036393260415576545752545287958329968782970686928099977616787267847192901905012789205584244536390063008251640217093766341863416374660826557384845021499950831563038390652217074104316493448010663022183159071192933952796603080738608784525198312317093181343960549989947955412139816664206435719341847558466066739435603250558735397330100224064407780312413299036890718849123223857867253403380575510765406325463729518671223967472186947997285844939947562394025117435163317334459991932934309802018521100362547129466214278092958898742597518835158611899129541523327387457627949519173633588247939433056088023822174957113417429816349072795971574107791607767460479133058655847902004552919960995227418634381733565008541701512546847842119792084629852642345898716176882817649900895285411482388244410537169008881236009790432781634193824080063782314455963800498921817039786959865754430517991974473011725210423961976684835526633974026316336811155382986682437959888067485511567026364893636196535250659536687980458435349455837813948700724989822847946346239035567686729599076798950723466618147449655907298439050391857828964293011873143736462412803047582290659125837498846279549745152517309922605230093984118356297828648232186341391465952960988857697134012154722072212488198946247040512817086708037653439793056525869118035049669125777483145355983089031534397320365908832264909574767397179016699481337751102653171181337859399763045232164835789864068164951230455831041458677413721878844966923105155080932819880606087809549524091839893641590281219859047773881320059005461453079210708894537482224021433415455918199215198580941455624026614483438795850758062899939116987339234636349084708192901170561363083119919724487665957914951671340900428711605371161815931887529817231753116766241321939868900952449166952451261254881379535137993925121629975276338037810820439742299476523190970878796566674200196398924020482815244047155978379993853878173841458558388036617023090904898138788683845215698245816503486733854608885644109349269541741073379175538136309232318203539729877825688034883223128765941697715983895278552122569963163854334924148474678389220412272467117738137937509564245291221215668911048678288926650204194064955279380831288126597006758477623121316144893399562256196495230964418634851811048204493620070479195143931347113266068005624098414208044408734512912288927894055068761483134074887473457154658146607328187799658952267139375713895833012431442029920766634024437709994040745588112078982464905115655588232074963790785422542801569097559801707171680458829430958388366628822181077234688629578313919579617866587785219598145773003114283492708565364599569867133570673200895570225582215062749769438107150224827612238740002597921646261868771101132387387171553133642042007011859790571522943893146374274089379168291307064463256305613884805442879976294832777880683871390908554441210296349408073539356668982404381933955998479059565405458781576125749699401302959728098517931489988797769479886139248627126753014891992118487340997555725913082323695423748384785697110163696825348001973711808408571091779311372075214958660003789508885056809812325652569526584057275785809025702413191761436903586064700158909577758636358020442807143363589525968113131516615818893685072529226870106171817028884198785603952214135638227157053617496540093061788364608744579939198907508014609066029500782014485854198824254177907918941985823473056867755205809034542817671007328739174180861099423981276553166715362814592691868934858005883913430550994297059808343907831707495808360994111827320351428964629667104041748721758639688312746521103749332961905523600156299907253539154339108171797726124975207048924687520859458266205682516582915119582989650324922900066959348575099495547706196187823715058221781453699987578631635617985209108764322098695187709268399772150319270023127838196523362213068723890240723166122190511939584943001616392698546279032172909042126554320480984544867985964447658236663319061858341177862805547728687889651348257141212614052955319538828550136330780274749392307193726778259430883178260909295880501683730548759783871297578092347708910191636965771680998390990209696638809971504295769447502964611697568821281768079490225115868502914451816264982965857125683724036861372226845244043291058148721393583653955635989291106463211909359895138786442803907266021058241263800511221534037739890808959618817611037964353128296315848579076604818735007415124862079260966565171414117937046017444001972329403085392637305482065992673063426715079100274851914291016712764551197177568855658248909763234702039501781919839839044958859681637785602915509339026229424104299466615255926930298161140701270261777347438085653860088494276992902477413584037372601654317706592181040222280189757820419270519624185677746241948052207241577745543338722142134625758915731470141663976466462484294003852728138865742746382115518724401249097631980827206626365608425261660500538417307030825345330435190791304384107348097182908000404279243761331301675512986615518362466990336055584812632645938773100654089993742303263275208249106633098411032457144494783164004306261147567490510065814040589763850396419544660347408806825435993186629393710961656620988348898799266841271875755588165651785787959562619903687958068049595238137882732432401455564895908877920064362230755234892802829299937373888369294098311000698802468149522139348196992053487104258621431763210520078747095204757318275240413570839561673339557171903062665031245443801445996841223819575969596625564031996198218131428766072737941914336684458307045715404620476067735712013279337800103579937420462610703686921237050390628525873840586978931734579252301208956985213671541864940926180955223979910310141346839172513153699366516406839214713451309457314213917960649271910059714919245474630593087937214852246831222423577234986553948958198551652322836812576474823461937226944638408163629689373507785109869024920390956702397749419140494139726061394070844981418859249863860359379232250052373945378168720153480943447211341145690180132237751646652400616412529541233619360362056802673237019117794316789850670470467330991786400917603874086069861419941598452795107446097078136904263782079452967776769764455704847594107922546554931130012969881540857787668876652941879801564420737655691718680232737745129264998452974252820659550710494575591581665798677524535010096907643751795596266789101021858650613485747121717033230612284328965655044378375495349534618346986969950519183687674984627180461141433036072433009987885951989595076585845029308748844783040776000949670150184155218359506453710934256669986173017825359247209834292111171822446336287582228609032763834510141893768740567104947054601494508710215158728273169429129581947119803664150819538833569320854042001286611454113193262403883882680004634858542339212323728752861069186307434766164107822438357580620956762396188520237884494224878395687781343179084063431552380465261064545764446280382875282920531863075200327276385917410355931155429025306809872614764174381953689803898796091472732863057523800593851891646466690745232974977323508071578811945022580336220003318900605938630933016825908447830048056856679652540465958601142856799392352134494939316712649448546493841142800972172292985842947969589005565509585708244502881627308855180875711919977383025910264964876576717733760684555452779034047749608814379721587053317651085701027341365408144264688337571394241458684430959386353216773849552894095530055718230522676005387855691879037079994001352323510560512509295004095062985956432249391724760298940232832577586221062111253810618832740346395581171530106974284185372385460894731250064013253169619807771150964615433179398361965115926043550213964825474082041023636031373040975483354875352776919878559404247937903724435568549611179774631314630560592820804238527542116299981921680657431693484350431092115703824200001117616774284681612324841808642662433513994690528405388942841411646957446939102868975914933378470609235824750567066538188796804759811350698771897556684103854362778601781604817712265604213483070547556975943023446715287389366940661668965989697119808572431065497839748255291951099106085206220641484094499283388408785427685139067543417985434732204368587176605760135079975328358849250060508436059497635491095950269106332718699217919765898063634391901734716963291427095871618346198787416907803163136312527501591863820955129293274424913564410088395029478630318168432187960568193357675475004325728689280104606913442108209205431864185697724926155804805228108553681550703467261935811047050598107823292305945686521114274031843235915461688103602053357635090755504224997964581497822652882009570698563073355714469997899390157323139364608006307609901042691936028011230874114374664376234617117906959395237630231016389988116833518593535515390905261135178513912700975944729166373250910315473417892863958560550037121501516594068566980326588246714197923275147306082500524421059857459571988545092424937164683034199714137994221640444952101127899482135740898257130734137448943618611381966918833591983635466170521305884777028777546569741033295632679216601277386658070509426610924596293935372294074098760268915167729732775639852241504088316849100173040974183387666813411968327361809803996538245178259346972344900378123268503045154239580987235355348332251304672375246892817881838941297803703958921433376424308534480043145800960552081045140592601443101298272782237615149231179133580686498368003087977928641498935787911263702676190705169181438924296721239199293613102505347072068355853084594087545791824495256103896949248816235915554694514550478578046322509889069327282244173368238537867449744453022047790078479607393004559185469883746737509141948054304214558362307390751820076219400626995165606944273672817119755441309933155495499188800318226629984785027073539721662854332280745368170878975496489942858703043120120269739435442755053788286465291322667167734285243014384300309839976315269710430617669005656398578737571529133676946899732947838085458302813797773467986040346414310460871295848431164359051337868829908525825942612578492142384732339552458120253188069892858953534266264509470263449905245740612905006278023478274276515442568847484098582961383498939965603501724666107241973483792588306200429230473343395509059016049464735225614013507468598084080768925493353623089178441370735391262964590364808451969682769371358308354128758706113279005335154150619405321333574735732649885095753524855514278990699628411286453174122519021154882123529050802577609332409774172733175591037384939834940780579755420978275720302096807160002601322839413744935546517666808446402095705260855387727508781448518655765772040932560355931027613563020121340861486182276089845176229298499787093118547843985270483688302516210229530174909341583032849234379898414407225222764076366662390335827073551076849781014661105570396720377607161983758392329884355528453825716031765648615411573217309948750424005094179268860187823584828767629797693483292960070633183776593271406345573238164541406890025971437324052736738480316381436700295926764562570942308680338777035349907682142012568486639028423056351610300224219025419251960144688100240123302030156672003316230494193511488360634478704657472637517508491613398085415483839949982143536789015230214738714987084214154985495066017726871709737365842800108740013896220097374532361398636758049969647955683748906103679705193391438037312441592118979036985999488800098902179335184952633483156938012397736630754545799191731822752650000885245396956310526313323594388477709601225251180609138434794745879308996177484372739951944521452742335288598183584393959216003024056063778454202512949428624422747357840444928318256446230100780054921913643620818129514510433776592691600337325958346604347395133908331350424062964151083988014818474557155691828286249774521945229433948088482998422390273565524969619168192975122100304304603337880273248518530061590133796778122988587238115341994369252408729102411437821388971251192855996359898094166741198711103499556592145243478571991507516616458565085172907722298737313446280315697051012467239851230084306494871134995351165027678976415721853927036184038037396907433158626928737740722045594053472803637514314534746514847328010643950754721035433874202853086609666406401056152773505506435979108089598181229468009242214048497508008881050370553252703444096800635197346027030274759204833263862584259281565533537407697432063933222421840574742066417746817535127465410552889206985159115227301692195499727819094725977939706269975061582887656043390426502723875331546900006978308190527089148558080852598140902537365260512429482318915802463927860415556841192820508552653551466041808001792522985616198757054092442248904103520772166266568847370174543939844604569129505617845207245849671510523830881445380684743083790368652490232286963609674208629111337987452837376664496336152620331024795090893830777820321558653397419793581703102030317354917495965856386535720461381114689846080324645054268712733618522610125196312702293089773325574499190107921930793864528745967656691258160230641033379818760930160013046898463828222150274508831420360121772005184105989131003596597315879299979221569002796888712257026656994829843506907504668422006883002813112084544374163526879192870264517429282862783353193216593857444847986401293005179540945953229782351391980900711922594013644269011586769532975188256391831702154454780764687514396037375526632430388553779153064192493941589838142313599498715556074711641336082129979766952535541938437930506044065246793815616636412522240772260902540030543907098927528379806225154408264569536416187576072883603942224314567849781750400297913368628327119323765040144785937304180900529461261293485321287677837331175402784471891533663783859462883100537234676302348969548419448794626009405618380387010541925365229912145228323732721253955507629772913936170102335247466876817141530666526293796798274989845180598584707149303549231830264578059114709934206039518054356340814158679000535953760113092908313490895015047092715490629687749805181874125232745195788818855198270227218709306008546575354970671603140728047746379133964099127181375435879701152359060212415487363524692627544677214711960194118106909712423622479954242469271844211554850549497038835732365972354055548480608475876944246762268055085062116690201068856699192696866657761995737360565650712105670690102082184035175726987887912434635349017912642162612438410826661039485910275820603267521325195143084438343773322785649338934499234289299928852075750577878619286676607727279935077877031593125241255967571911267678531676827244200101476330384356610672916917351896849725158126755500293926521001261133422795803604073621822415115011698273276609212309847623669988682407944660749321787028397746017239241319794161907659746313261022835211329270450107118060010718228621938438605571359513308742824805571922351113340175234340697956782374492017628034649631691622860366963199105382285415823925420131628496819175072866730441225351954504814057464235517690145387229201590741098163476190542292530615754743596780752325065826946416622737347902609683439461261159048430022798212951162403904521690187206698900510543726308561466288168399224989320699560099561060024253990801976470212772862034723326686920700204904450280444890860435970046637582840750682332977018723388739514057086363298764442913200466595959764708448769739405637788638072167258351874502480704633521669709589321100508131934846636665892585215523257714580516572216187695913565002819213229950469469714691203120666362643718545100224873460919498514226665343767798368882062694856039531548996839260955457310256558222329736900740333888493334217860821650369336361269825862091761885850115187107717074190590108090738604464060923202794088993702702761877124542241037042592748324207437026084121853717024081241533834033542223578413996182147452081358389001325133263421640279008804456427159246237617958271001634296332332400456752701192759473899470916278729265712991195474546929660158523652054797177777609739064734453032869343039419218651328903592287343768686232574489512274691271257139755689614887495377713842869214915546600867813374953024688353376221116308800774997471737444370788014647005932867830402078500379425083873526124901093583789645076447641727938164869224982298599542399402027458822994692140066408978268536423257343876523240219066753346061437013152254961782396954933458567703393000214336388313886829749096417218262211829172544234544608070735096990435765636957187328050863967913205676617015494070295008330830396286222113193336736628809858246613449542025865372473393998761744515161486735293589326241377129332448018373137304544544533696144701553151757070530246577102582500999711304167477433694049708919592103623137489535564207071063290610443322006720796792119544806732261669370931539230171099242093409382409176302783641332965468243885149127751622758689499197013056748624160399341271101007773506807070195942697351856833012799275457034496214998235335564414806299822192637371899826168333928562217457977718455035620301058431493444148427641935533638212254055139226784451992937643566637775603342183832257740653407764150455389387221666794196862651172848209608586577018217464939326345183648009662378875790257717573983199284431577287609072105914449418341577769878194397996261808448193275858495200959323292949285018768387585991800672725624374497955046384235286449315189785483380415785066656276504044490850027646244532166336438695957632262311388130111964585174083463223582262459317531218185902589403810109276698600972195688469273042185391474789270206859196229206517846343855212714309985220956547056889501924308949743401146635191189528337780965174786829249147239418754402545449605764213658544970785923173638210896052148544414541603930067737987104308334667076523432003215031920792579542333493905741207422015381043372304308967700887883487031282807793950397822645525650783587267250711077864376416372394706748551915364448401915360432763685102361181400276744620806119498619202689561777568856023152304779108406364107906294244915574657646204187986508191894605926689886641299044940018949710726055467478375789388190208989264557428710803723337988567375021311903815202664441071497554462338938973226122434056689489137478966516015915254387801822917156693597732883076806835664577847289559286956960942050189219325328600656191840973740830318879690815245952313801930007295396761883732892405669502734469419938216875442966177097044099824213686753740573463322469986245632627159416956880988070129126822253662909824942335250618418502000290975538364461554588174807178690971979502237545246992076939084016365819975954113440281523275711260655423511214416830963808824991771308621000735533977235669004001678352910346077232171935709887955477117309260136868657573180119992802206525735021964499358068026731852756948517732878671513026540075417417033116764858621953207554708233238965981815729083334824806157833119089891593059970770156396619077833973455892013131975731214280377123730631113331964052322130407476531352775027608323103575806495149976497537625508564781541122427140189651505824135010903074213694105284109885921349512509503730285786166968474983485621658830967081703609956001678086122828625317583386411690626382488088349211534561157121196314424207969940899645564211852212149314821631969584188429056159041745182646615262381631359857793096235154459288178711422828737867598800707047273513881607178758554074784893219981266095617452101788692104849324672983762188993312051337724518692263729309762867154309225051438577281170251601672494627767988899343751183139479133341665310860738058943978967140741965977887382668556774870109844833096608807424495430201450840183598185850549236181283560124039418917752279749634403032068313718659540983347489207836448294529550382002782314138687074442174487786310352154549156218767225109948794602212484079115200464567875299997037610380800209512968815522991588564500426669271917265950900892708551325704833507866282208673510369055252837564110496684515530519288956196569912865429550798175525437432476402799402767944657161029073383809287798195556404389907331650798480481134491485333177312154817387566769081096826139926025338989512466644737017636452306053578713736921986442740591337711269301764624866282290736296187977181447471733486727762371956109372657661460885439408858325276235589998362515828805824011212488582547033363793125767667435118839171315571674437660603131181118692169218431034164756913647916261072997175961974507303028068114679571755286011550988582987189239452170872437909258372864630320080087009336913495177924897074524436756121823547556326394796810554036616538753310978323044295322180666147237611915293698476500336116673707276707793965976764345213643882485190972830211834512445892192824079375571464743425626920253234142820925835230236209150295674233915676030134536855020113820312894496976758748241381025115842749412460498064060528883727357242551125444174496174927396510541406278552673426139562519977381628448745780424378025905159582019845345724811484609519392243295321177923710254419639577155120272920826906877656643655335429647749145917267679280158393177495208600758828255090594862638061519951579293606089204390107082879748008819180405706240404869329478250691453078047977762302083510878442689341056161738873520687502821764821851042292302994831601229976966091130976816729051476325696097853570608036542500995495362575549428896408908337198648678489374980374866510026681711412591888084261375724614890853475600106251486638484064528840542670549237819563153432963337236902125958520789712189220023536557094583119366792255839307785553051222560639484718477864977205850810781202814873859227149789390856874438462855662040667216636068573179723217631676162157146430013495746218121729627743007461247957158153327575918424408749448869144623761362871201626926839549293136306968683096015148970764687840942392705692300042287799414487414292282557916862195470008842018797551724419010166306079873990156736480178059222620465927817269536321348690478298997310678314386501922125848987967126379630419436336979450784783298374829505550590219904852686175446461446895550012481389153611559235846522682344993198793451022924096660617385449694660000881437950311893198442205456449855973146624425664612866914100495003952791824407343748743841352909580977894791564106831224369074931659492202194593145671442995426825026961687801528537453442006227659934827774855851828496679365957126512975199182889824075025334830148027617390348832848077354957234271262930510828531936740502044157528708640913658102530036601740652924048402080287377621562473576372589439000536885577557971529754156845304272820975022984574352738855168894961797295376004353327310384140899632138620928258235008099377576738115510834115220902671033469989207426610142027945184416431191645922709497189945576913930308336043158962881024880117195993415626152002070540701913947691387114003116784481855390106680671646196633712433220844797633996995014473524152954938284789318364117604953141102854719936118416640927690108629495840129066831755576379423387907395941530138912904159291785992138129162906814003397738389402572675414507248552356769249279067299006714957674598639751338367625018743765701583017461085690649702668341990184026468164870538387241145342232245927566255563940590267223177258443928986640196424814682222799354163326438653246124401087072395195467291422349043265420664173370111314070387346550569505861896413355599176205593170486392184411300274138083175454988541421911724824974487709745103083437279731675774271191484329818960201755982449139246995093033711380327389626902712384259417204191209798729899186349995144213913067094017017015789101917699961523063430269113220179032565073658701279717754647637338828983848858229034075965712668854238660272519153348696875137520757745835173775359819459648816271500061613022837811571228420137162158707550384307281711772779179479917740042648639264721327579680236770172300307002164711080014502544682719081123957949430537940866336772047943727018729671581546534048190022089076555033652901961355478264425965472400832255343150850269094858672535160509207578817359117737266059115209534763539187728711491801081007217640485279838754980066169876140631890054019779483641196734901427436419077763682297532097810288857708109659782501811104523366749684720048961949545832547160711716035466301688190041229977860981369288316263557870017774527427992441843904547914942382770583956487971528790193776226694781955092164004719307170676159184323807496176868545114311595416702516872372725628651610118701507006016590827056050650960555453188230844060296104554655017495500520610163482034866566096319134732048303838301565348031917897984371194589594226005710305377127734980299612299676498668513040656224187850804595079204783138682420060597846056404539011541820838938091089877648343324520053379546142919569614471712064331848979834061974459533315993260868703000813908648550590462903495217660904370397291741307303346921930197132546981905058937706554304866969946663173548716373449967266484279375013679179187224978806048407989051153241969140533345818287572869023816169100936713395015038502193915218631918987224019867051705233268919063508023813522137725831077080384038799366445921867632678586434814673783994192930370613397802224269575941941607337968988973964845705639710081343349092908291321824271785442627627488783936935789571407036950087879942180629769642615892564625606307061920633119903530117541207350499823609042939949118665988377205386924447589095469685318317144061349866157456944355191280515267530484990961902552079061970650012664938677893303448341250770726032708166669695168388209285066494327734414308966141459665724135704044362497738595374124267510103662316542997464140951379671708382906954471491406087518828648604316591277687174942864411992234053895048323281732855498153606901394469485754775897367255900684468660847763605647038867742387892845319929907576916494870600483159941359497509723069329673179406043070944950404077298536805477459608946887113801739967859320026303661099971289601812671627321400929774945537159779864312204587431330740519111237438488951918971581754478257661932292012078470093591398993661351914245772229420540599476142116338848028714213704971675007808377591821186129455222021577874005847215035179980087044556014222478725611755200653628395841857788638146730967854942884419941813732090797836449344627447404778873643498057180442834355003582755861839740794480904544053596320079584682078056244179776769450525213383663236078515079176369667420956575378651185826218235475150949746690788220919209518499840766010929667947711748184088044811733259210306845094649932362189623525544830160456753966617021679395664003788651605034847604098537932814500543731465695717773890159219266954835989816030400201928080115444200801218971692675573320614281794878829292658204406778367417242410567361742249822166759893008667207448722408260414697319898437903594422887069798303568726532051337792367523416023300385053890672884173873479340515000343558342273483606840250906724823717186593030724885759811155602794186135118859744509432056998480997815929838309284150367575326137843066781539562514790070863322503862510022689272132065691525554853143554199198464018899711861623323074447453939788698990423407073501439518077471907427256025151372219007558038980249260289933012248039127741948889553512379186081179988255970853951835502204489325135270433179576630207724862323545477774516324986734509107560089401691470576716753012229073189162402769256748595725714611864277642646729517574755670468145303750308862395644461188587014850310659671000667594975411704124334275397322045227308437500471632828330217970816357380287484181777137955077051868797017467076455092270534963111871179496586451606945386395977830580435666016884555916872378766815063138453805486874067047493010690943682646061439812362131730389216534638394934603513742293295904432250507781628395452779135342969882471138424385616504913861921396510550495667760088486037418553173725749554557826168823666576472156539077103131690174435886377476534805205955462466281157329006481803934522046594718162187950174522345962627492981718056078538702879399758328633941333603941624740837288670817798708903632953623647026749347030683414584271140625967478328860298135841025454099384066984135967477096875395147705961694083883714086461072068768273874753675070686366030724048875117918052705859265380868913061540618011971834457328251532531181931264555884728742417991240644985389174478376869958254602229950429949044317296771320023676657415927135991773911155667823412208299020398861926284771906090023265642413837422668696425837713581537691480929883397960445435274155152099624529517968385651417430750265577617971402513853558073678236617938784952862337834544194079339636307525325376496134981124880536422724429890583973875930797620526401374658005542674252354252869346216656460359672173506455517465291505756836714152653598913337647465593687397201291500835477068725381445437237892753493644296988196228977957633490859297545632031395785965762532477811983916897049533493701985923247346329112685697613489228225360388790256207164995799732166271085788098195489369490499489065023652881370611034890319909673814229044036972089303929197386104013836137774755215795671910131509766752045552595363475083833692753292024316380275477450077811386102340748645456707186112849421317807332453093316034518375847013195289293755179981234479463603882397295386287840146557407382879936302356753940279109429696180147945105135182542140205270240773982494876453782976139805123238008870079620544670323959576271649431115028852315022994831630120580098778056959403486025005963449664519413892618539371480164597398667886124654806537779316641118711071842514523917274550654556769654083857877901894254913082967147573071547590947400775761352926673005199852934720584928532201732790515998138806656215138013707912002558794208126976954525417898917626874233575857754149792529109044150801688827595008545278768752657883566973387368236874223542145125144229212991022802131869087643512750927269432555773369138616328947835467945279305936634709566954868073927494308928082304863791295829604073238828641300636804663349438824881581787479842975593233695108222232354340788523903659095221155622998219640086046902694638230987114992330138730123458838849008788721440233388027045918484697180160250596728350342732472349668315574967454897514005232527294595741443154431990679118192386041504935404272435822785479716037063984020753467824349577687962992896334880519738519346010434768297980588678781800567819525401058230920593553748162095047010677689114670784858851933895680126169076340549397937221687760978695193556733520617563839350962932406056864182759845059794352660868459248520452015246047974192990283081303803620654569835144210021972494423516222765672314322720528568580707885630997766837736940828812952589069511163321713346826721738772192398409319411686242651397840796102285453692514662011295019534039063698024628160710520268337022651914762519253505412754235922529953878392991804590376544760775880083246204498991599892135589692242381698616574203817521969972473700210444317818087225724857728293638254303363108758744481846070396653257543612029626595562808774953137889250758947472945685819928100096421033437651868936179528908144979184418664909224426869031939822934489904611700447002873205243599304187841941199780202657346230045382246846011123415717986202876500196476202050664264382951617664309542438076300233747989754813933938472678357470996260776209689808748928146964487050869173359828429010794995746326909415956726546690155396217844055998044604740033743243377328421475929251163257965922635827288872839470800776895424141662896063780791098414100361004210575376241266304956132893729927425122962046336312084603897242812834500433840254335604687502103672808167406284897652082762584406156015727497442912480946888755371949601696763758248648438788439256325050851439187675687275780001843588302869695964404681477765789097365789052165288731746194366904709562161608892053528234197169704961196599509521438165557782014089870441314492312081215280952114133326988094816969990009987530650994836225188202609168552852324785290374196035988329127771609891723641041997633961013163912207271868877055417555054362478218622990503274797583328138056324480819374448887475056869102351521614392137721919237035862487271825365710195463550106126789534356429766789674797927115459163425276688514690504810748589944497219831725162568694184616213212951773048964685951452120109136154152672365340508829219484513827184659870901387878452583331700122775479006444197201235828957604720916481990313865715984027861904883364461309403700893343475192337448778202592974099125715306896068569206890251469821032037833348363593864378152700262251927207862072082263080394636239182474843980749380114043427697929090814157711317008124332317652913905888009583192216166312996689639916550009838285231421683318562550123883516016835737628421287317671241044548548503657225846827312325185589150389585666279531652777491424079117454635477677258072420408847173935799165514423664681376365034467121998156215139513708513795258778475409555096460273670120440383199559787413010530877432822277157203464951226539390666301003824648376236217141696911996477632244547678585805308904747660954359368734639234878404066393078734785377087848909516003987158229335652421011160158378309401047330916366898621357136612792009945065188463456674712845613362303208068761753224218719675827303420705220514155285864070974065253336408216015518720297559911032043221208139443142506463061806430622231447307275420758296525954035790320393359498569634011899857003109034456590045924394209932072165151101511476918044091129941734212599504465488366597057807805988402472041858039109119192313842296494493370668113771194873207868208883099090772721676383233319777588901894713507262441194327834713222502082519352835780304817795417144945213524371783755308819245701686884822728069978011805252306768500418119777673339225783180212415338217298731706603526189938302270576031978456005832251161750470322595042956741406216830183951611093925609472208099109365959889723733688065437669576063529059284647594994069258126909907295596210433662292060232612901183286746311554101910702025367836310520997448248029957686114371986619334347540047842214523851048782502499886420567306657393215287102242972582063040518660001089465156893529084054858678315961300836681391565093154589457245572741672304723797301021157586543276953917715131911793731676225012289696943713633292141493196619422156734034851638123325803717163332751827675162247433155933691033657425688582843161060739515235642157359949610271386109220943110549152268882705931387038089830067222412649562587065404981542143996877853308139646585115354927953226720991646572384878089957508496401964917260829642870149926876268500936426018753062455075613262563688422261760631693622496920910579178997606904724379280610853373827202796254015513197664804341621725321260762878702888090687985064055562397680463563955095444899676728604126578893830742733723537066624176492007053100211230675465647757497196259266546301370903757160534907300509868227863432636488539301814126715677826484169181574712556450139036429388718170660211839620779309945749968211319533939670513335350740177965842172874003666448960235556139563862686665736514164691633991482284792745998997736439259123904920227854776557125716311684848839608668579495339298480700764560541061777849307350661941013108099817145084158325004662999295020353237067744680729058583390113034977447352514593036911159543340906703899313991060531538101150104609904225957716478028529037651221308670712160823769048439707982059240712646424042774667001153585444871615098198730471841103493423631491531343352837402498703996383439031444770882855275848025443339814228650977301990113574449273814460886994078150488219300727249440453682066864912730367949861938742313591743235046439757769886629794079149029341448522749936410492832486935719796141352598180182053206910630351239787481292325974749797356024272032036620996248975571249948325367589829735258598362602666214086509472121695636517007167164424635317560385554448176331895086429130123201677922853348655966710746954607287703162597672731483173857973294511726630589439957211385037645897460840565655460376968612600558143508203769131101920281594303388412602328619697864122584811936688982572716053412545440447500166854625807775890792131640901952341957119547920541185298681337879682435093965530728519764168699475354196682172278735208927112422977027621763940940470391638057755678349199313923243821275257475891062369122755897786773201824771727923224005943597847797969670807089235471047323713809353666283019507240538304166283459592566680520558997155411289260309067387735689687818861200496489076142577231206944694801325734491739597814329693690401237949143508449708549220296382991387644197452264528986045145256993378167487532665220884239364667246540782688729548848276524100660212540618105579111756298900015225518162413962393366144488369186205044943122352534492718116947382371957392887312963156255741714800719886167211373577329680612565144714357648258788148811719043808229209172211296576196712988599886075304180873177717816307983354078325502353484389545480825182198833455331784504269568832213134861344669564202176463062993086898704083420184110259458555280332446399988842633120337026322090676934127112480807905037735537245497984918016880558186389588220515237405332942768539444086022015336018933196032487195697943319390000558138143471958736550858515874334667518496645422251380825229102586562576936140546335570578985545840117000281732024256179170787532162472483918624735248491841220490903583901478011946133327184304818000694057697475683341333258736623364074760091664386086909711343503257431733010072827348128840116890196666986687917473309671654081658563057589622400135054854105251237393121024852443808747535217012626429606695402780850580002238894775921211618782552649078526554217134682716821837238335941867523754916370300018307292877139899862102853443720764747387088771164670647765608370346925651305743411052826313091338460213043770617626129071252515482522858913213289496880720243393210624875569820272951454924972721434238719986334938141798098961098567006440034620757671247438476049420530748867821431262195535504997228716307766718909328579903524752968756934130950943022390592024906973931395934696704476727452235128344988797464229761110205279438144604632624043109376910024372877690266689961703558731566257242426158462769676257289809106634815772342131134251413057399721345778217465696910385144702428627036366582663208026139696937470697297704287050649739457771368231624964789594773660232627269924304832552032407970574578651718656288542537660172526132821445449831625927769382410783723242629743851898045810743286606557557133151138991200751183138414325241296073878350758100639723846525820157038806536575291070652789492521419241915943392121689594326000904770560835479406836067990256332580679056043920313188492694992864369543779992953996642796775138655823205271480512328420608953044928033178680354678750488835346907685324225577609282124434873905285231098367226068249261789144385571873140951913096613827522520510138274458917534216160373358548727510893844082425920229121172088646763411434104060841704925596934994214728237826514619355062559035403732910571317024796367949743284357319114348749644208389747452538105819662732012800451660805404096397397062690589032484172220044780036144010407645802871740340783027256193148208685368950342136989879247064569518175055495447215395730257838740364863638376792640552505680282569700922438209142637744361342793500386212488588238075821507923478699147606493647564713623518900286433587273173326717112540079260782716687011712876911468442947994030941781842689212766760221735939460934328836112604260070342760635037414912129731242116951302493440127303545683122206446714609392231896562292153003047633058880929010031630699294164383951999292525192045869826061985269638765881595512847754947154432971648345049304394277535869037002693782803627636584898595083817226790210132257633586230906284575903077527125291044415724061584330900214333181604081590953100452447383094937720973016528121140329237235190303888359769255445606239794669293468707623838336411803868664963756993953688806846279905719544287539103120697240796766494342435980975490416482135539166845068952611712162818105044479756453845005983705538402257581843897494184675738621188441044495365901281811429824346670136576818053717025948964072197369222581195568231132901147726998514565319523933870792337540516302105852057433872249657801886618396629104852317469604207786163161086268558009500118936195085503945364427706709683221987079144759726785173398941787835750641303982210878095407104025682869029712413473926786583310288091310091213734388429130712127064629631062249316154001156279607876555298662885904564963758701826881040949438656126400625844319333343919240651582614616539058010316401690364192955425209114962189709226591122099779628033902639665431668493817480674157709612405936920201010613953878904560195191051513568363685321404003650283051063329657244569456828584518707029474766917813434294904592195525984773363749928492586531062073170591064184534647765262015110156013887527481776946929548042152077410986248991609899044204874419879425742647106312080712925546436013166530151881077209977604979836232670180370927325974730496041479477317301409688129049793217127352749154743826589971028823151400035233470269006693471078225955640293404444692422759162155985180675068286452570623936420160139242720272400873585555425508297190932552232786121753085012167379328457462959323515637004945058996607748851029581378766912485074772550337092343752102411979002451001964035186661054453657330554077377419747463060589737655127599065489464247628180720429385997555232694169557403861995869381790288999440814558463697228298000474462220465468565003956641036316474618539854458358246659528434873309368645945895256453050806711667395997750148762255285972694241052948867476794880465193261480540578193164145551350130373323591498133971184066674223967917774266512468814270960713362708142431845440678178324129489234738057905638859404861655953564839320833749733535644488091427677461244653528873985610796566019003519516763391352643239295458670385312717922122123387518238206219779981114469773007894681264703894951586961198650256196813374375965565795632880043054972898186500068726353529771366213927230072189654169302779024133366196639686150283506952582415020939086671478482307394620192981313454229713825878355022431428288360788852209710566480384429013770854033124048669800957295985336710798415364676728203990573675831379197500292763113431392633496983250514309155329507248417720524522801283293079449361616779552783464301440536780127208533692123696843675777458451344246101128262930418616252996923596158275648889876476058258975008784579703821525773542388185690961775650384038864200321487929505731362479531604860033172591396520867550093847818725475787629629017125069755726926955748419782022785088929858612670030006998954351870080452304630111069107122181150551600397774244558020744572342895956202594933993017958901018963086158514503136848762259528908942913803801963872085613806187025063291957817218401079954600162334397649303914854709325572149658585594666355520176756271509351072462406311958206634364371504236732749923072740394362851080972574630773792001546981068461435292243403142035655623182353210446430100600186638078409323820919906734551945476316726772331923718676198065760675031672443763470751894790626691257855309992157108865660866243406033100294786903358933094556890244002670500692209942411108711777796428680177918978066645504470946506790727965777329548328384091814433967244064238113905813307624472228321867631181511103822595993413879137028056131606967746483301119652262177947436631253947883057330718034389444953427743698773164457237965959807530502660291931135847441215796523399045608463736658674259492823241603935090853075630566881435617468096603129976240442312293937273608640073114252446340816404489615966044415098951209291560352331709089040740445591781992467747865080167214209331365923502434085792547323069164351597209648840902856649268287110010801075601216966926894746018136080541392746906247601256452911195953970818147492040776607316305504803342099436973817017561179288455517700860709797588673946340235428388683652936196025603920753511976990182312666428912271516355688283462933087906137890452094696085495425183304106526997046333467221814759250968418340796728211561925061558689636721414831434400352643731358137857472550489858574210819443089773493780936853165273659301891764361531169541456330840339623559792806974136934321616998272628037564828948295581694221420143188364395741354740355507983465492038176546584100115487551732713322514799831281588674751657020897027438957448540754164166758842187287680478761326968096391243382960139534716176838901469631495409134118560547829478225309066286897990271086280328902953440572590940891609513129706848872868206265443534475111990069643875665003816684336471964926873602307225620293362018464083397544160023271869706528921829448895781045681468602007935258355545384966623213519336691854952351963336789079804445979414133029508742596472245577403966770722189979055897629674842956908437581566386871983621711573344341904888434706702746597637688024429675833385850315769579059001266281039070128440922415465377744417420758693747273826973817671801196921132854808755482772551239819078050421752157012889033824009147532143421806974742679078677063517200105902401547537956863874984845195776932429613038316769188104120312994374390375692980602535301169704756460180819214683406439575024058264098273567844285469127279085174343026874002265623589767357226043042748922334038331821406281196098509740178460533758330857730623016374990852683215116701324777291840255915067065248734384261114769908729862281153826869607941209300824558605494523266696595576886069793522395671479354690763480980201708924802245117282493335834310115293667039952220842498211627698194269381296637266376202276917755942864951291297431218350774273144024021537911462623804656288464299334187760944894493951405849046518442514884536951541484912215640009107514824148143639060629933903722426755862170309646549564034702757438666621948596401983097702161965754603880947826298472927809763259975739672976538023252881484461022717746767960229317382533120016057646143705444239160810045938850498410173401972720383318309493406285003060876894327099511512671158783839815660334747979058666785119768767474205087961438862450627799073905564053473475210934658983332343761884148704576250729067315343195040190126836217899364067906216838860839172727336477744084904025675810732833932589956263707058253553025976212035930696865349614212876943336861369046281537717614254718337696025773736477909228344954030352861141342464251730350473415642466615706467188306481466031898398428698105713723768699910100401546361841757693448811629426230570960875595515052132391964516052936883298868914095258813951851428774040824499533737199955551223628816662219182622876275004504766810489351511030809954703547081954851042156580392948802365848838990859091853191074182208948024470491521593968199863970873916434961825791840604763245979882017589534130439198929034796031848283316224510989901237075497432478407000214990109072206510804260586842549027295818498376713120479375021058099439445227308009418744071185476730117126086710423198785664899011525932881907340165962435122795382980455596670858293792872463185816737728048501676749378223003796603723456815725321931257033303204318984809212090772744917752459253664259079982260268021639953308027705644238770720527795942897686757495018552978588175687141241144502154757556497930430857676938558668416948136559229557888007694705928995658958944654021625897492523936007675981533817953888791155362610862589595110134308247799461315964624838267291497028235410035675634794845972588063123891659235965486767826398085310033162003813569976344382718790344052873274675623173657908742024247182928412585893068571063796604575600418802497227124690523003108117089643204188364659702488806232560561632677544618927519122311083927021475226771381176937774611013003054491967144277394130524833119113836568973836989157534858781387198920422784743055241742033077148016130810180173553991106788866950006606547045375802719402327342744783833922402523951016033900650199982330368995050256774580523453170198287703780882360176377853091752272703579038112143719879145156762884579512753628704905211100812382000303328673702395020202550954663873496224752423371573047755112237720826120282290724255737482367442647291356695626048012925567933287757833794159949488994162242478536345770216943246220650888083000943841001995265845175134859151471681301470372999618900705634414102958485127015205520287671875371377571873879054186850694243377326053658299159421129446848129717746293456162859866685976001357165231287169070430680551021947138785672969644828028827985497948498836456472208848379091864502077255762385156088689869435461968263147764757340433248683029913785688337772365906627235457949314752225092251718007964905940587229239405895583213070869464614446773733249241854595721776553744577230241877736440689185788855418798150835100710019408638100440714660996429397409740177351624025695988749973001598535732672165620435454333999938349776142659968610862134812222982661313174585598661054124315911694628274922059262473506512485059231478825415277130320013629337340278984427319091279636355395923141157435151151776656419801874508695229485371327515843033995570452881627118653341937975943837547375424331120996452828116440443580601921072307838918138166007768442315768506533533589439182895033302660835346148929114691697696454703134166346479734631214438736352945931046277827378288607905116112416666057947469561092017952277550687821312078780044062197839648044159276251791413883392878875977637825449055307868659628090464707217436468076751289337963181326118261360114924041845423410060285552611722033667895668266199421876084146380621227238180071778073677535465798945608018859341923332822366752421179116628834578624076236145034780004848888514552966349640964759086045969182631102259083563395466771503919950222410992135307150781406098340770045059558647115342476115045476233059544666430416956671536463771002673952559745384936600712096714019698849218357348803666943101313324860502445829783148171177101923206059375616790412612642007074312127297390135930130549885356663325447599165814728286936232491365445125796362286108005489315347163500621839142433236549979077343702454218563959246509562464036328172799618933710624620720100642876707886078205462301974136012457066428844128524188487396980108050049914179094067561467365929073156692948462612806132811894495102784257810105768157161253492266107603658960841185122559166222859704529846616756687279252793408911133849549111326186853016859446783064390568622980996619383940420696835759768284481707401231089780032716506318655524801102268405557920774616125032038782221107379204634566234060225903072304771599434399876696502180004872186558575258537725128084006513920853664127569807928237659819550266767350439076806968079188465708645123614291512165018115844505908974071208823530446349392259598677446836889740950492902309425341427299588667330067382869586304486968782876731178885711827626668202561796464701298671801438466310271138988540928085884911931551048664723435159896694658855299311553282404931758240375525744312929250833017963497108097725551957674728891686221977263235922986413257994535002596965151371805211207687263782044402587649801717857129216138167871440087871590462803478857061221662389855266935194975557228486468957091728718482080267107824585197579964497104267028977822671701073456534788824035304590075755961217012047603343878093936807046093779117842293098234730354919711342016975739010220293453869444819205001013569247146066973876150803597300132843225675868199756152393057627406394728392133513387767210898692533580287434741396556991557141929384260024519602912235341405758385391902879401579487208487299472347571265884388206364567146363125192820113138970647753155397416263638669925587770014842512665929191412694180665931120206819455939630182841072903846273318918094784837507534473816071000121667718839491065526032077765583449548451015206942083877583420199447240490181721870011798379598209418629778270211948588525690060408388120986276998661431350436042924046345256202469072689166872922818549303926861682544943694601758189392648231429917932971135591524118112024546577781485653132663009721184244845529867852813417156463410484525355263041694504022622817821933308113176234423566936130667992635656065419515562364177294586643291839478418534717802435960371967313096660185300806480793016010447727739656146356692408622905002965862815251040796918658463442000807090230944983906783329463001606878862739141828569782455706045543127489535210141046422337418084916364648468028226734170361217174020988112723932436220947519971340040478199470573124125257856309299408695516499511039835515319967014922499483109265598629572237856938156806279912552658747816916843488004945652725712835413626054013256633078896488415704135774043508609468576864559600793807652766335741911747363083411640799616234867371218379376778874467794774917755083008293730517556049034184309769008652815743345438683521723898977153637243578490823025797405569379808418021129603197717643177769898707902034996972726893522577203788925952244693341720897251615035492700347530613631053015075359034642506048448172421259251415956843753558122098591763737725367677749381995254695919466883435747398966670978573742988386010754376608943571587153945092375270561085558823826813893039842198353172857787715323327976570763419167448940701059121857770292580504599375589014092140915267401150722502679337276604722824285999138351797125878054480618403609314678734349154481726113881475536374291844156627831717845276595875611097159345876331205598125416066010009629022383368746589813077325243494308346192592479646017325988751514721487218134483211673634657707091907079270659425175852850714153443733102324663213386513027575060426891137323288634626229685763152463555345558874322325830047298747030817015719745164113089165327449510680215094760067446147560984033781540047108802178516842864821021055624537777527334467639359617224015000856619866495791354800609170066496998550671048025470024277754472508598572181510900564922332539341645735800530946947387660244784361394218217667256958606262894955128352445959978101837568754810944257852553040440587441603309663529492000403674600255720688123965407147715068012787445530438071483610840289594468829441908348663127719348362256313916041433282918488902069884651018652139541982496406915342078585396083670183440354048325690908678962340353283428697594794978158451699352308167161276674636914739698793496545199774133323852938782265843094675141825795179375763473993890808018256322313151847235904333381466489118867140590710817094993102505030913630818830606388695157718852547171584189808967656857365870930579495756751212385059979448411730384443365897588784850671470442087095214230844535645139805625238701232512437905594690340934064601249505437547208142538053900228015896729423428987339464176842847393585208982213144286338823576461716450575035783636188295274324532693014494265410373322491626713013590123185822574763743461608289923741514193497880146711574207435541104035992849182197206061007141570875965062233755758420967908676550947454467049657496346455238425002638508651386938557979290346079848649302180962003521379972894766420358341480382736174703348105206430321723497624589216449755240832978470829274642239883583249261469110531654376026216520777829793496368670801202623416766389610802588120628194090491691053407882492458897447211933369698461778937718077928229760476096274417869557358951638698870419707825950502330762147432200344134270458918084409527279149510916885690045583676794310143528336022887263914963978619014688884372988186150404149152703182829593978657389185091738916327741319639198988084780762757010921042070622172506716553237582017999158831377691918336919171873737337634730505930999696835554721756814152167717591492922256033412200932617581043339788904340522407570809380278433020750579426585072728347230215265244568498824055847924957445108918008518655792111171974170367556262836541946899771009191590661171094824136823620527658722455625458578062789362826194834371275351973136404122091531786052548592729959287816712011049973788254772981295563150261839482320794917546080551085081137439715172419179028116325295535061177411355685840105225328894188390453303909110353718571790207767984089749454270629113264311257054457649006856810021967739117260253747950366480436888319872176121926152633627510151285842699043156484169836878133546922254684538229907508651568695495719445865455640949548885023407140198622886911588272207537655058471141495154093996701139920810972363707764558497023654769981239352453624464982236898011133760114748343035463963756410656978498443525681667616512206410918402226895776426857191848659845354452717251003776476539048385723950494969284064092106475195118955839741590192755724719991776098269993420685069246290140505761105900579625119873639708517363179669599792800215891661155597580642482919839092385618248293585072950976458045162937386953761479932470548959053156647381003496057115839000571232758918557677294409353995624020936568471969515513305100531361472992269482945951703725501315576991866521293929710725813066796837438816977729474345009113665473106665955630083412164823959319557731626374329313042943104712518831847149203903474750640643592544352276235511444132062529920498116598735280858978273220407532123703243854601697652320577147989887138070999310729455779477893657651225485606650644030053713097554891504379845142919737008664797767913933978393654210206948221127884656838958147496710871896296490441168050860305853924791978601856114819369190835186374460897526693560985931755176047598989879481199733189788656416055594870833710179528700210169503827550247223589705998709613833793775307121633387643976789248697201982708213968374304781533691506470112521210338655974592175634835291522173719740509752048377663118625166251802020729847553344137122141374299403335656763899200685490861292579484154073697038970086145787166828278779527948079484990098765666604704188343988451564890070540024895464324905814569040118709049421267447018153041254890482378536642353407539445393378995204874707958217424694083972162684263127946657186036459043612691542083870015002933895427723184942799316571283060787852838690063781103751501087539742891091992587139688836211508875957138402581477427694482598127462974133064089474849873898105290592953884550263251133099539231372694919822212844738972686703527154604346626199576876490456647917344959310251089101085733192584434950347696251440135895300051839339922505810399425226243295911084917065170915032698894301341850923450545422337214122956883616246378154472706169324281902101002830534226068455014232334673304623847705103053481165696279309323482331860191309924679793478271852135647717993311806349278771906254683746702314715949753909238599258032360609192305735362297967912992113770748358117545742360226125073009890197312431366976563145262971849579512782505355975293147868777041551953465500484602076922693870989072538867024056841712783217117659888104279628000872915900060932272712642203270163367071695757582844938911528918531592984621490634314760100741947064392124942262846432634779538871579631816713494921235085256555117511882280398001404356324696015046301537358554874549501157082055543354464995497314247494193974519945877655386127849024086933018443229387156651613401762675117855096085503299087200299235599972398238331059515728548213548093658099081021445319167796219111721919677640509991908015421899603812888626933534617696569152444211973121878995607299031931742103403454051133292571331735583336513225656089880377984753470430196597673657463546642634707886269654675390386852004904656165595860420524275611982971721908621122884925733174939674331046342199379981099804007406890828354400325972398987136889517042519450608121106033852594893428723809414253729005829770754645124304450512321860055867485669862043154305545424156370932031091431229024615256206184615730195807437514298030474152087299688118905516294254705728449369715344756041842992067327842075214960048718940509409810430260866494077894060312002978786328779126113248181277998293976415934673863657035660725537301788104409590777925567226048998648075906918689194679624948247949157753472918718744849561760604666642101093288276053654455276140664380871330357077346521576707891093440758837570394486200941397298799879608191209960549678332562487155331433332617205381424650994049037777992577953423377999835531867057099975099721101620266609220806427429933851375459971239748546038836248170533657720494138759953451058213410633285794946735703588106570473626626802288318533860190815251318244997351339341063739875545691326538697532795552736522022561248552473798118207524825601548800292906099299650276979004267195769620399062945850760378884914143149326523610125366662216427801845526982452015317833490972273707358007471906608611309660093025770955941241190617369697449873458241691238089568464268650922655997787348885744188987514801129765806296380579171783702129476314826943448040577563565925952290822862197295897794263588620506601450434444032228864734160452399644107459282600104266873186307002540850681999232659563921746969365707288524660190812018409981782753618344394437912079937709373336003032837928359287936407659791308245703887695605251697481559487865302070099678211028270871274823595673183074380749325379749380258487164764751133721593574714692588489918760570134851585310178692919650924903533795981822282203996438452662373137328600766109443602899733262962705901992216380714666883832111974026503810603520921742923961254639228517778976142151659438666021540446361695818767728469244852974259156524096491377463814176582908609402821224457274162238428201310914534469956348143251086426601403539697362660326099719218116447123476638958317526335950861108730847086124108451883185736407431499587221931213732632534424871497045054581675156381837605494220969383546350804825197767216611287378762998142527481194466837455838767119822460441695209500485237952214688247157344216330506291709597528621393057131523983318975216086703448696682672953754027842296394248109301810240853813882823658499762286574726533304635239313938160775858484341599411881259247796845510545545497226789633748097005857669273750985743854401481510408351021824586086485233766419797462581247928665738674050328165973492230448266837162039007964905974292512008957027257958920827425126477269963634300275227596627606652831286434771711691874645441001391249540119614162356940509491823928667604099795530428634110454439167466820185937435137201608383262646110614619635107317438297568293077572176953782442205610525184377961994501187196288279727604079585034912124294267449727878741814542718275195156895320686210945341486441717311309381928879765425008830669767433686716166007816145065910731560968552150048457882585169919516330594828341980762213314355821057424858073259064878725568574380830503443768902996340582481892944467143446668507739372244826857434527256514687929265837245282957648563313094455779458185346271067116016448150199986828907288297434720235281994059276635075445984910366427870000070005430308155471726845610661748273401936458131749750337467124379695572331902899957583313569114309274748523039378480995510562997597834825542116452250709363300536355997087812684309158201923771847456080698282813474238258701392598833912355172795615080745785395332830441416414649570681661557466046841885379144651037273818005991411152620008563698974547661740069855596506492970971055984153022141439452430086228985553667699347266620135391427734588365910590046582689100129720651327255958053897263088367225127090564378216065477370406262329831215853328927227116228748242803232829864441353247530294009096224218836482204756913564007873985674389451924954451299572226260950475756665219513120178956417364817164492105172469503841536988283056983671315478419817793963000733878803082546616403613276158011960649130453504884120420367064403907250233955905844678485533454928285119963651270632209750518499152342410217119964592364365448488271821053751617911641050411537834698476867088524723716182439735758646920299536710489875265101688790473267498830092346748850062353360145662655656094648817241644372275244650490746728561098868498518826597328171060926211284832815340375711150012509591630858248232174947583630395163125880978583669827856288491163444025098049102040265768796275208089334519412995353221547266876272505099352919269454240012462933803469599696129139050150162350981121604242803048367101450901167817555597203764194618197920588110027701865424704019921301192770997804892111358667365388779798902547161291809503319642832992902109029291630735197907151816412493558354076223202625533221477752954803467288858496246089412513528105912720764216194611295284813075228340786060861428505309386866705558722103469171709335244406336525888123507033366097119582971939234443491662285080941846520788350093488305726082438695078375540577638652036184717490736478127133422981297592317760059921832820243455092586199236495761870755791406576516683938931598104851102721797458499403395743047135958156542335418209720269207969071767074142465914238392774984285870835761954462287699808530190593131637375450701895776050019645163916766850001990943978022297362919315898646599026867437992389384588131982194353695114024116827193929531482254218372850389024549914774080294421462044234485501662535100555936354124667613753619957306327504328489880832130833102621531292666964345146749486794796438962258198811883906036811487042744062118744597259904160656143446696316720249711112467409059753563493028729291380543631086523884131412727540854911206810024078402293213320868120507819545121599326194477176297635015072504024198151156343634253334915124428215884406999833322507701764528341924423283355150499934755428181038142158171796460388182417653849358774370775621451565885586221184476771035794876873326485980412708039506581338395794878344416145640732663397550848217637901573641346093055296636486964410882208481769302030614920165235656159126976264989352776426850808359126263458262150444008581579994098293665152944790349716903512143841135023280101942012142647242174819769773455216576865644004378874415618617638515990949422191890315581638646095661627624887049325208642646308163237605592410087104742202809774124851543061541125095599883626953517714172254226517636156444727023471746963543456126959201526140611200976009728149829146396282228837098040234868612174051507157479691580444203820247050453951570637363327091608883778793695263961320505528129225980748244499982763733831538528972323018396846732675974973691667450822573972182646714988064498575778719861734180290741522441907712150857841771087651725759729002165048462747001232500130019934787974543027738857062205332138119460530162537890694443912148099756121440209365192061651656882292007600153844682118680671715074914312850304836993194927952799948967261371983020743781279331146150924955459372345864002051660099375011061391469790382935776614912208750731242997805967219399067541921208617788189543564796592041678077671154031165036916093924607002796020129182867700193236980396230706995620339242222235792065502957412251475492150493572878544700388136983171431918706065793747746707901726959265505406732193430240380031701444333933664613696485739888988440575228704816596141176096806133161900650591110354180148699276770988355711575977769513224127535594675307836699564909844094714926012285526722045450762805378788450358040326374960462435640640037960936255149485863426074800426763678313181527048334987863877402549278952562813595470414459905424375279624004533926281909266379111451176908706768019829220044462588378112480779227731038553107434363273297968259731361171727646084975632154969257307822312650405572278361292159617327470087459344794462752157211138795172739781646506294159130712341058341724655413343591677567670581598222692990759387062573285962110996773736210688396644994718957460032788441285953846634387578465397784462070657746311925772994013603561473004601355093181469909903104731127058241051809439245118330018525641516089447259759269552487619360310432240011886090810733245308709801630293767743005532073715947881606660305028334894720244745771578664525528449052500748126448580266211999084563245166524026672531785405993752453088802120366210793970659786349098376629592491454518121127338790843097238053211974207467744322811669061067919088253487863085131781702759047515281570237786233064633783526209487946298638000431368289899038648082708702925829666132570347020208739044324139607636076695662120476974488323198463964209868069190400388158898211279381058418525188578695680051473544035115811714674431583800084972838353285901423802370800372330553098319510680437508259734779670123966787363314312404486597465862738671854162199606052184327908294546832573321655031216802550498217113827196749861491189611443859072117095042932381763173183936164710441141091125968071077043733332993048817063473870054394990525887178536224596464696013935669944689310220391667720072188209382474971068816425850602325483773275752941968014514413491757404980431251249595572602783450232368538368913129360264106604723213963875596260262745271326829856130319047492642283161869479148175087616994464252212020977482884718106487748465591608715236118483356287207514854465682474549723211360483568632277001627169381683982207543155752265673774599258331349540238487432771549175568014500095930271158005612091178228658747289323117815359708275682603043104044678233642693565210252960652483555562422054263718334135685041702109882589057032987237687888313393065214258709031854996967873527248296061679994466529357513614954900551845069659048303275364825281847659915502244704574763005454514751008747667843804248700167523374706248745147966616792813720458443255890844326125077862849705888580456329701755597540687737967738333679603930067147614167439897144859366813421710234545249997007844582762966100603017245722692106556914739456925970072446290348518354818191912286800635965746864237562307557234025263484347133824330550085169144450722930967620988639918923947365214229579511191072346407101794961514194484656598817246973862153326911883480904428620211693609756523456811204344892724254567474873888510581726304072500553432261100955731231303538898288685757278211160426310509063299972169183531954797717628249012619744828720113058752527729979895665715027208625772507130180170790437014123289643660465578558198463379008474495843696976212805674661208942034539523751094543159170335973925089437795082741292099160611044348146549097764955465874342707579483457234309343670741247413997978080843646938131855517675270232967882170831415879944103311653322092767759152735138057738200057735272009401040124681343426199368391589944889619117094709328315339005478970778520127389139369142228848695488237134435218710059712390772019405880042212556153968042077258083048765737922972630942858035057818482638203475917598792035297128899658947777945991207993676647713308164584543250743340536526522368811637412486743478531541788674945913975357740038309203507013047377024371040799752284146436615569048488974510015877402651507847107166824999814092300606882449098754468979818091330278043662360097818969740341047429245593734537501929891559527743665241856601508558857157834893608334440555060879306199076558476489843808818351701746555278049313269135188538360688904679885165441874027314886416775225771996495039423276549038946041205640037468817093935092771207925605157197838001144175391148992731459672934749694057143542487440095030366113641835070920844191399621232975830279273380273795088694659623741871815993202639574928448762811494666242175154496960386709392099195992207979681655436559061368063436029308927008986871275490167888004220050280368983166200277029480041693273142723086190165128857143763897078602479122951745677245575486034388616934481421294522003965883298609341362600213384080648519339309357557569043350253342108124652564351031247901910906435466541950820149696531035955315081279047115102973959919030362394052257420805705074226857702475324892788945474738452005802869385471220554499891325781103484534682268923307774106238627032300891446999436309361602642267356116469676804033001570974317425783874990424062634298784006733734030639392838540896099261487242806710384022950889032733436521748076456595239956980234858937295476207690965675627512311683842811621828588726362903043319353814485927716568396869014122293329279248454458903213963213096537813535904254041037702420352831470402490441976392355341468674933898303598284454074070960458840121417128273925237099819365152374381994699940945565574586932724623982559133844926614414662369133177295975157051176528382933559166393341009618930549321565348805166103235067909237485065044542387066670478325416869208930616419930739552248582407777690352522014787325125305747533280112565967912564527759891326574384738692668548665650996817624338736596197747588356007330573485000095320077321734320430292460459962267938438386976031340923192290961310726809848490691056587901644770169416543874712560249000613469124865504696604732829208325086533155458360951829487346015510070379929279507753555452460066167929601649673207569189691315738598879628236313263328656965533169255590018356628952629786163916392127693854183888079961037389472714254602063891167659084898649321060238280890795858123704054436465407971111567562433106262508299013812274350483441499402788052798209383625829852077931712178860002123701559142824589014366280019284969757293107454944792478386528194015998531569580795301100070636031300626017767868361386873338501561662414619964650868329563950880956192600918052565724181142020926066279778990636509565518950347198471809356992324572073028867905960048864002370225467663189047992563781957300526165654585364589412295572375496800474840152090379939023862714633237672522701142610775343676419607508148602711507720750454396411835992721102250134108241582918396296031080054432035900561119720584406834302518729628333139414244126204205283006347150554127377256708359797044948647116371414949962216552544530185568359723828540169900307911510876810126241353702103146385625663743581565081328757307380270065792133918710763082691703850478260540408014932526076634985145158006886556478443036224608766661593861913997344744178318588813480716699079852579646565120667391614809599656379690311581871459974591761526232919294881698707978448197253093659059534260039186760425138736343989132233860101627337312453112370972528513848560411295249328129161373318303758020895148116222566884624280322404203432337847098057628700240563794664258810446160467864850780857456325715225537802036561672750991600590986743115076107892186571061881601089493810175516997597487881185400377663649253163713636051122373092620713065754580645526877734172910116176340466693877485858908708883358808069894213092782357793287174320674486052232641915378877754184820711241932159685960569056375157852710982277786241884973467951374179823437088064056237127057749488315104034903019537143034600336141546659700885465001582668121014409738433370316821891796203541632939185843458365477457639726558564770729504200419450888910563861345363344626764827881898941917265700672474781998043282195834657505141260166185626254711382136171830622236101660213261395093641706615995804365688799731712194801882706675413994656530956718623768835550387824938305467147343114242203634519977676247870890210112545546899979560962746474730394169992436848709497172124626253962727565517111557025817614245611677995141046809785662779510803050659630866355056638851093988683026148305629534946926140019473786169577725290311925529553642440504952088994224444898385994169136780736010465795920693693101431509736422255057752749470858303103731343540236003186068192948131874623044966554618432958745194611955750948779745286094126094424973539285182699481253164243966046641244793131741134746148319836308570758811876245850408107021790438214778662632517926212709015368027293623201522109183812792636972525804195663663422533750719277140430590922877292405656562218547251969752317032215328780662886445707102341504110495057190116304652582797719046742345672373608340306558838073402626067556802007940230220417601288539599989334690413767364540301459539228537368625654707061818967645187073734528193217792475540547886190202440709603870545134551866166458772318759721674015960776030004119309207878037124100877954828162264625525025690283435166472499252870848080727761066551419793627158962270089729912264294407924408244685133191321055048723923779507342981580272512508026489726855604537617948277520997266609046812326247721179168474726593962617831866279311217069249333213242067650920349496843112423628825636901994798048892714845851982505863935197602580150321518230224090075818360167964323738845003692946946112019753161214125147907866028321159207088084552069902919647405897288211346260964272439045184029673855085991309966799743135403647173346643154450794600687860563822780684820604904129922997474874849634550990346438067430172472031505625702423367172263366518869669203347229565979999894151220301984273087614478562592368368680111549734697684363303171752076485696213335581163524883002136821168504294159299476044045099637596295793089677932206751072663609333961965218469497419286920512618285198856496653784345828273844471517553194464756421843732121567020430210824095299053786736664485575558889281027839244402983004448071991760675659681930551235999561012503243480384560753154077029708750021353452190928565359975078636093758043197949696931157040271847904644274630677832209651483380750052792089444847152476281846336738863684067475516030950106872532024656742769930441119372325322961434737867738822882912310170236426913160079192095132142928398252291972056767818298783586813348212088304462241651581287032739501808902079881500935327081294712188390578380299207619030038829754605748282714802660152107684612415967157817909946305975075178916511692355733989182703028212223508123389849758820149260922908040213812580079532217947069493800063670463144825664879365596245144086299895573211735709019705262170112087361634919014396863779353861820233528690868184487906304035608784437263856668362760175863313150826218572179960265268812742281015137455790284332502443603733892443150062551204811915701144303174907793809641145249385094036097885324609762856967357534113074515950982968605891819344978770546524641980794331768600950026076572115701134241991383274321390399228850726429195981156777363378203483112093822749979068781307182887960865969009927202834262084772923506058273288435677177756546242348067891751173999607986278328042397085380673965394594282987241090178898352779144324847472535006199056964492536918769914789190421543113223911071547915128896145683379626028250676818580700515487227114218329503885967573624297234471900915548315610966844774432433784679939388816189693431591894436702318097273794891425848374550079848320188456489764270597150974260404164769646106828880461246961359373152031180421028235010149703474082018744933695409820839202691378692184277794328654225034534709717182385701889977915053442124041667272031850511436933343950632441534470814149544135924225667651154051760905159521085478731403117584842133453753626550938434603160452404975695496190716171965624278922680987598466728694218854169050216008084295497063305654160058214382418160236733049502698282420244635047714864670444953617817455619134886592525403484339125493855788010334936747932731458763863623689238486138335645278545574880669916796699631307929921851458538461779098217875660826159876837093008164146739222200928465508834509532424326677520306250250519810832353837776898365273718995832662641394353855085617251647173486710542131819345199091982662335713938482200136048487597435708408270954590819488250741904290484408709800323891810639754530205004861574494927645342968134070175391203633692120947277670782308158523225682136851839743055873066864312730485370227000701448652143284854064302837775639733219842814174144509475105917350287944277445776519420986085251519955694405494396472763627236244302714819218462130983819141174220982368711121578737917625119195643227391004734215778709057495904784817300340736473800832143827689774590908406344257576907736420462346014767748256395857910832328111167224398000306545834545498739827190365402525302373918097554216479056036065617417980373557795877267390515962064495940937981687590462493852024692706387459328146840737380422427225922109092270316911901926418436046374613635176310371298076321616108302291419719601888947029667412961749025453341612359153879816754338494388606474532684416790231736672089261157180083884781095906755123812205047117033248367748707355115166881412417771558008504472560499078849343742481150409005146880267658778987365635045372346837074040958172759212594321484190928757117841932883839991916772775379764872143092115238438093546182935894539839011589164566284801666062629295064663602666744001867616025136870654629915076016014082675402379711084583296944252622588930910114644935191040565247880585765975084063184012394593296141367419841991976053678626324032562985772972053385829379595579060673366484692435505448616225660775263190677751563192258630118883044528336940452251538522431432053002244938245225150403239923165939729616510852741999432617228381481673458009174706815744471211966078115877823235943417426919072393172323005695666158794747100995992173654394529215879424066682811993126794265719082318863485169741296948133989478535560218211850627367456499841930341616076717215330862215330980045165382482876296364040010168512074511413751904057508441534135892544653676857501664823099265060957311933101432279004807180107484968106883990896968489154999031975219890221146389054596386852123157950417088298474298565279142574806372510680125673971284663412469564190095535069717666075268420823690726124438785055158925166471676159131529216442513113398474390661476363603628609540118292838001883092584787462312563042830735051990929142976905027245451754106811805205940497996542529245037456235131836437384783120122822048406441918881806594132364427326939789967862605908444443593322583889177556594478103619964373756926143228986838509553266598279115611094425161960188585543421278169998467462325807200126188816284139153849981542036726430753397724903597177016887606929138574733678260825863335171369105850678203286585314958723552736925846908158441669838890033722905761688349305493531217000785826441282482121703942098427628160739710399942685989665003548760204021834939933379450149358666438661564477437238066226829677231920118234155389182894409066295523076342951102204100777714142575496927144702863478822715478890412169271258182884184327183593016250340728353082199683838568767796307833927018511923630772616914206516530134240613468951060957906481534861305513763250451959706464603010423547281983784279311619833973161957729246077663194402619733375269337189283522704369777951377699295400705468177065927817282175669766746156168544151663747370154197052935007674206254652363919008054838680820038088251010097174905787728839545249130246295402258332447938103619641994093329086283157023952093989502639143069440442711224079777747317687421851169097195956474694822620442885377977617913059643355542849910440797964285352239309514324354584587124331305975312570175688124485050945215410178705332134634922035436143494629594179588397163347831858473192953888534768597514380155013698114029518314638960252938533232055921253091409742914073126062925328763966970179142925249503031715749769357787462382691736131566839524713403152440250237699078008397640111488661747756198573940603213068377132870530108408495851595966306925778045017827448192316083220276686794415961029687348887716562728730930767741038885074812267489863871828344238289588676945940883931754198828127108098297911827399154434452207957859063531431101277463194451154268673301449382962793876418100527877539273213817822351480236364580252401937958260688211628096440262815267337559273903890876039528290967816226276818073732673297556493917558829178536666092975793192687804550866660102466276388876851841997945394274915488428181132036130330383627694175167716184580596098007285375341918229459424779191347617108549978273580821638346863981322735372377545733807952640503552116681693056975363961467540420199091776120809549405859592163398399448269112238794410315584821549895575513969371962633505739471689922980207119556611969760938400626990333538173977748126148837884348915130652425522853207340485182721757345070540423828402569090803352824432682000796170064667695067794264866730648179238169247432978968918939843368189126480974557419735352674087751852784002027043353977085439496981608929650978519053219471589941169563883735454256499272586656196008379492921851754066286566011981891423727725127302075752599139428777535601665909811650897596657768547781625157990758121867247109406752831252577723770252988636265330864288373485870022780244922441267275279758247293066639191992789954534413215901395845488670259414974006854934141691796235259945428813765606407397056727519914986236405077900090792137323756343721252438349344854906409339215997078275270680027700134790214811596577438938178797690181454678769459941739640404817024597066874628467174421489306521842648185984945341473380042732517546386240347029233061151177809258436165760747114186051412064601526924074632764028916569543239693248981825202912266621020853436506581646674228563422408064922797049795762740619792230385658637976979868683933710541941029746306383882070961206857438047457266145301426652575933815735869911232452115934475923912394968493972359905638943952470795636211173784525145743468418264851675127942151522364507126042429207765557243474665132191620907006967029891870076727875845006980748650304452662846280050876168023177874613875066592046824872521412704548739795043898044843540604142958572594830170560048605056160713035124625108450165062633845494929952586374759840435028710478446699478254168681609732337536240244321780897391797780371477193475262149674624880394320291161624645411823609433345420142717256749011532612812318251600561258311525309727652271266985154185525961364087860165627880697687768435785688218405728017953706178589243530312958278588964948846593762576390154143365695632727632458150338537551443775119357184455919149694497601518593898635206156712071452300167704577141103082974968632439560590168688933704701052536219225780993376867263439528823937680027346924849339189975231121598475196792757670498056333271428865403722750070087158125821122609198299682768799013143110180489377940163321473145734728847469566331862094058589123251259318827661647897583950235453066681984080942147964466091922659584240679620890720362918523361596930292874073746572560099027290938062816192897379845619012376722150326854390215094045924260387688976463817142778619360550302658047707467274017333137581236194884069641116048828181967470219706295821698201720458903188956469468610902756351194243046764447721647518071594973613420907571184220329146225271610716629302444077209513934926508570580601663702729834910965909710237795184760554084195800989454294651731080793359783263602169194496873548204432846447246119916125780521780007865190627506193706271357263487606322276265219018545118236691185554369086389296465310945064269589129524079745581087398154910011661805057674906274429032293789426868733213486517904252600065352560926766684055850022282083829792465248122063398986992893425210309635142956141500095927138277321386797570664529196282044562485047336223939860583243853900948773912490308286735165481640728311452949452525093522775159997940208875519761584147218187152061445856612612715842671297110399042210739597102918211528701807642647620192778652246197327951395902989268694393416507618726654504082365560800659519984987408939947816104582679183583833925248390296804145054612733473275455209595852989749186394257873553558216538358655441530911957690160316939819994912635249670026447642649254060440853695034772368341592962447641864142355837610754867338760454843479563118462000666759930262746561632952558499258611569228816302503729219860052710931835091984158506459556200601820703726200537169612862768266775979953075037101694670597392304152869991154429870016004949551206710257767522143098952178451196594162336815073331824996155169170745292386945267898251442506180724327390773394614146095158157012175455805583476751267949022439821713035126997036645315271116515074829772834664544126967214196050717288925572712884911089276675492414692979859082074292902709278769285322710596746768521556873413792116125758655409067537068356192752669556650022965655189581687425028420574383602068301959570134049932568125121295148405287861836764735495260869620913681503130973556208296819205341051722172603655386201237063533233312148776501809263604065691094847469774208370992688061044373059254578523430272535962555685509132984666725774038657507399051274421235012193949710962301073594624033685800906703498304024704619636024692014311246325807035320110705475316673470416826037892293565065326509953843155950480398369621111826508737934690085632548768061642779974806262370435574246587701746687154694282577461295668294424311848286594350043879608890919743649482495161595014622641599865826365505598684201991482597124428499860411042953019056039188744110890630512979522157348505931525654663345316643766056515885110107241949458638297672400229367928918080235401105123540891919992004830191199645147057379558056757347103563811620874351040498093806914211089586153832263786003123900199995066674992615189524706988772423998103670999491298292572743282837225364691289545877249257872119730743992187199968931446177516118712179142649816530404007325706793033110451339913656471861490004372599312332128729164266818347745543818761131356068157736456165561152905907624307156206636089411441260148400578446987484299881756685114542668273819531580322845639945281454545916238331270216399189438960230472316562417450176563852427557311903262849279317154929241293705474602437936825062639794675558683414077226831271367174789708691801165755123127853676636215244994394978050774593643577449129857310322685273765715946206670691615861554506918678554016901960590029951551793834707788950825111516398211217914289590587086908309365163621348358257731118275077596225715243194989938655420860455512423496872891808793460695606458611375933406681828380963588300842510873525411567518950353092133816844455137930190606830173469280469298830205274574628605647195134596960321418096644257789309341291996086770149497003933052772015577366405868875012989104411242437374105693613525538975028462757898556835901043260015724169840649449336035044030838139274808249926800768444053573186340015492285295536665672865264910037213163598931996950750047036960891370628596009239476726126889234078060568594757560538944218562531963652380510586845115969526321686895312196706546482102081264377749617603798483331989929862531184430067851890331660808893139453252026371084175220502199422808682518552803276490415486320332638820471894941076473455757784633663234783160151245629479963424825460284630044691975290775290113502468550056995480587807447887549378147316795685392180414071603681816956663106086600537560143933173978103685994006047796502406749971166517006359266545867119782852354109744698158080545107847352020842751906339108640485324841586136880658961752962459401113313435410169498810427236450050538474316409116636403416517053096721037033381425181566382331772381223040727068235025965258248972274994042456884212793340179204678648808972951302794740052215177354571519322856764950147356997020793971839329639798328654554515328133976153049613964832982373183564757956155026284138294559187430332861456299515680558311724153311381351399264402267037997250558605823459967577314083309588820860116093271755562180772420451733823394788696498267125697274768360281031347250379987345001073405197994606679912572741751220834687244421235516093423845279566976955701436858746449054566264270300715668705876834102907364178529155875846529293029168288679925882473710739613335347800550296765632982848974911215155119924181746112981470911596099518372938070952474005489429232375916148361851260716478676183542405831413322768797497181779028684369140484836585284308502251137324465132495750442080897289283961244180799137310310554514302025041406834181020946943130512622343862855720095240808041683896630801014241286539126122110251651189523909576628687951505522567864236843807668627414903653135849618039431753354068231000983106139441702353808833560695926675240951472539590367802021587680549017527419723279196330045085348249286414353714761598407987529351377508245179393527450745298036673467365973609568718613582742606220665806705736249195452336686147196663350658878314601536473940320768498231397891176751106764695151536256910567858418247153487284288276242006051066192952088231028699566439468977374698690372767058989382489429933693413049838170179720464692876832939594280977418220612617890408819856425624401251107166134923516110123822629722979897632160933022209969608854774684446797798562599325269539036208533641525688745600956947313759293418833472945965212669309786775106330695800201051522958646296274485023279274672355612067904681247220710809000629500565683975678025929454014103977513960750858102448399294199171818470494809418630320944905502377790899060860634167329747356492860693180042063980529674544200030998044150217497902113781529134412585678172453101743152919909520808688203329475717393609095316771245017951809930882444411429803492344530896299498267281254825436461934486752853868907194018199939946436609295936713474098306619551730383594483458038301208418380226151457763751848541606441630902521417578736041425869665188003164239781009419942373439970197475369740904839037616768980529382272026245988580126702752659728544592812763896642439345734390636654761748624246719688634045738084222474046518090216917098567478971625425298522061780111427414514735945236800198988417104694505607552008005444977297532173399769893024284703595352161105213978292002440921764879227930392043289727991578777524732061874290903302212952465965945590715083552469286083068040880309325833003661205255678949196569482786315124177267823768893445297965424225970122065734271079172756225406215845903252653301773909063763542717024029153838691484953763234728378087728099138625455191131840096805242803796361181794656492120492384385760537574822319053342782769445731657674517702154927392367912076909504964356406389608533876968747660503208861451552007733029292785997609927913914082373031458447800933695337593823026182072915530790163498945708483216681978121382913413218357071024527848064238142232419498952190109336357764696387581867959350321119143578025058014849347406161364023400916983433676514391139104212146564802742936814310904518505225364169998075460603327924227865112139360479555738327218735004262370719317475028921260737932560439988363186496308462251083980767216771313040393577225554891407230234420973462331003478649605492395407279442297101517419106440016780645167990908004719704270765152665563392585622491859184784261137973847076398364174838473763665251558081125488531849425190343893649478068802329236090809978250302535692796545067350590295824675865197764608863597274594730156517465898606832492044793504034134721762714576470443816777239218524649666519014989959740049283921829573590646363087497685563797097863735780149815774693858443772662243343404556289837744227762163880018508050402219033200889756137508465571118770082265118021482102553306076505420563368961861051025111277745934808925813704427681538937123298709612232604492725828249310459953029052859084268332307569127361587317913850554789202280655969438580252815147118732719888816206906983369952749523470293634696900622482249185723044456574490360715715450738160330421460411965075434165680602389793781556805900146436020790277079644658763371609060430094561203385322181022718031134843508821504458879475747738429358219758582742777386676995517776834453154888513829157580344235868820261025921033417857658898508439645653801316821874876743961184615011915039547866564335256867996975382338083219087907113361947617736884899237680769698538612396836825470884618667883307485516823554489180113556050934816501306709840103868689251017749164636850451974301223907599238873854425110857382899127284968680546085509899207354845894864700966895901780063903228166430401152288147004118359419571550726042775877776032884515065977244166885632714865733797998315114336908320535345632014433293810076593235165835789776437967383031709946680206539931107324652500815476373494648537436529883052663047399455576964490448782959664768615439220427073348447121109173210130201050092322498500181076171586133491407982089792235337987652765379488106956348116771665667477515780666328469788030497790944784175442917432567506592087185943527841404994398083206672386241164984217392950092808646100581710187763545151642432871151282172497996962905279246597310134509379746540452756472545510759520079701891031746116059034516765104664730093508015103235365904443579382036939225305469447942250471188210447039611902273948102614653745643225460119577815005325708287457097426374888413305540568043580746916226148275777005408407494146917095814905281878048812771378433018158545909209092915575340314327648988929566221263994346947633438652046239154642999705098362506294097603642621093814835121594901039911109119346919229077390997043299412098328928789464862563169247371235026182650407404220331620410835064258695545978147091800855049963215334134445007384620511698778933494773052906083625472529903671863923711480190736618572081535867088260413603363304012938052205547533656417319191821933011028760442000082107126473598692185117937121531402337174929062057461963750834098909575277722819142767057324200441307366436197967444669718950443484167052665929486554726267518143544305126551525053383461052866498520163909148558511709449234168466242775803387399632600091500748096323232016247050868452508518004855647459763780768225205546448572863492305569607217452285491627147436506183080373254280323561016451269249216763112540491276857480170996933860470701148203832981899091137821435768711564201849265472127808686478429236842521332977393827108885825917507248857995901027438680680393376624265049878380583176045125406882212472799101960904391000605357075372298317741078064189985870758473120742743169817912300334481291858380826016835036375501483407568281156005141958765168819450725279887087696202206119536723672328572828328359904451976530794528614063582165494490563998542734644274290615195114242402889573962571650631792830077403726645870602470805930197553750080669683198601949597834482642725691064664445391872231002618439016119603178778760800951181463240282097131381131490077962934367740545763260145361432504911532083378070222458865510266008358185047949689149012768099179881847929311257666414484644282042323682168697209247077586045706113885095849430514057484238073069709111459939928817833195145021701006152964157542854711035956697446013939134257736618848781209309157664778170148784335371728111710151145481738989440344823134499951467392218321945390783828334589153920367413237942100915334291874411503167700279197122355254399917531019028746435791643231016718320680559677925037156200507441166150118484869202538527234837555338059502395674502271412257986334339660892023249405786377951982871321123220116732438966106644919743004247273854084256702490489035798219946161604772193715783708322739405563345170375518032144062341330374137890122691258450300486027607230425913525449027189683568186725491612566767908384587699319621053629067606507321965573614260605524542818763627840280387949811901539144332197627350601968619904158766440554256030349841058436104140259412542488636046417881435474846967346597823122812092337186346909597292464960157332957174830938241186776504150278077628377342982733581601402114803141043661486817835878173638980443904061446480802269074281048543751575190999876148582936165438632282584751078376963836043807192570489135982947211612162199585247836712181750677954574346923332190933089203733312663101908299988474391664007946656378390414534233325700704614849015144259038244170076778310735675399258168964475940463122122743744259994638407210383020121293511476267457588298462619990458283329672173635983392802336240032428664911668844228878469570706214969949225527071421354384074491008503497619955636117370186406963895389493758432748677430961829515771823305162122516173076830004370979905364208656529944496580755326613951046881632279986082146968191917502539359058896471209213286394636582977284930765477191213192464389700019011404617032896999654708201716972723166232095616156457098779161433878397745613932769892241689024737927327595992161930687731607420049848748130575746888345496957710424229055666365395310640996002039234263428409444155993639392290295431667012399120829896094491276251263516070653110371781596126332036065037058843592755373342996606618819291113163829066004788570118476752969688375064323056213217949795097694953053513465117712287516923786880717647745469616035437634260570029699583956330030520346463185247556487426298568378542233705258648313094725701121258721448501487120485888231847218001166458909000392089669408283282708587328368751787411117569519435955323524874283573898520438749382862391693048917189622777416146548671422240135317781228545720350241218251733619013162984534567222633603814402227747584250761337324640156968241514493735025916459190490149375189170243214592005760443235594364847910980865958197635277573398366670354514673356990900482671453184564898287920217954533990061023134622271837341456776649631324722252929133439460905431296399432123383854296608252987198666512843527549192602100590485458288807036082841849020316907739775188619184649181789978649083562971407200221805164326776964495231274757879482048133894211470595935901240503242774138173582420931480700933491565784511530740352599190726098155359327486466479457772994150440005764715937488195910591883103522780467322583809303957145414067500760470292027212267937852109237213401580921725299316322110486405849919258544423649407196103039371346585216516894897834969498835822220815610094224759795813367014548455677286926077404000316591115245101316277027718487430689670768220052512776957425839427631138105508438735191122579732244566366578705499021310167602734469698173185232559956932472774544745951279539856575729675531125391836573308665556845759150433241195412974716675303200850002917124044162433797651339065594549334074425294971384707497593526293819547267525286363045016716831069365133111031910142042212916290843162238268985147761526719676440508506884273077778412033741481281556943623156029032755316939942367862674441140647052273573030372971648667577640525015276269280280598107080786897553347365153100420821826185902076272774243603361410833329841822000964737948208802740365004420459970286368544576997781889524005607641844190087805985065955839546494032295241324401135191401124572020007739307788539127120739402159586092416006909138797753260320161498897448853155917927976249346286595922158789307251982126261253446576706433348975341520737756202425610866253553153799995599536378170199645365730466370333057340687466130163817605389091383657167441272037656292036948559722273455540893802071540542641570282501334091155493910829179919920733378640864554958946256958868969447264913474036967262105246620770693808657760221535414076657481441960924011766833011941541923450513247520663497147635732638604040241734820251846928622744903906211777547243782155374484227236654819184211256425675976132132070130073494140891560515502977156216796620729638406592887108124378494309189520938240339118543954420779054872674428462835236123479018924169416773425908031430446432235096901885262058160477216220876976643058171543175534115688952615170688760564480690191893128008730166187779304154570297115325100762305264123011879162049365649037627306943162540129126775885390367289207203197683440367102898182979260248287460907445451405000500539093674826788919473163717968969171847695372715240920052010647504548968514656043074925587107107221874114230434260851079086661937780526840160622651103188546731102064674520274381737356932965151674129388132905064264693550572368361819169430719399772043697139528851878846766483261736520870659944319095494962836718701480691473301300033515665406631180165661685388664225416029646154381955892328321072314953354497576431908040102187622287408394613785899670218723105656569907844513964657631338435143479807583714870826250265703705158571919139273990909976278284326351508934582012857055343843311007041321224910002324551138911831348996833762648231664708787794417023052256574348968070471364840655075391791665083459779487695793491107227071466387408892851203785311237853545504241404484844202563253590505141448090573672360521770151088787020729644430718743580633954935078330613144839984948188651246387785939176537064029701889107721738939711247974547693551055101084707395331413171929567341806788511548069207177128653532359379235765458940100526908335742547733779393437951616071761871209572069764044842850193856497865999669777966183931408244701446035721054647739469576248620612886736571919006581020874624057502689513647849050073168901828471276116909220244237387179072994528787788445788217314893260548297242207882139855885220057656158477048511046679673228297173931493438665028438058597268629662264415163229426624877346268254182318007199333285989244195570809098634671549359189623848327717893861988143246695885917399866141881261348869497069852520363331684186842235185318719967100855149198926859464595294481265853315294572981334858904443724892444813647781428592439294701226747096076340475243219227973517334742929524412842583060878742651384838117276945572297432405619162783422735755877543380714518635308066343230556618360892984143622404933752715131338790328780440719851237028975366700888785209415501498028440686916661415356388240158901422102413891899944125930082799295625814918554231505732712778552217313539993234347613901420505209344100682499744650099657994410442449585112543087645274545191141913103196419473064057971282680737960268876604008153970652315328256192952269988435004849152580225380317058491382235392787880078176547830786768722995383184518288322040322541543102998324952393478583083832917106329635547319703190087390149203527563431790386465164475522781183919679791327317725241432828840008379142019022459707245764555568347065593356359413258723232575643837343362494835490139738480942693661664645026070253421115065737914233801656556077303530082423781626364241326315449509469380849964641060274340265815916745088152177517591355352333635587003697979606794334661924215509544526759994143032501097391444694739249622079254960785761804292320006274552592518300143427518804848481910431855817802437519586113780416528019370369591914922757654622462845624205279229794590329014904196621712874680455852366949895340885681159985718271246754694797464563835849898163058926800675555864036658756637246693175965384613845781614553863558307989681525474945230398812197795688691704795854633570840681303162009981070014976606885820756346603508255827803022393437897512093232082489946808544852429223306703573431639458073905215685028393753153345690314267296382763295282205488472322042201682348472774993280363032054649815320931393643269031443243206329553389927058523932929439762062248223772881404293163467695094227485855649580458732416854573896205013490106852256302903156377222780432099817265448286746645828613780066459352386910183840794789028426751828689385561338756202952603987286856826605052819530839460587210992038425857302694691499766817087393872634590622819842184175739811481739730303989414330595444665652766089045882562202076385270836057607022765802421917850447095803178729532540233144022097607059877352389327089360041158870271607548771861332634242303804812009802411810512070763596789942896321046002614311682272191182962491976989354789089034905325761260625085734442005447067411143723727107919526854537537653289955011829201352020072544686749113950388692274442416686396957586221335775815556529721919723343443889440357336723888181793814752139551435164905148179970590725416691171661693164957060750829007642953679744448540297801203280485296068752413271886679852917608029844430347416698235628630211200593720238621473083000816517280394359302314116798486983545099751215861443129909640826065424519538100537482732027354814659821830097837974964571663417050179768246249972899868536966143284214371321414748103307353205340463504399897336805196682822110273632709587114467406127172090798583857867648533853618638520572263464384676545519952768237340917881621540009720789246377430711804113463574028170964451024707449473603476517505325069910112176728463632648880759767806146518111074622623816789540853991509197889817189886971431888349855184304197030722435339675266702311499102784701739617051345742201701742004494934654576741093269461735783978276742972249284736397656448804971477627817214394484707955347554717667126204126696110476885602404087824590897638548485449909155440398389067060388421901100053365516944090724041439774371572140560468467691006495262016625400628813689478768983616743064901781684528461354091381908379289415997531096893720121158547407599907882832545417021716917024061358939695888341044181713302829183980526707133197259591838268774968563607682118938592278591860440747046064351084748734141938965696612776788883918846698650931789506173941825609849413054003908884525079535415880700932815657329531919972806082599108328519525525685533424268733608729960299774477736071091883268223788370150049126698243214973490071761108300674552355674339014241078824857272624145897941257784335995496230875720370174927985791608257155699426729523288302557903423244464065717764772113878185696623279270746693741839630176129174688179698483401010303023179807248527709845201693950575652690588263062095018350925550898316905228001043445593149052576154392340347350499184593253634648006611680847991780954669373161030540401663252416003220395849336159682856283559115546869954616614798934398025224916429237563978293332229556098367782541601792714374330326273787773317247388600269580926137681235277621031914080998423326595698023941747028737782560237188785856255249668090330359255670975681497363460567704901174263821730894583416903846832143984999584985445625054291073276271336602732822571787305925816635704611501929882542547416958248989930014329947769144645267981220737212644088727432039944569278381332359048790210067780145011016351092154026726167543441284538702998311746812524868807954294065475961860892695568724750153785864813868241196154293915737473383358162593217563128249224188263587997940449468635578546168434111036060362900117021447166679378086882173459735300889354288612801170264117727021743017905102725035895737160723891905524189623011513198822520806054277612559831550425882927713827526439837719476163096471483261527369480753074145922791255706836922517593782861633078681590601385659483586095415401903491377996457161641432246685715224451837289973173609809743713339459669224491759600377051202515702731485301423688163164825051600057132031227083392127789921931786706676210253804912604184436080603463917833928976985595815392137568669590059459223413423954960624809279461161021547294770255101238342986109391060766385157913279358387720785790615908530896239137607023130183834457507401335008969251308891125699391136188203936123138191583395905095696061759399577389420216613038061203911982380942553099437532490584881178537698453638912625767060312280400078864720159592499437511650168265938680523456072488417355995331187154486777672389517431276025380966356233985916271576424152793957425458903480406583590510789366602620962368541134245053245798021078368700236455614659396157480805778503222974660454848772977532466123652172409003814745500155672214445411774154680882771351448032208623872688458389318085285342967461001611791117566706917787032054584342947410301003506223097352054002723808644289506384407224729912001223140344756543003996702357155728015074735212115336493386764615175885590249371605421979877992687388535363430252430466232687954284427294251588015664740116414525624106496996115071204393802699879801413732821628867205382599416391279325528346451026090802201892534010469768657064204625058068422307714698415986842841934132721877628869739933316902461065364923098486311536703063372538645195425718815703722570648994530924262294929352537307698246032123456040407644344363317152636616034820064729265997519988018422083469761363837282774352072772777329620520085983203183710761995048014477618066411348715682809942782524972195630825444266716238630892215724472513679224883418396841092936095491708042234659428799049549887585680997901416172711256511450938431533548540008742125901574011492680343119263550521155609146126170668935027986435728613250095874729343508074404883779638697537310806389001708968567321776459272608854776111865425898076856108688200058603068137602654341156372366196541927176661689432067192668227180010723653500798893319901182847880104512455600016566676574228957676142196487790415935440209948209676881429289955212187097968795720357073972967051744143198708595712587829300115482013323497779527487688221636262532441113272256762396096867484417959660634663207379592503868527687389881394509938706109610862646299011421726793276880374567941205661292061169066117954719628456836398939569501185697341293869262227597378039711265585101979761448477338639060023334838454329492950983870156613274607988104716734020200287989639925211966868939017141391304579330025761172191398070678042157539022887908862676616122596249945455527089969205844470482558119747542674855471319170058707667761149678662138622116074958606129784985601879899834119118874682527036819314061148851424985865041181428711272862756227553353405534441551828347676804821540150500289295776129624553342701245404790660856154819766127335600751756510915517521654565876339778638337537410068549405380095496653724381660684188040512638207394705936073316713983968146130887860373046940843334487500398488200857993454209405289593222559708473789562655367992129929384421422278064249608821234542741277525611336061242251761596186165149841226675122026647725230327493123326857531579792761229915900912240923861362844979054259029156792650323279062058360901247588752760525672127291259774105877599902112973736418477280982779330348123061707322241409524608736317987057448388000478658018231585028018936673008646070995494512976576916185831159557353471262188654502240692112785286309232931931837423643728561105693042402999025044306323720721049664998225929447907447060866764092122315376961985208869108801777407576865694559581727513025316257394799925359561086995945566333090546400455816607379238046867272503968491505419073305395092531054529239377401146013680256418687555009305451324345894687223271210638529927733809206022977257659618866246768292269005705054423859413949690867872780508500418877296175638567952236382051041389984233384049531032770444076218736309334140946044943523290202724774286453334048479696115391862781194477729159904537618346459793411972072859621740581036612526854966065024150008815233788750667307115761644307753358628400911052768477051194128095241050708894327747422517482357812310565664093357539333176453224975241951982681109005786143869075346136256730389699004786442822763240547075127910185393664779829088408944581559587166905771840393102406417769858341939345639297047150371715273001202039562385114706081933285882259591088958827520568853520729056314347406187990494972607722661168801955118927351451551343867216416469347073816763843205181184292792510349897290389510473186425529606339301834971094478840561717139487521033457754738160597674242113920993531830657828758006519639402147554871666711205502821127152908389105225796503304941770132523968586552080303426307753717523175897610989381864059973514320467747625141551838161367229393581247572032421767147289300537678187038057276806555369875927585124898773669245120826269273181887441630578890700698683083393374221509935357225476984113217358079155378724782728292241614927610967632257897864991366148279467904936362842809449962853137916691442502129100392867720994980799740238538941010840033025413088721103714568298637709890074334572751724079583902158641159634480322328725780639507211812678251669930633109461575929325300410550589811247682251154639996864403716576426900451503389598856950962569021689455990243981462945340124868210478301879081912721468614163393698542729330484756489213892983595733624444185803183520897390019240607337653235927168112752544096074713443660330762344149081264867272896714118282876349422450243840068531274458054830025088327714060457295260390386794525329119673133241662471080861723592737952795498439421678853973461738327653681264670166753812184502148332432909820367635941733739875545749148577599373340633881770708645793562684633692031919985240604003862309445331155583873171438768455101476726824848667189123976175777519364735929797611832151459316794301617280105991520666369718790081338928848159349132529757632895332423917573735612880009828418424151913980026585438768437107765843732576219498903695824594347629740461314168811561880138127437118526155661153232348780184690274238157037393278476505441612319621574037042520264525414301514346644743959707390756559570823174758923299021837895979401815900320292878415252204008560391374997789202590199717914067643434702391160095530721948077854696683638303362318521986522108847552492848215782949027064557837113389709133932290605661566249634492681223047118445256335773504596248898833914243157490343580835452224624946644664533737185634611519033046296894850041943129234743402011545202302196525951964917997033419842705982824905177397158838487404405978901139744772241068876763178821266615855057429015326042248445352643540513035304384127077484858333433257963390306994034955643060451512090222586979095481865747487242200710059741251619486984760336649470957047880918772860605699738761500056767120096596845399409637086805474164343865847761718435363328549337308509070019373487557535492431762513680939349997900705931894951538688148436769547817339687572573134613186524983688356995358776399948121272211598587763982903332323128563775127382449156735843095777443620279135124460464816602193525258454868211361458140116799535289885908507310304689047354524475325271313400889568789568646075470487689547034311068927643284538074691188153942199299877680262988338846970396010139874468140924062757220535735833982251115325298350663510013293216872081450199386121580488299390094549231894679542571404876977630272155948665995200129928088569252837124271020221207923776695265175052956476051401310879707262221389647635553625908232228696758042066695098052284435452531182878412511735246889502159435895384853991799123624322112140366985146381825239641245200819845746914153258575434584386941158208620404351577217512532907141516043978690445881364579772163847682976830233986208468286888562624812320192005168507825762433288119444843883488738467801631691427623661111453043686386032647413618524019819148607851854011856282386789131334918612758292289850924630058440948851318339675445927198166605618172016667983048726133848328639048195524342917244561901186430970784123704845839657401440932913045330948670383224057399407615385223262233624541830519050990834326865969247387883067985506547442120470284844406661643181937274700311746489685284493310168251708139579990998701134332981268953693465159343875591153807874297307420615478460533088685980816787750419100574633682005836871209041704786851737537583058249645244789264810939701712890345497057055491994356437817173679450959798060041478464483763362339748603712383127678069378852762949364359737012630934434535637016119093751607113272368701952986542180542840330500724856976616932608163819271631336153817974197475389183734775976106806068256065061455016963113442232600772965948450648991922959414626167748551782316202024786875521105656505362108243040891918141597221064192434141426923156964834109346226961041120122333444152512455709046401648225792796605056149441966058691899539526697634639764463834804125275653250747706630139101918821219375373995164578642131631426145890477205060606769439166563241215084985733060223506376346607114882963419029293146968801898530726163033291233582449150989409135523215381876902111655238170598888559415350551330069559347537845103203619137939441472607680035148185129026610283941185490589240349280589941386578386468252020831782607960905117612178436772585652093654951894551823416634049478899962444072769852724194117713288489301934037662499770553959000319711404479017745107884149328900368118833447129788737410096425369099057927184439764716172630963688809670772897351186010842306074466219899635478518069427178605964096560263711213302934198507097350766050932795815701204591489436215390860653355873414448630264480621472089111832753349417468004638742154669411855419107695567408330398330898796819967301543536718325894286094998183934955914823428099848587843236152534705529864941151350877245130077699518039092980704460357078206552976921944234231023443398069007428471335576850314486024060446405111586796227768167500614923589031167059858614503073939770933583639837425716378592069816262997143649861346661796403423177673566527004430817274607670534533296544571275246800260370357039527010636560478579332517126496179089044755167285589889935208345109051788176941452565137809094085540976648014467708844794590933281626109138709395138582784610691931955220388641289125165208874230919853891520153239696190779521073948881362938277267163081897233307308878228263378561335255135209084136368500028331990451973406850150292222646129921635158936051395831088265782747830243370454730313056543590427831118866768453321529835196120456511601220798514774610567068321206451658589484095571239346412456228473702438012789234560017495973390186118989348317414831757154389554438949238327584679989196190566723055583572661299519850357032153964627132598713496219129841950415052714932389881684946966338881117038016116453926742855850202419615508743994261098188356345747950882167563863405546449951963255167710547162243534001308318289014363153756632336608571620228324986118927671268048777976575579294954508671146472410371894362895982561954622812824787936779753599220460819672087516087285746612743427610671928789015742849566243476965885096419475762868612119164529050249464652413319672558726801044969917063362993381757567847222213630697179822316268704325428868495097406160008370019861394991043109937538441808174262611266205519621200437359301300116904717872138609876897952901579429493439614267142371998335808529692241206746263077598352661198433873878195797075243112577639470215573302960260560545571773683378297011262195406105360488374941472609969844085430673036467812190601348775917920225091837836817138531124121398479661421499471093171803342217345038593299058733380633544248056218904296743700308541033967042130472971041736584786497075887277175822157238203891659870993490114073449966386478415213517087550775163326790567538661690417629342225128399589968824568974134603554489289339009655724385072224199301237734936696536758019633871431800249250917042698924310019327958475671468043923706023289354629116926917717129804585267248055345994768132276547221095837703714268762175909817149274523088425100984897484845218859136075108334932064259819900303280510815686218800167093471702745311577602695556707700388897133763651350988788166211636399478489592514542567023694213528448691122237048196987795667212353816511711694187650569439465770745245243022013667085674649693997274388291906551561658378099533822632590928106230324652642232202054016424203857399801496807146198574643598981250229520508662175837911530194534754454573787633660885894758352325919645071861792938429739396455476100521845540645800956517713070463468021383080055799744371638474149556936927432308005259802576084743957952607447380325300242591766894609641360252815702098688460707334274844871648371685797937853071230846134827649924286500087588482550705197161637193123411329754581334904557807746958357928056075484144197947063713062085057145292046977840063018221738062293635482139751445881534082672660176735619408983142780982849006272881274531232836180745615371332970207860967891122911842632159311472247157763373664100527255673005036311254638502128251940820914781032631444015002403841204038910305270046111719798978799639259525545981723882758103688855606398345017944853196435736428969915565533624780556368055160874554854623474999074063196869397369220045821214369653781503905347394249146303143214063062693193214151591111016309483113539322137494485969894095683089192760711837756889605062922620219000159880822251220565945950002120447210111226581577254908859970214051371222767552918828772153917569570016353865447679507610527541902448462735364484097768773644885809496216666995850101851797090904698330623418024156681142057369651756568542615965299980924218925979963325461361216681962466983875368522066076112097533337794511801582121535408116844453812941240920252698638890666404978397099444386424377304351111074768348738669219944422255112162420815218906798302473638531582358724233446795339567025582366489021941457638296462853788733283238808463862885838979561681432698304526403658395777913922568438767907770058084460856952794848090545135818964978771176524927121412492098767696097724831022675821249166179708049424951798308877363800045120407675814767535551757482372723704624968768591135389536949927407090855651289515065145294165962318862425518380406634124095969889191478949974709523693800145156236879724496837270926475156219836311830668439562973967364795091367699121817056605831954981586577328731098286748715240915599551555294913135370230028991633411068787288719571260028036505357391395651080209791127450638638979876474728791693633639417152711657891133232117205640481172499945793482504725491792637533974278566465241546339097454051609765221923467541921685359022575248963780254753080098720719190932760170276452236887071587058126811903270219052653788044190023739187223348679414254314379514894152962157755587736116197488431704841013373183705087877701494348168531754205678767152853637199752620113705810835457474318281034286758083242904426121053726691834802072437778286171274160321102632794701618862001980408142231179867619986635902707472923667832861026796118054526043734882146439063998158870601288105512882207941767827281438353845591604430292494910526436665862353635604204578966241089827397162543217664547628347099344206182456030347209978643380954567236468082684065156293322552020629783432378309022495732351807055953151639441448076964244895101629845399856457673291778992942185398481227579126229953751719748511200379923736352176555605254261734139350309276292115468212550456453837829494201984957822581056952723488142355373402504779035390846186552733384675808123997232723440157310917951372333683068036872742968783594397086141368124150637000965195468466884318140153434291944107576272435063160436173840435707874121984086451990265231651371241688267984527047979148472906140170484685646971935547885230942678733414529932483021212476851596753375558012048988258948016458840186696538740792765916217960808726526544936050882197708237142591227053545247374936974622758047233218297977057522853614249585649274648388619397810172876143400941821960258828642525020078510081208355714121253381695040716620421486889874188574977138747324276172956116193043422649314510145397830607457991743173351338919286465962929692803908006490800918817046608374567526771227279765531420538113188387134028705128980718251643722245877993753929167562550204829649341281481308396660830977109074105823780550261580847748036056716268150628420398031354900420092324568982129142296330394398600995296839884052667203319627425522332241791455388629446266593296151450494071363941946991296903795240181583018975444708146814382380418301114582559739211453602444853886967300877791629428489223663035322890850910149718887836442607043875950228990576777436156022611957255626762206103438328167729774639721249544071129579502852460539050765714844239871331738156903885805129193711128090899370603763914425833391453506758087049244294865666320170111448468973669976678976699015600358615779264084665495823528456603003069817106407346699857265178971565180128022225005015924533328054909325618461603504071953256961438988223803029600425143470492174251526801816590767970944884822292550544631095247943030677604214139989270034893259539962583184241973062557991407010902310057274288189905651632820346606338104219016375947604360646012925483189861612769971711797782671582586536175921623645308899669061468382961685564886387130448440779793824068108149285954182440351593037623365682758160490852332022865027117597318632133171856953919640310412913316121717140041983341793367397254391285085941688209192252386845977294787493642416001245050906859755691060287428568028156769251541502362264364273659979700292618563539362896001175756064977278350707129699285386031128926285079565724440460648930672183027901949945671975811986138414612508048030007748514294486059904789764413611413579633818685995871355406531479016332482724475502151270642734872861673179707083818050127566840667629141224252926408298794231249230690096899216231801938515493560502709627932528840068225098277129190119067529630545173290980557997240248384867529886350653952297548914880548734476571012478763273185581810181278848984919875642286176649823185309335457545582206468386685454718748683398879379836947448401717388622722111360989992005604723220590232386728031097280552834345565320494120657403679969976653461473136442122912470903131801698158893036960087440614408964230007482231461358775303902737342846867845870941800777598273327883857682190419924100196098094597603636015884079898705854894368207792261308386903298459501102740595775733331206452755063103340728631266161907515551551538718482494387042298975830607791467863444370407894446413159388387411051547388940531688458611922739878158690820165830422052499975304816822693150171466199413846603927800943066656966275707892915145478992741167512521394766146230922616620541390805302159105929953555219818879538855355429939805863403552775742498860121373905037772685937423992622818034418340973548706210534674192803299601502109240338845816905395498377044242664223166085746827117202287875684223534337278906533019645289874192800429299169873847276731362364803612918871265935150906301372465019906653275011553194272293086980501706924492691099012949218020969248984660909246034893064361330211967716712344937928345016850630339846846542764674384701490437071502687242007647328546379635820858350754984891273285743242367264917836824056850117393775985960176184749958698566847714685985547346398621420842266775452137016691917762964331577885469999867967017458067271057114271483760809882218236869458966094166227438571932775202659912123074683525554122733604690782357071283379788866928282656579173778028349526844837891087381498631227429442199210251708962351841379422538177583029288184565333247752847683316790904358838206511821766393593224197014753513386383814211398314982038331857933195986013756592256096443075668989554073468012405767784321129407746270654590708882638493089399756806460353037305809290101023312614245021824447877398461958479598730674707162596949485526146284449813203523565125055752865173473643488951942252063753132898346877392220573274303294451281158205848888966821881036035365428696698893251446014392448396249801744485473210825095322849366853177757627445453856098537985984360642141381237458059787586814392774626916421995644623407741837453841437587489207745640395152284875077105334248299601810947703300696839635276137413364055573548150895491118173660576975112804806165099065957702731093851741221692177700962884419048656651420372710099007364822208584685302589199054109410945171448884607349650540339271450614445007121796187532935312505899552777829793977665466455454282811318695765369302142095913650580876759588214121387414729371718964215714006103910055173244343022805000380294616203746181912701732841402590565974248627940441233335531260379090945314926820046191059491448318376978006409561443056805940990946803212198077420543353198514233309046063964606533230279477447767507303512951439668323330808523530282635401772905599940244384116036165402226360480219396040650723639298863271913934076104816136794377440667871147833754039435063435964792304364543336387473978466245286835804013616320162596749717335611071432169917963986471285056258494947249017106810960098544875156515083975323072184328152141554276579721372625079404050419518881818179173844070201034891405565779848718775369057480918551031721497919359952289764411984011861741452964698736719290609885345856800586104785166634495414144296998354819099485504647214456018958551138468133635394368430338063990097119313527410520105689371918511733267348344218779539618069755569650365509083686827894834818042232788509604817953939939827584023749307640619099734490557633467914317238564742779475132922279654672425066012989718261062032165711459134896187217725865665503598964053776780152491493777333233656724800372178992163736838195329177990370642515910939798713416340242789993156622792249835623579449983780103456865173233801149884732452153807186668484706197876104038518306873134019423247722705512656185596900721447125485472727211112760003596461781150803295206788212732439331060242116615491875231864549495816112719961974371061455708040904070163772439016030584985794350312451611959224227050100978934487298643688164206765077147244132107535106441384052786984709374578863343790405731019437051098942039942220824311039511866477208035257476804000909258225471468045117068763515473009418869199973173139298662036807097256054229184329075088855367294957252922975670565233388864855597025898352260182307010203860939089399935528604377106377730618011883139848718534042913218792722994897505384761210518910899239450555450667148872343288472198431486744867033242547945343991330262871090142573652716412347750662248836024345802912377431341908097012334551938906209731634359528776184380361232435313378720033057744257132216312481036745494156349135998015879156274245565065696968944123658972368965101447668760209338989031725783602834256045084812039216336742265910035313279012594300065758257273667827502255782278903758678239126231808023739890690352438396478764692213913052509797517103589795224084614668864045801793752576093032153001595421544007934061804962112845091270907698864036977036881102745549623655800945346419699520164360329942525697721499115514799008299175271545651816839801932975672086633223502787487950666889237689465900452740113134559120840539707723422437670313400535475532625811867264793024682666338112644440809918777958418740340661309914473319948553096004715829970717455404975945622218371301742062752844731402342442319084231369238350401728483295918776893964077000533511803354876642801734517360144115011867693033376049127773949550074121307732248818729265758462868923600300006047552550394192305197698202665910401974548004771556514992296290492006331953288575322700719168073462460267483567648817013024420613873054754146231050251986745690259396688391722602086505397133081988942856610752082937064895183796283417170022406340018076658095039796134695162601307991523632099865212563315634024516742096767862413452614627392403067704093763611318246049387666843401062596806712615655528291936817261774261588884631634333258584753943329918315744748290528595593811658280324329108373783482336359100280792051747065997805400893302357485594364843895894920668510260256416065160507411890952040564906812408706436879480770427449454240241676072337759726809579344830940283036708457563252231515571632547249193636549289937286166127709321064281971027585212813497432129359455459624865709840307029000053958668453015732151157837280540298587341317549391917055699411206424759276287475235490813484528826852255112676313327899269967959826462469564193913018104072812667278807282290544949116496468441673399989401298327676363402446113446461626184723629024503292207768185208542375926892870400389554950368692220513945601907510149944586373646143507071767031608354631575353314304158957532563885719680257636881935934800241393767766226236930945214057371907072251479013740959998162352489483283556429134127979603682248737666924680396090113056261110267013016729754138185535427355574050447928190198448122360213055340803696109457680783942932372300919800279079431209800550225408091612742765715227710392411026631255875838795783831569128024095395327056266190066661440293646351606073538084940024441036744151812299695769022554765821829071577907063000087833877563990950781358757311178754583444008924599296879205593888121727411031931036522218054693993056614678749719694061786590793928929901240219063335379533816127158002554850913056397175197207505574954048150182133946154966670058213939307416245474940101314630711381524172892703977012679853658429895757725047237830329798229112397743717669800175116696195256466145217571301502034192286639552933021852056635963639884483779994555154018989480291254241878434619715045247796424375320250613515467707337976022628751510511461367582159046869516793856047205275812398062167922095993502938088603656632806380052015949190838808677910916057076786805281614347449075449751305309386388784318470525152187181934132267394073218315691051821399391522869974155699291406142067624384124881140869715479036760658646817499591557927874590882663962934215961314063425176375582640259973297045374166862526568503930484097220296439615928751770606360871170382170230492666259562109778860723383691224492213914575901979345031423851901899597581667599501523609845993189699055058326139720612078131382142549422363587693637957641205217428127722595502813099179964521197637916292353148097231534298115983888824607127803383113162214227543709395356437954012546683858154091319497080650161614015129079317416245345562499581308022066210903934793008253534106199300500217548138062250616013823082852464507723058227284107942241579274425306205481761451369317846712783369346134781162125394230529603190827744455711994865983281983457337845712022232224187533847612746494349043473042287119171740498291343041143466803515193595317949680468164634300341288523216122111958447410766884011177704140119182276976922002183418648215289601449450841099082244948962187646764899141402997118247936336221308168827252491214339276338319981568245944872823673463291328262045677960755183939349781124526560862879339003097238421124196950790406764948400316266745749677951729233918781694683097836477060806842520930283374017557569493611844261085599782301437444815514317487589680500530755915889197514375966687620347534649527248792832259035060657201142702611891908667204011864274996704812599389818862013659958420512874071743168315127249291033308824257683295756444923335302048757638201319686756823194663838034058088692423111357350547985803885762483213134289086149960251896524173548373745685116608391069160006835554674496598716488515124127868039498762736254683401248782467148059167656454756840828273299433710482291157365505822122433720069338089740766237394670847716413562483457433483880687335070644534123845100030218248879310940478938593791005910450190038469113440239481617754212161894432277510211297478196039812757677155484114639970924211658026247628002865433747930355625258614343551380061960403905840966570459139231767638023666607194251601693821015982817363667929302960799846258308685315362664023036735154921920560439481176947628658766826970509457276004919228775111105805941859591246648850222574474685734976256526199539264332689805308333235040779027861884291647890056582418038834169661121826461781163051354344453121388986938400518409056075308088456022790754251784815968594739276258440287807549456393887025345037168249005334883029270150332326854245392903524955209255285853179135932882887850095406458495569909640454794831755983041175280374117682786048153557546431891649484717857596941967192305383261106130426487661680558593511508947414752126866636030831793480196028166130070523671490282439622127207747905534571793215471021318235472204932454469721785637712305808512928625354907505326524230944042997574765600868300806724084336740179235609459120388386969235337185406560108047455210428086988128255886042737338067681260301468062740506149072718184775707006528437440618859729559144966070512222045597070439699815979127080538959344882885846460519515768722011086903296650717468107928863214057319941875275225731305541068855571768261915253181000692197958053937816274168323639512277755245100375855301114770603838585653538208109979500833306631959744315489287649659400121443319947853408686805868099720660031029784414248317665181589682754379494765382241945005622459745474668432576794415863107882891013037046605564128369938564920636429564462285340409387369844200849682855582087990341109778253068063013178758083687454401023856710239801501894543695654435102392713298172406993246866982406892738785027467939464392731650689452161837044519222135694005495484578014176687887678020125773816440467068696165576603384262015362500035324884306569115608656741293165738548246986926606568277525262282992673000330593861492540858446760519520393342750948610076610068150882900450147416346091891624352202051730008060072517429060753352552382447830752788152158352674124311676516820593821612991510298691057329040361119326915168998978078600044422384967290158848590658612096581349204273727232602458522617406255135161676855401838034614592434945158593775495844530887170326534895451805905754693174783455737022736442887359347109162424418209130983804235705742814882702070807672858146334643153450155582897159369054266602499406628873218156702668636683855043845227607673697517078299915898520252803576629563483011031334032501500059736866435150934994823259827022790392379300025016321798191179984235108251871331736382006734666547995081003987331128955360475405574699200870328350830169100755541926038805546674298292610580499559173160701971836937813347119326854238517927896144948884945287346805221126543593526231796724596584326404510287124604526594318573211085014510954464684550143717725338999398975124307147302333664310653859089755183233682009176623067475984687868870621290573005362435390162435252861497903695206517835187344115372074096785665879254488799621357560881996303514172437187672714823664066923054015986981921858146163018706395683272940329599919697836945485391864174307003152016776614186155495970515459502824846729344168759074137694785826039181952061693214860237327772828625829933440790816686859469689544406196544340494523537181474771797385226164760889346650560181785050539777892505361357109297871312601398212156962648629527346013573819841835988390592618475939345678867370163516908580732343676580359846468596701453752739787744075282419630664856119942602205959577251926382322556065525223883779839363898234505984834415844726306073877957532390209108858797748773937802352108871940036194858219627469593293175825298113443243134595292017786279169699749662782929241965166731018376587071844183626924774410598156596597576084138114290039163659150574128548929384273370515783867040255543866294030388266523597872041729219694374498795905743223775579559257522187539114800252067768502898085965700255839132725069088435062692387505471781744438987936938608245940898151921614028368992915808645705305671853745159416240153989493941872839364389541566825375687741539565735418524467978139842746864402599181041240646593953959065618030900908582278837353028282628779833662629489415259072929424087056286540600217638905570879351365783532642538098892676914364086616091862153610317525013589135644470976492278202790219429418023167355450361662269080192780849437767833106688051476140470749604606973076728920398444481676372705696072858079854695293416090506545716695509953165087499984745451517652885068006649996224854684512390507415536032900976262655004305368000506719591403770591846450567624133756796295194550132519880028472158598670337073938514763864438520624873397249863758454829723165009908574202358499144957082095848461223215856196526481848710408243449136467481117957084852040164878075290919348270163556064135588973266188341645212385988041831381404820451320699828110810894867746581336418183509637975135629349111211960346845655446086859576890338130717427439985818853187381282278466127633355001703278283501146819819913327498927013243881254620710463182008226958457009363466982177746587876195368513734818462405188173865560533956739467522570931670156673870334382422695354423628886030263335883454046290587813854786184220565162307705103391000865198094781262711002884481504514076464632608459091029699409806463708926569144210636510001875386445703586915233085913833546309355091177473429792415154285509315884579095691155298318366874693746965189986009884493607680587697896794876790445461800988873830205880521481207939715571319188961826610822103530122690838133054380163940027601270174145053027836215239359371657646004727333516226171904978315655886713424266098519760751289679944474821152512437216116671497103626593391712629653847323102735912812990935387840223324648772780715001674135569723169568643312891764002178810902300225634933306319614969753534231387303382623567358746458891946401979952125445503452696697019041807140104249916475985854161453533001420765485216858189054149188949151409042965443390469892499978907474764278235348848896566403348852397396389806463802576640582614672709719186516460403989132013588902606819235700265260575309637877072651736994308241631244331787024039203238828052495847554511905472141546078063103940513450646604042470574833201635326773803158907087453605429096922195859881379343613173929628555792112189630814339901884608030496890623357600011592753442826074426655579945827662093457785289606636843526943092377034501343147687826895684385560584944501692086461563344781015727130439987605423962479818418186746836901244319846271569492008355063977150207423919731182727744846857395808748581506955025772400147021637743457565571807597910753546043882005798091663516878037468184966925197779965028062297226858795192332659498393228627480646497713753780116018563439890785850604631123714737177303397606500330116614150342796518382151290439262775042542967472799537291184300545106518073976116878161462730260817479831429890524095685738752697865113353481426806231166622110438253732313434386691113402908073915342621511769382772636804915734119130953181150360963801762491962750533303218889198952608913162477436965174523329114410140604541259223099323751520335614054356229649980480837125037749486404626767715205875808839297886582963759980957511431616651704933623190116938176544235987918401354774248319822290844448463096336596636648360424662665246514286077892540168348979761076283297926785046948281816566555397520327067989036612316671812030435765777011881169445947077918113295916677762998123011072125848060596195221975131871055522639182389612362729745381780200055381537530943821359974695339035515690951358078749857931135371035778343818097562236474678904893412816028518378586606976794979068064676292077631836963249586667498731612792977360109359691289360742550117167905418700274487035667897336970098703895288921177831021913005800513357944526696586392197305337546572400441879111150989277417281958895585234914793920518212293271952498583575197155849541378598264145363369467119528059104576563141150349018353099103875878782570435938848561394988286022070644209189810179038289032948728747774101354303088446234745740751078046840252044587998944850824588937452136858972708974870762386418015421215212850769192413752058944687920394053297765930933013080271773429639320832343053805740429968567739390036006465427081743958211409925826970749200676612020033961767289025394781386630586064037595700083599288189116937206336314347311742110694388089623755794893550149493674925861285318248576759233385922179457691445533555855172792748663630583717475325132502007964042745022241904733020564271998973508821821911149627903059519286264100510202690372234865329245488323647689446326273624959245523973708483947901938736794047038712375953562804836720593435489981327515519126516384932194739191671776230323353796008320448283115321674162579115060622197275049053098841608751317901597477435156421501625825735189063957383296308947207507721042839884124559405370201924587584286650707171806776132096019602407149445899292201361944688478898278219837880563757737408954283399872618091639431493295807159897650258166372021045191096719488620702423830487207673050895584496787487218184979748972735193467708832545465597088271332628392798481194557188705413415826283312406406394368837096958411063470210073034985519763829206121405460786385354605968303791929478305635104952126896274741786971092023208730643659578985671359043043848017861076360464387778988280200258808189094609974051464781610701297002167204332490056168176644443827569064196718261928330630695661189207956434764204651834692983562884962355850069957468387576243115189657886992558396885911247172240861971299702880860568040701927641067353377290911791302272814389266264906631774973109739507723233464431063197142378281094492111152867541358618230349200923602795488757769534388351462033676313132343446091008135037834565220234512358723805312700805782340220728721340557327791075625294654716978544398962029915173438672960013180762612673879268767260583068847643824792820437963793452147178838328161757391433058787371116551602642810995810992096543034301417460754721251854141866619900085889363257845432327655566084464253317199825297228901713020256200451148038224585938081184470084463484511381176185062952757331520132659861486506581733545127861089079565187717873969201057377839422473830181227184109635238142424168516144281321227495362311844356599333844676392110615636953372763389463292651509489675854251939325869729895975266668633931700336603380933212319732381291702035793604243516555377978733346079695917734155303635798795341328544853147426420340550669255647096689301729660760768151052553597495741065418966589020737163672487661662589510187022936455824349767864332408651465729887106597253509199864954671240449535691089217504180533094093069740972967339281295275523214756567576196635798797285084473614511907718773571489277296418677680529890713731543749205571586782587312652858568932851995756273119355873810631831711953163682865189769111898374096497288283421321962710140778170099504552627569301114657049347964589670511519000603226102692398039093579968574409758661852018208258443370615641714260359919940272329273237966497776273174095942717581641904154088597356218140469636025095451616723504511660685743436146206110493355834444188672521820822751001193510372791223998750291762519627336688515458889195824535328451956872689802504179632304078734729964368373559465480928397689005053373212470986009943576990763904532053824577747963413149055211268328805232877812952207169462419360102317063498797089517903429051465272019888445413839598896386871800997549078419806902243604155034251190858144601527635785288904954120976037639682256683497705465579189765350426185311655926669310780657176109307578702529676113773862133882217458732948065709097052056278521378539142366161770735005278348464816825872065768723959878809261840387920709100348883588738227187015771942954220398552875049222704588177834687739435389740770191239117555019560254717456280600820634236400001926776381507583124732484565029772020769539853011407649543753710878565048604552222428814332072812522790966354084307583311275723131587598803266470157741769297320310328607751258259188846699839041657620956029646369490526714697160056885681246630400723646042247451813216694505238794226462100308588731838714313049544009551823914423801004265026949371279699309108126162737283933141686581631116973944768083781136243570379500902895557372611887678538747555281665734585384302702245898515775996794598865463270403286213503960529412741089647967144178053116407554451016090674491731524207599772198242626768553535878065334836747459913300490913925629568301935415821666906785737517205822537682743161736819113890817574638711841076908001351892005636332417843600446516974764515520754928375824114983473400209896034030534870882206041549263493324489881940291000683880968136204156942554229787215303993064467291650400328607718869065423170053872905019502127491610216027993351552032641877366298737228857500429187751618237655609323463488274440991734010974294288633250777486504866911519092622214876080788958378866583084930145829679670424765472139998242542366629115960655002835713593035323466032916897948917301241035915348258669470008817571011652301843851935377681549282515626387940719550319643925606820069711108479047282463924031017346225639150980724454462938731064599072391143052568517651789666991175627322834201840649875124689797009516729574276458241236980569194664402818088169259053594463472100162441500127486705288665443570942763282620533764451939462541965737614614256726982799146894447174480948515255397127679021882849136013960961426172503297993921330295627907190579246820433160103918378514437604442875943558864208630623278689366360156058424874217330411160072441575907333642761568747863535270124717468573729307693663471602396443150384822801110047718623873665305736524089302506703300046673986007311371528731675223919717242396047602800005387597221556875696681041706260282921905827452263265726265282611117584499835526860571784667597944060013491398835403406535818912497674649376019856675936093357911813886369238954366654210991155227182077320745993552644693735897777477399351971728980941674658801280016224847087675241187272411721955804655020931286204125519165991714882724313981233833591873508826376819047924849817583892420055712907101877030425397872842540818508880299185054043225562811363612185819354337401067703074351203126856920349174468569463155250277074445664885187209983284725721999240617596670049609819780985366305759110474001390208714782738664582561587915790213620679631729084137735123228739951643447549579635091672812373186558822037330017204731803376634842301448867880432756075750896692085146519839631652689198922605254920914742278765189308180170856327784538384987453009682812625375454161677808940226519591577798555034285723011992273297090776329043438643904198756549273307613927742512564376219833528212554579321516519239752232990997549805945657320099752252589520411437283820626398958526924503548683001220770488995615941414101507463621931727349252359795201229178550590357997898877179503697476744761949934750906896293732671914938928863395944670706090446997686576049075327397646606417684465225742546812860947505835167060216557310170558736007540097308009468377153264589059380540426916104146956697218794015351511679397114042222075080328436997774041720350857534420516341898532899454499579325108479618781067007229572848818508901270896028841531154367111957829700970874379151361011777962068077906123693482920857983433666140365920342677080382903265586826092166015161404029977531310108609086865218667216655152256896139091611528121259695127554761391878563495329499181346662724230975377530611065549768613001205659796268049718436469317272654183024268040023805266809054608090871215752760362623699622911918025112183046741366875832692557179198706668591492131864244617631447262121334045844001955475838899559736582186147071324854050657722532783143042127693915929611738671098927857237408048848935801602636151783556199202068094786555127399230616084654386720498081428581912876491760568303677991770388850862971019361580640009297300449690511503747222727729786903276562550600551706485740691897250907433874092057903016372510522638745972978368689621776347504026551160801902655266056673176116024991555354862008609318684527012345295822190550159502240405128849309238243010913395438894319508818299105503393214193738713617457008630375433743997202939693501493738278532740168760537783894991405911456968146988690189751523238443717637031051766163544301000389181194407430729764284229696825798937894972493453775699909844514777358222239018952398488225548226525432597230247976029705682365190514024559757356517036796281355628830222969334491249854395884322493941096115494665970669825963556968478020136931553292840861434704808930443267531105780294362885482115421764869396995281158984769862003552450569248162313514222530472205012655293548914628535519595971409416474568020388443633468770612607055166523570421781309474329691054294452706517267580180476304452529058249781743792770230155573684344894549608547626207361942401078041016841882066717863184674149254899476459887284287324564405000641656575318389813237304769185655119502294351100045445844395785458336423433297859988293406786943216429994660196628683572131741527223630495129194315256927305591935533266656169330815726026632804186903647952283761854250862159709028350101511954510934159147043454664173387044335933115713143690494863035583140368361379888404670110129165568863443707189102043383893776567383284045076745134509313708499956243708772366255365876032041649194127540994787149895856889552882593851329766924680817148389544245657095956549768226684098898820214214234474663959827397564033897228959049105268827750565304794023730338092382594475982292046730114140790520168318983087063257439402301348006739357294029007054310222565146436935660830695738127031823035184070662437542741815569330251937611514146929854514174569984088071099984718153316643066805337617965834367546747011029379578101434367725364546514767246638508145773054905765305532745270292494989566227740829585778385346325825017022867641066864392874597954638629366047253142814242693369191510072393142555127317376654297060593960009295410801164542461749168881219964908510785973216999617793447251611120332133839205700835594425986165975975349683012554462968701319811743919631944874927985232038240997664419563271887733876541608865591554450157777600618024036228827448370016415367365921172573030552604996315644249089659383976761745171455772987134044363239614534633869229338774464538517004939175190423349112249286365821422661958242897124466862156964433568541773032073433737649939970079863413443238951859408926045701337071781135591878303652946384217127843335415950084030865618296542127228983956741477192622879568596025112825185231540805126678524014074914734131475147682687510183180289192991553125549596510599427603068421436551510273778258206481758815732919277905432088919497087824157919157762037107581748357206037126827370514553602526002466131618766145793147035049631939683631784676403260943362973084734295728327500863161460973444029918888925739299649308386383945410340623837097910576408710312087414264886961629646579377408842436333863207470192418308003344380094342713485095863793706576365622661468683829577166187504177095380229211117811840338328789526510423179363407227980097243214720035123328360432486963373361743207253176355404558272077187047105766491083152834466275873281699450112486753654327016415454074576875983051983890921802759139433098124767487567783445742228707335850105691187436239956875555586398452720081973495018831049870710132623614094396533512279149822681275607691649840972752631915100057034502461154557958418122370087274225024326980019687258678225608872229845679328613917528928533461460694108167349069543292521992921498037093036672462725763893674061664097189223725468113391239763473131932876249860785848760330061728805301499386029275277307694030434444937021121777663866214900313311101403090656712476157730648720529833479750905769661149591367274652655014066989740139370036627881668932789465101880267738818632170586044515435871601122961612985172524745779918176731991287393888249138318628642586947899019762022735260444620876216753367357053531556957888511138414203417028427502762295697363553213635161926418309150920424879182478914034152645602456946847291447480838694274103509471467037606617316666658791855079400011201421958237584453929072521119460866865082642012185868954120690829008186925150502876821753907024511984252930773381331668364123442714124736341669389128820018210211536621249467902812104150405425540227399663618962924012281441954345695768992794394980337188336486777845322217565896165612799704565375839359038890004678559009996980122497157244061425885846779243927941042478678122729310493180776231957885335277486885435657342015940071953901080333777811149685156734267617514717960417834531550692700603879316284407699058068602507893212682697603813898746433244923892359586870568396905515493964512026765635684897052034149255049357173111646637929439889926169576736381237823932821356763893990662669065676469521551709245728901347920828900238265498064070916253349893932151860291990920236565296215748627416818339817474540115031945058045834846542568013340246412068849669502823081803706156013249830653111008455987558746554824009876400966733761827621727553602906059928573102872061190617044852786308594217645498335574066136169278300942907661174701318729625075980866217882239291981571959172563660863862806793051875814606115590092544285964660898638381424623509786743124208441365123700041383481161940764312076325441013018268445178260462510102170476893425427926163704838391282733435672838085688697446294250961715120310821585810908518321343211010144088186118485777450959363916635828348852035331703274776150073160348704954200789223353400131252908497539647925211862580148713487114895283431009810081266607851482661444255628964538589183761268380062343472599392972833809584759471060976722670894393436175253134081018696486358523104034691054612080795369355521058743052489301165816430836278587135376974597435332384363456406934266653413025808582475007492675572764555898363497055748625535888961092049768902843212027587333333514800197300007707578826009148951950077230196036053766079495055347557423669482391021917142695835496936734603188450461344947755168157285952679760941288844109465091131101160867886384068154888462608187980619973236318802586188968426656198530722484332833625958392239266704817914027631129842365919541792636253194481314346916938396504004790003816832036949192639555748365754763840769699600852254609955776761932515284134270851712111277722122895079133591168187389795026450882610904449729315962547340035796263350890469449424565225298791973220001689446929774882027953380999397943902866711337286103328157818665138827328555282583044012327097783244213128360990757965008315586114539787820139174012976074144124509478954662063009511905959272606349092036803594026086378917453394358889968121270224684058954245923484563905757265058421107897290431023806365069834677807829897255410918497419595673028707066914073082833288075517344976894333810275256970102066208090564878218924058755630307921592447352516849869121352481621634255798250211605510396514915469713480842292554185745176166603211390682676343453639690464955670253711505944494599303180137782955495846451764491425836107030093261844845124111037803733789104957608394029433461163062542699090193884558785158699253994068233476771974632008605563913981151327731295510865795561938161460833434739658464929151724575055524341801506931532180165532335681836963076139285804554450526471213850316500221070714503410959254149440891380690004234018412372900904658207211867443899786873670460482762379552784723209867344181777909240212033099885470826955777758110327196960994693950456620375113113889893919672562464821583855694363609048757728554969058075597447989883076028606392951394013975943017280390847424531576693059794449061355522392050229539131292116003793893728069050017553943408661211781162525584474509012709466050950140664496243194551891152856449479951939024556550978136013216403171040113785920755218933413672191918825168593100360980235818320905003269263885663186106889151695883010828362345564820838511959818399707780698649307871075641425167522946709026880564935558077401734997045560951093269345427510260775119733164757291007063213843105012458685823597408548363410216029690252817573675412312408100352941742466704509038237356393615650714797290113833603705994074223511404311089651437540209986196612394375503317234533969762774770827248164626436462620414749308970554423310024699722790419824561181902378927532043540186431829151018845425410282160899605430495079422587533373357379529955659288980741456424494047219344084074418113828538849440875397520832558181170585687130344996016411380708118098625677361544277164178582567464608139037581715069985072788487726157394760672225023774315297010384282618570403506807779512296864559804129568591532252161682752132933926500357436571307997651870593684014650847332647149194490150406599555127089240146738819646216815274755065848632847807999033790716093781837649242179383913682560670161649715471357547488976536602351579568661008298303494681242077545369834539505536675563077066502165616166776857116597255392248686828955160117855735196056608645478705467906405492399566529804627450961036967601838097469531543439318564152313800751436217675036208112353790600762415492820593044466672941803652421105964846314410294328794456995658151929774755170006789811057361278198354924141682840292426202773364906326625739725291792520584617299044050136569582900729736360518733651935746150689852448455178076530953171183387531765296949329115344182592813565319592149713794485926358650529380081017945292615273509730575839166718547691821847560846258152542014025321124683439344924315181271029553979133006387250941061153041861295790061486403474892691491059866094571295978132241584142937242607108532766508324262243888542317313347969219414862278818892877776504789142154698754396601273174602605234470767489297981890534335979806014439068585563743050713197026717450690496872986697931436587137474008805061924708450224469057243878619221552931178300329078761246310498653781290591246479977858401819123701410507079645488466722754312873971163878257596887818153056287855321328086832339561823277736259520494225080874816274268197856492914009141001908085088110616721577603778039601965373691708026842983389743552062057252961854686892159562712195800661510406043207004502497742275270943103033166292310848117482350717371788028642047071372623551283969136510707940910147307858944550683900707506838084497292212626796452879422429371079584875333390651384672204412033301685962937859571906640294816364393090309941109078833180880363625024847344191052411124210140503599780930999129932816316307615867861889236384482432916560591411482702238914425834087608666704459859129765359038002523601311812555907861385943564343115831204089362395381187592436394623222794057752094415527395030620719972956757407508288010017303545220563749754730213057480118621838959539798643083534357181760502135442646481870870294795208835111328672297983639253768472574392124704239237767094166564234880924002964814072392209520670125024322402235433072235173599527284009597271538546037000441251280566566704054146981663570941520422880036611295357136535187045697268070255646771921809653840357068399110019955893913859904126105972502371885573519674548768472758654055624718268766394307655249378086634370677922866568139662356839720603085342116520032989132720944367001755135571355704891000261009744526526672925958923583567814084910176550342780637468171341741789779155556313073564319414143984920900872962503162200730202679058677227912988188894807171707447997085943608791011438468487596924109821547370924582405284392954911192778722081473402511851832774730648976820541240476148719579550985717253280716461296511390423745971372157797388780092823309253515612500409202733853282335041850659635339359777733817897737041361597643783487375010159405235152242820570835552401857735172221989076162214128022937743760688959284257788444665551446486363066996814988667352354247084222654937885022741556116415280572304296525791850965962941342126554974578859451284879403973757211473067064156091899128365264435489247134172381985538409398412917812340349943269072617861471196561342315441573111334627960230351514863118970366295435024337296374475540964725099710374978435603050707445144696137921723225051366214547098878313360740838771420185694917594638442030227677622866266815302267016973628248219103931851371497958056892011247293905967463845595668647309599796173158768787169596769816895527915837382406986090652923599366464687420171281835332556682634467593830918265783523248233176153747323093505069645141985129802604974211030874536154867778123819515471964782365554056167346696230977610780384588003207593197262444139500513313454816120595814921171251246391642581672904315415562460601588822816110639222224097736584713388902933705592259237078920230559538438285416593749541811374237776512752931071021585596991774418070296098186305591887632899536330627831426018609742955698053265655122935102100775908210472996930704833697172725327719999080076422897728236503478667863703264587262604072476690107744100200151994560488350729109007087247501928029287363759422448389134817865848756484280853164508735306999616617234207125993898134265437113763761487742591010812163717820235623884484925525590031699452608523741686642329505302205466651265976823557590647480748244368874195141249579611281747091717109718113242627058706225977563227673845944022769734961529272197141315006079311058273749754299764377930019771193925294582606002293754109926184772745524199722960006367519869318734361261806396238960778445646080041711054211087289697464704961747949855343313304544436964548377824553942201648981649863809232590540166683849565043462534102306517868202188759902045284578437065202980093198231679719726703182165071191609857371847957849301384772225565369819398240311899457866476191196656431736708634782771445298206170867179769810634521369485386476751686333800693148311548822079101175637093005038876947947013190106289151512104385966131046194437553497320619277977498099527707799627380056634107037168071870424621269864525494414005946139284514509191692519510457364564486302011902117071991284031797429024298787301651803415059024764792446866665495134139260054607550613011051375129986865875628095353951017993177149016487346702188101322990182624174146433214123238644020601353981857499107051456389972466365510168715875914367214451096376744198268622091985932993644477053049156489499884957032807841192262096577036804357169420793321045690684229059223611796432373789942734124498763781373938920775933538701922413092900054226061106777896295097272211030049005252511092833673066294270848644178659622735138100952640328051929794161819356211228790576475680786136634258406470807044344900933817358436903655893470401274669234458052784206861252449758555115566027756138315918887450116655630031561347634387338424524390653102388003586437344241199570343613854025746242089489887038678561979164008756408243668261249731178950931399563861876914073312639970737086711399090877378801875462522058141736756181622074506470150379153553656329503247638946558190007508754013271141104133030755384642501260073503374672135273655730327608790592222840292016554384318739235708501365689603483576902239113499250852335387490719566007204422998533244135786250094615121294711738998124344166004821955017393477320960626878996114739396857894864055576870844846409015702333482686661827308198788612513218042545664871848719061192388749261718763529029296018612659950331716605016123015885116876748594967149989878027867880918685805239850999602969909710711788157553616246621745837657798242112485442422414427829775496044602252434623642783147918733861206739761297666177734181403475493390392585767553740250756624830388055882645425414114538048336014731207143458122310007713251459969534828479050734954438701992269072390808533989324101518520190496921193322377435176561862286053859755819058411265064507596651755057544879253640926118784340461697218032714508448319170352687322010499487214311902155695627728787408141916467518683002494521785484609895532160448116313125748613051712142554069160353344826819866475603971892108261731533451208907579259414628140819432244170901319058181331776430840693041562243729366759608851541624576019645818003419677557599806476604071360220730953057776923681734203884521114620006904845008535632266757960252723927279931938093910688543906548728349922423657491114793628838451659848518817689829417586521767135431287376960420783897664982278654213111451255904243137731043956559280408690826487091923872137609570986296121559448169630247295263610629201106630022615941104001146224438065886019978358848649811968718758543021283295764599180985185179379603362358553084289806968107572904686243633925504400956262636600267939269948087102172620103796767942093689551883235502237979262819370001507517760178812737608303063919262082778541392054391813123245880152372776837794013044902125342882153063220836639269447839462997016598805909660356334428659610072183472900378133741162615207145036821209898477981268203211426662137062212613064529478891296116228232124107757953719702324567112749600763380901136502617090105290338660746429626572251355393602213250658005190148990948023414433310806222792460285768971677617006431166064836596627063128186007810157379046104926691595539288600554079920879413151966710661951592108803448170385921037222592911663430210570972728763382784863157408250035516842944726970107037968619564438119795969145037753326695015720458122537787746832781940994229840050246280318535968178969811914867079740390443135637439884111156555484005262142826268185579290083758619820157545640782286099837687562584323827040288112293689434946002277177093215419290087684272414614350568843637496030761575839480641013885604726451963761815373456917667835978622358322789182205087165623157497271795479513186934843899032103109165380056376932321519968337622084227936557599228187850493738841956164217426922509991962562472387203067758686101955248189674536989838926264525240572167809333643261347603526261880378055374195105968778981525327836442646875279074858190466434258989135119559949264252190589020473579850229450159806740940830279105218704533692606244988372212700588367749417398452693355803913212010459852724017393338277041926377216646317636815301702970474023407309052876079927605668555138955791578304280224961946012915468060467009618595505924207209790864908495303864159990751107361249564538517327630233539155470349816241283128870476971913560136760789114663815668604782608218368810354236880890797799451356253036333039017310529440156167465582879216062041235983306360592023226725390885237844269318203014749222272486310638100903966769754284868694991871327809834037877587877959332890903411234019442234631897480573345243401586804750924544482003630012692915313268286536906817395833490730025585760615958925834928259348751672227034869395154753428047129112582915255304188833155087671463770919935540869452698710715718386944753154818371650697534357372753288087320897075320827679729047567163803567302199218857192154680397236568424819752984318574999344592043151763826345080106122267645702152845253994166459545335865902158306291538217661694208640833256638394693274103863020906367696184849533201748594178370209223973309476864836659917873859549132878146072909748849106307843298398773928077057866687372177742847657213082891720991576943616257225220731887488789376496049437926847081954270827112068611269144531653829783622570221330488573660558003762842779442339977759853068346003553499499247782195457941102143007914295825568549881239530344785625804900603084176466190777586610110926666528565611033382672711387673201667934062124137368033510870561798703499329705686738235865231609543197579328944803014591870950932882662908042053828347795975122089120080138519508931719170473622792709721423941383809806389992209792158232960620207765736133526270811718204809860877427713932049487889403661316610069200282487503901132073458488930249260539629514249965882367123542854664031062307930370743234934143580207971749639080095710586618563414533748321252635448953984832144605924930800042002185478092062256508625321952410218911011087198417000979789280646854494424429893033431039481087348707230695004871512881933641661117816286089374784265434557730288319938562107350438423513281798241832872914878118228954370469119942788614756519923179270795106446903995653537602334755115268393250009211948787292743574778869979668431559073980318888028170321341405785004001637589878966365809716903227325899014890788109404980325454920655799035887902084344691141069847219235075173344327235276852713545258322767568445716180057232833790449908705793165135450576096713431801729152335687812654597555188417701567548380168782020779570355952625523105884960459716218454590182947259788543267831294844172380421257753065711811322851308482558446854563447663800672838396904821457359093696579012614075675446302324689373841091445217377328456343125525764525542034580629961285159110664135013138821668893769324423365952923473489045424697299725465798127659460004377319925352761085572748953255103891919158877673855575996682421382854750215995540823442400163443257689739890143101494727853999187198171973070978086325547167957303010588574854271737403080972115995235944991320874317045573351361782312940280409386641440187619031678755891030393329070451310694307154394992867509182105002031095920749351454543484406187159208855546252301202431309629334435370691346488645369901997002718004811413480857248985542306699520306682050172990466235502045017893810869971327833629328846092351249592515744840773525545155308574336958866397173065976652295866326052939015010025138643976980363874005716397080564241896457645006700815797760549310269755424547129911511116249996257311914196956172291745992499242146565801032705933898118576177950694793010788507868787275855990039362834151451108976953061110451343317483821077853227399880821942854052447164075712657865173532826523084419407502857170921122568779096963863959436559948859574982725663260481079076819323304845028262756322253079954649381188752445012555941140873792711147017929290825373973099495905153306338642302734325817344794473877408687892231184970994520196804596492033098339755930493778269360734422512911971949992736095773164427789329156141382644076160820524794111011244328282668590221172595619813806377106220151309517205641038065706669303401025069551212006829361347408244568252622419074260540016512462432884979467058501911884953284337584064339762635067724118664797627156703247468083119649883693488812687637866833529764767355212906070395508525813281020710244976799482554697014382374684463728327606024436225036586440336305662220345973599820885312347535681491316407992612800842585054965225583463126478917178017392071885810046604239308247589740670474700281830475180119096991608824481727218824532593387431660612020682558533934346282330545718235013711603978471365003176435952561555374923533645731753413441330895572456631740438260688814729243077379442915151313977441232560740416326997394963946834759700816024819964749527654377972300292364289071076711579302507280730666856158031767100496675927727711046714821697504893429661824900210270507790081472138014267704062827143467631032433437953247670492984760807310062081684624873682848691087945733782196242211367305272889673341959064631346340292247695402961654795024749796803476483445061772798308072919338378534280732738175224153210739707687334693000450332593280002865461295321768671152017161263944974595029635299065071328667711452547324508450781303132546437337886261493479661215781654022620037566309422711048307482902543456616279645195524711082561493582460561350792666260034022268199133217865050720464204455125079542443711135088184079709362280134479386923376666086125476661297016305451975650736056833114970825943782287933389925931074634789601860722767533465026801208974571260314150229572215989624519204850598232691000158557384601529435103347997874563539993862945184550726324414916040349250077358710053429734479305189061988850627655670543716646902474065640398891508687741443979191278526364949624224501552543105876916544476448200329101781886347245812925586724487056600406909864716278527433489136604627819869361812411701867195814695563159038804051413879794468693665900252407921862288865756742510544830948473700953289739986410812243481411608486047445869545753303863534195120984073721492519052672047132740222014844776883728883738585994078517421504734374950524800385506727664306177597894003786800539707216701880271279887697366638254698565584777943761932854352773730535352154077047767129304962959129253027596906727393847678833845020396693785317791971771153890037289339335791084752986934549803591812171149025838252294614606218758063245107607867015018627017423147855506759006590467367199312394377487610660851018282647564467347874896700585144771861922174986462016054102973798046707872622667202026119013567636115320276605751475036869656434187711643031157828027786759515539590671812667530868484156165391615390977533561561729507836450821169591479473305421772337554302599433180485431264243482424272707749086265602368929719682761527841408284158803533751400013334457201434710107113593386371461107624428338255089895723285711925426166519085752261835105491450353766244771524883810465260860380294881905864152647052247126617318290538293217469825484194635290750758800472069249311644667466685332877544433701174262355117690307302146747058202054297352839091280853901666217641333089041827008384080352673424226613456945776848827814572805193298763853358133412768877077270197372803939912690951094898692090540240194536628060860387925311753002092755675137623910615012131853783405709787551659148641049448287903918636572124491923468944138867240870581660778507258053706462129976121199546652162500621166421632358902830304522130703134639111675498708490579271571709788145352417858830086186881415537205584045962501476234628848513400815824272027575438087370085377855697862010901436828948383393223903012281195913267023609208688975583820088449378084640396988766367918808193570253991868189490711978509041278685943900947328404407308980550604411773287519305752345917916261474215708622138894727828881289199624576371309287308613616160139559151031944899511599269469231095574194001329285787976736507932075320293686820366808987444635143061137805502778281458173485003916543026110592827403247586184106211424583939473385896656426508027514746395270824253011673347808792899598502694600521255359534302180867990387003517390498171243432526510373296657528085119457347738373989000432824433870262955513879628927817687416340900724405325264046749213950450368331182200263272881320049534395394856369539524388315066513651551407137705192686978955035985510561820292502946545781040924551568924321173382878291651332980525682728121656048698700806057817449655182558389849360926198683545658241535644623084865511234905803545971884722206898766985127897187241763466362011095923852946645438419208161357112729023463093625436865864226822400761709748844301412843399979681410333868845199010558202545910928250714344119564000023577143296942125870243597519690534479506623643471243091340292712629831229070776139038677372549522095563937829761745405811549653223368091022400404982360852725230765969259748732407062259850194934367483082322539831985492608581186762946852836229676671192460278937042023656028393540706560104726097934845870294987999787625710299317950400442333251308249910257798345299632582712860027747509540460611967501604132559436002259892528488796477199802369153921458235309688953747990888299370635366783412560704088478779609282798042814651499640509736520628068963582471740535234850025664629458537386937318557132086419808169488251477768886095850037273793038657692517880112070878690395557740395021383916195153930148538751507565309581916034911805963383504638337088621610376432565772951591903774415537469932297896290808151785334826450794721615749344738318454298401524608411314055041783626741917508626877966391140507326173839390434333554082561550283560589249740934864226530056358051870936920545863272763911490997010485511248588663690092409835800769480083838866174429858015325642071896147943027281438813374516054508993242681345145566943448587582695722309311371339505171219728667315666335259809177121499496630335091344662389054219160099738802982619082321852504980913926822633255640081623475689569049491081570079955752882908325180201323039554171003477935840040616914361892821181607704065350378945505005988418178041515672809163238419282582685831106265019174031659421505513382532549144426601479702259822410114551854817635197183312785977716331464563322722552242541252551247658020539394190342966758705792034308948212622752887073456286318985332200300889810807748304660134402607048888382985804410447635907201953603337753354777193950553768528733942234757858947240463039628548843201890571069831073069397488483919500717063756306438237662255117861203745448045371082620037064072957978715436190476681753485441294182148712650849230357156734151523510257637967054583562289951920848192277990300429000565540152856557995674467209108270913356217790474948483138858527290075732855542012926536328479547540849404777025067843832151827039372380962213113414473575523580636262280847715529495288759036779344582754188746911978005901001925070871545572200476938242239393240734781281444200107390144355217399337671674630863969493199126260350909525962460405687437965869440786005702322775801390378473150722478760156287072537843303179728432793281922716477447169419205989798903884855487016453236212515279825538925729144087303730041681981703691425081913915743855619262436299947181266766633533963337129653446571936480384063593264928742831147020579200847578474630714506248077860170677886722592560121881471659234086028927532287424703259878561607404730325318678113478114192313233579057102976225854519050190705276120058720555778743492627293273231103132743850931996668906152130032995267148351757117043386700022066901488969404141870252596165005630753145049924058216210344434764293015606876448561305011810027986860394178364738462453779470035658202583197034298296556069587656940637659136727389290839173931709531098320904724075800978108088722007876263874518409980198644459001694837900798499621153534601191853940500113357824072618969070789431318191512892256765145764997802039794257656681008780754781049445750180767514785887362846355053264285536149129116305312276833243784046308180316324904948457350061360901521943270117349494084179567811447208593852825197499283377775942135975275722309684478881814616113412620516775455724070830072437769436439603961738848829987514844550361413610521556908149140067408333077254280474168030431129798178493964210782839421197546270265978403724684811159356359583834379219727808793270145799858301751429771307229560316100374514088198844765890144794493468307571693326602378500541242066311002686650086259815168322326787928160087755103742797621004017266133253852412795946213252709626619181871772058417224777600014703694652820962761963219128414366793601455188958430084999177559804502146110068105546162374716500239981298932275813044709443831751893286982706713774425656734736131878330589059909898082320518773011312769131415712164293763534395967912107330333680229491224380050827027220904975768145173458962916781350908717808509054899066265003506147519641245383387829581013303403815006851839374661681210338611146527631055308903592775010862267870020854700916430904737994035493151755342233464533520745247254314470750901938695485060416202115440025521106303978366284379958984388152365207292359795350203161926121590445821570117543977134290733515488856397118418674085127317522750677446438871486193276888546038838602323369280278896549381458231526922675210280320914606299379554362606306308493487416109372297426504638552292696062110364434418836442656965587719877986692089822487916132544653134918987065366567833025297733910703875239043461746501076795146204015021720824641766235828546716488938173665825092960885628067097015245277456814612652535228930490120229933273438414466137259529523350236483404712211427671356568247254740326497496049460946380141191932930260853431565592224940822005016353607725372164947945021984081885274762955296311745134009065287791545586268968049493185084374378429795430794029467511737788357277659860754471979237825328435962644633593227434070949115979099068913875961624673475777412256756023746217192169600778525045540002998572841814777669426316881551149620042882841886932943949783049362976726056777449969272918238740732964142097961824988383540279010870298414487948566759806363873095058888021907664740790956371155210092054010291589339177205092500626581640684272885518392267786455015610464498451549894196858530305861147878693144324872964374923315608728866700001022216082071072757488750964723367064963897516267767071095969262257037482538011235601884533429212056271715703487456696564825915699937220337995256203283372487285427873259889091787166655698885632000214062433615311983823806468340358825256350441692671662687780984095837823033342160531877832090584020785303633483981192378256210054107017015040504987056672158532229253046835354735931094754297996783862142012485299450176472130860752436172977225126193997630791688170844807776845432061261793306574520355182538319719382956615153761951983377254276651461645776993280003101749158770976508102814430343215112792755852997692068099407257167984385847806829353123670076963397553949372366225410379600858840287128875881379564647656530192819575487169917315344487230527186105260873910707085786881301274537391708085626164629899570984372218101289010216254938317426975531984674268394569337581064421140670951539554411441120088403864178641520073878612600552684310059594245412830079979068610261782257226163299262574003042879126057008076661361591523877675190118109259411289157160936991471699800098087118734124289817397867664225526482702910788474199504460177396166453738877487538005404001665774509233364654807816119337478280766623311149208281914559110518702127613977284944087970471083547313949539180334076968097835424439561265429747418488763794801993926148150413341055729797855862730304455778874622589072583063216802339484937428929451012658218990545629145926303496752263877881734919433486816431370406544480223752480592570256825298739349222526007988181550301565229423673098688658320358402141455074913538410363895414245085529980854883153935634199293562702616846230073451506484334845931075201715054837903058439797131415746435818591507611452797234847935150799085728927241843928694277389509578799821682201476431198291241571677916791772272585014274147028740961025607368237574570568223902895061232855376374719517157136736444425495531573944391380562859299814521881775193197101149457302659997542770013321459531330444353100088092359889879547973943417820738603792029857816448052769493044483742007217751147080335548360473286556966008278968141923083466913187274548085262921812197568943965382321022546691090600313214456226180344243762497669506942164530636577076178537161426549065422546771833253477909898978294481390599754903659930441343164423847948715110975909184530483896555494193480363636595083530806196355243526873059108183081652159080452014669377018009736394050781558024735084738566428337276451509019709090917522775387150185529065532932973854555160643138144869597015745760370125851098615632468300689439207315248528235964936247719215164541842941104945063836499783973599094129127956202627434416669903155816995736987658478714211844090344582441153969944651443818823538061604574683550519162097012097276294693881519445485466283738439672293925946393218751390085528671464331775334028318977628193406640226581732908836837635375732914219295914970007701758618251231137830611977528995857762392826001087897206220630867191707603636503926099747229806507290349068508085358378866083714750522719309950757225767985999197852560333436805638013904577605227427419973342388882786946195145932023047186561247128383177221360846491459802184378267041443275069209176254757279276283161686595456233958659081301258269123098105372767300355083506126364619350495840651880621067736665645898848143185119705475936205859995258809433873688339235752751028690739449582589280737522921364353208309595434382312201171211438339780996115246276583581657254320603844810986397481712787839961723025563749684805893052620561793515229553035775701517128961945758820425254207965718095844906738267780990696907529828812892718949933868549780436314716237686209283871786249777715653162014551137966581944185746668097225298204769059374688445031918459935296722644522177237177214701192788391958224312326015597363167885794580785595500915075863244676721579446511760755418069960129376752749478772183097986830043807022069581956714141560686606939314910742087222390189588079781284516978097169418575914290471602228565612022872718725011475377896608589834731223730301694084583193472189806997296561583718705694920977764168068337000684835322122350051738390736663415379047917462994601241212271606318609787018689756118420222323063626204590871382938245159536774819162980300448519783025142402983620937489198711455587368066967677611372507256586512117967780126455294413606256608793576256568997313650902787319175884714460793883443189739151677666811774255782603088486958950496474266299619989393279325452967560327675130901098065850996716318932541003310498778300435655909305473083314483848509759071902584072484372782016602046710400854831713737037977672185955946176377784002032259681654453727183186317183330482083547165122228837658139461491464873105051244142177350954242994208619368535449265586685061766883943851399135527891615604778895109842718159937897205517976751014234341323836337938787750945388426105655517387982637112009968618484564049550224752406655286301521982105557280464011716789435980018602552186755915578109112310044055207519460645147717461978301710957131415951961740953699185984779037363994437338814916778282007598591583510711690301498455109524923417306768735091986540360486007986207564302484006008675572026765010605062627430705374390144219300785944576867270508601144927973320526948875995072138720097764703944134810775434853876419172555830523360148411646242712825418627330822436798750008203948841235837413827536728858329303122962899834843034018339032178583038991507508993081444307294819170855048713104735080436645522939837687356694076660515699858819223903633589636044801586849607707748644406019410479358668981332969216970700615514480204344024765974935906733508489892313667089933230041560888620177232407341917970806631245118317410642561416603548345957093108744958037377320244745925947692236642509672411152586742904229456747624863319271443712079775404490125623599065373842559791053741989840959404633752223540686309570910161695623051793712696413187310836008133955246673273290918688941389749954200387529466312914988691647731917500811633441800014171955987235834841785846020482872843501860125250535061741043070131622033901096117474563105510087095234651895614250676175722728434570843362638232972903331000372410406802373252328808984603269835014343031435244353537816186277938967795223374264544377818010157009365903496386420599408933488962043612714526081146939395341218016266155891010897331854243884607504730226898978880952625230991302426836437067928879834314502306608582144860910026828027207407334789907439681241372734040595449446259577073925491157854679244810053589770965985485657797468563683585504096407171207946953067771007866869068904274536416118954325770805241055849797153741581839205489784931071248284203263121097808048868092621427093700235958500850136738997307643347152935346355744239458174980395517982744941723908510415037194289486859893499967850872724618436406711270327338940250494678345599209962740223213591022104190606445205445932855303042127554493164072413458718240030260534806553721258360810555382141478948946594148223082384347693502611550519523863402162603396823106419919494576409078341150723370493393900207053683345594918732162278894275056840634902141224096071133480469935139084286615434041927996184027592097214013163583710664001621115607610205016272903612167110823992178669656499227815725495511225926059344101498026860500562975043812844593672223142850189899133115444964942763427110890602624863692370022764075546121554399458155833006323409457560590808086295041913915563445863949678082723431235993867415029360502653866192083220862991777270731648391044919449640867007524266357490711029962932564092004843703847153002409608218245846376968326241531856202689050573714255279413308716755355169967586287542177940089001022784376439069261766790674425808179911796070105518368625627893354618497739776566238973664965761586092524626803200559983656166177224572820971747220198275399069403941233225305101746627425666522646873060261207375581758487915769483862166380215866505639959914580831000600491246050802560469674141115858876322749183443249885264021769817887326303055217861458749401732709187773028309800299671324404709212201264044045570247684353181807186716207214409318054280783781132633925276044363263862899323035823190465980472682768634729787796993482596767590387688659637712302971216791541683059747610109791518890604130448692074556151445459084610593045778494241502640929806787922971051880744292051604229403532346440497445132360325673225191978369204126891161831714637651346445919896202057099062145229902524397094249450606330112969636121463588244522011509999495059395236191872173091644104949566655357625865644896187047345327186191131823370309952199117877934651538393190380248103610282519486026377865052231690950974086045962869594502339331860364818992032570736752433105754106398432154378742609167093161821564183870299586713322304568841278707162757125688515121362459099843032407828897949981775227558375242220889449410124411199769173131228870885096206454138228596381125310812278884772739782767563702062398522157924725268686096443762639694385113648675026591569644631564064848262885809930888613306231289968756014563659652537878757987122154390281243128123677153333571229685033338689989568680777481533812345745803302881761646077201315528058017919764757912197571038643129632845012786389501144997852250523490637598869198486203035517089725871727740245878765716032104471212596285593203450894439586337119675788076178585295869452723655698369022934002394924387523984362629821183007979693599926247646627106684405855418218634585379537517754375080499136488813493287994945900167350628470939656724013288478797355781599417861073886129069479545157106220383408501023466239760831166254574874850978675279954194368811692490703936628480499361421627443781754115519085290195488846057125636208874364358668408907116928023448798478499813977227470107516827993598877586636014751949276112194628469914247346930834810460999870034361632082119990013204025044402073689099060872106726813822605575627421393012300378150954508579129986762562890848385359420375029705190868878016125023504080200291525412107633127103073171149044941780996904478807490747548526357611249028183494669255852819695597350618887777446048810040869077128259255039558727966628862171170682405791837135149982098947633587295939897923382721933395827444284079250633730405443124384360726773741228653461765977353643658782923453242581676349972423426451644430614915448614595471916976834992362991305880742773028110257712080947491746564276882749916184288251950461176011486662695976229308409829062593901024842796382049364153499237384974092509767442694053627496537764777016909851805618668951472550554097489800331233084064539288344283013502873127908901011919125393366033336972450481069436704693716765298219314010663650682401869694486960251752921241305563981259391698353814808161705123592260053135352536639176769867943064824178320083313750669084407363237037252168715231933191213984480920430962104783767561610755042634434714007643879601624909431679925816922491887823054450294127738174485511955156643127761952773422682605771245865514907519560003420843405092480078500180920388515295524605322393416463159828721494127316046227852214462580604666872364079877168186792133423986586406979221806234192946187680294382955173944490571387914648086862498112416613142711205908284862693354266714217516686903170206471478606011337126978413636344132276058815463366203613386442227731194929576925217549440137954937917581828728979603878540778178333604154396636932526794667319242566552091515507589636428340303489613188508486763457331902039525863170123137873687333313744416756806976899597920342901179330669024375278067621582079657896636040729200842080858996335117707975313199811415134029890235428905608887824591738595656162357036393945985385432266450337120705862482101063003904733730486329376284081873516887551584685775984054108081990635284152042765159906712580614863027211792743956274370166537389798478886519168504000099212243389351523762687825293599770451408374824368881236985324835963268122134586214730826490802711548185907382196623301290501726651362601008143577630602013563049237140870697142429424160520055085427581326341785275766022467861613694906639108908750624090778298992779091580639189682253077034925670944521893550837573453593066327664798222466238534834092607630232632611039963124773192154178444840897026409293079183768141587438780542177788260934435964408599099599104365260364048332387441468672781741189277294685891214624220679306017488557221735584976588839938606288438669790252102136884874303000798081338758730545256280476097136708218402557112436577228638842317578230561987111034264542846094407752202787833137082017754694494230292755446876193462435252857709268296929129627085665107059818970026557365568152386896253484982074982155614768078844961510521577384362851002206306976013231723993053012371901287670551783651323940247422211105563388498509711737871442615429720526582901441562971616379110571597499531721270948953941923954613528185371791061230015039870099722070271552762822168579305421665411342723374410974242995416739301041753542388829477903939219633523711336264279437295983849885496221025599685948395491631839918502019801558028495002602123410741443111006325116256442927139870744865382233879349294434396538456998086451447943756281246236992244456165781828564005994028610426599469321277893535280457068696845124345183218092219697912988222412847131956527188718286247630692804552038525988149881541112099663372834312053236851569881810667186130706743032143609574306020522311748956176841113578047265204902920077440711566568067734084720649279883691154007549516763933357986753635514581638238530574835748336565307095201540850198870686668831193787306858958279688105004388711852168009649888338923918744961611889134952843842297146220137988476434291338274494385612638328921006023099663781030727745480664816349686932461312692782378228275815646140702246895047652023662433286098151726095427132033032276621956667260314809576944740673213484992527248799720855484330330676520559991364283527520505698478264751839447928300713544221677965760405965421187627229684439188593736830422742710935518672303146066983382425375895208984508004628707990265476492389648166776335421444752867235466654613521839785422681883270950663459928647423672431042729241964840188755073011201360993769092303564320090811170290298733769391684700903455242112711248317439287651089173478490614178073069831399597244434044336869713684205540061484917251442719101926537892259452028086508600570408286754590162267678403465811590934409776364476936633822378786872722678923339155651322094366541954021398129443553417095385430584199507471168170565482794382435140090916502173944094786403712003596097882487211509468969812063457928370338353942680193387595784577961735637296229675391934804002103976721911863584152014845333546781133680372481905529747690168351467848195970093981877130222256605839370807887029927962278310544740205937675320876200385385530217218039103949651181916935988089319837388115450427275243664739333364274536192444845962669889116534965446664480310020144593578448375390208297420454498636530049406092052297398709539177663630023253280301497734568445585072869830193755380141837331006730076401204696360521650734506192607024957893226674828535112144783849551028046835340033048620329559270502163025974314253949379720014289123053349716814962737704570653961375443473481411919189280936459857272640863204243532999636540879783335424529767713725632568090069944461784828969938796160995783828477368459182819281323639365146897798473739974849624479100977836211335305277873801075463693638855414665236018317595204284921761476615896927394301689367539449542390967602003076162635396097803462077180272888725983791603807744790463416709296436979163374707496672957706183341863588888649017953876095411740505641846353908547916937583256237963486081328182737556717522784516666320796314241717552757951051733062104165544801448189408544538659280038600645848215004026906931582317680980003642000221009610501999766309419040333466474104598203965106359766750515137531170948091195497337985423332131924419689186079001098597536870766497096028959813631719683967816588841798004914594805054840594912311035471567044483091808927050293238013716519719255686696936401096868788459919809917167431647523806722723105456720241488321354294869162948946025876850145633353195021370121065938172021412208215859798309244861718641168829735288987632673710058549046923499405707647762327996535112512102571160667657005551644899605432597414151518115247796530880900789317003340701500800551151393375581143495946430028688632130162819745108008728884252539255701023110524334480743334914943313445977903885652234586222922098792406785110733475135137495923490252820463231397257060210980790878250246173281328700707194537973873350857124566995402961284256204971403616326365009377916212958175960677721816053042941487373438573432299369539027054795885432382880128906737334034477450345500737792592968268225438107785801773789809898569624154407905256047450957066935861108751226353808743299772560308520983724450766627667136218272507914241410941744634211634682697396219297348274560470041621757451294855545393662472481559925875080122121041894117838439575851292910355273600846619613587462350660978022022711808457100372765860006811594328626241714571926274594292584410277875187567144033264148614869624117886850379219039183523554007068714052195938747028424045579662772471413575814213243963500636274683487239040997132102322134736452784535771255073957325416059165087631652152060442129027729274777630042621299912291421366375302458471487698063515807224324447012507413150638092022828873949927180598473446309313365307798185434104446353542286797975812223549668594792595865019092329089777556985893362328849725044499731443207672618238809173140623175802523159040142621296995072019521443862730066136273671754466068949754211577899892105097805739300332259919925372404327755323661959604195685273108604352002451940981256173490133280950695103039891409707638942588882358883490460726403402222045117069063281344013549452870207834290270249984469932191310938468002585862503843645710477197876047792340440282820452602569314787874250082468853700836839014053113580875281671902904660415574317084170178262925102266970878178996620645591201891771577529907397916039335215834184356864195136133313040116520953782126668219080470696270645267885298914635152395454459546455436901645213480564143909352417609235497358637820734235913151434962823294718637793143432625161240943051236710400885009262871322159613920733039036067946848313085542791946575799291668857909401433617427305494040855053002865632542251850103494781009024014315145586429917324628957194502446651673080994157253880741268826918816366477520653730417689484879704144826375870154179429167586166094050330915863326725822063904859850231570460281557011788235923303558100023592062653528861299657597591687588362573630050754812941044740257272608257228348991891711565936052953899089838861450583079685639836090388065342041008722103234193594893511573157725783267821288516046557658292515770177799365068137593906072789938522121086104940802532907938314699786424830789342234956932694493791966050446234524572113637334030580306257012967640828824072652031791988310900225827737774561372765586851292765034174045922904672487535863624580207254520359587533958054981822962945091727400926275945395638967244446696334307073602402526261096689966873288172190893040979246969598881714740982964084980807140883877316812357397731180244228414419995368114911510596303894903112564389046539874632435114927125654932280412511379994517845427351738814812210644896854214521344583926281192263187341480305257271544738879712837595076628846086441157073582160321841106553210169362553612398733747837431621397504937592628974349202536051855526629076069714224819579718686571963200082818767190286748069285308448430527907748728670588475563928480427939799830861366301746281011013327167057687038181157187681040584755746808126804891844036145882541228490907185554714647001239910973359372612208662313399631652516001001223808773371622482234296295615174916258711685789983691315334487636169581357914552952978900853395230925717525418178468055389526602034469091754191858511767469917428846434075503086044656990305367578184284298342976759282160196564835082436553804338320160360918340826385418290065176185725734441805162356714807903072026885600670603848321069258581672080510427696733033053957340650095545086802102707531421423128217854741840877961401557376668718121664047396470573833809655219017147104917709845337122744988902127788426213224671183407604211218366223874628176922376455948552783945522070813720799536586424682297784593423133966061617940634151746961161595300633010171129781832785455650230162390200266942940341015343805084587457182252805265283211594245008870582039617981070194800879514432531126634192737250839714469592667607581591175507306111561000214705629415219922869257591857492855395672323992992800153372115409205995057605509134983967150197869850350380699489237287300411088563299084590023197826535173941381903406993555250011063073726062195594366859172341205715685991402805958112558997141435980607832747575355410342507628036264358217420973125741434711960700671017352536661879645920282685621933764147307109701427890584233219563352111366499576114832412290208128339862120704566000204845509980558902715897620062151422399410924806196061233804664097853163246014735499018965350350298022534865346081657000184012798100104100547713250393592305412713425057027041391327481265029536836141178052391390654094910320755898580896233636914121278623933703008987868753984077778705308707027227771601188369605513189727850038937997451025325986778856528076559764937226515024392290602649561610122886977584111305673244756993567926878581777757280133201308217152826075686751292022215932345212898629163217732960880695214810749000137949008618421815255568865644744099336575596962864307933154741079160321786679530681578399190796857222614057686470661571668522842732808114726309305186560004153202937437702318605541501276138267601919108960049165951008666046922998618675690301318746500293056155420258970771467146983036554345854063041413717853295324763563645905162657584725441529422913649108359740774961056071204933500603178133447761791731566539642204557881666503769654363884006857471511353838508317853149089817657596101420934200528105110274842472584382571084338379287312646514819571428421580347648865260512153686964669529687339374783814566168394750309215386309120128374926358680552960811113662942394885826107470264468099899266566856345933588548079317805788880759852921682291067824634952041997332535506904788184266860541336201956061039308280200662954182584699502763505810133282118896379781763067231624061590290582302563587021931743761308636458184985426574444022310570370134784415433240466894602051154092139215334991261780858436895910126912035022578962760449432203431431315330536601408924953480174854591930125380934968052790448120194580627570394359523988296190165224402792308701051055363572230834458242229619503108553491073144282937116510632506203993464458885973201310404391955849101559566116186073111533945668187752278921945017765355956193372110514090891742790417494132792500683483555236940439771649165016378055999470540383390706366558414311622814590097641574375345514593718992277325078220220758033742027596783438741641416378204686212695359462089823181134028450182222179767045030852639513000823338131888103100727708456965301721429864669747205111742877175779165139167042773809996284387552400191973116961737540954541084168105906625110048075591064984712719928965055565036888899270926940694667587609075652125365914446335467118267823032225840561317411227970281717542005949743469653025815071699702223280476208027190156525090618198895257648872780264140866651539639836845844288305503589485415248972247474239507318743725522917963957021400224427920157420657095681205344304397900391771848920472722325648988539320877221787354552431272345620529513151040100505329557175130848416897113215382952144025713010127687924842219409867966735512742870320561908817794105350843384533959620231978785776505554975825640458301326617560064608052670047100138266473308462897988326590391557716108495504108371520226610387209578235942718984311424645799196228109448221420800715310558365059010952574262556032843946666903002233054189972519718091468449262916630528899970785244501039330547622179461494709405532560523737611125440223465825106118172228328351691303003083630777763943628981541485975338099410975158709125523449231322984495218591721942903326278306811765250381746836219781383779047788677297911901439579378597760945948899420919056352833038890293726766148870623442273808672699707060142678292735445454789652938276096989202337770621092485255108575616301533391386106853105617013269869722635927425663027521127287567776667377054443055810093874459145610450612298277807954850249729258563163078585843565870508047607699493359537704787962966842877838010046233568498722081976996966355764190491940798068362524503899555846907546776663872254794769302735910401682851971041415644352055838521219175443437583025200610712007950231730027161801339268611558178756807572237457563427714092479601134940337433197332973083048941102357545787649514327622879760351472945631865618499276188275898015604156184494111654859460447148100631541494704569100834853017522168203189726770855184966006077086722657595038875664427137065664964257932915961964569748059690064679768692829387037851102836115550379944275739941116847902524859041213251271361695751924482177530846845683305223952472560183169602635211770923251362097141906441163052515904210865027911188053084251036597582928519164764427111438324891152622879598824462709968452334376750309998345033342030751346014848365077055667029322828505048928684622992973764766389758052725797178139928115355694975525899349035468411312870290602301440343990233613307436574226118630887003376685954728332724647006687811554959186475249270821801460893151644236551165658620911162156185161649651066805970797768722213712947137745119589178925566528285955189384182156616858949928563384526823484795933529645827255486291983003558145665113925643246031169131684226964519896988726015455459933222272666095657618288639496460929223838114077366575960049635095108438126806918141546209643292650491315394632204167495980512759441368012757484349247878519814863618063274269822747090120734985530507214329947743411942504975308106213339950752504082088132914818315898012515664971253983980054739250236952332221241233104817428638288427059720914058183493836015058275255460367403938814290265805190265623873221300929087011983637773728902935441650830214025585570154243598715548893723584862182145650958063437980948692674838998642522481690264178580968990921133368688695417708127400458243724594910836711047999006435682259829952846514052226367502211412435653609477537208266140596353026036831541903252537535225194084047924302409884961905339311300352564386510527760822092903256898021960632809472189592695957041644309168833460922366660319923909592003035018712764015533691645931263899033269171849763503361899974257289837027657238563147072633074754921918506618957718933434698736242297249017310032586610148364896090445966021541695324013769812423159821499894605338167805422608535400776145710437635566758656679981638791849514021426616868292297992582186979039764475416965064959632923135170230203430837822430706835667646652111746304313224282306027216935268898946336579791938181335068100697566355183122737848298015719849151097651058747283832728889589635051287274136634338288747536965081216168331454551030229514000412520815379942254181628002678874621369646980350622835406726646794684386193276686862029390097952649847297173637512831502766520672641421830957813000580328812817126666016011762839527581905434245372405311542901803696071885305196868092981538534394038262406865653803532251450903841748345424218660205013502630252773422563157684376701312061625125087847006396325878882858148444021815866835166857068318890505323288715239355069238188580609001050288405450142214572212864501641091548790624565396350138281644695935665464284049187959252376014535166858264127340270537422168916150340259290055814256497570754165374691909234961938008696600156117560503597851146285006103105840610486195812621546796933834993488230085904653804582769405572996782247469514844431901552584836906403432856455056516478648520787980612847540024482385673346660745657911226968583011375385984194055473415621307383687166872742593887968363479709212292252729196275867305627048386097738774370752616976671021074274209613534631021262310520711814954588624770193659189279849525285898605798930978613338037870125908823485390817950255956923144314642475696180968592319781555033980571797717812636978203799754408418566243175811300369352155512318579891401089529407982510960836672784027840452636124375785611613923626611802103066613713374422812383818301107394489061389836804039682328506796492957370556958417796642678621885148255691872805111628159890434763802229222802850234951122437035808823480930160499957357021792290145250868072179523416589082935492198673312386465271158867985500215751317663727918636215514020273272340277175360785086648944499304439771194136275807166031831402503678012192072739201486787793680849938644580284995476040950608288442963029636835790738326843773908255145959458926465014583816394113862271269503334360132725563428216184231069244769413292565979998022285205290310894058846577030290877784815276600303647614331235692915152934888379582368799171027194206253170762871063510669942476497090503241811853449631822210592589986112745854319533078860754802952113200750654925298460947024713687336951909722926399906515344209937548576408824261981265088546962005546743258616143234643688705222024334836818280233526089502590168097086026719816095235169971866936522427564605609071600328741407399236758024602312486281793509129862019212165725561313172747035001282718005491441446105099399714366274734910952936798938940717048073950496358188481720525084098946054776664027813021845930717183857116886434457837444766749569022909842692578644789331218243757197656307108381966852707913868991847807751852012287208949450239579450107218271860910020925712719030607956131426647591789719519809797827969818332427117469989185079108124595510022685808861936710576067542603136565841786145155486125919418881270679749788746210402586884518582541752426559911368829577495324095354296362232393874063637608980425126953759747739742060886072099123798375983611494359921991923365761408393792153942195305777528696672593965744055012584132150793517288644845409441182381989171043563588099937260049213808646510004981865281262155178522929681512662114151062288498249072695270753869355634551879347427023757235907060640519981130234843215190711700744970920073116167720082495274015144196633369979108339106080718470953268217605827987458834111810746392592493614342895353769102468543210483280457406865083713416300354161000117481826747975206276652377730220128323086141016592391453064949272505482540233987388706701245981874898293322948256618609012183939301720214641832798662383451205566383255857768875516148620941748002640820104331957987349786426922461078013156318277150735169879270160792449758495617549108746295074374998521349406064750344268831886024200179906736515931999840511207599598874527964576222353120654969297761328390796560149001430770716999948562464324224744921454876065942011233177460560604009214879485146135043342576901391072400252745986244971359224989996780734594775376191382212103464092667402110535169168347892595388326738434665328325180568938666154701558216689396172772308769768135639014812425251739118144784321343947721704516605479842153350553690069929500413139857221995984812155626910916790860494336534068260037586814233992762580318916938556332433318989954014042265670203176445839558301277725454064365927238551287784922929053016812807412164726646086669044626752464436751277701858796968476108585037687782070379393819893789359758537951917078018065758888791015666997565015629337187858094511366708130350231205245426439121857143608187297241390983884721873104589067887704447784350374030058652676563377048789270668169121878693124473641616062698798549449165724208381948168521761640181980295445682096951023679469344510101479400800392477566133771027504800928211969877318678620637338105886503020737076002706181080707971381985436752383838901641609033992251117930446874314319923501384373033470242040616075458824217053321693984235243085213584094883491431547815768142411861312268598352027284490973741210917952409924971774448541439907007536269555267642857271475711826050067854357667091314324353165894391850331758543030468381692199540095589307416231579594374737697244562997739372104870833110683530634915805657652628537947815827116416389545489981677721616023137556525661861883626705532809918278945004954106737114899059811905976952802257399234225399685766974083668448250055580722059721339133682906540488748049626366993701318430526769065233523049372050540453795843174648781630434527860447531606853851946977636409962754953624886077917188514706733608546246861975962890550020897636904467186146005379989282125106144091586059824590333049626360682895282985126857361400968057217379341180608222468970450062521537669986821572869017891646844507150473498503699320930554008607175639239798505111625082195781642890151504890908818334322573258827974892649315628190093104821705699565916435841273094521113320851171260003631378709494606590532779163926180703218785351450943141740915863096089591871273786883461846640864165149600905488947747345138095590494099973773100018246752327625473745514871084589596795575133154717258551477316141765952467504786954570060823916264578183186245700157209848977645587185912860028534640554220340350048017151389293872996331166433954426894247931975287121630153987605627630404460721911338620624751154029548639464465704268314166889318310421778520567691835189677514152903211257825138351157384781429359538400398180321368444952606861314399836756148143905559850784144372290149647436841002364010918673517772913220998206293341740016530532892087079061533924612795399728318134232672708511376504769749240345410013455571060493384924632947228017253145748574509115232183216907251293202181723986028918092255681404686361688554562360040792236623183919636918522218046840267185159723132299410819159154600285131309513578505278379466841672084860578460901393858595712243371105786475496727960282954375671565575178394947596049869973989284717776604199342042945427244792023074363125272770955979831674451986966721323656998166717000388844789453019026881935912549117993206117664417743970036033433211760591286619709617696491633573382898426630590835614940308413613643876049924675699281062124849647517602666337679140812388971129083305286557459032765268199411047065667106946810659451889831301357271487966124081110792867177150143303590128081064084867272811060173146094989378356966726274741557650877433743291958919242813418689821006313255667740839334734493495047045500382366049606794394118554588825352466363801731415504657981494263014708494633322332716649482329336847947915003256418274828499440346253789682907284049478529368400050441160336045770426794027692408094820147447806401812762742267042059304467936507125406514390207477820505258496494858380676725232920330080314304382653547249784200293724963402014652682190723280187044999837195366192564793923217041781601296123179245227355403856660557401876085171274419419617958924195224875968860521138114964685834439292880091173638624445254688797308548004505021234387188115181022800411436339792881414212219449353540118177807957467448481541683605414847586220968301961041440274298998611472029777676909406272538515912972887275254213500394688297105456296851046530872670001080862729820216581406600062757330795252269490663055954607660091154643714718901310782812692607228540202670923692095050496457787175289250845904485971216156945837890345230187042604060818151934456023687342465615557959240588401473986675832508867031549072441795218781218351758957532645219121388172053331323041655471429571231533657981906528849192288471901690224650137136117279519203736640616576878533312391069368720604275105522588857413940245094327268968573656461379822823183812350996587342298504540952517975991365287799622578352709262049886734355387225978404367707424699669594375096768599149570666734954659316158511909738934885616700871610029721450724003220644178367046683395823082360176223938811895071352019091925802326969550809787439429807472094587562730571459960637750239943097561266895358665542003910309365079552498498809323763441076929708689669196045286195494939419897857194509762978876829323049441314208640660537838054284333315745550288812575030544320478957455870159063282745478116375850827264598142815016531177335762866565994354956839168995608790032062316592287983926244569396051258931729133737474565816273959655805477450253692054615043534903715611901808442827131732873305333739585253560044785225023471027143202332438564164443041543978979682907694051731446772433505666744769793680903855984461103957595196771974669201902992545172738963165619958745230943253977725249578902489383254142816552899905710244766759073122989960039265198175993926524771086710139404839533505581467681765494848221162110112227001995414631082360431802119220681120412541420644669342659870708851163675962777311714716043371257062551412009745328282253414766205895049324799638322385888835415566985021819994803873918691007942559234385882138741883653828389701005744367222065306165663272965178439933009669962607078155898543510665861058389276697676613147868676428386075526796659041837985931443654309716640381673537534262191062029680539464552470453950056307057632852607696327482273467743896021274523582290795002846685429267702235192254171893900452620427656173269984720175913803023364594000704190183411562138167703803492872211483677639616077479208729763104438519242328784041730446349494005459532444579372911746125482756051872370449644869664846110668004702048119339354579378984138128181182307395397683795589175248299385785152155253746825031190991322344427708132637332473569658454611878980306160709676589520841868470259678401239600832164741510019340571854804944443421036246198056069794087499738467439283901115954998084083384804424281328793417419632828557123496574174140760806731921958743495181563705311565972163129432545184845370371887228378815138552806098341164356132644960754767721807312835623674940650207846501142672777523047788474530808298388018353726402624686960755482723007912067973338850559954567017058238921765601659446254242314196905670914549352254810204525778614279778108604380105454929973697165674342938318009117280897456557971223902031861202500946349459931488311574771455958490064789661876633887506916102338407400377214769884084160049243866200394489090450733519139961048869270122110317146830445113779515863235583686404780298302534427220439305531896211010783518431596067992603045560753671553431997395947481693173214271833794510283154769350393706131226591999563511043971920107967635540750438296083503106416039928296079936707808561566653478136486445445544077345989047280763483261922774084956471337156093517195070946321842580609132778261895450013690969496852129787150080515491816554696675342924163775027658927969536169284777573044471494326792622009125019114053461801208582285283855936612458047395317698473933934516979805449949481857268308220031023400477480238635358473985140627318728154439308792776442490514232545656620616145258586184081168081933653831869718691337002948615073428315545164414419162966913978065350700711552096420770830214709564438497335201190586068280246592240822972021211946975559680885395843843301640778528243698624931217358188752809591766181121094851580902125657864192170044922130074001036483720621260611672200777901721646253428571041767934791108569426828190108199206698659352837180774235634939090173124106519914147217610518787554117130652330674792102453036929445363174598719476086184636489713022857416318121192964068428529042498437403236929599536925185651916010452618097049159975596665522133058913045752432826346963700290801620838514963207812375756152415949803785365565340733624449865531257177763195100487144685741075262121569008552589935165930647212335483074415201762209801097069489512117669319325069589715417393261217496969783551180373314970270552666741934222848484063702637294638050481987407977513587902060371502626488750646148464741005489647044236509499889664478254221532375883817117779380861638923175786620269661412069786976776763304509910038215636358525280187359359752768031846620935268720390020394875319862615045299645869066090805820937269247291997338244641240371627105337020556259291351379774461193893074585528941918815759875252710448670572547894286255114074457433276638437408970921310107180720545106557130525709984103142462878836095700208535434227074520886402307945634916945293201009246423511387830022225019922750678678485703180696451515289333274962676534860847576675558701266185317847319193178355168266363023814673572675054461876438425700637675182361286717084970621659407916835977818363737059559431139571714159965628149616170206264820095841601636815133292637973976896672677063991573955838150591919365372452991983007710154142036640457999374452398441168672660578248596469562492510481588643572010220136515241299874894618581366680984416903170258806007516933166584291449427000753958448727369769978068625755589471977562599397364881378238163956915686746452811446461104865001883028475719753430935949811941903827067719931623407027071318791100861492718591305124504344978178416496551149781763532742724029096121606635934313853811406085386461743011595657528830417045738390102061040694540852775640409775566510186463768507850238277713426149163164595648206555838693064105109623305199866805145715340536229933218499085382077051313417322601689476067358434701601915433393591066058917979897477460830339735969133301096534727209531753075756197434338000835876808316977502896661094765634212273772647990073299507285245186399402249835407708643363508919861183453719630242712396970331356787800826049613489941710405527453481410081850658143263902420804580513742037897069567229491514667752223675691111412746730799463282228284474219529058352269263832985516565389235945928223104600222783206670276268660738982126711744721372673472359939302762123089236245723586545274720181333379519926224668287102437417866471791674812297253830942971258378297612852993899117525011105176695763803887874137544354318127904234171889913195970121996430420426222549230674624304201124436690552007901814885716431012600024394448704829838220543993543658626798064968866023872659956993322893531525575514145918751531078794652669192530040884758109443081433954114013978365389823380913552089442157594428199314354721153136129106962671553426655721305307179242733344250718117386347758234577905979846639481552529124890157970782964828209111190075716933251467375346540325677287615764458748177933705446418602106018540921213869590161520637023605943463742239996714255233476733542462600756607897853650739467239112918095007021271615538914669143426066612370617355139575664786178681865727601341698916694588961638475564924772960387264057117155180625790827249807084186438402877653647558832933897381835734737431505390950121224551968900000142829107313170349501463320474579113998588213724059506095091821439257181458928715261763760610657436004861947070208250953143229853374467477519204883822402153996916042487486966545137378664869818045198618199589556840353564208897033096592390802310978290123522683117406103367059538560183650102313119780945705395185221196842840811962046319762902920201393951212981585289858225077774092650513305379762346465916127490221062303833736851642743769125617964669806013552998651909472184298920495100878133865988109547557679779662007091193358105468815244978066456961780963351988965922058911756380629218500123333932888395858577507284373107600478297996417858925438083121701114037590939446564000341021493697781574010105583118199028707400184367341254164131494122583475739577641442489756375588489724178290671154388516696477561757160586397841632516777036251031699453601180858200034293966143108372207607667724160106846667524418505204648163545503081536261043789217958937160352308015121544995559171985305936889932742225195111271904814852198791366426651138202913216568337467876026955569012528350900213205652877585790909809676006182869610842427215465914315149073047695708317830019821662194797613180893688202584246934441175243460829816707432824682173555423691404681098039783720889294969271075134790335740808180422574302886170556671858388421604917345906703064522336304687258112767231751297910192350998876034246360375410740766054270000119905608762664510457645317097410781903718998679733653795164603253498898063076061604197690563873439182267369435157179209539461352567749186709881573647759899709549711779963178336785297747328887902750285348713797575005911800924283176708606037217136590193608178949542127380802735403295260539415577412872576499376831729796528139194426235470824536890165907066581821545049245257871860749743391471269921184323472521576710803986321892411559120621877844221650163506239913915033483076553028206413813142751100239601506678824804699564591465484580370515118295916164692735080691410633631172065556033080864107054137656478389813842294397948135412370371432321000412895850099368670883433916336596023545472700930743017482137902996721368480015157541002465014460250740091305678653692652899452603605793589861119994736420766828639728634215368818068980012047595345853452797945137524107471922155738203354219023004332497353628053236347860232782714199163127607934249769481106397287805118547536850785520596656410970561586615381448006062162320067749536426995032023689112014799440952345674435881761848286828731900153551428872120435460632532681214370776342784864317903118378560353529829082034745284093882517951787251903672931387203520654804104091887151422407825823113815175935716843132697125756223932079664268597542599799010285477967347514967864075114325646996257372306886116631298881189782544808350961247107430405714559391067785773599993948743945594113436721247611151900757263278998019039603052787309253658609434898332471017563472040127606377131256781973508260590929485258841204532509922370505046930945825880423375131287154984521583612153541713278872855793491927864129713148028785737931133330280753968457847149467786005353966725488656605315684806430107337136782749096363830558690510390327724884761621456397877804384680853577506122120789254937042817864967880096727236030648731376456756575585560935977589981796926305246953343168301674650482091466961373948549806525755446838060582851719987754151836100206642626149063220161398051446712724924575158710561007895955706985119402322759512744572039039417465999460036654404722666243083703640929336269949318452242027441469843572102261120652909211337479323354016019389484196164316093755679723938777361970242563371060792542707891792159135879425374478950800142348011970839082745178400637715972305698481116622685404757337020534953509581609183308550291311330999574271435099036058724076284221397154062455137260174091764802811204432543386602933747575681163977511146251593524706258310946549963305301346429626085507644932361547908138351375351042808069328761356295240262408942465312001369741001539385167680444147842852386623212846850665419411684515747549084809010762396540961416878181481771553253297190012343657257563731570706285277582315437650378829775364474623798617415178923299709671711370140513465383104898964995803551328038692048870093419396247772083227916051209684324768431160798065413615225378298958257343014556565315050340416860416426638481602289053282666080775492926525947504272348270143997078237187252707420005684338526201629522212801196394561547272528285205321640127421681354455200464935160533151051457644019058833371412377852677985938775277491007272889046737622592010291277160458234763710358220719361350175081348756430106968025987613246604515702334769188689370158896695682031957938979077666036611449960735324415299952707162452406890756508914559155952195450352235006557045928257519708568355040843676940485758357295133483577969870191680339219554263571057675676857826143832895613522899362658051867354515489706864019375545351120784645972220373959680313169836609403542543108040745813730571002730616759811609973793267501769505404718158914479493972286149368602597818076590671662517837220106270658976513593856074816395444578050632448288782471380811159781081979362174033294250187522481134260541423172396425192041258840629521137521931719851518323641315584165604371782977571498975701942383310874389406467593596538840261565000216443575807688979553673742656929970533258658582831973672637479204655330458984725741088495657630055840180038787364719981692852428432779668864926210970630759844711707871837845763882549849858332084659767397188277143902604699428278681000442227362599085864491328609558839246047416568132886579765084909867208957170393154830732687749939792093501714223747374559315608418388621269471605922267832052778410224987221860847737034340009375422138757980991889879301429241314394787236231065260793182712923856318937108189060849539180429351731897430772645588467202193323353645372193068250522321272995396510823437274019390721719982110215715027825043577632639677022760949729422088758416866615743388179543676492415613899294410241442166978549277400634458612169898939756028744316532464031436695514716908350284910817020597916449461870583133647193947090276298837791081367747040855195795559240240275884620270515683893849817212971935321155988703745004553288441191927132829909622653591275835822459281360480043845017559439515480556247974031576507438849616121761850402767312761120616987756142052133044526745868093835371597935406596673975541700789707844934731947490362113824218964658880268441494785188370755385917461993266106945495766281408098838895426347163740699415396642480783272162442924803672476749063089709772836562713533259503506251559834168891317436130688448188598532446111580589787429269498166208968522708043094207865259886716225582554989998867002530571076079680285894235143601380877205373869168710865864258977777334522486031910011773704634371332474580896557820910041812145684782991268884392338867977101517901282978404009821948236669697571306801830670879584246806299911711534000563651635770395610940619906459992232009792693470566303272703698050336181780566393661686087272745148602637627868067445984434985050668502092375965543954835903275947841321777249686069331096898361567539184839220508484920797541042585307668773026808941211965824441550383140674572392308534738974195893534849965979317623335435476416086311393072059210593627291042984996678778214961710061034067923763715815080420059661422190851476116337210162192469393704298415213266808708827051144359795742043370357562693420805005186665410370495789660723184245545542247189886356147231139159274436371690117290043048424694217073376565998148314257667075313646137090230596687561622407659406421800368997188148915983076996968898998404607454863260176540070016824416265985765786135790653701196538832141813234692358885198872896441013274966117699083371222118993108755324002006845039624381166389794065235944451852510786358293733989782435064771613935591404013093295885017643793921067953148912594808322615806790676456736627863065681321459833728069112363404118747338737027759934786412702319883064229404217943717384371165783318281106286376783847974575274417466416533099556178692784195206309436537454569052614886711939278429865218873765974185603068907767341722096494324622094365064448329443947469448759263990961177884342094270434878193527790522446271297801119412865178389105959135851498076781096467841895858769123896317073188713947562682836386859436760543099348539470888145765189960214400462752680316204880957274112907866827703261315451944654836197053138235642173145981207359046884164171500145158443817934194178670517609902889175281184632030814913990516031431661956325412494728195387676619493685137461825088421098591423059715747232207869727758081491893528270678846420468323764429449465241760418477355504945424452796706384220051617123117845276597069988519176217245288208968846612616448620879901964688977502519698386229035063098750319342724067779752342919616513579848880785790251689543328129904050858348832779502760949290957215026341389939517366686292116340757037380226347277200308184561635998151352512136866872996366979881822905223201334702164071235538608847666849939639985219337808429479312238997512312198396515955691762100301621953928190182554929436471026028438128316454301831976217722910363159693420920941861461595689312500987614368404943382284586774751269701487373877096738008580039708884435987251446532725563126064387382529659677058733331571515372300097974998837949702180153456715963719216790946630714689533307834986718599878812075693246147002862098244961407643438642588847911773190464354630481451447846726923806125002471917819649215975644385486425915077012173706662253667719166892542651270466232773737154742671000276087688903112772331004557465127009672909552123048944913736882222782569995889197023217681754443923028182259667230098285410233891366640329898905812068378196151677206344538516344376156299979255995853819776224073048439093912990344398902175598083100203987959314927212963849445862788447774071385907259937878011290219566890346383218843001012166335222568240994776057885647299603944541216398015690431344284294753338879985250852727234313052313843309349486538926939370246843804559475323273418773323524652385977677745184824659706791319230512588393707448488708112237583196207264450498693562238416535286406686112055616011514178437507245576211894900469233150484649792363333022613490346874350043828708875004013852759668246168689643082730487931519331154325462178500685393083103694507224067433060776987737466316834514878465456933221814961977584421506891927509250452502234657595501792429082085130748642990485115702698057530061556741909847800777432814736132789666121138108000470302737738509151427879301780830103136963975788365101214844818784172160957720087530375735703197873170581447141116453456485026991107789161222545570091059343340298477488840308515694082671600000815388886294543442709936195078870613511615184918005432104655016789187841134225763078121213557613022460489379881308947876058177112700500467627295571324936063968042541533063529717032397018575942559019131910695198724700473028899291374535601191345388032419149365941459190119228017776181129046951735357648724701174971783318029378683721045924949286098669948563225210500726302207318183139851056118472091177965289059725641667835563881339359993820469458787811795733329595466803159400607145368648037388031070412336266848785740714251889512949822746555558285203455734008810009699033807414283168194622885919027504150442164101255110424497491887028274495086774033093519462075959520252487049070980490468687039661433659050000839935098958107980295123802067987040946197291076524419069074929423548492564590687951248135261319441828547455709961020983620366419228844402298289453758879941295558654155341129186180730801428040960433966095200575660506087091355398221937059099008095809141050945577814671442546563014088069014274010233260367223826698775094678765075543983216143746907292847435126548639671378877051115915595579772598120198703256547342002002803095353043513679615703020583529380102958730689938580631663606332406973866850126306916556153743387545112188031638374055805697178243282957801211965144358958024228303076876485389199360456664617796695021186055179763644231405456030724453603328058858285124508217442458611754029197973644995757717271339180926289802495403282366248732440792064018110117058112796888909676108622709301521128877701527662511923259054476792076153099638954070154405833315576980653826274685631520671839451856865546205148599463884012260510662792614636687381620540502806684797004714812936748186163866049207312518191724020913127492910118754168077465002410755838159768813063749601914931890020469766036362879823065352417490282251703608930834375934932212739847888002576702497995208350590618273056296966038419642678742706877643295159678369384743820674731256647373483421364955824109946940536114119858904197426861702929670952527679548363183658728587908715278594413700999287672746421940608122096840700751249113958577168877902719332956340272556165390364146583054249319288200642027167977529308156640029239600836885530833933791884586865047647181548733501866626306899025515079232605617428036075744486836468146512307556570770153077296337667788625551680119539839668569494911428411779992379127017450464548243247348776361569252832301783175302573087115673651837314035331463278294528546796099804706967639746319989600683087568507736166067878383443746213301717213397582009078679352335543528517247389899409757175736457390497808556065298347530844551869410512095880712282777120406382045444520723666103477425651057256780756212829364836759653575788283231308587922436791922144907032246210791686965051692357622966144605156990075228275040198952280448591324939741402036252423679317725958304616798186616755191992889817977167665230811813255329044640503934555365262673679767449341318507568252140713309645138391093696858316038660175911653869014436588573889452088374426492154320816718160136106394850375099940352600416637462631430159222699062431189151615264339031492185276707799755896941664207691364942954992310855451931481841758484300190971399014682601886750156849256451950897514764577658476126771975589388766964942802819720588904163907372340924960578823554987010262560115268823590493120789183776587757218789393738580628994969571147001060023991375174164058503303220144033980941256711925882918651473870544727130802514140488975022649625238153956590438052873991576845168251166191748988235771444348949994173639761663889619909904950995433457742402105629617182456245704754008269095991236727735353113408303426516536083559044850788235899859499942995665061197908930664705706626372192636911178052050236678407880013776676138167040871099586102206747747336248491630641027193205473915039813840145321674315980975191150198059078462782109115824075089409092558321196945642683848109895563219123885342087427430577734925749858567261606691902341694432680869585044043422587096931919487798615420818734510438524285781979444292120035914156356980924524393504954941549400788410431835141432750617335693963105175299895877073136450295887181303815507551846575723439522216242321638615089699652126510721562048623224446730208700226084729788350287717682877225893269305981225308858902375278860889015772208004048015518690327686143762294477399621342214046866878963372829289110946261171564656634016684726858143154555371588261156944920767287243082506698830160576431330535776550942454222459849046890236670747226688614278182159800448291055573207184112162771615931340293539068713542660195375965945193482341545774239241390534714472040934905784536785087218286015314225935490726643097940534232083656888128363666322290323787789506656088997817353878769085297979907622036993977467955465253620576643599143528172855171354260440269314510516403007644746630105778762789687220497758261057486544630016592475058154121303314699794019592552266890981905419954245545716657467417085799953574994852647066758402848089858669667486793588318905997463055281711822896110250213615540763722901782420708413125227965180034066576006436607520624293429603496074433972985003629707375183447879244416242934590612082585264967730149967313344351320913057618585135861376132453450491822468055660632070603153124024845942950028469636125712877330753278227176003784117666572784039644344266658308146760726527095367246751452708853980000260141745102659922866359816953694385696192433735944738544986220123758299839901800860955226912916765329109639710253213523548619027640572446069328076695636753214239714653521328177260396444444288563730491491727244235482844913193940133964997821871754322559957144834125786304444444177774272848594868355065160912398297906685649686077828504860671726447881092934528198121639134197092406761677182859264192686677113678894325702971466127063007943822488498080965820452769665015731922230455273886168883478789273706917551527748199124849167015860840396199340382534081032072710091865106608904072876089552660927774271230777716719885317072589210505718852932142629648839908286142200663496174993164782341374005290074355527601153363638018141811619841272445803935989318783980997960653374010129594330616688636903531362121378862800171043959745139806255551173039660344748234164766289030640364631388145705335623909912472958343341503448382987280408572561683228753878144208817834239965388943012644212803715881621710537307157185381305838036715952405066869484753916953049425821723222405888038610329846746249862758515311375761671219023148522658137593573083431237607815876911851083922390633884219846150630483625236172814783067264735461339359170328277515042453142973405279667538883988980296783613044117583511468692340066929251986755739558309566131812428045619520643891340064886773066309095704987736369204317293157369656462156078929037079925132628681535473094945635756474528713112484565641397961214026555536109495209418069497171982848961206141936893433642886019514233043665346143610779612716124802113766364969598603588971021313197222889168387871748864824036937563761516676724990044712253474831408337640235433632753249226549956051830250254686173661002427254963987052462518115422159172532799092251382601331033385412369916771484498926695623681624254321139779378511379598587443608717258849048586148465376132720427665308511680404456441869218553134477594374884137402977862400626470571261934468245457173398995448347276607434790910997322299727896010932787904514820924482139231626066258398977451320335461592360277098301150172875822220014411734196838341090814326843630802154217093482677903620050803529278007515518364903770679999128330819416354678206760390813117313344169344223052027924977712953354272063886013292742492873394720975331247142751971085940864854888004084177289522732707235822373889410676500672397911646664281250726671839179746240225254840067151502479739023330483512612675926152224985962149056947791215280051680265693768328725665420232994597596131130045045569457418472294327649136649891800149008415286860891854114268176950357666405375812261771921878769342743104104784570628958456040762255047251348745915201898428681901897456721519219768315643880229503447241499468101107274987647740390052622040574854380377395136899206880909578156518273752524841436487660014743699963137707849338990180441522798528997400701142588832023229408761925263630662723922873959136216851139786458297459782588074898326270092178543177410702601656057100925154324377803116823997387337534728454811125751200915453678209457162111435412566861501056950103791199259183226636735455554350291150334069308448401749658996653630117379499169180158851601429905443303020075813326012860269981421071887436207468418062082613412740114320320098456779008570859356357396152134563490338575285245259801126571747057220641688200667948252051842350985942246117579607676863986628438404471571038645270561996118105681588999528497716638173441089107893668191136987056544728341473126417573148433390320250072463471703622641673338414710293437801126047451879280526526845186058093711054542399051853887102500790665368898075530043597802144932868055136215797333054005496938435474028147881597162730511993331632138297115949222819564785409919597147703785864424389560584469414204475264855168217608479799371104450542984949115482224524853922263199048266556214788339281537500102046612670406587351554143178227751939332908847613356307872924536258315432689388426480293276890671629688035763405208033303701645343948478378024757077274711890810016740523925744385227162416955034266333024182260915690240060750561713098669480826476944815105373605591113785971158282250337882484202364271651932706369892362733748025606971317681541988554756413104575985522268863948713345258070244354541215146807123500842120993908902361417103477124531476023264448438742332697881928050527048495123189279357292533564170859874529103454561262920005814376075563598238225819312413327412312912884140730960240725889222844194503185719074891290397686748400907390554390655267764634774087053491422827321057054604906070272366537535876005756386922749079295637679941024617139550921816638540510441638086738107681965799529705524314538062359107356314448475195934152579912507088690927364798521545713844012436787033502526547444771717921447415449281694230962109264119668234247023678995143435358422660376665477152482722306899773459318849568336345208497602053988426684778438081663110931792576204649506464361321901768306066211174667942551559570709987034002126300894896245475458721308751616366257798243687667182908223495973183538682624354860911772632535846158673025536206755302305931536558316610449554083280593720499740843704200759354796946538029501903004278785301504551948810298919307229030225346738229797620058072052737525050774141704310288643610586200208278907306864960545512036169366476397792196831924575750403705179007428544622970622617379203440766079403249654721028914190833611395448542249658650954325101135886138630030622039800621336262347779175557480607953254403734384083622585851266237799211779581553536903620692647779762025622265845180094368355909069638334546121971812628993400446852878051232200991993302297191295539021548218143312117822339988869327602089891583350087767147064705585055895516741373795498442672026078428440134620906066361568624376766303253528246348815984758349325207843613405238300500708260615649289990467238630051024296551921391510631968844483159625205277384685567502798779360683066307242597760884374633301503938269149763558467142678842466295557856195368580169758156284770379589808925162694307564533883248716417051590604773645315596649101338976461674839739973642491108014938216078090217099635601917769980638994494841204955468394769598767791459986220161212504511303360077094361010019126770397712652203572040801930589400865298672995815757744065150998530345992014281508855586883620731418005549259752634168144792891584090711433366080479125205595255786260471380831066278843655479523980653208507353294303690091556687766853731121387207192712427017507447511194923124346019456666996356090838264251336341479166855949888625527251243495347315568267396513025963802982591603750984948665774786095533901873867486121781104521795440480600955141389448957272484887288286097644674436484003067058358353854276285370534925848281509429830069420480530577779285765306223321483891183569660631153332782710548606498772735352120750598094256284379345465973421412008562310428531834020667561082022914686655489249399262158430084859026817131099730142118131256640672981550117417546451490718746512372540045018232493100809257715714155302400201629311066639790768863506183892086042132741934368282761439155895077982143114830501513813787539260147935387715983921637140367685371163773334570286360258995305052490749489644152012637127090042939299988902408959714190576248671162655711528511216961395282832579243861484708386411918599915531324274883845711895190466288960397765572436799834324041284705447820512192224727380226988599808797657381332787978411542855935991502387816497811215341486190266007187549577975869447516518129609727780923494525952972471441583057703914767238835218475763852418741386628936367222741195235524413666677256061428759162815558934566022122050976394893383002768947872764264381522079651603556302686290378243950053337002657115115411432560917351381880649210602551980359392993493488942269187710817413737683364418003309652438688453036602571530938450529298401466483137886277214840246753997789970851020425768574485555493081119054441626354697815600126092482930520099578640303606433382761491992885003589433183386919650088528148036205759151598637565502163007807392493821016710530293775061555932123355344159274721203481154729411278038109331636814643011384324064683757739859481539123637435112123259162026553549817848905057950392350490314407810630964237757891755490344241834119938550109123612319131589239700281994139103556612908915033131141011788268436009178827508747518289797265645886605133213808162504597445969339947250952898673052879207049323859333407921200369695073950931221818115024144265081800493693638501759051657675593177891124418023187068410940192596949756760914690365450240855072862295651803473563957143604393211292740161729564965871845006146561686647809004964684835316109786700932549502609620612017114352240256831860751258589498807509490581193352119079252670802758322358169370248600675948244559920423958833822379724671903528311932598823703286741490629253314388356330357555714807739708746982696383930979384466107678148223930652969934498038359063589097588559651104540061551865273686024498923784611500444023394969450824434819722585369118606553849432225237626512132651987600632576248699101291776384709224352165546699266997260775018984809855574555016562322887949075840458245294318051278786624105365121310641636933829341701086056348795484210339472019210293726005640595432772745893543754266310892019988970823939186781986459557267883581078109518127616230044943858100399845330736392844094487061360929546675381222841151443060677995506522572172185059360510768652573310938627770779172512517535155201421288660907738042033488833554748072137197022557489017971765678978930075255647407139653749731629362240252993349982867757279573698468191403105356158586219921107918342730426455366666069072402191547319441443450968415576894288926370103834804993335020032300584949542173773125651966721734204325913382408577105224213921727828378880340497466040229125560922975276599070212434977201875575112459159108092810711744408950045588183341784463740777230486089519455152966330243377809171084163207177254663331282974221528005912893247529791208272362579458901742791320452088361753902015066062020390949650780724984596208714072757278630660329305353909050184406174588890786052248379365602661294699259515760804658914307247236224652313419335926637290523033381724918723310542590548669446040899475583777320215254857231776985332689087483980541787215099405765561609070794582514524076590524597699340694431704271834179268309597254616663565842101963149985984865249652990268149132973056534266340667469853201254782809071074650863070085685947413030682453864646875141189021761281245398801732794522343815780896987659314464691601399628916274596611161333186556280263921759871248456028601678836664221819952238826590540586069732710122248320563012244758471259105370048136177511828470861246192981751035614831884548909911363995034304127674493822150844656708406555850564355475435966104680156296018146941715170624114245436081625602764941573110015281761401813174679205992229745859138662610912234630966032305064610624107229941456351415036111431506619716926470813643499516688628879087437970773510157072214754796058171277233907284300677589796885010093741767893614398746795047553701997260073492832215173901230792456578002687761177395629245329235345195516340161537257962301906716651098496137257239153612375416778542229756313120909924952481491183334422143460836565212101143219112079752228890974366956010635602753384625113779479287094212924412571796379585653973491875000542363741715004283845169153707328657494559715188300361833893998215271787969679343525541961485988865914393039264521599357695270701446013424247470077701141263481335884885701629561352578069909289752607276492203662363915939130034582056752062680641501487897935800224300085824627281433367587875965247475163620730898479337787136267810903934935242259812557523829469999246817636674501945374247811515709083100611856628400129908846133358530149156599320009295981010150379655081665493158570218182308708240709850103747532330334076219596713042180930023568621482195496200655460428220323061786177698243993164792367437847964744227755453445379355221837744235415568889562533873303995145666533901243838244037844845452649181205343361116084514403036124478978162493324131402820529166459182737180479671583795345928904193440514131076534140141743379086183131351509882627021309389626626185088065482307156665594696964716615858170955477063968989436282800989624990961454704100207188549656318001035296706426957242361200161040877507376849932478143368089869217104772673337211315050894987200374545825484056119145680917703294959879862970212649582309680823800388030570173455901263573444253414164742235448371228792420629550806927925922381527773748562489934288508999511204639874232722333310734519487891883361090615460565706076907707874605238974403552410271915268140645633564614263645106271849380091206097581684235926302728569643705692504784425862959514744471456221578899693330258002967749985266338032444502383390531356915727018801877824538029838865297484767585488742249347721817880383956668853881697042472280151723864817833928246141690211716461974686603487303178550984318104460679658683791861161519307257303787887571877633173902505186597005763405074624373918031063674689773968836130702404625693578035788879216297000041096243065437666931942260807782730857991887020084691432785413866084224965938303911074033608269626079987612206297617428466670244995034737251826606300106153330298899622380653849004061632204053729197646336298467625126495676168061852383927122435926180235789266931287381300134380804637001727899595658445499466561802796317113419107813646377707786710778469209928172210340231377636626151100779409904834114058724029626320547024858428175223222710826921239407740943894894613074223378386483552761299079930887774151280809675136632721145120943796569510358652722564835725418564503784160342119345904926591495753400580548776572300936207921641389990275189510294160246405787991202807242621002455809652482451370609394834353259386299933167810760608261269874255580324715452091273700829901602431848724312531883341272053162778771248384032622683018418573678496960853785678601610564722135773605956719520255866199978399168993558688481157089454681405362241664138474028706467286161057672316121425898247159319072293989627857179306073125344417865138294504149977473622420782084896117177039533720543904187609788107184220034350197707066210801138202515617369163199196138331291484933902736506912144320907404757232427375904965746124465416641533992461183034205644696996835257656927075985365418620159146970611293176186397780379891146891060146149651981095319181706558018735569494376861442140892857014111186991385418545283709757478725524234715861033372334992536729056060737333216530804899399824974963656690129640932853142702640483922664648606541401046685595396398501804905724040479971371604234593841149503972318394285554041793469890024038983678419931172537980768509182798877295484988637415370611181191803465830634904717994786101009740010727962422589891925228055673400304519804122579144187330080561463188087121673226057557859577671253221251924559721509455224207175175127965570106032919197371353105886978706266002811108555808770597224815423434020007184463597626956075298473777029016239656951890817153644242306488682315018860876301490771635400089001077680918783656940000352885090949684883349123849302253884235966015884733181248719506728312760834697950042232823568639001748953664873097409225179108651243827175307310739041735718486261996487241330371699181270869232132265754253663637308091038156814125657857180817504638651313931038479153250578892948086460887954299884732330312294078531711748307100976959063103109124700548673556984501942193014635002086217889808525798109450841505120843005536453936538400726338890640053816130364134686072530010129030815213111879947786479050743902661642245444102141000822913696766092411066447101703943523288666664800617047994569270406076521979952588277930839157835249213671067106901886614101677848417536583625328104156956577613028093302934051429785059551883812229817184186311102658601360302143709322191331550611628201068933465956159629564593698801085937794495584899629637904487068659878816186238836478305818137884215760506158445090628179734094327193291437075220274631738956758620977170285142274005226395783519190074919833490064244179551769844718198870523195768298208563147865775826840391350020293739955290723540004267274153651552512847039733911571380240708779517570751042909891757682896488477461489835053977767711636570945474139166799412308094413424933007622862592927135932373288486468555925769409003085006376102892772658718016086626722908305788886047260103591299686190123570447353617262700019240452458347738929277616470734281045048692321080598291894452407295195063777455751949621464063069738381431231776746751350124877041184928835871442764085459750487308422464805367034370027533604456240005578777034587647151731161635128072813912674516878713372983111702123312405139544549670912023224751508943135163591935693249269882963951254866373552003860757175869485629356676280621946609634793925032077725781334484739228795661965945347609706357333494397604029562494155939187401576566677452334337078806729581127130103678115495127221707222606079594879769721127222715505838896129704278413978664818321385247144895285382181061834516136899480901230966859652553069127577278526547244453489675205572661711716759722089656899546215316105316191864355076427100010015106776277188293495120721185460870806888437681722591144650134422121124799159293370575000565943432620087230601960991144040447053154347508078058953282220487155822765902115850639803607363667754908882636850996670976751376661863207352235728843038881230905415732314479265039331287871313237197521499850965144934975043251619921491820242086119770208424521367777014895434334960870539153765248597474498332192021029860714245082584496415594789280662023675005394777919686570310630441701357960466011173882692819241378697085408607065502054967106916820230276752764430971585576423335934422229341076189502795104664756946138902213348424368999621178011662460925632602046134936935715226233934960778511096448942979663698442259291580140032415525537643853172489909001371004919804653310309567732561236412285327518438573610172738372600557241929855094499895100390065113958272376570172902039460745665380206755899673610117151931300570600371863181977801420450089086235725682493577487791731629471235152393262375003672971591200737226504559760873351010952440547612923860953453726968413419547988215064920455287621560904901043842066318060985096908799177104389877439295411750597679946585545675206793428419968110235333435424896260253246873360194218155712583625272899932993808640239533360460408492677975968093299378286789661851793525372422449092136859868717492438019180685424337450786842360659759193279120531941011348199809526339450561708443418740422947646007091136321020212964885971419825344856101490906715945477808961906756074219942446226336638607597428268433050992985977445968120326146133383209347214654577420385542472565330865861973745525615676039938715862770558752710501634762100765769726196645945202861757492038774965170749074763808375047028475297768537058422204556167321862676769221441773913256552931447137454680823299018542035988539841671705160330182759127884329868576540604086952231959726201494786816300205372664551371910758397040514838590033886516267937131589261373870937690115939674321353306492205414076402148660044207168673137474733574824183623298775989343628578570874291007399472251097834019327524496030262096868219455925446944770408699123167774933960990022840595551567961866076223084339565775827218544160781234055674451998187716387981030540680183086470889941937401331262403679113060755032286833595205778746353959146666229363154504332970681328325039323935149637439133510376510020258923474783001778581722247548752435731056834753606742094493753455614975916943748204712938293191718679663673022197170867406510103242022928261734725977698026283897596252592322376457998203566031609753753849365735118629751554381838279708501234761544507846488056472754485156818576443274611100634940128692029138193038148900595837397147580692972672870453329680995158696619826315611818486204093524596681503548897638023967547503015664141869727776077642382128735039307394581895080419437232878750717473756298722100525557588420225759717532355404362019002073894640806921974165493460815435015114020608330758441355997705261559795570288416195223305059285508208487345909011737501035358280950623107419027885675356677445625342570678122625578901641287458048768280734130754875124890407467678300024953573041864956973724901481603825130784326119224338371554214127203108276790109002509740000805638281162483052320082501878147658239197219908122475504931546335415309707017035293656847936843057189283904639252730009356726739717692611554457823360500717884114417625193631074914115651714555021185157096430023536045035954065616695668641483570645862951207122127097771030718709154033406818054098516624912478412852383911599785661748695543930866839245664108540270083297597780481300227103061833084883353652129709594855311934324559472428618352507095642258805976822289204680787688670364520067826492900442922197184016192598209491001845780420408290031962506875784147435322193221814845826102315631913869968224598607381521895806784330514208057978923158470863481255446032979480658516224448840206410179273012270233508818397492383370959716123965876978932594537160864863247822384603771523288576801007257845338305446979566888389459678335712586420126955763415291295792550273597240939653643091788740787848138981906738756533955678267107985687571797134209299745340582723947968901518606999052640655263219232295922449940106120140143089938020695314222192463924750077355338933037089012594340244619168704389623136666332521310860216091155191458172248811777053776959031615171772333779327050981299210422357270835836903911449852924335718570894392605488014407392003328631727714101417852817239046286513362972569934298558488165788585971791855016222158231674313662996891988961406629560593400884990432579002417859225930937919847353815760321829847373740093805773632612414018508195022802476373241035139579676680443752429539845318044592953019606638703958707659076730482562670880536078383095196972426167072699789938142062496686569306358029507964782798961753536286333986146018662258022433813964674640396880553188836970654261512809226204759656078683869701184699316596502351769631879046442023552936686248644830614848485299977586600645699111282327383518989588208700785872368702708681409052862677399592483537987511479693939872285386659454992905265268856099106164818540392201122573356606943453759406409058150971168054923160149558297475243909685610930572480957183880135789895788608226450335320102134448586002528138725656769560578460717335462029071194030194375605261767563017895873851637503657479484404872972219461039619479872509548543704374050907902853768847592762087830901046355876557277021382526563427940817378120196773386027184689498794554381702224215010072747798947987586624306806707884148857139744951005547626151425513211427328840982457769259961208987581368533948089508899680650393680157545037721459304251609472882433397403451473137842933381023726946175002820401670194674321101678312509638693542198212728994089658267427692763986579702558116653027778275077835711635228030779845681837243072510097677026277490583229933102142653849266090427983024911288553472616708321918394356010878807857861411188145409212718572510088025626751937423192306007780257166949387997767865044088811712298748806147318382523593257768881593530433733810139263707038717037471368789741981591812654297503151515710691503150373485073553451300532856488300164189019402103110683314853491853423983093739899204231189863841073042116709818688094409874098922441426353264335993215105207205656923605780162250376483430042849426541356763753485892536476906678860963344309566737113174316992003029385059739243285562773109567393766028219976687657355144592637422716558682716523428006650508488349328283175985373458277865500340318526183963228260488858610395395604799838035346127645457974070571247111515495760305099859694726621171162917872815639058547490664711522899325810243256760682389992060618167493352362120474924578260793313612420967308042151056688985208451291774698807513819531181845557400347530257511941534603873294435133527994289358719401101826808009540170670953597634180913479259999269359468334285157453787099832428244114975798412072373394094995104678536064033191093685959296351343569329640160862021977369586482580727261982960164698373404815486007868002005763042218222567123506079976787501569579876250531412375616727161123046559191020054272907452360698247669326585471516846178145023635691807210196374633937972153657384230870310618973584872595667849498533581688302523331273107574031216982984069851429582688618519147568984083422218590977480448405601379804015119601690292101579457676774317267792289614977492066042198027222997234365850472655236840041648039521935919338621314196088511729848189817651161594976092982942135915932963220651275556836669890472887080721086176067827843887277480993250487534585036846231739667231170665706106774612110517218053689967086881117722287474866545525468823189238588384819159596647163827265726629759105032152356347806201959971750109736741956198001674542434424251623001432677635911746736962559754974818161413741635846577052179859776907828874180138465267730887810146502138399834782754575088410249221899479046811696315476075366288136251181743191113569678066510990682379953621476206318837993193537060671024124133697076743387567132727218676555730968253566545347080957273005978255609805561130487229709064902460184821039670295617566142906006959017550641636392946576716741071670490719474378180408657943396831725550184361173577757850124836617497894190053179793061198548659448732410985019712046192014929532649996438145581638208293706723139275476187949964676936119557946283383406867444063306160103456892278641388320954724493568206798836017105877825494907829830278611847386463039956004915527373157702404923324449037610523638556671230709987023831090311080425473717544222675907532488259726471747078409523074848297603559188573627527333242077189831538275281490028376776725530204067240730953037569459472745692522674185709993219591874171620222984003447230313929295118131926360066179075092459145652354774321646977461121786564047155453385192595858353331479876774848401352036875485068090883868344116982146079882746426784190264592687842614827807300883201931245319417701709266601537160342799730138067139093570543401719484421624671095895998075572535840494055400597013844499251269256481990378483714774511228575493302445992419269211618832127337833701592374951699240059615073382956283099898660048573812698789634004763240412025244992094268118112569349144920167653030860574330999854698152034818524315434383576673112451667164384519181125772991728332420164361820514540715425025690491207409359479205593379279287017686586942818271820698955104084679935950999360953450629577077749121845584474013517792119274489585760465167701839665710199827047879321181410030095502281735131921129489817950970915303770598414892804531786374433186897982901720594960775212009933266992672691945603896754900789368672646437768830496304401772720829289150232949109420976989148126532380061162738610797942818697911422063757525747760770760671059833882821290678377076072895812668246526916548465262638279199110042469418332751011261997384632198787772316089316030652084364537095701141632315514982408282373541371313936201276176482174892799984803318518665183188610529305390183924454545992473901470579091400960017022553314258383207335354978132653604877813348068106071476837275304811122070568954332981801110503610486102511253441054537432925141313633394923328545060892261168936429631777655530797974367804329313403127054024594817348316780287689693652731840793416133812710102493239476553860267610147472633532398501344485805546349756892815816008565882719391074517657621342565889700736863888211139553493766924848209710889338853842200537904685691372154948391379562362323504974189972030482772781543472637113327323440700856830464802066385571860569197643367532112178982860099805607088227075462277209943992658164460459388078805956613881476862195746730130567124246961511676711505878395077847305550068563445102088220141043736632087614922523383461953495231682775444451824252813688479466917996300080777956943211715800746617013732530086325245695384839185263266842398608529402166136631069951634253603360004091371550068040516369553921960127828688830553658226267644017333376129705347922609019400117684233213591742560259656453421642448798896760197705386685309375087758330640929694765903296981238745254730366274885262526858358030910224917167146452452747935901909589769056472803872909073275571110339240408878407869039489218571259677175097575428323200481612356227353031325389887270975967594759503280271560063881216800727858589836612313354735244078087535112361343742968209010112434396470247616098243371490774026535258209244582762037125455051712254492830077726910538559890628851498218387464720629473562858739659111199205255046540345491184308468977421179651073704429363548881800748344792237937914684354752586267921632826468154345285328593745211541636819627912393663301203707265871042704317820028771757302126194184109307354803549136217029891958477522540556062325355858434474192488147961955224737692500114409135692505457389026707862559165132053733228486885401740610235274222142922928790248590105800862981537542100706116679189090228361278495740060652760830260037826122423109515571229886659914213686829732592138419753186468541582557221700722003576385781509460836271853574571347184101744864603055749815986131728655559751442144084615334739023579424022406787794552184460979701060582088556091371529081492844813830849292338666222421705687118346288246071270830187863779532341154277090811761160956143719399186471126249942694792031138731552413339825782045525782878561380150998272350113956730838518626692245157999593685205552892906827290401770705047733664694621765676354359235686319147947798342647302366195162006160551356134379555712173204156110934255845465255841274238130522982309394923815546417352107365803402466906584748005826545686119480392156025404268978909773517940397037357881159756256893149403910704966979591241425664939053248857643930652506989719304754331262151112703110620316776383691870572653098496786009926527501075447289268371780219664940625144282464419716018393591320982353326367332827000249450056480057512390975726402806566441337896987931948104310193340315638687372410367388087194103870837237176766312759844711989544117267287450111247236057059545750332731880806311500277499339151834223267291064124749087785586732932487667203304460658447401124342584310191730297175788229083314687393081187069215624925307444645334929728845298861015883842434077277237407580196184438972267709923658823698601216437661284087001865694551736119827568374425948884907773633400376199220464089168600290024848667344205323161257249376143967737645651045682668613991532109291404577079824577219307242006847238355260890399892600624758490903272329106564631853877153533337781400093906201488621480354840543708115435134110039159601188837814935876248108609791424430593219182171949783273758286068455082472252681868966824654737738760157236454977070098697494197190109784512169411179824391544741664426675966425931715539286455264700730932422938058497432400063838056659861447642069197032999679659747728748731211152222120324608183025215438257001953704616245406038934093109806105964367265347853833120244178517387559175924051656071584985216875992434013131441959608048030529499435950695883120980377985641140364951175152159935816579078983567909713400703847678326872321173865907088937232772732656356997818219747752040424585412903069292870661487214669893583989630046964694936991069615924119885613892098394267806099082973001432213547786533138821532366289002344558087061133232482910307165121342279516403316277776311273335576178800074407843431218551343292587525082702043643553708216500904919703105224136859594214083029065687875302265121732068734157357870013849035172518898678183107533671598077164283837847498980552106386313712660282123343427769023447706584611907240873652154776449415348256896479997202685436426415827823888218156430010174675219806172284286858008575383746242899496251325287386960408036303441908518510889280408799360782154244162736424708850189521413645608612407605802927498438935540943406652698072281014541315556290573946357034156114725457988601579965298998884522144777303876228498228335015582839144405168560524359211639723722173678238582136474415916788926520025695089368813996411766420449604310738123123054086109038980568708567132942978703292970094428206054652388083598914314401856572579069658220745371348044279833670504736248798970408719879128947331049895889378855890782829543149666581935647756880315386024591142268798225830359730435493249496366994333908082435817009889535414237930082014039896857511327521950906291267809691848006995840623605073172999206759388371197477368777662050290576944955304004586659631570525798759545190039447833031526142372617434762032224688764933188129534552258505762327477167126269832365155674235583368911177470535037687669773570433767446727543628161117243070657676528543006677719446946631222339820433301697632793001742441663774184440956152508723712093882558015786690119477592657267693935252443416296909572847574398873832379869992905486060832757791912972983347881239769857210296904534023665127617224249694342388591149718071314394652092608235481540782936302383464115658764349989423002342378609328152553668073802307345868247048976576221715313469971584427155152239073680879305640702918293843934762824186303323173885938409399277567550446894528274005762681569331430989017764100938308674708231898603893729608694070065390069411777723275601539379292685957737408520403007830126555957195292555861565315555389978708251165864582544872455368559684214125364170448301268223049456028677432633801373196113140472100120040444414893686513484464810867132409248437830552466707901075036834089436939520321129189810825796992123320962557050218484792622917450920908779875938844866009467686632166468139153720532755795839113769740735581940274956441925538815621852527093125332829525472208384859734141144968629399412084332672775685029313393837268979312930394545171811657572707309614679883568317519389059368223895907350344294762511294936875151844042481290655190632161781534447699389191644243723254365199929269799671981660279005605904911334343417303910592446986233421784861440839808354506662992181901253662733087757221231085155025796028898599472449077302461844607397103004517856518815015554857136566366255480996440340848620849283306810422254349295004334112905535353118397141822138842726302634794163666478684945680813561519445447768835894168014911616961019357609493039115172988726074744329217268272886932892066882306049357844074445790273447558286655351183423122008763492285241316107000414057439047550996215308393246531307831555797959057253578065334743502599423568899828621752378628595988667325391777385063993139295266428877030226828072700017768753385240903757353013104006067434844689136523744036104477003915032434575826088072224966697948073728913234605997860766691755177255597250375838014286123973847365681352302265203564053575399199838930469292814825884444216648683515809202864814579361090286924103903467320131042158258396060608924352562543438612039580551244727559600254316491747497247899235079642776928986066834997374263338174597472827774770015475131662746855344486966035308106643824657022581004175902665972748835147312821250037373073789887006345379673595638618977761727639417081206095726700370004061048636534316692217628325078699653399918288741395534044661394245345963103065709064928125707834887193540187101189438122116946155154500029240636662308789173691490897364683790208031521334265844382113720660407823497075559502460008217507119919199529125444864616518529512123436801602229828842591081191646102094156182643147719078383784622280099517685263576431369628011990723648759344844730082989866284566240145950388748261556313548012459190065484981517887128077211409477131924189414943815420537994340822462314860681174864116154646281186094993437395009475705653363164129889603000507579812049021062269811948570284290882777345874895063254748671373352530624248782209009218816461794384527752240202071886625460843097825565749867656439266930641543933089141780857940928308507588544508092183467400948073496099736845198365186787681970015256882560939814528804359550586243457715758614797318562169114634787321197403434666024275472943020084524202370053801605215699760433395927918349235751899457871387229896648712927382678114232205064470989038161540559676264708679693368449838927247113364766504947834746232018566604635987446332962060665300105618841600342007236906981865282535233031280267168073865839731948388379015828114034991023879700634120090258769035121391030015353201665055658214785668251563035921372951720788927996896814259387841926152941262286352591364612382689319920664109076391418354902012090145570286277835528030309854549426503431287008399041382245231420932371683346796187269355067107067077583755125745717364189621513385113128569777142725770417885302617314233482132541594935054127699298926380890358175931083420252723305275114578882169112088421639996101279665333111560139345529883103488041802666856894997416906658860119666797328388739947367716997861509899720540329397440271098780449989904969834751175705517778024103083936195012819369720523896851467944334830127371828774928826234507930447960341983211474678332602377051986887087332246056299711974525736989186064967498518741610086397295225556015041095316029141517816378063375390170466432988806640145420140160381970593167635792857116729085305998816340604108357556335399889289388048611892156079699037659991271145196745770781945505116491659819261412430972514114887760677452341573619025311040907944836524916947435586845982709883091376557186935420212589885312094236793340230738077495695632661187085937379855862534263556459131744122042504347338380886097536729416084781840960383373918942618954578263187492618643030008944326322503098402488376888189990188436584286067996031626117712751344647471191285187795404626931146577527309837735442666620360733856716312872195971426928276441140730563951568462032973243221084633402512246106539386770187876608005034450124012482443278264629521643828877095360309773686693811273417399910088982524434334252066545502973984949634812050519879394088264921227184780524076878549402404537452972206470091811523988294671401057787912390919039637019240568992027702242462179738343913748893196387641000383136975331487179253128456234132731019316663825630446695993184435945319150026167216880572954084652207474585541966938451362306200128042208711268870002461791279469396586496350343388272892775947564395045819959241703457480899562937109666783501945927452454040200037195862447499592442007037285679765473642505519015598162297036750004044348118719048822332861718234642202560718746599936940274974520799194670396832472687679744613513553746261581780686308820612438930956861708894673347275826528905792464692424626204325935411200158731161033535913608409427782236284214987770220111963069811648446577053640541122257802318561464235052365636082063017217426568287131961696737051081267987427090298118717389503519444083919779698802640473766799265215018851357019667098093620117293466969885541594476979478804482845022334884510142807898179826801885598152474782910327740680934722921933784064854100535355171411261503290240089136465604449163754575511055699698430252585439586866437382262473155070967798576139931509684003889166761959638526182557513288776955405228829272239799921128292142960425399135186599790545463654342008270362579766434657579676107150582956014199461087870523407344785449430467619117691640931540242769242835047344962476930462501585501143065331401417387734764882179898151529059999636383696790363012261235191734236620688842287579293323511524783131354606841105894155095906751854396931158811312493828872806696710409217800383699723951195986902093344814133719979402643236624266352158212685209892963307355686933573243885774895007584124852895005014342567501974472262864540087718439380683032757160186041404189260311795252003032015921568604465997390499225517210101537916389797474130481393209655200867756103607866256788669592599213335234308890861578587807541813560923809917095219606084004079158970379792726476692036664932286940125808990097509292976703667231087921598272845359086023536585517146770753905865489251729870674268469836259240073217007554631305824168498321966542297602981359048557535551276698250102613248217289550995194545424422990446305171715284290868153982646129389283291756939497401049190670918181544480292934490351826131683310080137704789023774280448195779534644747686983179040870561764832580857578020267673146384204862730341466465497286146622391003064801100605106234369077244790238610827473074572664724494741898087709709168124436871599510523650940397133222069731952794749578877255568611160378058935110578060207119266444996454697743983165534674172062789313072992965556772780747160618385819829403034239659059006240914321447096008121352994108964088981751826965969589283582485644526019418845486952156974701453536957902807232628581306678580052601339388285417892513450300988086203655072798047714231343909109360356398486176476588073356213641715592711750155014622083799552184908201054718741845895121922230796494730509922009714682214696732418414515627433280431946359189982915394850009205264073643078091254320211335087201740867419205066370138402880073781250670311981626852449537334243788301444757494633032717109944562669358161987129125297797950964606428544124853911306177206004249540174335302701265242767363985510170108004758455501983264090485161477231643116554042075633533690407609927384806415678133638101688709354979088202467348796747585512411378568630726347276450524899271446732413497992776783546317130935800314263453173373471264442669669358415702626694018966839290140282794887498451611646531567330128222234280109684943493377133759573666375664760466411913872596070145850618754188432983191508673869857102424082856645917129792534135638161350810400043977172452118191464324514137582293492891313337921754033920321301729061665857367614556715134895409550140327036211549924392876030800239652663142130698818902169300305529977504130160265757390487518193965143396312799202626422339330026608461764950044913810097818336016379134553448005104355513302258842594582896073620637053510268516633051302193246733188606081322523481375131816021991236387074964590335964588902915264478406951977996799791646392835439062344174487403268007305877991097169385854817798492231804638305069502190322619675467562364466598166098821622752898669285516444510454830158496468817010097787000409516873860461996394443593905317862952402210847604223015524519174795450577666694716890810693080323920234832229502681403879181016929446295229073149206536431245233249971572000305720520517861986784633394240236090137154032782079931877191625454733892926925042883901953960970199450348956068999479681080680082471257219190478112466002720407192354577924554410534788384412290397581931370466601686172630409385480583821016398823145293925418542745486206252852402797229483892054305237615692769550699765850409009973066221488622742092738460331456475328117566711422986334414054678453160658672124869007535477821176122874065302028177997782306417311649040624890102238688191175687365732466612701991090078434926254183788376027026714324548268295592039071347374901916064397961001958277572691029944008567276563373771443610615791514124363384465407498172848490526440490672386487665223486021419772072857339207962570947107552582782819799386199919080445328695528840995153383309167881359108103046531779170454092550523240285502685132213727312783165208155775557229039454093101974811083406175389906319051609274444549348187283355823787251563467136347142068672599363307747040947893486566868960944732219042385348917649708292017283292388225776152835242207055155755543483205451593499568346563041199319164333379876017432111258325104068806014013320305438601270879030023042109377391993003359730023272328142929443030584551235482946706695119006234803383665234747095954719133295817350312626915685289877784219845691074993735080222451369209370308017380488879348807900571255553471070994511380030769913083054900121974564525473144677792777331610199306890638822727043387869861577480576816619470886264037277646897412852480449033273347491265813758795984573935372013278978775261990731107964579873827774446198958100587814530799904242661004462951777938879778938109493187481328183888188910175185325835644331455406213042923174488927957450756462659643246383520188947172973791192850973964708846192747282517751163058968878344355948652094897484425480183681359508162937708190963762225204985639006892254212688464636127278824799521992713644876117813007980732881860861944836519074335385243949873686372114693571101132291366809782081264308962197640513761128648252811813380888244142973646820940059608716083564473378881195282712925135104058458144310510040651427909091243147794446680087427009538194762135968730690437338392117099401249991982376566022147478132875853515870034850001688997829805307379599239089671248359717776114212843816970585170980004582278381048776982709925399770525438329710639677941547426338843350987283446440550211080862261534172314834499535789101048409549835266739566778215225227806777916078844264294139088290597416192751615125010752660002711424082869340332741375272067351471312327216532024537820613575952285076669782453289716358859087343184555527655683708696254582426752035105554640499219494338735650688689508035730094919840981745361789996245657560581681252723030191993909410942897830371898304375045154352601328378915288481893979579750897865110053949651885825831080155784244042766741149818917445587260244706126004796446464873307513065078655165564513553196173750470597671232777226712913983547253751768311963192190836015997744018119361785318533022812874341898325943986516084218760035610349822204539488021240908115547308531302149240751171692885979413008422113091177882931519626145729116713384023869878082587017804552552984761162821270636652927090632704396946584111819356827222162335441348378235939299362162654189890879125202721883154928886847385260252586374135925973473425688204818393173096733434259852915340040178278932327811536679713964251764298870852995265484466680534548008552182053759271105167762835195067046175558183144499536534877737772996044347383860984995181506252602337393987367362180178632945556898650902300993230090403145796964997662540127628294545775127009966542199519471502948229100620240733929638345055121811482390717879070557394812963517105870431589312250026862564536037720917838839837077750401415409209842790453731153692322807370272647440688746169304346002634379978645983176421808302859370173916045626686106741564397000813783845232186149681941479012566201692604794364186555320464573986466627871515492653613120666635488669976541422657829328747648164434651606259022435430441146244077800794534824526456958099157225858498251571694285912805133337825642408501441142964993406248730859644008899890694870323502978823392911099027485650228391287584555137549508423517556160318784143868747195846149048066263573287269709103721572208515867252926312359516151400752502641956500619025453685531500965105900396982919680608760270170836038479309990672142742761739128152529615015254032478386172857948935223270841625282055403383335328475130439870067995607720737980032008724387658866846556136631752533232030811346788728725683209598871938796132322680457058552515817255897767770137552283415481161337945299324471896406831329400166057336074275608823277403039630586874728476504124623457058907354874233066568546885386581766572172309176694173574163728072143216319611836625083782657787586559692645701248254847342278117360045924678656373425291082945233515728813553310235226229595420822416393507750163425785816926735641052998566882375988255959808103245162118388376040123691073292470606404713794955059587748872807838255170869551980810920495712620943579993645380375600837771132824706614758803048701094413976365650481745110665592841528086901102677443927624043150215323238265984732645289643337802151794331044740387518344991928979401223815700393568765206996367121609030008854955057252423529283970858575207418312138907763883543747912496993938058973743944636370950532883536188576025974216135004329953740340530531339693721667998301057353308535741336657608035027483864861014182550426895300865693127731731527412054194144924798351501140908735855975837948631708162963924226588278033892072959718317712756569292644456250765437589444120271829476963622247201915758732602784815828364740858680785650775540879308296401622498515131718976183120341807573499369680843904765468940977547296242932100531199354611028982096019314880150036133202919444639951425607829069575851416079114864824256833128141938400121882033531089983334344550161533623091742780375991830896366486087216283627742154774692311351865012739340486683281595312883429230996758654661654637755551370073533774883709791691186850002256731130742019799295054827168001478387450809000721784767171906835786877611816187017289630078991708732605587313657481094732926152601252131320938899944344100426151162084502727697782829476054506314657420709416986713178932896283563343696419779411963543817936644469040807285739795816319968956316340686619837366225902716361359782245081647371511712883007653926557769383601617724601610657140789800664476550102862263627496443520328313371048655216121013127646031669540643852360347990639629268581723403892949627746752932529915699736955814898265796303780242314312395145208918567216109549789184533235651551828037767207264150977661633129845291139931919238506947615072825740711955589272200903187139180617840471202717226678375366908185332484628911904939737716885628812246891231902720557576268045241174848269351342293916502214850879415343191764454057596793923644357296288958592714238923100676759843491438810123138162166837466725154022602525962629717366514552044169137164525447535985976807479836107170805958004763250319770471837054506393778567544489018850867672403567970657838558473859593485712845508735096922587866708282501555729745540396089923989271707990066615738545027276203253770020705696152965764105806368537578285140379001612876957568241138135181985523516757740646110787356323785906631957985990834438885290530183330235311188215015258093296270503001689741692483897771831231497250027905537010068301709606028071316229659528149034131839839281741332906915446810347545920639605825441939694640761948644767342827607687411118592622783339687245779326521310285324256557642194299467169828089235836447420051072583220919898772741907948752429049942443530461798895201737940528743650760449160899872858992747758720576085625773510428232535204601490357210392516791779928594685131071850472167977717981616685123918768077251615565012751746696331134290655455753419345632911480601534109930155081748930448963732733744808102289860036846519976658575109729534784559588596215383912271060162683881941397446867985387682065203757270041378474687023375891258509340080808849643930279911915308989665293729998818451382074283679398705612219101545694352232479568702910798239839422701746936997302097544328505830803696070768207659583534547120699321320278628561704869674234558702729901119565840538650119687267394010006596339460818596111038146356172373759340839593114724520185391169565273786754755940783433380196701965558463219496375530665446074958979859035544820308127285522502390730684304460969377602545652245401329978680978665105276536096134354249734669347795646443239572328167172898008716174742509162074162560178123235977008101764198915659345199204625648917562442346829585486614238112156546191144241257317675445293386368068766835215491656001861004311770100239767776854133669134562562500928456093384683372440910882209631677802281239527158357259888115242561052458290337573282167872516650835624005601647856491353088831920164948433412130459397842960526304227423253279555122548289098565385977022059872705692059838555819580350054882807085021842254659128991654748188177189664954390601471092997696981827461437632074517749615601297378016073357775309244355064291696617808367542075822652577999230360357961560258563414826483230919678004999849543221850404343277846866926378225936413471040249269818577709125371073709871987704408515619605065157975952677089874787773875932511266176731073422626717561638001595030490150816551049792396894158936554294691173767704282384717117635842219656139043325639411398497671174632047524667940768541095096173479253679037366674747457443665992323382541477386283253084922094320050143360234241990089450089924586901571236883355422924595076453790666309458215787673631373716920238776995974803798260408524414237242091369247288723287068882096659873100676762358683848842936708308247883663661276789250174207963921767206647550567325429875924759250427896621904380069502033475834131046344860926901971746995564436981859008147753616321967571300941532823386809649767238937201335572078421035448963685921895510268439903201673537220232084573519876000715825228702630549563850746009186143020351363257958157011860894815869112147595885728477075191468327215276838646221058787050285941110387551405092979187550411909491013970730032289055516808577753806725691776493394828151751842268637895270758938830858776363803247094335455181822195858571237366920457807576608952855097737611463032643679180875648740464324426097095137493209906406078288981821677692320729549554604665986208246745703234741403294677992664032764691024753782567101024710574488451574840523488960188168805957196237411750319617653961227637074099092673130985397330203549675119453215127403071247413979788960404397538022506757865917628440340513131832928832757462370391329196366503054856831513781363795179125358391161964570244038288696949713282236018824586660241917469726037996160894392289302219321380010446828813139394930726100772607824351800016565161768278350078679198539464964365137838739198099464993508782461585598683607069606523162142351644579570242425470439237794037727868042629917485358985990540823202535548596281238755443317347970790114977672079918197688226990564590466518358092876504541526757288877796444430694356185085679229250074446572124996789135525048657093574406927366779320467825398650850995147941961409017104243708000716368025144738435847187993226989244182280819310374154387952534301354432580825328312058427649764557741590120039385721840089352487328166183113070596846165891179587276909605812903888975244588677950996671309765919940829697593962117294782175161759073297283933890263404786441611538878315590769204281729678123056715455855674585954059118973104677254543029077767663249831139011614067202906429161793862240692727341413369681856484461927258234343698831026316044246761570375855405002874132234080301845403615850478863897888707446557854117307217744466982881659895375484483303882307670987663522636203860405746347272423440963277625016766689018015703627661863518942093338794876219381696320635312375646235120848820044677383988521638358705333939534275747881105484174700636195770917706415404398369936056527211190068678170842479482605987847404174766839263389759555961885936621289130963847572161023881494448101927114481272224166159900529944798624777420752518006818030598284842334797280814588665881735787799755608260904450603755182477879999895228329798825944847589484228824337589902618057605104304372116370779126465609273429038128568358805873443149057317763367204951160285595095255378711266310585004313479416049251861962389238444812717590277143405746195282770202831797271841604904301599118058990192689894490285488845861024546823644264343674982373221623375910222958871735307053025612000893428574251644801796531111910100510843494113629180492991750225583843780549614886577389571569178393123827103101944825294043459773164108552808555353544927380183252694272402017359157547371364530292288864421415582927370475444415058322804552717567288995753269637531601431354996376923270773571242221252239356098489700555562187861286823730501930837280299381124537928947965735231969200017110040629615568343542124402174964753966046899539916365620958113236613999964569049526508230401753053249254136614165133472835105665912119709691950732431428700257535818940363215804326842424181796176081850570656025192284092598680106368765103093028392398058753850686955596267030024137698158879092162072205182330965982281522469590747515390089969830250944647659098992777925418704770805881131212447887238144955031122855247916056445235918721716861050165252076496525752615747557487296873167530612268514608067370511492702155465525276824476110641709906168092999477745421466029738569142015900704602189004331214955460753125382884221131382620881272480968517649747825166702555044832023161122028243055493537386152801434860483775057758276612057923181003509497863608900224360819371702192026183725245552582528437852542485467036451265669280202256971269696447325678225319387192508019963776401521795467002006136167758559510421823343212859510456257438991634307041299296216495783960206081908760666125369693396854124106985306896438643039689392744611912084034585323250960709790116784973083885326594658490094043220945855703136931288178593243329716105070522774197810767463246903167476770698021327291467237042463600389902012888551001794806640090321531966456103858391798129285969899971768901793831592558773573612043059379419458167461042812771163630268742863468156513557050586142604353283886062141237291771910598063622608644011893322841902049803824542169302694688302251230519754168838545990286266539345853357660220523517183110442645636150755009286461827000711271758511079779247560952169480067884136225445392143278823002801164931161706213977909991377066978063054715177972027653147953060485065473250262121892732427532344677982341134686499712762244116822258969923554931534968098030079566041406803701374112465817771493309656103374849142012687278569440587896366423591550603275322910633734814058284968470632307646707795609429140861268410669224416440677656478485802740331051638272088704854557550307579081197722588851453130366191430602850780372403391408296133871725916105213605826574709018222750554415462430696239386363293799247210577888654879005717306517816012884595800772424962605753664532282337679992992797147026141269728364335039607721724864192472294697229806699448394977869019751699519154722335864599451322269427055631137733878914094562474028501274543317583954503738382597189863233693050479872008587274914482260975627249873259770263431910324866341348799863866252248231772804329085815466997975801024434120167450768575543179989948402273236398130892551874337571174877006965491943682160548415469852931778941991918750269215081933422754026739532773385688036298702511304426610295704433711434816004907546903320516984783935744507037325666540188334650013080045272077352917962289130312512178708267540094168376814246392807677467603557664649102876776390678017505239461594523249851082762939727984143853509091067808284741961562154009719830629725815808778402755279624557166496441543080985697634901998453798134084726096628874979925042181119981967479436429038772762964971569587781542174584978207337395602540252279382944069926007953744510244967692377897767525772549729979535389878437666098477541421092868782041805385339832811736456621146708066597383044714646593029500395299476220270758649958986594999474776632466575537078259895456813593410570561256289627965323603830667043892974426742620256513982364884260087904933577901562244689712083680325710778436082360732346063627737918385109585398612071682494596463493158898398050561559338335541540440745609719369978970817430194552811391174233087664597504191553128083971660702936670724140603285311780760494297023600420071623540427172541229738137099264723671554780473394765684365108156826475182721955781757982387193347379538724662152156450725988795922145025387587137720431261878135430988664654512732261151989801559071836791522518369232489110746130271298963165947536399255636179481396656732340168612417186683519321273760755906411662522561002460776123288495007085040730015057567229950594503516861079857113924234976944622354709287558081377140941270741335703011829048216498834398472286209529997616570691446403444828667954263671069220150613201945311533877957378969460625293656494294268904072735075189761625855391492412161000159102623821023487322732878479961241200231512885196597943235920710706194185760972115171374297027120297901888474597418801465754064025902798325637565547524818732076381894678196947646345883062040925710159633032949454501387153821171189588916640044471622819582297589765285078118039969911644619623220496776744144034156300211571520310534769202855536958711742234041036881598546275568472522267198849744101765911410223062960799351888601229583099809003254333484537517965237705299268404221973361809853499187526306371563373799233888441166684747765897186870836111060779559824955356358024005653856260216517239560663302078887740441407013071185920570710341292387493748486939582562392088620569299955785936281623993356218689233394014719926300527852806454375933370220882186601666435234063521077518898696046420724944185321130821461706695900885987267604500937781341216308523907694612601594924619332570779820350831449427529228971118498550013838091343554619068615781187840792829496299454483043804435162054511952065023867021633772103881875773124815187470146070636229756389418590857273502300325186994554631773740535171587979506990184354086217772406515543488919204419191923824286554601949992600722118760444230472004366758795071617588547096626359350116558172486398505725454076126680210052437537876149893185045659037141213803098305237647220909687388816704876377132904631434187584314236590115690449331473231435541496145122742121206852619223637481361935658043509209551080762141616432584188869853826842616767714615229247094244250235766324431845878632065364723040197863159631096752594210441577337901252088920965101316711039066511230002096541216679120769903651870483643797547488918185610388932272676421823941238249534379365541218241507576634283558681657460795287064596313738426700972761940713662513891623095623576416136780153995895826273144488338337080936978364348285534391145211503725730760750209104389380012250570424681949470110550503544644745025849506335174286596087140784890506004022244522559590534143585911981606198338326674525701119060843018734853016504605708240721645980969814505142286221526776996061557666854214081798812059443202768990892451696226172319626814076054493171422586882533054306813744118431792784840167850493779349104430548304812088940799124997051567966521773499082258783002486124281887922675189051292117090579961736259049052214722235400820251239149842851074127302928739936324897358302363999775308118337644812768398902945507473270487038711725806040939127370733393042767682872547828628954921452060101322461234442213123034725777206168283840332325296411543039390626421651166969009691007360537580999401982349745232052980098196547654907313844076679683175590993355924650479266534543224200070535549822920121870310694730770111677779039886172524002875937182271945871576672761048844681683604588609768716187883051980815004073146009637092621257772807573160741240986078371132723124095134842763741836462028941947801077219228911117756061656454267748991220034534192744383166378550625473989021092194913773201044009135189967498238899125272126472576577375068672524574073188574294929810024469739944187341455136413720881019087873971899925424049857628056093303065362480295230453939467075625342175372536748689668662240891650983456960270372208678951940277600543591396655030927900368531096861718313263082495052505335906949367772958887675930358183726378377468714975349480000710189442185631181359204643405907136993154500105424631907799604608062623100904594309100644008132698607879340722726682546148729458944054612825899251349116599822604213654438283311151884557596749360081693023396575560385685893856251265139550793117687067517721825241098910895704162546152472742727619217128322415015464721465045196036039480435297666705804454340108604165279569964075995404820731596527262717216523416896560117211739340861038677220310367492132136355245201400722182505521262582412880001560782269476022526830431921055741317342722338481200467549201348287285437854259578961451872564305268743539431603570216983494240747590222696718326512252411217284874676760672484861704281802737563032159153196535143670061531278359316288397632093288840667375266778799536625163981050009887047841275842167084863428173995599888907280011791501011515041686492243535508023332309796387515941570856932841432761007743313830886777137850530293059626188783113992152015830606891290794405384257960386596126496275141650962636642557083440408307754831518044724029033381485119303578030885884611875471162742597400201031202540735512272051536379376701970288943887684716645469261404570945006812089122002771230632526973973199468762804374438441101087852147346047603077521874024355304750819718625872704401413282620007713532968611610755143072077943319124570514288904319563796602835542352340570215157173427913935525770274933216723432997155185607505273825275061796880146469493345473583506032278035539503604570242700534454935249313384179249444855754102243493535238643504081779436467556229049981524961547680896008300908123758473437597149787183088021934236441851415256056074687329732407364240196191778688625601494227489362549766937968252253970031515905477525454718428555691858580860848847003559596321637247791188163674364854454526079580517477052887461595967810030407382467070334786980939203156771982705577410694207438837467143337658274703212993618601540693212446719470355182943909573248893262180533985428066330871388920215557571392559991852219125037267888017833989679511287695337863700802410134570685137527379936181669172837548393387025436457427418399425786894716841748764149687533703820204783045803820061536379354108125380991333055312613756700471908465270289213786137536336889656770322902267366321225069537506214717127502808327615726600388179418254293944841731425499922350774975937724953898800623313925817381432082370228211375492504908685444725525879747813027714835585415078169335401076616480463711312814137806487168180225561356386348654172422192294383539944245193027605601973981191294220133935852481800853275576792771552067036760744301351428732155668011361567205465871728463825953480605947535518935688180071179332145890269433706998369718440484769977184255439271190690468581872902588406484775020635856181811171275213851942503842374370095299935394919706561640655951286656420619264405289927081817338844376825691641045546253091262304066851766060874672725356929708902876128459213134611410499116076914295888326732125648616803336924057098497500669621985383634208933499295040817655392681647731148167470430778761542329048109245020835572822169401735705391859840555502117688031115618053354494641339750156027374120074302158241613891977509046637224577399004912036890295963207377073677045505842294602609944573716800537576351404684677938411503565568582175367762022119712086056510607572656196743877257764380161626625589224283065116972271549532996246182398154786361452191009538405273264369664175811155963930806795110690610902180498764369043489388826822000734089634974348496851739438635450632081480108507042234792677181589232326965060382415617600626080588169927316178154329860242636781853090384349230831119840950162724356771935172880062102223475728057773095897107621704062497490280502555659751382266832374861741262168371642991749776899470589325391566097870428536625597266874212852050499611082863208605141083513450776109220772457826736585144414138276866098408404655374804525675971638087648408937464780041496108878108673244672909552633385440278954827491292659693836330857396541235163417003882482015542786541709003952461843711192998960903689312625279640563867852606784985804729974325585735661981117084629955989946929783002498767331413700399700584694924494218536035308575743080858846586049329722333748174439510160812018815995910336385445262640263118259691534737115606778737722424268219727346959873445038911095014058614436974302127633339280096850822357755471046565744080458836648039226408514484516844748502605641468930597644599034529903823910536647146298409506604336005694746676098762735796261291241817079238222762196764916030909201024940856596992968410075232567117390442997551061134152668648055539384735348352581293374477049479779301408454291970740984845024025876495559677032105168441224727168636108431265097258860576731290869846481888504104363299207560329331901330178007584443474520766387055796713225860070303176596184077041852122628966685148818227431114802179085553041178759695777458831708418675658424427967113199390834428044775454539805351449429984405847487370770039545422801281491179388583764093143803628381153204301334354322916750668078063759989637940037910841579173386415290416468375455778884030971048017151948798453767443112313551129595350054827803151067047069610580352378580998714115775563914117123730710234796864338552597678163001184449050437137530042117816105563523481791989118657023914072697385818415894435484375433470084338418507986316138392297141714881518020758137182629359742252073248582713415113027648368498408615900342206185116993327812558724194153326005180588654786334862483448495393766970592963842243752363444731015562754798947102375970741894118042997823298997249530554436203535334090711411909803375352910065226054743997604255082057971818715450903311816576531176299723906074920808051139422932865355657364948632247440021752211838064003069289360822607099245551685100442011157871409008830588919294985704283702883446189582196762503974525823111953384140162723347638970059106920612737877650845625256476002286828070165357638067139738601207365644590329243192785167231459103836822297283145273241448296031178696972559732496505723322061968581952792822808776655007725167690859051402885554149246465970724379409986264877848070133830524735889853973727703458559541018387638956651363435355410105103331779827914470089905006539593563156066393620361788446112788810480480977833854904964623803852144415789204879697555340777173055339462173994055158318520119472555849107240398418751766445979151905395366250016374084706153246693559400630757349351595720720197311269435969789587613157641950449355951500306119371240529422810326643006420583527667304311919738331871991572188944530066272294482114319125527721043902233612849171468318922389691068080857420304362578419804168596496197566067005692502151633875505937452493523324765550026671835934171784879522402845812709700244068429635724392728401052193889146615878554857688850257252286666366822152976715293683224664787758861678373459848217239725422032314651750932246339477088489308916856228516514430182680430481995795617166682313920991742910684717278373290402363104224191440468864535373928042509382636652516293380736513465815250568880908240486120583720659072738993249235179693678801873467309984272333885004758195468806728416158440503299847557501866132674541077685178641989394775377412248346725881275349537828680587432329259646453329207422808106087650367484292998326508278187878382826924700937383421740820494448802378711157977707505825375799368943102792026734242790606512456237230706348708231787709159054744548963251220220841960798058976031314700402347185655070064803409838782349181037001660821826880632739768889843113497454603023134856635548269406811613740152151192375553095055665174556612527055107096807490647097232840291519291301453696276697177752322221098415626399741937912157817616319372174927077753033521006811815522907861244056023403363625799420320909639834971960849205088175439952994813044634463978070220843103297087428688588307009076451869073987868304535929953972939745858360813418294408824238492060133318104937144077662127023225693125476975506046315175223347832676898668461656518388653362089933236674951985857646741845106854241721400708031638767086682649025679231880970367302575544237219277750375151908724960362006422605312993038302639632886581219271212135901195184851694740348049008456977269463043845609850195147986909296064007800209080934975303811413919768284170597733329975767676995139392684181130150904550073467866141589241675489957898629510285332935962516464200622582822028415562596229859670808135099222705403677899038788215492583452678794632031926440570553134688639326131361418555975416059378221026576881404729660256657356725697658875638011395124725330821033107240074374196949012922139435693815134919746811492304886158882518359919218583727963263860697260838432515277308036788956086024243617504901916840252064704185033610873991399514951966503639655511311536100857904300790222085500004263487494110841090358599209674691693374405595805012776372903801150734523108745161113170309189047186914244444047886905221068842200933511813389138895462201854172065879205714252969911927971681702078152309227789057179198378069160068232886601897240699203988106196435028703838296762088878639808435210374786005713636884712556574074891402306845580323284457565465076328247545824426057613659661995976134865041467689831909195422487153617482000512571155676494468932934309532488431326594222739907249665430650858313237693024680760612728332992783637229887232250387707560099592160631093885279972639251775995764112457832553873160110062584213029507037731671227090970801552423182953647881247043888408463806063959241201371754058470396607454941191016064308648621404349944343213245045265803163160984600910104006319175855311160575384539023737676324229519634652298006004834206351621967161528219029822933309962228923823029928152062759415836125482533165237456313698101210802540468762210276990896779706299398217722880525115990589473186514383696110177102873394327969585944885246540487952467812819480542989315064200030975065185573332442815737891419209869181131446563866725102657758198691407364949144352018589168455354856176909509479690395838034103510480615492615603437403120366278517254585141303255269224610699847486873018257960309586381655284738143191394179602579537879371772755351485121175418038770755270068800085822284305619203147862375157042975242301033731307176663930271011440017769145627510675371321788084522007140045785155650957500309389919464205634048833559677944849053601516690434974717786587185184398699192696344904471242294379143034971695814085991685149742686846925350620890245075756468549417248757649545985617942165164729331538492680558583866883182149073241671221472704650787176331535101086717840467522680712779964501106301691607975597695652320667797425946287376228874604414982982951599089132942818142671728118385567475367512520672478226389267805285650399476101220579958834686574349773162388181984773674776963056116490941629348832837753586676615143684048581757369199705744005872799420784151942362966357799867819779539934293119000523544547971687885878587484799284883575246428819598174242455146880819264634182701313524253579256519298272089621549143055938390744347569429779821084755752205974433727311504475580588092170944789611646209826024580250926347644024148726255359201440455034760166475642691335254819966292457564739457281398864109968394740356664931993808523139893904056091945332066064552633995135814085616467363275657386438962380041225138969608583310971703263840615793066832814220389528458826755212428277007580841151121408387871717619435519225384658016474539276716615918546689533778510832799296483627937041199773275458719638066656696440292222937358322473687885443299301904313716797021980658122056009912665243931637100664380003980519077728415427804109914439284006240825850297737434985038781423239563717327952355493765367994976578907417383669058549781369829262038104086346072984013280560452386558049405512527353941000786942553555004639049914942435275951542714899944816564114576829195682114407717343750658661152804600836061453762545070351156528840262661705755386840020155185946919182808504747996549566477892322381646415205577181001473122055629803403202498749220502083601220434824064435130303387086297428775822007872267828689121050224649190212983664670765273969931522645528258942055574994320993901822033499986886624325005691826712343034673150919884382580879874252677099005540855433476818384515506541287084648190450639256425091409060218811616525573559003340354883849059511081919997874095294188769471056149577532577534152763848794750393527607972540208139801907558186908616641091722892691471889538105753479651446949391327980746368246408311069152867751816730585241351932686337922129082295154485996821022152167153150702232178715587715855934899241081595509656039674609303076383462211776223152131655837723449196577526582318310757832567565363094312465110261952143032456363895926123556916599768468971779220543382730120091731448614448369802146918979729463591144353481186267641771726848679636640839302193651217020076068292412286040432472250145653093159055552146378608813925789683751371033313360623571288752942960005156956638853124387394014984072200567306562289333069775434496182328310685403449175998240293108399284443336660075046743469371867291448232483788070817435972500160523420580286168646696478590962965786897396951402382174301956797098803748661061579537453413981896086308350272028813756653254399255709174341160385955737811029701034331300067764280070251775989437663604705227465558613495369382547978553444635339719097154636375846472943525129437523098139132038365253212067764971726264712090238846603788590614438589961965633810179696364619511552576842621394878994313822002373812888084554386767628901530153730638741645909162818040036802411092427120138828306069687741086758689196276908919977169562018363133549238929659329851470554024645539065977713412977702546526710553010153378097685855706784390239878018094425762865911767404291196413939446439678376954465402651390883514101692051837477118453472110618069093705803109028467595605599382362405853482839587670351610973026055358251163975074174866159435560363838729995360401337118159117383579031952723761333960485900245241202551881941242483774580894267156087422645181849320846200008118527993958460950643235749387506824370674841397704408721361740653673218702157061535805962246834589565970464459630773755105837703471700200851242280090848976162853846337415622652417308640002289174269147910334076445200405993841415501461312138093074149153063269968515142425891721782250431936056485191775050881676085161976085356813614749977805114108795701726372512608913998543699418246922643829911723068325789838061740013305560561371311166784584024764285974698508954923069272647840757918600632826277801674131538657663292976525016312892065853357596525556689520833080205476624962356122308300267546540206890332850382928456599848982264991949828968725900040154081863272393721555097613808211387209403894767460010314700216833500482849375972119296056323054632970891405989980787991273548514808382228472459561844739524000803403963391046699665130865549798378964771489529649928448250396492370058721793131134677295921878783757807119694278884060402023637320647993941437643312333772614911162186972578648482153913313549395252172715397348632225133968320055744802314494029450664250542556286578276344011349806892231174849372351896826442294144047898218841749832814937653876055229036314601325138976584520090185217204850824529182471148657472774117158873839092655991876925093676843049359405276878953197116021231142192433054690263608262312495377409267159172604036108808410339337091876594956321018036793398099849388425193052405695152851819857632863764153225754282463821914002791131425474715368459196376805909558142891437394907081411227084619728832508422081744641138284204717086525775228368341417294776895596258937078962574712531219466099172712648456873270384378687092544258050303323512013501922490070317412646612474535884649351064647353368637238807272540345698217375909152154866228103917435000270332672153546032821494532196462346346055105275469264170815593773380569827208923987835187201671782436923261844565834847208877896515099093902454733546178442239569215049909700683200261356272264134638274499067350500620738797859753466463353805477072117320337342431056186865238744357141948335279114665170121207593015024298053971697977435966731094569854336685675965426888830192568520785879206229357601440915164756565833603488441386180339260993621894092088733057099827411888303826242156893904619678325503007530730252073961369284770029395497580476343259424085995949125421123962230139548557699784527265206193496441105964091954045243890103829434829089105331355587533025779493680951917607057311675458461613387458986777053719489416697964479500331416387179196204660125372065724494637521184936331820705531197411254916181770363007359867614051066460817589884950202064989954849488988936750955954900023987624422433875681609024076398401313515548937581355798956339567158512562085044420831009869101075526197724203059351568833333239089016783341876972085235653854917875008377071572084918308687257100337184450502986592580638787838757655714906974867222961317914559486672231416055706353042152165693645313270740555693806601303499782879114065146793459052352328949961744738407615695699366549208205279518123175275401657239268029506427649917580375849198290334872887503435568240602111981370521108804190606695639643601565424716942071417545195814267022712009667533990091416951741348213406245599349585848431812886848861978881657233645251961964281628735553800632345490873090683119679362871862216320145957881361563587503705814009369287165862224282229362914232988481833705552500269708365268854858787597336163317968951030312410516831528334609685064326110502700161130336095554225066505920413955260701944916321448753985578772638867667536446451397604197025629390868160253275561110225155738390821019784575049529856528169057088585869344929126815807579187867110079819682815162134286026268504767206644757428082208126109995590115967492850151545516842840720667774696703686753358109245757789202811339991372975942886261761755676836964704933607547548035524055694986768739172199049090565159753219806238255148052000149402532060853170640691372965836514962487955261844327078942204951450173872178748683766912968926393135656106127872504355360224823234460097465195271089166408119655351385492352693470619579880714797285513305363354056839976245932277547519647404013236230270538672580107221651295264680679461848083816687578996010234417192348119202321617396786248032910326358859197404765770176006039307569231506893204918973504580528622455699258222528351334415693886246659964285268001350373662376621011673680992929348759650157246725395436431564707881313803850748384265744520008541243550846367335186135556888571768465044720898352118746844662510372993035782501042165601643750730413772622465552870955818672821544268498139500095777384525513098638687683247112093127072144068235229462519357532616291529915978114210049965668459853708620062047433379053469656532867951454030157466999431908880192702491043214258340250568599091356591344422180110017325567898621512858627419624286023696511092486977560253497898179796883832092577711740326498202232058276597418134838404900228161812722190975846725806559958307856241035132775829301182330912750281807238173490856354688850168189839813022578335081393733325729402321271752084978981646317967561899425434702787928466105377138112347189001976199423527278461831246822790267403748128672537188083759451433652922706739802943402114215609741791958324796088497489643225533369561161261119770318466484467186547672233318600228678393899598748094843446899005943238287502612953068326055513920088728587510049028627491655697717750920991697016280870042439606071117009012856434598670884136140059444210925460521497190169819811030082967807741098272011822998314656662132082224318511969042751313967125687635199713093198841434904718941330263474909515092627718025166616057312912341268339942840440536578939172792662224183311821654640629732269386265428180839743946094281436906107651743780330366245273011128107558685359025805895966402063392971635501362252684314236572738418422238164377901064369763256297622053166514955672720006485494111640996346008077990077640262755494572603650826019359663047815543690133408611903255596599397763175663784825672917645274095168519224264317497472444817882667425218813411044664741436167489983065894744607723266406672630338847432776693766294186743456859224893637460845384603883414111523410072750738980288189700788683852438821813604133649460599752366140001429941302926426589010929925686828720677156985623901028735104456234913515959298192626989821159163177729420009899980231434974612898383378274504707837252298821980207865369220712753935533990757157809309876817340786117849235923673311916105490603936066820610904939139583430040250001989825908261309923735515174121795685722524516295252695322059246792338435881138856203458539253989554966893546210794951036272659766780455474665967502214561206622294118107030449584142084279138964982722351640468488348259297226539288606009549065195957641786266512529859966582626235911907548932959622545133967828004317005240005359793397943539550718580814710802735882005495710610834019933250029054889545658803181353637964157457382266140145432188343098369380104627778971805425842812844759698460138201911743758977611559044545519879518068031611818429299056756531670460437147520668169413020244140359212380121319319938881877183102160732383314635994339308054028457867659353411392543774665986332020257186153105877302145497756708088277003538139946089073079149427930886104718878654775415077819220104484230975736583670366995726255522317700720147351795211173915434079648904660080087660607612750826904448502300824234570858165581612398121900092192534083952691871865463224621550783886755944710198680923955065611893382893637049306160289620077994332707029823943804777806230946832643991403398333422554127369448718361067045435326872386931590863807371761167906512715476099133991482815080313631669129198552625669995118572978059273511013147281583324901099439822870093829577894143008565818221321039084212718463092971545220929772570335142318100733308484601714862802083423928290131411399958513054156438686743176385256310926798746079477924293063629326244669696631821356922618442583969557015455706667675212169637938293969063060195144736805692979678114400241919461915130370875538693630655630921877248877650618227396506403465518130200567107497032665423371602538654540495179611364993961660708199060950638423117677838999697071149071305550938280918047328869199267455669428331740123938222135798338385274531912687669499328885929230544118796203641235594509000929381244261167021487269463885025559443593905856117719120905584504492014408113220708246333433697971268683564904001262161260431332988415933006414355865256310406012746482938269651747692976817398070359574992180620880013683277875597864688943095398885823770653652792938572578170767633402271441086359025892818917760301297350981976396437312580670263794214315171453454174584830526376048503843535634426757257578917207426822970394630351449114680093268338587377552264235732662779766551660880584793806129765939596732893373715483583782202424819083664822279338082530398160169512350987756968435191235177567395636499839173467907462986010206149290127526458580532087129248922382566444466062897835744989400749780850666404691326317241355359514419432212706940771541081773120568305444999849624639190891204083380569769937600832064209059121746281916236991554574410098450154682650487986932939286739716894517082130801255919686468801834430242265491351719514868116692784115554698868342405359540493608490081169271716691746984250592174880820639829363687184450286534922351629658868001225466463605868173838870957334754095735481403192669882241666613512332755759050750963127225294123310826349412068103002322226115339145898633569373306139781205295581028425988218171501437667200569016642136893727429458023470336089380354966143475385733527944520056082091600960950318563017593018612480721596652283346103816943347608450951946849225776791784011857719297656352704461908287141524506529505395040529079323316074557150534933943292155239872944887677062251067902759801982552471416948678069263038616703178046578374540482135382284355206929798551315928483621471485769685202761133702613302588712135504813258464922129129671677745958371496661595287937549085284258771035392167181500775920888633930247193798032033830677285740043426404085286409828552922098883901400090872516677532629812657127866933461706914863109761933276679239867231713777664877529118578502075905313108860675384104601658731576998666408459714040404510501255666683740208738799859679125703589917694405192591143573910390624746190938249389756772523102276085984740918542364392291320433305711407724171240453720205301649971064341121060925782546292232792155149174906645389365385637920176640982329073951332761364583032111418667927107259249163315756129170906454129377531874687731825203881022352281521968103866847859325122808853240852652190712822250235440225969764632573633090941258666638667020045018413272037464874590035720938181077297328539862868797225374302468147084589333387035780678232426619416741151915239484312187725788003845388018210572336026814270874238393450625323970528384595444962098238525914879080592805106899448996416879653775965837020748408281183027498159437714631185801897041296736383915464809512812092073687831058145992128040869677890769633591083637089401928801634465710107636084841885021474634113320841547800722737117653196125951722119851545946121177636939360543877021634275541580337052659538715334218156484006021846569857825691160220305603596832718834488846678999037262304501132038004673960217866531720438331675542014409188400469063680566257594443129183797922476150946861816548369964587852358947271444737553953773038260851826778230494177720189456915145277538710960484705984745377180833613789894624818228861069047857208979331607611463018701120731441894779054178833248762650180130350124822405646956937087603317707430542630720861799704399863131855326396473560157818639553259355640876143778922968630280275500393894523215464566506436630251895154265237592464857805028385239561957847949816339714764375746923121369385469863196794773621027715097420011323179072675660923210458095679959878145253640006581507278127713866064296693534932949412148477816147878887976218077637117276960663869026253463162145725236428071391437576891071169503860127781966853611349902141342762006201812190011503241311388653170946021234460454129478963694702404127413216363554147580198955830517832994739526161413194440473029324868425430410942890766509185997264727824952072762626654830763800344020396489808905928009951319508950468795746100699963007235004047984506122469639383794564411743018725697022753628195593289547899117834060681791806490739359613007343713856291595351098514884126452554319797184767907546157203608567849083669731587013117422219718212354965632128681828503881566667084492690558457860695092246434605971078264243895482284368097907374888303252184957084593545301200569043735218185241207578690030017530802225706198328014515700755063102800824577496208664511893434125184008171616568221142047304547829773581428944680656814642538279395655866094362290152766283321419010606056693922767331928645609852815718243476460576270788793163308827446539887358690551228743709953928291565521014717280291169624945892130370269623514741249540426107985504700611818154393735750448263174761586336186538817698024543671723713401420089285097132257024574972504935425287632448074564716984170196677738551994076406166281166811347131370856514847979430985807468539227558709380949366999486719993155629571283068316313390929991229860854781502891750166361604438461713652407359139897911752366348574315393025481801165781904342770696036381003904756359534327913067358181729353583694685995812188511379830963382470592089380570520468119988998993749657730358751754488487669464683010653624501709777815248038429246928898207493230585845295761753904554600618982931597557981972738981491636990587743856546537821118965899061217290677537014118594383548347712634459741000066828404459267204085554414191907057886973041114274673743895424910633542176404153194337244433031995110010710523428995930800102901159062195977810220839738903378707889701296727659441189744183733120223684959547555540500037756725479461320344539901221591164044379865347833815249818258552566393202794587389235134599470906896103217292580172990948810866436533385036811687493372551799087995466286573686023872195853779244032761618753436370948385735891653439575746125397805095328909429256057773766398176360079379872849584838183905101514544148836927781000487056643927068567460738056537728918462441716568127693816957599701129900783732840636128777798890078164402498481797931083730066155030464670986264119363528476387149229912716244692693979113778554730235194063584966478693144235047427194534458065193212840574049058803661793724077193182667961874682220361765029697784692284740421090428899138176970535756821867885093541978973950750787875608854917570749240521492033056802979021565865785259937526890769699991599221615034537001758702339765528033394211741626825619624161940578971585847876868928465266967188738077995691604092778810503351646937284224198159007327297459529316642645347650266327968677287094354055489456824699769805796493577202287917694274731350565436012374873566116447385658464785933525271210080197085882575822175028902020643213452286076235304867777422666075021981394676772082874389194151294946708269213410048667302135404014101011893633519293719794509467751837017608854816267957336758807370844064372480241802732645114732191111787083152068988956868387805669851390845583615364906287967000511359391468340461686713951612116843038704009732437522219972831376341803143700009897296541084763623142396305417799007452321360588007774748725165389992149893725589747009781830002631816550468720807781556665893513710637743859508930570252584674669539804529626253296269656016609679882446787426544436877719978967478356472891573816851241886964382830608668273907612400140499158911295611714190043996596379087917280398720568976898370403015980581028957543395870799261844448654770628821432194334098879938477282890574347884421931418940897527188341060011891990010216894921175585581229842022857446206953926368416981080425768396622569521450881078744573975235974812239637132732736636224965072829875572714267170002572504268273499128671631464582926707464549099173579782183847711205397671773985534792383010910934360251928506487297339962689918133665707400915679495194772093104738232129448130911166644267988279731278147977149436242853654152794262397121489783510277699669530065504710157937295706717746276010860912718839239698554271213741292091335621290413330753163450041261967506546978575552754178996620385314484443958847231157787692883744448305321758548918918578779927260276483246994100859502938461214208360115489558978870796774606947249771816889692001216058483529806525909249766792163918193191476007942125710359579951195397715529473889854017881473504530738458354028859761663909948212654577862550275621335089969270311786187470296873993509394674770696274990617755168683999962570103190973747714176620224301869360146218410303032812082926201221547731455272223879468707043501377688605653764331255261404283803274202354112092528571855610270825803009377161782304494780345384372756142378174381526729012288270311577546561215457612920764904123624873564616850229578614421444377410858499946819636377415746617776649655971927160127245805776309535558839885788195430825697531232294505342062965766722860421329595502277384129835467346588391863575217423138798568135311768003603744631282395171483199757370574309735071872482787567251284132854240984441893740127075097777135569761358419127485497874553586001019732090796142646310710206320801770417485401539246613776419652065112794127315103617836324193579957824494226119200530656880579242210223757175287488478591278640472109129850910426086883637723180709112215410008812289746902064659063136884631170373017551236359163131015468333259558562980948572422192761568994473072685282255885942329850960049393809922867837931699051948913866987408653323916883610005526090631430083303400739160163730069892982895174136554886323826841956411436547731153937953092354908152321282514510439707301888781967311887775298223018643879468256140490821901022870108616243623045756550932239064411146536018448579084427344558560110362011321402597669488529760965166558474284367816089040400865373776750185320077726318094436650405063460506842072825668088967194778592683717892930777378454145261546195542657084537140652176024519411602839287149427772694521351484691030947739091264849222997538551828369000847269411856986740091269875797988194962297480216577706365255685172586569320683781873164152678939454856620710616109512219303739260235503561452512316846150799848253006984324801221000931309757662396659418344981910856572399671431711534938505826918779741894303849478868736907602788496459361097041829193190561783739786161740478710786909561540803085944411360834853844755000360597180181046655126183937052118612784928567314572046877521768603980440914330590152325092882000777760916814725083767212229468209270327422165245013533129781015687912261550972005110441370817006785063810568333654653271595331404453512517804596448118811615297661116426724644472860822744688917402569935646071774500505531880425980707976528270480459816972361062615084427621191930144205823046059016547051909497641231947513171562637413344654805218869372407103704025887925659361171635718618035150496151236038151228817073987763089916920190670624345476669311104029948205095832346594463989107593359990816065861641782879495713080343674027333899769545221911252368080168064346770169335891749865174004981590026206175615210998715659300330287072226194723697513589980155737265111791770455437292598212928468292709111216032821494052933035264258095048599020848304521064869388692576020295542988730091523920557137859186729154406554924053709612463296596904596416077363873972001991183206463811432194386324274984415102211598547710175247672326523278646235997810223877189603615399648658777348599120149616324455640242514231133779856660694039805635835155509527618732455737903796184942598750680018924401462863156617026314731533656005512941149234975438847104378095198176621606651008304221903648339845137890007712384082423142002355710936767398373378584870240681485779990447408821870234343331478051108787048091026908921716843843868744455502007479171370251795417098615308587255716820566569538692935236559095314295261174041655286147687573270102786932884672854939761930155651592413987249819751741707739919430197740016374001452135154177459558199118163425332889072914644207976865622674709518602685632102102440433676992003886189576072525335328811726127153750934105451561013747309901140336658581624270754410600272306664174055611078647544437491193784705580627523625470448795744728517652525366214827576003090811169734743241028062007317750485097641011391855145332986352595708408392283969692590776547015820010555984250319556400120711149465607718496281236938135470284749527556716866805714123632362823468040212228333970036231001580832368125489922339351454342220592048927547326394606198244675757724611519598271985110706267753015807072316441868218926886212104542463432542925554412461752494114472979123006979472682664372144356659120678572686880226967210173006218098351507672391383847928827657763972295200889504141497998898289585941409271994119105442894429046842104570249569262020718876531898887293527985509161672386278290721945496056464948893412251044937944838770578763388919352474403426349482864097597220919055669740220593141974474193715066123671530888169092934782581630104089764818040402703228951593577379116269494821017635418738943175034809894442227666286113822373151653858705487238616067786935716844099655473144965020717343384933620022136707085043493660738431922952950044021543473194579014968522708179377954570745364637346026506815585118849541059933671302725590054201123471850044501945098973089877301443930091163477638024247314609359900177671254923295885419024103824380925452470673848106041619464638492519289360320831075340721102263305226622973968533507548354654020004066627201313966722735986121140454626713032127537746870457672678238018238991627179711839403546689297173265047413332264517422549394514790365218019215514052668674272943467007351172815923646457180458022210888757974901314775116954472691193211376325991498423888428228396005066920058096340243626730303918261898311696056283326880816532511237387083212556784249676671122891084555702967659874261486949427871069648069303471256284978429610152972941609104254781922075527377145593529209235911483120932829995188594595495464054216149050374473519908870038825500272289502325789348963937564163189339357716238096684837759072089696601746003726166035954169180021653995265889389194930001871978667322772733075515702934078024703333300277028317448643992347214198430792779103057011002310393918626982443434928303535676667630247738884173856222172306781277854678526311603057636678143041376872895981811983531484484915780220485221348484019240670852253523648337207893715379213078604078482306034042280257277372034341690514800116012152229148128252981552889565646296990428373532394093925243193298340554160169892994359181641707505247535286156756501611562448297155759664456856456850213877801581650069025693933690985845093594156265914931777946021331419897523297433178452864707630649322565809122624993677115074373703122071900512860420516032130775646076543334988459797417764936440117119097671840136628038605573405065993057898858398341831187694815395138628227607134751228344929656678509157218536757284624721973123448764818663338533133064653459281499003555911364298811573324280440480292995331927302635028590816146143390362386500293484391836277523145419988566585135381209202773226010096234897591895821147735742667164438878408284934239610790526075047802110204178109611182625174797053631087013018182240085468415769779943464408084897707204542446217669317706171186215569678791029608878194799730057579959496700353872251071042927295999382363551767387404118733253193276391910628765544260497403046253609686968832815670796133530805741564366123214855418711880844688063742308862114080963416937082238320834096926443634299743443067456939981103385446497026941845318907198760097938981079443673453409172865770625224775897922322494098876976678993840736437018418241509250859762480171040589226465617628914853803600651565614366459368145746836530543883229737781840209250898010702259533087663147754490935682388578744476053712609708647447963978862125239951370913181212448874417792824159844743038277290327303928158889889091168268545096984651715388347926131451813893426303367205308529794129862654186058199020801005739818444617379625497873559613520673251022729007992710709231674954373456786837187529784814243213199517424272242628261088533019217834557144670124629629778087076841810648951515362491898573554949959193559017656202552075240576220337264605816618494443126107314230032609941275432867113972833865634832573610357462566694499941903252289484687718373641252840983463276593134333944856473230484653969505520665087213796419022897321124944113175173952695446161860123974510393918095130875100578625016931124852288000807531475454002304839038372957928625373706908887931047196181114224616439355336312457191109187564009991680156382711685686402614875852001103705963730548554746612625064880717051117961527068768893750829899366479234101925126935289683553166856200239881554295229596901273506658218830705710083279155458217392644584000295800324346862816829816039166071141587654520287379545243980013323610021455504959300042833480805001100224231548586717282355468208942091298299832183306730540737295018208112846285716454517492953164114639343685189111869477175519228817421077447434790111735587047048529257581853365673234775197205417537094521552979491760741764557211829366728031383687124326149332478173462278169457675735924256134790413656111082412968781391510096356408131554573406742111581858932569257300043121638911694759296310839357845994674260499623363493223110027404669905632381097735570349157664175639121455338428689945346708519834373418595644530179192571777916051044959626386428491581035318221424402889436068234255484062653579259535342226606817691587187454292895384512539137332375554620233104757900901051983393444495382541458165205063965896790325888608426550557095440667254926727894046914617196207592188571855268515344269726512694167545235807811631729884053536314767659910911927681724880780186448448855217531391429694554060812632472602094133577793479437946503756468854040290632799595193891574611993672557666089706512048084394604656249445904609802757259356702206688570930890083226599594660681550133978867344533680973284059421035474342776324250035565000483166961055169909350070459255930779223557361160164623509601213783523744255767924624737866601953404337249652625461880991624164398147806798432500289214654448813477226430022972059708241802418535085798776322623588594868205811095249528598868049790858034866231474515887748643636896733087566115440792449981570296396212834434227962615712219732072881878664175141692104114509902164327420532478939251571728081129437349533827754547980979299768725739516795843228404213294058190674087417626246525858146499506768115571319386569118347189464000184428241667063755650803641593708974437639298035649722942176646460344029871346720652448331813918762383045971603076610506038231608126880768712453834950777703026982799275493496358833876475583123568541084619346398071024051582777175705401393969968747598385453541710568304048460410197826671093350053028136781648164690774250597953041384739451755747531377859538097344518109846205738253295402373353698465873807585678769683880048119660680050382865371314712322954952366963870102647431453254776514971300940569026328522155089194526065189409321831014130619795166365563438771137254446633945444990278316489978614269728724503578401234601760327078141365922533486532587190692896028865553501646128699755906359594265988820385581318831600998711264910190289759327647417074109163829427399358091064113629339105406101613364254310018324966920177191839779299679455956775040946704533761797731301549517978694136083220018992885612429614325544961942387488966772255560659750330734048043615496349233617846988075426981929919547989566288226382088353149048512801834940217689611540458961545095793069020240348545274021486726582331206290873636056647871718799826393490831071497470856192228636497235598791775303186998845209047742283687489837391467922961646057261995578642974041899673003684423818375663570124587946995726237004910300019615904261934317321197851055262640809528993787857036768532055324543069562469602753123849388201844611251601821192939863943340945207740285819033388576669003639709825827179641848592729231424802947946175760452228714012522246889327189636232953628966947181391424256839578186253242216796582301572202247113829086473568081756959096542393176491515495845138743851351466902373618566684370752233717621622040932598607121549916776292575005126179075918382807665170289660095093622431386682027999809464970484274655278837012525974711230953074036431249482171193677684717901003660066070560285225378668654355831702785769070044443063286237360775628527162245143809424239168600288375847412734744531693055656009375907561093397373809752761822680596283973109663546175074592818079011781341446651488531483561382045037098324243313718477237153200257919526010469353353749333387822522986544917273410413657433327321157696039200282378447801131451356987483309183657775464567059409662918186139350111023680119256919722357004249552883036718001918528661349955071708046574411615282396250683542976407984704676834962609627885408599521830528294414998944531042034726234908430288508924215134947373342540581911376563197868415881267069375315805917129971627291227951087559413949563264063265616893628870654316804837167129772396832708097511156810410856708825296246396450710606363881989371392833500752359737093075412777700507171882243898285751755378823371561076867991523434999454644050116784850042209066979452395857205565779284756076322592841113730990743230500832088433201751343863861028385894444429341264177867436717968421044153385678308325046535472671676220740292525620978074506496107834855372756196986793015157374472290462472377944215858890596641062013341010015907507750211259578358122429754391060548009208973276035187278291232877351752236855482247123080047147202590880473816392090617445258773478553507093380369461343790653233256944117715918862937592236729706268313493698164234731740096345069225925724079360312724978742743247969426272981742575069009453762158243642381066585590007762162252311095660130261425536167513737225348289870310187751524101942876694726445835996253261981573972162042920842052125659732205736945067385679303058481301629224779253177442319757695879302796198213698808224237122863305595478163000647640974736527898181650452952948817670963127678145877275412457255863237732699371373635570275409096641401449604969804587090969076487978646968499243371388512296726846873001948096147275057282171386934382628112432690874637832436043521183074097521803498294103270689485129922876665587656811147031055867598973792400705209972763537660709891102455299114051180962443652246953758005691805457797746087406686253409805427362438977417325955625388326246171302851857647740837356121169462647040609555952675378048296021587563533660013659193679296011237530157551359999292605135090026413258528361607162142164070579304100025035954799759199071543047778459331359204931897652234310367400171848881856398999042282604251144823151504723199279961443274126014325917520162111772609836189913906532320733741129429066639504816676952767705851321117486725406060034988962437177219846063454910080806647091661096773861297260636384103689466293982842296788885654787498749529410972949605032598621122819070567481860894144563500557101674292290034164587459682583950856650952857562020016828228090066863376977218312590701013658103183890224492210627406885285797039041531344227600349614765533376052066453628755854400364179730322989574680248358848876771775142458690711269509358813211434737130926497864776694112032526020429019549865639629411345368039764043510399258018267930746768407103693233987858674859372551661891898817547869612633201517643151613854028277452252168097467154116402799183030675114913977858952244006529756409483012236708535365111936226273276057215292816556463820548157667840873806855552786458341067676702807663410798488901115757777948196192102870983550015745861606862955612204872468254576596382046826016286569825841149465556342404676520418351225974287808029111092673585666661180295215250049662838635070689546087885551080556127209612120820093819008701044922592874948544367478346242568080888127121030674684040593445046089013165300867264048926543440879714378711676091444167952822330653473329348040999733820760700311015136067751229071924797753186242538383026977535066663098229163117972530519367592379673256432569916834560869959097184993741926551273338740546638076502671061678730655019640270665663782167667889387939726413266937954029917364463849290144466444954569686772019899700348126904652470570129399342476426233204521679677476336713149910674848907045753676170682468626780577666138454728975369967464383342730199520582549146202963773273346148650485502621814754062423682262706077121753509707811339603239900688648433423378828921450604186457183801706832270212592646828793318611764176396401526756081160638757995660664745020216713291290965771687701641275406055274444816725333022751945411850641190717244498683186728037023870181597159984692293645242283266682582744715504476092307395828849939247222788850505481268663982681280212297053765810787403172848457690826159613031476316356503300659818308454652968681162523676154760099995926468688782945117555678463240978889694381610484804065714047298926247714664806578000832829796243662684507067753457193241075849980940552392148475215678680504986479773325420988804852460947517927370638242086007300587768275296417877192939035222034612365310139053616084005196643076739918635695095090469599468112815549397503044949002144218493100517831702957706483030150726282693436419690168817212100335247055075378653169312160423050321655982329672834496311265530698384106824419625698397759415160111717461169288020661598055555699138777142237839387896080287631772012022916275363379745654842646082577541647929601695539973782410975964552506928104247020110180336943546904921909104918747294311126075222679943116748418125852694787706958852735152283649236938521364635375343894865315427646209443183841637989698068397911358493112244130497088685508427002970489469911012485523808267296376866517253620598920874363425468255610691982732190190358248413223086470050840368680059390073126907699173524877710823996716575856421399533886590573382089512679204533555787548094169991847490740247375446033314862337393415526294101387607607902695833528462908366542792324072680323481843600746323776783573778948391968697324765295015847945488642095952376062498870737479441634069447361614692383824878933565885278905321426043322480143680596159739851113975048509941486914012687540250183483817481691841133416768444066408099295504753797418448410739311153299490617698998036826502188251842921503276185871895772182272424185444417918818719291656208672560123602034932737804269451117082428757682756536852220315398920716799588360310245635944353769108741851888345900731958661666541331533763854796584015161897561506972976914853388040924366821001321875571979411748992559899451856062710103330814984028698869256803794120104598288925051067641304191007283649622017904141980851871080277466297897106008890374783493068103172094110703363141919099786309305308550578124907579565832683690271569284712120810055864284113561783816070540210806717559134412450625189456453420096087043654261694611817867867047325982225192923604292889720410743631032212422341190173987227702555183826793795490927612127003927041102105635345273453241648960276507262948743400406289014039398185836656338652319842254984857888217938275408964454350144495319355859159012516738512489250646908701917364625247500967885253150032135836669232060616179715310331009706170378733739573040940903182204047770576407001106068239615723372464210834340703945726275984052693985367829296919524496049291148669057207255451361079431389206793421464183111840075880804610691356875258656151532257545742896143523394954163443444736627129683224986443485105242872081798864620247839350641776284896232228858823057490148289088495940281692057117827545846221080996742533358648497604585566734660002292391333320999120328164458357837860742250630530830063505559043807699755390759631352378138125358750286184136508434293925918773964946269694674970069387638777238695228923895286246188512323874334593040885317905156132450264652423635903756839003236825818828370918788234031182556421431353268062677881358040370957680115458398586675646634075702195453571782212269047613312355436962223349580284461212540058144334603568606776742947942824062608282245264797878104072699690711807816209405085329260717464727320753016233123765613705976163933442836051852922469742063842272732011228804016440369058305374482798386863846661949842243444034637903125107378211753483087843969273974035360936825237384768270761487834871033673732434255635565156956294813391527933394849355678043111948044797460657089439064577680496049634912145510464906021394810440260411657733339340739552291506055824671809487312766590388891161806420107704583253438797765790245391588024406791230041859360516081016035897092591199796661103217290474320362757703567574423630138311956248312097253815455009311392142933899687955158335650886804634648278433384034733948004165689648076069986521348459905554849098643669614321196038989760759946544005382476111978101389723545443671314774830063060305147423617399292372510165524540950539225006524776792708357225933739312407602985420301584181903307685440035867771403203756176366744001815966508887389704683910112706029101547145712506306490697793746748379009876633946226106735518566240633331843594457238804326894278603747305534604732919257655241367088103559702957433908778490517855638592784921135208820572360572760553344043769360234192344178500771672641365215578175549042520910740560556720823185295270659551264637480900961022500553452207281027962569862541276111426856092323276091142048598598281197909624902214206182152968862301623274049646337083569039040027959263904904997933367067692576016053184933833751088990933645988149818879325673192630465617441693486696964938615985206532208438144346312605632043258930659276780789019101171611218163803336373906259873269458199603530060197093898206678475241509527260671672483887682868247378857156301210812063004824337311757939521628734779103171927723012029402464453733872822667965390148363008716583727452336801954478454828990984174776792649622770555327470099586396890820741535656638482639928841643572036523001178402850778018546493833691336351809367720641461838486993678660167907719288457647324061405780466075068639485592941901517976433954588708338180369088087063943600280782079414158634723674068555502067927086215974719448517128440758198856839416868030247734338027590773053926241503289837503321085609019714039461621233184511213267172324947730030767024088085223820409624851117991969918401030264243949974351973628939684151837023337031446920065862254531736090682305699952740153727531752471875310664031617548951265174136977000915524431317622812286165652291000017975185726391446811979635928893375421230221470565183346143793559706710591019104237386169046574636332913641508310514120552180131260901077358307078857044555075133614914369143614791422697791796052274589035131148600186111609480747680621953523822142849887367599834267762058878821687852712147027922942885039936473067219370710760886403079883664075135951783021498557191995598180138079393503846754803586306895140275294724953125600062144604901104363446705934776800440405767105190007968226885216385672293872320126997452028017352970211136582645679951825322452506503717327302756995832445722655120453835391240769662854946558236589022895283283874465700036203745286657306566899993127694035945771739625463950674476970335868332056288656839111472533896800451751278128735960435946178067478368875487117434977049304648537629133035458634848514482236665977693838292353790424108786519582833653861696814637178202780712980777304722713437851282568283199239134930420788459236197869669809582293482211613288471999433114092853328920681175746714650902438900148479129232582248651933997738299112757667948159797785667660084563734540625140305072756583396021607194512677043619830516436606797563210940847710412800611685167328571146170151409101490782425977986526349603468334200301057990605984173212590627318580692613719180346024357126801086410957829923963882177656109951594225187720912321614673128243907716948927373787222733751718475902370471204411701107486060387591110746999676064913436196695186527297842253918758110777234446017655714314467648294515755349076387742808433009336675789840465007025564173832769040514621197832019335642330879958522780563499443195185192893200005016717224909661101338641707422285340293532707225965291591096580396630089290175984496415875992589611002772196503075834087953919162449755190014623795184062882175825202746723371691161097390992808862971779904546279000065940646455552546388627648881081844959710093164338284419379648467903535756807940584819220074252617736560749175283917529117830365714218439734944823741104356772223312070016847981438669099381480889045081324894129105198375912559315062011127698567046469461521244424828024795997088164572975562827869408146187228784889874990691993962203799995405370332159930298069282866061964757370017100811950766653086302880693514088846058278800173862989284085962244803964486890221170542101844690407891731374888824559241528578343068086765726795354599723922604620554030854212014081759463987215299612428477525541605839411151063369456501894096741038832959224514209949512755243436812355967577063633258438573258063214920560532514687415862458016385866244336787292865995860411062619433370660860713657879665756274465913350023330616464175211199484874426429166115370083821461667430301591854593977817911131820144357698827246778059051670687636906662617119246080031163961636541229447679906650796794955951717872037553677774920940314914646322920074375129338841703922375151199382625844998356297295538378615514495934509232495518777944633582710974802672216711155440366288684380473046175460448877170458004294661441810347737336266194863433987612162801287999590833340480558328962885808153124352860440306779395506985777881105119238733554809752299247649271583869467145311114691876836953723745054337344517207156807809549468705562488417774046185272431779444242734160876522561094794888032637413768026997610331460463680545312381159745204405773927010568594468553895874299433140449710606580435304644956434636107567719904413717204695042545881517507876343237810321589099802384002635251404416603583099221248596591623754162060100209546130403582876448733938669359643142779122004473218749475620762028075441416396850039720005302021530688321091881345981970500793215878527503324041328842011587742535591294415991623330767688411455729183049917585378555706546108603336689290248620243472015045219082125979203243167411818376447597785349893699326549646033850999131607549276131958934025735184817412171223227992972499323190575849199697062907773443482200456163400649111901557539970882360264139195784064847469269992855831905347010711063333962418992528040307715231234265575014647145800483079094035917993878705708236943641465529157666317689866694193971688771886045836692180805648947622308837866392452707461864943074925586821057108557486871846388050038213248017378135721044070504656504399404315368553703431916652269112129133942850166834856137921070622069326382489700229533684487263408561148085295405875365276829128801626706415214387270308893149996675409744465845173957789052549561256642272854955182752615767844744516881374742240696505632562581780194167617765074638177503822079595773302825128507571435926067815877583107008999917524047870231439893402087397150008437482696968688931486875942618054371424241286408309098139185923102931687162129191057534236110530628048008686218865065992234324536896399879960185150744371765101244833671284006220432033358363979299622757791822063357507854070969153264209577731494976154459203013063778858259599017408855079037087117478201308594287329390757608418938576338928991135359599593505162570317691843208103084320433089441007256846691047157323957556723628496548334797355880747265061911807893009266349228819624618146584061211621467954263219030783248395866219504157498981311979381297761216431324121615567001250673963758267001775684863815351070108234175876665944519428923726472968923907719301018437575095422710647547455121662021276206739530817027574289086296466428495903089727002664583813449189687962594268285703208738226850816021055921633238245274079199219679146402203780583514810310787256437391294958823720970581892961075279963795072822102554035066362456305315505148962322517587281109738373215494243619719755343166631067461322670375475437280753265911475290777741383594403022050687074221119504353100959054530595114772133246293921840405562258000918559684904545879955573644512671268328526092330858399780382109404998359376226691028420954443267046656036474630310312782915462243201664462298826866190642327253590048960748992600283387089891886055667798208712882225371240390499219429479129435685261493910065606213314443464819729112349534209806432559952108135926541621499037647373394664456865534069465501790117179084649812435974152591794661656318709538175288080493621978974613047273283307099140392172263117099569251374225517192967291495489777960091992993876836787876265712808853976677918211184777912444401620239136819048393441017359041693167791873930141942645459339768187303579846190169947431977139209993367092942792775894203963608139134191701943369966497230471745485306572206675224257516259587241993493018664846973168942300923326717488343261708500757019658469834800989259465233292675562155775165574780816315554519137306925840168457265962641423893636702591624231612165551557247186029674766900484129077100922735990606582568617402224900048768086762828956915389197118995758996097059682035041822751220554933660657792056185229426862559060794688555235880076561540318724768805184638857504285620568264550476197850868747189945028682979116255588803686572071157295695460854582535878397532340756691701407717387816335371408077186704850138069072575673260283710302486877121594981247660167233139969350211358778721571404471850698433360402358585045874737200564740607263204232283695222869146369261841023671818199735962473308505291144475749942370294449925224167749816156992829270514824404564986776085334602482712681489570598300214869540530666221530659174411366790622449326033700488772742575062861040850322356583895675049569267246049671184127086049529478629123389294283826663074118987637441057465827334802054441728943579785102869831362059505092347915220604609473683106877941695666694816850571078367128504630890349301382210762927274459142810002079785223306267994054052368128869785983911158270429998889528989706750809422763593342828795227915239055408613059531157121454121338869100814305701971079354396653035085441970385075306179635227157316072808852237835073121543919604763409015374884050614482987266541824485362974132465736871665389861837300337846513644550699834121874032517442335610516391931734209709562193150591464922926078139269127330486556816626313606655201353812198824489956575855529372327210978375602726860495861319922074366396416982355881303476637651417254485819758598058547318836221904567468022845268268527817009099922616675201213739147949496326416150910625786527385491888949600540971305564171561193475118686694495435901227714611668582678106503555700218639079746850093614490102588855914996189662056562376608758664894866324420713388130532892782880963889008732332092327148680680596962619336073155348101973355753170123534040235331001401804997977806678721067337501455674481321629992852313369031136471351401500270952244600635823738248672769588661835335484028048643103877244790044277843985613564961593136250258572235824008915837360879835640627241781169519821992991658572051425178771811610430458808497132738206814623706499229953555441493773257871442320448139864331260220726274757248152858405273890176290494626291291146725566917685071927009934902285709487735475923322798528587547377797468999924652616504923083173820284412255660756320926407180217468898086793786895318737709729173208183192829594128161936341165608853793078205355260560452549465308190373606470925143390396744416424175820796765502788527915203048116491284679663405068442417184387424737556644697966130762080868741060357923309545988602486911505875250745959347075587247171815110941512163437597974697112339744686573789498927525876187465667842362980770000057899816218439634724481274588231480186843056540837343027096202838433410279842981222564079778409379799015935252175851252189800579660963452023233039600338557359700522823753501193085896052345363540175496309125080914874454098607664504560645538197632641251126728211372993500160309146334626486410212060517846537772291443125812013548573426623545938615853271032938367422433811298294429416472224843465052377973123818798617564740002847287963163886643325573717841217836243447889304994905413349095972857513564193197516572383487568717746407507068165643119572993841275782239558533449784078047859724587678912773374471195551599066320385112027619006338522427291187737979523680224123035990026657400674368320807549822686778328198055120835756717222266454985127136436942575016961453562451281545774485035892246661163136278504824183309265207338997961831886246736415321027286949428256346859852737901323853804282206112357274452575686143061056016561715482197351987048235502221504104929155989193780323917709697452011457213679055297196366722662111313247818077977660154247051966905244142164292599911340976039876221764717440017141635909039229894357261992120936128719342531705856553903381771957979642892555150210078070305456362544215372956063743914518936408747553436326483710561221548420709321621445190237839929525529006852271650773122246660679888420287093749337544800930125016266838833778050411568829827212339656634575916744137940529846504081827282813102335540537765291660890918842701772243869236112004553905560492149066944059092514783434355619054125930156612631884644637090181387225672486044004401232632217966929119992596946101000598066824942359017834593046352288017726782765044428739046180331731325049177331410694633361914267087903154916975298630785309001818969519137714928431780029664382496841630140998525028696168262416446347802921710337486062479814059402364375345526974449527825400772740649226428891492347628955329775730509667960945814712055537452839673314896045363799990925666662254682216390720091859395768962831916743965102828914392499162820220037438090659652666816649236106841153990813439899637438377857975341065649069840368985486480389754976146758176829375438509829343630901318315450826077192352984139631425649782741178052498655810687638972747214029289178296924086818236779573877980449588233146158552903265869887938217567439393059218774453559938987159287617850275397225941676945448856100987438558126680536559687984910892121644160901201816348724917274136256067046364087796868202536204137147833430110786804496055859083202706674449042378378643105251037103103781161391169199948137469280023090670058406935401351826776965451650624154476577142647593023565817805372587851088155969544773842355424451833876696618697574501545307278932258963248205340950182699712825588219437489903879970314173889276192728025781552954860936970345305902169582860738787734900341000247441485983484706715879917734077052238266891203863208490782820640524453930413848630288766591845869093089649821433945292725151974135096689895117154037791358275496222740300843889072511108245380999061538970362172406183031827038565250536550288253226401446766566499455792098114566218041414786602296800115602476444022927722892197572511118576395801911700828811828335583917385759413263115812082394289484434365332663266335316247723987583155669166542680170762923065815085184796283901413113639066803503719475195684538249631946831573613507660467854633295951494039753274891609844535563850604142190856538390007898662983927581751474929702292513254066182743781224393878070882280078554460804718762585688445511587071404483905243144381478453557886230021927187368801928618061435156088664775449654889879490277080921113644184352711871004933688537481818135089060222546162393242753740170766805222392563651786842384474662704722777328970645301659025326382981267042582608909548090318506309647644491779157810418146735503793968183469865895469355272475794257547103306616777927800796960102669052296936575227097248577780575212369774948038624257967634765607368176695211855148263186647952817463071727423499190124405239868470162576398322404694491171172404521189355897035309522818787143407257873785581077552256540315232908661173488290778547444936678724390375169586889609357458307562640454498517469904985184625092897028489009550129274547490178615927454837788873082246004788877499845358240613482231964619298310142814552399572142736995374465288615860784649372467859965704918399174220944113483372719689583272191543160898100641524829382402705142559044333101157665609560894278260700443185513993741071177975894814987189948431098797705165029839592954624352728816521319280229501057885376836848418717877652157483879797078419292127193612753505355293508976227972108301817448782392309231143309985937443042005817088339303097761567934177326640631892383381326016821945768532907961935344431662001881386214196308325675887823515997267089447108564340531298214754729714887225463001822035393398230144413609735097529534701597944626983119317960511651909049870978153303737365801408580525732632742891970607141234646147556869137199283580134584541940724644880015524473921244841433578231275701110445587805916355298250012769470241011085420761606206695147817089678186157805121184980695386550159479604618995630061323414007182098620224360360517451869795827836289087718563119884657993119148490653957258533008949551654530428448822548735723164212010454251241769799652670136999211872930991496651934450379593622241177776682432869719251771636105438882076804194816563302922963290200398890237673220153821189927474033307503434453401383498775872373504320123009973833782533995097477177399893176838872789220038901470526014338160104810346270071001690104331642782328908572278262991459648994907747356722476829929884560842603394185005440592449187463214487880781376834682546477716157725697806753898243905818386303557422269163816888294497010689683275694960819818142395105171149833673638267776131880382816659541493298530250960629749914528899363262957648074619792774083797290306010850249228979852099375008149033628941814499840314714438949244112749694455466068157488405408289325249941800176085993166087138568952613328011500632848096779024476569722503201258521249081330301450411040703458096935876371240582039342931685455114327160790978914242771868613004255542410882662671061634816443622280143045611687924414401333459808710085061431156718456145179944232505781016404340841304602602284803592317611816304468990384872483584946098938143738857785670838474400744288886369866112413103212300870695576096458106023211432192105935314933317944349422775766402260237326427576123638944088326999871816963948192966787528821445789414391578351277350966994781619668392238095580209251071176668246500250549956766690789761307195053292987677695247265884452488723056655476539163974289437859415488683770275556862938510297028256121083161313537867624973548003992270710408586918732976451876053813256412426653835124755479162157275650651496247223514978942659781181074059053930689949035494600643639737475415847345876128917380696634602540900990582733740129563765253514302508615687997665483707589484034031980525237353963135587835371682216194601088278973984573566445897073825201618745989477648560236156034401688172993645291734151855726997215792595542895791571955559785763543486291797863059468048036761127875019909831708288393052278298937851307436779171858541786472725708941142338452989364790215278256362486692414174003165940734253057162015767624091078210062210704873404141000568865822617185211715440601364916415766267342053105195969800852179593702033236641008883919792445325020550389393079602775228181732687465323447713366784886544383832932649729017920756617104916500296092331140095817592446915508223965290595635793649082918147789033318053757780299282249312108975702185214804576379646758624108763063001991171049222161979426303069463522314963960793795479603400411907102581946811721619192651619221171851966396790520416797444027956334457938356272761246580100334860436894183515750261032910866325996844941023967442321457952463768448086310940651774870620824236711747811558714331604917543809682357233551602032715817460025027296843448476543883663093554431732910633717838146214236764946592457054617778140859675687359755027650066711391680592346275589664840753349285369764089609941543099534633650556250967769371900103589635439667957335510916540792432838711743186375200772278817005742369782649830142421615884594980880206938293408616927818382576507066314015218739789617536087733012675034276261819720654469469697707205810145543495340193536697934230612968589024237545482988540705767488124953649013226947072224379322740501542440656157131094547401958779180466419252516681709800242109933596979763983708580184020035212774879416501734732546456884339266036845853694523243244557030937430416340793768229055453801900719127204099863295287944336861791123641657324005108968803686649620804967194531008154701819194416182693944391463450860259778549785683975535808383973384276918235961009524017088551033709524874913347126148318198766666738247431747393084078472580904283729271585318348611672067235984907339436498672319683540555459682661442312556420000710802584973017220340781894670858174976782961795098800545554696079857414714543327281802834570982438387350911422547939088560351482709424727930982019979677693907715457622641614835339383911904608669785815298141394062128388347234943663816103225569072770422223889905255111893177973629400910432187454307700148996429400178899920871554692301428163198630435066163063143972629046289941871003764237480047100270088499079211399459599393664152071662531374011530018158867366289803452333009316586563371393456612176816211305516043237125464527846493677285915665738889144006911128030429657304314046552489114169230542447575597491481068984804035102734605657614019106530305297204073924466239785333058708308873900936900849060862115606098303854283023865943475303562424912438390655248567761160210972895410133071792522438090365753165328031607074138690369130336841559083604295242857601819703106610162997567042265530394994848864399752266747190106504712821912183157357925970654465205243737283485332204493015790617370786424423583828100001650183589648647856528459166731848052088577738493186684808117736806347934186316618823313092928819748963044576913805741128779132613065459732411153097416038981164403479828233134667814343489195065189627866240726578801794392328670930998108192370246745179748915741358242168823649625868727530482636742774016603191036166109788599643755905634295943616719888276433924765325879605877910108421722343866337272144393991213781846527665818023301517251859758542673153316190174667746125793698389092126784174689438744526870906416350515729153562410749753152255173637648302838789738111760456248198898525234418451569041667616718516714105452156557502459385252430357818446772658284672367726416943534013514982700432579207167630143534503131305655272643191657298669284022700907275056418218033243210581365981460606016610795093241905507543141560731513482486750855543996001564715624734733645655855453585473067247301275787283081079124457594626501999290168888322971790406774591546844188379096664060391332222123889106616761754339686182521425811176788901474828369759973426191671828547273686726725374530778149936381744794520734515262023626357694775083730197939307686557112016992457386310399764676092068774835816825312737539021237311490061950697944212052306559545027710886715013494058134147084832974082401523244255377772232560954253827588684160668622148113646612319612721758720367642202379749080253915657422198232588744916690841535185309829690773764647535989568557954845094493034390313746964597565747214024434662993327879896103503838998765852969742581423464344698492349652857582025345545660614730585277975724542859052513874133120423591871077826706082341267202371510458111227696015460700635443817740995098636734038151506694014729695966822221848820415671440351375475149187567619452741424457707594631968752875854036312429414352422801308319153692622467773361992613918358039603687010106618099941378990641816378255015926032851211560797735223340708571910957020267220141022416621526486396615642363936119872523983207460676937663259646885231415698018667553342650090399697555310724410236506382461351289171951548190957655263575547393606782732991282379139033581978908656101012958161311315596364811517351631132018130447161977715232258674333016240034871711468151295574965118026448449085461343981586993746417826758996110889313827675897289460292623798857358826492977014549713077011982015912593926150038323157957308162220606726067654139400543257290513111587144807454156531793024135674835297115293060303730471464456727175729423954605667953169183763018131063481704574787767723864714411655230370730696470813543442938137963469403723253914738634795559199533840979314094917141803796905415937991041886223899179476687115281257965085526834253433488857447945548992016529723380516777136644979929348447824450068915778612621728207668696887359253248706960432516807623175109533775202523756198644940637605942109387584156364249628699859246239970237215241283057696282899603986030569742511468311775205782414679617956523306801969121756412601402278517321710455569416056106477247030284482848959087410065613993096225750551819320430649921015243154663761115732789565646752201157133396322578335531900663270225561714768487555599729145266868986669153161838468101140127294550364121531151950579046696630252634835428800663383174309586602684918774510726174143729689537257542393623804034202761649246359650203532607771230666320019991881672712354547599645320338803990863025856141698171554552751678863215137304776121655955757764364823749902285346324159735794444892772402042403440281291259896902211179614195054036985228478028743747622202401174315518515495161428267776124171951522460088391562809684044611253842728628211948112500577938200741707464866142230787662791357937312399952653940191711646518877962719825974138998493575095082890620885494667337024336971260066504337611476576151317672183998508873102509343628525512677870386007884064391063192880543118831009001534811692242624209921325234703406084549775132951638590552804442324597402449080856849959561526567320742537267148089864873846463832915783148874989165096930612252769031717051635967437852064660422027740081224500459211931367725051166214280707718409601443128557944692837990599669144206700666118960276021331433607471067986512685956119398750219149346427861273353921550466476384876101404678541234727863432384107333355620690997915061231037639320967883325376636232608632480225821430353343965529981164629238254940034563021470744696287170983570763060110453632546138377525656505613469728941826704112105657592437985729937726031482438968928058746668910305497239774687473058281076610389623655695988764583111079313852677241009509581359034849452934676853538455212751009509347265301133135351184095178170428375790502709472755966437143110272978114800557399507370184218145768645013613711121808890700087863297146660369381420873663191561363992642498028506363583788046630241653579127247601690664673284724034409981867526187531733336542977837773247461004433215566523608530274169348631032992525926780211189028300038896011147951857998707957225129661436026581280837101799690220506406241758757033674090502185437267251797816350473256551993926065099120640832414954302143573026141729056304424467132542673941378571641527493860772596823895942907643466586087448767450037787184318475415139817376894303948534094019751429728692752794229525658678570162342017190308529916630696043181615171530539653342869770128022631393710208945308767595492039851957109198284259054292655122893219488273098886343358179494945104887511882520985699542974157710675746756098295268228378143596389475667275461500581974113423245422001196321949935406810726562957121639804915742344260088637629682257328750942314690594786892990826670816043446992539412899581576328991905266009608815443252002263714223856778581967750407655700906672944401755390763438764913696631042206933927827344390141005590103229218273550840320356093463449442734750387377138032353700736201082902772607799253090032342762029573086588832276828023020572619877359727865814825264639418358198905969885275986962731314485618850856816876781923593650747953502239444185223600638343321857700860240196600190796157880057847660678111831658494996992090519194636760192987817701915320398088375548000593004454988667470278084672871453311800394997963632010173196695030696456592810073555803500391363665688594541495535949688157830339735043082707105868439067914880950919939065947501856423104657598509381671544813460952753640174762459446220992466715983226545312421200702092322680856190174929372661534220354010533227253195843704741316781048692456161061354114576339130907909353688790845738061493335973978772075707877860895017692229972058089012199754971782389602901997234568619002919287554498464131317522750287666054174362090105397976015811593081622963648064957674944684007291763032199473961035302311841939588739860047190531446745947287235685035457597099573203347654828671901278769648865013711035320225078815422423809576390276774552163739701295399819947018175827555981883062492041714374781911834847181582229097925356080816699610513142136244848002142275303471072004673109328775497350625452597577707448355843348501291060265329205333230565842306879601212993479857249172428205741797905633237147831346177701074679139550082940870002712805130751052534964536259477724228664478675963496311587414245153048638551563182712210170616948934971408443225834751953929186009873609068653387306507873979773922671808006084857546089115497502878785252335839940440679270247183915493144905519664606858941440248147439986511471591138682571962024381183747514627996544664465092578361780873212228708325313920431457309755978331912070246985752007491720798981237788679000275983627411474355921110840414725896180811064143853760828421642281100802539335931227094717147494459472907052431908140744929123083650985533196591736756081760564444111749638587191514580011078310316429658665928163942269717675186652951927132300323689275032895617218506910852303777992113676420993863694619703361925026819534087315957204428085811579293280521041366184461497651383309283984366564886146961381308766941494579037156270839823721789756573186295786370256065198201607234568158124685910169049446154145230301659814345414717361873329994346349998301355887677995697206337402902135310732058403091280016457794558832951288176162543421936455621279510933983396332163433116794887899322979596074914758544982746126272680819188367507265566771258184072548535799692837576334816430230122843105829385202577704235430237983407868790869420797698343132968632355471769867875036159500531066504924317407106098991382968079177852870211060496632219598086031195490806509573212117858414846022739405543891384826348296234700242442374701633513388460238624929352479240426962673513796965306418516898672469784132866491168690294381126837524727540974327651457368829968802517393231615840050172960510869589059542083226436867340277775121452065842504368000972095775677570607092187432728741959201158310908089622207484424849453645082482244275317104439230985436243482278936370403416101728658652118179929348558677376224461998386562436537630434042488432423147513973220848561476465787737072283180588191067123860010127808202099622977822165753095825015061906743169340716056296075421674247106712079770606173255603890675518074275538727077772121908330644135559794757162449248877684270350958088788803079382713267431469836577651264107947639500426590313663231417288407288187953222424361066413680374121685384772606142509026886057484767771999862098321674956122195900537401701891784427531241660108669914537624924401936142700174253734892615164517626410765528804576053893573727654592692637270342803827237859159155727528376851425843646385740610735938210496241323692746289103950558546426972195306711505934437844408256029521939349562181622179676413032823078743880040335582874318343735136666806629563408693219806781881859537263859463955849323021492318485871672494091407674637991916843749107429452056730930863784170381352787795053930311770076451380747924420074628423260479340100391656398321596796656207376687422788975167575493035995073474146975343077286271564349105894119063247013310186390348796099535941365639433012050208352447515441656795395778842478652575519207792534046535401395381811328063052592441847454286120006496546502896706194527250584697461645119670372255455794979095574385581735075154333256799607234629162369332301246989620440979360289367245746477629641363855736295480398132144368126097022708271243002934050747388990154885036018107027351038540298502191979424695275853263322518015020842539154781667425714363392149617572141588102222133809218491084412308257589654804680838509359904085723635451821692103245548026945538600881092224475389163818478967134705979593552033899389069855267450963511519573078353375087031221579051942138430333132409143127668529748580288117693462388537874581793950785807701631449924358922539968898330264462883554752549151491361121806741623357001397209313702049221063654447961223555891715273423402732494976302242681898462180753563558645116377449488067908757233819927382641804673963469866753524585801262474074056273973886359559107110696558275571875829771651828679430706348850957783276536023301972782247803571169864136600684722309362017514569626809517103958898310510860200936995698479264057756300589454287698255907450081951264614168121230065732373225553537097657735802432928716239885598885604868322100068938214196776285857269450619301278259029378564145207344632256125287155274469917495366758751299763452955601528628542011928415948700684827356136046966641841164494214627634037214804465837001616713064426507645064019158748432270606866909700303325644761721704968958748722642831725483105196464637844116947682840153581813283408293667996906995240437604792111339956244642114723869205175838944871636588197286784828134783083433239512937582405881359781993575545413746894018593981436381441083991173762644135131400301997183113678810875952492385165411047297543881890724588606127429953433810027439510203714030498360430945796631827011085304660399473425944302208946127263752514146960914305016801567577661897482149117972672584948041683795034302366792128568101274871802492095379025521163689751593001513054700291487712363503752071779535680257645446052801467386670029737250328209337144170366800243442099982067351256126820590291039203864736803134322378557285593794884492263682919009141565755807644238381234193010926457112902405861138868490067025474467783893726113590303396962756915410543528994052843680188516261284709720562849737576743533756188937209712256619802717922710943487610287527157856105296917595515126172070808295318299745109109318138962033190407320169547803786644712432527019808568455268857917729629098674348774587691328303474171879182944833796054274666202645118559623004548173274225271035420567749868471598771316835732246360514750921319541183409387157415939549009686155206777069557181420893725380803915645369331909518590361278356585508051312173612191990320969628926043081119651297391296553581561237362587392019243824914011157676907976006963079144928956553384196471845532449870174677097357729655414985479151983262103279758483457137291270431826939470543710338093398789430537445071364155113452795109986299309060565955067109787821640098222988260057104094667731825500796971337838606805689503959706786161420074144962442339777473007540970835202179675405106949307863153511864983280767293765144146143403551557054405688861839581770484825453999429369735766378052957156261244813197746767192489054035761546201974129268747036353973597405208988392641916862268046929867827694072948562800155909150026179829301381024392557560059299339897686193305704191312878716999211025956894375930678506973813302450470692684309606677820526982709788055767528859017627318414956605802864766662742751852498536787510581595748831469199939115727330806508391713736200332562382932424143156322096394222106576124840143773883697335313074366251255687436872622672617252687313273215643929759336700330986161851184220538165158769963197704222169405137759262914687759300944964167373418912784739547096788942045949108421967155877632809559563337791211615108015720947551607920380858976052176111083392923719875787668896203598695694350643242803536613389683128390830220316070349797175609491800726938774560071657173434357090244444960964400834116415491104818154463813053579877841662966054645424630594624039258336320734995752884945091591775042178849194798206499597493520793476454761269263766254638466500812198065235884924307102192142197530602891362457055545016508228323937182146057354695341363419123652077621312638389466791473749890588815726471275283538813523248732438978859798427737250277267160022274136141998052324079275519097294383935189331325153154968276202451330640970377374550016280136779292572266651215799740809094762686584292692984682106578160865749142702454827390620971617038467402049782349397422647594677130195626203332330603036332292719859292749170965903264397396079545379932398134923164084454509041740013015037377577629266064614402386868105140136627684131998337716130418311721402134599320461280241012946868745708840920838550473577822107907302123786757954783853361194058246367356198087163475976589609292662464188484555567948881003124017874371956839166121923630095043134404417565693314336925626547280796728435601073250455215459986879822993056970598260671737802640045586926295889727510843644936893781228007099785729639115982528610584397648983417449400133516158524951706408521201558951949219812186708770051513195993269700230560920865266072237746725132331901016954875278758934613257284793254552294260380772538723788032569188724899621818670431176643791755605122135051960630757214742324541013054571994185379847731319635462663953422164029954061397018480354517311362384303855141753310468504154460170063735815466605017198819995769764559446749868419432299257155689220242257309618037275235384594764781496653570127446147547262217675514113952880893709026144335359980128537625239689408448181914192250375786390827075523396712088533663258535484903845087566008641449664544446885349282293373556362980799108856615156008168659986716630188653744197071352433335673556740908705575797513879889457888209490547039345897863355033886445017650704974074661597225544547909752112028360710796348161851626546103293605141181375091873108651430172548296074126458467819825288488077901873081705874647498732323255676220806306337255716673187404963328604354420576418821785809206426360444494486639735258727141254774598513131498213116272684437595604321401812490530063108399758190592355533971764268748141901978178441621260166159568771321737832972735101486033093856391162171474476638488478497563560239008962642605224809949960300260142214234880615352917289718635201458463479076750378145495085541456644589467673562978726712130733327721111712977251486503900524200456131581993034753594551655311534662698551346382253656042140350722384879220060223104649618982761952861497011969322076680675845429017046246312695270022915761369834764416067401775364784560189318136884942972633873330365364452632149613827870646999454760263086716967212985208727644231699297742999934254383720695281646696797872843632486178473050396253589845387027505927343647567393371853463801954318390360688287907907308198850081272586497276903286282171788413503572177177749371846881926454781197458200884959132859177435684218859116330555803802992075851946296922085658706879646237488584260487595215548490649882856726339677044092276881663110329416447310973524912029416698367171044238542242099571728586958772421391256206658918040000335188470773589486587991171127626139621383056597743827838882480781099978387484947212736196251148619378733956687481803415638609187056986828954211843939817200235158513345491809659206279672140593948524758463276503952874776721410307406140537644424831518378374333218574533224423917829443663063147667811672372562213443262000096366501771372454270441521927968521124521236964342812179643497877171286429094142119564450062018335976891283687898303455847401464133467626679018494438419346281495271677083795528318469244660793170478093214503338120298383451317438079140339650856889082777239106131802876215327843185666451191057360911525558340500616103934922254213022301878989044491941415026592122600741651653837966630544319238141399043196601877893749959223395923925600277787629285014554798741153046240849710361589278869400836325014889716895752905247121856369678730250382509274652967730639079157093072006669229155192129773552074622572474999787458461498343711666083267665592239694090403377647445781958272716093531719383758983344889947001449159267311210722349552032755964496390211900883330962347686771318347729742186429520649255685960976916795288801651508354832640207943795498753891898727981077778932220773928452934866537251314507523905656286712953802925341496461694565304069307230843336227480116354882684481642679497128612653750159042374647474410578741113197475629061063152552619141784671518873647722738933228825732112891349649817389369045260532886590040980554972383148359467458652437814162409814530166924570867941799633325238244061001240555001845035731984294978435979977233445774959508013340622383240869360464006136294880296444880206886533404579834666105565402717973808911940416135926045850934172465247898737986842235674669829898070752158794825788869986510660362635488840916716500780280592719908528389485755809307024274884757079673613615409801112228975470223398696754447936540337391448766316731065646549171950116251626745760234806038177225207473674623453077603149907432741353349225146127463273278988807949007457595864607991176047921950882528239507747893335173576475512049626227643779658501729088207781936590271241985587914853247963264730346670394651370106158877553777175646208663113853071832488418706081300667567851434754424511666512693000096001264831903854854181505898758942060045750521304790427480956430360843763588412984277481140873906834916702170243289832539650959255342000996497869485160496601815010671109211682791041491492381182497493304852715498817295004219780139049939239381726756056239791993061919169385118074562968792149778049715150724903288861389093548590037370141438805859526911072741409175639401220207058012319510663995094968774886825369953568445379395513499209344941934191212221060767602706275030353964277386256377972252487049440960420456521356627201212011442681268872520831419176163491345140175715981995686702141764698894807205339034488984440098578817578173664016359341602167188785023598305918843995858160959308187271643140669915503746134677267180056927290312984871672483714675359955086058345810992117532886132282705216580868069116656141141186034392106498044422484853782833335309358776747812251621083886631450758298657739364673610582363977227919692098912423199538504018537542029032561488851876776482448333970013872248435576322916593934976817223139786656572581618287894985286665373790501833908489247810297254285583138281213381968781071604346585409673439631216484836545139426525632888621099131640076205729252708219376375171588461787334339974671634400404870449893209493852632287325682768436515311693296354956518663405476018350501796802155265648427506491195863592958600615018231267331788374770868275432238818982182538056438825376682154748854949904412478210501391050798643022670268030960071504506763827360656943037661223575036790946839650684177961793360039115248134900720000965499145494465556273411617830453046190582312598542639681540201102448745146601004870264199576492659157382348011796802243235895554026711209167377163490355861156109058389610518811612194578881992800519301451059433318857682643993195350792985234803017507484957335998998267550228399312482513351297251615730831178831437289622045661372391447057521526045200884009294200331304429812820547315107145257839591554276811442427207639734323096915145701822319073689389651062368137638460490686801982056798993429082172785075011038874036754133410856687127317256226567475794529052372742680995595568564015585324899571463083164746077071707111039925597548854357535436272634337756019354825893945869270962920494846806044468144086009815863561456015605070746063154455649646892357218984822560755247698789063331048220702024031500400765492623777183793715083348439581101342314372396566620587480216083657482039058629487845261285715692508624473042109245204542618185720654750977548079243606215447015274397273119512374702339452116916121656937310482253619413569132591702751244423178801171184349756156665255485425959395416847031186566772022862214896361340367619064748083921638150827561215399882752209339246004750782843886436803727170518871311640442463090494269300446823241628014946069256560471421519252572715500147075069925514781032787497665115996073949935070930337185143832154636660525857552158457749156375904578011382834096817567613924683099838894654998446935954992863462072520268271577187049473308694374336142540911668632682010744793257194231793210635747133173270684345084252213017905909837855082358392941186883923927100246547458778234755177456281001045416323534231833927922486857465985494731184071327991901544552748544686258870184049864722524318617476080130398726689878939769639477361855664456698742303064377234989990449283197059278479481429398696635440853507144969034190648368850963286712313409025790136530872463261477616323046638353199003104202934627741044070163530185146004829212228068944656547615111252693447742356448839062715992174162146276274669371762632702625606740205291443427861292570886026446680445716475013249335185935378966413351311981646859451193776559303914899380118489216157058348497152652490581879806595958358651643953269702355965199229828814030701184156914337132563507291992582162217726550708182503555987949945655612998165258374941654432677409543773063861473737285824599905927440151851765395913833021827887997720954321654527775576008534496822272416170722474681874701409395910048442194669572536204114999371323555516605917178383912176795377545224842792799871789176110689524647757343445294349292336195577979324168113559033317815203249216075070773641878721313527255996241380692990212203513526559474807253296316884666440202193231469100412827626436001453231119716954832885643431463236395968545041772685575398071149866056921639670932664446143171644508759152656633789562105874893296004188815814472382100961112757678291385979329890461282976585657482066632905628086783082550401015068087554780244347788633611768635984611451575888675977680048746138760001624371714366808309212427698174950569723312466215479987205656316373420604930945899370998718826114902754953178348465642726262597075258522287359717111453038048541882008427966394870474791070040305328317432142486933621004338368182129951858869150600235533377653903787330047105164072190596222808234013706072030274920303653060757989412248000583816955305688246702244006057492454244438906202451105024356201900384592918740817074142697482485724044018047474358365386817945879962361090855576738610602586006519834343093016012266988516517583727136994600013482131467557755640302767886578669829790841835080968338548194752377154683441251732954020996146178344850431649765215187769029687664647408115544864723247124255774953491198436377333729478319953800120517861787371498772713046224667851914723641719352642071793500033758751617179690887944471515334772880474966891366745059866024341270048452516284241623458653548238442475222090252508180846264634826266145381800454007506519417670308058378561147981856853577603145615686480274954104069426482029118950572423559945462634426555786249872858372032407847201484275736941534588726289638022044675042765330520570228411955332415183012629318679572213371422346347339921711428266736324858946103226984734309674268341760867686374984340454003952459397797195676142801932201449210064913181283507317285820013367102038133791024267964209449374877999768478468878554274274456025016947394917902521000300943503786862391093363904174304132909616992588514561113847829119065558247636709657102539540806373507734748519048947256026526702454728181614808591789272853102879435575205755750240469935251862352728135709419193020636282928339965775204827789573480440400541996908475806488135051934674600710246543011186258931230963931724758483615897440291933368847093013640744493414156319610022431359117873246396035703831724455036006786692291837683085909113152991841930644240980992164568605596129956001151946425468429607737109245958673935884270228696188812635505228986205729234609585322460911863586003085280517145642109102012693581555674075444926354873857619221337965001998549889837627774649000014915456378636323857648878570555607918513845692192323319341747065304243963187243317523529303868352565547317749426197047416701264130777466475091902577814978761080055256641238820467472743897892957152700832422538213641890437611774017774370196181608193066533362049443139991214906760543336075490536524636991784126202420760666296059164095197232913369121060803785488450261126819713577629338210474110258883865124225915701836325749153611645193951595526808765935237853838958299997641457777541439475019113209591596701303646278772519274297258524746612707282033387031542716744793106893560139447298537063023220371711720249141935137363363758419641265780895393022457067548863318177669564041816148631171664443646877217103742935107123134768431884517572494632360068491436764300143988644842653605832950963701298126027973353736769338659990729169248262604530356335619545274214220420131290352808438393105253003469709690839111441447399750145181789605383602486717380249262401628508935384445242724301352635248604523417933818014458537331684772830365569261400579421830674230381148127925050068711002216064906401532477048708380049004640622866603288482525013064607037793762161149752948199738064112929878662754557168746888645445166875007824264197090287134763132975913169027712706634983255551673173453815564438241641934129066863242181230061675769829065952491076392850135877320871225606061084770265995775566127320401499148984007491651817260933532843266601810857175656048157725112897949518340268533593620382923571734772717146441664511914497753036329774669463637033651423599642618056684425950441064232839256383099714088362476178042566870026141787399511779423591316092080049800248739705409742178632372045225862416602735625252808158954056694426894716337458933688229391877125699590918122164398502667575913427623869535730042647668292730723037325583934014229031000993153623468705136304615440186510407933606090927406401570295872375163190189179601082681746922021058702045400562744334448238774572419868608484093474493614268345690272544077696529773413859193802951757936496367112513705515203209053166211044317888963829653068775959904502914099944108184496916016696319515543801774423240259671506906321685052654138298948940853613732347995312350849824269804321484696365937744421876593831255235534066170656415439445674977570543338598191987967835108982393209711576416090327583253488817639446953457579237166746914057093888287686666997927210424021472135746791170744964107703240237348784157062801091371733453560816428751480329596593221239697619895286576757589721502626459789259427949224165061781434125329395094987922649316824345084914558334020568392617061306779100802453441385077131101798891381231487974454548354184216928827058999563606676158786455071442615734093996517232057085659886985768546448074652362413997956444441483577044750921943069046984626252778344983625361753883844578790193926226751028390638411234979464056115751968835187530120891723083184768249176973366222290126863166817080581124909462226553239935235258130396080382706871848630925048239354817527710942629020857068564907202773085802623039561819881082969854712897510566919992928320495919773181933067401491587120118482732130514320273760822275498406923484635220811500087538521054534161986981414927743071708651158043600625362988453821505664124337846325935431696945148579535283059146732579618120410130783544977009322958882745963220779375224083679689306139829346828201787037204068988404575707479672114809981768340973409931841963662378080510793690474157180556944143877877838617380420124731808613432333597346589214259328828430224058415874411199581625314276129747605608200883169875580049774061954391996254253501010492203680146164820163860486236731347073343589656033127465394806641716391956652762828091852998883783815908152974845661935089703163467197979220048559879975151924405872149528672829371399953410703430648573347077917499124173643894703155236450633205738895240416384791180492354257069835744039054504113177511408679515716688676249282659007499224359642634626129227609656812641128958816244969556024202378607487945017339946955292200255802030324183053220639017994969021630068552874451869099295450032263491119239142711609708297875984856323041869608794488651626183932529167535924312954996150127234169609466246181608916736111235538061454635334841912840547220408004677509440882175515861355238033814646172091196834083087785104692793490493223804410531596503947831956308258880713202042841448897310328788306568495515178242186560078545045016953502286952858979184861093669521858088214591588910154882285621936478251282561512705425751510596654003556697960061222178743164298874343515072150526641628250334071995534580725190431002132175783856430404193417869231594264567833755018027427128991435858709344850880257978495886381964608071310680473623673994387053198534901400262526502407208320422128896514076870305521403529281515733351593348502447287738262416339290575810919589534547945781814235184231272520079909848449650960318228137376335215396884719088200849246782096345231338477526188652463847267157271072152695778117734810442381319359670888334695144125028673275551917643311606523253720435566414363274410082951955975667035695022966873262148555209961468436520872469556887501771629220245099594567369940556941346041325729911155379196146610936654377147615303912381955757263122252469897413566167752332738182966138823777278928800683675454519650979003950032765630443004319762958090636903237119978233261377369644339982347333483419526594929984832612323633441448850964515890974060512756346256458388664837314261030704435458025367511556457760901710391182141368900570897957836074230704892838116482153232499017647601660096766634465037513552300589362830768031962279793722586687110426787909294663554881755083326394070486327447315336231869489706576372418095339185711151569312815273109642855143768396557873868696373840583982936738718517845891204718783990896791265853428805381589623546182007403857928995236675580866298780543580238884384383673159421042720535405147628731646427843521914244157160546906658144292623931205279558053302124817393256197196279782814250649045028285631966038648579931040023289635996754682159994074685552696843472091187132141155799620597963036753540400381056005197040554882102731313732381771604178887078300802520531508008345903302517189340864429664337723115451793102649487208626641791995215397472451310374206767343577306507767117033469784910878188499016301449762601974541622539475358356715158987563028582034906852608477896318618194535595751684268447935547462375745052150763700919845656559061554901497517971417915085263665882242622178632619849714801436807698406919947365374407182207905511557962763451228628954840022832796855632065645131736201150900584311490760231152706334023566688826114753058150433967026565457335781435610276932659309105797067779894647410353685920913026216076050921361487730426318936965217020903595999327923529355748711031510587908115373014179105822745623916018452889150130653308349836712063011886685816116860273640491236438848344011316682707756067582191130307927519337606228567296389390517402635870923313089942628056847681991111824605773148403286561563397860726767425354710603018783546288092876279666442701597603070647301038818713492587522012977462923047702408074804408373984193239330027111410734172149419093319298752140527289594343914503919817988884622896037226139007413732011356275032705312609672627283888214905689545976804373124485493581635915891761521006290330280077522777661223845122228610924840019848186823825990881640732139760118381408040863755190753244287287587417109373625998178497679488376436296447687571130049827136220777005921814697297756025923724448916228400847462562813122196428043079798836459271107043471071585417240053333001607259275087361253324545622062050811670748177535493365763299897479533186822853702968311685895940560491075828484382909923935047063084631519852591585780268823562444518183330490221948867985977548872308244074166995726808313865386918569050729393626294082281282581293094262159317599156128453644681900655811369358279701368411456850188210278520825348393564497828448875283291103443411914497630131168631104837168171549262942948585151915329861853229763359863244457848372198621551056319799025446820378979352230300184009440311000720525117778220023123835815124446016134138837329573153387400703654274686066872605968845342695796842724537426891137917858291319096297648543960767689014006845984381918198465077577062036461739764721105213079898803215239337757449498550737736282993432088680949028517607346174679773521492902086008924174259539755907912858509103914130283433469144373995028974937446917906731574397534981611909594075856451193180361196243456030061949490686739557394227213998689990669066337263666219594523159398449760971958370982893338340714889590566320443417224294414301459712154566433657586211062850111917114240231121234233942683493903445203600645227420075784675381618241244802379324944777467819431143341160203283245397913966793511122743425649851624683908521050457642248502262263797484830851166315676535998910619386289182650000101908731547334668266459095052458167838330156778687522381493933517153691881438026453271597630713027079992923936938960343496087991428908117091605135352422328080861403296991420884385554486702954350971420226540114225774994060566809904023971963873546005249681270251118749415059439221767273611948750781320293090350057071417446894432661433725197145124017097521847122011043694853655790748050280478626117137767147598309764952240783812306605459935161484111420490032200339733403692481621208315339463282007257680528769823265303110627130228127301607150944298933655561907949552949519252691093236133379861659921808854500452109077981461812717028401557786846478472041359036702352171837578010793851032262039111920742143303248638110340438329402708254706880234213778116373516075427577820979605958372360588114368161011814798990798197642268515447695143799969913327847878217364085622080510666757714295771205433960797345069348166200828019015832804510673199250931030871915144790259458987587566158258204783537642772525586489234950966611085851187772765095451694735042440559781492400320853830637833414474605876201593545760788931183292646654694308941069367154946215059218484879679987577712761186002248766835718152513017017953664573837863262564149728445823682518065909352004886695154714095157071486241770957940669180898685100077907132728273344792491722593207569713018690369313817060317847121360730346931216774696871564310026351935702473663653437596807983460423169872228253049834103173549527284578612418208110753955369869126921159947632920093215736768824418911797894455384615172156859747800237053048643884687503149518029888320485844638536829484285628781793684114034329509094444889865733364223889181927334637340561887290473443231819936207711523010665376596193658335342547200300445307626317721671249973251385098770289941447156699670738215352825291371223458748811027532744677834388336626818153850982822684022541238395413743180154870780444051078933966795586524125265339331928203041305006086839749251240516911164187730291747283165456475929547564295084377340601810519399825280695590146140209586251027795847043580667178878039818559755472271732855833109259763782660141271491549958859598926632540512172360078898810294684999352783902763914312101499935122719876517732851750634858167503947555030975437645496155434477139995792993805109664537855468609500871466418137702589315679788465175444308155500557267638496036391885536227757514015729253553038696893165492131510056256843663100000912200192985158769336669701140435855236063302232657293187796659440568553699775025420383962236004349376858468393057412340273240987183877461390787061415507660628728329744584149270105432304508514063813415071079128979178291580548584834737269656689504625570289761457515708931768478331718547069356202078927854503881940922016086537929051747070728559082196804168620604006060209489144465091530398009701143049633626024611956050372393125729298861885786504071628781163363430010849216416456527351988973985052131879500060085309976649105361242639602776093581095436259759149406823857436466936787508858046472909989257943257357560275247498230215807494599507780634131757635343476352008875799492097612744104873603639332938907659546849131371580491798567238005600450342082249052689639211522299594112240385202020974784650263508180303456708269930885922061008667007724198993123590011004491926674442775554558045152561668279409970784988446796119912190563283138147039330580450736737806840024663531611710846856636501632208820851034005951497227042736044926382469858609063163587327373302237944932889264932310709666349190579253922548737325362419066706830941171088203894627204381967437663431219385440104474401593159681230363419595665891185981275362440292095726391907543907431871009203174884332617807202739743435472756154274140425489634844057318555969697668828297785382482329728581853081463283369602735759106964147909022329161067693610139986453577446194972902654495566983885297438733577085341389581579847953398292912534001320535119840162620269538778330299361069629609868494813953614890792331538691650812711715600727831729506032953524022966299796821399053371382692190381098380769672505929059355611831476697480010962786830980123442260254586755034299101699239683731123185517862872229434384441583045722465688610824274559940143485735127841186680365753542657935168319526527218120195603635436309231436193804007605187190300410645847975420463659529662568828209669092725323509699005358032531156819557833422223959291941860650099960047500431144777562802464311668177534540154819168156772954466363881702094114743173186415159642178366347728679119862038795664406161241375466253945967634789575550348007213453990429288438707884735798357748011672008756437870046730217143680937429897334793975674974668570475241854655438720898122307885221572423712037071267028033613748514198560453813650218452913404055159317726127755806821002383437644331680214369982269201774276536194607669136169984170865444777189771690767574190085378058083432470922453870331219186012165224491182124893622905708145350092859058074996644469600283647429362878483712957604574834752674721914800416050004381063870702292035228044332095450896852600999335091143633666978083996616856298170457422121442451183654587736712832248533461627046390670127805445538067532783662533266067322445127838577846556045498961226080872961112263436557009581059943522221502541242766120671508507170201734633123977143012140465093907768083062316400412153795865470630319997560336330643728028031735802200056198953015147123895023039090172491749804918849888261395615068971243481754126269948796121986276976962748249968036096329958226389176598541185508073796811769037175746482656737493611021750578890278769161414315134763139630006976772359013802505469450193650630168516805780378670537015309654294902082191728988897007464386609477317915230275990740814420886626393896447442308974213877270636316383825430735816106193635522635833760272725867179290060256715314946192693914488956385690798512272283596278801371367241264779178333463291953598000332797484213394486723942503802971178986353889895676295909383273740968259022549295884582804565339545348250680321321369736463831717825735329228590522963502917443028340929756148536056913169459147306834526826108475743633041953513682643094836392408139736083856960516480736437125452934948964430015724777074208630451031117711117500029517489644869829473130045327591121261202787383931383494241060005712081838502238083312231560124149616366300842233932408758045187785008463426149646824689001616015745153882595858796702877058427252373670033605782145276607999098020608402733210353182537739151203897134783182394432633523815688690815039188211040361679202462768010129585660819330892162858388698019508669378226803067234765904778513338499027883093409787218584166689831683334383303191607765565489022146396699915675079686615976309216871809155266090712307458032328257805170759204998543785126578628777545254535138010605590918034714118283544155054903247155618000208528353594411898438267609950850822630058139189862706191203158581067321706827414875568172566436771988861220353595157934313665202744514954094372342495035968590362550883815201821568405006230154905759877457340753695891795333733758824017931629658817345583375018143660583268328115066530845731053460380503812376196762305076795568808690574888832503671845068732898814263386780792505233020945909077419965971313176054136983000637188864602696973255803580189326817221222736903965793978870019629601929180550428952413061276433372051021334754544344106207464632510154590626682709205547617830108706534520038697739071789386354208952160182629929682905741889435102310476013966331092337511364875020977337753029418980039687090331026589554305852634546619504784235580514932170435878440305510681341972336491625524814458265911030168279316819528642938966239890746894228812171954183970337734221946980218042655276353889445033026760869329934397154536876418220385610870124264991742424536242796881135370800307722185986443458793480737242567765215373940198044834758066093101008774879525445183747419450611818534086459659375037174454224738048439715877223567698392563420241016421310026740138810799536107560165315482531627701638410316362574448559717000025573900570087029995548621892087312570043858191343772962658903097529591355077920953954246486750892001448285390640122957680731340617884629628857902835851957315937093150440005258828620980428533743794607112206358860273981983428807876970337932663424754284539013646775805941430628646155024387409506677445929607333674549919882638279279680039352798243498068113962461952872156476005827203247580168280818225355381027038317459386675311038936568487865541013349144697688020890273769649890398569328500254909830525079485950746217499266461421597993430217156047612162528615313610706378748691297296986493345196896417697908651948188712026014780775990029982429596353814501887906441926111015877867804979942146670502444149519608163274824123328155567835653959477745210723903042631587126094684413294991073306180178994101573996219924996974653662728308309383166506501421414112978775396931985860646922314623241919443474246490244575304115779786068122542022973227383681465485548088685096626062059408418271544776192334445014579474012116199504925900583743937511964861890093430476680634283574209949072518953940822381066436340686260898073447282608152249915110755296004871886451257690732127544355367814281819335538064479686225021378501533681731261412551808796950934481346634074072425295725135571178548040310081724257104085777652637185759795922537329726020245510399246119160190238551830174487472200684618130228858298874063820392196955866603166780683535405340400478747539963653060499153792279322650928751478788408528203390403615647138520694556483683661322621403656531464209243852122831520717760451431387087767565828024427579318166939759988630168997838796273518003591071225594168965280890187860042034936965761663036091778773005902039061203900738617979404583360820199221011852590710066282069044622282788904305261847393441451470552813997081228010240034165997812314967736872920606044554862562496351629635984164936459035796628430635913347472743255532323660901469893835810668122508747921267472921097053527561953899479313355022712718372170980595044922074523543640580311568123972329944019907894609566987813575668913914804400857900898016672412457361934323008615352351585447999137598383678584220348612331643831940577432056026402745798012042387057543586725950893495676370978892001102693041918026551401533376377129299586064250008787867546908434556143600602295164971931040711866888686034039508826950652160573083458903059762956850092018413197295948279195420083762009977400669400312158556842365172695665086951002708003688881102246126659112054882469426470680331207849635127588952048234883225080464659620166661581661094918789998518714217291406141575265153880771284202927697402072098450339018272831407306119859468422545254189112240578445980288973280784209073003000049603409106326648347900653258933703913800290460070884957444870745673367701872208064586500087483926039826561993025207511497281091542822522981947775890975736709474250541446736037648244059279257490386501948565451676934963243580207106795879936849505876145842336877748277396382239542558950499746989602149779235764985929916663736674309444810239756796293943422467965064014576238578713872865137800381119146586662628625287859030001238754847808083602039068865808502572773329068371891418817819846569638204575292181584715879039175092604078145335674986389627569729002442210105205271685919611721111258146153766251787707531301918939191271473746085623525157897008385064835514607016227444730513975597452943945943358737324857656459051771824212260117036363209549148174256081616195783597491214497719519772746626591841000320460523913895415256826025746307933123185011558660039126812674668178457152358081310805383080426559623215729032747234274692850075652198267707443701783808001021337812086053082719099307525335158954978411177511416725063443886231023996759636990764893095447096910069360639823124678777646461424896250541988846395233316658810541897264076756736687775270609893017209073114126807881866177849965214854310792351405321279500641322832352057909102783838511050696059734995133415226780322237006625515918215364021987232819349014864820053900997309971733024378210146701371807887607325543892026996727454147094119539330280684386066647847695443763099841885791554670681910493875662733829632439632810085117650548230676748150697382614963837477102530324827595764178988175638915698774409592799931715224139305167774890021489245016643623507341404661129731826710816813683577222163145998714504505771338463410025960607962824405738051048211454117606761950470664657826325643760901900689686716376025932715625912960713626270141396381685032683699708459409608646709952702043171448343704019767595957117782643519191047927703343423603106118101101499701266102513485636755395843465203360334953351964551620991962451096228434960692913646146070562126306521027612494995074784543096856857762005444921728629078560766282782487514011871222302660074168357652001725928960399784330397503300450141240750872259457490391657261085702984791176422872156754252014174049766517978654511354416514609594537649511718407152465730178471799995645200369526226339579198064741180687341702030595198662899247171624077710372131109012920676329083127825134871246974403531955727735702531142828859609925572182940838178918460856563277939434848274453842758731550825413679973935620678099118400688610053748319411894638118899423028306352096516346878069226515212636973825630742000154672916517790259104800942670872488976969611473156261785691454830347609605849845918726372065448644774645739894984384983904208159865095874161332326590836192006849606646814146967074145361566116666208946598531727349771853714228023957187276471261648460248687463177635149673673608020870377254849519337791544976119919550168374171263764331501256470336636623287090313551594403459985470111043394070427512184196682809919286737483496470976215466634540247453514807026177704091642273695487871200317984976757352631138776153458759782274419124033776465563798428305139903096156988682321095977601470305630514865316932995053551831456809194923970230000124232502100265276900042891083997582110526397277720020867780002424666711387063515049790802521034193343243472021939388284244191770214818813289440711611503432224856593433040931217480933226533656108631582580398338039666668860464914042409342570953984365904046785260731496883370043221614260690350101264093394299932671237277864853965174835630311787315835131050265327222639542423496947198630464149257424947692638098143673745919417068049384421433118713124938608179398661397097226297121831435820585899211251744834119939541685251114724438321755695615991994247033312062006279956769731242013813116387314000126876456933248584763802910027644907034379788073673693960030055936764513737430109974386503953242785578090685165627731154345292480406316901313437426110413831835914806689158050252341676724238190371012116275032952309196314713701497865599264900085072588345231024056313639200240705053186576658874278648563664123128551467216270806675799182703129934592835022574562329305878878526475338440573274692393887231636059065336688326484977178540143080282444753314391709821612376476942492646931301273300852226579308368898713236257734620263419324892465532606498992619343085531330671833825473339559767660074145659082777408380491625274290541722589941537886648489789149316782852034419507891257791441356902871222541043820871825072378542759899879611908362305486211926446509218222365605191197560128501027139674616828599148517171573755477363200510742458224697193899629007916839303844461735394231856497701071438919206183113646661156168932666417138785036108349698420611244587618850291319776827669689379660082647221455256200733949988664769825383214933197222462436742161069591421550400534206830555133283830015879806291704885303489650392947453526022387784894189812550845688541689662774435696619724990737850493341684706404297733705790668722745576820947972945622152879734011377518574724949456559022653132496335448049526363411710865190756152415301478531681856374089671527788695558467344162897488558842596580758881056828533918608975644384223252305838384820115973637734764267139096704970265997272449660992808493092242924710297922196776413396989955154962783621260333403140053405804838996780346310422623567488710005739136094443588675891158789932630081803818440257833789096206256210804252153888877966183017473026369530058838550260392253791362698196924121743433375826761097305149881223960043422542515076752086380708715521226715009492682286454769683476078940918183984425829295297778954108646191480625917766714206969127350069478672856594917394822643457487261250990835553022531034193133838878220774190685129074442575382908195379670227383300998918239748459321789604427389821297742556769904214166522483127404212838546603110271084263460840718181240894599332067892738800276293202655456237355831314203647992302416349426741005091083201020925426167014405042078710195332241225452930834295236531796955461993360896272634814029500078163014695584876693923280497031328056864712580411345688524152617133145762906073802648345572722357547838176235458003809678792972221750916477496662555894386618619019569397444602316535489430536745591515639781484211898692323947399097923442396590986932268404593241058559030573911171198791714306621100886436508303468239046658484810861448245426314690148261055855340106637437206051179876668137484170160213815891426710989191078388435421678248616826156720456443559787234988571701442592037685819110423610242057792921207340643605657314702633464873370652660481014170663546524915745366751210681474484333441543030406325739957701868980975043994703558830791463183635404206980025500508680105423264293868486162778001863622025264655110208319602940011233083287899417843140149862428698175460982001676201361743630344508369369751379971298824660166517120246666989542804672526031378757785085586908673819672233972627168178821716186079752995054369704490076200002529984742468106553982706039762755275979132280470673959218911965137999442236464482067652657716991864581474875880130299119585766598801348872813745173700617764703854825484214381747581730021979101492186762283123378575357373031242116441432235120428317804580707222177646482656224691050297762884451128341211864347838407242847531625725901235567573461456557987280636034264829227704303802071317076811688761766222334664844845962011452525564029102938967723989818563490347855806730251572017118324464177508968629187283572624180800753714428504402275070052113379235469036296865150701582461203454321214537569826345172714998917744483093776066289822623947139116749282678333305171198166123155926702657534275948054376550851722462196463899768153279054997694856650038266747954244095377647965230948723692189557242582680734720278790455877682149292855023034880414250562973249804781190412530625469219349001399342055290821763897982828043319776411525602343482263531796295878603328098712699884344227751016318757149095519840457925613151243881789303352239315103335648771003790691454342332938318995689757259540520408426462748927816100213581871251243682051718396474255309242819773965530516241945946878246129622668964028759874079170942589522023826866428151459308551971574775373480144428598724284038958648419799059415066197799076543065637386391209381481498622785078658201888932573655802341557333512126310002237972260552260342024783527563402263760420693974159975299823682105687267655157159744968831148246694868861373804132647260009236914773939956329373352624464620924604580853683356155122224159935255806939506138178113373865392707592239081782150180474237428303708490637147421708132891911152058254695592226334021962222974865447075261176498370087094106690365709876686715891835121516830192779547683520886515874305179993014000981161056391444204554563815215393246125113673257692750955307575206280108029538714738521330821243914197916325652847655848463351473330744701001496794543661588663106866311612060515407901108952249302508860337096286582881922605646621174458503102416695472675711738220767385251268634431356910769751864458934483918399168921417592608240364328923929079145637586069301051595465142811745161235246948874973269202711642191235810863716937973906436238027930182354666717631354918099212706958525575268673551793721006990754422284191807505977634763855785063332364074353618240457803311758064728353870104465648468505752873653935755208180666672889839540806312644715267994345186403901890519625882928070272300360424460181980038501454735968682872699545458015049676446271032717085545182272865209978079363886290801520320523014201663656082956958559630278662310453557970980805334462288165152959372763948775415992388807981773349536732193235763896183164017457596195701668648817695308654191074653131259789000525517615760047698607536463815569712839615564945832115092005374399212524018843415605700483302071541411536749311639860041638037820042770905175897758736498476402934637033890098225714353336374119053272125758287456081938103635519767358204531623575853376862448156844935643292614268915524425869862448792571413777434367877532885298130831466323160983869263996141671975618063053807103750111755925872103989572330281096737419909954555562774245675046696529699834956513362717040400439171223226284786296180023184087937616684167179177904973414410302675866256208501234581496444851037854235222882083596834674802681681376713717859796409917411610788646597666603837255151286776040670702693829177239994159647191320712226412237460396413987033138418212374493253808678665640095580285078466874324714871798284613678322567111004197373571895425434601652512136355635701467806137576656096561565938435275210246964364676044797479469743719228284834445345918281650225165329671768650580922163683600429217634077225848647415752465423534023123705465949666732061965803311040029816433269847089850378743887401615213835765779504545004637684741410735668581952766514881444895651358647232635790928427317804071879949393721281362630957157377394265657927331995494659894443413506052691175076335186160460461359553456298542933444163002319610861884850852763684340356449809446272587333216206240293194354190097134754801511643142963286101847664883777924148736716193420555827319771994802636054218858190570002101167179550971000473429986492891020875175796675683587147096974445033809616784582966694263656268431972797506318203610085918439901589865328752484614643646907542491219435411715470127324702699407796133427855042853074852747087289210023801137446150626631741199773544504169921815644324050322022984749679677689752454082750275039042615476961334391073400456356698754936037692809032131630917823229502230412037222615557787988058462166663944707569565335369186885171383987864546179102571464978135047298322746584028789228277832001351835901047846270514399947783352003439445484387400119355558210606668856567612035156648818320627931458515838823377795183275106011649504741376537693836755062436343344225221414344300737594769447965728671884385480196252046690156192889655277541416451255147829442154799942374880656202762398004469982399121511506861823021462590678119846743522368924897544492794669876733751520695530120583125837722806087424484559891177517408254132767972917009680118434100241337026445653401101176534462209375183886317826973433407725200457299420700527856052797199784041921115102999026879803294628773797109725695223738289926358830821184865407589900561127567703410777513227334690344525832329835737289376586616504592463893252790931359298465250320177544626195804643472709635884100973968950113360867223683068693599834100485096339184679558057582489139206303609792810985909933449364192011266080743769767417214756182206006645449731876248097458920559498840352071198427025589562741997551089230500226737713928959629818717099154631786752657278941008464847182518924162518346430777951995284609725077270579824350248138958721776837692021750998403450482988185192062309823288170724656057201207514701606926150653605418876429495701391704697388535731869659690989074055731975959144508052736178840233623698842607282887707177464794169323254637071689318278171851542002160178260479819880517248058022200847722546409682583718975180706742008504853956968891751007157739262337155488088036675893923742620700312345302861838876265673824036231497397889211120063431222980306153653757786906819855267937496997926681516702501516816015590631890831377790830848158632140035301413940608556892637544832125437281095073000828202821616402977866027621631637229987898855202395600801079182603611990132578146152916263317745947590228564765054423484257372449597807650238442831511644788602519668531922512608732794659818180000492733826749379578397964731467298965118130528488954965693504667912691191386853491239974605154992050082745550017117221338938992333413856157267583084439307800803706146700852993029560659042593057425585047785209175022418297956579271889040076092983190413390806607469076070367809015170253012679623510718958516428907866554548614650911871228431232272101592064909338922726309121862036637062736054116146933235669598123254665621198831896800332498331151704883083911362632850757064276024409532679274676138988667183169145910377744231274048370098308442758100347076876801945652388538358630127274713682714426629263810561182013822661466002097184049553071473342875850557186066266661345850044147573637812410723145186559029184959403845112387544449573538078932959043825627599251185716077869356246571899277185994675474999816493010480576752457308209052341211219452856832273060478151529055193558934262297031632312271901151014478556153885409375551511161114849009087767944815248736347881614302647634745202310586450966565326354525293507799497321062430089282345457665444503773746926466086615837056758039834297311767034026733232894376716923772531659260265232382993571094504266136193440692805626463655599365429440285913725363225769325202255188466742470503581626631649629255676360110652617601819198744891739508158067759616671512442441444605345663808447298945425925472799594761545223853586246449890603603037851506184662689158255543967530972942237857223540594583862567827718957933005124293276570468301521286688608399237781587852321209495941112075091372685042206723159838962876151400499467724508314426971153286430446466849381790428656406509390902244003273641485222859027965015827358409365428192525862384934751539950108858808862393201340491547444036269193371195539978980633437479555999725260130326860236856689586985950230888842463819019664226965899090855529527192676759778002280897940503481442501698705381095826172678347149239718019881593958789331819270730102634380922181857352410579961609490595954922842150590144612084416742329228278904090056036828853642565458219472726859731296303202944260227347315314726399582577234622676580878077879874861974474783047773205416357305191202861060791004048445614983719510746866012935074592548005904769271212571229134777671970327740981720642825643054621990903836300883361144852837789408694530424345881403061030247738047833337295183401778714516424636445771943276665231818015468262037095595916148392548646443440478366261022713907814844986783354742024815838044051724193159110537948256966391893023546215168118579779364087481898579022534089535774600917378110908883986158972230089654678525242730906282283836108727472449481259563101803882452104539982170133360707062525122531406104366144739591245534113871910194210521285251699380221848417460285905646922465920390650218530159385985788563885611304407665584154835887523266018244159177700464528428456607592974508018707186356748035175451131029829716668931115682775846835185872306483470966963526231132483642694249857709786134006130854956846219542871877302826848543403463169959402880019985615632661693376543592385430559644108459208261606535390545154543105130976349421202189735958928076001748079068818669146140596217146720638510221687395326857524204479224220466060121532340149004605538499066402506049930251065905046695712845408844972959079365596171376883890920445931981903820253573333788143400492010427611761546964985894455485337434568477344873259545641160785510589909439584918498076341144569581018932122404095598516504868301504662715038639248687354865955485016430608964163004304010171257266813774383755189420784487705093573789528764869010208920940511481501054018906006638816492273402941700092492933893478339278898611788464645535869391028916250481927377344285941599321493648149759122144165707308515171627198139222412769414713765444614307371587271035295328994137119726556973939249800167167675242214915914409902192327345881851598626203711550415944760647476226211270012095350757837331390711461759680438679815984161367666447225837472490709786538401219227984356896270964959779589227134353866759674465477824679355277389174094365584225812511298421150541869329998131714354730153665837710337865735847816962540304860252977471441513286600141589184271601450182506319926699388877113274744893985612752493900366137536087581260113728386656858079734169511259595442927191505217061457042661037019425770477169990995726737251931763667303386376870606513503272915800809031646598136824371845692791208005488319952968204129927042692635735626619963077207122466476085259921032296302537221042948379165819049668045617112903052590644900629998214282488869673156740134153678382820892285750112894303771852837041643344546181943029805180331683514573188232950675612534350770105005908764327289251027277913272210544636875804583040227848552529525690563808214686450753070984067992341475663652977824852767238663719627352642964443129420476295894006071053352941615683301523957861480697063158846349606883378939369261539390793488818161533485826193303179738079297568014573671216939530264368391554604538818485914327426984774955255737738109591453803791435804274660746638921744594032402319014154325782060063277489597004865246843558686510811367421276450267745755747602520986250585365086747684525084167101345716520513584737672999416168153504118921308773160161257978181997022586106719830233171286393615336318377643043127508169829720385034475990215650976719938435489909526853787859006556734793272328113555433281184223278827751052664721859846900579948570252657524602498980396770174828759744843595700009087333903829670173411852099983623816343077496426514376305771991296590052775228310464107294018036591441599131673698387317555156340261987821385470384970108030811299324248674305225282051004491502562922301388845774350850146509092825337120285588271506197974587827061043806371140398516719335061567400906784521208223261264825065990761918085495770255705161380956448577078448280878538159947084275395205983427303741678888610565768757047336017796675895495299147943859099681457132534961572422533778587780311887333372391097366612926083771576140111533380045936988907557159338610435667418575254936173816734924051492808530054058347552291664895397872285579453641591649770811316245361791140072896954816400586019627702726345914064519543196068172882565479110798634414090558857980684441268606437821101546534779657560132586443297421094083530648955616144412120614152186764785615276557438060338036712150419411712897965929630490766515391753363051580187340124164330256650264878256957859689290543643108536997292838237836567082031215553119326368508881184345324572994846995977449143881637380460714134445493348116371727672376151911295763515192574561117085582053991543951080364718576735019544687664409804864352701617158125095345853144654844700131801142305636680242750562591492450745731571400526114390315508525736816397958050832456415623099765069316608714541980276808005939687484789115452288330405592984930761882441494079753264653122140926303458325292192712032380261230583872912266283689565419947039087429787105631097476831893012903422889988187429113453019707329334962679229751090361701175760762328592407319381067716520758779891599396378753261833848074762653402406285739953862979339877312097153427780327258408289184456832301742020458798377987804239193606750966765465264415553169584235912037360195053631243218394036469707585973006729846225294518053292937714222546914317972033626833805593382239984404747050623064297602384693258226603067871511710605845778273111995687355673471903985385623721479781008944657053918624318679527236275534416477475567961775332721392307541792343785949655353749184053040461525454601194295392877407634904975414872860355469516396447437512255644198095991822780110270010208741384303897629757170293258323946999148688979504646186568238347503519146855671474579298418632689859501267027505093677981716973569579229744587436864364285235667692432154549229767845810514541959660437788524771838310338530896894475640516973875375537080137533087366764264406560852489196943824528916847280294344914783708741077759796879500448599846547223560209684794589425856563217018361831749481938902358075037157084950727124637668550113166302320086531797729608169213848180583578989665909404335429767835556502288429223401268797048711322746524363030233313176257892608185320551623567897678553726771291903751201477238682286251493255465255381729412935046784928441920024497635617793377464270862407945090163905738968230792689049403454304054288526810927028550962804808224666344498045453154992469879849991886992549534836893173622551071942689920885097834454307515714337723769979668769266828461903012513121145598273248581203646870166103528727651901061176467965309161038460302766928558277092653426317781379765892927515732746938084232986530970449321669632581528242975138221925152126261255709001774246897830424117106677538786233429741292249110135546823614542251647114345679504054487343534786177816310890248495187236729103595795104062138494874292640685400212773893040544463491363344363778581236787174041523132857534846523743689083421903423129270885188134711110867755298837216930754748881356649379973249034361962109906201413993587329317721287359420888121462137182847254552961564727398598512639998554327253333571210555627214116351500407839655186971374075423378602758468675123745695336637935046336424499467368535600954015317072331054670823621896155924597585212133563614903511025263703504535751890098151126070389269936152987754188241864601573384840748084372083086599318054569925036570985457919989513129608828556134711750550069531457843698489727026795704040984618608840925846599960542499414034426982246421217202009187361187102601056939667532900631645258422911195557547264439929772827148837312886585749177355693124040067055062176640004182372289240998157177777204754165373644547439567124675529564555963083762315061891600193103017557279649766079784182580199129924582014916930503861705290673271074837673965012405436939044258351747061232437198780088316105607758027407539782004024225678775762051207897733196519621499876622964428354663001367570089896535588421029158667495284100788497227996327412273134784952143884281160048241557799170712567062746252355612878069638714900831188897283230149604106031498937966060687474136186407428037638763537436350934646832341443728662906787948996718150137794946989319813051953191694482900897063152163681606022048109010175145370374332379834520801941200638797208878848553504516932838424949678861828865388295436392697219556998224903624181805837479501232212396659261573841442341026706257197593275620367003458730054891532038061709338547642637748700677977425759895071893195483083148166270961438130925251893885066173201988408575503361158630554950944665383685653827633097265533987828865639732609271219216276352606091090941340666574276781350635629389094672315808273446196423063106185149516594200194493841883241874665002522289595309071939055927400597366955048136626726408122857987985694051243004244610230502614188225915338224218933959633533219004732685203142187101703818260057830642014697293321049705521781567668074405909832507424871741446753018375327940765779135082350812932735114752607944375192375233612027598772499249853427832195497872157303841955210026464554186226954356476746313586698091125657862655359879705000966610927717761159745536635021053186770358409343570107277814984372345401718757749862904902096806194021783937957481211687304212554848732893259477626271901928722565679459174362265038185839893258920335571729771733774415123504233110091533269633343592808891087547319333680232536418153883110956410655475380447944967219927608608729367563856529585303025059136813065614689218173205197927257313523133853242597170478861094466070693263905223628086777588302948166373752030882346404783985808517078778437063887731279477945145495265363713736606758378454838790996989743391597874431014638188728638659379487821198365359460997622622692589858742247877553532922528447552402822814538329105386444084672576604206048791525333495063852697706339779515303301874787139326031558880039167176771579529366031840837327061695290274985127972083689060527063128845961731649440646134684935024790936467736017658001703679530611215496256211055969863823313156449307471140741578496663926999439498274085031133263154511077659468623350522012473199109374838978180755565928039679499911552217978114491268337345691819498243914803462771564552686736613049926124817084883088681374682840827009793917163050249979816598412761380754693699047612657114889311024672569180793283880446707736709994653198069467420116687259875011382127440845492308326802318558345536354304299328994316065215183502850241670893863712906053171668297150381129398032387351982530788033634080793469551263071904322091526635015777372906701576612870984749746635332000299180352541914036125562107971949907546611877769221254406205924248976218215483552037306989255631738660711131421337048247263630183547677080163939561224968401097725199016171315935171482301053347535066489602009353753290719549100495256566312359986446491771226649759271835467670349207670032849492232266694813664217558550950776051599739008667066118705843978447313407205623885086127627461420334530223024414939663311014940591269551557891510141325101233312038748828038074250140100691282066718457918272697262615473453433917643546515282164462244866016533966006771309025596849799580847412902638307524585387679567542906809632352715612246920064651189791946078289238636910652738900273841668286076431313284064018638744098291985769260084627039130223479498468697560816568069265834879507513964686969966151180166413399243519633608036995342397426451996260505707317063296845325301476479272847050054907194843304567701598105743881283723307828024774641228271797499436339438974599681210330955834286386250502956500555015893625786985773321632827483607600042830294764418263501614630866053616694503845140184651489968637252754621894114208995009210849531329848165412062464230276897380843371576538363524343165773213987242650110405743932111126897317690667478529422433963769222459541033654660630105076893133905742380148363423872241471765072573540854758674249171356209102476361192034198760365873457462670861458351739082627773198527513614221030247445439592929709989743703219890924340737006919623386854539296741185960421044271167426236912985661133666880637540269949876653593392387976072708204987622184931171663720413674147361679434982712163400257728807623812789846601892820841819185966451514981045806133651801274006638629747932202434344349629881829630315596403583403233130588705460033925461021891941138408878677012288344564767190723417856399453989392835009489932130707849650316968311992768388671380399854609892819634543127911740606116308837937144325191145090548193522556455754617684264984206486982058125742496438841197120563029848032739923367304857429382620303055680493527084013200350306472555547670970983338861333679993105281159718149154010479624823739064343358444229621845233424105925229632114846255856726764520762861120176187828741773277508541857682171011380395611697812974687844582058450165850194924884077235485817103528201177543141344000220376308161846451484555385361660812976795779999775387292758144886442819469536250948731010106866894622084330104022187103045806452545022783658896005837581318294821945682644689816146003989128004841626799389462390701963648014606326219260143734767122216305905393396841600093214809196228952570010671091871339228159600838212087814259636427721732885275377369428341697665649974551136780726364080268246541169712344328170848146298442112708883980264345683178689887872025416924275552645512919712357614577583045633248836104469488627257222009664856320215354773035223087904729956857326895151708623823889313349852774687291600115311674059479060621411911339749002341790694520842667048822176794398887770668807807678513079894448289695855920343348901005929119280087240052686719950174046685585535952782936180064290784880134757798802109478659979983861579438618678493063012530222926269960344674105192581400654757222703257366616110921304645922612053419079994159083492604116272589301909179555572000771143494180562054204858605919207424093087070864302960628607396358715166969301846038514667780522655982725450748406593290695500461673329044049291076409963904871297546887434734773281997250961402301415268632593352467870690171444842532373510229632336597124129092565370506081571733912399341539600285107385838203587377059205357882487773477594406603621908778943703180855533052722084351767894036065447249680383129149275348440794683280984336772358658159249720014337029621875936307226783182496417426611554454048580241177476582274694433335362903787527347379880870343505099833903171505763864648944513091964255485784663106200948316472876483361265264272948360127050179269475835618497699732410601922684972177073519887998375167017166715252271263331281672579004168025495793235811401411951720775003072686095480385569842034234421472687389766971199155460651619087263579216879520440349242260330548592913573384400827672903443956614371392834707326122299333779675649881962502583798955156004833599528852130559825513935314180455312195408057463696797680171142363482592747579533575168018173526128601164314803852071783372899469653572365658061272657588295495966686286914976349928475100400610684918506063951528574612315705834639467286019813755301376080892215265306060532441230856598973508608410870734351840205038406920943271962596358933458419771807073453999656506929213367125332750165811048136166393997518281078598784403386488968094124302874743097638754299135569150502709085522804391001334685702291242562434387030684246264355419382097870646895331614005902071320958516262538285208626101829427775826383059914493012150688509349713836812524121619471055240935597768448424281867871284970593246488010628501648530580990234083772490761644695398279420377759901474488829864820756042523480687288754128417454976725500629043837617834282593554221702943668738043837775222871795782449185430902293694290456258471697544995728370559655094072781613081294638887664681531703071558654200536932080774716081783281781620631404595169147624641806118201628452477682048229325149276276566426009517159327403708952418852825111393255302068582016474720260807988704276853018828592669732670131055605620543910671738490217647937114356463539656855313969737287873860553169548970524998538507783267817326781989199317185449278248479232450214576439585205593391825915312798908740869880619612084256276518387289523342197027287129161880343805296259324647489554703336528866137934719463923819034806991470694323672424382343901218889597578532234775713182649704659212205210971711894714524159714005528024003475746548561977426888768249083608371455166405426607348469595203009941561076776521092788902822907847868779291978662751686132022395621388219994930570455517812377842395477811401358035121444316867088506289841898799832096143103536190998360993000936025758159451421802830676779266668589584604899914095000380844633595964421317469582113039783609642507940509300078905096146246765492684211640134464501888500440328030488877368367072662786539086859289221085289204868638772908245793793799743067237146752297679227498887171971733460148378721706830959103353932088123742870152247316796805534573369072019373348396913368793987819086825984470148261577606140305059678858385870074280189073451474914006327005228753909353992665981360141459379291475467919897550555689663245368801058269373981204706014758772116855274551207643932783138409562041355246184665721958656703406162692154081502057026840473482152369603977000337858986945156385905798202467131797632316800426564292783844636394500856447220112482564403761349128204654075149488565145312809487762859164245897313968193439402628895079437957087234813863721132564884596232383635707020442822161007654813399836234059226253271663729685578980412413624111820841210209016403041455203160240913723054364290528026653028880011537973785538575037078929572213671784087124392367464168959555620502214580175182158793177251370796004791073656028100470319762784182672294523208994642247894532636864848282750519407610371326259475093833571664445391511425580459657699668558603122266988869100108044723907196316824309569173092264261081568079545999425300416564685718568644368532921421068155569733706991467584446133785345454975541208931753472320011865526136821926833252548280152976488616041297947901394099751459852206640461823614915317093997114298310835335581016416636187772335616097251579273393519179032685639282481586312932245090854251308048292397624430998870830055861469753884098248470921395634064262801049797326133516353743763098273124530145794121623778462395452191126997672936524961200717682356125764459435520196638941087281698710806057109294511397630014694753262616733579370656735663926015283567701868880797082634954859002448342599367790561924743830246908568884948146112722300818850104273038524399259332118639773021686931496683481859482869555534423296663939200812418355895956400940881572293426595285361345627813478963107094507365395770965419583799122072394813336900596863548202895125952838238801457651520213207718438218508373920304470784386660591686591515884524407770252969915427424961944891443563549822039485423257910752824057836470433171287771358368175049245546668350970047754704248958660870551440623051874821937783476152908507065049787180726613911932710799622615455979959505249170026158599459145363239962650788959686812175034969288489652865425765275322627010540905330089768861107643709729606347393904261432937907661263118970942435539653503386888507444493866773926361593367373168459075610392973992847674423840140811923262011631615789786500544048212817339573391345976744602001438157531307556288672908462366061214749419065653099157414413265079936960788986952220525997522328914329066660573461051350198794888815748608470782959448483846810830520140739209080484458379390782968435791791689086436394449181246193787654246508299078934500749033020295853698739983089658066760165293887651233118475978144076901709593046264631287804195562597521249189006424641850581882947408426802438887655709618738237440374719247935001568360086543739350414092407767863757616870824115177065461751886419997213470744325461129595312305911984132950943708583369163644895641877054964854328677052577459134520850800428231170976912427683918668161618136069023755527688793820669233388849762739928470745272820355936393524507231355154954603313149784109746721153494406936077509697532460102183241154677495240892377253261670940729942657950204995955608764835031835837963620042240033483977368591953187660050103701213094827283555317393499356081185744741376716022280471471992833322530698917689044646899672749282708044238630010650511591892565167176576104934606293955141474617718143410950434887770512874563165031814461845918372528498269465425102672579733734775481313732579489301609042211048906801044447322384816951221240291582572939110843520264173184060025490310412470014791586499345643583685449052564070555260592372080257200528291516530148753008053760500715735756119079795497638610964311201829866918919653731408967249515253841668213557756305011417566244088175997335094284740613701618982180150424487213969123497273380173705814529751310551329663443627081585087555695179835091477696485748877711976057030908261844469576638512975239102669184053579831541549052779034165485720458216481917377672688598249524831411232329977797823695376477722726862065543683593168460716474432356781779766680932348424171346328318346150486653955924511301948700010482231676166154302471878314855242205793988385662374837811352273696510323971354214918949218974330814365629989367752600623436894147499382019148695684729088187967846439580699261505226296077203393388555525872091784375980147167993000388698922599365953560751456618188112198148374018566593507310392140991663087543431027834947699577083311497976580744037687522505652217849990125990911356398828650742195769489999968998525891919426061381850412919616228597029594747859225881244005505853189903654222765828829029878450240949820028090798780111627157135663875728135381911154403676733518877785313017642169082605945744409270953235882284636055179969244495305527345184419075264954630040274149276614476291649632784232399009699020937925457474023560273676564532383578528673673385300658524989801065471371569840626050409185979105133438979205741131849964491241798184846049195611439273354904119061194581756927173226165114505838225107217186899070753972204578698418459135808029514456707406864667369981585599541405036991656638133585376388652356522418165477356494394968093981221713867862001165594343676311196572254255794276792343302757513615801384916988849405838720321224263776182902507473366119900144603234720388443544378821559862746156050762918494091734391813020767947037604958909957729913855372968591853341669005755506470531591909348312656445400292998301375394364692108021512898550762926892239597656326754208121117306769081216701737656374484451730785754747158927141223468829716791532752715426335087125657461920832357912791137743575078018007717293201650812767581012714581289097409090734240191340354773148289731755012202819544742298249333538662116325798902623215651609334895985927785220375622149913643222707930061790713730230656031517639103631344898362383961480003350992245136094894844290397864342089878959835727691162558985006576644120518090882640643275693430846567132647605626364454678066965373860279398928376896943721042079274287076639811502841339305697973878501454612795509697962973100001656481177805949136952638932560626619157895669933957966845840418077674094534397783102363543038010418301612469355543254320161615953344230838530960221185119488168232776448326919439446981662498021243747197517797942009616562846749714173329521719939928431845410256610238564628467960771985490800823050707378186478460181943577054878923007854253174835571610521984832671143624795653092985642730593282562355950658787026685781625683978765254652254901557358664565612869522342443466255469694555967317418543994342954801109200642539925274167671932474220188064051693011774235834252013689004246850527783513449068913752313144877661827693650825218898595492824155278809466846497295234590656616598633085872700007896689732200636514706506916421437484109595839874745510920478319510204092170086283735839989650766662537237467900043852793412371556819389312840588550415829436770228896700632300631704339927271271712794339394049374210187551788712482063199063729430958856639250579976350557257165644125844290963399305943901196945152957794483710155474639456393963852019508777357745104918061814400801774717788621217004474261486785168706563954917906178188119744699235181659001438497882908130454958654341168769019261412092514848346694460979348365189426156298194847312959960959720220355943777943597327024140373493282386948575882921962529724941677549436291790826370297224513900411302695472154336751212599933498864214248460961231453262825770634369921108327823068744723223488511850163631517203241589754961414484972480625231533539235649308375467151392465541048607288061067768346194128754058574468232268560993988681501416785917900483247983159007870973613058250180151703854378339781536012118761522014451767511610233143006140611098733565082614387629654411708682389879919171454276878190449935098588308583510495521386140008058499035641613944508089637682563542076977400367685940728355880429421176147581040114856867999279485141075776461236461704498105058914755009059258704999422958941883405342316728615784832846366138978546916045197499442211737824246391577037643268192728682918059509856286475952619930887930153452182809573514569477688112675283359577274497151699439074358792880574905592594868255308682400559104952528369496217085859940984534076456288141578832787279732042106732146391928030751363159859107319373770012512690745391177546309844253111428462507923697590998901678644955973877734265675975266003170104118512312688025829654760697071477207762276645987463794311466772305086194178089172108412702388272717531428028818072081287370635647732163467264312255516429579429787881923795116128442158742249473789188529271839458789819149945883771093366586298835337747353130462713408747423924794942462132610122817398884018763412983703288984449658288034329329583876775783261512484868261609196473985339389589225770221063524099107853190368446556092396552627191340117052600845029438621884883112635789705962558069695195256303206893893966214804885744992287759396961201243985454296836959707486445294838495243271698385357038673122026228560068944258031255936437696889339233810036437335838406285967604248013105778784150056744005833868944451567764455464090808135577155172242352950402281530492937250290586178766502520662103835497556770949639061314408955938086455965736196909499469023179725889679507158195231088834843799310030029088110500702468021453143270767084758892267647413718369788262552227832117060028060824210007386862561980035012116239637460757654778125129831981400048659178085650861453942177266783169882042332908247714664386544477871663778307958933543854242040927812200988859431318763880225133545300745585956340154478828543082915667088258349348519835019297711556927146290532114457601951094350201803418253865585216576652021938531910992912340884843225393839545259312198474616507854238222586242232589148459609961299873195899830893188779694630588768837283622231777792553029871695325988229351920292430974288018532674831465055362183997380238507244788991961625800093309603390908522488745366350462471972162059202041453153182961131962428137235920105214033538719964222365313125992183327115777008394783815000543813091747350022033552494669857645048550055109653989647801360781536939213166100138011425637737027378860084701551078586789112130381442539432925792907822869993579925628758061959210490121695355592909047694218972806189736659219013630060481623913390731432368895222887246685839071369527019267815967162730820870916534110428116953240868562187856683105382313728200765476503338788678050927257046449466690196734277800407978278988074585140440737058969790360242300876155769163333703023504581671486727772970976882939672889640680223433779738827800647061765307701495828728331997138720029691566369453534794613055626487343859518132152744991856008134340381297660158559617273783395993277823299550009721785101385515046485859303009835542280518241314968629152078737061506320017864001652159916251291312746867800389201001848004915928140609413062443356346228603523474559854561808995744356590580177821325809003616471862987449511748877076245851184311088993171352034258948165061623932635302168184965467710873020463807042542182196450649054361414648093194985269744720459529157503763622166019972691200706830251396267245976163423595182892745692127510865342407824225728577365755552191091971762977472269755226048711636045635442373513360318765838446691973001340348950817033599692569708545310537379143782973459248832875233708232311806064415249658359599105178466793933446140597141786433834181750743878787740101346165473216525060503792628359454086060864292207200587074283049117855095134590705180755540833052435495805954889410415629839220222762943709420565070910276159511370185926188614784242647792288867635473022475460669001599339498287680705122477052399278140765695446846108038888839055595595903295623130306951151981053937597711699861179812174647306001146880430136920609953275171019563817487795128574015926972833739342263495687544576050721933498961326480560132558133500417636317648892990986497090709761350255261146249297334814843031983563364263053340753285234139729008550115567794026057897264131941609528504323287025485052038912827585794739553549515179176284597983722415656485000862856074216437418932741131287621480087377357623148699109358683745305350369636724487059517700301470818822484062932536003094621642434208397484639529467594324529302006761116072769592895124820705137987330552968287405618363285300316208853429953633390581161525337864687862585142984386144149190969556488843143397547838621434815394394446627435958897188071228932271720065710431285621957514313087930844337902868894522525401637014059691896422069200368471186575564722772639807514492196017705170027277752740978834964435868245504515857704105693607870453971398340614753692901734962169738839923383567305123414999815579303390905478724761597118429917283039274568374072645400782846276140582332696688025074964541221645920445177005734925652914814250354487037022528610266470326193157674002843589880484994698354760160492803848547439197150084953100576436955909053928824031277677685535577061193583154674913784021882450556313076765623714182695159472657154641976831311050652248143060713295415859300926087979966479216498686330208656173906372972571017817999102031737576301545347303868185723688394314455743867179315928017138921736283285466732980323023004436976690133750994147653766929590600355137676307400601594542825974511363569980554856728853768809692861097656324343564381904500973220031243779487877480776095220384863032120537624085441648058387292535796514626879089378777100338715597947316015446426238298640422946374065194939239850374513885495284835987392423358902518067358764064169579823130669151397989949950727340808273603720064803037708641183390934830906776731554945236529952004883921445230133093305276164086416806630258969435892590953212970005197333035615689482235561148613168699911035892270222128055995763035132726155976590177132578933702049614752647395847438064388954537521409295296360333320755449225539704684407911344913634734585104833553209198849365486465402343726492174380321266853453594599937334987060368216774933916121957529245033388528967212838372955555194760212474387740403090303790883239147209334027909970921448373129228156945649061910191801267947936449800628532764051016482193391000216971492273711521793638231968820115065034656142546981093333158860724703060647425389328401686478355279101614733329792150777154740537002200436976035397144976528086866411001895129286362718518445060382484437640453915498345793135991824004339276086926233236981516078023738697411925326023448841037339262038182746611826945485643181696360229542177641893127832781297399626259163615028304891946180585577665641002480130773611879076023403296699562030518029164262700057244088781082271042347574658919221792690122891906222787709898125085866957329766297412874647025810663527989612711163056421624809408988483414496101884241012298732748447753406093252555357945318975452598500680679195964792126121497638024626546262417381894691941934373299162332328325575785460069183566189515943523034245298169936413365514798602205442659055722666772785334515965550672137950703676564959108737468781770736629147184895141766681816932201934154640715610339907695547742643191849742172524708271634578653953207725111552616668446087614487038373388742568236420525220916922707789488479760766031582914382571176393438749013760281207258181432514231756393107284280988622634308987107512335648008868510895419771323723307852819031692418021730443525937459280157269336113096410664331750162964844304326337356050495924429129010332397480166421325773201937138198799704980024386023417208028585818761915561573174405253433952986020253201176122716965034789639425227124619328661407437725209401447301746247447962686569551749356387232568822471969601850332998050502298336697967416736362819680580092568884408854511645995149720730479029878011290449115845176449903251388929806754170142603658359596159510712661390506092425058593754636176620530009338137737204848907201090288024342370271958584865483664337040861045046163628927300338778945904642902314879742220615348546686310497748484897618210995180518418347631763153454385398116325101129334010809098579121858999140044051104603850186230367492568901650972917361697494963120495233789890176788981211149546912052610555863416354992272978767281767024659416478622064722483510951049403477762697912873349579936546675817078091300286885465945194061947799406180433781650206832820722507986742311707889412414219746609634957926997875062920873058968070074175429923868626165365267164455501276900277922641223979449219285052407528160898438772850851609203246199622785632443961274132353839204149622170283378482878202517193658883857927725313636685598142125244524704398793776722614527280434560700630740766740494999960099647795280247941562612827821876822947475308624985122151901533267027123590073117067854974766048308303068141177830104669748093999736764056032388797458327774967045825831704785392738882599631383551637939738408195486196609577957213645743347060694398603883923255548474783969144435676254050289691089165600522199706331612161442390410300142580946035293436159331019890084788927103671555258162582449992057449466495335219366624583996865565312670957261570147301255788003660163861846971212399697334045542434049558979752047199961688642673561667998858333544640236444381102329781017160024935177106780883307942852168480384076031484429788095426963694653129086707675177658859465926475402539545312191792023237702244868575242256276765539679104861802499930356501241015946469278835836455403037703719690493957679877682420710111720915040695758924756151104966356039011472820138623461526555460486406808911383259396017771423809281389598389108491189566548028436268592031386476615826511239515663192755022901028325711668084083735879066693680757640930688304306724167649895259900729743964551433230663268891769493853612360597466800712550369985700337495721549796432552341140192613235830219407306700899946684181767692788767013825096544912177515775133874942825722485177288998175282229443375637842811736539051736146632257586656651810338921560260902600967077878114206724705280685693695491918652555461663252615938206231034417251360302526829939328607465692170778907529492813865662149397690220138584369990590911157432677150869263760208702203628744800355790040102032857307312525412600831347192947347575330643851566945775923784461887276118710569217732437432922207202381485532586272958086619930792505839905977496224362116050357900412240672714312892146502098016792538945813929779926102507243677427195838640126260107106268616727736133153510644762383748439996346561249422402663965562477425501990318818679002572926648052544670552914065067341847655594071608941688912667734282825838345847849087005535461487484141598077699580330023406823327829759308969183450167536985467884791885417485792660362234985642024305441187480431076775876460672839240714677904874928524062160904207254918222659085359114313378350540663220368900974290513572416880827283690203088189047448808014248806857390719824828374224912720716835416493344530704186400515608572335742549366136078323764543762546057054109628305456695080531475119117140953346345419525607748467094314257730756827417613904391659241251235198974760094732483287400653740761016790486827745748099456692198851116512144790398088916015192125598697146248191326958041772701906712957327919813298155152778673918936902798951244854842672138567064019594713507736220537331670675948475084405035595226431812122269102733903446976394674267310628236110553072697205572971704865147096014790801470936852224726296853314650333453901703016111456494149244517106460244251520396923957602794549998259782876553470437005921814695992241870720595555451950078710069838633912193383862774133352360365773462413737713299853786182627677566498577733960620559340063332708542777604954467403688515398685078235672421697753182199841190353164705510173868470272788122317214077744886840240322164022270122895678474770535199476498723564063480853577404557815378605402399895009667466097280958438524049213643098837513392951637222513676830262464016981790351719907123042838025125628766822717467461535463710386904109074222182994567616868167809066798774017580013062896895053902638115233831994935936254843565369344106549696844378409906363364341570514763151999353994697665662607409306447336779960832419356948233831992707011771692265692235008579776257294309137793980217275665350130454646204479743363897584894680114904529100304671639830090387461097848634839798757983889829813733129987042904246334815165123282953729359961071331038316960928111892776283782294160888921932229561080350224127737816875592984267836948233740174226371955047734181682362897763958684768524109213504375830365058590239816548878815968614845711551895036861338757130443380494856641395809765816846055828659691977116792922702171160088888410506760583480946125911439266596534398524769141525580175866351286510093956628505099995555372282901643911586510077712763103706250370258227004380073207770647458876103539926837418752729070423179871275238192181971920877814301374771163203843624114260973046513171916244822452251884768365101462771241144056844455659364094965686540359416402003056277070142897235092852272009325294446447423620475665000212807075398168916058218300336757431617826299800012581070623587154278972592933500940421897583649490531236571113181765246628611676233706440992755679554422554963319594840242815410528097527028308177395189870227937735209984532242201706766012284413616267694501344310004100742501751105068773386354451827428620627281495415901760642153144687503786083179094064721407205385202235166684545481074827146181913207854917682799176864368184119532343322048901597094867535043120960658862312164222863038041931719791388645712254136750596685036437109097936700729677799315190633499253953130476924041651312124832756044418687010378964582726341374677902777414463253161288334292381270266446942126701192934826126291720477535217799746950356527383565825748835107136946129888924453352707360461783971250638194233452622891901399740034546898430480806786498001765458550143708463345621045332089146966695655525974487837206964189131538373400336048164163727054568249783586020055442093607699999780983492614991199852176442518683430371358495429385109299411663799575061291604471434757302052733098421898446244503220200957919806168872946825207949638711664864669751149033931883571143909425480945810087538815285631679731957355680606161309551210648120793680898046572208641435820568175646461889230058198404115064414277598015604386754144976094133031918866049415210708709397792296154101986526411588149492772257474995227654795656617492055063392278636326831068414075400348044675322757287122760501012907210531593660292453003001965260525432749128747124443419712335250432868156394876412531422795285315356579449816018651970944292163579710042208174425972537980691746996189393511536096967504173565089466737591694349951702984532727790939767164560209977413476966759347791720783789269333896696647380353437412565077258675195069829476981276793761011917120246853444862671881519547652536696565012219556160942484055336442078033598422007981059378783507366929841849790858475146389659481202075769450503100188016385175092845707952479497534022173500979411804605082484091325474255093007525551447196110558177241503511710059401349957796754349847282059557611394509718389841650827873527925283334765069860375146661094114575784277453780250274791820207362962831609607970275517435778003158254990700403953295644285120112762089527034639416068615303748476557942700552360057787610062975994652782615456397424231087981527957120870354415487804503818985509203006619545182195158430160115329494119678723939363098354595367901508855286088630507813315943922798073978481849491555052635437857549035327475976376248014519659937065448878626738535078715877934983843627731211742602726316119853758634467274493655627129268020145474189259401581167786709535389417921207036126492439077321062000235287208264634469888936248229165522039446782546891750160432526437882178452628331807293022775108349484109598943327201904838576216695957987234347141242229350827457422185251587634714628434646722226927979890971558165968785765468382347575194948929050847581715905089870955872109734257736163979477634321067699819375414839067450469272901378035850328546590609733484298139725774571129789388367688765265939646213210886345475033462034933241078751428860052571850067060653334250189399395529021578398082464000673379705709051580540630798320400305041900239285081854945195682706536003614120468285528625229553047710034855741718428412617669731687580163266587241304729398323631326757725690936633104768338473321003969851215987446416739659407569709047013930100844767643606162538225326626944077345237455117261681692878281530760738872111531822827753255890246059538127510819559635806426033296686401964146742562806753526280140735008964901357502824860045021510036810293318833177757002148677953031591328868803811099496706848107633682700781904275088818920758858431724959880033589975131744309939166588112201420601991141216737351687209953079472596527098749283226885601539621716373579721641960035226926072343923433212612743573808113407647399017324077855998038583994110614990257710981528604759961271535227034797706669265169573402703060543330221531050733410269409167702172205670095712318206403584466772305933687967291732752201223369709744721467594348348556431687736961741260240299576015298909843235608896477759805978630709599950120702142797615371510307806762806275146658182845373686193992557215708125280458356762179602440349264141114428270890561177696175049587412331620683808777345556979108896064556790030502368017396226839419466660492861935234939267254135821841623373174603615603357964303841351979965557718939837605400490728615748668167097418713622720565745271320920774567624195159834382751136220757592585737968132078818810982387850632359321673958048609684395465371388439707884446808403658019381217856856300717451434351827718384356244603048697004493493014484538362559349197021031113073820748304151288028517495142088575586867921130332810233471791196089174514555329571472152711676403736637774828134529971424023571248924037382099293514407863796719187356647414628100494550967481082251846636295855450490279122199821185660737469986724046804568019031414490875788838594923069341159056784216289115222932939721706953006017869067072217238182120222774118670401136939167569466226143279600522863369040912304889242376553067210022614468153225133237140106555163013545895607528605415417228912727318932371549486792406126632246547041050339330038121754866429479968244880400340966788077072331732145395968642327655380751797692949957582794776226094958618027153331505557809101136342232760161099246061301692617107371696767754519625842372892265008838466369371649380853348074929200644418856555017589042082147778169962167565523170594822971796857070163093630452968300704808518340863759775768160715872209952711097100787250837822827969224573224784690976404840109978108979590944557694657608921949348047428410441560583014149236795291799656652876465345304371677505117361870083256823872717454546848301296913980275451004928717842242165562102778226025062976845446745135376849080298150107261231156510868592936137615295497415394260034240617838734378260425549430865323249845544955831995076258778173307291508791103525678266615970511384475834333645169799577097143166577255846201663962118970381584023208204688582419959323652961381953369510202677237062673190388263540987929759216301976623809380269520238131642303102521916937151828824630837543335698800662370132477630190762871454340777058633593676860008636251724026292085224321886950718433907645468578730097737682881992013281167270804011573203521104626978507744393506731904848922427670690672650419412584739786124329061583596119137880889219905214607733546278445527189877390561034715354743359312942082941855342581873621535912355713754730328963942396858803396552865541553928339853581416501372433420767482543893707684349437416147942842084116347465037264899078016781184020745630579210419203688787503151076145454391971052139406739860259128283479914339916478140770288414426553257957817681740205355778169123474897586746414722663100770564146044787270468563288224187686972391498623491185933049106234714648859919084515846123874351293995989745992105164037831764620450457042819002668998865352461077249115860569509718164214841564192439033114818797647301570927192137972680133718781901220836149487601218877468430285925272349163173945748281836203582933404132812623029943741506014563544264372058433456918217319438665130123396112944517141434875475371442017604318384097973600859967252975369576587473889021026309690091783544554385801671576115430927713200317518761489374659737217272922919188438958598263724829804647136021248506010482655153361511204028432442187368908147363739109491833972095800991346854280017537550232783362545097918370206864993927155621713989751735882848041178430963376460986171616684870623758551104803774259164699446121962063481195505004712022773968365313456892180048061302475242497682730704192791518433022777527170889085328048588519358760461899708910336062853752089221039708488512560537939240201620158592888234399653738179048493523193437632994164829009366272308292924377076189499545186063948116506198440097262771006103558158284096301814600440126484352583290704768067084825246121555127698197070054209983058314130588436090569035121554068173596634975070329698474233017675244665922870413950240229678580928522996408033875757865262050405165950188482274205952692444962385659699979041164178178864059612373432357390944476102919056338466342383373464289756300715155268853269788420164917200928165192733578291267958310929713077278143286439924956434513291395592634350224404379249720248210426692542299433723987906489037868074848112049211339668141112099866097401398429839395877234361912543133796394501506168710913741989323978672658446729523651561971129215952206272882737989129484901319820414385169407034449832299932854253967168603897565210766932726731973480550444337333909402914983630164485311249276398546900872915486650953580791746961876541298780622827191807024825689659695014755113408129426579417797329018935049710132242268038627334026391578247831383631800939140229586086729983930052848986476931568946249871092247795871057181699764806036878073960496354590356719000844508500041281624995229929351885624986957350934243189093295856099097944283353108497960388035204847939827312550585044806264918958176055547907986858600459023026449113561451138343801697081656606209612078928257907300898896747385512251520003753780706224706269967513763796236935608663237191238722002057697197731690666944208998714961854421518189287526232261836678173911528500438827715954393350207959019347390402720193100036282749905094210340171205467443459927169138076707738225791220151861701905079982550313512921679549151623964047967987359134519086790985900906936705690601610011280284720188022206561506841907010634841535789125808779806868378442335020709500411171148835594528293087988459021007219837725908956887562338148152951434204377284777531603745921964004334685227081934952794867803524370251912529783358628583831932988825966395721937810699302166521925129071869309337168187954894118294802116832310937452283699297236041939955143145575446210186337051951703251815853852977784476467286058131833565471081663125891045953178817720208335737575364152539031662232390077885377873053158528763937346470560011040893566558829505847885590670357405224785574741237015095434909672978344240486968574252723188318308585059833186339963168341519394523316290975275315426295385648772304720318626151627670858165162850914601784578016200699133415174866427898669388665714565308377099233683716221050449301810466308298389192530503090983625803232223837459761633669665227037435885034917599495158084415418612917216396024428435146941743781204360247814230987608834519240808855782257138626304546510826728275844796382742705636245560547988675759947036552295005060169994491197989542144337619396030479049976813995854561183936080898975888176847066711895114491941898146950851311246309931720689359008046341112989226388026387211069778362002179966367739219227376295578861162615033155932936186920971138569277175572439490371474926707208899023721396780360390754357665132439285075198686777203433620265116712788705307931973251004768890195686313282901220255597898573683041340151452265086591490747596911212073438441531989899751550132649557280480997146893589835274544030818751767688677643005167635875853697458106873481816634751276593180392371141387531619044274142326047041999246134821052420082468222228297146895445979826773264213144688902939434124273453069366993789440174109387132149459850345148529778815812928080530978247576667156237730990867734569566908019675486511661316424866644183386931132895546193113665056210347295032730174871229674180638380314934589329937572001783790179125464910750988775773792395542283489032455775159918851630717166521850242222845074230982766267065002448917906158995764106400766785011799979510348138593680717423471775770780979336345642260931332561222229881714257622410652102564585193847798302932446876272158275633257979857464048553686497622927718693939598013101452764874406343708193185266243028717545727715532144886614910670696604512233526846653516441387022711124069379656939174783514681884870350490935974191581189325778885442140539778622745933305996876434796712032788339836921425172934688274422314615952148784905572241686044825421688472712002066838586149143949655634571044670059638890840053015398124006050823309890968792642036539715925432390487848838952582783961753323359639870408116475644802000507371072562502661623680338241296258369061286603778787860918755105802641256147863133462253172424388825981255103756645374965917452251362461426140349022396527759984150040778516396091464378407377101800459232414803202955882278080559858070883177664226436565444017535545263374200008905659035874168025378459986968163018631426366152516378600885954981179933417988197227775964437419514232573769756728182173360370804072658709018523815903975275378439320791572819326464920706007310440705279754855681154313342709890045993665182610718701238105984334462513444108514520666444910630627773241976798515108311527637280064475196408489208499850565210655366789986504116001827175766428111095306156269794350438940084794465387254716199736488144337385400215665741613988864883164313209313673160866501327623061510192653979049784303877906818476422096024905971399403721529732585292129888034313302825336539332675558044701108702424067406005948127207243720802755536998789405163685328646790507583663502273626173716347084153369351966126824517236750200322827012877699526263410732300226635047657555195110716014282745515660259180551236028352405587810236119520909836025748552606587762965527069958529001051704066038453919432787701678655074672042913096246308824929883922472086059127016298834418065667370117740648474877234735812611003175370024349860078894736489030736782551921400919445477679303556225761050119821478516788759430715351561895508603322261353562159280701763576926829097132317057743413871848009695694733380937955588452222831063434242874168219335821202570879065319349976272977320633109942782149694328316383456650807709585469996150768259103453920678020357580165583261866230782673650484383636386401600435747356899461519067338113557627220045225443234013002747255010270723704063161527227560201068460109475885404565206750399874147564062033568852029486825058762815410866652111961739162083519393536813416584377362286413210903297633513681521759812730810271075063173156150174860444069011665573862228207527768399869785600703496871479747073313872894382221303854932561744064458328198269611693801179525823505011273575134397186767146019963359914419771353649994437283701594504853418784284177963502638371524432335283166206055363158906631533059910007836012337614619938899199125708440972505333946035198930894803658068561660158630913236759362629724133710638409879032593994895125007389082764502550317286098683111598264027717726757232390490984466017652865375459364529900187082963061412401420189683330407768525289723434649337367222157131752832158483684381915645973127398564764295039067264670168738552632642761554891497353375284195299517378281483032346767176712944878483151211824273360430046976542344627258339443285237818643369847124488177470417210592114880018741699709453787490057805881262581338346721821008979084505828381376378761952592797910085963713219644415404688395944183860949345638841006623621900316346442755477075726284959158984936798719847749672027418793292517051744547580301485922923524549695134365132223940899304746310581685984953267100792648709879031326199844841043557016798819493304118769606934771191234445433673816785518607588418977224534615814841851764019639489662221597727171935789875109187099931647121704194621047663020860590049731209774420273607968013770728619656853353457217012194490029580060219850790906241761289995817114109179746056744657043667398130509158377741703853670704241877305351853030023440959286143950917375617710448213397631515907602800641691783348485644096355514443159094293017532340466896902804272045610969095262721679573095206021333523395824450686260380427925699086366085787800012237672482358715297586240982863479435570182451094535976341201129863324832424444227370209344492893638239399899720169191333924268906233892456901899494752799646205450208822275785681150843319885578810455569559387247034510035974283950422087067246652548906244052247506945759320008245146925906593771128841955768867996239062567637559370789313767445615931293963884081672677001054607159495670881765482416595623692939812648216426585628709607624997720123947208600011249379708713240012909396257013371082511987932439876596522312273701331468628347884660669196654050707235788544799396140590028555471859868883597931001098972914683272254075369948944980008334841582402032647942752561105240843068083410369013965769692737592955518493333652975381092193087800773151716901161660464020700740835773949482097597955445491381979206373124865047412769830445236196124594867804444921799979833344315905182366112943451783872452507732629185659261786752638509180788553986916511643245815936019495845121795222604027807780562908394479006860887673751449996934077562739989299562266770508946893594197626208713227877561087068523672241295773672745765752008937607953848707170803913458170802267979453500046820793942282226950267180707298228610611510155023350640781433787823733348901189460298448780620660274360944661732852241216604063032753862059477470403135480327863366508526819182491036897439051466269715656905577325451027029281883334661155756929339777366197987370983115081240369446253537321688353425446193621258289614287813755947029388950827457587058815608552733589747376208855079546774153219826102626237930214866481476245710111067894965154467959854326072709471604234792992312535515906117169136174391557136835866341395779932872293462084632058173088800914050123615769604796053667735878885066012901146848416249107827080539158094965944207079675791521986570357409200162708182537325033000883903625664338275914211771802493961920284324635945453005704166433392245211517044498543255326922047620196952571500748783325582888415332761300177294892593980977764928054864464491938918896137129451946886825437832121056279341744144480831025253564104630305609300210781313456738380544445254691179206696303696799362790630352407433936611675592040562811113001652912470175236218988135770958754245604549134377525006039415824068105510418406692965344140570509598232311445912583836529926145804475179228071084154671474518390590635478928679785649591378649975364855762948452408697746680595676206251952998669435117655949415899447819172977173346172644461042673895561496264970118804577578634058883353720371069158144111769444611071360420550873925688315777156671019288843611184910104791284030250630099946031710403350153719751330827206110823172532672840526933363178353131987925662331063041497024915909939974356148248946710990854394518028126839442912947214316630169606060934473795968218564166652662539326064252751913310787214928471721919687649319427222735004281721094230762829383032124394394446149834286801709186218727128505535012113530276418691555425614216312644063003400901122695552131499014050260055953464707588345958910512198346583327039896196980137673214459800404097547558302919765674484719554877958542488888316619093516036493313166117148901719000519525051850895186511380584508855591968343212764220138400312168845825863377548498480996411741469533258598525293127255211644330095261118968590572326963162286097992456714773357307669095309834841384999044272205167039152850974400195365551584012014720627983215344344057174989922091507129255198422507285084124618875023663820240019939380075273241849435213753860962511065872955658345982735585411019058823054308380657458700338074417312216525639279295602887140184348585590828859059296904489835906931732507461662071247023063103159310546412705658541284377290548184521921908214583436417380009374063383454329256065571956106673170741271238538133527382002022142801516889569640874902029432111759020253191586797739203865955098932437576632892090838786661581867205984055326150209752256471265968957170999639607125392298221189200308142691356531079710732779959601194216680304216286299889690202198169956945088955664310958913231762993768259515475709776627325986237782570284576712563579244767421623970182727691238368649835176948849724016741792069607213234150434143253288445611296025882902663843286138343509354318903718580332955961834296807573296088500688530707374021677729769736950865558163860201563047897264592408930008961257236526988039842971542566002770160106044094584407494660855172179019861525698145446683724139751458161252647629234567851319981052179785803812087116401727559319026950811159429558728146446702366478756914816321329051631386667236594250297597601394755733202808439385166887345178277059819001481787452362297198024875823120887556192067583397232257475397694473129120533240407453710773256425407106563403873432516721772549478456338858520519664161595389728936758842896018177692960521244934643494723820135762123946170692121219931751273550400203926875007453812939847826178138431186693204250194717302346858000954673976622545194787353467989537172698406063591351611566258977462193155285387655033514500985577606765189040510358722077453850668181782338384863482565292483878256498430325011383938342261733728695019952722509499107469437325462086149929282921666568692358171255768014744028005551832360367693630315413883006889016899950644359019238492629822644893280979502456675270969502611633612915494017388400597507585613872258941162308056662310852447387942505147056648161449767187200405254501788965844300901568548121501147027395197884988794836474831171222579185253104885152808653027355994965970334895733083871685735924498055754731235418507971158750458228289475825307035526546581633583234400265885870614361717714462215919007959221151634722061941964480129167989058213365148353856323960630455498290469047652580429549143585571461857857804659453952907635726013764583349441917092021352351006336274401363532237491350422901430030740506725491686185930151192182322788986680968284666801486213384849320549849382442103781684615000980912433397556920625705705909787231295726616408405597079355244676403555929153133790668041741436252632469096667041599066647069158917964072404289851704416476413543698479625963027228003063342633135317024418106827562610242795738768610356495528602208423420268007255936358752976428861068848622667899394880447756548980991256402039778066244301006752793872968880890364765095410848750523076745951573055179391207571538251380164251441331984022650193568419453837333561755517439950889667763063611533381159188786524147235891859848669169857353065928882525655506893486614925774802911034348173715293039077699183380597250174833515703700025949033922948022826490773611167894580354792489523642919429165113188024937666893869804165727979213781839628558165170547764235209768121644421542603517306740426370796438051224564304719629546246818603596374039634047379039159414045269676118183483201910330939232749719229835316792433610172654859294002425696169271416002695111659530443931101344547094298927015270051208922919371903367948694945902305899762406094763479112968943546405367890963179953885599988213719796477071525749743244947553659600146486645440891197072751151310919756420910857321714317454228197207413923951649143598689288888786908153306577301601711556805963019111169194313768704947867552420722689595233102751549691532434797824450798058845460520879234840514541536927234572508965094867555383538763346614134202819025006545043712050668594345339408178958531219105343248550733635148103593929150898431684516941776495064266156014525208998277729713274105957956495371246195688586129811327020950423276780383992039859386216444398910914792844936115949795105131182008322313612158041588571453634246253883064981859556684082220780957427530795442440030875990372677697771719211963073566362108052494320019553710670936618298612799000198064336525013601089463929659260610339112164235837348736826378765381805410067062288877522197570240431455365937631363636914151022604157772927151436842414249140974551018584677820339133273626001483531813998983248314061092024243829058091056401166761244626124705115540478413499325604681673304982245303926831567033829457806015156028537420646867987308207664311833766485713810350139679268605126512777444049827895781789289240118892527982368788239525593588130339425727183521847705576603158160229086325856384060791008090368411498083156148181291763344544682518721916170804425946907379152591215800585794217497670563225502969767858277519885636296112573720703469437385205428095168353752426820730298865969490299178055757589408872443013640285633565835272316940364551146240650647570997917958498596499291444257325053464613804913843028765961884211575467139976981149088843211224639460866462567558208258059918409603332843566828730662794606632349698306404438330962739666750682407335901954823397480305374860442274563808980214379354744657333727413662191128411653537662589039139373900060366274982859930637668253593038131042851933470851816933597361874264180500459385587543597017658917177861339724255535660344995935674838618210780437508066100047317779355073423892008879642863949473650221637959593324368313525748124570435021168350730350474553930093106555496198886910027537709798481305531149651037445858947274581279899388813999470782847246064419625465596856369152812887848743161203266858986386075854723014236614147905371674614604741070237551100245745018287087116963116672205090775371200382255798523354826910658744076442258108917236118781016982520570242784496754643367496843737061370376055460961010479592588362393833194317932933958529301008628652905935671346315186960781438981452606301808331502216611394607375156462932664918055729235943280029188107039782565169482249255981904285162586306622254834908162115667712335386891085684758100730390579817275723887713681563533438953575907859704735569273780128957456594354317904172519026221299428307285443951618047737084345938980247739175078902452990455642377339658214523897337477494355756471257489304107992098780753863056092185608843501728536437760956664340783482487995108584987572572973980324434473616888640008407229991906550516650358446039154993687557590617896430285304130533774154186954995765293475388166094536334694577626742807324357900940122209346982972570555513294341514087772263922007652657634599225112095210820324852670543393601502206608056224849115630133850171328531103443000859242545353735112209119505945684859174845749336706782070304724338315336242430468030290415147693231625331209756677334958357378576935797152201808416625402214158832576476675590852411061960721087040057951211895320331823882175533857722136838940821513397523302081181188556316724593827856813697304328219281187415001553343281289319993812619544555875273928188626629850499527170060527585222910647522742959689394724324516597654347249159077814722639991075064005921764585217834533384450764039458860930893224995909501461440642005996544361883560748113326750032684664210578660190199526223028937976784826341377800021240434146381074478407583245367287008790153468924145313395041286915720017868429095719741393356272686443260309832574458949020692958130019107575825116783639253580449073915439657809172543856116100120020779699119342312575738775090477691142129897746126548605529121237674500562726524746067428026206997572196168823156891959057664059035751056519441157726778014710822601234828393714959397563604615598516731987250277117605485979377361257202475913652368079226993250027345684055157264943929185055350594577376422429850320643506997501715127548805291209160629804151745936325503310373402747757977462979524933007409185990908070614472544931040066112381288038194784345300665849482745284829121646768037655019094624712884505371522651511587144204795472893733604197299172007984463442938990247233158685138091636161750127917082237775723367397375096782870195371399372806173616972326341523255821955352459687062070438951539708401684574529065116682658845880684357198395904140828540638860148414258833734597744831440178648684680991170828831947318100943833567171878478160646942205882645890006768946497594089259795479913612961430345907189383056977239876431598349022771909951286060277488863599934345338624388604759587561635218509295551484377934460327891877664082635127012631724522777212740929053113673743834888025605621853943121076157976614081505084922629512125144655198597611257506065006587714806435217870025041788164848403630009889344903455535522257563856075197046021823246194908700104935906340694194217111960900079698714245789169234722052068681240172150386649670816301092604431115101120651515452787193818077234441901700478766307876523053003842550030402190131525576920432222885944791119994017426646051184121281176071617622327177689490771270717093080596335220677867729339739976462605261880157106444677795063525645896817812066886433509063679305217068115212680048372391624521653972225057465461918764099553969398314036988863729363118820140176203786390646816137275042387572853823119237096088145553928520410373900771427180013566259200626203172654396063078267865345859296788443760466131639125294704078667562736422458154960595541861936885589951133186410421060983202407763129857839076153534099758785758719010258548876236316051921829547111678015838123414585361993980753986483361707605257421501812078217884379437833758535396292045498898063983218307265776536975962577363413059738553511235985162103619839502876733256187628850584933139873357693096800131460806463638671734308795789996998864955780093442307728592420909408944174028881170619531815725906137761082606096260371386016031655176631359860204381984234834682356288121225193392849387558612173914734098263794058865133483678953908913368947120463957305173990760824044352566265911282038037980615586755657268056149480851258534802280726724769502371815285202501674991474621548911832586419608335377231640316137189660370187651787608198745074020611098881393118952972032022772543483230130268641460456843789927231642320261488483565631803640455716897267802728571647723739145653453831403629694753957494210790610643643134234460133153487245384371607239349372175782195723577684919764663952599783838717421825223485737245038794992219638183988194665851306670410778320230038687228006092895498805237085925984973800901652748249881893032492329053560559360603318864695471666836069854998966861887491398997713323207189180813653092564961649760454032586470076413838638522611974802886904755941321360832795368912047229776012033492732497334867324342778659823974541078644182979230067960029143311919526747248374554975093141053614039096119996918208147693359421602698622633799012639562005793126174333580567186251370854579123856978585236796359617100912816889529249928822487472738205789340429765095893434451151764963088206667497728580690842657808344102919891038623091649744551044417135568440861432731713813205616096782391800818207009076732694877932111962432306183607765375488033315383999768038541649322783352530081652857480995017869480012271378429329349798367544881018742978239180870881910844426962712748562781307716525872421393198239494865010004600241257392840818636924546576675245418757903005630059535053047971316192554368446944229470282113803603725684869163138089644613018230520489189296666086384203288436821636232536251381606323671715360277101766404027831062195225205470766647726403516919552888694946648472849254847329326835612782851976542090721999758995476653255051481785262394294277249540257683576733924818475648163778067588451730974674051042725872786020209834742854568866324802955531281742953326468384256109949180050863934578208204834550385295519444622320374439126032799978186750867866884247267984359599214502850192785224001587922194371650855452828396480275126576498538173546118012501869985345216828066460924699550641008544896249025834786260824251266083839798205329889447393519599714656177651840031221400323786356117690245039602709060864806999082729654264989952585194435188877494228345918679199744182392775735710750997817804822877281071668426354898580991379154670979054321152502010407844087216305299099871961127334606304915348361656858310866421631203619500466123385126994540574403408956494730939814371610234753167678900748683403872778098518767593604959301152039229356159105889464308947949050125182358102352350456181303822104906803053662429727509416406660668227654607897872569405696269382777008381966992962003219985892040389924292557429584277315329803578035241906460019254507655138247690334071021988600812293380719891484074150708920637213585395472912026764740000858387030917938676523954730724071745299005770597802694429540266315414981549182263710794407259077217788448628995574516453222189102687877350689817165151369181374779838919583802937113956349379871036125097590643612212782886666618814906921883866622663288719786428298750795644424925163357953190692751054875819197531967295509866037204066416913223181400290609588709495057916119571628541003733486184316559604219441788517931207393066798881785938730491261331475665409549027707817504700858166196928744899624325940836703231242490615276560878931325069342033132747827455860789804630722527562024966306794554613226826544934057912478531590099787213560658909814375954299977000045716463332292987562924069289612932716112019691664592758904079166875336747359955152296863708216195957709578553459203427895300905975173229770440541648656503927904382864858663840132474873545138718583943077916520053000600809404732075326899269847253240969414973752873799112754827386415258159701837743212245626458982965054252894802538902509100846419539901568089494369009281751712084899136989856596049267350854217288338312842284554742675631154824779230388221637326319084262850945321120513075156238481116716868767691204833444151007213487487556516741371420169935906184391194608897749384183206620516666157258947525688019740508698986562144423504282621161370970550757017494292628131119362774957430474046229129681667829699390467602929362097493221435729960598427999761346166792654607405440564769244524639061006219607089506459004875734888665688392167923471726094839429275550467053013931974672715923457623401060510615413576715196853422981412276208392729353822223590031418703359886787605176364674336980633254840650200376583410570311546267191026306108155908652031982316424499491079235200027555825142429618152232709393008561789544899434485844990750585102721910546106354889383557807338015608717229861737229281555392668061969699745350486758043460503625683115975805964954972535078077053606231485259345419567054100685258872819513473168161195557830148569704407467816119870310864201974516674613874815292592749379253062341091568561068005869860364612300749085486167611522869232097355228168027855552909176219594138565513272552462931248644290051236238770222322112232765737963417994035988942754719265635799367800835561282743140790498980948443557755572343173599760301471546204575102705315097426932747651121060580683412816875486886932725593919261055140683391846823535709637748847346702931169197070573129132080049162200360657809550344954194782959745528364298701953912956396497665357965310304229568432355438655736813745651418552270498331765354334050861171376422510445010379016545674279834499679232367076296545869661714425249901236719638074618354326422166188693777422363619251821299981545560888160880530483962516529355571492607196056969484716432918088928863764560347532209285270835124720835379572003102396878834709092509126937391364415961760756009769953849447564783461889677963907655203075144108168126057362574353813422054122658164992271371903004532982494287948141505540347226650010248231080058745818397140026999551923543025145672616816487144304966646655229998232315793106156688529624695267617486357021895256902260265909929503016728162807448866237249671602296921945418900797300739714981437155312288610284474717964880930660318669722198487570770690937593421075153442250258265341961536129200963149915883715840589477058380095308295594998098544267287916008938744456561038537699896144810170710355891332393917801713028703876230565776306561589391788461956566773657864020754070546255896998737146854843625744773828151483762921985729896659724473724651868728176943866281068890506243089883886139702232290209487011933984892522199233167543578828004414177251398439888352890597374504860364218095398284860488415662018445861553345833918074358957929767888524931068402429670379512447993406933810413716272617961446611499280618089271773737701011195267641445245751081481899748616744345366931652979926621887333293537194710244970284536032019442079583095683161021977133293814415813357432790393152879111227887831921104970688311766459487383754355813186588223961268201273579335437109290025896380109055810623830633357974839080337403900592181044264479469297087043378038593628111414090418905799815081015339531288215046193311886505216887451841556430686120831072299672401191675925014005512793775924253239501382570657679561845674309270051507209294443635187457920405997266811446200823123728412885425750658025007803075589733159831366395283059720545671286331661823540169758033909342281033340014537801755913905244085761821786781823647839552058896379407124995052201808310622515915164024739080173974499110338146061324077269202015716301228758218305696678963110655561707444486514985523158696617951070488421347104696632297932801777234700801125127395033337232645493293119206007457262557198706338533887848900217673215422623473911740363016230569905724075158926992225264698840046833413867312294190799249011109334433050830205800830765734549393628972610093145232008412349303772594019713620632729020829306165851099258925683794256137015155438894169142595681868030932372220045517298390541148503237915407251990535697317635727841905541645430049979279908010232283785652804601215035763489859757570124499948512203324630167475594411840426100727601909135922383953849028723266263131738040340692273728220172834133279482987199031496245585361024961506353638813311602697695737889531203252855278228801003424962564482980084429510206993797705501508917017218439969549726206408112580277777022444080394545437881095281142869697546891933296236161107391795038075339978615129088447572053380645403600139272255379944907880651005664551574295362652684015243569049424445952326165925349399992516537470657980620131338154841985591371534431571495567267823193462694499201902184171941081887396001002056865483328104436937046969300684196033445482823363582023539539185212389375554627472477019313877109242310647897020700972554156926566864242699476982150836683163756018772578877269723246526081966613873003643643901348809603548086512042061342616962471725983820490574927221772435422940827179313523543691255968739799599908415705157236371128642764743007957757691977314729663554110250693663764861486475964107334365113265240556109585505236693689270029732050389694735757103120178132298950196783660425215555466522676394966675854497254330357477987910598686584677666639253654430569488029271888627794211116452167220933535652943617642314985922006754846944110490198258380555887551974596063290695984895048044524140108609888315919269367688295661058425260136158195104529646563471511086052257952391448262516674516618514921464350239386397963941251467455113259998676589323366652327637276164539221101715295879074463297196874788262590359264178040217903725968722808780405923514252061434966772046039512343264326689940758592690805285734689127425386028936697453705681946964738336675481004886693593902465520064457960881861192743942614030871486519091688864166927476746578988305435433262201570931516716603643365191919502226519935773206652055258333178244052690613602325494099709235263921382041099756577901014652191859573254418070128887803960942600121781025131593779433397402771803921975458101328492334682873948243900124246148055414022098887121114350465824668738551849150607220166076619805594247773311823352772216530979770395827350336775873519778025478223875868871169741325787388272804002292028049038716149935920841952441264294899520363170309341270700015260744507916462035930520574168768718088425078433557149580757002106270335621902888074867028476855815976398457372045808901763102682616823676709499481272599463294609756306768343899108050932982476616265738940802254816506363479803835032411392319455086119999788835586575587168267281659712520260425920430767660032764467026843576030864744458220405342613896347346431074891181231706618500798433774854267980584657837189122549128781850389395651263505791067568409423574314637813367215930183084416790478017404892398067895192907441838183470929402953170031871026748754214552085777351541791212853789894304829986812841383901332252825812338530863639354852365407774950429883802462156530522205225898286970058422441284352668797062188249880539572268631704831255700585287637567522017010654619520541219062050214615796724754061367149574681483348345138182531707698940848365301710299461472260074838769206192694966696594765767883198926166560826086507335371453656719604688029111169117667132143885134705528567385624269490952069091685942952719765546388310825404263205732339573606993785820932736000200538038253897821706102596377792823407351241838831493118294249059913616957181809728017873929538819846954588635304305953107214362391600515856541103814421001144576207325719820434140611682494340059328292814237096295983614954369690153432809621123032796258742891502584852396005892531564880171384486984690369292749280313367217093789638280261207110642115524428802373699623416006405856804744182090230243866914227451121939172759341000028136588611446075363654295241809415838332588479697264657486056686966502855889632695273617410636759793261055610903981425608180168731122953500125247175889608071646989725908787933412694819220615825878726317053149566737089397074407245123953036351291785236295747388847882497409184014007104510683553297199124245484903912875051524631719966977139149296578639250374415700392579482765336452265612509651839456589536286290660361073290010973474592796867963539726926650611551233265361559457735881959214744967052052538895729508993288817191785991644957075407916189600919181518442001069043222717993962195235201392895806716012516347046111184142486464750880140219669821882102203951818181792542746028481064587324495067535993440029993850801817260982509442932292646185347025817962704346877552552463633980272816043815265480910698878842503104891103481199109183363515885735964106037090927957944916481903232199835889018010398205693535242343615216852695022594977016201914157264721731005120662830550746183226349959232610015773989709140163200712611745738189230213026928272657370388977914615482100368233844998869804960359797000564400179797445012795831621849915840540498336244138431319170885336148287134098602249671808363092260573946764371311703974010403368270031566822608606882901508367605331534714788136383163880754317041546306225846706554740141396365947759271050911296152276247132939107720428723965410454955116355687545729160719073040741765135262734128833482530527389849492826054053900884343627569820239493360262419627984911349812813109016343877383716578305193517432244917728583817830956744352394288418921449333183963338073942518499321232147674491704091868598181913410589745314356900128927524013954122145890188844920544734524615965183774338727772563080874941615305161062610867243974094199701916730803910685107956439994903907553362521717264739226134464089346991648260364070049677823350486426202784960420284842972716990986796625347416086517951209554188777144979178346819138662955056557935368421074062655054751191651013968036522568564936804128923721594787747499692546108585848709120691283894911208793162983776725951756318884128843963861026330787938264309563004811466797760239768460307492350504610591213291704902682942887788184331417287087798068498411268195683732356229080912085577461038493048886374869779515443518253665536631266584040802757665559815030998335316652675905537156843266475508759098294352021011487419070389583119081032316717728726197223111380465761875379149833141398578228841451488688450224751465591466366760506161247861462435660657640866354608442848198834791927948846560396797748389809476755768382414080926509339886791223618876904455969145224819735587465621421268807017392404441278599420749059139638304522383854369869078708583671567385200979697761490348326832806656729702795010767636170980349337444419072436864451254878908456930116972016269830938330929593522046843888265104655402174215869497404629505483051797959657481869576722950380705134473585162798602696398959639355427686406561559471422422086933713726269426993554225708929080297878163507893771221707258345768697056967330025757661031841913275252965167877254518886033464451825145492286069588358456253282434634483480437747210675514315785235108505270896758949705217397975160067503163498599370522535168215961319522288901311299734153689587741336896252537998557409628345176890812338474357496717821241954679923196077805291629395040722416643694554713400165677435674590749538015671624554314604760104974997323764016879071835293437923353922194455601351860265736958457839450409438423008819511533861668319215742799653745735150202638123960323389260033647808215717127434550895791654788840072125330745936458046100805997404896128307753875552257916184664691670997534840074078050476584752064503795706258374304566730563146873844705779817659832730682599738731622408012801691120505070122615800923512532813482698754680348815342488578437422591408953602017056968500660650511876797090056202091698798110968762530714045838855279333210470319923135156840839713930109719076110187988924576518034841720150114926257313170101140399560087334179790536297955433486275332009671923833261964518761745899572095923124737583806355914735223298851532736988846404340419847024775640515771855121413033884219788583722586687400624471434712261027582367941523810163856631453630653082373499697790437604756261628541799556437884546836070987109423716468765020068340833895503458669568282080152085369893554628203326047644186088122879600733121923610711939507490479656241699073843182115898890709151603505964199938103683859410086464944655003690274269323412643107750695662229784056303582810250156136451476819455910530282111008813855856097047866715798220071090369689115820418109415175984738256135488925087986498952996675337831198200488567543970569927941750411932320402846291003273770056879096207537666780268132575165159079189714065872935430201895464989087336942508787777850040917977990111000444085636433000963896925381670378540333695803352520382824014096319990083624129722685881933719172583448142741558507316823578271956687344899268825443234967727989943173625230709643337355454777731539597306024456483642167356955542003730242504741026698607822608455560447572797390759659604512907400934665769548465151314920404101191845809894832450447002853262372993261332912424917167316584578012441129158110689330041431976781230171228338654654240486095155850722056574897925499000747442938153196286982337301480287162324209857900449914760608236982890260746601945573814911562835370590465766656565112039165308129914437483988295729337275283433112662395572355831553346176012215312443711247838982897714112869702937398266382276841529181711515645767346374853003648618667009129817517968549283613049499532827978758510660062591411784416096149155060153202701604284533290390917201313151704487540302406168033733353931824134438553851713646898426761689629711802030150247074239862690963722878859844995966585671268717975078367428340377039590116401629125845286445650291174661531838836123318391798013675316915003322999572190167899619960346923021321949275266716807620053082616677117114395407188299035294172450293994064720297211295792607603074716136512498555907179461990013257522593955199801957627050361537929351932618775529670850153710843060605928286906730020820577264045521790141869722307159541453624643945876829625854772722032711810882282439496705541796066845299000689969420384150242821485027742766504857846653544533562934265688908688957940302307685570366940423325220656004579587953162831112358829137261876743874654079667906181308230380921647448032063925978121039204475324772431659606850474820904053644421054805678108228485924637392444208157002807988404834979755063220852891097277760861971700918176346110284258255381031881663813025133730338801570878728668201209094637979997508244552010872755454534336255982647913339663586991759663380614908235163422106292876442405349324665731926985127657081476752329418454676015298949635036292011283213025850870655785590765520116482115791978002598629509495968097129186518744851054398744559252860385856047660783507802950198438430942851120825623995301502725160432114813923447030637918134422466335319231833398696839137996425267625327451451918891780269241368482265748210024583233392783713769324753182170364869124316250500917177472817814943879132270178479695433145134227863915121554791689686230840723077147790270860997798553644550087985963497676350213210563131221948039664033835288225496319363451193871994392155754133506719203987928325983180855004564687823009888343380375513991832600379455754319023449763111359062806572755426650749017927635251078878053379928377208140103481840895859117026159257355569462187438830045428972358566710919992599842552828466766826257926475411111476107822910323444135567170718195760556974482945172112025082018882015306643100736144994240665691557355599755367344156411911046719641447996080981602261856158313695450792089665283258050825434251858264791719816520315546841967778791259331786765925926110412934584669516422360527887234126886803363026542387376123852656351036207417703938736690875264605699561619925849014848982401615273870550577554883101754993948823803996427816819488775587074466369515662735681247270915241773377730149773319711392900053959993570602212465749841155110451561593762483636651076174559163078095454442517985110096363910573913304590697862305733120652286566834456765853516460403391485484593050895047922752504052378830186929550003611476266024961328981894224175779736138412426296068573848476601572653363013479238752943446958209549190488847893542684346514905790615358871279050742846509125076178242975611014481289025303100875666802755903933748668018265139049913349632053411717892534588938092465109081864244375120394458786575988708090247771609524984866763643439625797664823839113210732423259111286785213439505621079544647855612618663062367527155015524072258760696131470860182788203212290195786174589658376756895757196173592465876818555361298834261421783933094175272219064114233141922386335431438547420781695221049382279788432656789962963158222262425704664019052630528220545833755625216185841958565253566581650561257285643434587648491324942591519375951793957187259573736722267781390899427600843681857133962739430008421160320465365941491109805544313447040233581385551027674483228486820779515352267091038968382922775900451374544628004201543099441062544858982039448077201576507853914554066497574581416251977571857439315730517538904082416131721309645890081283537396739207152429984763929506366707199859134337942471349917827591396506932459852993482609642251909806615363157112797296745090564102716956927539059921342873247014555494279175334387848957067838315367601561982802318892160389350931303327927136691768771690981238030648430306275822929383481150232302291019023892657791471353243759643451239860169322689185951620906986302001842133487256016209310114319906655492590653040737040557006370838597779927093515298749469565210420296752545872304920497695261297056646710850853307537269110926773719173644371568461894256457942627998708346741227144577197975237040881923939561462886327011054438302918624682433004878470253595872968178735746072235292916988140911439207805173203196789416526879434663644188733799992225400275142713741223586441951273184820947536903449030611369713857176823605424994834532244257172536179780706515681378617364490037722419364930863538301674957529366749666754448632997829751032200339138759073381383447917152809539079682060115022901035863026864783437298578693513220252120657861899779260519322942633719141876031059309317904340578530183143593821682418817522308851032453273770380721581867935261793070949632181603237554027972860471053189998908321369642834004358449919904172189165246177274750769072582514871992805645536942865875442107018749560150783768962965160888544801098500560494931569099748222447235236278580998458678507150268023944905735457898228232535911107710484335610997759708674587113280229024218608327142599170584582467358325273681344117249292680177965634938479661973975502459216578154591207849285068967293114891037579970656754405263375916932138987847409140733513463675093507033360084422068473313319267080254993461204235428764927229404909815595408167887564131050981442621522176663481514341497453593425954415329086787762349664529226248506020723329217142808580407533316976903001024295848157400780214675173825325537726082144496593310669222397904670157210528790658882072319898668765170705887140142808493597313911402112182444680726287353857121920336004659179870480827723774432837915741665765355283659016947614137539928274855712119280210334381240931289931266749749024763383737147371510113716736915583211423001386362714375391609002404109963842807671899082747213834185993492919616876594118617825489477932716135242982533637802494368022210589093146130794733842218457413604222838935751098499600137668273648777177576213833257191789514862949884403670938255544801073714934520031220089727082642422286591834470746636493479833129087876315208898398136906770491701826047470424655483728474084749587131123111024115187475303967586234572012021949181841222264167587465819479402014707968884739072904321090185743449609799478808046785824977767624006257432542245870920626985468480477670340047853629942661235631024667894798317048241616917270677257740157675216641976903560479979451448713364731323046465261464224803217645582410396488745347469699559126342493489270938496782724976909631712793391522564833727429970486324641218542654141407216973225417362269347467235661138056083227113424052394904927895032711126073241348304790391498054961612373479157148313235227449512699632559493047686121466996999043411904993569627588869766670918721413787020031808711921216080534809507859239966279835216149455314559110829254454197302825557414301708421977393032439520139567056508768755855101707745319583596059959158886707518940162428151661285292775222771068413933527764924212311039165238085147249620411259993308611515495304435505314009203934274914131946664401712217315885782841077963426715928049157360591388157839255451057400804310678765489088960622196336409002268231086944467550999765451509423586331013292879721761750020947399595578213649889893619175699147015664152671923536548042775809561185369527718115351707155027903874835765856417163093613425563857107935447201542793401167806520419866100558285882376827127504964926987543201649844122136175302210218044969956959411513085939180559767926117609140258259393931278223814696272000395742122283349186019414117185739702396840532444728748246096418467519504303359028786696330628502802833114751222993276892335623183118262558540348706663744324687499681848663644909566603498098225546914188948198144233718482237627666753274598539375206066632452136508818363976610739626472532410661654421063503410857375029632995777243371739985088955657460035851084000084204841995305611712924180752302778885277745025087767379928419571421229240354531504588940769251331528660124304122862837133136558831576487611871575141839583782001830538657547402492251852159500939533651061283781215628771395024290769916608558313121110206043284929571258951856753778901630528880844177931842539855718070216087264063023375908083336241170633877977757853252773316219184091476050601029474771403692970208209424098913502244292471177779511820195985675946570713574180417979274619362160551526482852958032250609783232018221591172784779506824357093941262894954557226506557598173579705850384087777694802605925061985603471969792384544361460861279780588963772748629704138360545422506197814780040630839628351887425062815388500584135754254683422568099758959989239351359034185499100152696686399940869107059298397239284353791962876196564020246619589492308958248083196090647859900651211938435892490313087794528609393351627192302050498623960619395096187818491967232695250789911488467348999257542763253800315955530387716131143769214920711534337414976003528535866665393210334262153885134064197350762671214325959728486798718216806388554487536697401072049787776355660680729765209102417291145744639876527243744193517158204678152340920345210342982744227219103994346796859473281701648990740752229289616655553228267811337538288017315680081341341326085017372458539663306028962254327353155850227952317986460360630497267944956887491509344041771756489378234160976792402294462007840399509211229409195304312905404894554701734489139657053721488904100362722241179063409672181746067579444605505403135812185719922826431735857845222338907682431925443411714474746308309177441844264183202012542082166444827914736384527168241748829302857700938402282219126123256709547160412224883692512971189733566517793614583011001904948099911133836669534468342168271932452432357460885691079498985964531059808557436282107228125947506124339734829040804651783413298289857727061238102320124559569379252812233201102970504729188985666967252936030952327217287870844975045878412620053655697650782491623457206233292027797404096002654800406848436595204512195489108362501177660260098790936457047146179183448781464055509856568758850618154051970674805306605782447733264653672883666392883703766147880259606815669458145318543988660505209069343891209699910042684058678721325105388291277683949226219222835144128268754096148363984484709292299398801923464473995334613266623933081722070894008696191999039880045997290379246254418680626340638894236419561784566847520760852285320880649943388620470412182610957630665759118105310162985673948261142813664939185538962214178790097189160740101505614153325832108896479202171124153151478163798600813249410888487295743960873709288244294156070326511078078591061391424384301436566682776666628139281733368510533442493048273227121465346900251340562670692229619620992664450991042330576600466086003788641721964222384774442461488791402168335936879616341871016273879830798839513970534344597761189492071956276538112712917174999048302284835217012376688142843980154679685237438999671863790130756780852782411762674789169792937327921488524528691807166484260505123749729775935760058116536919428314533268951168556601532009106823300251354172542610690437087151101418699888705669087740989325399108084453812077716301802836300082304173515242970931282545347504139568107454019176088005262488923186419500709635478842102102754794394344331476985000023637571522264643682588516210137431196145409147647277605124079659572074812125529022147979074415766495344523284586208539481476143729936002772483784063064039380528414217245830389303092634023386958716950145397333469526958702990781845403826823028197631753375520096410367657789784420713290931494286851927549085116513709916511999804551226521028023357929450183044276393764938946650133514123233885747260703447566599079802369618710937405497166990287183080863823240530703126033384428613888987193052170248489032193431252902700207990298409695171362053540124852508314204051205495117035216849222449402080142879466679845548083354350434336073525385813313755849285818477304897970398854198102281593603102588866713714860726912136564088969107116304464420295042177021980809634582377294042138584158146984033806822869412186297047697332624619802574548731201582085929521751235832954638149437433191629744513360568404611989228757468715068814687364361856610420559410118602022236787222593213661339825032408444234554232141024470754749706770515792785195768995806659253206412595692963798054612243879543571608835681353657067710786104757601874837683852438974738287472020476990462324502169446534731254735088747268923764896432478452215449353559320551635667860502248130847722483635506032741716218500865758754827020094520213024643006888022737831263772473159501580790159775007106350443594671249090163908991745007862437133006086128348754365022202492800121998845781978366772309105814881820265782879931622099032413617442905296469017234129038861970914214055966383549450210222749333517634344077527876403981900204080665452200128082573558217519376698190950260939059493321889402781827716687235710674678448829257262321867120170013527706902949564289836211305362789082682667691357357971354646930230621845369682776815162106325996581180461566257216482955941687953664877934715705005739089005478287385952962326492081930194313699203075444900321971352299226971262552006947860517156071316846956640713868960335063294785645786456272272419109766064000394002233641283593169970763214394545446472227242337162114416469240901657813360739065375283018466559094723928234797230001344581121958538365554964611456875291467579002628480673643177411073073771750064809121882855237608112150260135691114161599014298590717263053602665356202432180538358313269831536388672776778842668622860063145268538467667893410529585867853613581502189051454034303413341518169583681958038057043963169350326207681867956809963349882414469791651960304121319812882729062078116928713489539305521198839173482873017300163817371948134394958637549350080845632282183128840764729373949844501688818305780957659625154191423827329823193525845273716869815456935133842939218125661093344425274233071322535749895732958980307828882776052406202426218082878134619304463943214721324733221289420076682646795780142408512951069881959963548122131588746049998696568258857662033852087507650012495502721699529780836039977110000096794979803727263622563546675425373331537657569310164018136788005137919148162235147877234263680900939159298815233246933211581384114098538000583094826214974552612867475202842932985602082467849982816468324225398371493159924760134731922625582167178104337450144845185246888961871878117957591670188500209724240763708493333808016012306989457127146174396523048206780553709398383616749118022449824823136845437076198025153169796248526347612946151214207927147862869632367310665005422561487055966617451003063643366154998906476997698351794521974327846849951129097727654982610166636460901105519435553026848193874592435086767465395961335031002766929364948660207539691877460643169018177174210771595787362269061238161154482042257955817189475374314721006221960773314356958387175840223741303239039989139429725417682104888286146481049145360044934556895159961402239585722685352439657768045412661474167875289747568141960308674696706194700218298534848373799393226444669522086960181845706858513297819574573534159505555380848252891742059972358660831898728574471329438599296313030490075894435483846775941049045760485156791509669657221224425729017151029862060893816733303814736374155598250644052727879591993748438897351100815671291677707151892169991920916269735845166814631306846395708424813937265154336961507551744140112609334035203662749354178426587008690811405512821512862066998965258985709934990347752161640403891921591780560286101855364433709831557551107130106428702280020402187934232905237974125513195193799837365721545367632500670858420333568039622951112258092125411872296046799307594952623172924856140874240454444556030328159515299237384548595500173739131918492300846610449950868232355277844389007174872151491461017597343109879073137523318221794131181702899585752094314236284567471770992983330827116525056229551699178272968837987611620378351562493705872101082126592067904012158250396775484451522371638359958621206625341198140231504369903206648554008645039449550408725235487817516317165517557091791327932752963429517648444872964472513299865582420949164192761702278425716507611465251731546031687569892196026349539413287611758376540882071839444930325270628357612805159975896516196590635081568417283173631908657751223259046695890078120132355941070127334891198493099442656056936494865313334003393484351841831267259209968888158012204623199844608833221237038722524837891354778492961482238558259524343825460276921142308930114920699795285322060631916633001957034223297972131278919697381348279506136544259459927844293887037480388708216019633725825878928485128092044099782405369922443630242805660024162255967410826881292343395803671613579160647379860625154541328913935094440588857152981362700576618096336840823256771259173085180275244036504494760331319073867727916129904128954637394217443645352697524240404192770822557915672882495909877738409596570498617804696593322950305332210086709017881379890798553846422730892426541959264170495603891683294017043585688167835088061058943616340485061407609090728808641606104159821061667835512515477788301072727191725693987529588675236279326570197222341578599656172420456652079279283305337297272886667776730989798287353468875347436485389577811436127344039909158182425270736812620653611642057576458612298058300646167729257307654678026154013410193978021827476734789358436068951745756736975451568698164587089812706768410753529872912935744658017305893807395590629489143106863113237850857956677213475368840087957781566338761254691926187534243602369526533481622490364493351217107833254049220231527090254015634061279312897998101063580192867697432651552810596664296304837875347633042791955529195843859188747409585005426408217415095135126734990496478892767164410664027854233270323232930722213432736649962879861038122295560389189206804584033891735014270223960935080627654667055241596715713463027242504449415348943176313975856649609841427501343885291419418265297648416386819707508177884592424442477592998560085669473604803878202610826182212749685748517457681419636212136206947579845485331833822665378877231758725699329879940700501320292800014492974345656723432114051992029877318950762863730350675744944503466150407786170665702153643322133872155879849466908537699466666129325633179896263971088788910922948224839280180274456266277144424879225438017650697952199544386484652747806794993817146862624086787447026217348527996118945706352123297138347317316126990286870563188054185287683740784916896449106794053334959736084501068687906397034197143567764787842157325314463581711311821605512771460090845400186444106168604053664631431083126541192427696466956933704865820335528283607084315097120033054778367532563579200635897474078295029341805289311488548091506028751895322020403112687120487643831572824441568086688535166742144841906590924555479836632758394558699163744443968124679882557414341256762833447094018012478223511249182263471149121956623036718459346297834813847353131930799912333755054167505026153418931960563299229506108653211980274454563391051884290678087267584244610255110696302192638025622824533320830062906336501134465083565713914750690313514228007736126993799843213047212715550155795235339231250156626281263266914585524863304186078995306356247661493369682305045458703693307451586057506382428122976554413332495510936278316171921166472050819490705185062996655585968823389556514644915097022203181430662664979005937533700194394953802449856905246046857164550204568200295177443887398516734134741555779340544186135236664289548784505329130197247607574118977763933804209230738606998363077903559516244026531350881764823017261808732766465965461837155377409735686335196614856192388228298704370358475159972041538284726248663606212674341859609356146710838609129279835320771603683188590459305347688534212301748313983542346687503854102522822978420222937998355364911146439696541019510485258210099469653206948696103053071775485450034795124785936384173628361492610291946239071769798902872278032514071681140247383860213368596244149380449835691192109117204294082239973732781173552687134031845171134551353413302411944496590316774126394117341280768497573316847085907778576793632721424734154064607525360974660754619414471709022692731083988897675529576174242344307993826783271558511166663225483484004628573971824650239574673472758225341697958456971182052479780180266909199912709915505266167847434957737047157518562085769778738525758281652440799807119072545856640917035695459179469097891194920018288781613950256945494336253982733846091139175726126692272409928123539464133229292766098798733359350937528643965307281358856274348396444110310562809065680698358560309799471282451742348678938378626671375872746593991792386806684471908009893414250993611238485909760518360221743364458304724062470376044918925253598563184729913600634865423328952618739299155659999154948577880236618280462633538015129045321599849774664789304954962232975891333225174246194689868398172419381358471913322620742935773016888163921174767270942923081906853063572893432449112718606421324781289779015952174961611250965080403869953378907851406105326742448597540074042210559438561380907661106825466744756259521999649656110025736788828432244642208470184491074498225550697471993376547718150197631580002276018941906624004945830804234603517042174808936084452209350808834784886405445742793067615686309404576665009705682043126156896729466692777575536512843017798353418422711952089512757620742356009840483568788633680677373696547139632590631336012024800296329889850086630265999684624768841431786807857838902130748743154692192221776449541509193781955940734362703918923840135020715445336475281793105340377640418702693469552957372708185384159268646041938603950176391505544530458884599668022536566808020791548541487750567242837243473386656184858035384590862138715891494570849691981765887251864440410382258456289348195209177317599109042573437496950366348043018496933761207457838272330056278312896383302438222946221606291545793730783655568864543439943528797831244909162616344694019181121274676683361332091003566819416051288135047456007082361085796602190491298187854839532400954885620754958444878219337064732884974492760193363657107552308439495797077441774576771924964007627985292320470752439542451265340640029146211116398545916226629337834380752716738620725074717618561060449296174828462834758765943983453202544385641943282228976857486320604265135874316805412978825989119441963119882920624077601609430821693428339532817690896844019923596643497259292213290648173932270779227681626809967976876737718579621202628839395937084615322436093035464918541538230906010825550963437868950227314702070729494948537154604783333891264088952799938913068853882413287016846033069583621593005098873911036420585412738737118819453732065158502890655778945859030127607050517996781266151794818332566269537546323572344139203791090238193317151203931506936819584015256901369043565762468262117400329326910497998027636820808773703021083727885016073411789958582798776200325263113726945598305500845854992863666290963728030587613624346695000540692048290400784550206168065740653843915271775074079273188466964282521501410302265844545212489909177273525813790947618876089940211487185947988655081570812287181001452696881150661553050622424384089712719211853794073785108965648851176747933222980970978517729053848119775932226857524151529261579646611955650627319759796277876249629382914353774043272259340027603851584510186593778655232763404833375972071399033523158376351855156409946756504695321088463782490855687305067484593565562464876998888338709835031615258051349585486590861501766034166404728745654658741264394829141355095384265374503472033349440842381826799501861914800788473858676914623348462125638527238511196991959816756045389510842278958566845864396253730087751425548854077901316227578002923830737986521063116139839822764691813671902916921094463069442212886518434015531929987513799788248447549880568783215701432750319790843642228573661624429764746969502278359326642108368886702992900774180697172891816790915459840510876514947088423850215056934797388797378705577879127427941317897091732452831825398362869571454787586755886025293438075540757351503583133435758046871710345962670903203864833080399249394796023840455097383598207362917649224402709215552927766306354362912217130885960001431828237237978678116231424496716980122303148779678126371594074998575965988737386514122972560982172834558472665078927720238062124490275976465706715008699802735691812729821344375872785095378575469261022692412304150402353618571406976895934530559523344061488061952198174449291011424266138929838768187376240021158249142637752347344119419762642098390382602247536597465325089699382976470956796702460030702197125509167192686194617742558327209556819985822086059490996856497765480839498339138426798125436816666323305203420112090929729666330660919518956083509395005626450748417270578719699723200295446095597387402776453495757936652968100401106373472875651781869448964440448496454483076469530994406945184469838412626511859444387498385946323809193557147297839329644127047070056688535945960669428397626040029468512921585009866442226421743225957175954914245120284587092566421439806020602084618272879142055615608034462834483616574185103865061468304687238924464842547009533417759551200692325407996595691799271083351974032958448618536810673524404931478779220605750239799288475031981632749508651270660030659398015406985360965054019385292709591552718035557936284351653637221934389110316203337441508836937947611456932615309174191382449199219695662121774889682674610871335936492003199012324399994191348906471013817848962167049615122985849193497706629885647068128628448622042964624941624041615446648649877405310827908568369595553552297452317352990628335056993892542300722072607409406160990045446426811296363308923581584270925490184799827162296259726359910454506246139099469729657321693832258935093627404458629848170176470989018836906348688882127454794013119898680594197461969567869148006198518844383696852376007947534435009158325012028294204820659425038899645745793669900609599299479853447293925513846628341526199794741155735646717927652720407495165414788120839916130945631940655691332752540613195395146319135247955352599624247107613037917574460827368330731018030311137889079711538423182173130343820119369087710106594798254836192266465340151477200691034498647091952116702322315936031101413140327078141952076730610757289572330026458906138880741962004262401797446431362186986872284547793359232701039373188121108169324711528952522155954385214681101303251554537908966687151487768044866034435524492411713570958874515802309215181486617556940185092494815744472738530689368034664263551695435526958655566721478211897375683189012238418190090904000769538437472305935470373620463651964985997751936016122986206659534411051703072602323995847987520383253543043335966734048389330746435365236094256921062379872738610672619929928102934932094797169978937882380736618839363420096860339611026605544949269416687800903342212529142429476962136465835810642388898144474205617908385894349173603037770213741779977897023713449767495388555967273943988781728043960426703976443080767658936347870083635973450633304360306813749736494908301714253303034399169313276117108465582107586806911290416320756252297194726429719965066809907863761107855831516461414070610103053662217847713410458095688410217919191305188906153665308754298154963539987616338479833190561847148227848215163401216777744141816311133108972054823666386036209976540655513355012524877510402906006636590052117910119591817066922100365093094455735670432077683748608391187742366715099211190558274401477033366810293968625670524357254386955726049065358498428345890969825410111862209906051238555327842159345383406630615865274855265742310479218900392578514799735327471682547138838496880677840647150368444904619800642266838330725113772925880095290125020682965175988450334594743555187184890075829634890383220685143947042520050794115845400871168060528747661051964557885218378174982760269177077382521351202973747488348834873795906309553961065498157629850791325436655653433712541212701411340141646530204581565682045888010039151610744197410152509778488043760682844535414468027100417283393271663999213926399535046709586217701308443937541665429550193202927827596735417769240513388455096878084645970307192322732528691756578045278410289109356251567157213324065213218716769934315947161968849842789724029286351674989960116702050972193194466769053417160157677745438854470734603482699912078779249542170673191943728404841654818617831212616837663445786182981703178214515919648507539109149178388561178276900280255010199415794960484621342068912082062098756170218647143105704507926357032921500238138900429295259719864058563248094627141715916545759850019152150279349782015788864247418878970572033049828810954109674522899229737306912487885983768515204906377010851329699108140139289821594132024461745687980407611103866942853931356879634462476510463227920071676817414547679038018391428651506322900443352976486963165760018461130983103030893816918652476208760684514890826214825502015770344419738528451137521097235657120100865988023169824035357138692834030120345670884998738112917565776608311327374129879695788305128272580541600030571133586006700588389438324956107610559899860768018978847061336252864015535658208521849248150537230559655289379835274621022506285926167002104216172220918729188166494421982338217065483443090662253222625461465316904971637944550368875212971003197055451153174697585631614464568437811336034295855996625143171687046867566769142594976975672406549601004251305679701160788219786256920665361211542943766519217660158677231048270515698271069944967721966996294171909000285907273020376238683851907213968474653983356613240301063279657462519952650321242195700667313708828576559943059306970372056682341674804001844752286992092764862750275656811276190651711524156419701136298390131905340147057165144722010878530904486306988000652758466990767095186732095836218882625380799378881645943311780455831047588346168047237922214303390259080381989623242340716407872861204556789923900369706162397966974140468417471683598886755898150864282710993663678980254227933262750451303410462703424042215049507037004980266879525008445202489591364506481008400544805572399883816224303005480202047819567997559809920289368205694019937670409109188801271876600527799562769192657167368538468998942667418144297073966829016532579523092526355319670601792895429813018296772676275035903666830435332954977903344794161186269618174863165372771703117457722838943568893541122152405128297761163228076254737149577207425323373224862592189697232148837387332204933879396566434117178168012988367518360576604433706210048630323318716719714194503841927221343668260462766977091360185435107039476671307139018304739179428572804308508227248637592099442946161825870145781330159249606237567413028186955034638849459782268429827945842345693402208866593817365930468520063310298807130355144421412432806722006473529101036481796211637135541640272770158798847731779173914214548320806778857962634705165129085665140454772759039376799335949502450648696778683745512321928659430864456575613345166109691331722739848250674451541776712977011639426600472851925722303222490363873027026569101908655015107354887574680487246765457109973700523151410142031531741097527287310035753060549033635968755282044013672399505777031378563826589899768509431309582075676096141639968327166355392015813913137179657804773522806979534454695460106013910991624409175266528400269068959077284995023441211626509465295532685869827171719680803544000565836396004740143100608439817049701901837439205968758042180732381356339697400716956534861797740729553824642390076862162564860185036518030278545356881415873044049137707021283540310289078983278165955004251073603563397139878450647835749218987196349725224407138810502451066035141333668956090703766688330665860314042783399791763215545820109376082677166398019505572094707893352775218104941735802804016549940871270146997097206792460968382263893151283398305177219214663041053852333017561033304176798554538772787182100723681766216330793161043779025763459297326824634617349977013352397585731102371698540174191173377280393975184676602881794596597402750852902746087125988007183866843633177301550141293894614814730713811996541074997874778400066209013744822877336237496930814518894673116859311541958261311021692226425315383749288314697592488644829691798419832709528300968678401610246533102325498867462227460867916596735790011107994295922284782014312671722222706080963222814686174935071602629144908159905954219601869732701933556305610381839808161934089573419501161626178598853021158280353923687106497805165549923894928028516017635046708072595003242163805774147153073480138852551461877557817753531002755771012083777990483948508140833913165118614201788641869661119607301106760564300983436804037740591351518592441804067209396392449803475075596449859158020806032778702026418997517199497440410308345059711651407074201826186246186582853650154372226730729348252278925837309613683946300633755186339830425513628585929857694805978466589795195173040468904788988866836909532004059960591260267974321795723565195018420675661692056184491441266762773811573275058085669772555820832799302213091989390935898400686147044924972543774250586726953344256131555066423910646000914541488359826065359893995337111103570262088130344473446766789356152549320842191130683673222132811231130104717671013442754747268668896171511522341062729443937000221619686205779226442587874964858818678816238472325651254132205222913460559768563558797997499702719981301765505071881511559127095309329150056058148893804051359226393672571747958249874459325330219797953769760361344521453255101513644382199501348615978070004004879113896042872738364322442087203880355706355501540248848076254919585478817920169573606894929616093670579951569415665576663265572196481360159988909747872645222452878937895223331747888976994972196774354937985279304920762412610965414480360909998973412565904529546469368249999501411330247833385068232072988789752341080973288422789741890193211041302768571276229493093074408605742553226299392866756721085327860643894237900259670384647296774541102207431459956096692407620356839228151724343606583629284691685638666545754770314713019468217144468125710681643700119824179465949415555782417595739081876462596740297384883738025105440238363278602249164225743696682440604296835475837963779452672076153499750293438050001914057869120335190791381072627498994666763008893971933986606936290231216078019697552387109769785477204482047568420759329712259949382683093195939892326248665093556409992684525194667207076917700333849871578249206200494435391501564806081644776152648509134849446100941200589976320571737448604692515953097801682095560086781331678509742244400352637284870593252728531460215281326262929268748423187694279546375016873657709337748703215748976107523344679545183609731210555365681772711824036624535653183705944813450206391448059743602437516496777019727028817370022110879956230488708561216542021226647080396501000279839276197138685157756001621883536531310758393876652551053591252620864558879069330275599156748082610993341857338339438571454723275201376305548578743758962696428333398081947430773667643064773090001618311492430169093454831737793037056033247070612910220845306072889343556737586652352674110932687244015817052811727496166977641224983260478975125013896295213473277277279164068697449449442410509795657013310705515678659760190855007782058195137156713216314972103253374848029069976751525089781677344416742881296147809422810809757944961841076886978273041942871509742145298676583820096404039290124178685917749466440107915310187521610573439163433232795215190338170157011628173233306519092083599296387082400426460609783639573785480031532617096229612359596943698035593122508578357751315369244401879429500895445401761392657854483594825436905159620887890886583803824983465881994526919492568625094095896399153262337978378307531897354698079971752363803737598235153955503960070289643373995710364258754105663328102231623015986932671768968063961101334633219048270075827196106389636741054800306023015253209300682836416211540087724997849391051283066070071659328284552109351914543724233125911724280117783717032026952469931343577580170819798020858060693703488311754157244412392808732102545166621561460210682900182090901226951272930443742010388647368279445294803784884486273393890989613160802017978192009165157208535483179489018551826965346737688524838343705100045838435328932233122717259981176058903133136831061357750010946677904436060288177302382726453891335342265463336674742670340116268067610552999586545953035906532815124178578230586676033718618413277708110875860444529735139284406221824907515265360027944735530166108234685383930077305116736706287581403768987009926896154614000731559131539662654218920003924987840530222339080616464944327472529602905571979322210582062582060633236376300242074944475012706367121711827279981523892059547543808262490133372860791986865704472566342017948930611286749054679373537765666722939072416170420847012180452679313125329017369341037939266801141888596712316282846973320751558265836965298926497074295626355343856541744327546657317099358356984911968403788664619964908118825977253883961075197382058324306314946966908154937221743517569208899145938828141284763565699202285435121220767888013124013111055711794105309198041148051320411472131391718336419370946225928125250193481661443688845008920265304091031789019025221232972714154752522331471849254525301322884394024842282802600242016311232396579999755836199957113236738961184825183695457139708618108264681849210309643228702123699930798083213077021407926617920297272065213839726201199114131714186334446167691290528040455027297230137321485275355993982881202871198237208601989268137698599802875263570679327523508247905415642325474999260206250601038613720501973831916265562062920105105523849214297800199144117135394905017379074248349642559435304389255347707324167298492736304911521949995264453025995236864261001904654706185671006523267817328997918314490304150812848111659991968729786214299739046078140019034725657054562514134991594277346280730067023499135626074878682427411970064743676946098344352662867366468755379801242053735855037606239138435381827696517836311399030928083262044302697776000103656553863007796440845034151632747728012803894339169145346359592450935310732771402210443664634863162934258136202847837949196012157341518730636497251853636332766153422740521750446361981557100856133286038713867295619208285076973284075505960714939578318830989376154164207483896805167514092059574704893341265702922236741657701581665838803504546650779310616530010155055155426214502727420079863153264232994575534697825440596105415303951318078862758339382869768334980273649911387568961896624288286856459664536728493281157550035447892224642846362177091569551771825721848331290553853480183043632892604441383095332574403983426276952152816180506780760094472872032902199991490377083140649804753279062421586654110695205541032186417891377165406332330626667735214635264842608881749334440942519695983610686233164014650537247051349827491864607902595987312686176238346652862128107290178874611129264541173826975169247063026462853496671023701829417830834928400893235660312682933552661594062950037289607606911887654154265349313629682234931468783932162218301153471807911908498084034612514807240666416875383525593173603885538973413553262427017316433664455434275489966074437189312111002187398626528559252639909815885488687882490739492031677309445957494301163711492681611628406116331471639815428809956348100451307108938195149766439861024857625536431889891226724580490074251673081037401422050706244609641520639066703164323142906035877293559918909407280185710783183669254412184726612104010627261773593035449907234050383434214056604492422855499419771290210546506092503799529148289307671581083540575169982979126494380389470010567779935878070923085711250955932962838884208029961224237124953920220916551638240794149570238671328084271343475342121408451885937634228040639196201982519238207230010324319877418121006865442303896449237595555168313947810565864536540245159837410319148064062236108756220178649354559218113370190343677541652904011294850280241019837392200241041870337312330036982932324875512316402944771301552189168414784250501977407200026166223659631963228839335392963828118518009180383378037748285750977297392134800393758351993086119399264434302020386687640057494123023340152223280209497490255022682092801677614345588981201582533049215957977737007524326554371439026889776175968058288261866215947231644602640128558428239792449788093968535866982532015989477116978819786994196033156993767588592511949546877663696398479387020537058959239044622373956922124896129095924159774663790579952858760134170452392006526334862898226261571044113543254956607009763628844615447628530954839148410502251700628709530144008319239284678460424694092360078338406428431854537942131757384359406386246591253839116882531326978530372955470085100964680236777853345442067351327523618015955596533140726508250489101431853989417567477484351235148615918902200155715849066693325318079151754930912492639498303719459289252954304446050865014521964307787018260740578408155621355064225674223687396492473435044904151364972457535631573499806946587826593957604288509583225408276860795436675062416959627796765832397694583090971363751433901897030098301258429277181254674642076651472564536232492599680288863833534809885980282435484418876380472241335623824995247716126788945687261820175288064845963225396925119836411025152362076004398373679914429204773599079632843958502545058457396291577535402193780081234464809891779547699691291945708132352393618573119623437606748395486973376889503475223846166714164064091660195312112611403222757819635770879473598088110608608827665345559794337103065806454270476323338635866701108427921049758073657393586319911886223954563972324313254377199893562561094924565490139427373417117948555830125425669858200789064446616632633462891005057311887977568044553428300006101932919025912677069914899778209485641662522403517144277633083191788838160793747637822804454139200504824209350765891633793148939836154514173497655331899574516768620289501163136835015715629213250170786922879029389770966731840516410258991824993010165886023448040633495202036689979796270689989102405789385243784068893208279024089348115959896710814742375688935721202639271368760319488356534930811657933034227030017824353867445855445468758278017299435971349432419356891976636254566839693406008368228623638094795699288335938985413405297635118971714082175648608117274483907347996223590869489433960561848601832375509117174430617897323016705037259307788789498943775454201281743474518772747883971077398288283326787267244187779233910653743519817912806791754240681790181953076110743986672895034273898944798553275162757155704964254219913577235519544382587874713935461423050782713263608985456490563483507323546701647662452369018949218805790221063961467327510890536400753262759674911880361742927433772534866914116471486100268395879125534544292597504327139320021270423865620518230617420550632273026302211643893644087435598220275815678070861841783923619243967783399071478452458612864195140268454979241705567579111320085480804419278917934513726405748160762142570109791435594661898578254041756473457479859095377507270898473082398255883483048351934508848881962267118029821532254334640368944949780594126263201223477412731399742532509512268586625680759129764172063445109835043190685337269782342690402241440844211573570908559910064351438019097931490470867706595575452145333629696707533632163474398945687055681420420480332271860569911533229821371588019918614222795297636632140880511527409939316435997501050905093144352705804970041068558851530046762986184778250383506051425694882477109776325356091120887030083957966018692689263018375384030482908082851680057117436898627190934041098719593964371958453147959213944409455455756477856321075075074328999658973143409480759088943065437115515080203004751452750720096668409966215338718644188213728317603377994127323895762777016132877810734049983284078984964761005037487566096894352461173960227520930488038859145323105782854038160961617700960861163398920579571937331247622461690231318132867900992038464543516365325793886794237888597830618441884145923491284098477971778631693733599377583591441537119578746887259890888509589417273707113057507447184439378750815240973254970810006694990024066413188046875469039401975720552079346039012209772908327778768838528811095027371338599972720055782711947211519565752984491539543979433662186881353346323502445247159993903512343290043973136406548621792454072627494658573179304140805370997361704633751173901552320769886331103530514567576540462783243751661161065111705589027325912727257135725855800162403245835887294924657648977149258739731606809720284032654205406459160002397522281081837157152832549031907122301447276867202826564742445328914033924716104653092425454549246287553014595857042857417513110479030350713683751417500435007789886305477894128518524524733609547472206132436803771554445073544306346316916487443123015098997622064236195271704251574526837884228210388874145594853685024821127565242451241449993861957536053770551661156448175577735533672949604342777188612917448851607217931931480468856190509193106106567764718080873089161388743549311769009752369486935194728133454410517525573815321484821975533747312618727924018939951451158129558387990342965878827270864248395019597730668370022681179720465673099652783287278186621060131977365447951119661027741435359567787438229501457286970371575646425318611726726147926866864344222550932173405821051259921346171245923474407505746726298583023999055983498097018157575726985065207632127460173406537949287303386325583925747368667518221389654510148323403391815104206405766437094551589253343824307289237696929386414672838066838056807205856685652475326178621448877560756579108393705015218568886191279329646930401126119450679432034466955326851974494398479777886235893436289792729632360781029117241207225353264256990114366799997200478740820285156935349924976179824142778535712053027095510651200894665229055449818212126485415329504013071739378955915988600990340457719454090259904668514594211247066589007104733054611502668472125509294755200427569119116333271051220623667597019582411945388245636945208199050734209688421286200583534289428012231844027934776725810168890155765449331234775313716862681925210127157915899166490500513157630900464492211510550945779130160660931777202116003001480144755967804412976100606242254007651932690808453066963693664247845807069018604959936834852092633270488098767925394195219843718076754175346850547810876245855750091675698713876025124300852391570463815614429009988236903049766185102890005182350150594261033548707093649376921590181989402279688572813687730349375881725799360577945695294609329787841349536367852317353513781837593649223203232316507734577253599782823083212458574232154442295793228728668740126481755039483403563017420828828149271057310541062578500625011221009720180737405350216640010342812038532055217004282945533376468245835759411468202286334415776807965098959385381715029254102371303521686892504213773091718677384507406797308603105935265399920184474056627398457983337650637037084355539675675855157393642544904664587201741640584122928998096859638707439990590932994678517744253658216355342819692102384161983678159389322503502892004738031072574071216231425887993115128115286745007942327190704170554862648602758506435148812745547160932894094098087408408820077132214958242200069654060214972249405332060282978095563297185304520997660684626758695752610421992542879343936233391827872722236492810216593522285475565061122506162769137628597980611168574335708394360572950513329285858251625665071750540824163237237380367994782568382392776949719774139564718330331579836708782186520627190190291138069098194690544262603176010816229141659191272903671530423248445766486202559587153768418824719080531126113644488549141509749260312696258572116712697668350831944022369169258785110485738789842270862527733413963416625084230751056526305374877638958785145292456177567584512367065471422242325700625100765173176167054327031345978453305638268796374519078909970401705292761247323969934967312024158521584035401508683643828813029262123748302365434422514498178019200210825741599919195407131372807392508250254729761385608464007247175303804289397341639239790034025166602768549563585609284481000721419370683181532941825351673360298171049617450724969693535147373620739977375674440798656671159793400978277366264469761588088972782676631175363880106091556707783333637696463151541705886144164178531606926127002023914796359031241847754815848205537627674391034600639122966257962410370260340940941069736853131322774053678198032025343984302966431727819266612816436116134418679390019727251361836467969812936587777213656166797541144826626863939189532403522791818489535096254387066013695470208127801522257148883906061615213942417107278866111321660576133757428961863860487916954046116650552188515891877708062690831115732932347465541889467028810828082123779746635713370522047818150564045575010215027373051648328764313424394756458569679450477288872258257938328832589237462079082754733722865148737343151845181208991727442617373135542572022777753900970911173042813816174635901303406477265650254663385722378106315163185189141791556995112445387282740493734334213120839635911112901113078582699655570098414718417641285707403118975849484875551982428996214072450122679430814909069079974423293570122976292303219164397197546647533854845733676891673399306283604209301397715894570823034773374651848142976314546478223565221429911437706830898114455569425489573582578178467388229425688564203003693346780592949566955776950050617093554485547753828357068023120592032726586589609711358317975650386682093537423387620824369367536284633908370454307837449470018598341208896072046383393396751453608245550872027483208398059551962551859681091856696928922503545501982870296898981955076788823023237291550248048259828278175142476223918441443412163068414350245978506939253611981450589882644023684395369091771329070739138014472732395059401821040210424128782466418929803798808265012268758353862350037971703837803250211865627691059839866037816819794115387854143751670467625666171030954905339980432826310398341840220188916617667636820301025541143588090833226766772955091349230692790132987027172315085689431239587953371497308233976979271465785974933937634144392017172450511550387500662446402064505864089118898670279539838661287704876008648990407800331047419828214756428030430581460082547870601336068626163229384162562291625073144387464361712395395131433078982482751369021523335312557235053155849518333068907294938563442229018411074245880843260034277355567432721568139602006599493016413139233844624141804128626906899360824123075697075571619868689825576802277215732980147353669210412439989815243368769526091064641492749085176724476125434354264565567857611488012404917720560335293828756970963150107339970431381474712468248988151544317762131067558523880054179789361780952271025718430909361705934263691749641295292072432634580594626465807142862989444591838864253151102822995432150806599462144062911700534294595757772974667285629780287978380064912020669438990291533202870821558744097631332193056496289297427854913754158261253319126886615479077001254222567425302900814899730127538840788425482428109041741628043688298743689839734476602157087331423043488062250092381831487648881029576950869389832238460005391524565771626258824157485776601460473584215084330379223449365901316451535262817536414130422880932792389288588237008128346520672056375214485129740181317866268207278180369809465323867246108342226996956174553131061137501190388956272414280947873004022235082830256905449780154771328295255179331747256578939285548894416764414875035227083426858364809368976525643398530300372948763638448002072393462040327999592644598671080177988734609548483913300919187169752234439532780134322959316727680073151593240632852529518983213033767710302845949346574111227191679094189650139406451346942252295778104225938197848291400298239674566047168707008426645834323341250704744611087758801819664557561173256135420919470159763034736462844444652488219625168931771293470922363545299863644318982839686825800910394956792008108384792703696737843987137294098346319670216706356339348662372439620664206012162508693558063842063629856444126754447587709676690932521747285187463812578383497628596540440360198425080256266441437580184174404443827585159057121084749882185010889600858766854032750140809264613205772966496019421271030426707257260356090586702166168364652670148512307787637511752339181264142246651463107974994933395234955024279996952857111899035558034809594118032353205090652690848623953349836239259356744622260484686516316780129549326496498576619458678018267111502132115771185889350651780680345034195833686879213810614105483995409100609263562919508390294450589699203737937086222909529560532390103038918930219674672243862201426508213027309929151773180596297572987214085870926760211738237891504159800582421502126655099834809230702064365295201611607471759651695396529989495429854770004090470665917119852561419373987632339157534131864802169727598321899137941685505174503805988417748196353599412446624026779365845390672096895101116906266239214012263407085284746586452212568469023083189748376628667068412940974571583436043927459279643206663884770447871124617484742616067550825777224228548568755090753020640384312772795666185949976750200995721699345458560851770798647704812417839684113714544603443686335908670773028403944893190210021850524324805791733104957964564862506062029618442226224029679048218459574770820445721214037656125469968097804990235020994359279126486861141951142900795167924524169363922612802983831274915983584073160395758672082075635616236337519916611006065154811784092226452258672720971870534403918504488328251777639904356484689414142057380765859924258073301472228431481493086025626344596532428866389889004810391696063444914352106735008725414666471093437322877721419738285149756212820697487494485545907555315181927920792127332627150191215004357766814493246452533123978298422085598408760925855446001840090602711989025809977146198467487212868439216990865827985016493594335187232319953712723972385504272772438847617921040227121652021287049588815656029385023009107778079134419033992058421998003041526098631424205140772240222203551499332739289489239084971098164641848896764578726121297915166756588612084374507098276308793542686908791972520901900200899294560325847050614380886964393227900580115418951774944657230324124434152893127022853053401725624625662152914887665989401462602497532773113696462673967991302944254770151251739765327419560047373697078750046713951631187674632642680633640340744930764698168967144409931123798037321770776135174750292378726623077926202902354255191204112231581736441427226259183134383053294354559125364772196327789141646691993804404340742138105976835820456821656618943827465525434476461359195116189302730800403605810779870201953767247423485717792577007194540280840616669658215003142573523154100433325607002677972036988525375978084959365253609799565600412390824363855362782935307765320900304001412188075866860564441895458885385621739074130886499986445028043270820545222907576473085539428860052702109154801826865710824750317072809909813601255587481570729781511712573203004172438206854070922594766077747383425816791459843669102188153467573015050504189237710668073244459305759749162677226752292194841371149314469999387281957077787725033741211631489439517810193799348948024743218207518672198954861252217967516313409528684982668205446459612314089263726031322771545920769213462212198368239123917199862540900425361425288488394317411229479815126100531214142945600384486564123754732186010735638746265312320401587157307293751002121211110743845591459827769506036679601394267823648759029566399928872767834055493959944809464374404077096627127509256024027276234812184934544123457678308374325451201886647551916983392661405625651075702308355154226201031578277848219564242465089930790692970650852824375075470196177178656744393947818266867897761808172713715700026909774428536697914085309232666455788443727501204542186743048725786931183200488707551580336993839644918198109259144761376038822693434281717227243348367287395400667918128239880976154492035394015208144219746980809455155015974281561449017357636223170651469882048971352259787711951438493379503038000938627511907248567163215045625521214450444745038900889536814441797790197316926826678986783941777945277989675335628683912012901475841060730919852877452166280904245787270899564310917710423181036722554784787779870957296215735580738383934153519578214356572811925016354439650299154782307568652568836956104153277102008819290137154200582180314764781199414052157122693485885602377280637664426071096592209769757525460576940154877950909963106703546453753581609946068155278417994327840584727061703325859611875279142599238174033085959817999138512399754171762548625673194861687647734957623194224499582536173340739156470523873327399922557963747014304376432978497300937728674637428938006224591761822762516864740015798015966733577795849006443879315090352355421014282424274689458231865199040391160054458898214345457416811098224955761677213978775711342423204283382722458264040464777877575550213906421788507347510156944972776922712346242100858535825461072299743075632022965098139243292847460427034410284068092683388978360931756721295277521387333862971525387849789795085851719712465417636446796622931999952922788220066347368924740435648405657392852193669413592355018643848516647036921565715692830552026332737185927955431121412555002522019067098413180435173563098340639702606740070451423296629896021931301203019857500521942311129347752792520581791607888094009851977479206179319092875563009892331908921913524206877593439590130940675720446166274407453496382182066904022631221517537787006120175796518227619220103275217303683575896122018525244906960245836282745978548763768541162025036810959519873665163234229712588702724005715673632650472096284756436376172261183569927904628578316690179086501234834926795448310909081325008504673049580410054316854561550666951094967136215499801579113686340282298894993189507932036603909879037023429287105583469211220170849069177980895981003139167858005979165418528605572933567966513155227936389614681856204725643899909573921557071357831186541165158390287814072704167252655410101445047381772697268065311404804600064939268690887173743287746845428301350742600455689926696012074900231943224443377829810905638965038361607091408075913834508439117628095505888959585027252017219619128327033093907753108799380058039176616424130420883765774351354861549412403664512660215295344561144167702998200769725049397579493480812657712821466509850743731039783935065851117239799458433273745946227124533745203377079582548061129672516620567642958340560279724708503238046881950833948986185720909526758435392247889134307167232212728472150719369497950232306888768645613836666412682450647036517151110343305763775224207806129484005454781148123660238739708317306617388337194737720175355454970114196698145003739392358868093629874399064207380154021134964683746567868029158485759581438053119005922752468160909776075924174565983883829526971686173060935256915158697015276707255507368431452872633958409616323955088305343737276386780836839697079938783704920375722549076204120059429505361738438025166044639544016641971538519882946985030657743657853085028942163126600667211319601430142440760841753121996229657279384899712233483488084171540386339807341436667323418126578333211041272719933179088504163022626277582866300896631320444775501484689009629871339918944347239163518759682178687762274713172781200575636671431431558937528594431602213463124486302666053280466498414250886371254728797686746802957891824139986007087868187323596980620318428818992898060175278111656136559491373940582295851605022257128154773685093941939444440599234850275574396332182212557258296234166587847732606483900057070338801606736498464670520258915750411512745124532468323278602399227920988585889291687909108377920906654885713085989877714606679820512945854238495361278755601715143276277121823633247353960262909517145313358151295600779700751714829674844576634088519811500752492648244606905863591842285604282943563426215195484300624827071692997883354106034443312509010829285434953129063232468942272854345661689829932899221277830503902046307757626154248666866251366226250017756512482167025330112622461870340845179917177570466321314863965689526417089314285363660062036984598609134707460267370677247790824980874747529270649789611050366635510053175687231566331713048496295916161719080987489685704722532959926036823617301109448424464200536528119196855473858758172414768248617239149369232914575926941847620188200162680641188475762886943781252803344799530497821150148855788311706009421110868763107395369213436998633529287285732712962365639710862102892929152548274426001533562248387875252717807452165151733123778788841397637497326671155333542774316665158614047801611141276071969430819043874038281628137838221487921771021801066346520654329623234651221147713966252603387307954403646035103380883672391131910559002449338646178734601313037857387783606236714745393121223500682961722072110479884440076625401296966703122961582072777720320964095255167924832123573679001625442019708071521596454835890073313755213356927666650970174590922897808373572896477016241878173623274054267413054940935685715449255210505905334327103431413246746084664663410308721166155008531012255882300607815408901164492134294325488267354878132705666627459504529981332010452924449361462641205223886846785064892376958647561192557620651882099452091344117805251600203749708629910385785419629646585003320300373350294469026722193461187621191175892074175389369678557591094576998523422721684164812073508343178860884713602295718667739332951910682418261873919846515916581565597044416250208265122584969625286121560642330374543864712583599629922779796882276707397772112754249201737843937043992053460938803403418840624774096695454336979209138664994645858366927864197652593351542132470434509832565853265107156467712